pax_global_header00006660000000000000000000000064132434725400014516gustar00rootroot0000000000000052 comment=de36fef9b4f88f876ac43eb7058ba16c18b09ba4 pyresample-1.8.1/000077500000000000000000000000001324347254000137065ustar00rootroot00000000000000pyresample-1.8.1/.bumpversion.cfg000066400000000000000000000001521324347254000170140ustar00rootroot00000000000000[bumpversion] current_version = 1.8.1 commit = True tag = True [bumpversion:file:pyresample/version.py] pyresample-1.8.1/.gitchangelog.rc000066400000000000000000000144031324347254000167470ustar00rootroot00000000000000## ## Format ## ## ACTION: [AUDIENCE:] COMMIT_MSG [!TAG ...] ## ## Description ## ## ACTION is one of 'chg', 'fix', 'new' ## ## Is WHAT the change is about. ## ## 'chg' is for refactor, small improvement, cosmetic changes... ## 'fix' is for bug fixes ## 'new' is for new features, big improvement ## ## AUDIENCE is optional and one of 'dev', 'usr', 'pkg', 'test', 'doc' ## ## Is WHO is concerned by the change. ## ## 'dev' is for developpers (API changes, refactors...) ## 'usr' is for final users (UI changes) ## 'pkg' is for packagers (packaging changes) ## 'test' is for testers (test only related changes) ## 'doc' is for doc guys (doc only changes) ## ## COMMIT_MSG is ... well ... the commit message itself. ## ## TAGs are additionnal adjective as 'refactor' 'minor' 'cosmetic' ## ## They are preceded with a '!' or a '@' (prefer the former, as the ## latter is wrongly interpreted in github.) Commonly used tags are: ## ## 'refactor' is obviously for refactoring code only ## 'minor' is for a very meaningless change (a typo, adding a comment) ## 'cosmetic' is for cosmetic driven change (re-indentation, 80-col...) ## 'wip' is for partial functionality but complete subfunctionality. ## ## Example: ## ## new: usr: support of bazaar implemented ## chg: re-indentend some lines !cosmetic ## new: dev: updated code to be compatible with last version of killer lib. ## fix: pkg: updated year of licence coverage. ## new: test: added a bunch of test around user usability of feature X. ## fix: typo in spelling my name in comment. !minor ## ## Please note that multi-line commit message are supported, and only the ## first line will be considered as the "summary" of the commit message. So ## tags, and other rules only applies to the summary. The body of the commit ## message will be displayed in the changelog without reformatting. ## ## ``ignore_regexps`` is a line of regexps ## ## Any commit having its full commit message matching any regexp listed here ## will be ignored and won't be reported in the changelog. ## ignore_regexps = [ r'@minor', r'!minor', r'@cosmetic', r'!cosmetic', r'@refactor', r'!refactor', r'@wip', r'!wip', r'^Merge commit .* into HEAD', r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[p|P]kg:', r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[d|D]ev:', r'^(.{3,3}\s*:)?\s*[fF]irst commit.?\s*$', ] ## ``section_regexps`` is a list of 2-tuples associating a string label and a ## list of regexp ## ## Commit messages will be classified in sections thanks to this. Section ## titles are the label, and a commit is classified under this section if any ## of the regexps associated is matching. ## section_regexps = [ ('New', [ r'^[nN]ew\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$', ]), ('Changes', [ r'^[cC]hg\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$', ]), ('Fix', [ r'^([Bb]ug)?[fF]ix\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$', ]), ('Other', None ## Match all lines ), ] ## ``body_process`` is a callable ## ## This callable will be given the original body and result will ## be used in the changelog. ## ## Available constructs are: ## ## - any python callable that take one txt argument and return txt argument. ## ## - ReSub(pattern, replacement): will apply regexp substitution. ## ## - Indent(chars=" "): will indent the text with the prefix ## Please remember that template engines gets also to modify the text and ## will usually indent themselves the text if needed. ##git log --pretty=format:"- %s%n%b" --since="$(git show -s --format=%ad `git rev-list --tags --max-count=1`)" ## - Wrap(regexp=r"\n\n"): re-wrap text in separate paragraph to fill 80-Columns ## ## - noop: do nothing ## ## - ucfirst: ensure the first letter is uppercase. ## (usually used in the ``subject_process`` pipeline) ## ## - final_dot: ensure text finishes with a dot ## (usually used in the ``subject_process`` pipeline) ## ## - strip: remove any spaces before or after the content of the string ## ## Additionally, you can `pipe` the provided filters, for instance: #body_process = Wrap(regexp=r'\n(?=\w+\s*:)') | Indent(chars=" ") #body_process = Wrap(regexp=r'\n(?=\w+\s*:)') #body_process = noop body_process = ReSub(r'(?m)\s*^Signed-off-by: .*$\s*', '') ## ``subject_process`` is a callable ## ## This callable will be given the original subject and result will ## be used in the changelog. ## ## Available constructs are those listed in ``body_process`` doc. subject_process = (strip | ReSub(r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$', r'\4') | #ucfirst | final_dot) final_dot) #subject_process = noop ## ``tag_filter_regexp`` is a regexp ## ## Tags that will be used for the changelog must match this regexp. ## tag_filter_regexp = r'^v[0-9]+\.[0-9]+(\.[0-9]+)?$' ## ``unreleased_version_label`` is a string ## ## This label will be used as the changelog Title of the last set of changes ## between last valid tag and HEAD if any. unreleased_version_label = "%%version%% (unreleased)" ## ``output_engine`` is a callable ## ## This will change the output format of the generated changelog file ## ## Available choices are: ## ## - rest_py ## ## Legacy pure python engine, outputs ReSTructured text. ## This is the default. ## ## - mustache() ## ## Template name could be any of the available templates in ## ``templates/mustache/*.tpl``. ## Requires python package ``pystache``. ## Examples: ## - mustache("markdown") ## - mustache("restructuredtext") ## ## - makotemplate() ## ## Template name could be any of the available templates in ## ``templates/mako/*.tpl``. ## Requires python package ``mako``. ## Examples: ## - makotemplate("restructuredtext") ## output_engine = rest_py #output_engine = mustache("restructuredtext") #output_engine = mustache("markdown") #output_engine = makotemplate("restructuredtext") ## ``include_merges`` is a boolean ## ## This option tells git-log whether to include merge commits in the log. ## The default is to include them. include_merges = False pyresample-1.8.1/.github/000077500000000000000000000000001324347254000152465ustar00rootroot00000000000000pyresample-1.8.1/.github/ISSUE_TEMPLATE.md000066400000000000000000000006431324347254000177560ustar00rootroot00000000000000#### Code Sample, a minimal, complete, and verifiable piece of code ```python # Your code here ``` #### Problem description [this should also explain **why** the current behaviour is a problem and why the expected output is a better solution.] #### Expected Output #### Actual Result, Traceback if applicable #### Versions of Python, package at hand and relevant dependencies Thank you for reporting an issue ! pyresample-1.8.1/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000010731324347254000210500ustar00rootroot00000000000000Please make the PR against the `develop` branch. - [ ] Closes #xxxx (remove if there is no corresponding issue, which should only be the case for minor changes) - [ ] Tests added (for all bug fixes or enhancements) - [ ] Tests passed (for all non-documentation changes) - [ ] Passes ``git diff origin/develop **/*py | flake8 --diff`` (remove if you did not edit any Python files) - [ ] Fully documented (remove if this change should not be visible to users, e.g., if it is an internal clean-up, or if this is part of a larger project that will be documented later) pyresample-1.8.1/.gitignore000066400000000000000000000007731324347254000157050ustar00rootroot00000000000000### PYTHON IGNORES ### *.py[cod] # C extensions *.so # Packages *.egg *.egg-info dist build doc/build eggs parts bin var sdist develop-eggs .installed.cfg lib lib64 # Installer logs pip-log.txt # Unit test / coverage reports .coverage .tox nosetests.xml #Translations *.mo #Mr Developer .mr.developer.cfg ### C IGNORES ### # Object files *.o # Libraries *.lib *.a # Shared objects (inc. Windows DLLs) *.dll *.so *.so.* *.dylib # Executables *.exe *.out *.app # Others *~ # PyCharm Settings .idea pyresample-1.8.1/.travis.yml000066400000000000000000000026401324347254000160210ustar00rootroot00000000000000language: python python: - '2.7' - '3.4' - '3.5' - '3.6' before_install: - sudo add-apt-repository ppa:ubuntugis/ppa -y - sudo apt-get update -qq - sudo apt-get install libfreetype6-dev - sudo apt-get install libgeos-dev install: # matplotlib 2.1.0 has a bug that causes plotting masked arrays to fail # https://github.com/matplotlib/matplotlib/issues/9280 - if [[ $TRAVIS_PYTHON_VERSION == "2.7" ]]; then pip install "matplotlib>=1.5.0,!=2.1.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "2.7" ]]; then pip install "sphinx>=1.5.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "3.4" ]]; then pip install "matplotlib>=1.5.0,!=2.1.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "3.4" ]]; then pip install "sphinx>=1.5.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "3.5" ]]; then pip install "matplotlib>=1.5.0,!=2.1.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "3.5" ]]; then pip install "sphinx>=1.5.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "3.6" ]]; then pip install "matplotlib>=1.5.0,!=2.1.0"; fi - if [[ $TRAVIS_PYTHON_VERSION == "3.6" ]]; then pip install "sphinx>=1.5.0"; fi - pip install -r requirements.txt - pip install toolz - pip install dask - pip install xarray - pip install -e ".[pykdtree,quicklook]" - pip install coveralls script: - coverage run --source=pyresample setup.py test && cd docs && mkdir doctest && sphinx-build -E -n -b doctest ./source ./doctest && cd .. after_success: coveralls notifications: slack: pytroll:96mNSYSI1dBjGyzVXkBT6qFt pyresample-1.8.1/LICENSE.txt000066400000000000000000000167511324347254000155430ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007, 2015 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. pyresample-1.8.1/MANIFEST.in000066400000000000000000000002231324347254000154410ustar00rootroot00000000000000include docs/Makefile recursive-include docs/source * include test/test_files/* include LICENSE.txt include MANIFEST.in include pyresample/ewa/*.h pyresample-1.8.1/README000077700000000000000000000000001324347254000160402README.mdustar00rootroot00000000000000pyresample-1.8.1/README.md000066400000000000000000000055471324347254000152000ustar00rootroot00000000000000[![Build Status](https://travis-ci.org/pytroll/pyresample.svg?branch=master)](https://travis-ci.org/pytroll/pyresample) [![Build status](https://ci.appveyor.com/api/projects/status/10qdrecp45rgkf73/branch/master?svg=true)](https://ci.appveyor.com/project/davidh-ssec/pyresample-ly2q0/branch/master) Python package for geospatial resampling ---------------------------------------- Resampling (reprojection) of geospatial image data in Python. Pyresample uses a kd-tree approach for resampling. Pyresample is designed for resampling of remote sensing data and supports resampling from both fixed grids and geolocated swath data. Several types of resampling are supported including nearest neighbour, gaussian weighting and weighting with a user defined radial function. Pyresample works with Numpy arrays including support for masked arrays. Support for parallel resampling using multiple processor cores. Plotting capablity using Basemap. As of v0.8.0 [pykdtree](https://github.com/storpipfugl/pykdtree) can be used to speed up processing. Pyresample is tested with Python 2.7, 3.4, 3.5, and 3.6. Note: For numpy >= 1.6.2 use pyresample >= 0.7.13 [Documentation](https://pyresample.readthedocs.org/en/latest/) Look at [pytroll.org](http://pytroll.org/) for more information. ===News=== * *2015-02-03*: Pyresample-1.1.3 released. Switch to LGPLv3. * *2014-12-17*: Pyresample-1.1.2 released. Fix to allow tests to run on travis. * *2014-12-10*: Pyresample-1.1.1 released. Wrapping of longitudes and latitudes is now implemented. * *2013-10-23*: Pyresample-1.1.0 released. Added option for calculating uncertainties for weighted kd-tree resampling. From now on pyresample will adhere to [http://semver.org/ semantic versioning]. * *2013-07-03*: Pyresample-1.0.0 released. Minor API change to the geometry.py module as the boundary variable is removed and replaced by proj_x_coords and proj_y_coords. Caching scheme removed from projection coordinate calculation in geometry.py as it introduced excessive complications. The numexpr package is now used for minor bottleneck optimization if available. Version number bumped to 1.0.0 as pyresample has been running stable in production environments for several years now. * *2013-03-20*: Pyresample-0.8.0 released. Enables use of pykdtree. Fixes projection handling for 'latlong' projection. * *2013-01-21*: Pyresample-0.7.13 released. Fixes numpy incompability introduced with numpy v1.6.2 * *2012-10-18*: Pyresample-0.7.12 released. Better integration with Basemap with support for plotting using globe projections (geos, ortho and nspere). Documentation updated with correct description of the epsilon parameter. * *2012-07-03*: Pyresample-0.7.11 released. Support for plotting in Plate Carree projection and bugfixes for meridians and parallels in plots. Added utils.fwhm2sigma convenience function for use in Gauss resampling. pyresample-1.8.1/appveyor.yml000066400000000000000000000054641324347254000163070ustar00rootroot00000000000000environment: global: # 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_compiler.cmd" # Don't build pykdtree with openmp because it isn't supported in appveyor's compilers USE_OMP: "0" matrix: - PYTHON: "C:\\Python27_32" PYTHON_VERSION: "2.7.8" PYTHON_ARCH: "32" MINICONDA_VERSION: "2" - PYTHON: "C:\\Python27_64" PYTHON_VERSION: "2.7.8" PYTHON_ARCH: "64" MINICONDA_VERSION: "2" - PYTHON: "C:\\Python34_32" PYTHON_VERSION: "3.4.1" PYTHON_ARCH: "32" MINICONDA_VERSION: "3" - PYTHON: "C:\\Python34_64" PYTHON_VERSION: "3.4.1" PYTHON_ARCH: "64" MINICONDA_VERSION: "3" - PYTHON: "C:\\Python36_32" PYTHON_VERSION: "3.6" PYTHON_ARCH: "32" MINICONDA_VERSION: "3" - PYTHON: "C:\\Python36_64" PYTHON_VERSION: "3.6" PYTHON_ARCH: "64" MINICONDA_VERSION: "3" install: - "git submodule update --init --recursive" - ECHO "Filesystem root:" - ps: "ls \"C:/\"" - ECHO "Installed SDKs:" - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\"" # install miniconda with the powershell script install.ps1 - "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)\"" # Install the build dependencies of the project. If some dependencies contain # compiled extensions and are not provided as pre-built wheel packages, # pip will build them from source using the MSVC compiler matching the # target Python version and architecture - "conda update --yes conda" - "conda config --add channels conda-forge" - "conda create -q --yes -n test python=%PYTHON_VERSION% basemap-data-hires sphinx pyproj scipy pykdtree" - "activate test" - "pip install coveralls" - "pip install mock" - "where python" build: false # Not a C# project, build stuff at the test step instead. test_script: # Build the compiled extension and run the project tests - "%CMD_IN_ENV% python setup.py test" after_test: # If tests are successful, create a whl package for the project. - "%CMD_IN_ENV% python setup.py bdist_wheel bdist_wininst" - ps: "ls dist" artifacts: # Archive the generated wheel package in the ci.appveyor.com build report. - path: dist\* #on_success: # - TODO: upload the content of dist/*.whl to a public wheelhouse # pyresample-1.8.1/appveyor/000077500000000000000000000000001324347254000155535ustar00rootroot00000000000000pyresample-1.8.1/appveyor/install.ps1000066400000000000000000000044271324347254000176550ustar00rootroot00000000000000# Sample script to install anaconda under windows # Authors: Stuart Mumford # Borrwed from: Olivier Grisel and Kyle Kastner # License: BSD 3 clause $MINICONDA_URL = "http://repo.continuum.io/miniconda/" function DownloadMiniconda ($miniconda_version, $platform_suffix) { $webclient = New-Object System.Net.WebClient $filename = "Miniconda" + $miniconda_version + "-latest" + "-Windows-" + $platform_suffix + ".exe" $url = $MINICONDA_URL + $filename $basedir = $pwd.Path + "\" $filepath = $basedir + $filename if (Test-Path $filename) { Write-Host "Reusing" $filepath return $filepath } # Download and retry up to 3 times in case of network transient errors. Write-Host "Downloading" $filename "from" $url $retry_attempts = 2 for($i=0; $i -lt $retry_attempts; $i++){ try { $webclient.DownloadFile($url, $filepath) break } Catch [Exception]{ Start-Sleep 1 } } if (Test-Path $filepath) { Write-Host "File saved at" $filepath } else { # Retry once to get the error message if any at the last try $webclient.DownloadFile($url, $filepath) } return $filepath } function InstallMiniconda ($miniconda_version, $architecture, $python_home) { Write-Host "Installing miniconda" $miniconda_version "for" $architecture "bit architecture to" $python_home if (Test-Path $python_home) { Write-Host $python_home "already exists, skipping." return $false } if ($architecture -eq "32") { $platform_suffix = "x86" } else { $platform_suffix = "x86_64" } $filepath = DownloadMiniconda $miniconda_version $platform_suffix Write-Host "Installing" $filepath "to" $python_home $args = "/InstallationType=AllUsers /S /AddToPath=1 /RegisterPython=1 /D=" + $python_home Write-Host $filepath $args Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru #Start-Sleep -s 15 if (Test-Path $python_home) { Write-Host "Miniconda $miniconda_version ($architecture) installation complete" } else { Write-Host "Failed to install Python in $python_home" Exit 1 } } function main () { InstallMiniconda $env:MINICONDA_VERSION $env:PYTHON_ARCH $env:PYTHON } main pyresample-1.8.1/appveyor/run_with_compiler.cmd000066400000000000000000000043171324347254000217760ustar00rootroot00000000000000:: To build extensions for 64 bit Python 3, we need to configure environment :: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: :: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) :: :: To build extensions for 64 bit Python 2, we need to configure environment :: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: :: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) :: :: 32 bit builds do not require specific environment configurations. :: :: Note: this script needs to be run with the /E:ON and /V:ON flags for the :: cmd interpreter, at least for (SDK v7.0) :: :: More details at: :: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows :: http://stackoverflow.com/a/13751649/163740 :: :: Author: Olivier Grisel :: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ @ECHO OFF SET COMMAND_TO_RUN=%* SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%" SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,1% IF %MAJOR_PYTHON_VERSION% == "2" ( SET WINDOWS_SDK_VERSION="v7.0" SET SET_SDK_64=Y ) ELSE IF %MAJOR_PYTHON_VERSION% == "3" ( SET WINDOWS_SDK_VERSION="v7.1" IF %MINOR_PYTHON_VERSION% LEQ 4 ( SET SET_SDK_64=Y ) ELSE ( SET SET_SDK_64=N ) ) ELSE ( ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" EXIT 1 ) IF "%PYTHON_ARCH%"=="64" ( IF %SET_SDK_64% == Y ( ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture SET DISTUTILS_USE_SDK=1 SET MSSdk=1 "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release ECHO Executing: %COMMAND_TO_RUN% call %COMMAND_TO_RUN% || EXIT 1 ) ELSE ( ECHO Using default MSVC build environment for 64 bit architecture ECHO Executing: %COMMAND_TO_RUN% call %COMMAND_TO_RUN% || EXIT 1 ) ) ELSE ( ECHO Using default MSVC build environment for 32 bit architecture ECHO Executing: %COMMAND_TO_RUN% call %COMMAND_TO_RUN% || EXIT 1 ) pyresample-1.8.1/changelog.rst000066400000000000000000001371341324347254000164000ustar00rootroot00000000000000Changelog ========= v1.8.1 (2018-02-22) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.8.0 → 1.8.1. [Martin Raspaud] - Merge pull request #101 from floriankrb/master. [Martin Raspaud] Update README to include correct versions of python tested - Update README.md. [Florian] - Update README.md. [Florian] - Merge pull request #99 from pytroll/feature-dynamic-projs. [Martin Raspaud] Add support for dynamic resampling for most projections - Do not overwrite provided lon_0 and lat_0. [Martin Raspaud] - Add support for dynamic resampling for most projections. [Martin Raspaud] - Merge pull request #98 from pytroll/bugfix-data-reduce. [Martin Raspaud] Revert "Fix data reduction when poles are within area" - Add test for data reduction over the poles. [Martin Raspaud] - Make pep8 happy. [Martin Raspaud] - Revert "Fix data reduction when poles are within area" [Martin Raspaud] This reverts commit 1c9ac493aea549a354f384059e9aa6ad41558fd8. - Merge pull request #96 from pytroll/bugfix-partially-invalid-source- data. [David Hoese] Fix xarray resampling for partially invalid source datasets - Fix xarray resampling for partially invalid source datasets. [Martin Raspaud] v1.8.0 (2018-02-02) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.7.1 → 1.8.0. [Martin Raspaud] - Merge branch 'develop' into new_release. [Martin Raspaud] - Merge pull request #95 from pytroll/bugfix-pyproj-version. [Martin Raspaud] Provide the minimum version of pyproj needed - Provide the minimum version of pyproj needed. [Martin Raspaud] - Merge pull request #94 from pytroll/optimize-xarray. [Martin Raspaud] Optimize xarray - Add test for new wrap_and_check function. [davidh-ssec] - Rename chunk size environment variable to PYTROLL_CHUNK_SIZE. [davidh- ssec] - Fix circular import between geometry and init's CHUNK_SIZE. [davidh- ssec] - Revert import removal in init and add easy access imports. [davidh- ssec] Includes attempt to remove circular dependency between utils and geometry module. - Use central CHUNK_SIZE constant for dask based operations. [davidh- ssec] - Add `check_and_wrap` utility function and fix various docstring issues. [davidh-ssec] - Remove tests for removed features. [davidh-ssec] - Remove longitude/latitude validity checks in BaseDefinition. [davidh- ssec] This was causing issues with dask based inputs and was a performance penalty for all use cases even when the arrays were valid. Removing this check should not affect 99% of users. - Combine dask operations to improve resampling performance. [davidh- ssec] Still a lot that could be done probably. - Fix dask minimum version number for meshgrid support. [davidh-ssec] - Add dask extra to setup.py to specify minimum dask version. [davidh- ssec] pyresample uses dask meshgrid which came in version 1.9 - Merge pull request #86 from pytroll/feature-multiple-dims. [Martin Raspaud] [WIP] Feature multiple dims - Remove explicit chunksize. [Martin Raspaud] - Clean up with pep8. [Martin Raspaud] - Take care of coordinates when resampling. [Martin Raspaud] - Define default blocksizes for dask arrays. [Martin Raspaud] - Merge branch 'feature-optimize-dask' into feature-multiple-dims. [Martin Raspaud] - Style cleanup. [Martin Raspaud] - Fix get_hashable_array for variations of np arrays. [Martin Raspaud] - Print warning when wrapping is needed independently of type. [Martin Raspaud] - Change default blocksize to 5000. [Martin Raspaud] - Make use of dask's map_blocks. [Martin Raspaud] Instead of writing our own array definitions - Revert "Make resampling lazy" [Martin Raspaud] This reverts commit 5a4f9c342f9c8262c06c28986163fc682242ce75. - Make resampling lazy. [Martin Raspaud] - Revert yapf change. [Martin Raspaud] - Clean up code (pycodestyle, pydocstyle) [Martin Raspaud] - Make XR resampling work with more dimensions. [Martin Raspaud] - Merge pull request #91 from avalentino/issues/gh-090. [David Hoese] Fix test_get_array_hashable on big-endian machines (closes #90) - Fix test_get_array_hashable on big-endian machines. [Antonio Valentino] v1.7.1 (2017-12-21) ------------------- - update changelog. [davidh-ssec] - Bump version: 1.7.0 → 1.7.1. [davidh-ssec] - Merge pull request #88 from pytroll/bugfix-masked-target. [David Hoese] Fix kdtree when target lons/lats are masked arrays - Add test for masked valid_output_index fix. [davidh-ssec] - Move bilinear test setup to a special method. [davidh-ssec] - Fix kdtree when target lons/lats are masked arrays. [davidh-ssec] - Merge pull request #89 from Funkensieper/fix-masks-in-get-resampled- image. [David Hoese] Fix masks in grid.get_resampled_image - Add test for mask preservation. [Stephan Finkensieper] - Distinguish between ndarrays and masked arrays. [Stephan Finkensieper] - Fix masks in grid.get_resampled_image. [Stephan Finkensieper] Use numpy.ma version of row_stack to prevent loosing the mask of large images (rows > cut_off) - Add github templates. [Martin Raspaud] - Merge pull request #84 from pytroll/feature-add-hash. [Martin Raspaud] Add hash method to AreaDefinition and SwathDefinition - Fix dask array not being hashable in py3.x. [Martin Raspaud] - Use identity checking instead of equality. [Martin Raspaud] - Do not has the mask if it's empty. [Martin Raspaud] - Bugfix geometry test. [Martin Raspaud] - Replace hash value checks with type checks. [Martin Raspaud] The value can be different depending on the python version apparently. - Add dask and xarray for testing on travis. [Martin Raspaud] - Fix case of missing xarray dependency in the tests. [Martin Raspaud] - Add __hash__ for SwathDefinitions, along with some unittests. [Martin Raspaud] - Add hash method to AreaDefinition. [davidh-ssec] Removes annoying log message when xarray/dask is missing - Merge branch 'feature-xarray-improvements' into develop. [Martin Raspaud] Conflicts: pyresample/geometry.py - Type coords to np.float. [Martin Raspaud] - Add support for fill_value in nn search. [Martin Raspaud] - Change the get_lonlats_dask interface to return a tuple. [Martin Raspaud] - Fix masking bad latitude values. [davidh-ssec] - Fix consistency with numpy arrays. [davidh-ssec] - Allow xarrays internally in geometry objects. [davidh-ssec] - Merge remote-tracking branch 'origin/develop' into develop. [davidh- ssec] # Conflicts: # .travis.yml - Fix proj4 dict to string against recent changes to str to dict funcs. [davidh-ssec] - Change appveyor python 3.5 environments to python 3.6. [davidh-ssec] Also removes slack notification webhook which is no longer the recommended way to post to slack from appveyor. - Exclude buggy version of matplotlib in travis tests. [davidh-ssec] - Fix proj4 dict conversion test. [davidh-ssec] - Use more descriptive variable names. [davidh-ssec] - Add proj4_dict_to_str utility function. [davidh-ssec] Includes fixes for dynamic area definitions proj_id and small performance improvement for projection coordinate generation - Merge pull request #83 from loreclem/master. [Martin Raspaud] Added ROTATION in an area definition - Bugfix in get_area_def. [lorenzo clementi] - Unit test for rotation. [lorenzo clementi] - Removed unused parameter. [lorenzo clementi] - Now working also with yaml. [lorenzo clementi] - Code improvements. [lorenzo clementi] - Added ROTATION in an area definition. [lorenzo clementi] v1.7.0 (2017-10-13) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.6.1 → 1.7.0. [Martin Raspaud] - Merge pull request #82 from pytroll/fix-resample-bilinear. [David Hoese] Fix output shape of resample_bilinear() - Reshape output to have correct shape for the output area and num of chans. [Panu Lahtinen] - Update tests to check proper output shape for resample_bilinear() [Panu Lahtinen] - Merge pull request #79 from pytroll/fix-bil-documentation. [David Hoese] Fix example data for BIL, clarify text and add missing output_shape p… - Merge branch 'fix-bil-documentation' of https://github.com/mraspaud/pyresample into fix-bil-documentation. [Panu Lahtinen] - Fix example data for BIL, clarify text and add missing output_shape param. [Panu Lahtinen] - Fix example data for BIL, clarify text and add missing output_shape param. [Panu Lahtinen] - Merge pull request #75 from pytroll/fix-bil-mask-deprecation. [David Hoese] Fix bil mask deprecation - Merge branch 'develop' into fix-bil-mask-deprecation. [David Hoese] - Merge pull request #81 from pytroll/fix-reduce-bil-memory-use. [David Hoese] Reduce the memory use for ImageContainerBilinear tests - Reduce area size for BIL, reduce neighbours and adjust expected results. [Panu Lahtinen] - Add proj4_dict_to_str utility function (#78) [David Hoese] * Add proj4_dict_to_str utility function Includes fixes for dynamic area definitions proj_id and small performance improvement for projection coordinate generation * Use more descriptive variable names * Fix proj4 dict conversion test * Exclude buggy version of matplotlib in travis tests * Change appveyor python 3.5 environments to python 3.6 Also removes slack notification webhook which is no longer the recommended way to post to slack from appveyor. * Fix proj4 dict to string against recent changes to str to dict funcs - Utils edits for retreiving projection semi-major / semi-minor axes (#77) [goodsonr] proj4 strings converted to dictionary now consistent with other code (no longer has leading '+') new logic for reporting projection semi-major / semi-minor axes ('a', 'b') based on information in proj4 - Merge pull request #71 from pytroll/feature-bilinear-image. [David Hoese] Add image container for bilinear interpolation - Fix test result assertation. [Panu Lahtinen] - Add tests for ImageContainerBilinear, rewrap long lines. [Panu Lahtinen] - Fix docstrings. [Panu Lahtinen] - Mention also ImageContainerBilinear. [Panu Lahtinen] - Handle 3D input data with bilinear interpolation. [Panu Lahtinen] - Add ImageContainerBilinear, autopep8. [Panu Lahtinen] - Merge pull request #74 from pytroll/fix-close-area-file. [David Hoese] Use context manager to open area definition files - Use context manager to open files, PEP8. [Panu Lahtinen] - Merge pull request #76 from pytroll/feature-xarray. [Martin Raspaud] Support resampling of xarray.DataArrays - Move docstring to init for consistency. [Martin Raspaud] - Merge develop into feature_xarray. [Martin Raspaud] - Support get_lonlats_dask in StackedAreaDefinitions. [Martin Raspaud] - Add get_lonlats_dask for SwathDefinitions. [Martin Raspaud] - Fix resampling of multidimensional xarrays. [Martin Raspaud] - Support xarray and use dask for simple cases. [Martin Raspaud] - WIP: Resampler for xarrays using dask. [Martin Raspaud] - Fix formatting. [Martin Raspaud] - Optimize memory consumption. [Martin Raspaud] - Clean up doc formatting. [Martin Raspaud] - Add dask.Array returning get_lonlats and get_proj_coords. [Martin Raspaud] - Remove Python 3.3 from travis tests, it's not supported anymore. [Panu Lahtinen] - Supress UserWarning about possible extra neighbours within search radius. [Panu Lahtinen] - Handle masked arrays properly for new Numpy versions. [Panu Lahtinen] v1.6.1 (2017-09-18) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.6.0 → 1.6.1. [Martin Raspaud] - Merge pull request #60 from pytroll/feature-dynamic-area. [David Hoese] Add support for dynamic areas - Merge branch 'develop' into feature-dynamic-area. [Martin Raspaud] - Apply assert_allclose to proj dicts for tests. [Martin Raspaud] - Fix some style issues. [Martin Raspaud] - Set DynamicArea proj to `omerc` by default. [Martin Raspaud] - Implement proposed changes in PR review. [Martin Raspaud] - Use numpy's assert almost equal for area_extent comparisons. [Martin Raspaud] - Document the DynamicArea class. [Martin Raspaud] - Fix optimal projection computation tests. [Martin Raspaud] - Pep8 cleanup. [Martin Raspaud] - Valid index computation optimization. [Martin Raspaud] - Change bb computation api to use the whole proj_dict. [Martin Raspaud] - Fix unittests for updated omerc computations. [Martin Raspaud] - Use other azimuth direction for omerc. [Martin Raspaud] - Flip x and y size in omerc projection. [Martin Raspaud] - Bugfix typo. [Martin Raspaud] - Allow lons and lats to be any array in bb computation. [Martin Raspaud] - Add SwathDefinition tests to the test suite. [Martin Raspaud] - Support bounding box area computation from SwathDefintion. [Martin Raspaud] This add support for computing a bounding box area from a swath definition that would fit optimally. The default projection is oblique mercator, with is optimal for locally received imager passes. - Add support for dynamic areas. [Martin Raspaud] - Merge pull request #70 from pytroll/feature-radius-parameters. [David Hoese] Add 'proj4_radius_parameters' to calculate 'a' and 'b' from ellps - Add tests for proj4_radius_parameters. [davidh-ssec] - Fix typo in function call in radius parameters. [davidh-ssec] - Add 'proj4_radius_parameters' to calculate 'a' and 'b' from ellps. [davidh-ssec] - Merge pull request #68 from pytroll/feature-56. [Martin Raspaud] Fix GridDefinition as permitted definition in preprocessing utils - Add more preprocessing tests. [davidh-ssec] - Fix preprocessing functions to use duck type on provided areas. [davidh-ssec] - Fix GridDefinition as permitted definition in preprocessing utils. [davidh-ssec] v1.6.0 (2017-09-12) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.5.0 → 1.6.0. [Martin Raspaud] - Make sure x_size and y_size are ints. [Martin Raspaud] - Merge pull request #69 from pytroll/bugfix-66. [Martin Raspaud] Fix write to mask affecting original mask in future versions of numpy Fixes #66 - Add python 3.6 to travis tests. [davidh-ssec] - Fix write to mask affecting original mask in future versions of numpy. [davidh-ssec] Fix #66 - Merge pull request #67 from pytroll/bugfix-13. [Martin Raspaud] Rename `proj_x/y_coords` to `projection_x/y_coords` - Rename `proj_x/y_coords` to `projection_x/y_coords` [davidh-ssec] Fix #13 - Merge pull request #63 from pytroll/feature-multiple-area-files. [David Hoese] Parse multiple area files - Fix tests_require in setup.py. [davidh-ssec] - Use libgeos-dev to depend on the C++ libgeos-X.X.X and libgeos-c1. [davidh-ssec] - Add simple tests for parsing multiple yaml area strings. [davidh-ssec] - Fix indentation in area file parsing functions. [davidh-ssec] - Add ability to parse multiple area files at once. [davidh-ssec] - Merge pull request #65 from pytroll/fix-numpy-1.13. [Martin Raspaud] Fix numpy 1.13 compatibility - Fix boolean mask array usage in gaussian resampling. [davidh-ssec] In numpy 1.13 it is illegal to index an array with a boolean array of a different size. - Add mock to test dependencies for python <3.3. [davidh-ssec] - Use prepackaged numexpr in bdist_rpm. [Martin Raspaud] v1.5.0 (2017-05-02) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.4.1 → 1.5.0. [Martin Raspaud] - Merge pull request #58 from pytroll/feature-yaml-areas. [David Hoese] Add support for areas in yaml format - Remove support for python 2.6. [Martin Raspaud] - Explain that x/y can be lon/lat. [Martin Raspaud] - Fix __str__ and dump of area defs to be more explicit. [Martin Raspaud] - Add missing doctest file. [Martin Raspaud] - Add yaml as a requirement. [Martin Raspaud] - Add support for areas in yaml format. [Martin Raspaud] - Fix travis script not going back to base directory for coveralls to work. [davidh-ssec] Sphinx was used for testing and included a `cd` command but that made coveralls unable to find the .coverage output. (cherry picked from commit 33e692a) - Replace dict comprehension for 2.6 compatibility. [davidh-ssec] - Add basic ll2cr and fornav wrapper tests. [davidh-ssec] v1.4.1 (2017-04-07) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.4.0 → 1.4.1. [Martin Raspaud] - Fix non-contiguous arrays passed to EWA resampling. [davidh-ssec] Includes fixes for tuple `out` and proper passing of keyword arguments - Ensure pyproj gets ndarrays with np.nans instead of masked arrays. [Panu Lahtinen] - Handle older numpy versions without "copy" kwrd in .astype() [Panu Lahtinen] v1.4.0 (2017-04-02) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.3.1 → 1.4.0. [Martin Raspaud] - Add mock to appveyor. [Martin Raspaud] - Fix 2.6 compatibility. [Martin Raspaud] - Add StackedAreaDefinition class and helper functions. [Martin Raspaud] v1.3.1 (2017-03-22) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.3.0 → 1.3.1. [Martin Raspaud] - Handle TypeError raised by case where all values are masked. [Panu Lahtinen] - Remove trailing spaces in data_reduce.py. [Martin Raspaud] - Fix data reduction when poles are within area. [Martin Raspaud] - Make rtd happy with a new requirements file. [Martin Raspaud] - add pytroll's pykdtree to requirements.txt. [Martin Raspaud] v1.3.0 (2017-02-07) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.9 → 1.3.0. [Martin Raspaud] - Merge pull request #55 from pytroll/feature-bilinear. [Martin Raspaud] Feature bilinear - Add Python2 miniconda version number. [Panu Lahtinen] - Rename *area_in* to *source_geo_def* and *area_out* to *target_area_def* [Panu Lahtinen] - Fix search radius from 50e5 meters to 50e3 meters. [Panu Lahtinen] - Add access to kd_tree parameters reduce_data, segments and epsilon. [Panu Lahtinen] - Add missing return value to docstring. [Panu Lahtinen] - Remove possibility to use tuple of coordinates as "in_area" [Panu Lahtinen] - Try if older version of Pillow is installable with Python 2.6. [Panu Lahtinen] - Remove obsolete tests + minor adjustments + comments. [Panu Lahtinen] Remove tests for functions that were removed. Add test for getting coefficients for quadratic equations. Add test for _get_ts(). Test that small variations doesn't cause failures when solving the quadratic equation. Check all pixels of the output in test_get_bil_info(). - Adjust order so that most common case is first. [Panu Lahtinen] - Remove parallelity checks. [Panu Lahtinen] Don't bother checking if lines area parallel, just run the most common (irregular rectangle) for all data, and run the two algorigthms consecutively for those where no valid data is yet present (ie. have np.nan). - Test failure of _get_ts_irregular when verticals are parallel. [Panu Lahtinen] - Refactor numpyfying. [Panu Lahtinen] - Clarify function name. [Panu Lahtinen] - Refactor. [Panu Lahtinen] Move common parts of _get_ts_irregular() and _get_ts_uprights_parallel() to two functions: one to get the parameters for quadratic equation and one to solve the other fractional distance not solved from the quadratic equation. - Fix example code. [Panu Lahtinen] - Enable doctest for resampling from bilinear coefficients. [Panu Lahtinen] - Fix unittest which had wrong "correct" value. [Panu Lahtinen] - Replace np.ma.masked_where() with np.ma.masked_invalid() [Panu Lahtinen] - Move input checks to a function. [Panu Lahtinen] - Add more unit tests. [Panu Lahtinen] - Move check of source area to get_bil_info() [Panu Lahtinen] - Ensure data is not a masked array. [Panu Lahtinen] - Remove indexing which isn't used. [Panu Lahtinen] - Unpack result one step further to get a float instead of ndarray. [Panu Lahtinen] - Mask out warnings about invalid values in less and greater. [Panu Lahtinen] - Documentation for pyresample.bilinear. [Panu Lahtinen] - Add few tests for bilinear interpolation. [Panu Lahtinen] - Fix typos, fix _get_ts_parallellogram() [Panu Lahtinen] - Adjust comment. [Panu Lahtinen] - Ignore messages about invalid values due to np.nan. [Panu Lahtinen] - Handle cases with parallel sides in the rectangle formed by neighbours. [Panu Lahtinen] - Make it possible to give input coordinates instead of area definition. [Panu Lahtinen] - Fixes: check for # datasets, output shape for multiple datasets, masking, make output reshaping optional. [Panu Lahtinen] - Add convenience function resample_bilinear(), remove unused logging. [Panu Lahtinen] - Rename get_corner() as _get_corner() [Panu Lahtinen] - Add better docstrings, rename helper functions private. [Panu Lahtinen] - Cleanup code. [Panu Lahtinen] - Extend docstrings, add a keyword to return masked arrays or arrays with np.nan:s. [Panu Lahtinen] - Add default value for search radius, adjust default number of neighbours. [Panu Lahtinen] - Initial version of bilinear resampling. [Panu Lahtinen] NOTE: Only works if both source and destination are area definitions. Also to be added is handling for the cases where a__ equals zero (use linear solution of bx + c = 0), testing, logging and all the error handling. - Allow areas to be flipped. [Martin Raspaud] - Factorize get_xy_from_lonlat and get_xy_from_proj_coords. [Martin Raspaud] - Remove `fill_value` documentation for get_neighbour_info. [davidh- ssec] Fix #50 v1.2.9 (2016-12-13) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.8 → 1.2.9. [Martin Raspaud] - Merge pull request #52 from mitkin/mitkin-pr-setuptools32. [Martin Raspaud] Specify minimum version of setuptools - Specify minimum version of setuptools. [Mikhail Itkin] Prior to version 3.2 setuptools would not recognize correctly the language of `*.cpp` extensions and would assume it's `*.c` no matter what. Version 3.2 of setuptools fixes that. - Fix sphinx dependency to support python 2.6 and 3.3. [Martin Raspaud] v1.2.8 (2016-12-06) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.7 → 1.2.8. [Martin Raspaud] - Correct style in setup.py. [Martin Raspaud] - Make pykdtree a requirement. [Martin Raspaud] - Correct style in geometry.py. [Martin Raspaud] - Allow precision errors when comparing area_extents. [Martin Raspaud] - Allow numbers in proj dict when building proj4 string. [Martin Raspaud] v1.2.7 (2016-11-15) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.6 → 1.2.7. [Martin Raspaud] - Add bump and changelog config files. [Martin Raspaud] - Merge pull request #49 from Funkensieper/fix-polygon-area. [Martin Raspaud] Fix polygon area - Disable snapping of angles in get_polygon_area() [Stephan Finkensieper] - Add option to disable snapping in Arc.angle() - Don't snap angles when computing polygon areas in order to prevent negative area values - Adjust reference values in tests on overlap-rate - Fix polygon area computation for R != 1. [Stephan Finkensieper] Parentheses were missing, see http://mathworld.wolfram.com/SphericalTriangle.html for reference. Only affects earth radius R != 1 which is not implemented yet. - Install pykdtree from conda forge in pre-master. [davidh-ssec] - Merge pull request #47 from mitkin/feature_plot-cmap. [David Hoese] Add option to choose colormap - Add option to choose colormap. [Mikhail Itkin] Make possible to indicate which colormap to use when plotting image v1.2.6 (2016-10-19) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.5 → 1.2.6. [Martin Raspaud] - Pre master (#44) [Radar, Satellite and Nowcasting Division] * add a subset function to the geometry file Often subsets of the SEVIRI disk are save in SEVIRI products. This new function calculated the area extent needed for the specification of the area, starting from the SEVIRI full disk area object. * added the get_area_extent_for_subset function to the geometry.py file * new function for getting area subsets * new function get_xy_from_proj_coordinates retrieve the pixel indices x and y from the map projection coordinates in meter (very similar to get_xy_from_lonlat) * removed pyc file, that should not be in the git repository - Add appveyor status badge to README. [davidh-ssec] - Merge remote-tracking branch 'deni90/master' into pre-master-davidh. [davidh-ssec] - Fix test_custom_uncert and test_gauss_uncert for mips* [Daniel Knezevic] - Fix pykdtree install on appveyor by turning off OpenMP. [davidh-ssec] - Update appveyor config to install missing headers required by pykdtree. [davidh-ssec] - Change appveyor to use conda-forge instead of IOOS. [davidh-ssec] - Add slack notifications from appveyor. [davidh-ssec] v1.2.5 (2016-07-21) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.4 → 1.2.5. [Martin Raspaud] - Fix EWA fornav for integer data and add test. [davidh-ssec] There was a bug when doing the averaging in EWA where the current pixel was being rounded based on the previous pixel's value instead of the current pixel. This only affects integer data because values above 0 are rounded up by 0.5 and values below 0 are rounded by 0.5, for floats this round value is 0.0. - Fix certain compilers not liking integers being passed to isnan. [davidh-ssec] - Replace catch_warnings in all tests with astropy version. [davidh- ssec] - Use catch_warnings from astropy (or at least try to) [davidh-ssec] - Test removing version specific warning checks in `test_swath_wrap` [davidh-ssec] - Move USE_CYTHON handling to if main block in setup.py. [davidh-ssec] - Fix isnan definition only if a macro doesn't already exist. [davidh- ssec] Numpy does some special macro stuff to define a good npy_isnan function. Some systems define a macro for it, others don't. Hopefully this works for all systems. A better solution might be to define a templated isnan that calls npy_isnan if it isn't an integer. - fix EWA compile failure on windows python 3.5. [David Hoese] - Make pykdtree install on appveyor optional. [davidh-ssec] - Add pykdtree to appveyor dependencies. [davidh-ssec] - Fix setup.py test on windows for multiprocessing tests. [davidh-ssec] On Windows when new processes are started the initially command is imported or re-executed. For setup.py this is a big problem since the usual boilerplate does not include `if __name__ == "__main__"` so the setup.py test command gets rerun and rerun. This results in the child processes never actually being run for newer versions of python (2.7+). There still seems to be an issue with `test_nearest_resize` on Windows. - Merge pull request #41 from cpaulik/fix-windows-ewa. [David Hoese] Fix Windows CI import Error - Install scipy in Windows CI to fix import problems. [Christoph Paulik] - Fix copy/paste error in EWA fornav. [davidh-ssec] I had started rewriting EWA in cython then realized it was faster in straight C++ so copied/pasted the cython code and modified it. Seems like I missed this 'or' hanging around. - Fix NAN constant/macro for EWA on Windows. [davidh-ssec] - Merge branch 'add-windows-CI' into fix-windows-ewa. [davidh-ssec] - CI: Add IOOS conda channel to get basemap for Windows and python > 2. [Christoph Paulik] - Merge branch 'add-windows-CI' into fix-windows-ewa. [davidh-ssec] - Add pyproj to conda install in Appveyor CI. [Christoph Paulik] - Make extra_compile_args platform dependent. [Christoph Paulik] - Add Appveyor CI configuration. [Christoph Paulik] - Fix EWA resampling's isnan to work better with windows. [davidh-ssec] v1.2.4 (2016-06-27) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.3 → 1.2.4. [Martin Raspaud] - Fix setup.py extension import and use error. [davidh-ssec] - Fix case when __builtins__ is a dict. [Martin Raspaud] v1.2.3 (2016-06-21) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.2 → 1.2.3. [Martin Raspaud] - Fix list of package names in setup.py. [davidh-ssec] 'pyresample.ewa' wasn't listed before and was not importable from an installed package. v1.2.2 (2016-06-21) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.1 → 1.2.2. [Martin Raspaud] - Add the header files to the MANIFEST.in. [Martin Raspaud] Without this, the compilation of the ewa extension crashes. v1.2.1 (2016-06-21) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.2.0 → 1.2.1. [Martin Raspaud] - Include EWA header files as dependency for extensions. [davidh-ssec] The .c and .cpp files are automatically included because they are listed as sources, but the header files are not. When building a source tarball (uploading to PyPI) the _fornav_templates.h file was not included and building would fail. - Merge branch 'pre-master' of github.com:mraspaud/pyresample into pre- master. [Adam.Dybbroe] - Merge branch 'pre-master' of github.com:mraspaud/pyresample into pre- master. [Adam.Dybbroe] Conflicts: docs/source/conf.py - Run the base class init function first. [Adam.Dybbroe] v1.2.0 (2016-06-17) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.1.6 → 1.2.0. [Martin Raspaud] - Merge branch 'northaholic-feature-lonlat2colrow' into pre-master. [Adam.Dybbroe] - Add two convenience methods lonlat2colrow and colrow2lonlat to AreaDefinition-class. [Sauli Joro] - Fix bug in EWA grid origin calculation. [davidh-ssec] Forgot that cell height was negative so ended up subtracting a negative, going in the wrong direction for the Y origin of the grid. - Merge pull request #37 from davidh-ssec/feature-ewa-resampling. [David Hoese] Feature ewa resampling - Fix bug in EWA conversion from AreaDefinition to upper-left origin X/Y. [davidh-ssec] I was using the area extent for the origin x/y locations, but the extent is actually the outer edge of the pixels so half a pixel needs to be added to each coordinate. - Add EWA C extensions to mocked modules for read the docs. [davidh- ssec] Readthedocs.org fails to import the _ll2cr and _fornav extensions because it seems to not compile them properly. Their documentation isn't necessarily needed so I'm hoping that mocking them will let the import work. - Add pyresample.ewa to API documentation list. [davidh-ssec] - Update EWA wrapper functions to use explicit kwargs. [davidh-ssec] - Correct comments and documentation in EWA documentation. [davidh-ssec] - Add ll2cr and fornav wrappers to make calling easier. [davidh-ssec] Updated documentation with correct usage and added information why EWA is different than kdtree - Fix print statements in documentation so doctests are python 3 compatible. [davidh-ssec] - Add pillow dependency for plot tests and quicklook extra. [davidh- ssec] - Add 'areas.cfg' file to repository and modify doctests to use that instead. [davidh-ssec] - Run doctests after unittests on travis. [davidh-ssec] - Fix documentation for AreaDefinition object. [davidh-ssec] - Update documentation to be numpy style and get rid of all warnings when building docs. [davidh-ssec] - Create special requirements.txt for docs. [davidh-ssec] Readthedocs really doesn't like an empty string for the requirements file - Try empty string for requirements file in readthedocs yaml. [davidh- ssec] - Fix readthedocs yaml config file. [davidh-ssec] Readthedocs was using the requirements file during package installation, but was failing to install basemap (not needed for documentation build) so I attempted to make it an empty string in the yaml file. This makes Rtd hang on the build process. This should at least stop the hanging. - Add napoleon docs extension and intial testing with numpy style docstrings. [davidh-ssec] - Add working example for EWA resampling to docs. [davidh-ssec] I originally had this example but removed it when I had import problems. After I figured those out I forgot to put the original example back. - Add basemap back in to the requirements.txt so that it can be installed on travis. [davidh-ssec] Similarly removed the requirements file when readthedocs is running and mocked third-party packages to documentation can still be built - Fix setup.py requiring numpy for extension includes. [davidh-ssec] The EWA extensions require the numpy headers to be built. These are normally found by importing numpy and doing `numpy.get_includes()`. Obviously if this is run on a new environment numpy is probably not installed so a simple `python setup.py install` will fail. - Add "quicklook" extra in to travis test install. [davidh-ssec] These packages are needed to properly test the "plot" package. These were included in requirements.txt but have been moved for now. - Move plot test imports in to test functions for cleaner test failures. [davidh-ssec] - Add readthedocs yaml file for configuration. [davidh-ssec] - Remove mocked modules from sphinx docs conf.py. [davidh-ssec] This is the first step in making pyresamples docs buildable in the current readthedocs version - Replace relative imports with absolute imports. [davidh-ssec] I noticed a lot of warnings and import problems with building pyresample's documentation because of these relative imports - Add EWA documentation to swath.rst. [davidh-ssec] - Add tests for EWA fornav module. [davidh-ssec] - Update documentation for ll2cr and fornav cython. [davidh-ssec] - Merge remote-tracking branch 'davidh_fork/feature-ewa-resampling' into feature-ewa-resampling. [davidh-ssec] # Conflicts: # pyresample/ewa/_fornav.pyx # pyresample/ewa/_ll2cr.pyx - Remove old and unused polar2grid ll2cr and fornav python modules. [davidh-ssec] - Fix travis tests on python 2.6. [davidh-ssec] - Add ewa ll2cr tests to main test suite. [davidh-ssec] - Add simple tests for ewa ll2cr. [davidh-ssec] These tests were adapted from Polar2Grid so some of the terminology or organization might reflect P2G's design rather than satpy or pyresample. - Revert import multiprocessing setup.py for python 2.6 compatibility. [davidh-ssec] - Fix old polar2grid import in ll2cr module. [davidh-ssec] - Add method for converting area def to areas.def string format. [davidh-ssec] - Remove unused code from fornav wrapper. [davidh-ssec] - Add initial EWA files copied from Polar2Grid. [davidh-ssec] - Add basic documentation to fornav cython function. [davidh-ssec] - Remove old and unused polar2grid ll2cr and fornav python modules. [davidh-ssec] - Fix travis tests on python 2.6. [davidh-ssec] - Add ewa ll2cr tests to main test suite. [davidh-ssec] - Add simple tests for ewa ll2cr. [davidh-ssec] These tests were adapted from Polar2Grid so some of the terminology or organization might reflect P2G's design rather than satpy or pyresample. - Revert import multiprocessing setup.py for python 2.6 compatibility. [davidh-ssec] - Fix old polar2grid import in ll2cr module. [davidh-ssec] - Add method for converting area def to areas.def string format. [davidh-ssec] - Remove unused code from fornav wrapper. [davidh-ssec] - Add initial EWA files copied from Polar2Grid. [davidh-ssec] - Add .gitignore with python and C patterns. [davidh-ssec] - Update tests so they don't fail on OSX. [davidh-ssec] OSX seems to calculate slightly different results from `_spatial_mp.Cartesian` regardless of numexpr being installed. Although the changes are small they seem to affect the results enough to fail this test compared to normal linux execution. - Add 'load_tests' for easier test selection. [davidh-ssec] PyCharm and possibly other IDEs don't really play well with unittest TestSuites, but work as expected when `load_tests` is used. - Make kd_tree test work on older numpy version. [Martin Raspaud] VisibleDeprecationWarning is not available in numpy <1.9. - Adapt to newest pykdtree version. [Martin Raspaud] The kdtree object's attribute `data_pts` has been renamed to `data`. - Run tests on python 3.5 in travis also. [Martin Raspaud] v1.1.6 (2016-02-25) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.1.5 → 1.1.6. [Martin Raspaud] - Fix #35 supporting scipy kdtree again. [Martin Raspaud] A previous commit was looking for a 'data_pts' attribute in the kdtree object, which is available in pykdtree, but not scipy. - Merge pull request #32 from mitkin/master. [Martin Raspaud] [tests] Skip deprecation warnings in test_gauss_multi_uncert - Merge remote-tracking branch 'gh-pytroll/pre-master' [Mikhail Itkin] - Put quotes around pip version specifiers to make things work. [Martin Raspaud] - Install the right matplotlib in travis. [Martin Raspaud] The latest matplotlib (1.5) doesn't support python 2.6 and 3.3. This patch chooses the right matplotlib version to install depending on the python version at hand. - Skip deprecation warnings. [Mikhail Itkin] Catch the rest of the warnings. Check if there is only one, and whether it contains the relevant message ('possible more than 8 neighbours found'). This patch is necessary for python 2.7.9 and newer - Merge pull request #31 from bhawkins/fix-kdtree-dtype. [Martin Raspaud] Fix possible type mismatch with pykdtree. - Add test to expose pykdtree TypeError exception. [Brian Hawkins] - Fix possible type mismatch with pykdtree. [Brian Hawkins] v1.1.5 (2015-10-12) ------------------- - update changelog. [Martin Raspaud] - Bump version: 1.1.4 → 1.1.5. [Martin Raspaud] - Don't build on 3.2 anymore (because of coverage's lack of support for 3.2). [Martin Raspaud] - Fix build badge adress. [Martin Raspaud] - Fix the unicode problem in python3. [Martin Raspaud] v1.1.4 (2015-10-08) ------------------- Fix ~~~ - Bugfix: Accept unicode proj4 strings. Fixes #24. [Martin Raspaud] Other ~~~~~ - update changelog. [Martin Raspaud] - Bump version: 1.1.3 → 1.1.4. [Martin Raspaud] - Add python-configobj as a rpm requirement in setup.cfg. [Martin Raspaud] - Add setup.cfg to allow rpm generation with bdist_rpm. [Martin Raspaud] - Bugfix to address a numpy DeprecationWarning. [Martin Raspaud] Numpy won't take non-integer indices soon, so make index an int. - Merge branch 'release-1.1.3' [Martin Raspaud] - Merge branch 'licence-lgpl' into pre-master. [Martin Raspaud] - Switch to lgplv3, and bump up version number. [Martin Raspaud] - Swith badge to main repository. [Martin Raspaud] - Merge branch 'hotfix-v1.1.2' into pre-master. [Martin Raspaud] - Merge branch 'hotfix-v1.1.2' [Martin Raspaud] - Bump up version number. [Martin Raspaud] - Merge branch 'mitkin-master' into hotfix-v1.1.2. [Martin Raspaud] - Merge branch 'master' of https://github.com/mitkin/pyresample into mitkin-master. [Martin Raspaud] - [test_plot] allow travis to test plot.py. [Mikhail Itkin] - [pip+travis] use `requirements.txt` [Mikhail Itkin] Use `requirements.txt` instead of setuptools' `extras_require` for installing basemap. That is because PyPi basemap version won't find libgeos library so we resolve to use latest basemap from git. `Extras_require` don't allow providing custom links, only PyPi package names, so we have to specify links in requirements.txt. `dependency_links` argument to `setup` call is meant for cruicial dependencies, not custom ones, so we don't use them neither. - [README] markdown + build status. [Mikhail Itkin] * Using markdown extension, added `README` symlink * Added travis build status badge - remove pip `-e` switch. [Mikhail Itkin] - Merge branch 'master' of github.com:mitkin/pyresample. [Mikhail Itkin] - don't use setup.py for basemap installation. [Mikhail Itkin] Instead of putting basemap and matplotlib into `extras_require` install them directly - don't use setup.py for basemap installation. [Mikhail Itkin] Instead of putting basemap and matplotlib into `extras_require` install them directly - Using ubuntu GIS custom ppa. [Mikhail Itkin] Added custom ppa with more up-to-date libgeos dependencies - Install extra requirements using pip functionality. [Mikhail Itkin] - Added more meaningful "quicklooks" name. [Mikhail Itkin] Using quicklooks name as it's what matplotlib and basemap are needed for - [setup] added plotting dependencies. [Mikhail Itkin] pyresample/plot requires two extra dependencies: * matplotlib * basemap - [travis] added system dependencies. [Mikhail Itkin] * matplotlib requires libfreetype6-dev * basemap requires libgeos libgeos-c1 and libgeos-dev - Merge branch 'release-v1.1.1' [Martin Raspaud] - Merge branch 'release-v1.1.1' [Martin Raspaud] - Restore API functionality by importing necessary modules in __init__ [Martin Raspaud] - Merge branch 'release-v1.1.1' into pre-master. [Martin Raspaud] Conflicts: pyresample/geometry.py pyresample/kd_tree.py test/test_geometry.py - Removing old test directory. [Martin Raspaud] - Merge the hotfix and the unittest restructuring into the release branch. [Martin Raspaud] - Merge branch 'release-v1.1.1' into hotfix-1.1.1. [Thomas Lavergne] Conflicts: pyresample/geometry.py test/test_geometry.py test/test_grid.py - Be specific about the valid range of longitudes. [Thomas Lavergne] - Be more specific about the valid longitude range [-180:+180[. Add a test for utils.wrap_longitudes() [Thomas Lavergne] - Add check on valid latitude in [-90:+90] (and associated test) [Thomas Lavergne] - Automatic longitude wrapping (bugfix towards 1.1.1) [Thomas Lavergne] - Merge branch 'release-v1.1.1' into pre-master. [Martin Raspaud] - Add news about new release. [Martin Raspaud] - remove some relative imports. [Martin Raspaud] - Cleanup and bump up version number to v1.1.1. [Martin Raspaud] - Add pykdtree to the list of requirements for travis. [Martin Raspaud] - Add .travis.yml file for automatic testing. [Martin Raspaud] - Correct handling of long type in kd_tree.py for Python 2. [Martin Valgur] - Made testing of a Proj4 string independent of the order of elements inside the string since the order was different on Python 2 and 3. Replaced deprecated failIf with assertFalse. [Martin Valgur] - Multiple small fixes to make the code work on both Python 2 and 3. shmem_as_ndarray() now uses numpy.frombuffer() to provide equivalent functionality. [Martin Valgur] - Got rid of dependencies on the six package. [Martin Valgur] - Applied python-modernize to pyresample. [Martin Valgur] - Update README. [Martin Raspaud] - Merge branch 'pre-master' of https://code.google.com/p/pyresample into pre-master. [Martin Raspaud] - A stray line of code is removed and I take back the recent enhancement concerning swath to swath mapping. [Adam Dybbroe] - Removed debug printouts. [Adam Dybbroe] - More active support of swath to swath reprojection. [Adam Dybbroe] - Add a plot on multiprocessing performance increases. [Martin Raspaud] - Added outer_boundary_corners property to the area def class. [Adam Dybbroe] - corrected docs. [Esben S. Nielsen] - modified uncert count to show above 0. Updated docs to relect uncert option. [Esben S. Nielsen] - cleaned up code a bit in kd_tree.py. [Esben S. Nielsen] - made API doc work with readthedocs and bumped version number. [Esben S. Nielsen] - cleaned up code and tests. [Esben S. Nielsen] - added masking of uncert counts. [Esben S. Nielsen] - test passes again for uncertainty calculations. [Esben S. Nielsen] - changed uncertainty API. First working uncertainty version. [Esben S. Nielsen] - not quite there. [Esben S. Nielsen] - basic uncertainty implemented. [Esben S. Nielsen] - updated docs. [Esben S. Nielsen] - Fixing bug, and adding unittest-main run. [Adam Dybbroe] - Making get_xy_from_lonlat work on arrays of points as well as single points. [Adam Dybbroe] - renamed functions in geometry.py and added proj_x_coords and proj_y_coords properties. [Esben S. Nielsen] - corrected __eq__ in geometry. [Esben S. Nielsen] - Merge branch 'pre-master' of https://code.google.com/p/pyresample into pre-master. [Adam Dybbroe] - now kd_tree resampling selects dtype. [Esben S. Nielsen] - removed random print statement. [Esben S. Nielsen] - made get_capabilites function. [Esben S. Nielsen] - test passes again. [Esben S. Nielsen] - removed caching from geometry. [Esben S. Nielsen] - Merge branch 'pre-master' of https://code.google.com/p/pyresample into pre-master. [Martin Raspaud] - Optimize transform_lonlats with numexpr. [Martin Raspaud] - Unittests should work for both py2.6 and 2.7. [Adam Dybbroe] - updated docs. [Esben S. Nielsen] - fixed unit tests. [Esben S. Nielsen] - Using assertRaises in py2.6 and py2.7 compatible version. [Adam Dybbroe] - bugfix to unittest suite. [Adam Dybbroe] - Trying to make test-functions compatible with both python 2.6 and 2.7. [Adam Dybbroe] - Fixing bug in get_xy_from_lonlat and adding unittests on this function. [Adam Dybbroe] - Adding function get_xy_from_lonlat. [Adam Dybbroe] - integrated pykdtree and handled latlong projection bug. [Esben S. Nielsen] - updated unit tests according to deprecation warnings. [Esben S. Nielsen] - Better parsing of a area definition (allow ':' in value fields) [Lars Orum Rasmussen] - updated docs. [Esben S. Nielsen] - Merge branch 'pre-master' of https://code.google.com/p/pyresample into pre-master. [Martin Raspaud] - doc version. [esn] - improved Basemap integration with globe projections. Updated docs on epsilon. [esn] - Accomodate for allclose behaviour change in numpy 1.6.2. [Martin Raspaud] From 1.6.2 numpy.allclose does not accept arrays that cannot be broadcasted to the same shape. Hence a ValueError catch to return False. - updadet doc for plotting. [Esben S. Nielsen] - updated plot test to use AGG. [Esben S. Nielsen] - Now handles plotting in Plate Carre projection. Added utils.fwhm2sigma function. [Esben S. Nielsen] - Merge branch 'master' of https://code.google.com/p/pyresample. [Esben S. Nielsen] - added pypi info. [Esben S. Nielsen] - built docs. [Esben S. Nielsen] - corrected test_swath.py to account for implementation specific precision. [Esben S. Nielsen] - more datatype specifications. [Esben S. Nielsen] - removed warning check for python 2.5. [Esben S. Nielsen] - corrected multi channnel bug. Added warnings for potential problematic neighbour query condition. [Esben S. Nielsen] - Now str() generates a unique string for area and coordinate definition object. [Lars Orum Rasmussen] - corrected manifest so doc images are included. [Esben S. Nielsen] - Moved tests dir to test. Updated MANIFEST.in. [Esben S. Nielsen] - Added MANIFEST.in. [Esben S. Nielsen] - Applied setup.py patches. Made plotting more robust. [Esben S. Nielsen] - applied patch for getting version number. [Esben S. Nielsen] - Bugfixing quicklooks. [StorPipfugl] - Updated docs. [StorPipfugl] - Updated docs. [StorPipfugl] - Updated docs. [StorPipfugl] - Added Basemap integration. [StorPipfugl] - Added Basemap integration. [StorPipfugl] - Updated docs. [StorPipfugl] - Rebuild docs. [StorPipfugl] - Made setup.py more robust. [StorPipfugl] - New doc version. [StorPipfugl] - Updated tests. [StorPipfugl] - Reduced size of linesample arrays. Restructures kd_tree query to remove redundant lon lat calculations. [StorPipfugl] - Added geographic filtering. Swaths can now be concatenated and appended. User no langer have to ravel data before resampling. [StorPipfugl] - Updated docs. [StorPipfugl] - Updated install_requires. [StorPipfugl] - version 0.7.3. [StorPipfugl] - Bugfixes: Correct number of channels in empty result set. Resampling of masked data to 1d swath now works. [StorPipfugl] - Added Martin's spherical geometry operations. Updated documentation. [StorPipfugl] - Added equal and not equal operators for geometry defs. Restructured the geometry module to be pickable. Added correct handling of empty result data sets. [StorPipfugl] - Incomplete - taskpyresample. [StorPipfugl] - Set svn:mime-type. [StorPipfugl] - Corrected doc errors. [StorPipfugl] - Removed dist dir. [StorPipfugl] - No commit message. [StorPipfugl] - Updated documentation. New release. [StorPipfugl] - Started updating docstrings. [StorPipfugl] - Restructured API. [StorPipfugl] - Now uses geometry types. Introduced API symmetry between swath->grid and grid->swath resampling. [StorPipfugl] - Consolidated version tag. [StorPipfugl] - Mime types set. [StorPipfugl] - Mime types set. [StorPipfugl] - Removed test. [StorPipfugl] - Removed unneeded function. [StorPipfugl] - Mime types set. [StorPipfugl] - Mime types set. [StorPipfugl] - No commit message. [StorPipfugl] - Moved to Google Code under GPLv3 license. [StorPipfugl] - moved to Google Code. [StorPipfugl] pyresample-1.8.1/docs/000077500000000000000000000000001324347254000146365ustar00rootroot00000000000000pyresample-1.8.1/docs/Makefile000066400000000000000000000061051324347254000163000ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = -a SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pyresample.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pyresample.qhc" latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." pyresample-1.8.1/docs/areas.cfg000066400000000000000000000220741324347254000164170ustar00rootroot00000000000000REGION: afghanistan { NAME: Afghanistan PCS_ID: merc PCS_DEF: proj=merc,lat_ts=35,a=6370997.0,lon_0=67.5,lat_0=35 XSIZE: 1600 YSIZE: 1600 AREA_EXTENT: (-1600000.0, 1600000.0, 1600000.0, 4800000.0) }; REGION: EuropeCanary { NAME: Northern globe MSG image 0 degrees PCS_ID: geos0 PCS_DEF: proj=geos, lon_0=0.0, a=6378169.00, b=6356583.80, h=35785831.0 XSIZE: 3000 YSIZE: 1200 #AREA_EXTENT: (-4820647.75308, 1967264.34239, 4180561.74437, 5567748.14137) #AREA_EXTENT: (-4820147.6858850112, 1966764.2751930435, 4181061.8115659896, 5567248.074173444) AREA_EXTENT: (-4823148.0890508275, 1969764.6783588605, 4178061.4084001728, 5570248.4773392612) }; REGION: AfHorn { NAME: Eastern globe MSG image 0 degrees PCS_ID: geos0 PCS_DEF: proj=geos, lon_0=0.0, a=6378169.00, b=6356583.80, h=35785831.0 XSIZE: 1100 YSIZE: 1600 #AREA_EXTENT: (2266804.5917747435, -1330678.8040398397, 5567248.074173444, 3469966.2612673608) AREA_EXTENT: (2263804.1886089267, -1327678.4008740226, 5564247.6710076267, 3472966.6644331776) }; REGION: afhorn { NAME: Africa horn 3km resolution PCS_ID: merc50 PCS_DEF: proj=merc,ellps=bessel,lon_0=50.0 XSIZE: 1622 YSIZE: 1622 AREA_EXTENT: (-2432000.0,-1130348.139543,2432000.0,3733651.860457) }; REGION: met09globe { NAME: Cropped globe MSG image 0 degrees PCS_ID: geos0 PCS_DEF: proj=geos, lon_0=0.0, a=6378169.00, b=6356583.80, h=35785831.0 #PCS_DEF: proj=geos, lon_0=0.0, a=6378144.0, b=6356759.0, h=35785831.0, rf=295.49 XSIZE: 3620 YSIZE: 3620 #AREA_EXTENT: (-5430729.7301287707, -5430729.7301287707, 5430729.7301287707, 5430729.7301287707) AREA_EXTENT: (-5432229.9317116784, -5429229.5285458621, 5429229.5285458621, 5432229.9317116784) }; REGION: met09globeFull { NAME: Full globe MSG image 0 degrees PCS_ID: geos0 PCS_DEF: proj=geos, lon_0=0.0, a=6378169.00, b=6356583.80, h=35785831.0 #PCS_DEF: proj=geos, lon_0=0.0, a=6378144.0, b=6356759.0, h=35785831.0, rf=295.49 XSIZE: 3712 YSIZE: 3712 AREA_EXTENT: (-5570248.4773392612, -5567248.074173444, 5567248.074173444, 5570248.4773392612) }; REGION: met07globe { NAME: Full globe IODC image 57 degrees PCS_ID: geos57 PCS_DEF: proj=geos, lon_0=57.0, a=6378140.00, b=6356755.0, h=35785831.0 # PCS_DEF: proj=geos, lon_0=57.0, a=6378169.0, b=6356584.0, h=35785831.0, rf=295.49 XSIZE: 2500 YSIZE: 2500 AREA_EXTENT: (-5621225.237846375, -5621225.237846375, 5621225.237846375, 5621225.237846375) }; REGION: germ { NAME: Germany PCS_ID: ps50n1 PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=5,lat_ts=50,a=6378144.0,b=6356759.0 XSIZE: 1024 YSIZE: 1024 AREA_EXTENT: (-155100.436345,-4441495.37946,868899.563655,-3417495.37946) }; REGION: euro4 { NAME: Euro 4km area - Europe PCS_ID: ps60n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60 XSIZE: 1024 YSIZE: 1024 AREA_EXTENT: (-2717181.7304994687,-5571048.1403121399,1378818.2695005313,-1475048.1403121399) }; REGION: MSGHRVN { NAME: High resolution northern quarter globe MSG image 0 degrees PCS_ID: geos0 PCS_DEF: proj=geos, lon_0=0.0, a=6378144.0, b=6356759.0, h=35785831.0, rf=295.49 XSIZE: 11136 YSIZE: 2784 AREA_EXTENT: (-5568742.4, 2655354.0, 5568742.4, 5439725.2) }; REGION: scan { NAME: Scandinavia PCS_ID: ps60n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60 XSIZE: 512 YSIZE: 512 AREA_EXTENT: (-1268854.1266382949, -4150234.8425892727, 779145.8733617051, -2102234.8425892727) }; REGION: scan2 { NAME: Scandinavia - 2km area PCS_ID: ps60n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60 XSIZE: 1024 YSIZE: 1024 AREA_EXTENT: (-1268854.1266382949, -4150234.8425892727, 779145.8733617051, -2102234.8425892727) }; REGION: scan1 { NAME: Scandinavia - 1km area PCS_ID: ps60n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60 XSIZE: 2048 YSIZE: 2088 AREA_EXTENT: (-1268854.1266382949, -4150234.8425892727, 779145.8733617051, -2062234.8425892727) }; REGION: mesanX { NAME: Mesan-X rotated lon/lat 1.8km PCS_ID: mesan PCS_DEF: proj=ob_tran,o_proj=eqc,o_lat_p=30,o_lon_p=10,lon_0=-10,a=6371000.0 XSIZE: 1476 YSIZE: 1608 AREA_EXTENT: (1067435.7598983962, -1278764.8903419089, 3791765.9965939857, 1690140.6680267097) }; REGION: mesanE { NAME: Europe Mesan rotated lon/lat 1.8km PCS_ID: mesan PCS_DEF: proj=ob_tran,o_proj=eqc,o_lat_p=30,o_lon_p=10,lon_0=-10,a=6371000.0 XSIZE: 5093 YSIZE: 6294 AREA_EXTENT: (289083.00056196708, -2957836.6467769896, 5381881.121371055, 3335826.6850212598) }; REGION: baws { NAME: BAWS PCS_ID: baws PCS_DEF: proj=aea,ellps=bessel,lon_0=14,lat_1=60,lat_2=60 XSIZE: 1400 YSIZE: 1400 AREA_EXTENT: (-475617, 5324430, 924383, 6724430) }; REGION: eurotv { NAME: Europe TV - 6.2x5.0km PCS_ID: eurotv PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60,a=6378144.0,b=6356759.0 XSIZE: 1024 YSIZE: 1024 AREA_EXTENT: (-3503748.8201907813, -6589593.1340587894, 2842567.6359087573, -1499856.5846593212) }; REGION: eurotv4n { NAME: Europe TV4 - 4.1x4.1km PCS_ID: eurotv4n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60,a=6378144.0,b=6356759.0 XSIZE: 2048 YSIZE: 1152 AREA_EXTENT: (-5103428.6786669521, -6772478.6005340703, 3293371.3213330479, -2049278.6005340703) }; REGION: eurol { NAME: Euro 3.0km area - Europe PCS_ID: ps60wgs84 PCS_DEF: proj=stere,ellps=WGS84,lat_0=90,lon_0=0,lat_ts=60 XSIZE: 2560 YSIZE: 2048 AREA_EXTENT: (-3780000.0, -7644000.0, 3900000.0, -1500000.0) }; REGION: scanl { NAME: Scandinavia - Large PCS_ID: ps60wgs84 PCS_DEF: proj=stere,ellps=WGS84,lat_0=90,lon_0=0,lat_ts=60 XSIZE: 2900 YSIZE: 2900 AREA_EXTENT: (-900000.0, -4500000.0,2000000.0, -1600000.0) }; REGION: euron1 { NAME: Northern Europe - 1km PCS_ID: ps60wgs84 PCS_DEF: proj=stere,ellps=WGS84,lat_0=90,lon_0=0,lat_ts=60 XSIZE: 3072 YSIZE: 3072 AREA_EXTENT: (-1000000.0, -4500000.0, 2072000.0, -1428000.0) }; REGION: nsea { NAME: North Baltic Sea PCS_ID: merc PCS_DEF: proj=merc,ellps=WGS84,lat_ts=0,lon_0=15 XSIZE: 1024 YSIZE: 1024 AREA_EXTENT: (-322789.07638000086, 7784901.986829306, 1725210.9236199991, 9832901.9868293069) }; REGION: ssea { NAME: South Baltic Sea PCS_ID: merc PCS_DEF: proj=merc,ellps=WGS84,lat_ts=0,lon_0=15 XSIZE: 1024 YSIZE: 1024 AREA_EXTENT: (-801407.36204689811, 7003690.6636438016, 1246592.6379531019, 9051690.6636438016) }; REGION: euro { NAME: Euro area - Europe PCS_ID: ps60n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60 XSIZE: 512 YSIZE: 512 AREA_EXTENT: (-2717181.7304994687,-5571048.1403121399,1378818.2695005313,-1475048.1403121399) }; REGION: euro_north { NAME: Europe 3km/pixel PCS_ID: euro_north PCS_DEF: proj=stere,lon_0=8.00,lat_0=50.00,lat_ts=50.00,ellps=WGS84 XSIZE: 800 YSIZE: 870 AREA_EXTENT: (-1370912.16,-909970.17,1029087.84,1700029.83) }; REGION: ease_sh { NAME: Antarctic EASE grid PCS_ID: ease_sh PCS_DEF: proj=laea, lat_0=-90, lon_0=0, a=6371228.0, units=m XSIZE: 425 YSIZE: 425 AREA_EXTENT: (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) }; REGION: ease_nh { NAME: Arctic EASE grid PCS_ID: ease_nh PCS_DEF: proj=laea, lat_0=90, lon_0=0, a=6371228.0, units=m XSIZE: 425 YSIZE: 425 AREA_EXTENT: (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) }; # VIIRS test areas: REGION: npp_sample_m { NAME: North America - NPP sample data - M-bands PCS_ID: laeaw12060 PCS_DEF: proj=laea,a=6370997.0,lat_0=60.0,lon_0=-120.0 XSIZE: 1500 YSIZE: 1500 AREA_EXTENT: (-1700000, -1400000, 1100000, 1400000) }; REGION: npp_sample_i { NAME: North America - NPP sample data - I-bands PCS_ID: laeaw12060 PCS_DEF: proj=laea,a=6370997.0,lat_0=60.0,lon_0=-120.0 XSIZE: 1200 YSIZE: 800 AREA_EXTENT: (-200000, 100000, 400000, 500000) }; REGION: scan500m { NAME: Scandinavia - 500m area PCS_ID: ps60n PCS_DEF: proj=stere,ellps=bessel,lat_0=90,lon_0=14,lat_ts=60 XSIZE: 4096 YSIZE: 4176 AREA_EXTENT: (-1268854.1266382949, -4150234.8425892727, 779145.8733617051, -2062234.8425892727) }; pyresample-1.8.1/docs/areas.yaml000066400000000000000000000011201324347254000166070ustar00rootroot00000000000000ease_sh: description: Antarctic EASE grid projection: a: 6371228.0 units: m lon_0: 0 proj: laea lat_0: -90 shape: height: 425 width: 425 area_extent: lower_left_xy: [-5326849.0625, -5326849.0625] upper_right_xy: [5326849.0625, 5326849.0625] units: m ease_nh: description: Arctic EASE grid projection: a: 6371228.0 units: m lon_0: 0 proj: laea lat_0: 90 shape: height: 425 width: 425 area_extent: lower_left_xy: [-5326849.0625, -5326849.0625] upper_right_xy: [5326849.0625, 5326849.0625] units: m pyresample-1.8.1/docs/requirements.txt000066400000000000000000000000671324347254000201250ustar00rootroot00000000000000git+https://github.com/pytroll/pykdtree.git@pre-master pyresample-1.8.1/docs/source/000077500000000000000000000000001324347254000161365ustar00rootroot00000000000000pyresample-1.8.1/docs/source/API.rst000066400000000000000000000014541324347254000173050ustar00rootroot00000000000000pyresample API ====================== pyresample.geometry --------------------------------- .. automodule:: geometry :members: pyresample.image --------------------------------- .. automodule:: image :members: pyresample.grid --------------------------------- .. automodule:: grid :members: pyresample.kd_tree --------------------------------- .. automodule:: kd_tree :members: pyresample.bilinear --------------------------------- .. automodule:: bilinear :members: pyresample.utils --------------------------------- .. automodule:: utils :members: pyresample.data_reduce --------------------------------- .. automodule:: data_reduce :members: pyresample.plot --------------------------------- .. automodule:: plot :members: pyresample.ewa -------------- .. automodule:: ewa :members: pyresample-1.8.1/docs/source/_static/000077500000000000000000000000001324347254000175645ustar00rootroot00000000000000pyresample-1.8.1/docs/source/_static/images/000077500000000000000000000000001324347254000210315ustar00rootroot00000000000000pyresample-1.8.1/docs/source/_static/images/bilinear_overview.png000066400000000000000000043122621324347254000252640ustar00rootroot00000000000000PNG  IHDR^LIgAMA a cHRMz&u0`:pQ<bKGD pHYs`_htIME ߖrIDATxڤKm]&}ߘkGdP;;m0HHn aK?23 +*+*,Y-KR0@BȢ%cq *!޳1Z{?B?^k17^O8IFư1$c@@Aq)ʟ֗ /拱V+o}ŇoSy/;%uP<uH]:')ݧN(f6f %B\Ow}} 03ǰ1a@A>_Iq3 9j@C 09a y 4'H" ]h3K4ff`HR< '&N&}N?'t@^n\r!N kTjpH!X XCC2KxI.o A F,28H ?_MhJOi OH94H_,n\Ƈ_L_j?|F^Q?T|VJ,;&|JSr!k㿍_?i׾?;NܘD=@)M_ϰ7w_n( Om"7/ WɟzC(%0X? M/]/CSѿ } Q(Q+>$&E_3ρЇ Aᱷ㌥6ϛ , 2A@LG椛 顰$@OuVNW)x۵}ʶ̅O Cn?Kï#M)~5! !$yS1Rl&0aLf䠑cp'扛H4w8.|7rv]ڑ'~Ny&O (΂(OJyOI8ddq}z[wMwCopBϵhqcz?k8a<??37OrM$7X8ce%72K~Jo(}u_|yۿw:! īHp{T?CFmbDA:K &M /O2f/%*X_߄,$`?!9.\Z0~i!Wg$L^M(׬%gzw :o?xyMnf-]ş}3݂ ̨5>}0A))9WG+F F(Q$ GZy=FP<1F!d,o #PD1{qAMS,V >g:DO>d&\rC @r$Wb.ZNJtku;h\yKŽ;_ʅ:_[)xbKۯ,QʭꛌVد|f^UZ)XKsڻo?QRf!H.!h$͆5PIPk؁uK߰7_~;n?.3x~'p/N%!f:>&%+ȷWr9q B\vdD7f.6xW"@Ƥ~Llmvwy1)1)"wM,34 +!24WfHgFXQ~`p |0tt7:TW@yeڊS ?'| b9'GZT"RRhof\)4}^?*X57H)ڟ\9-ZX?E~/^`XySW?KN gX0eT-0f{a#o?Ex  },_}ߒ<ڼSgUF_'w3~o|< %I2@u WbHg} ҹK!`QR<ۏAp#WDoh3HYEdH"lO^g7\LVP}s0WDqhk}w ڮݓT;_| ɕG~xk]nQ ך߄` obgœ9>LOdDC\`< g`xO g>Fb9}<'ϧ8Ҝ'dцlg=MШY _l$fTQ!VDMYl FMKpJa LppYA,Nv 3q{&&iEbiKS+7Jg#X]&E?B2`׵bic?u;sqcGG9pN2aF'D l>8&5Hfվr{"`s{__R`/l^;! 9ޅ/D CRk2O6hiPF:{2,XAQg 8+#?%WO%D ȟ f#HkPB3#1+/oĕ?@|E"$atEPX>co6k *~A˨!!r]awUҔZǶl}"@"63`>짡 `/ *xщo_?H@~~VJ/&-'S"p^a_GҔ?'pLo>ޜp?W>uâz>2܊6 0) C86P&\ ̯=7g;5:":U7Gf㛖"[]Ew]_4Mc-r9o:o⺅]coGcl?ϩ}ye5?LD`kxpq@;$3nh Iobj _8q~ʋ6 H"PEvP3'+Xу:YT`5@6lzTa.Y*D"m;[%rLT)Cqk0;i%VH=ZX2ȥ:^fU/)N店m@a݂*˱x]P/8Dg}&r84r,a*Y!1}ZA[@sb-__Tڻmx//7s^?.b 1AONX_zV\KC[H+yfFY>nKUXgdUѭ>=yb}]v_~x UnޢZd :'Zha#HޅP We1}b#&>Nx> XV/yK}:tz[:x+iER* LcI^#p1SY{/9AܑrEtyE yK̖ܢAnd؄իsМiai\(gF8GV^Eܗ]&3;~[p=f]~2`+]dKUxO#L8A~ʇ(sAfC?ط_yfxװ2wHLJ F+-DݐX! !Z^TUHt E^tKKS\-ou(LL n \FA+ߦTi ?ӷoc "`,N[H^nX5.܏KPQQX1-D0r+< F`H{I*}պuQ,BV "M޳}2Wf_:MY]Z2 3bTnn ! '9b%YI ?φ%]gǸh&-." 儤)ܫ2<|y|Ҳ38LLSaMJ_ttMm(aت2))QYwٸl7lwna*YΆk Y}(xa}Ϗ pEkh\l/_W>_# Ձ?ueQP_vp4Y0ar˽qcpc֒e.2VAa$!\,v#Kx~Uh֣)e(4 ;9*`1h3990;|VOc>Z<1=CdK %<.ڨl8+)\nNU-Uziv~%MrJOXն7p^%pZLuaXg*Ġ+Ωr"pqCvy8}B&:`dȴ~oQy--gX#"}o.=!e,E`͌fp#~f <~pR*I%DFJsR|0>'#,,q(J)4a6~!o yFjLRM*-:!-U dL9跶 B:>>}K5 x^߆k9ca{Wf?3z$S+iHh&,Qު_7s8vEA\\_P~\X~EA[.ޮ@ Q9M#|0贍XXrkGbWTCʌ.4S<|䓕E3vͽD}QtӢz种ID@/2 UR,̞y~E_93?~H@Oؐ-/N{}>\50<]C9m+$G]A];r'm"RIʼ ,0c0{}&@0e3IuIiy&]J} ˄7uxhf1u-M=4KssOiF$W-Fasq6k . :V{54 xu,oKwF]/wIrպ5[؂s 8T F3ayvWloҐt$9A ҄dԗ]sB"?$T(+<m+J}e Wʍ/ 瓊cB;IŅ淌lӛW`W(n`{ l.& |_i[QMOQZهzeGl|r %qg1U  wg 5nSȳcz9Cr;Ű2K6z+@:0g(D =it?m Nh2+R|WQ8'Dh}k7@cC WfCo@e< s8CԲ'LfUQ~dϒp3Wc[Gqs;3=B=ҰbUY̷D/u@O4BzQ =@ۦS`F\թ|̈́{߬Ng7)~[_R\,LhntY|dWcx݃ţ%pL^~8b'yM?d2 փ[s3Cy#nGp!K P D/v~cA`ᴃ"hNa1~oq2 W/,H崁J̻d/*tzν&hlf ґ:r6UKkbȺlu&8t9E+8>|)! G?j*^d܂?m<a 7 ۰yΘsWdT+kO_ӭC$s f5#荁!nvk3cQd: ;e7$1C,i:?cDTȐ"y^.CAAp ?a˛(-1},OKma3ZV-,*,H{}Нi\'2: 7ZVe5nDoU:̰h)+:]?(8n0EHIXtwv7oPݼwmԋk;}QjR\+HVѻSjY{SWKxvr[Mcs[w=@TN}Iٺ9AUE+*#X/ k!r!ږPQT-}r#&0'4/RW͆ $h>HVmV5L56fӰcw{$)5!VfGf&=Kڋx+zai#a惺="C/Oh^P UŪʜ+@Is.Eڒ!GxB(ߌk5amܷO@1,eKV%%)-<<$`Ќg+h\UWDRF[w2Ag2 3zgr);t8 AWFI>= 8RY*vw+B zUTT~.c^9j/lS/>jЅ)qĸ >;o(3Yi-K"قyJAϵ|HQi`v>Oٰ_6Nۣi:Uo׷^շ<Φ>j |kf.Y"`i#;2gQ bcsdپEtFfšiP&_ΕU0'`IwgvllG'7gW$5vA$ʠ#V^%CJj]XnYsl^G#صfr@Z.WuBՋowؾVYgz6P6qUPMiB1^5§팢MXP;ZlPWAtHb|VO,&z+Eg3TU"zF' wdgNGv4}2ȟRvv!X9#d6gU0y֬UF&WO`g"MK>'u]U M9:$q &gIv)e$&ı;l9VUv02g. QX[UEseZU֩)Z|37Ay_F2RVbk3yD&)SdGx|{tՊ(~Fgơ31ETL3U(DlHIRm{eYD{7 #;aһ%հUEp:]\km}]+]0V x\E[y?1vSqYI. 4D|h gCN@LroWMݜ.0Z^=w`#m.YE]O7brV%3I3af0 'o6xi"S͠XZ?C, }>MiGI{ zUew7W<U)5/Lڢä́_uTieE'ӽ\sCj^~'$94V2lɖrVSȊ Dr\ d78nziT?Uq#JtXuRGޓoʚ(?E}Φktv7c7]J}"jְ?;&& !~DrT|0m1< z.,5LFDL9o}i_hOBt2c{ #O)xOU${d )Xe!u-ѮK&GLʴY 5ﳝ-NfTnGf,r]V|!S^Q3jgQn31dSnζU=Fw9$o.GDcSoո͙e/U6Lq0Ƕ_BC3˭AhDk B0 0U;5~Nf[H<-E/V e;aC᧧H&>Ǽ7ɕ@Шчj%`i#&9a=`FZ|$a9lO0lb4ɪ?2(NMZ oJ%Z?g/h0u*ۑ0|.baI?JUK֧g;<28 "2M)jQd=nnGENXQƺC_ؒq߰|,H1(z.׫=WXS3Dz$̘G6{%*,dF%2d+L3.ֈLe|yMPEk-g]v_FK=rkAzjF‚5ڰB>)72hZ P 謞v(U&h>q[ƻ @iA!zhT&e.&H k|Ӳ9UL˩_(|Pg6`z&>nse^5w  X5w 'z^t^~{_7wu/)$?Fzg6Lʾg&͏l_ݕeS=֘ LtF6\S'(LnuE/Fb2' sllH14^ffY}9ܲIp#$h,&-|-?1>[ ͯ"?e:7j5,Gq(IV]UPvi_)NOZuv#ö|Y풉YV JI`W4 W `* (gنgsRa(r#@ѲLKqDx&}:-Qr6M)/*[}.:1UBmsS>DՕ9)+TR Ni(\BS$”-?OX_ť ӟ~lP/Ǖ3Ώo$>V>f_$uTüZM޼BW9lM')zXDRlh!QsC^2@qA *N/cwXEWjU&ú7.2O褦4!9mJS1ގ\oDFemN ] muXLtc}:8#3KY!,z&adɟIUT2ʓx*С-gF +̔"Lgse鲜v r O8<]e Ofceawz=nw/ÔƹWhc)3B(TPRz ox] PG^ߡ@|wFIT4Ȗ$b:1jrJbT&k$xgR?)#tOqԆdzz yKKSeY̨vadפn%^y30%FQx|Ic&i0 [yzukȬs#-I&]U寱jmTܯN)yг2K(F5woy.9#uݘOuy} KKY,M >mxbz,.NuR*۝\nAчU p!t3팚ǰc+>j(kl|[/\pۯB|#(zz~D!ZeΈ b)M,v}%^ˌna +R(N5U4FjZǨxY8A>+lDST0/A ˿hOQt!MvF(/Y&|-@Q!Ba ; mۼq,2A|fEy"s`dCt̎seU3N=h2#fYygfpX?lleKOOXr /l):ǶB].dXʡVn_XlPKXuޞ%:Bk":i1TSƙUlu *kُ+9icHܟ խ54"mj=&Zb#$̾Oq\Xv j4 (DŽON,\j<%&?Qr vBBA| {~vƗIfY4/_En\d5ZVk(xgǻ5.wO3$o(eM~T5~3oe Xs#u˪w޻ yi.:h|~6JUY4IŤN!#ѧDĈ4CbTЄ8) =>̧$x pgdKCY2pm91Jݏ|pO}|)ZxϨ1 4?OSפ z$r9KҀTǦG %c2N㝛- XtK60Ph ņJaE٧Hgcw9,6ٙ@7rTSd$"~&5K6qa ò,=L BrIw|1v[{;_.i}74y_ZI&΁F`Pό(h\b8piJ2}Ԅ1Ϋȡ!G`襯ߺTeFD+*s?fXYs+,Jr5S[F;4g0?]fU9R9YrݱoxP6mCfS[bzX&3-* ƌg'`^_j}t1IE0ǥ'ȋa&$i]VmUxcg$ֲe Zĉ.s/ eҨڷٜ<-~8ݓ7#ɟx %8sNA^N q_bD.|f_Xb=7,g[j1dc:8L*+@w's9]%9B|J(2cYSYӍʻqO\z|+$bcz6Mun_؋XD`AF}\om57fJk?wrE8)V (Gkq**{D?/[L;mhoF؜Ҏ2-0NRF?UUܾ0$g\zN,NvWjmg ;`, 6ͥ9l%b ȏ@pa4ѥmDv eg$]ۥ^a į<)qyG$l0rl1իOi,O?lu9 %Qa}dIY4Dfň|fJoY\ǣ%}f D#R~s8!=)ngWQݷ$/Fe[vgݵ cC4~i~sS(sY%#Ac"`uM H|:YYjt;vV&mSq%ikRŤD&6~iF ںy(, aQM"nI,~~w7h WGWe!uAwOw$fos; K0}ÓyFӎUt#iGf^k U/J1];Mp['>>"3$F+,$(?a krΫnι@̳*C g04q`>eхSƃoіn@K/a1W*'\#s4MN|5mÄk%J]z˽),eŗ}2b ,#\'/or8n{VTGtCS㑝J01X" PBݓ}ucYym5y%ꪡ=pA`öv K}PQqt^zY,Cj&Vgì-)2b=v ߀) &'t@BcZar>g1U[Uµ/rZQ^9$%QA{Ko[YViC}G%v/+1ckKg`XqhFij e▄,KId2qk5gA=uZ?#D&gǕEIQWr# 0jXL-:{#}%ܭ)d_ f'ABcL?CI۞ٹ!J/h׉FG7{Q:EUVf WK8Д>AKl<#^90MjDL)(_)7P(])mrڇ,oۑbZjӮ +qK(yV7Rc7 y{6xbAZOF󯾻6ʟ۞}ÉI`>4|8얌كYĪw\LTpwStԸe&[EgEi:-cgJU}%!9`f\ȕt)-C'{죝z\X"P'6(hmk[59CIIJ> O CtFTl6TeU&u2nn-̘BNd+tjK)h Fs@׳%k?Pѻ(һ70=F} |F/?l?u0d\\bb<SE_1҈Jq8",wE=Yjs RnE[CV D7^&Xټ\wQi wSt9GZoRmȴul>guguyesB6[M^45ec'6F!wT֑+|޼j{& Qc;[SXƝ9ÖZbN"iNpYK>iìŁefOW IcPL"pi!Z T )%Y]¸7/)ʼhd̔69^?5CsyܴW_Eޑ/ZrA1 v Œѓ^;J/ijOɇN"Y?Hӊ$ l%qfHNmn;*/VNz.gr-63eEeZeU*D(kԼ5O|q@S6<>a(vuh .?RUv1;~ oU4kh1^h#92Q鏏O#PQ;"_~;>e"J~^NJlqS8pF>#]&@"<3Ll̝u,JVYxc_Ո"̪r-HPGM`JF{SU7#?oEFP26Ecvr@)/WA|%:7sCx6&==ߘ,xGNNmAʀERM8k35}/²`Dc꼓潖 WELE WkBw2{U˶t}{3\}V/ZP;ɸ)ؽ*T=odn-lVQ8+O&j1ɦ ӝ? QUV?H]9XdF Ġ 5~RL]S0ASXEнHg9L+J%^ٿܥOJ%(iN8)3 㔎$1!&8hL,Yff{/&vL= :uIMa[vs]ôDLٻry^ ׵Sst~v_2qH-}7Szsc$Sj<@pM_C ݖ$"nihP:ȯ ?!%kgU]AX^/L"ת^1 K"iI870uIa_Rȸ-oy+`uU^fЬjJg u,/QEb)VÂ𝉁yP5Cp锥S̬@8'ܑq 7OY( a aZ}>%:8O<>0'H:BTUD?yǃϧ43|Rvd%+')EV$fpB߳ZO=dhl~qO. *͢7=nT {>{^>f1H~ $tV[(:٥ܩWz7^*GD Ykn(Dt>b1ڱY"e%PޞY@3o>uXNPTC 8>h>?T'*խ B8lF;Ŋ(6&Yfv\YlׯA,Fʡ2$> ȷqQ-&13ˬTsN2;:ҾO|!n^Zֵ}.|KUmW6X7) p|HR=K|QlQ3'.gr#Q8Sn%VLr7W%:*&߽Dp&W;eaWniUφRb(0sH$b.VemU&T#5f 9`t!nʁG1'6bVs}'*)Hb^ZHў|NC$|Vs8MHyb)k_8@S#;aQ~->q >tP"D(̒ch,xEf;Oc΃!u).!%u G'qԸ 0RMa׾ua[ZU;{ w➔X*9b~Xk%EWvY--9ڶp gM#ĵn襫ft4E`z{vI/4軶%>J: igtL~IP3BXΰ=)1=#}L /EЪ Kq W1nN{mEX5N y~ܼY,4KEd@e!fq.nuBƯVe)Wo.#ߤvK<^K, U752.]'5 S:XTQMtNbQ@XV Slh131bDONG2緜;9$j%Ь@:"rOif:HX}D & \.$B5Oܯ=ZEtXD >8IA>vS8'W~ڱ+*yyrkh\7Qbw\u8G?c|Ag䴭M|v-3~| U v*,Y2#ֱ4+ Q6#ma؇&"H;L6g@ZEE=t+Jd`fجrgJ҇MֆF񍚣 rl}_hkҞUuU-8d2ǂ@&au{NFsq @$?>yɁD1,嬥ɱ꠲?ڦ/O1FeETIi.`A8[9=1h-m36,;.5YQ.[-lìi=IݤbuYmos=K.eoÖYRJk֚lIX1 ׶[ o&̫nڮWaGf_T0˳]THSsI>HJgۈa8%MFX9e cǵ#c`0O&1˒lޝl32/Cî"H H]LYxck;*2#R `+0ia.szkf",_!_-nQbZpyË74Zt`h\^$ -ƾX)$tؖWeߡ!Ey` + ԗ+ٹ_ChU*m1]ݜA"u2 `L;C.Y= ez<&Љ̟z̨K~X Ž9 Ŕ(ϯْr ZaI9+IW(48՟_q|:#ᾓ]vj~ٟ'?Hs)!M)fѧtZΙ 宑m0iUC[eddDik#S^pmuꕽC-mYھ81yU,t"1 <9Gh0aUċozjD{M׉}zmS^oPxS4{mtPP͜TZ o *ђإ5,܌}v V:aH GNS_t̒cK<t_Dv{DA[?J9g4 ayh=ʳTPUVk/$c r$ɂ"͙BsdaT-q;fw_mlxQ:R.N틆j^&YES/NlI Ny]M{2}K.VnJ6߽%7QPTƄf_|k.85!S>SV=JIfrȶNKk/P>Ü[Zhփ*DdhvpA/I_,x-k,.>H?AEˈYtW1ѣoۥo魕dc'dV/@6RPR+yr3cIV4U6ݏ1n, C'_ QoyV󛝙ʋ7NkؒDj Yֽ-O7Nw?(^Tꚅ}vvIȐuո5q'PPΎ 2Wˋ+#S 'AI@3[Ѫg )/J$j9t~r BQW*A37pQ I?|< hLb#& F0f|~৊ȫ-`nQrxU; #seY% k.'V<7kkZZ1Gzk7%Vn]SmCr2˷z0sIa8:yÖr}_lU/}~i-o_] -l~OFI|3“iʽ tyHyr79c5c{R%GZ9>-gX] v7a܊8vbVrUKꡤjACI:NE"G4WdUh'CVͦo}缒׻l l4Kڄ}ٷ*M-i7"azrN-Q86[}vrb ZUgPY³ {f2+e"M/j;jJwt0|So_޿ -PRyi~^单 b.$_!#>lЧrTzHmi'01z_PT 6эy+ookztF=DNggI''q"CG5 <ʞ7"Iv&1G ^I]ֲ -xL\w}$@ѮQSp!hg)$WV^.+]?\}.[ 31QAf[AV*0^u_sV㶐It+ƥC `iו^_^ O+S*Hͩhբ sDo/'ti=gVD6x jJLpHZiuO)zA5u> &|PA:AwC32cIA #"=$)99$sv&Y˥ ǀf$)r~fg9Dhj"T[$-nbX)+fJ+ܝҴ9ֆi⿝rj mE\by n|S"z7=!X<DZ/OHg}NG&S av Y_ ݕU{E8m/lKTqC8u*;A,1F.T*eՌkBf5͌Җe1/o֨1e[%~n>ˬ'z}$0}4񘵗Lb_r|aDFZ웙dyd]%@pU<Ĉ}U;ZxയT4bJ+?ȶqJՕW)Ea.7}D.LrX8e8z:쵖|K›\򳼦5Iidх995XُFT7: :Wx" L[V}?c.\3p-7k.tX Z&$`EMOaLaIFsJdIV{>pTM Nr?1i}evL&0Ԑ,VC: ɟo&q[XI7 zU/hݪ@A' TqVھA/"ځ#5BY2wxʖ4d Y<3Vі+oBAճo[$$ ȷeOV_ØPPJQ%-,p- W;oie5ky3T#3ڣgj-3CYУ)U@I/D\J!h#'b>bt95F?8,EjV3]qtd}J'>~JMg*aO ‡r֝Sr"@i1ld:Hρtq;ג")&{}+ˆ^5BDXª]Nޑy(LR׫D}h~;[bZotCR*Nؖ(<j͊~~|1F$(A1OeP[t1Y ^u0Ķ=BaZyQ wLGp#*dCO\pe3{dlKy1NZ^PVĖ}A OϤ惥9ۼY]w}o)fjf$F>1v`f %*Mц98n=T1­2Yjfy:RⰟj]WEUDpH俛uDQwB.bn&/jʇmβ.WqE_ rxUkÅζػ6nȫvlov3S4 tR}\ D\3^R̄cLANfk#rߝ䓼KfO,X̌8X(9k>C[8`lHR ֯nxқ7A'V˄hXԷmcۢ юJ3Xeݓ<'/I &4 -)W4YA4R\&9ŲF_N2 c>eyPl_?]O4 ~1J~S,Tf IьvlHـ{6s>kOu^MxN2TEl(#=!XK#q@ OkOvܒ$ӊnD*ł Puds0I\dK _q_5i~w0HlPYkX]nfsd8A3c>eǗ1Du\ڠ|D":_J;':}k .?_R3Krasaԕ| >/y^hњ]e1jW 4oݿu1Ṉ) Y}Mj>I7owӸH3zpŪ[E幤< LCM7At)_9oJ6 2eF\\]ɏj!M ȟUe[6QT#'QC7p\5E \=¯ˇb.:aڡN4:gbM`2}hD ݞS 6-/Q>3#v9јg^x)Ym+xSڞ3ZK:!=bږglNslhhd}!FFײBeg#c]Ӗk gtTҙ!\fm:Y֢I ҃IjQB&I{V6*2VyHȈ3Lh2wQ_ <ц.͛- a,%JܐxJ*yŲMP6+h?op_ج~lnn4@>_Zu{5UyEpQipUQsV%`l vq ҆hM.Qq)U?H %FoAmdrwFYze.Y<TDrؑ80ӣLIhtF&lϯ>Eg"L6b(8s]tDtr )k6V TE䌱HU$bsd(O{/iQ^fao,DpQmrr P~w,i6k4$hdu>vP.XTFywmj.ƠYtG'ϘQjhw?|>XIE,+XuآWM߿.'RWoZVj)2m6bfSg<уb/K456N91jF7b&yVRwnA^S,79h3oC1O7{#@;DFxfH7/qO Qr*[Ɯ>̔t ű8BdN E ͯd$l"]h.Fn5Tm).;Va:^O~uTw帰j~+1K ֽjJZԞfR#bd ܜnGZJ!2+Q 4{.L4"3V3 1̚q-`4)|'̠\FIo%u$̨p&8jeƿҵ8r WAJpeKOwL6%ւ;Cd^[g,.Rq+QzH /@ZC+}W4 Ȗq#f<`si)Z9ȧhDnDZl _WcUOWG/U`CqDԢT,JaI+BAx˹t1 Gp.>!&IfflVOx*1nhjE#VZ;JG yve~ҹ<H;v Xg}STNUo{%3-kTϒC+˽tɜ\kR&z@z_7hZJg9nmT?TwXXaBښs;o r;vewv׋ą,v5+i^п2wBWG`jh*jJӢUa%6\I",-nSql2{Rq,L/ѝ82dF)uS%uBx$Lʥ*=چE$z(:9u} Ў%v/Jѩ߄)[n BZTAY6"\TBҽ&hqZݿZ0U!XJ<{Q`-Uljlq"v Jb3*odY:5/xOe*ɝ&`~^J:QLWP8t 8+zDI;m1SsGO艪JSOqơ6ETϠSӨƣ<>~,+7Pʵ !8Ǒc,8?\jtOY=e6z ' ҢJ91AQ4@fsp@2 ӗcDGsidp>"usq$ _kv#MZ:ۘlφRu#w+ϳ q؟| _##*3"mItwzTKG_c/EҸ?޲Vll4t"D/y3FGd" ?SEwVHYU9_Hn[K&6i /?P0y(u 1s{=Q,Cu B DqF)PJTjTSs[kYkP;<\twlTRJջ(^)n)=TqT<4b-]߻ۮ}h-=.r|#IY2@H]}fwiCF/|Y@-Q[ MP=ZCm\SWADmcfN|b>3Wc<(i<8g6dGJM Uk_(QYAH,yd:rjJxa<>Lߟ4cVL{vڰAxm!]MB*}(k`7WPIE >#<FJFK"[%0Ga=ydi\NC7Knja\OИi+.&1̋ʶ4Vxͳ2`Lz$ >`y%uNzAy 533~".nغRY{MɠE(4 u9Ӆ|WB%q䖈ԮZ_,xUn/L`cCaZ7TrOi^+F!] uxǸhw;>= Q-SaD4h04yB5veWc[ Ea2DB%RnJ4k)Xl>p9u=<2NuɅ3q.+ۨƁ._>|_;3un ޥr DwڒNE!^i' F @g#]KZSWsqdW xP ]+=ωMŵ,ZgҬ @:Z{|@C7D~F/\+s  v}]´u5~42"͊f+cJn5.ŰEA1 ã,xg<18LhIXlbӠ4F軞_=vxaGN82c*jL7a>LY $O ъsl'#ВJOƑ60gE0sef:ܐ# oIȳI<`#%|e9|W"rƘO|֜jIDATsQAp al4If,MD4_?uA^r5W/| qNl߸ˣkz/kFk$*Wħ)8h64hנ'u.9٤۞!b_2 g$M0'Vs~&Г |;joGĜYNNצ LZ:A<҄avP향L )s`{ Xhݕ{ ҒƲ. .>abg>kOWXXenu'JefG!6io]VUCwm?_#D$ܫeY1n9{wKGU?`FZ|YjеrLq(xHEb *&)|v*Ɂ84cogr@K*W ,qbo`c܋ $yPհ?M ,}O=BzJ=^#Z!g& E[E c9ZnyJ\~YYw-lnvMמ*{\#Y DSkd#&ȣ@C+ׅJHZ =)l\x{)V D (T͆,y#Jd}>A -#3"|4+}q?LX&=>=I :śELz/œod #-n:p/cH;OVr0.2&I5>q>*yiYѦ14S= |< *c{AV`#+ W dF#?ܕ r_+w[Kթi% 8j1dхїJv*UNfm:євa&"x1l   pDjH@M[7jX^뱛gHo.H7둻 |床 NuQljIEx =!jD 2Dmɸ_~nq9#XQ1QbY+w{,OozyxF2jFY㷫7Kf#j?O}55kMvh$ . XҶYv0%UĠ2eUM 6*ɾ H -zjX۲9QY=@B=B?{kAmŲaF T|TlnEȖqi&wawA´EVF6"La2f ";2z#wˮ_{#4ACV(DًvgѥýfXl#^TE Ueuzɫ؁2uͯ5zb.0If~ YPVʓ,@tVt2]6P?F&r] 6Q>v54>YTTUmnJcs"6bӖzqq )or^a(|xuCG>{s%.v>F;F8.jNffk,qyr,37H\|DOCWGR51?58DJ|O`F9jWx!2ÄckY8 Sh58!Y9(>~_xD m&=g"b5[Ζ"eER lա(u:U&|1H~lE)NHpw8cy8gi34v8u";WGh CrXS<`'UqЩJyjjB!DV4$ۜ&%ݮ/9Ei `]d7 cYgi!$8*BWJKq?̢䈦,M59EZ>Y#u>o^Og簗el*ڿ{ZxuoN)"Є !}80+n@9UA{+lV&"yfs"VW.[[6V]R /4['CgnuRg$))T&&^ Le#O4%ƵrU I 8$7fMwSxl%i.xʂHqX1rV3y|=U3Fi^q̞;c)eua-N-%π/;˔q% Ũ ]nq3ni4[AuPYF6 {KCugz3ǐ@KCJƃ"O@ٳ0cssFh_nwKA0Sl߯I˽D7§ N%]}D`L7X%2}y tYZEDTVP (fnqS*v<>6<1ؑRHhtZЎOy9AUsF*{z_6jL2P9588bQgti̇KL34<׬ԏm1,%(5W ()QŦte:2#JY3# pǵ2WXVtm˻-esSoqI"H )[:ZGϒضRNSKt-e;%LqF"aNW/ߐmrhHP1 Uh@wE1"u^wOXPˇHAS4iF[Ӯb,"`9-cCϐ IUS?vRբU ׿ep=P(!#؛( hg'FT퉓 _/;f_Q3T@bOE!1!X礑17pܑyy%V'8bd!V S|+R/ÖR5ڌexVa!G?P(-ُj%Z}`pr򞺭SyW6߲wL_,rާ{Npw)PoVܿ{JQy4+;W/_~E^+! bHsAj"kCNN G(֧0lr#&xc 2R?#2 VͻayJ8=g̨E{fZJ/><)`51{$gɁ@ _k7iN|8D ӽ76> 8BܧE)>}XcMFH_QF_t3wO6]Z_^[W ~4i^QF#ܿXj'5֏+?~rld@ĢAۈZ>چyX/_bklX׷4Rhy(~AgEac< ݏAlI4o5;N/S2# Cވ1%Tհ޶:ADuڶT FtBqycOz;JȋG)A>/yVi22w7Uqݵ/[ٱJf,|ZEF,mrPxaM 斂=7 ͣ?Ӈ<Y-~)۴tl2)L +K7^˅zQ4b$hFݟU%tQ@8ֿ֮ Yw,X&Ԁ$Y|CDz"4BJ8o#g ce%G`[jX[bVTGy-ϧr3X^:k[wriԓjܩ%ߒG{sO<#[.Kкgl jLFV4E5APmh5ܒiˆj}X;-k??E9?ϤT!c5WKJȩK4,U. Rf2aLy>5fp6$SED8)7ߖ0<%Dz!)ۗYؼĿ<:_ke<}m:WSe& UI[ 4vByfl+sFդ!3,b7ku\m^wA%@Fd)GU FgXj7e_.KWU-J[ԕ(d[4"gMF'-w f %9TƼXLD*MPeT' 2IHb* @Iġl´Xaz+b q@ՑQ=`zŠD*HdL/P;GWMQ-Zmmker. zꌩ" dsFl?5K9^됲вI[H%HKzƶf'7b W6Y_uxnACDjqq?䤪 ^Ubm[>#%xV10H[]nyeX$Nԍ߰C O)t Q0W]\)E D%"9ytosخu[@BRuyqLs5U9>| ج = M Z ++d;H<:֗uʨ:7mAêA0Oi4s3#9vυCxWr1LSƫ}-%ѻ7`ؔ8Nع") GֳwT R56ݤ'_r ?n \tJa_~?qO7lfayqjJ_2_w^}PiTejCwcBA3 焦"ޚ>xVdɍjjdҔ־6jްK$݅7QDQ` k12bYqf9>#[QP+7}udaf8n$'pUO K68.:ms0 e#|cjfC]ڗdl0gbφKҀ_TrwhC,Ru7Xre[/g}*&CM~1`[^ZNo;W6Hb"f]Y"\B؁@y$ dZ,ŤfL iw)kCr}ׯIqȄqN*B%{q G/K@ 13,4o@t:Ͳ_!&Q; jU<>y1BŠ{Xߝ:aI}t**I/]Qgmcpsut~c(mTZdlgjqt*QӡD w3C] (3 gE 8*@MSB$f`aY59+/.ry2F|jqGo/yq, M%MfYc?O9ð>z^erRjOM'o2U cGyd`@:4U M 2< tuopdGaļOJ CGދdž= hd&1+}:MOY2vm2^vtđw+&Gk[»zqhnP/Vfex [xSzo芶1L*<{ĚcmO;FR\L ] g=ŎeebqR:,u#'IiF6n!@å5湡yx id 7-qwRXH0VmS=sn@j3%Ks]ydr'IY $,jH zlc#&$A]^fܿYK`n%IANiTVM? z B,ry1FEwmJ$AAC+ySԠ f,V3--PS-In-%۠j + /p37pm (7TiwihUߒ]I2*?*1ldv#AX.e,ܼ b괊>/T n[8V|FɕqUil9It 6@s 1-̉9*b:,~'aG2$%<AWPDKU a5iFV$%vAw#Y=u̢Q Bv7yhTyV5gq@|sOo",̈C߻T]aMTcHr$ATj̜sLBjލb1ɠ* bF`ag0?NJmn 3ae?i^4o D,C\O?ǐA]VOP5+JrՕ7k^zeB4{z^نɀn.;W*GulKwA$(x s]|oe9j(Z_٤oh:b9has $CƒT: G1MÞ q#8fc=A2! Lߢ2SQlL4-Р ;WBB&TO_!#ٿPZwm(s-ɳ:ZGz'LI8b5`=ɨ͆[gcL6(tyВ1X- T=ګib(Km7X uAp,x`7* J2닪8p! ߴ"\d4,=yiwOLT? Y7VVA8#g&mc뷘PpY9JDFDiU|wQbl@зgA@{KFt7SsbSFɏv'3_QEm(@(pt{tE!ЗGKJGv@DP6ObY* Vm|y`T4OTЖ$MaIʓb>\zOHriS ODL>"xpawǛ,NR|<zJ A$hKhFhaϋG.qUKG $|Ëtf|=5!)ot:Yul4nأRTKڔ__ Tdi@* 6&g9x.7 _uDq`qx~On:x2.T;4xMWwt0yY{W3T/8ѱ$_PNd[vϓzthEO>wU~, Nulvv ڢ,I:fHJ MI`X2q]3mD3GUIٿ2*g? 9ctn4.BMy)([2,EP, Ex%?ұ %zFQ*D#[YIs櫌#i<_rx⸪ΡbYHÉU3*~$ bU84ZC=[^Ǯlhc,_yJQ)W ~MvpIw R.Gd<@\@ld[|K.B'fźՇ*h=eKꩵ)jU;(]瓀X;y7REw]mx:yGyϒ#^4z**b $X&/l~Ѣx 144ADzq<ڤ`4,z|('~obʒ:E`57d!*2E[nь3 q@dzz2iNmaa] -"[_j0b ^_Uvqߩ3@p܃'wftAo H ;Si#J߉%^ԖӍ*sx Sn`*"oR1 gOs[Y P,֬U(ErfɤF9H{yTqOc53=a乢~/yeO?C&Ja8cx_WDj>[eFm|%A^j=BcWj8 ʀ{{3"UqhCxgOP˛KZÏ܍ȉ-&q%"Y{5h>X]/P} W58U:ԡLUsہ"" C(qSL_|Zhk859wo*B3>Em`3W]|A'ɧJ=!)RcwDAde+UWw@H&⛂?Ʀz0$A@Իv}CehgG(8AXMiWh"u2]qKLX[ hi 4$ K#ؼQQ`g5E%2<}L/HQ,rW>ʰb [~$~#OZ܆G ;ڤ<7ziQ %dN}8PA0DGhP@ӌ(>X .'HqX+hр3J3%HeD;ײ\vuTGj0144RĬg+,QaO~ۼ𰋏8wx(dl=E]]_@)=S@+fJ+}iw q_$5ZWu]tHUı#t)k_6լ+<͗,o/iӫv~0{}3 %RB\]N3lUU^ޞ]N_l>OPu |z/-VGo?1w Y\j}oS9("oi Ҙ SnvO-v S O[2wodc$䧃=ȜdO6" 倘qvϸeoOƮx@cyjj%dh_nqL2Otu@ڢstvEATUG& ,#B {GX9:2a+IS TTh#D9$͖#KK_:1"&hpm8o!1K榓hl$=wHˈE\icgna]]6+RԪT+E5 K0ތxX i0EʋǑn=zޞCyВ^ #B9kake|pxǛrٲE#V^UyqY_x)¤ʵxNxu}/ֻ}6`%;7U茉?}Sؾ>lEj.!_vߠfUq2tNV*! kncn0'SvQ:SZHH^htjF n\N˱kNȍB=T.%ȓ.)n}`vrgRkbe,"P@%)tt1Zf6T0$yiKHyAѫ)" Ŝ&7 X(2S[fȰܰ&2O.Bl9;:Z55M3&&GYlL.i,&Jj1"!F*"uѢ b+ ڳTGLϋSu|}/0S9"}mT+ oDv{} B .bJc-ʵ@O.YLa%۷̌F-v4 T wb0ȳo}l]=AP@$",[Ya %72vee =:EI{0Թü#^Bri8-z`< ߺ^ߢoI[9P[(0.C4se[jUHɔE^m QqKC<աfA; xǾ] [! eAVS9](Z oXH 7x\i9O=O| b7s_vYWkFi6ՀHqA3W(F".3rCl| Spb,@F;6lA sJˌ;3 sj=i{3~e5j6:+Wz+i;&>* 9Yk" Jm@ B'D{ D\d;bּV9tӻ>eb}E:z~ Qp64X?Nen?ʮ}3nI ɍ6W Qf&hcFE v KI3aϐc]p-FIYEL.TqܹZ/7f.8\ůI-uqbbk+s^w?zW$gR5*wc^AmÚW\@+]Қ{cR|iɲ"_o>ޭ,4?y3xhOk8 6^f_8QQ<;-{J:P@6u֧vGXUE]l^\kqOmԎs =ZC^]^aoN*BN ( QFYzF&"ofǝ6H֒7ZCRPHmee,󱐪O 2ZOh) nܷlhr]V 2?8hm{y ?@FHZ3^cpyQ梩i{Z譬B) @kY྄PFt~E}.t (bU*wY/riy)QV_NnxJ@Z7SN0NΓ5x%a8]5NNg[߿{!tSyd3ߎCavjo &!b;Ԑl?TQ@}d艖yaR}_]h@æp4Rd`J-f|u}P>;+f6TG%mĮO6xN͔#Sڟ$4] @S* U޺;.0r %Bhs˝e͝^93nօ S($ļ%%ø_j[9}4y 5z c6>>^ؼcTsvrCxS)ܟ^{JO6\Z%UQd|g*b3u9!k=YHt`A]{ +3(;+7sdՋTɈd>š<ezZ))-Aҡ *{a#P*(& {,z)g?9BfheG6P.`j:Z@ []JkF܀Ezf'gw`AMEyC҈+V@}?%7Cӱżq41*vB#N;HHyI[Q[풄#& @,X Zs19Qvj~:-FKx 5Lh̝"KQޣQ&.ױ(McqQ`9wk疹 #ܢ7}A;^QhU-Q ׎{Z~eQt/r߀mzh޻C7*'op zklGӓɀDA&F踣.p4ų+需cFg+% xyeq143VVvJJwVI= w1LnC@Jĕ85|m.mvl$<%!ŢB/ ڶ7 S U fyV(LtMږVYxLl}c4-]_Ẫ$S4H4o *CO |۲"nˢCEp.v*Y󅑀d7ܤG&F;R4;]t}ׯ׎1':E5A~t1W$|-#EZm ^&HiMռ\ԙtpDǨUuG@KW&B@sؚ  r֪5KKa-[0uK&HahA}D 'Αo!9#ؖ,|4N8Nwf4+ǠV#:(EgpYzOjaY2`}<ϋ4(3$Q_xUSwY|2̣CؐK6Ă5C#to5zU8,EIj @eSYgZ*t>?Y|F:~;æd@ցc~?_XtzB+~ZPRXl+\6^˄!cmk;ɣ>f#{ 49+Wz,5[ :,Q3VIOF0ܥ]2W+WZNT7<װ_Z_8$o~~,Y#*+r_Eko@fzFkZYb\!$y؊lG(+T+uU:u!h>h(赯#'yB-CܜepWzR6jWB=nA$IA6H0b&9@t.!ȵ;qWJ{tKZF|\=HZpvs0F7md nટ =Zɭ slk{l okq rj;I@.fHD's-_hmj8nztdtq7 ״ ŴhcKвXQɾR4o|`'|>/:EަEdG+L陈+?wy8ƻhY(7ǘ)m\ #L\]gbNS}J\9+oE/!M޿PKYiy|P6P{VqT]=V(E1M "9>p=»/tՉ͞'PmeßyOM 訝f gH;x&VAeV![ه?l= LlM5qZ$+ k@,ČLUeYw,GeKB_dJb;zAm(-,Td<*?tSy;1ߎTiԐ= _nS \ޖ{웺$[~[ 7-t'"aFf b47-;z٬no dr ֋wqʿ"OQ_}vf/ISɁؙV3~NhbLlzϩB 6pwim\ ^ZZGvH2*nֵ&)ͽIH|;UId}N `rf|Mf1@…5 Y*(ZoBj/tc^:%Q!'5>\xmۓ'J;>[=GT)J ^M4?<@$[(Mӝ fwCAaaL/!;!$' %e1m!bT%n+ A, F, %wldI"M)N$^zWJԦ}R90ay͈p.ب>ERLun4J vV%4Wo0>R6[[]ns:D/LcIe <}2-i"Ӓ_k9%7$ 0IƬ:(Mn9&3: Bn6wt~udXw Hk%IĜ~FubO^ӔUY*ٌrYQF(氆K|" |ǖsl{JL(߀[1't]j߰C5k)9}'pmv9_j ^DZ2-Y_vտ..o^ו3 hspKqߺ k~V$KN}o/} 2eV(RwDUxhiJ{Zq,֮[֜ vq{|BIi'Ks^< 9|/OOdZ^jlcOzc |L. MfTJ2$l̏%ϩCh"}D!Lmm=U5T'%A3PL9JYG:P&J6 څIIoi2{*z 0K2M6+dj>ԱZ?Z |un ;qVOnR0w=ܼMlV1zՔI`kgXZrKORW4 @hHGÐ9<8As:dI3 3}aъE$Y*8`4DX}Wt E^+ g5[T|#o/`'(O>;)E֕ĵXY PՖELE-. rLv(iJrQҤB#1)Qɴ?I(>3e7i>]J; Cz?3j+1&zWpUkxx=9BUbq%3BqUUA,/w:V[!n\![m\`iw)c5tzy؎489BA0;BM{rTdOG/=%l<[rm\x΁%$m墷)dE+j:r af𙈡\n˄EJ%$ _;Ї2= Xb^!e)ߴ/^2^NOWBVKM3r߿cͺp{㯯ҢX:VH2[ \[lRepV@ʦr= /fX$Q]؇?NdϯV8oZ>$ُ(bzA~|IԊRyN3w^YfbgTr ,k֑3^ BV'QRv?;QJ K U2/cL*R4(#;gH@SBf Zvj]+gԙ9.Gbjh<Ǧ3?{x3>ߢg > ;zjEN]ڸT ?(N!#J2+nQ[ODiEWyii2/8F)Y HwaB4^| DY?vF=6UfVv#'0zF}f@qhOQ#:[#8@(}2,ė> wǦjPYMف}emmPNΡ$mFcH=cUz'oZЪh*g ,/[3ql>4=L<2AۋdC_J ]U_I)*dz3 h͔I,k~o;/u-H>$xEMWr1FV'!#:Eb]$efLK\_u^@8Bɱw#4ʸ#VQ%}^7nB`eu|wa]M;4.K}ev:\3@jyŭ5qGZ7Zr1h`Wa]aqIS0YǙ˫M]+gk/e;ٗ:bN2Ef?V?AH$W Q!2(݈6|n 4(fl^ƕ%MarhZ$r4OTDfwx N e0{RqCIJ$Ѥ{ĩ#@j |q0%L.@J.Չ+AQ'kDo1+W1p4QVw j)|'UqOyo*InyGQyġN@5فX;/;#^sd7:'znNELQ1lI{3K.(ߪƉz>w n^%ݾû5VcʳuN^ vToJ_B:&/^KvK"Jò"ɟǁԾ."qꈡ#w͇QS0BJWH:|kV'"CP酢ko]ކ<5)$ڹۙϽu^pum꧰$߶jR7nчCHkAo=LҾv\/!T7V_OaT#1?|G_(=z0{ Uu6"2rao3_$e*282a5#a2sm-KI.Z,"`J[߿q* r>/D@rmu Ac2L j(J²ܿRut׺Z=. ?o_Z|Y V hNLI-ܷM\\KopEْoYD*0rɿSL+樔B +'_ͩcossFs=1i*zÁO 8!L3!岠D9=W|hQh5<>'pXIjg:!1oTwc(z0 ]*Q/:k8y^`Z5CV zI"Vj/b+R{ P،F2C5Dn"wm43~Nu q"tf[Vi&/=4@[leDd)[? [==%K=ݑ$o&mBf n0{\ܝHΨ&?PE<78GOT<㐟Nu`>2 .%1c@s7ȽR{!-P>0v#)͖h{MݲLdž:M*9Xk i[]V֦.4%˧V_!@߰AsY:|*6Ymy>}6J.ޫʩsɀA~G?D5ݐDlCp!Q<DN?偨2Ci9Qpi x'3 6kLW1t]KvcSZ ~zC-wbv[198@CӍ@:'n@(;)z>3_ hx#p$.,Z+^xZvT:侕NFuz.d}ߺ^xq"sHEzoH}3R߮}7Ce!q Rjə͐E[=H8}t&z]DN}K)ھ1\VT 9S(fJK*Yp^gʜXҦ})*Z@]ؿV񁠋GQk}?#L2e<yبʻDuʕ]*澧` ^\L3JUt:F{Q09Er__imvN3#;fu0k߬Ux0 wL5ƤSc$)Xt&'HeqaJ@Y沩x cr[\1|{ot,;a/'voFm`}y5~6$!bFR=7\%_)!ϫ|ʛ$L Zgzq |ݴ&;IQ5:J{l0$Wbc1ZT6]2gW⨍13+3Xσyy4"5TJCRTBJ~"?Ui yܡ)u7,R *e(uR+;ӗg$[f.آoۓ{[+L~iw Ȳ|Gžч ]2q&(O Λ#D3޶݉ We#rYW3"чT RN{2 `e h asG~dNr|YB$: Y"L8:C ϫ;u-Z:C_ֲa=CsğO3ߘ~;/X鋹qۿG!g}!ӉP*@$GMY{W8з}8 6:0] ^\fd"VsVcUM)X;Q}suVۢv_ %E{IY,`Kt_vbcp6z̔&,RG-a #[GyPުH"4eo.x>n/弒ɀi-+G>sIV}(e6'_mDdBޅq& e7fv>"ݏϱ|B _58E&E\ԧ//rw5E (%}0^8sK{ -woIH^镮Rc9o_[#^uqw$}}e' q=܇ѥ6|;I_[=fk]aJ=.uOi1(t)5|__CC_AN!!G.fO l愲@2bb>Dtm*,׹&zmnLWT/-BN;ZivI5jxek;䞍z2~\wZz%*5K/r+e8EjU< ,V^ q"w2aґǃX~tScE:HD{⼲1Ȳf<dڴ^-;̬D4 ~9;I.8Tem|a(dVXzފB.4+qTP1p,[8K-bXP;V[W sȷLdo~vyeւ"yKA+Q$C_6u,O8qm^$qK^y{ڷպ8HdۦC#N;KYPǜ^ BiH䐻xݏCms2ZfEV;`ʳ}bp;Ls.KR F}ȒeW;E%>iQuY-)H ^3V;2% 7'<9`Zϣ>8~&}}?ӓ5McWo ";H+*JVhwye[{:~~5!"QNJʻ=c4CdD`}/q.Yyj_sdЁ~qD!iE(d֕\5ϵv~ieM-~ձs)ԂQM @+O[\ 7h+vNfMNXfcvV%,hivĥer h q]Url@ u?߸Umjv,2m ֋:BzE&ˎT٢umX'zzׯ XY#] eiwr Z41 9:mǠflmb=:d_~ZvYA1PN#E9aיq{|[W+zs>ti\vcNUyL&v]2nj9daC';rgS@1HrK].v$u(׋eo **GޱN=M=$]גЈ|E.68GhGe{q ^Ua2یQSxn戽Xs8ӵa::u TT3UE!dy ,T#eӆ*Lg\ kWY4Cׯ:whXz%M~U}ntO0DF_Ǧ-+ XʊN^9aGu* M.fΒgiMaա* {S93#DEɲU/' ӏ *]XE5t6 0AI+_:U։8̸-B & Y&)r@I)/& /=Pa~jAaNMKO4̨i(!7"mjC Ҋ\` +W5yM;ŢhQ@Q4Ad^x}>+Umܾ}l"lViA3s+;l!Zw+u,i'+^^MUWۮ:WSE{ ,GA|}˖ٺn7u) 5az[ak!5`&_5  ?Zqaq KD}' Rai$@N-j |V _X(떘hG"z\t$ *T /VП=f^9*P\AE(({EeF}j dkrEWj#$zU@°aQd".T!ר;XJC_3Vݧ:,1^cE(LVU?,ʼnzM?#gB|,Y%f]ўko^d|Rd*$1Ŵ&nvK[z745A>ReFMt-$zZ n]DX>,>~$?21@gYuwV@|Jws!dT+|a9 L[V3ᒗyQ- g@aW!&xOvWٹ!l!M?7BB;7ú ;Eo`<OPbHD0Ja#Q@+aޓ mW앑(oRXrfu^!# # L~ 2!bbtk75u[ܳF;}l!5q>z߾[KN`LxQ-KxcÚiׯE +#/- $D!vo}A% !"N|˷R_Z*ef_f'+&%2 FJ{牉Mf,AsJvx}_,~B;|aLX"I؊'UxQR]Uip fN`19iyYBXE^ Z-lsμ"VOZfئqh+dwiۃ0ǚ}WEw o|ܒWZf{6Η[^T7=`mC8!CͪX16y\`JԳ/7QeG -*'v*:n6m>| 7va/Ɛ ΢SC鵭D {Ψ)HrN;MMÝgW/dO1mޯSnҮ?`B ]U }H\ӳ6ofƣOnQA!В^ѼUZ\`0fj0UK!PR&>f.WWDX^B?♊QX΢-d }V訽K@2@%lbѾ:# A:9Ͱl[Ad!tҌ6h"3͑:__D<F&lt9xǦ菮7ˍƤЭvmV;huZy>OqEOv+*>r"u{"!{G+FT̼$Yw?%&r<T1Pofj|o48&ߍO?[k"? wl)@Mv,;~16l>")`F _cZzहv+zgG_v޼X^m?UZĒѹ,i!2lj\93[t'bƔ8샡q[cygQ#.^mrh/}a-p-^۲GRHYQv|AT qI.j[ٽGW%:$[ [V|.hWv}?6)#C/wC`cZi/upˬX;)l` jް& :cSOȅ]>{]_;c xS]vEdPX.ETdo-psg%Nz\ E{gm|}< HvAiH]wY%ɂJρq-z)^%tl&|^Bvi*\_`有.I\9vY,=`nKEbo>,EMTl[f*Juq8։{4>9 ^9=Yw{H\Em%gw & nb h 'f#SR-ʵ (*?U߾^9r" [ <:l16+:W__r/w֢t"^ۖe^2f)Ԑ*KHKF),-[}˿_-mujC'I97/^OF.ssƁ KIk \'G QS@H鷭ld\!V^ɟy98V\IPlIp<`cZ :cүR–Ț;~p@YK =7J_׆z> Ecŏj|PMeF<)>diٔZ6qZ%HF{P1»Cޣ!}+D40Dzmy_f.Tf ~gQڸmK};7O>OtFON%c}74@[zKN| [ɷknvWQb):2p |\OY%MUΑexy"5n8ӒG#,T,e K"#]hz5I-P яo {Xף+=}+8j6*vOM(:MI{=lYɗ@p_VT2$ɞEx;d7GN=4&'j;dYN( i䤧gQz|^6mM9ȔeA'[یd'Gʮ &R]UM 2kajm,Ԫ |V{}f+W"N;|s3mٕ 1Epe-r ͢v," &g\XeEzXiPRY]9z}X軓K(%G +@Hmnz]1+,ƾ+NZ!y/I3Z^+G%Uwnd-7~0N{v7߿(ٸ&B<P-#҇el߄<դ+۩,Y+C$r&&йuOT9Ti8Pg x떗#=^sxḌ7@{~tE.F(h*ﳂx{yT ԝҊ&t +~0XhYTr#4}XJXs:R/YU{]"a 7kz<[3V*a0-t9t\3&, %:Ɨ4S.]qW%o*iQF[b&zK߭M3ϡ,`@mS:/aqKY||j慓 4G=_Fi BVnGzbgl;' kT3`f` mb>Er2+Vg6q$6p3+&`]ٱ",Pkgz%X-AwjPi׋9$-Ǎ,QN$UU1r+95yoWFju]k-'ekE|c=RvapWR(+_rגּSnȗoww`~ 3XbId]ݝ B.iKƧYV rt{awװBǤOHwqJND ,4v ?6>`}|?7A _X[0 4CW_މV,x?}Nd0A"fI:%;9ji"ojFdF:=s0,$9ie "n.@ (Zut7ZX-M!:b@yKcrI?%9xŬDhBE$O:c"Ǘ?l~65Ϩll2"YJ t݋t%#($;BׯnH%`"0TJFwC=M lvT)p)Z z˕m߼Umͼ>-6OY oW!WFP`l$7OkMzGOx}dr B 2F1Ai7%,϶T"L{8V6g'thlzmRV돲dPṖfVY$ Hi~Z" ˕E+BMo|lV+W(X2mxE t3g$BѣDf&k k>Ffbt`"޳CN7LY>TPTN{8cfk #V3TJgnQIơjJdF33~zfb OܠD_nu*Hǒ`یvuư=3啄rAƕU.`9OsÂ2KWG;e?-9=<Ϋ?Ŀce]lY t6P|^D*E.-@3!~$- J+*9o-o3ͷ{%Eoev-#Vv4N,0HnuɦG2w _ Pif)XE7#|:pk-ou|!Z\-ຮ} @Q\uh־rޖY2,iZ 1eEiˎF3YY 9;3A!6 E}n&=ޙ6.ޠ'$D Pf=> GhL]K~vACcd&}#|3S0ʇ?t#AM8tYҹs#!b3*Q)8/[]b/2$ZCQ< %+ۑaqVne'ά[8\Թ;5PBf\_Z+Mf Bh;nqQ"fFBisGJYkMq9tC(dWP %Dh5{|&|L)S9R&YIC?Ypb+DmCL_ֱR%OZw}/霍q!fq5FzyWZkYD(D%2JVu1 XSL:REjkCb.iT]hNlYİgfΡ.T: oy9ͣXޮDy#¨ǑkLdPW_)m>ѐ?'>݋72Wfڷto`Q vQ IFgaKtSt "4pU;ajsJ=vN vE\W*@e!u G8u, ̵إq9΂TAY2aׁUtM^L+q!K.6Zo^ wXDaqR?rIW`Xwvly$P{@ NMc`kD¥GY(T&.٠p>Lmj6PLs=ּp`ys,,:w]@Dqӥdu<Te-݋ܲI0VEAG7' Gv$3=kRmM#J|VW} CGT`$t` 8:O5N`a'CF*V4E#6ѐ]e,G.%|GQ޻pC0QM :j?w('T,藀|8)WNJִ a H{fg~d1qE'Ac.2'~.bW!aNi"+g  Vsm-F:!H9p4ȝW*2@Uǘmu|c##Qf<ݪ^;=,&V儋&R%RpGzf,y#nP!SoQ|tA.' Yt|6@-b:ﷶln{|-\NpHÌ z֣I"(5qMI: ǯ'fW>)qwamϦ&HhƧ!zʺR]0`QM OaGݾ3hU#\7i_ܷ;wE=jJw&97 X_qgV$3+ ?K'/9*GAw~@W~ºq?#@RU>61:qe|\~ܺ9 >A4=I/-^%gQX9b觡A|~MHksq8p{$ȊFm{$ #W2U|e[ g%²k!&;*{(*ҟWWQMiw!Ѷ̪֗1{e?UQzT5z+Us ;3GIU y<~)tgBn7L-EAcG+7U5~Es%S<$}븟q|o,``ݻu&aT)gZV!7&{FH+XPRKڞyͯv8;zAP 9#bO4BN8b,l))1hIT%|eOJCpy56]:׼^(:x_'`fsΘ?M- 5xx'5iI-R3BKwVf]Q.קZELjC1lڊIrb]ê@FFn} A& ܰ9eEZ5aA5m!+!LpѲvO,rEEtZLu[캿% U.vN+E9_{16E?Ldp XVsuk;TP+In-^P$T-om?3GJ&HSآw,W*%IM->h]_výb6)FOl@YBT~ DZzE̢)tixقk"}˷Q @}{LXs( I~+BLlb؍™IlJ,rznUfX~ +|* ӟ]γq+iZ/}?|Imurl`(6j%2/ Mpi_Ϋ3'Tn;s蔤xOkdPU|<.0[+[,1:{vE#%@ ?+;^!@C4i7;@ܹ jiџج,5.Lct\'C_V}KHR|P-y=a{3qD2y>rf.ۣ0TB)uKx>!,UvC;d?,T.~XʌEJ󌎨6Y!yF*Ҋ> RPwg͐radmҊ+w.It*&s'̵aZ;MI=i^ ߠI/rLd T0gRҁ%M 01 p%~f{b+. #p4t:e+w4Z&>|LѽT6C*PRGTrTK dB"ftdekC̷tѫRu<%katbln@ UjX?oWZbG2x | j`b`~:N* `hu`tH ɬXyHnpfR XTƴ RBx+1="wkp,/[H VB-suѝS+  +ޭ ېf-UkA/гwZ%7"db|ra.ϣv:?W/qQyq:pͯ $NI}L롁Gzaj?H0 ֱue!"c٘lyJymz^n?DwC %e#†~ChTYٝJ- Y9N\*fATB2{x orhYN?C vt- zGCT${R-oY%x w;c:oTf[iHb|k<mVCqyPz3vH7S~jEGsl]$V4. 4r}q2DZO]P_{9'!XX֩.j>9% QmEDQeU 2.5B,Q^/wwOnRÝ}pAi9ޱe∾:Rh Av=Hwh)o-opM7W`qP=%Byy<9o (ǣ.=iqKg\ΉV|m\[7c]bDAfbޝ]*DAX(R5 8y뵿u]HAHb77m㒢.**oxhB2r+zv|~_lQ떛ȋCx#9z!ØC@J?q3}>>6ȬUu`|3t5{V-<@=Vo<UM^8VyjN .Yzam^C^SKQAIwUO\Q Uӄ@ߘiJo4-Xn_UJ2^R|\:lzs F<7P[8E6:`yBOCk7L@ jXk)b\{+(i.TІo6&vP6E!si!u4+ĜI@tt[K~K3 Ty5񊁷RۨzY!iEВO6uϙO=Sdd5Y EMjݑ4Svb`5$iSXMӪB4JoË4h@tb? i ڌ$ʖ,-떐P+{Qg}Zawr+ڥ!7^nd&@I|ir(~];$ll-w $%7ma^U*RO<玭etLQV.Uub6$t @@s/c {UvԨ`q.V8c5q{nĎx"=w{:3 `ˢnm}ߥSSJhv0.nen H ITVc0f!4m#ۉ!H(_M74y%BC'VGDmA)!q#Me1rG u}>RǵdVqDP6\WSk1'.;&P" `;Pj]J"ǬԹ aES1>kź6c,d^MFth]$P.\xԪckPmv4\9t hv˜GըG0`;d}ʣ  MjaKfI٬Y[ل5>'VS*Pc10*$J[q;k &re,-[r@S^0T03̐'G[B,*f5g恤R[>o7חu^S<&kXC!TXigHRʯ)酈OK,P5,5;{I6oMZb f 40G>bq%@X -%4nۅE#!xNKdRڱ~ǟߙ@HOX>f'o-$YiLu5돑~u0h!WqU}Q?1 \[#d%ģgܘ!ڙLEc_oN+G\vY(Xwl#:""8#9- *Cx5c?t]x<ʺi9?>59A~~B㒊~x*mh=x8ŚBDbC1E=^; ҳX0j S]2BgnV~iT"Ěc_^Jr Uc$ XpfMLEl՝t[%jKc62RoMm];UB]*k5V*U7Jp eeetYz#.x騞eG8vھmE?lg< 5 [iXQ22Wja+٭~(=P)uNGNT0DoDEm 5͢˷Cr:a:A!ވncvw4J4JNN{Rk!';e*d&£!s1@ˣMĜ@R r* fLDBYfE#)woD3ڊqZrSfN #m(?@e"pF`w~E<fAC/[ ,IYXu;鳵MY5 9n7t4oOU"~4Ɵgl}ՉEx؄T鐋=Pz ˄(Oq^i}\ahҏXzYTTfS㍄q@T?vyyX#F)Lpd璂uQ4O{7LN N9?&dAS}kPW%9%d96"_ʉ4kWQ|h5eFUyLgQ5~GVă+[ 4CoEox7ꡫNł /؜(c2r^%EZu-;BF2҂ijPusP T4+>W,Y-ErπZP*Su=Y5Ǡy SHS͋*|y="m>J&tO3gP^& }q} EwLt)E( :]0vT@äĂb{:%]'bHs fu2L?6f1,uGcG8(#\X$F᭑1>Pm`Q&/BDO#hVdެ>/ɛ9QUaBZ ߲JBܝec\BLgfSP2.ѫ$uΜ~}--F% 3=SWNy55t;Si+u 1'Ўސ*40}UQQBRzƤIZHM.]`z.g9UJ U}6\W;,rcƐ8y%L]:B׵@uEzVVԾwvwe dhS|Ә OPE2&fՅ{l{ Cˌsoۢ &,smI0uYy@(%U}wy@[oEug,; če2ug2r߁J& Z2u`pG-[˜C"*t8QOxOt~ )k:8IȜo=Dm9U}|8}گyO?€>r eָ4އ'OZ}#2ɎIRZty }T35:N lrT VD齴4 )HMyqt&Uä*,/(f7~iiMsl1[Qw!u|׽##kgq Wi\WKla^[K5~k_LzC9s4#;5od*j!̓R)ZtWXQGkRx!Ζr1^PXaO*G} v`ґ )r!QmyY˘\+ `oϼku1tlAY%R['hܦa^2=DʳkLvj;GOyV MbƢ;|oe$mo%4:E1v1ak= bgTy܆&^Ufy09' MU*:,!ػEIuM&[R#{uEPy9iA$]+$ͫ^l\ o 2˴k *a`gl(]q 9~QSJAK#1FcC mB[Ұ镏>:h\AGtꁌYs[0[mm"Voa;Of,*Zǚ©J܅'C$mVR>oVUЉ}PeuK?Kؑ<͏ఠY0Z~zG1[$/HC娺¨t*rь: S]jmzH4A[9,X/'3_iSG&6N5XK䥌vhK,!L):0;v>Ta`wl76Owou~*mJr7tC5],I)N'塀gs{&U*AcFYu8^- EJ3 ۳6P{~onDm( =g݆CFAH{w>2ig|G;!01$bU>64j6@'vj5-UӴaIIزNk ܩ3m9M#}zy@AiGzxEvgT˭8Eu)HmI y D'٢z;el徵~e G숢5{p<؅T>j:p`ϸ.X q./_i0c%`g xLy>Bv `>VuD{T:86l(kuc~R)erf'\u͝f1` +a̱'2LJs=$'F=3Lgj:U aoV4ʅG׎B?e NTiHF&i77?;Ŷf +{`˴6Ou~O l}#!0j"KS}qBP#:/S5KjhaUN^O5=ǢWF^^VSq, Z3Ty&tbjp? cjЪQ5љw" d(}v2=beLU,ʖ<%rWގoUc@aC4׬fkan2.g!\z Z+jS,cu!^uB1<;4tfv1<ݳ/ [m_OlX$J,X*$hi~'$7! r2Qlbާ0 '͈}xQ$-fcQլ4,:k$t ̓sh!EtZ 0D9j1s^OIHwZ;9|)#A+"fUlA}g7=d'S,_Pq(2`razU0c(+T^/X.+9JA{'[VgU,XUわgxB:K}AKt ?-nc5ljfG5EYC ٸFoH:%B H_n5}rnx5w1kS8.!a];#m4[9Ś',0ÿ|s.z 6K*cUnmy!HʟUB ҳO`d|rI OGa0 =ILiv+O9z dQlz۴1>+[p MK JB狫| +R=MB-\?s$M<{᥂?1}:-MDA 3?YCg9d1j]u\zs#0я_ϫ1y-J3Ǯe>`_|ըiYnwem%O|z6ȼj?DO2<ziD:3c-8jv'yL ;r?ؚz H.. .gBJm LZG!h&|eBzpƷS2ql: 3eqaӴDi#wC? iK 7kd nª'YRY4Jv4?#v2/M0&/jE#r廊eHe O!̙FQ"'S{w. ^h 9nJ4W ѧ8ء#P]!$AJp"F7ǰ%2v*&Li33s]02;)(@kO+ M>z<;Msk^O 1B; uGlGO\H=1vdEETGG*C#M.qL"İ܋QnY80A F(´4j ecBRLe m "6-Zc6%i=HD\YWfFކ.|3l+bcN;@NZp2}Zlxy6BW V? vq kUA>61thj~^3Nbd%-0/'UCUv=磫w{96ƭDɟ(K# BڏDæZVH1ԫPc=[Q5WM[ϳd BH_oi/r[Հ~I 2ϩ=Jc"˶dd3(wFctѤ+x8z&xJrS0q&mHah2&8gI?5P|D-j1|30{5cR+(P#R%QSuɀ"0 BMHƔC)qm; wFJ8(]\*YrVɐcq~d'Ե˞| sHM*bPE39V(W "OvZ [9ޫ;~# &((rD(\~1[2G+v22l)"cQ2MÌhpESF,ckJylrudj=uJq}`*KaRe:@ZqWo<QMXÒ#BDLFj|V&9yo^OFh|$d8A|.zM%VfGKky <*1'Ϡ+wbCޓ1n`0%A^j\VA}&V&\U0 e w(0&-т¬$UriNi1XPMn8&}e 29P 6'?be1xY՜8 H,7&\KoS!f}Gp`JV'z$3Yz8E1pkK$r{M%"qsA|v؀A=ߤ;&& q,6kNt aL_LJgQ+lCqV*vMBKo<@.iζpKrhMJgCpCyK䗱 FR*#qJKF?';&EyuJjwr%"3ѳEFbi,),IʼB@Z~$r_ 'S2wX ךSјAK!?FXʌUL3H¼HV"Ӭ㝄 /wi6f0nCXO&miUxLShHvYU:Gw{<=i/V{7ֳ ش&-f?Od(WĴvj4I+fwfnU5+Ɩᥚ\us$S-~EbFhj!zn#ɍ5oIf|s$ 't4Y$is=6ף10(=z= lLچ#;/odUYWɑ!;3pw?=S:}3I"[<mc1şP`Ӟ_A5hp*9 }8a#N\ΏCEz8 +Gj&\9$Dy?@=2Q2]Pqf[[u/xiNJЙ.LDyB(n,#K+Z8Lݩq~EH'BҐC&|  ¾Jo;C1#H/(EuPXfpczz'50:6 א)6ɐWPۊjڿj1ͬcؒϏȩPR\mX1<**'4H8>Aƥv(ߍݦcpKrrW)@jV]ZeQejKXTl}0#fUSώ,!8Ap_mT8y^9> 4Q V*|1ڕ<]$g*xT(F%I28c d; ̗I.$df̲idt jf>5& Ҕ!9¢6a(6g5bϤa=oBDqE,w0i( %\[U÷(Nՠ 4O vHyY^ oC3.Ŋ+dR E7 V($cMNaZ, zzpLiHd'>pu9f7Jlz,}̜xZ4/=.;0Yk=!k[!bN|t\jsP:>m92323*z͗n=sccn1攻H\\;"ٛ# "쇐x-cBG]]@LޡT7APcr m_7cI0FyXl Wv La),=5H׎:vakhZq2_Rȃ9OAl J&!ƇrqG0Y4㺫7z3@gjgfr ɻFksLjߏ-yI6kGe~f0ԹdWNs46ȉC|p:\e" IIO p#.T.TuV8::Au-Z%'ri>T7l}+9kNφGV;(S ;"~,B,؀̰Ryg,}/Jj5S؛G/>zª QR+Ʊ_l@#f0D, =+-G"׏ݦ"\b6ŗ╶]RZӦ7]cCX٩!-#˭BNKB%^Ҥf{/pli{;|x"n> )W.ZgԙXL[d4e-s+,L!sB rI3 zZzsh$s&,S,|A {#uqJ$G%qaSpٖc,lh$O$ a~$ww/$)I"l@8a CZ c͜O4)$`XѬ 9Bױ(Zr-ā1h5| M<̪6q.k0xtS C]u#_W_k'PdVz&*EϫX2o<8ضI?~7ۚwSq~)Hv$Jrܤnlu%x@;s 'UW>'#{!ٙ m ?T{s'ㄊȶ̀Io-|-ȹF lOhXݟ!!ѡ'yifĀ$i+ģ۵/lf+|vqUeN)e< j>T2Uz\+ֵIذcEL]u%k F$1A |m܃6P8pOW.H'[8 i.n ,>Eڨ$lnpZ|ѺEjx.rý.I )MVFcgKUhFr.wwU4G Ag1} IsJ v#g_) t4\o@eZK/A_=pETp26f0\&5Yy=)t.7vhWtCejt9qd;kXYIK խ !F'l!n:!pfT[wΊ?B#Fs/ N70lٴÕ"V^ _,1+NYrIˢx"l~ CU$h^m}Rcax4[$ܷpV>bNТungYMi2z\] #Dc1׳c|f;lU14* D$HLQnmKh;h5𔭋&%`.!02S@(pYIc|j{QR46 \5}A[fUFZ'7Z_H߳<D ɠ1Q/\J.Ǹl9'HL@]cZXRzkohfHNXg%bOOoba?h}שV| c?|^$~OZ ! Xc>` liO p#5n>)2<ufxE:ip64mmeh%;@ aȺRbRI M]~1Y[de )w/4%ov@AYj; /pV6N,Fn&f*9]yYb*jL$=OR{RizeX+F9oUG+`cY;Zvf% IIelBx[t\<#׹jGzbc6VF廴܋ jıLթsBOLi3g[ƚJx5o+IZ{)7_;PHLht@첛?mcf38J uJE8TphZf]CSAU>QlM&]iJj<$7 h BV TkaՐiij< 7e)SH=c}u$.B LJfF. WU?O|k70BF9*lڤt ӺDQH}€`Zth@JQBF_qEbO+3\ґG;CR)G` # riE>i@6!)GݖȌ KR=uN0Zt-J89l@4d6`cD#c,z6&ṵ5e2+n4,keiiffCCܞ?A#r/t_fטxn<#'mW#aPxE8n'͗qPqE-`ɰ#fQU}qS ePf 4ۊK~pf1IIjnFf' ?nzeގs)ǟ[ITB!f?AG}^󾉆=Q?;qT,'UgChپ2ܼ8N~?6:qN1/'+V5![Jw<4^D%C;bUK$-u䦱W}hdoBtxul9< MZOWj i[ia" ;m$Rf4gxE\,RZU.Ä]jo@oVV̒m{]D mWSI(:Z\]S4%Lsӊ0 3B12whfrŮtA|;F:h=D xeDWV^nX2b,?i m$-T{Q}.,S9.^' _R{Ž BC a^"% 3׵|7j fl6(WV=6+w1Y;tM`=Ѱ`‡t=c# BZ𼤰ɽ "ΐ}nʚ5,HWtX̞k9 `0|nE2. r$`ȉUI/1lsƴƴ_aAfz1"=!דe&.pܘbԙ9GГF= !V--$x&J cv8j6FC)TUH'& ϝz>,.׸^B|e"k$s]eg߃[P!&]~ \]=2P{E⩜cpmLi^ 2GmM&# [ό4ԀcàM͵L~ 敌=[BCC"LO;`uw$CJNPHj&(߈J0>=@ Mq&4|iLsa)dEbtid唻qN@yŵ"a=`C t_!' `|QNY ů* BI̽܏OOqpi̖Xm`sqy:`Sہ4za?HR9޺Ŷ1Yًlƙys}?bZ~*^J@dR[,h}žt}+62I4So}%8gzRORmjz:Q-fy~k/woG3_>PKd۵?rC "MvK o/]@ :om0i{2ldq58׻P ~%0:t.kxl){[jQ) Is&:ykОkA/H\ L`Ɉ G?nQM:U9f I!Ÿ2"~ʷWG[M<ѹSȔigX.mCw0aIT<Ԍ_#mPњ`X܆y3Qmv| XyHڸ\r5vt sgf!|*SQz,Ҙ4Ƙ^ ˄tk?B$szDŽv i&ޞ*Xm}1V-B_)(=.4"(uh(h5M; /j'(3eI<=iS1<ϙK |)mzX0/[cc#) Ӟ;W5z/Ց9[XLf?Ÿ~*3/# 2v$9HBqzKQv<&iMv`4/SyVpRFQm)+ 9J7j"]#3e; 9}'Q\"\FXlۂa A6aW~]l1( Bkl# ZI D45l6O2Гme$[zNe#2dl﹁\q2lW:y+ Vǻ }n=A||1I=ШºҠz7?^u竀i!6+vY2~1QG81~'~wHg%p#[{}eLtuiT^[I]%i~G/3-QVt~ɂN.yÙ,˪/ItE!17Z뿥U6Pq(Ƴ7-PQellґc~YFDҳ8E6v QЉpQ*H ֊9u\YS"{F$ fPx+S@_†#JDIƤb;;Dj>6[4v(a"~搅p> #pPVB86=S\Myih[Ba<=xN!YZljE>'* 87ȋX"\N[%O$*CҬa*?1}=(c!oċ~叜6.@~X#d{=~dfV.0 s[4C70z e*Iw.{r)q&hSV,DpU (QPQ ω|̝BI9cY͌|IDATWEVK뗵O^< ]lPc^fl. Q 6yM#ph0q7џϋSz94_|}!atO+BUHC TciZ=ފ\Ru{ Sw;/0k9_a6aF3A+]x|ѢB#z+ϭt1zL $EGX!4"/IА18"nsD?9 44VQH0{&ZdQX "P9X?ͭ_$a6e۠װ8-.\5/"[,&zPH^=gEFv^?9D c{Eb,us* O}ߦ%s&1+bk9vHtb,<:C|Qؾ=Z$> 2G`s{8\.O RY\2XiZ/ɐ T@`UmIpߐ4ȿ_D`N$λჾ82Ih. J**P)/?m.J!^PV.UM !wd"T?,*@7U"|r(|McܧԞT5fJN̖q"4TOZ)w!#zkx ݢ;2.M{ #g]iY<ҡrUdӵ`kȯy݂OohԺl[$vR_I/'rVs']c1kw9H>MXCbpM σoUETP}cr 8(XAu\ FDбΞOϚ dԕ(f?IчܿBFuo|e;=cEJ(^ !<~q=+\y ƵV0̴s'y3+E <7lƟhqLY ܐA:$NvZ^EG@cLTyF V$ʏum0]By) fu/*R lWo dN˫`Us}4$Q]Sfj \mO@u1ć(ƽǮ Kz5# yƕ> 0끙&(OHFNpsb&D?JI7t<3w)[t?✃9΂R}`a db[VqbkjCqc=5g w>.'y=j|wx܄/ѹ"@ִsR7as}umrZG⬴\(=g("mKPd$rLk/,.r/V2@j^&lfn^2~d=HO(ۨBK- KbTҿI8j /8B=qkړiXun9ZָYTlD,*.a\h" U7"k CW5I+{ևT QּѼd=DQ眱d E%ʉLYր2Bxc}43 㾄%hdUގec-PqXJ]6 XanrfOGG uVzĥ*Lg^~pfOrdW@$ -)adc|ah-QvQ+@P S:€F~'|y"@41jDx Ey_? ^>v݁(@loXU>AS Ә h>=z@<`w@kT,Tk3~`MY6Bֽb^8LFJn2I9YQ>}إc,-e56+aT+x1a@:ҝ#r1]S1wB(/FI(']SOc,M,Z$)({5<1Jq1~,ONpQ-P1M^f]]p^eᬑzˬ@0`&і`yO%] n| ¿_ןnsA5Ū_E*EmHRӳʓ0ob' ֖LpH?ԷРr<23Ff 1KsZ`XA+hDyeF-0'|K $pMμX+bfFse ʸx\0Zow×1 \/ c qæ>b@]lZ֣es$Gcc2CJ][@ۓ#Mx(q-JS[UfXxsJLfZLG$ 4#􃒂1튰"h\6bX><6GʬX I+hIWn<겥~nk"-?H$ v>J_޲}on;8h"@L'v_eUBL,BWhs V SrmjQdgr gmp"b g)J]a`sSڝIPw)kNc^i}CЂt}_|-0Oܗ@IAc/_! Jb4ܟY㢷nWyc$|{@p_W2_PqB4lB|a >1y=Z|?`duKEHFo|V~ޯ_;UN.Slʟx,_-wa\v3n@5]|zZnr <Ȳa#lOXtAfŊhnYl&Ca$36F6O=_)=%p#fT~4*A K!Kh ,J8 }? k+Gn.lhNqf"+[sex)9# pe?CCvJL_B JEj^C y ?>])%u$# Ʉ=z?j,5 Ȩ@+ŗM4C*imUDci@ %ЂCB U&w({-R8FtKC[Uy/e_^(rNAxnׅ3_6_!nr%vJu?cZbƤ=6rԓzMj( Kf!E>FWF{GI;2S1!ZF`YK4 r=/Zhk6FDMC&t7TziC  E*B&7ZG26MCiQGK^__lZw |Ht6 pO?,y7*pt>ZʑfGQӝ%?Iw'}|߾"7H/TlP|;U7N}#}U^Mϧ=7 /uMqpGt4z>?Z!6cGhaS_+ٮ~R2ɲh&U-B>osE'mKzv+3gshv-dy~FYe)0Xz+ysҪ#~]++Z9`b#yU$2P) =]4S2z)e?V#~̃ %D@Ȅ\*|l*Kk#lnuiUmQ]ڲKፆ#IPGtQ:ZGh6S\-Vh08*5UP]%7Sgx\W}S5rn].6EJ\Sr*1|(W5LEi0b-ٔuW(%Ɣv, Ƙ ւِ,%+]/` 7ؼ[X{?9{єjXε|^w*RlP;3{wcImҥOM7WۤupJi~CRP(HI3'S#.pΪIMKlȪd#$zS)%<Gʬ4,@^a^uhxnqiT G9}Nsk=/A? 8&0L{`HF),O ;S|]ՒJ)=BQ2yQV/3LE"9$hB%cZCONUSB^VW\#˱Vڰ `Jӆ9S0=_;MYz:L79VDإ]Do+6 4St'+׳{!Ǹl=/0{y~>[_-5^v Q֓2]N.׾B U,q$/top~?|ta$; }MV}] k;$xX IWzNjF,lӸO]l_/09<NYޏǰ8L`)TL*cL>yeܿ8MU۲C62; jk)S]iQCb82kUF5Pf?#dmdjHIزY} ijuɟPDeD.s;aX וf^$3X~qWfΟ͈U?nzd?+'ݺ.Pi t|q=!5+}ff2ӸL^J92K15XvVsL>Cu9~ߗiTK/ad-Vh|齿A8S=:W0ֱ=lZhl'iAFjpcڿJ6=OH0._sd JYYƶ473C ϱmiPê.>dSˈ804,ugû_AZEf1JEr5#jdNN F~ePW=͡6X(Ȳrr 8M/i]l J @h$Ś~H)j?菀kPt7qnZW~0Z~۸v\ug:bp3K/#vJeedJn;M-"j7/_}],/pZaw_q5|mڰ`6mPײ+I,m&z9 <eCC}UMHninw=M?p`n]&BP%ƀcsc^'oOV$}`]"Rֻu%bEJt0ERxr4NDkJ+_( B$T]dbI^LacŶqr 8 xp;r/.5*4ABF.ڗƌ sEb"뉁Fi qMwE!%.ZҜ0/ f.1Vԛ'BVo.8C"yTC n0 Ϣ]:\'u^xn@<ڞq%m][?Z^k70kaM]}JC@]?RIn4+W>\9?x 7.m~ھe[^"f p#.Ē^>_=⦁;dnjK N,,PF\5wl<Ē7YJCe 1IW'GWS6 #ҹNm܏\y;\B[yF5L- }>Q+ΠԶEPVm.Ix#u\ޣU~{8䬑u#Z| FJ2cG>f]n;#B t,YgZ,I*3c /RMUwJMզ!O*I&O\wOiJB.2_ĈP "EWܺi:cs̛|Pv0u-|=FԪA3%glݤ__ҷY_ů?Ds'2rby \ @4]Ot\nԒΕFAQ8S{g<:mOd,] e2˟p)7$S,L32ssK9@!s.16 w.SVa&>)ahIE,i O"Rr^_6M 媌\T=-zʝT$~w|}{}A{ԳQ2d)paxV#WElN/1LѼTa"htюeOӄmL^j؝vZ8󼣶ߘ>hV}lج4* aշ6|-P,yV%e:\-6"i{M255{y)+;||^ c.3TqIl*^T?ljuycYZ.d޻'m=I9^ rAS$@>7#hӻ+#Rf!O sϮg#޽3g̅y ?}ɯ7g倊{np|T Ocn'ځ'|g?E_8ȕen:E$ ?CyUX-ze.b B-mCl@/q]0gN^g.X-G1zKT#7+`.]昛t WR>JRfwSX`I1v.nMŊc=맬+g6,?)L% r۟"%:1wbZ+R8ͶcI'8˪"WUlKNe0Zuki6CRDY節޴UQT;5x!3V&8|񪿸 =R2Kcfz.K2s(݁S<~m1m#8Q2;f^}E5ج'Sv"ь->γh̗ T]`X1jm'yeel)t UE_bםqH'Gw)oLPNt t]]kR&+(v(a)͞,kl_Y+&4זϋc h4ގxgeˡ%I6*\K{ǽUOZxc[ʕUS؈JL'Z6 }a\KiNƕ1DC+TTXbc]w+So&_lDd\M,^6_"EO$氁! xLUc2V_ 3+kŞ!ф{Yq>ꌈ )y[O%?_mG,, W";:~}sB齀[w3B~זN7y>ȇJGV`3k:c4TixJj9hdY:]@wk6*eDϚ D&p`[BkvF|yo%]SՅ%-1T}nLeBJxEPx +I,__lBȸ"]^H'}!nMt5,ӸR=kBXGT:QD ށtpm 9k2D'r#e>W#ZYK>ߥ {/miG^aLrkmoNmkh,}_A82i<qъ-Nsn [k# +7̺ೊJ,caUl8wu҉tFbGw #_Y[sHbIv8ސQ2ËpV]mK4:Uz G9ϯo柴S.'z 4FPqG+F{.dDk PުibEfd+ iy4_ܣb3 =8?!+`a;l`==#݃P^Ϋ\C1_[Y@rz( q)"EG}Jƕ ,} G^OCx;ބ_\O,1P|nZ#:RI+wsuҎѝ#3_%f@k#XyniOT< iٌ U30BbC'X$ja֢{H/Mu`6-f΁ͨU Hm!਌mz>0VAlPAJU=@zqQkyXiE\rEL2"!M#(R7V{Vj:+PX†(|VRBT=y^ewa~/=qX;?-աSx4 Oowdޏ{cxؐ>~k\^x<:8t!O}=ᲚRA%%t<#NPoH;Mq>ţ'$ZdŚ;'dulQ0V 1],AP[xy/lQ LW !4PNQ>ex+d?Cʎ5~r`.3lH4ˉ@>S t_Kaâ( `lm~>Z&?PzYazK]oh:6 U[g*Z!dϮ* ϲ:g>R~W6N[Ý&ajYxi:zi) K#ZDMbk00vL&qZR1w7:0عf+bEeа$4`L_T&t+"R1 cf iznͮxT^k$Ewmx] ~1Ƙ7y w!RdxV]Ϥsxňg-A@ NFQh0iMߎ dLDDg)vX N4jHê:]*#(8&f.h4)a̗5||ai}YB⦢-ᶇA`Ϥ6#? @+~1 Svk7_ks ;l=!w|?`%7>f U\¶絋œ_kO9Mqlt'?JS)?&*L: BÅ37X=_]R>K9~#E ɬY{Iw@P:c[ Xcq;+HO_5O'c)'K zyY=>dȵg{31ͽ {\;fL6%FfPZ1/˂f3;%#(z(6 | ep j_G$fCiIłtbmb-;-7)=Jx QED'kߘ?ohrJaͩư%_X+X 4Hؘf4 g1j=rW|KkY#܄lj"WLFR^N8hüH|ǯ3˦biBc<>?>HL:8ͻ=G-u| \-TͽO4jTzJN.<7Z#Pr]лUe֒F>y{;qI|v-:S%4z^%"T ]t߸`+'H( w_փHl9w~RD]f{fOj>f T!0\-!Z4J.RFW&<*Nߚ&ZҊ*9".%'T]QckL ʇr+Ǧ[ee`-{z9ԣGɥVk*FY^.jh{+7+(eK'Fh F]vثEQc-N(L z%hlSRx\:҅0\y!Xgf>s2` U7C挍['`ᤴcg] yˆa`I&Z_$@^_8me554oTQ {uFJvBpulᙃ’Ybu;\V pqKW9#~kX7oH—4:ӝ8<99X8VIpk=1I1/ˬNA}1vfc/gq/S&~~xAӵ(PYeqKUa6Y9te 'R9̭m(L6'yn߫+]o`^OH-S! ](NTVEP+FN8J םU[;B7,FnJ߯&Q4j]{N=eM ̤<]ڲ4>r+*,zDg~V{) +kN 6sF;Cv0`M[ZW؄SP%j P=SY|f o=ev_Zx$QXn$%ssI@ b4<:,iz}VDA |rR41MCueg1\16cf.d#-Jg-3hhnڎ8ϟCpDYC?@i>TRZDQh,"$Ik:]Eb#]=[ꒋ4̲xTsL|HcwKRq<,𛡣!<'Xs2$ٱ5?}hd3W6 p3E5"+Y.ad31o1G{޵IRm@0W:xִܹ>N_:@Tr$|cz9.*>56 }*D?"o?卿M=[eXsXXlp)χcq!- fyHt.Aرmbze&oHw+~OPuyFEȿ/P8jN>HЪ20ojx*y* rFҍش+*Hߝ1w1"S_`a\& q P I .K@Nw|-wo25оrϠy055C$ւْg<%Bћ%߯qQX WE{\'Ap^/3=&ZaJBziU%3$8|^fY{VP9rg Zn)h ;!n PMBAkaF']UHZ6 jJ#OaI@Q%@K]J̽eoD}WHzQC%aG{{LRhzp!6#}L[Xznꑂ/M 'JҵOֹzmV6m"+/L#N e#dP /EL L@r8iT4 F G%[_E|k4?|Bpyc ĆCKih Ƅw?ڰmo+g挃XחcL޼f)(6x ,ĵ(qźUHP@EÉB@ l&l,ڭ޳*X[;?(^Vn:Ff!=&Wl;UW*!ϟo^c]Vr>'pTI8 :' %o,O2UJjJ=?L,8,#ߚ3mNS4*owydH.aAikPL]lqH?6eI0+?;_qAUQo8K0oIOIEgޠ鈚@ xE>qA9AfW5rR48UI fc1ٸozQRJc,}+'Nd|va=î!hⳗel?"=hkcL³,eF=ILx_[M0%WmB5&OcOS0(2y @?RySf7i&ZYkR $larᲯ *҅'e"3JNь(x3f ֯] ${\Jy^Q[c |`cՍ׮酅r@s[a"񉌮֥:0LZ(7|lH>H|R@&=zۍĜa=e#xde,e%I|+[ D I r=%@pFhL ^$(3=2oḰBEAs(H% V`_ou0w}Mٝ 7\УR;&SUqO㏫ܻhQbIc/jظ%a~1B"yf)*UUy(CqYQRWOfNhl{ QC tBe< Њ5y!@2^{޷!؃gcrL/SZP~?&C&OKaqgrfRjH^( 88LjH ?/u_3mwv!5[?w^SBh2͏fKRJ^2ŚR-82.LdQ pŃQd5:@v؊NR.sU”OMCyIcsxZMF];ڷy!c6ƊcHDڟwVfMTeEBѝuˣF8ǁ餞FF%#L ݼw$r+/ӝr8L!y<nC E=LY׸^4/ bEMs+nSIf?\<,8w'Q9~WHd*b403pX)J|%\_!Gr5ݫj}RL06U߇f^we_O@%y\+JOI6,biƏk'[BRIXP(Hm{qI?de|ԝ~͛f'%U'hFj鵅&DSX cώ#AB$*Tl~Fhlxmb~Ö.-4%"h6d+(QXz gaں en[m1@7Z:2筫4P6Ȓz|hElirI'2^ 4|J~R/y1[~ 4v&ۏ9 E?{DR}~QLdH վRrw\4  ZBXUڂ6P/vu]NPjk@qlR\8n>BR6$ :wR} U^-uƔIVbMcg+~B86z4adoLl&vK~DF?SF*@_Q|N3ch֤Ak>~ ߡLMR\Re+ieF!=?Ʈ W>0=Y,ы;4Yc^eBec-Aw OMT/6WEU< B3| 8 7-sw:!l 64| `jm-#65S6@wHo@d{v|Ϸ(q_ &$i\MZQ&}<"coyU\_/ HG\kOhdnMp/_Z_1ۍ4}qB9ߊ[\oHX1zIB0-4[d 7[8%A+%ݲAs{?KKkD;-W>N+GjǣǠ/F4zd#ܲ;EB<}VP3lZ- !\^={&65䊬{GZɳ{~~M[%`ޖ5@W0f&}1M>gϻȯ䞺"]'nǰ<\y GLr}8 W.hA b=wsӼqw$aLoWxO[4w+\/7z&0/zDz`.Lܵ$sT &@Efƣ$=svd;\.pwb{ hqCC ^?ᒔXaHoPp~:_,u?/)GS\(*`֧3 χ:J_ہTJE>5Gk)>\@"}ϣeX]`&۠7گcQ M6U!IIA4(oA[rlgŒQZHGUP0Ƕ>C%e9thmSRjǚo1Kuo$4J4=TS铵rBwZYrALCQ㣽sM#*" X5d9TW"N)Vxxœ_(uK6bp]w*Mv>ws9Rl%Y=G+OҺj?r%D$&Q5%/,EOa=0D]\/`sǸz:4LogZx✗p Ir /!\ߒk-?o^>f7r?g1avK\߈8 +A rZQ6~FUv0aȝ2JظM@YbZQ$%FF9B(-K m5tbM\<^^ΫjMtny&-D՗mwA Gd1O*zޗ ?[smj7zI7ũ;ͧ= A_N&_jJ=NT^6}26g=F5K+҂!6˝ҮGy*[P<MyR~vrQT5%]qz2͒q_g.9CjݡQ| uy G.gI'JKS`[-t_[_m-@1!ן^|9m$wew9 f ˜"_$-#33 WvOJ@U7념ۇFkckN@%t%9^Yx10eIЫN'[!j?uT۞'~oU=AWs"ZZQm{0˝J;()fI֓ajF6Wt!{ okaL * 먐 '`]zZؚYE@`Ē[MuBpMmSD]cؘ -tX(Ncg+u6'hr|$=XAJ+Gc%.z4IUtyS2(}z$>#r%p%:-u@Uh .[f(L37KTJM^s% S=y,Ԏ.O =U;&o1 z<# r6vkkdecf}r' _-'IXPI=bŁƤkfQ?Co~-n㢻|A /)dYN%`0M7i˽MLVJTܕNBSb̒evwG"ХXuTgT/"2; }/~Eait:_?"Y  L`Q5HugBM &!Фq95W[}sfDh;Bs HSUJlJtr !(AFD$F0B3+[%XsTe~mUP69idv0"֧QfH]]B\hŷm*Fr6J[Sʴ@Aw)TUf "{HۧcjMw@Ȱ9oXaI2|؛8)N}g/?V}>M^Y<|gx7Su5 x?NRW5u{yXtʈ}DC`Kc%Ik.D,6H`W8w)i+s跢B//y,U`5cC s_ iO"=HG.E܇\4|ኟꌸ'eauHlj9Q-#/VBdo :"C$٘]Lfک`rG'3c'$pWJ)ը _J4ic$@cJ9Sw^ &SaX`H< s#o.@eCCrZss,(pO.Bb*rdZ q|go)3-aA#Ĥv/OI>~Tw P9PG- B-3&IPzriMdp\4~s)I'lhc!z`\n+:Gm$K(?rwנrVM"+E3l]{6,˙Uʍ?5D! <~ GRQrpe^M khߔf!JXͽ.Z\;+PyCΕJa"!9[#Eؓ6Ar{TsqU0h u8!f$bVlĜ/hEzTZG ,lZ֢q 6Bgugf{,$LI•K~}!m:!_4k=Y᫃^ĺ*A:_xZcEcqlhVki }z%tY8 v,g^)<3$TTۤ O.9/w<5!%>QnM@؈`o OjHZ}7hx&Haż~ m鵇˂*} TU{9.rr`:2E.`lT/ٴ6Bِc=*JX0΋a"r!Pm?)2"A=n)QiݥX׏_eHld1E[(%ݲ~G"%/w\+قjIy.ku))_$1'ӡ2sAM"1}sgxڴG8S?s3Wi~]>lwbo}^5J+NwQ e;8rB@fc B3Yam CaO~[f֜CE}61_=@%2٭l(B%ۮM=Y6\IyDrV}OlZ;lT wOoxj̍Aw x}=ĠMcnxD~R HIy=H| j`nfԠλM+tCp4N+61=ϚBŻ_ē9\翐R<`^zmOa]h~ ?9r("I&B~X4bXz~X |O4~-Pc B-(,Y~$Maj Hv.ڝo |rIZA$[e@&왵(Ոt]n^tx+2_L< wd o'BfK3-E^1W)z#7[6>q[>v4)m ,<3r"aKY_^2@&EUfa}mvNV]!V.[$^g ԶLT=nL_y+7q?.+Lw/ɳ.lk M0<ݟ]@S$d6Vd(]Fڡ سZ+B8Y[| eNhT% N{Jrsd<`i#)Nqag!*Xv9I(2Ӫe}Szڥ$ Px%tH Nz͕;Oio>AJE1> *gr<3I4)2h%WA"Ŭ炱Fw## ˆb_4"LL@vDì|%H/ą1pՎ\}f0tz>-EA\1ĭ,B45DXlv X!P ]sNw.BAXLHsnezͶBU_6F_aKwD k\UFgl]9܃ )=[ M5IN D ]%rzTԕNy}H5-}.{)H_jd&$ +c_."Vun?B5#nY N / 䔡k 0r\:6yw9;iZfɗ <)q"M-H_ pEwL3 DGHԭPS6GvE/?R'ڧצӲ~Zy椷b=8o1ǁLyrU2# m҆!s_ ǘ&E,/ʢzgSSrEƶ%az%)u.fIĹ&[rʠ*lI]LR:9I/?縲 I4xKx}>ylmOyhsZ%L4GDlq_5{ z3ezlʊccnu;>яOk* AőYGHnFHa̙]`>Rm,S%1]hdMlӕu+8 5X[s!ܻ$ȮRйP'ox.9gbYi@ W#*>dh4M&o =ԠM'$=7?wcJb<#Է=d (ixr4bb4Fٻ3݌n")pvL&?d؊bj٤ t<1*;l6ȉ4f2ϸs %{ZF[ȧHMm@036hQlםH+j!rTG.l]flF! #TE Y[MyLw8EX Nbe89 h] c;}]h/s[V]tb.0\^9_(PmuD<٭t^ٰl0Cٿ9>J$·ʱn em]zHm&fV؊sK3`&ËfT#]e.w7OYC"fcܷFzYgj!- sK3) *.>@.Øˈ%Y {B6mUVb ~yzi8ѯnɀ碀42D%pA~,~Q&PJ˷|'>&Mcwjם}mUGJNItRp*vqioȨu11 }*2$HCs݉#{R+(3:sv}WN#{+;,w3Eۻ)Lވ9_e2+FjR&P4^7ƲyG 8O(|RǺF:+!.@vgк%}Sf@ךƠ [w\_'rS?}ײ"\@=n.rOׂzL "u^·q2!ƃCwKAfΛOJdLs],܌/@%P⃤#kp=p< hggK>/A6Շk!RG v 3e儍=̍XJ%$,9eM;TM @Cl$ l("{Z٭ ͌JΈ؀>u}=;pOʂ%_1氁=͗6涫Dt B7u3%z1~ ua=iA4eQ9eb+?4{=nHQ'~!S\63Mr-i:jCt1ᄼfR.j:.+fp^_|\Ǝ%͏Z)_kY2x KwpGM1T1!X |i2`)w «'sОl椥}}Ͽacb Cj!~`S1Rǭ._~۲ qf*U;DET8WWWq'0FI1e//qx2/Rpm۵,Yͬ1Ue\bាVXeU+*{lYaOa5JT2Z=s=SY,V L7ce&d itSw}uwn9PR:v}{L,{p w<۷Opz >JQK렚b7I_zk:܈ALAv]xl>iў7~*0O"w=8o=?~o7@j`)']p YVں}~,A~]uR9LO ?<[ G:2}m&>8?<]5E \HFU~+;ZؓKgR85U@JZ%K_\}/ ?AP[}uAZ =^Cpڕ6UZ<q`r(~4!EdZ!}JP^EîU2Zd͑<bJV;=r|V U3CH?r>;O|%VGaS[I<#{u `n''0⋞;as4j)ZkO.a?:Ui-9<48OQz* >!r 2 pUq0=+D.;s 2C-xs`7<#*r?#69\ nMSHr2Z|*S*^N'')Hq3 !(Y6ٛ |> qI]t{`et2{yNti$њ$[v ٌ/33VEۙ(G)b Aa!O£f(sTjɀŮ+JEzr艤0d&=褷er@45&#<2N[€"a].6#(j"mEs~6D~'V1_bzD`TZ8mzd5j^[h@h$^=/+tDۭeW7yp׋]p1Zh8H8\"ȆrݨK.ͱt:􉏫"Ec qG8?`[ ym},2:-UVиk[߄>]mAXh? "Ic"t#iH< % 7LdRWBzwHRR]/ r_?//޷Yz)}rd e#cSPlIU3j:dt:bJIsturc$bKZ'ؒͥ3XHvul}D/t1b(~u#>4 R ֠b[ԚZ1|5XE2kii0qk3Suw5[J1ㆽ%hP[ఇ} t59R̼F՘kN@yZѺ?(Fp\-Cr}Abkخ 5O#~a_֫xjlK};|)\ki*7n#*]0Ϡ8B^ mRyUTE*)]VR弴c _TSUZ60f5$天ef',ÅvU12zSJ/;m:WIiNdUR;kPC7z41^?M| %o(dz'O:6Sz,W7e+(F(3{W'cb1VßrI`v++x׃;5yjR}!꯿V  gFP\agzfWw3-ުbߗ2e92 Xչ* 3Xkcypik4Kzw:+'Ԟ!I\^C8"VTEŰ1H[Kl˰.%Ѓ3J\/!A".ŕ5M`H?K wU xJ yOyTUX@6!ɃGM3J,brL6NrdSk3QlF1Ti %g2h[fKkJZ8鵗U%#(<0NݠnG'-w'VIWT<Lp_z=H Jy&! ʥ>8aZ߁2 0:bIDATU*!旹Gȍ _ qq0\!:җLU S +(˰L9ŏUS. f>xY6yߢANå7r1妷d~/# PΡc@*nAGoxE/qR" ϚC+GG|Rdk8i~ҵq)l,v65TOMPz ~_ 8mWQ$*""K0E8L~)ƧH~-n:(D+6@'2_3E9:/Fvj9r//˙>Y)eMx~~2g(UzPV^ t)"_˜YW!+bg*Zዊ̑R[{}L" .y!|3fje1.CQ<՚M7XLF4W9}zj;'c[Ed5$2E8wΖBG2'WF}xnzlZ 2Lb[IU 7CoվWDj=A=ZYCT9Uqpi?`כ@]O)_U17dOyĠvJBpcմSxS9›H\ɬM=ڟzt$aƢFio<8LհՃMl-+`TP6V> r4pɳ4i85rx $4<&9)]ev^e8BF8ޡ ࿡4ߢ=4BjHL^?oDP8šDV>k6ӤM]kфmR#ȉ -_|e5<eCUsKÓXU׊$[x*,n RLM\s^ 'GaQybj}I4_AfvI+& R\ rT@FlnDUq(5~L]랯E߮28ialN,k9?u{ 0ʁŷ97s<`2?93'_#=םwJ"Q_"9f # A*!Xh[!ӧJJA>,S_LUQki"￱"C& \7l{ȓCRÍ!5qQm.Z-aYpJ3 ,Vű_ xy@5 .ⱜ%W'&nG}" iH;/wq?Vb5oS~o#aLMhqk\8Tڤ1CϲdY[z!ƋD|.*5f~{t_=~z=P7*Pdۙ>iOѣ_ݒۥb$l}/WO=auZ)] l]!adR6)y9$Wfnl%8zj*nN(>2TҷWֶ \$oafPG/SA^ KX5CLHLHrqopɶ/n#-T-L"^,JCX_ȆPDrXlQP#FlL,.A%}rRhԇpp 20o ~y@#$SR3pdN!ٰ4bv؀(z!b+Ew~  x^Փ$#$"2]*tU&|nt22C54lУz+ 劈fZoc2eZhUfCf59Y%<z)L(*cGqLFI&c8|`9݉YviJU%MRu]c_Z|q^?f+"oqp]Od.ꤓ|+s)xvgr{r'rF:8'OCe[uBvdcKΆvX;L}6鶪O4w#t':*),m 2gzb6"aH1ƒdYI۱ߴwc {-HsBanuK! Rw}#J6)9uٜrAr)v#r~ z:72uXVyGvÇ&,g#ThC~<:x ?T\)hb ߷H[-@WM+iqHIU A^D{*H*M.BNG"N;r XfVY*Ee{_fy+<3@fSB 7ymNZO(w )±$`BiUY1jq?rPD2l2bW{Df跰gSՏ–mYL+s[Yr [$Ro4k>!KyFQ#a4Ȳu0,}jvdLp̄m489:# ԧ·U mlƏS<3ǽP#&ᓆCkP\%# =wze^CZ.p]S8L3=!) Y. ZfqgƠ9# Q?sG]KUR#9$I3$ᒾ#r 5\xaXu?rUʎ>0wk*A\0KE{sp  CD9[gH)vN%U5r)CjL°7*1H(-wrx@%"ڰ*Υ΄K{rwwW5|9lxߋCZT˞2dZ;e9~81}`^mIT(<!Ē<6toS%G@=h3G :EteD`|uUM5a7/| ,kuVVuLШpa|sj$$6YlwVIY:@It}@)Y,맖&EsXJa0И#E5./ mvEr +/_ b ;lYkl%1$*HQ=i|5e-H뱲ͺhc̏jD(y>AqA=רrvg>w&<2J'pY798#~HPi!gT Mו|Ku/3{f́M|ֽ"YLVڗ"H, _)TI4>ҏ,_O\iKk،G.Y"""YpiaI6+jk3L5N\X}AK5`$cs{ĺ +GiUʙY[+I𯔤G ve|3D9i(JyYn'3z'D lx5-pvG~O7"8Ǘ1b9;k2ƜdЌ>@UtO4FTt%OZm@O̕j+aFZms6 e_%*ʄcOcF ;>_pՉ0:?*`gL8a\ǂHߍ4C`V >d2HSC yjb+7 h0;GșiGdF9?߾<\$|̡X6.61C&fc<'ԴA`>yUN{ isމǙ\ˉ`kؤY*2+ʖdc>X&g1|s(,Hs iY6_FKNՖ]䰇c;C=;"tFB m tu9~WSje_.92̠P`-ZHfUY+<$(#-9Rdžѧ3Gߴa|߼ Jޑ7 '@=`%s_FNnU XR iBl5z6]h K{Tx:É9+4M0CVwd04M>OκZ`_!@YBd}޾4[/[/>lQ1)KEםe1HQIqW gm7ȎrgNMA[\Q͠`# `O#ճYemwuEN 3oҳ'6}чC P igUUHfZ kbT9R\Z#IU ͋|yMb.x9au/̌!s|'8@V&T@f-OM-HWɥTgޠ dnr%MR$^ d;s DgAt'G~y)9?E'LgQ,zi}rF Y @6&h ?3Vָ4\@/[wQɬ鴄؀jN|93| nO߸%HmXnZ羘6F ɝ䫇E0d2[SK ( k9mEh$Wfz 6-4JXV=(LߺMAH_[@"=^||,;u|%͐L'.jUxEPmzefl:+&*Ya~Tz`ܿjCrGHYC>kyC1qYQvT,g'b3g HȌVhJ0A ن6j "|4 ȕTU\tU`S\EZha12?>BS)1^ S+]qh0QH+\ZQ#!l< c,n?PSQڕ^sxf{Nհq4li:%6줻XN9H}i4Xd#g[gcN\C&bX0e f |OCկ%@06lH:j´ ݓ7l4ٔrQކtʿ 6M\Dzv"WXNQ/~ի`3xd|A16}mhōf=xz57mu`bH$O Gە^#vAq7 g@iTqH2cx;O8_D,RDHf DzHv_<--%>I SnGsHU5]==w RW92L`:+G!y6>ϙ6FZ&|wH:Q;:#U=CX-r ˙;y_ˤ`%#a"AK^e ~+5,:M|K PKZf=:)hx89SsYNG0HwB1@N p%ڐ'cL3|p5򈼫ZhcPrw3@&3K;2ЄcKfUDTRrcW1v昢2u3Dxpf9:X(Fh"v$:6 ĀL/҇RV'rٖ=OvoP|'ocNܢVZkB!YPPn%T*'b8@i+JgD](rl 'CuQG7zzHs"h_jT;cFO V4-~SbpnIa?hC7م2Y#EE}_x\uLG5!)31&!Zpu~Ì,Hܟt5#\—qlcq eg 0^949 )o%7UY*]4ś(k O|AI1sA>/.7F6-ямTz2b:+bjUyW]ծVꐭmC1_P&ּ`R@dqh2<</ޣO =)쌩: 7LJ@IrXSNm=~}43t@bc,K^ XtѰEWHXb⬏;vjhxA4'hDN8盧ef\L`CRT`2y,pmWo;l$Rya`N,'Qur+TD7䞵lJ5ߢV$=F4茕:dQZ #ִ4 cVT&OĤP"beە G mHz%ev e ߝa0! ~\őA B;!0I`-b8u4C7lt1R5|cΩ`V6sVBTaK):;: t`0UYQW6ҿf H6FgT S>s1YET+sOp|P&\E|Qa7CqֵxF?QV7Zok(C`XI2uğm+l|wH-o'. NZ,A|umYQmOH=0%OݬMTz{*V?zl2| i~,4?@f nݴtg@WAFEatP~)Cw=)k" ߚ*[.[vYf k%0Pb'DHEYk~uD'a1xCU&`^v@6FVNbEtXqXǖq}'F {:ihR(" r 'f#” Ċ W#*13DL!=_\k :!lHGite1qGST ~kL=B~|*ċI`K =ư14T甈s>k$dld> >'d6 h[w"),ܥkgirz ș ߀lH)`Ժ[>{ga `g/B] %I'_=JB"Ĭ偬FB#J;T]WlJVf+PzBJ|5ƛ1:i-9Rђ-VǓgCrV-P$҂qΏGWfثMsLݜ$RyDZk/ژ^5!Cj>ёGܣs-mx>R1"f[' `[Ѝrs_mem Kߡ2+V#QLްK-$r ^ Sp} о$#ΪgcXڌ9.0,hfn'kgwGp\qbщu> DۋEXOU5B (uca–=Ty$2$/YJcAPY2H#753`~[v.伸 _S9/~!"gBr}etQZ3u;lkkxv6{Y~o W4򃷂X n|v|NH>cvVX W""ˀyU6g:rzqG {$FxW!]Zj=_Ff%_%߷?6Mq)ջˮfϹf>Jqlڷ`v(GfoyF:I>~clJBsEϟIeλH>O+1ǯn"+$}r2Hjv %i/3pֳWMKnqL<ļp]w W`U[Tw%r!9~jy6̆\كwcL>w!)*ru;6?кI8YO6覚̩Fe:iiihMڻH^B -:\(gVG m,2mgD*J1xfٍSI|4;ЏS)8-Ů@Q f LMʙwʒcLTH?4Ȱ &Ga6EA**@#xwO{sWq ^QI}a0 H]^+?`YUPuk^lM;H7vq)RmN`HlƬ'U!Wl;%jYc$ACs-,Ut#ւ@r]:1RI#(Ik- KeRabL6}c/kne?E(Dwp3pg쩐%waR!' Tn#$ ~3nL~t'AgG܁ 7C $b!12sLc*gh#C¹IoeTx4JS1݄(~9Y{z3Z0~ЫvyAD*Ӑ}aO ;Lz3}PWXi*t*aCWEr>>.1I{|__xlӛ]\^-ݥ{&'Ooe.G'AZs``z|PTi=?_/%!'kf_;3(IUv@W!YStX=FQqUb9}0S^Vve(kSr0 Q[QD|YjfOss[9[YvBd[ĞVG+߆ Cؒ751E^A)G8~5Ϛ~h.k+ټidLc|Mka j}ۉ|3J-GȒ,yAr@@:c$|쨌]z;bNpM)@y58áu'|?=/{t>hAiF,`Fp~٘U\p&} daΧHM' uve "t&ڛL"V`:Ts_A)3q|y縕yW?ihky;'yҜy,2Йu/Lȋ0GUu-ؐ3dJ#Pp[d-49$Մ9L3ˣlQ0+vM60s70.яsioEJ pSȰfc=K*vR9os;Cq90v|ޒ)@Vnn8nǁ|>QFzzUSgU Ddm/aYÙjKDI]8>]nF-?(=vs{vZ>GR*-FSyEBgoX}&S:(~lV59˖'O Cc|H^D[H47eq2^<͇ܪMC\w^QSzlPno8~%ͯa#+[aW!6[? @E4N:TQN7ot4`ouzz|vqtR~>T9 V{ İ"b1bdhKwb%_hqN-1-7"xt$^Ki8˭/rkՍ5 g ڈnFIKTqqC)nCqDR+ULkyaR+ {ka\n=5(`xR0an)ok< 㾊!n`1b8o@aw[|~ y!!c?-Nd?á d])n`ɏpS-amEAX?/Fp~u ;G¶'҃yzDAwy*|Q/?:/%6߹.sPn:A"ƨq %ˋ*M tūtr+G7JӤ`/Xǘ|/#W1/~>_1ǘx dATA9SOmN%ƷG##/kyVUm݃jwUBS~O s|l;sqe>PHAC4dYA^")U V جj[AV]lhִ=$lyHnUr(AO ^+9%8U $`* 2}}B=Xem,q'QT4LesG{!Db}0}Fc'P&tㄧ~Tc_)inE:jPͻ$ʥcGoQ|>?1GB) !ŴRMHvU#m"TF1<$zh2P%SDnU%d"5xY~ewN݄eacDp-fjCDPH$-_x͑(}r5zu ϑ7c؊<;Kư^7Vu7)D.%X F SdZ}6l˲ӑF3oavA%s]&6i8/~FVځX0!AdҪ?Ţ!wc:+*j vPJ~[?ey;Yvp_oA'I~cKz,D^n4O͚S&; _6&EEycJQq=y~|o2ucr^n anU_R"-AfJb< 7bvD!,XTk"{l$÷?E_/,-(b#w 7'S81PLǦ~Ā ;noz)$9Hk|HgiOQo }$`QSh'-nV<vؿi r?I@0Rߣ@CGs&)(r rţGF38MV ۘRTclفJRuE$FE$sڗ-P htwTʲsj Wh #J@:Fd\2@lx3O43Au0O\E _/#[_ֶccH΁քK2<最<=xi/z*T5B7pN-y㚯q?eXK+]3tYЊrlFnfS15%v߷a`M0)~U֊lnH>_1]g?bSo٠[!ȚnO բng:[u;%9)7ˮK5z,ߜnX YgSvB )=E&uUg0jf.+u*ti3aƮ;б1=={5 TWSQv( FhW}cAtdc<*X$k$>bW9&Uû2ٹE|bM7z1z-HyBO,5z}<7}m%4qۓa"~X>Hl^nq:0O8z'&-80kz%w2];Q}R 6EZD苚ljK'yi7_{Ւ5M'xVHozR)CcMѓ<\*ۜBU u><2ivgO5{%m zml PZ9qc*QGfr%2tɎ<3sWQn! p+y 0-𕷱,Ɣc4Ę _͚d>_sFXǴ- ^Kp5 r c]ל>8Ha9fFxLq y%+n_~+l`fM]ebYxD7ґ7C_+gfodUӠg))L*"+S ]`~^Ŋ(PƏa9ydoQ⊞!rD>Eoh QS@P݋gOz]:{j[徇ѿGe ;R3t0  ǘV.. 'YWtWݞVe3R֘6&664 Z7''fI c?#!rER*2t]eldyH"F"VІDݷEvExr !9=l:ctasLO)Ϯ$l 4z}}_B*@z>8 OEe 8~~D~b}!lQ0UbW-"w'_ϯ+n^/m_\Kpw=Ye): %,1 7^/Nn@ܚ>E`<`,X4A_֭v0ԩ q82ÎLtk [*dbkP~KDkr.c<L+nϒ'3s\9lTV_%oRN?O}!-AcWsd9 ǤN=BJsmXx ϗ5+eyLCza!l*F€{o'Œ6$_OO+k6.K\Z9ڙˡ"!pf㐓$g^_܃/jkQM̱p2VqvX4 ,@ Oy8t]f8N𞟛ȫX8~›]LWH]kg-WЦ<Ԯ< =ty6_9rQyx[O};P_E7; ]-y<5zJKc5{F5xd '(NIrxxNviOQ#MH9˜X ,AX25 y:J$9/oE2eLO'r0;om/ۏHkSy>\XlaKcPIg:J}079a}$ׯb@S~}s-x@#c]=RHkx'.l#!ޓ%AV68NwIZ<}6=| u:m'@7АI"EJ˓O 7]6F gr{hsSz/,>ݼ!O!UԖN>H;?ɜVԉKjG <tQklsi3 }7Vx f s'aCAsQ~,S]dŷufOvGgWZeD~sf|Mլ5UzQ#4`*MA3QuNFG VưIE HsKԺ+r'ߋ$ߺ{q_0׏y>ecW؀\5L cTȜi;q {rk@7_<]VkTW$|*5 SǮz[M7 $ߓ>vf뒠ıcD#ֽ}o2u"􎐛0^;r*eruPvrp:C!2ڡ/`сd® ^l ZJm(~rX撺߾ *hmW9.c*1³pa붑Q^&s 1y޳~={.l:3D-Nf߳?_y 9GN\:|,y|#seL9d}mE5Y/IԺNY/1eY,%^.74~d8!acp QWmwcRx]x 3t}71'աov$Li#U6laͮ#68T=(&%yW%- DZ4sU4>"k.*~w* ,VpQ#4k=WeH^G4KëP[ۥ#B$Q!ye 8)TY2%#Kz]f9Z#9 ^}{Wdf snZuԴ}Z^U1X-~ۆᑚ+IYjɇ +샿ohvsW16|ZfmП\Zޔ:U=Y;y0e_@NN)ItaD~iS0.+T0"]22j=1-7B)p#FxUoy r W#"|a*dH.(MfuK׊5` si(%ðꮡ0C@`œZ+^ DG9׸ȫ.!B~%Az{Ry C½n/6$egh5r'%(<Iʈõ<ZM؜fI]kpP;BU fw{)E)͢صߤxQՑڇtg\{ZR%/h53AGEPC9QNe /@9+ћգ  pbUDȽ~ۀMhfuƒ6Pja%9o*ko9 zeWK)@3t$V%?=l=ga?sY}gM+sG?7\ffj'q'@h'.ONͅlHO^Ĥ9ShÔ׾|^ϊ<6&l0WGǟ|bGtEY%]f1,g;<ơX* ulFl{JT 7 ;|wJ92lڿSȈCO;ڳ|kdCa9uhҾ'7jm$z*3P*hqCgKoRTЧHG핟G'= [c*| Y{x|Dv|S;#Ɖ1Jp9lRcO(P&bEzxpL[^@eW M떗6=GPfx/ڙ7EXf-‡X)2Fxhmʇѹ'SSN)Eo*A%>Pdr}TdLӈk9(0ʡzr1CC b0 'k9ĸגǜƽ{Z>gk 94efT22ceO{g%OfǽvO!4Cz0XHa]5_~^>R5ScO}Pd{5 +ͤH|<6_7KWX6@j}ט&Ɓ'zv؋=ltq#_/0y>hW;>givao~"FF={D[vS. ib47Ȑ«dDڄ/r!Te_o3g=ES6P,Hqy]~Ǐ8ZǕ=Yucx*%R(nj @Jn cw?nglx;v^w' fan~z3e ;a?@xM b4cLò@a-"='͋˕eӍ&Xs&lN7?%!DatҮZSJZ!3WE/v >|c1w]IudWm]HXby➿h EKxx/h_>Jt,{zȫrP{e]>/Uߣ>6/n׶ޔc)9 н| [ֶeP=ӍCX;W.YimNh"=5>%0y;Ⱥ5nЊek|Uw8WQUi>؝vƘ]\___m]Xo^qHSP þߨT+E#"n_a,}8IO1װ1+2kQ(\{</l)OU* i.lxzHoѦAg:sV #BX'~g^=^wͱz|^^>n gmz `YxMB$jCGKnk$2t}D\a&_7m6W&l^UHP֔G"qݥun7~!Z"i̳.tD\lrDL`hϗṋ?/ ?#{>eeQ8hO*b/Sf޶9Ǥ'z$1]!lE@b,&^ 4 Rpե`G` 7Zژd$b%V&6#fӐlAo譭SBb A X) Zf|#]nr! vlĹaHUՠ}(5Eݽ0sD@/Cv ڋ$`m[M$Jʵ0=[chh#olO?rg ꫽ҷ'|Fg},,%2P>Aˤ4"TNI\~w O&ſ`;rf7SԐU|3?e8c/:hY}y}8>UH^yjA;r?w߶iɔE2X@JӌǚϫZ;p#C+6wm Rap5"lҰb0^=. ~zQqrq0@ydrԺo'eeӮ=4Ef1apflxxA~1=VI">D{݁9t9ee%`xƲ1g`Iq( Nw@v嚽}{6PtCS=bѮ/:=`Z:O~jrCٶc~ Hɵy7?7 zfpVU-l<8gKHJA9yH@$acw>M-,6nTKܒ#4Y.P@%p$p67."NXn%r&Lkifg{}M)@+b1/_>$jJR^C 5|fnk#/oBPtz3I@k׶dF OkN &XzO?pvG˗; ~p`( Ğ kzoa~@(dK( =˩&~;Dipٱ8=Uo,">+{#se-I#bf =vVϑZzWԒttWp茝5ȩΌN@ OX¢I|%S ԯHjW:'1KHϔ$CoAn)؇w_*|k{YK:0YMO)a]k(YosPI!DިZYͥTFO>jcIv,Rf"-K GXXjg/3y}3-)݃/[r"}R'Oq 4E8uA٫b d$| ζ3AV >UXI#tKߐgȕ ql/N(` ojc"i-Hi<ފ'x"z(O#Ir;Tk8=]psdrQugU H;AR_κcL<ыj-Rh(S臕+'Jd&f:b"0 ~C5;uh ]f9Ix s)1[\vl"@k!k\X_ ;WԍP\}Ρ̈({^f`Ab}{z.a6rDBa7bbc~k2L.Y.|ڀ{H3 g!NMJxN nWs ؽRCmq휡ۍ@R?/qߒ&?"< >=ޣ? 3x"ƴS"`! Rȳ>yQm髚b;0Fg@2KshHa&K65?4fDXOr!IN!@ "H㕹9 ,h?EzOTeZ;{ȟH[O~fjx*SυrB|BR8EIm=9g 6R򠃓6](` Ċf6ue#!j>ƀ| @] P{A9Ƥ;G>(6E 62&Ԧ3mL%^>fcИ-46OF~:#lx{iH'NP֙oA1JF5(G;Hi*l^1l~iO&eؐde3n(۸-"?/^q9o`t﵈z}AxkЮ/!,#Vbw i"fcZpu}~}p.3i$GGhKtB39wEAy؍Oe>(sr&K䶑DZլ?΃~khZ9O.yfX j#cԞ4UuP-=XȖ`s][vZ~ރ *Щvl_K@B9?G YS2םCX"rϊ$8kʿK=?9h_#iqKw84/k6)/VADeR=*OdgX2iUCy榈=]s9zNH)Τǚ|r7F!4VtY=12GaoIj2)#WΔoVD B؜1驮gSˍ& Px, cP-},_SRHb/$%s6^9cf4a 46D 3=7|&3U}=۸ AVyBߟϧ-9%҅1[9NгbQWhUߑV?b)#Ҥf&ظY.9ꚎO`sR9|ҩOj_)9!8 {Gֺ.VY6Cֆqu) }Đ@>Lhbӂ:QMlt[u/tS#3[=]%R Us+{XMzK/rmfs(ִ?Z7!}4:%JdC9gh%~;ɺ_]:fV oXȬ|'_ 9ڌ3=`抷4Asɜ(.!H㕡YOM 3М6ok@[+{m6|yl#%i)ax]3|]w,/I{! 330l|%%%Q~4|sN~_u%!2%E2`cQ{}hOپ0U9( pa4NSh:ŬZ1$3+Lyg7f7'{[7:_TZ:7'_^WOJ n)9s錅m9Hm;*>t"?>w3N :w$l7GxismgTt,#!6._Qas=h3knGEӺ!p( O)#te$_sR.A) Hq繟Ql pg:thlv'5B NX_["m0[{=7Mu'~`c)4n7S~eq3@oC2-y4RhT%G'Jg)nedTE:6_ /װ)j 6lv"`98=@W6+&Y716uѾ+GjiR] i0[ /҄ob} Ϟ4UC'P,?٘8>CvI]WSC'5l4U8\/~|\>; ط*,zy1wSŶ>Ԫ eGu!PAL7Rv"#zRTw;bֈى -SU*Y'=ڰlVOOձ=dzήt$TI$X8rT/xܖ0lnu~,ӒЧȊ$#$eeb|j}vG颕Iz!4qMzRڣr.q 3T嬆\n7u)nEF[`nE RL藍-2[C(Df[vfC" n҈4l̹ւ8F}Sp#qb>岏#z]Il_ٽׯk\x^ygHkh\cr_9P Faұ~LCsoQJ(hXKx~ ]9^n) NP92 1nܹGGx c?>mNPjʰ{~.'UCGF4 i9 i RB\'g)Sw?N͈>Q'Ss[tʏ.Y~~A਎fX#UYvNs(V$9yXXmLPS:o3svE4l\aT$gH'ß_!gc߁U}BTL`nX'DD )@ikd(ȓlLv3vtx>aǯN|%E"Bw\o)#9h~('!/3S{K< ])n 's?CLd<80K\>$P?TI}y8}Um1s)J.geNu,Ɯ)㢙!!(l_Zx4@ b\Y)}9Eڼa*_AZz=Ǫg6?0}%fid"D=·<:?j_ُgL:2яOe4eg@iEߨ9ƬO“{iUm-[ue8-f6!M-I` 00[< *0F9)u4 0__`c9E^njaB茚Mrw@O~7\ t n@oZ`+D;oEˑEW+lѲ)M`cN3XtBBNcj6b},Dҏq3&:DJ["NlRɽmf৶G??P 2D?jGdN/?I_s0ImB?nr&swL %E#LB8+)AcKR G D2rJH$AcE0bEl<)+fBa`c~1=l (X*{l=m ;|T+}^֚DOIDAT*mvi~ZvQEvz_ G6[i1%b:+tKigbPqCnpj*vl$Wl%nrp?FfL 7~iUfard)"GLi1syy.yEr996-nHV3I_F zo~D#6n3-}FvG"J+"ݛQ>ڦL;Zx`NoqcVO:ݹd}0 U\`=%Y? -+Ӄ/Egf!:rg'9I]AWDʡueDx+)uB+S}*War eØѢ080C16&md4@on)!DZ?gV NN{-fDV|.^~_} juzqJ6>WRB_kTs&\^ן6Ζho?Cqu_?ct V%zKh1%@b0iisN=EJM wG"@bux%OwE8 &RW-݈h 6$OֱL9ɧ+4͟tf_0dύL#GˡHcnTE][П|wO9LT(-i#sP3U<zWKk0ר#&6spk12cHL rR߳Vq= LΛ٭GgDz^J9ny8Ϭ-m 0jD'ÞԨ>h-"n3,` -5sI&ƯзKa,.DN-?y]ø;p(wО!Fvzyޢ2M~MDBLE$PLukKh^h^5e$݃]:oy}i`^s"dc=#0s5^NǨ=A5lp\6y6&(4yMQ@DpH^!!$s}RA%>b38g["G_{"ChHv~CR8ھx5rP H+sCu?xc{whܸ[ڊ/vWKIl2H `1m̡p3֝>X=nc woԓMis!w:Zd&>9ǜ9Yf#gҍ H68t+'42y>F>7{g[m[F~hRnE' Y #a}X<^7l9 0" .[s#~ANZ~iϹ|^YCBWpi73ٙ=`#򧵿|3vOҘZ0֟'cRT9s|8ɠFN\jc @S.QW x-B_V/Z$/CB_f ]muonGN w_j^V؝5 ?7Cv5gc 8DG(Cцڽ+$H\p.2/NyI-iǃ9$?.oբ8diS>̦U05ls rweXoVٽ,UYzlSэ”@f)f2@+km1PۨNz'Ϡ%/t;rk w`aRyHRcX~Vl|KmF;F9oCH느@N&V/p?J-iXtu0N8KmSMIT(Bqyz}]Z9b560_q&wX 2gKnT#w+sS=usuhN6nh}{OG(z+yDS D^ت5(ܘ]S *3++ZyEr+cGSK퉰#׈PtUP4rD--)z>ٸU<.Ėzm}p VzMlKvhޚvA-'2sge<%׍៬r/vzq/<˼ TQ8Yk$l yU ےVQ!ƞEPX{bCx Gx\VWiEe ZK,1@y6z)IgTRkk55,BȮлlԋJmib-jܪuP}-PV"֟dqbݎ<5it;˥q?ϣRw xlpG ɌiSAVGJG*9^o<`w} (T@cxEAfe4#D5M`#|#ʹki]zZ ;f@-iAd6nwz\_c)b5Ƚt~y wߐ>B 2gڀ J15nb4#R1:12Qs<̐ui2NI#sL/z)JS)s9-?vĞ R_qbːQ^`[}<@3&oԧRKJsΦJ62PCuքw~!h"%{l8r0uIZc4+`!m+2L6lO59_}̯/EpkZ5Ý!<'=9bNfkIv3v&lP' zdT bY0h|Z[;_[zs6> wֳ-ݯzd#޺jt'i-HL*N+;?/n9;ѻso4X*QӖژjY0(6Xeeq[rU xƅ -0BX ԭMD#_ؑq -I#YT#sM ݜ jHVzS\yCimBtd/vD6wvudw]b*V;n\c #S~@ht&%O(i%|jЯDtPS$SDoCaCPiF__*em!g|´O@ 2lnz }A`9ŵN쟲fӚqjsʪ1K’"na%DV,aeWuHp)u9O;bISzBk Å{; 35#"-L҉dk2#kNZqzlz]L;|[ 2F*w|$;^i5L#-&acLZaf:9jstKr 8!>k*neг~gAqsx3!M G5 ~PiB6Daի;U~w@+OxȹeNkqv΀ΥMP_w/#51(S]e%M PTCUU+b!.'#L~zΘύt,&DøJzJСPwsJjYM#d6)*o˖D71Ȥzay/hIЧ0*ӿzGe>b>2Pu2hGy}פ&1GdEpYuWUT^٢ckEfVylu1bx47s8<FF&]h؎2[>mr?`J0٪]y6 RRuw!W+ x,cWHi$<]__30d6<_D7` AKGr^T6#}YNG0{y! ؛JQv3[bn=Óer1a4;,kM""9SۓNeFF^-?+ 1,'`Vחa̴lt(NhS*|n wwɹC'hxGԯ47l9vzl*f;FzҭZrd{-RvQ}zZB-/ { X_H|`k;>o=3lsVJ2$}<M2X5|9p+fz+b/1"s?MQ=]9d1帑AmYrq60l>7)Q?bDr|,l_:N;c8άI>py~|]{z~?-qH=sq}MOfP] 3j mf[z? KNPt(emؼ^n֥#i,Ӽlvss(jCűnh>yv~mFFuǹižoR|n*vFdkHhƉ~F f{FXY:h@t'PdǢ^ے}mrW=ؑ3F/p-@o)i Y֠_%!#Gʔ@ >w#^ϊKVTm.ҌYjHڒTowx??ۧZxGeZc܋I^Z "nlg^DDde#D'ڑ@a'm^Mh6VCY5F"f6CaWȻB.rp.TjQj]nh5^~(0nﯗƯ$Qf =חpvȏ=zYN- *muzKlZky(Q!Jef ws^$,B6rT].ߒ\eוc^j7=EjywF3Yxt}rY~zbŏ\ͩ=?3cϔ8C.Dp}+rɟ\f7JT҄ H'9'TFDDPrh Q[׀>#Bp6n_/cX++f #<e9<|3$?FNFOӲ'l~##RFٓ6>TLX9k0cغ=ܱt1&bbg߱yu}Y&|۬ɺ:0?`-y.t 9A s}7n3# ;!6noBٴDnWnֺ^z9o6Cnd:w08 ^}x* e~< BAp2Z."s xGϷyvRIDKOC~66P/)JGRx%\H `4k"-GV êBO 2/=gRL6kU7]Ha>ШS PQҝDR$:P]7#C𙪫e{YbGK+VOyLxER{ .WO"sVV#6H2*Tˁ1Z0h&swjk{JXB`"TZsj3whk3F}. # b)ۗ;>洲xZ½!B$!zx*&BmT8)4c:1#ZXv4"k6/ 2Ø05] fjbvmWcu 6g G+:v>2X~ C.AA=RƃɀQyV>n>֏Ӵ*+nz@3N'@wrj=Vֈ.v-i<78>?5pC7 ɡ;-JY2K\0 mN24?(H:M|_={.zGfkWQYw%6li %-Ͷhz N>wbɜ=j]6Ibl:äo dQ}xNGM9ϪC [ ԜU?/>wbeہB KGLD-=nzX@»c6<~ً;Rpr G(@BHLZof49 1<|-uyAx+H~.雴7V~hkJon%{U9FkM^kQs # cvDNС$xyh`m4=l )`HR/H5{,71&-}`a} sqɌs%+G~7}*=܇{ix`كY}_LޣL?qߔtqZɀhTfSӁMy@xKT'.Cz/l6f CK\~톿s*IBv= |꿬bm Q;+DŴ L񨫞D%NF%G8'ǰ+V^P󤲳p- ~؝!`9ZY RhDRW_a0b~e*q ~/s.#mGĊv Eܲ ?#"fb`cA.=b܊b۪P{>"u٘f_03Ar-B4"B uq 6A_2ʝj+SeO {c^8#ǁYHu<;`TSMD:<܄y{hHw?[GX[Ie4K7uT[yrbGs!s>v=}ڈpiS=("ؒMpf 5b0+W2df x;o߀)o+0pDx潈{i4(|13_s@{*%_͵d&JD PB7 Tj#-Yv>TDž5*g OhZ{3<9 o#uu7 QBOWǾIx a&J~}7t:N2ľJEdeY-`O5n fQK o2bEҢwа!lS }h滱?m/I /OQi_?Lpfm7 WqG)nNLJKd9.v!Dپ1Ah- RYx*LPUaVh\d*<-Dly ;pWUvLLCtڝa/ۣv%scKn6#1x93,aԸtX *gVNړCNg؎d/'jwث!)~jZ^e6D -'g*;֚mP/F˹\JXp˄~)#I褹n _Er. kKX5i *5.i/I{,w/w^ߚH{<ܲP&[!&jB.11,dSA;6#6[2}ٟ0LhFXVoe r+rk| 26CGj]{ RO=|x'v!7A abC _jE[:חIwk>ϒo׭khv$u˰F Pu ft%߇s@s)‘&TpC;dobL{ eFo.HXwxeSJOZ5Ej7(_/7~b5l1A>eFA_>prxx5Ϧwr'k g/g +*5C<a>vܓQaϿpgCT]/ ,s ?ۺh7ߵH4Q|BGj_?')nxq Irx;M{Phi ե'oU2c:f[ L`(4#ۅ" Ԓ(ot'~;P1gM4-WkM41{R#( [GqP5/89!D'x6Ε#;}Y~k㘠V+n%Lռ(#~C[C9gی 1s =6v0hRW_Fw&=TWJfMI4d)pWd55biƘU#ׇoB|/ _V•' 4.[ qwW iZ (fMoU!"}o4ߠRe>&`Kd_׸q al\c ~^fpk6#qo6p/Mpذj͔Hn2<}8̍sy5v\}Usdapnh|뇺"5ZYc< wШ<ɸ'ȅkёf741!DhG-K&.rl)OhP 9m/hZk׻5D.@BxpiMD8*j/'+G[UKLN|$w6#Vr*̲U? ـlB۰To#>I@$_}t-JRbYP4]vƏsl.`Gl[S]HgGOmǨZ`ϼdf%AMW#;aㆾ\>ѷeVf$pҠ< gfsc8O/]7k+[yLAˢm(߼~F:+PhjhiTMhk(;!zXU7m@^,6?O׏Ïim΢X7ܩTt;lf Zo}HKi`gCT(\/b bcVӏjjB+ffݿ%#0Rf-?,HZ R"̭*p>•>WЌP!Xw]ݷl_1J3?hH`C|d\>:EF,&Ҹyt-@7N!&dŒ<3Ry9R*{ i0I+A) 9&F_ُH3sd@ -MXw,屒4}{5k]6yטr@$;魻ΐpy< ]~8s] |u;}]k`L,{r%(kܷiu+O1Vޭ ZPy0<|jX۰N8վnD)ARzWʚtPf ֦WAA`8I@rt3es1}=֭@+B91&m=__~cl`}yq)Sݼ3+Beb=W5&bE,@:ncN5Ac8m~F#8[ojy[u0#*KN6Gȿ|pt^Qǯ}Ÿ{fہ E#$o<Ue]I%{VҦA?VP>ϓdy!t7أ#y@O:* 'KtBVO\t{FDXi>JeB|$ƾ4^$НtjqX( 9=ՅDmf5k&Aҭ}(Udq1&A \׍TU^_yu9m 7aR_ey}rR[gy͒4?6J@Df,ׇ e#Z8 Ej/^r'nJ͢'-$1s/gFmZ'y84;G9>-iI/`f5;Z4,G)Mbj;|n 6V n=wO|x{El^ ,OίUyBPrI"0r"#9/">#G9"' ra$m Oyہgtp ֻK+3?uP=Hk%w:ef~ 1F'B1d &C?;pliID̮1qbC˸69h{J0(!F/CKр~32Ek20Yy.rǓ/aUYV d) yEWsI{NZ ]ƑS+1G)Q"=[uN5썫 ,gw(>t^Q~"s/͐y5w?Pϒ&>Wp 3t0 1 r_g)ޅ**_ZԪQy?۸ >q 9BO~_O? ~eeʰO{LM_󐓲 |ncJ&Fu w "wW}(86> Z~~ď+.?F~|PDB%bٷʴIogc$객< r͈:82JOՄfL5aoFH]noZ5e 䂱-v%s'`dj*"hkXW߬T0_2S}^*Yξk ϣB}vNG{ ;*9J# [ݭfzNsd( j(օ >a",},-Bdx37m6P+U  ڥhV,="8sdhyV EPbwʪIzU;>P?E4|ē>߸˽(6TF3k< euU:"ܡN~1(`FsmϧW< *)(R~ϡs;">~4=3&+3o_T4"}]iKuJB.\rTYNZ]YVQAvU6Gy DS0_ϴ2f7C~NYx?j8~Ofe=3!w !I3x͔aq ,k}A C񷴂]ڿQ^י=-aS"R>d*|uA%uRz`a0ȋU4zrQ~vRG1g~ga$ZO_)VG_*ⱺw(NAׅAc6 ec w<@וYgh|)zggqk)n6WaL̏ x|CPP\0Jf-2^_Z+RW\iB+f~ !8jv΀VSe)! ZRrf̆ 7X\:5 æH3a63hTDiAЯ!|}]"hQZ318_+ =Kg톖䐘K@(iMmp0 . mقJj` Q}de&iC[ש>s{P֏D3{TqfHGj0b4yV-嫰5d B5Ǽ~=h)f~jǘc9oZ_Q~חp_"H&M 6 W#}* /$`uʈA ׼@2?ŋR}vBwe Bj~H̎%P'y>h2<ޑ`CO} !hpj~m yg\(o?#ʋ l$0 pd[Dsҫ;gH#ᡸ#\r[K jlJPM.@ڃV f6[@5zG <0QsY?R?c͙??fwőߥ) X ræ(}ɯ^4j>}_Valu1dMI/m"?AhM@ 'YJPX.%I,`>Y-uPz4lZ0ld OiMeuO|ܑ=H3r2 X g(^myVݎ!Sz>YyUP󠽲%fm&ol>qk1gOv7i <j -$eRSn%f[1`4 | ^Aärs@L`ow\dL zmPipJiD?zz$& WGCjǨMOmc@Fټa.X\x ! 9007q>Ehyi`H[Q[~1aeCn`J oB-t,p} =%l1{t/s#sTiyx0ruKcdi>QiJ d$UJ^HeUl t[8,}q]ΩdސJ{0?8>E~ɲ+y968ں>a,>$]>is(THat ]ߺ2|NlߤM#MkzC|ט|{qb-ȷ P=LPw4`5oK};l-]/|KK1_3T<ߚiNDY@?pi4ߛpx[twgG92B!F3O: 3hcĝ@=_vlߎwW >~ Ț|go9P:;?+{(Dcfj!YoLF4oC7iluwApwmb2,),kw #l:%cF4| o@"+gM[ql"af dL$ؽ?u-莵G(F~FMqҢ?Gl QuhCSDL|ބڿWInV'!@"b֥` xJSlz*v)UBie$LjۆXFu4MqA`lqA rzuyE 0-C*p6\珠k%#VZF$~eS9B4ugTKp_&ԱTwR'$r&n'hö/̔Jl _(yjV2yJge7R%Sy="4̆1l sLaV _Z?m0s EAAn(lu!EKye1˵j& ?9Tx9'_O8~~B/I 7&gac'/we1zBى~t|>izܕ.Sl7`mv+n4(~l_ :|s`A?>-\?fKUr~fXcZW6#etTĐ {E| S[w(_B R2rzVq49 cL3#x/"_1.aa'l }^V`g,br]"W-kO ! 殒V{P5_k|L,spB1N .Ҳ)rЊ_w϶b<]{K Zم н}vP9޻8E|O,rSi**w"% 14Rp߷ mȮa婔TKJ.( Fwnn+lwdtjxWPD2ãF<#դBPVmI.O+)C[-{d͛tϸٶ\l6@(d\~}{wJ7q]>>6`c$G~}% 7xmD'ظ(dpȡ`Ʌpg" JcVoFW'q&:6xGBOLnߝɵ?ƂA1N6e'ob~ BiKۧygЅʼJX0Q?Zg-umUp~mR!y'6F}<q˽޷i٨lF G9;7j qA;5x$$y)5&vg\8D̓5=>.BU:ՓSHQ->@Kh#*ʙsqe_Pf4=8$h 4Ƥ}]ҢE2FL@4qQUdK ITH,@ X'B( }U؟sBį_s4b&#H^GI^i5@^WD %ݿ.;f)tEPD%Rm{[:a,{BۺaNNH>V;!3X#[1fVHk@XX jKN6QAw 3TAQZrE}=ڼDzlkzgJUN"i3$,&B+Ti13|L}Ge,d녇^!C=>ݲX#EbŢ1qL߅~ьf[)KcZkDŋ6:f3WfgWRZIK`m0r⠯ -Vq֭srE<>7O@QgNz@u$̍SxBT'Eqp+O^S-ʴvf́uuZkk)Ξ45  G)Ct")hDWA<(O|ru#̪, QQMt(l픊 4 sFtOA?zhΤ;g쥭CA[R ұ!K =BQTD-PװZ-*}-"Y 5jRoz{y#m`R)%gGMyg m)r E8l2d9[=N'p,eE콴]Q})"JY^eһρBR`oO(>kDJĐ!"ATxe`! , -:{崃sCPVx͋`,_vl ._sZWiCyHqvڕW1FRCJQb-.$y$֎ՒXa,_&K;ʟ4C ۄ;m kϕͲ!ZjO`|MӖֽl"<:I4"=5k hN a rk?׉T&6$Q- cl3*1c&Yeaduơp׺$-ݿ^/|,/#3ʴH;ɰnb@RBF8`4Ѝ Z׿IߙKظhߑ6,}Ӝy̗^G)cZ,PC;k<3sn9>>G>1s+ }[s*Ep(p%|-Aߦve0p4>ŽLi:[!ZZXNTO&瓞â4u/_7A H#rzbTb"2hPe%H/>ПEVaP+{(e3fnӓtj9wG?oʣu;ig)T@ zNf4?Dh01_~Dొ/ w֓Jw!ز&M k9*L~4GM؁jk<`&$10!pmL_[osC3K13'GtzM/ =ڌ% l~?b_ P:H&7\o=g=@sjRHEcխ {vNa/Q&8:R ͮ3\6TrjJ?&[,8. s XДĐzDOGO8s!p~׼?O\#Hr&1^s1Q칈pq7WH{ы&36 uK[wҍ1Ƹw(d%5<1}QD+/sȃF`/ Z8! /;AN AJu lcYlMߴazo3u__9XFr"ds(}BaWڽ}(*fh=>|LWo"^P&FRh _rE1@·2g8ψKdj0,l3Mc!z)닊' +mCaJ"V}g;{%m3V6 hأc~,|0b_)z-H]W!:M.=}Q֙0%K\uzr;ّ0 MjՅBY09)J6tYHt #봏=hI0'*,d.ERju+x(,zَwꂎc>9l* n#{?TY ѫax<,#$uVW1y\/E3kR+`Q1eddz,6 Q нb;fu+YTwN 5K}P!U;E2:7h"5K |DJGPZ,݆q@_=E{H91$Z\@z%hΣMs fz;cy<}8C{i]b[#ȮI ǁ1&ks È9f69qO4l}-fFٓ֔HQG'If2gdžg1^4ISNb7P᯿gaQa$amV*dB6^~x!!\e6 Ҭ\7{XX~Gи!!z/QyEw<0^ʹqpr|ڍKbvQoߤ-4p!? ֮_L_N4 lqq 76҇Nχb<^8e@ iUIxvG( VbX޲E Z `%)+V^R+< `i9!fo|M&ТK桳dq|,nyRn[2uk?&E;z9<< kqj`jT$M1FgFMڻk!P4Y ټ2!A:D&S`έ/y*) ׼FYܐ-#R# Hr 3Bάbه[>8T~F q(Lvd`yR.;岮b+A>̉)RC[yѼ>?wZiP\?h84޲\nH2CkϋtaF(4uR+- ) DcE2/JsnhV҈O@|7by3#B)'~  7^f6y@U*IUfn4jcvr֛ǂjX d`'I! PH[c0\afJk8w[ uڮr8#"PXIqˌQisص{z_%Efګw1*lW#C5Ltfw 6M>Y`p6oE\shx]"Rbd+'F9rcDNUiYEaePߩϱ9-9^zZ6pK^ecz׿4sٸ:6*cwgpH(I0K"^k@8}-r8_sZ| ?4lG@[w9$6 ~0W3IDc`FT I!y,oK 6>8'Z;[Rfq 6vl&L珺CxG8/ǫ?_0>G*Zs% _o's ꍥdH"?.#DV;ݫXхGjZH\Q"SCrP*1kx+ zU |!u@q6'c?'z;hߏe12añZaOoT_h> 1Eyu$3-&nFDhY$/3!fZF9yp0i|sGf֝%.%/44feqy6vqڄSjEg|Th>eul'9["lHu\;='6 ?'R'gٗfy}֝wZ3iq+Qh"XqE?g{>ﱹ1vR꣮\ :U-Yg.QFcTlb KDCʞ(+&Fp|k i X飚+P Y~82U{0>掷HoqL'=a\k v*0Q $#')Y]&\fq@+oA5JJ] ")uZ-T36Jsa2w9vڮGN 6/iazZ;ބ<0.GN^z]f=80e(a6:'uGà>Mj TY-#rT%[{acMp#, ɭ^-5j5ی&oԼ %dx=Wr$ǘy}וw6]KZ F'7)DǼf?| LP¼y{B-lX͠ώhaU(E}U__?k#=˭O\bZFaG4p9G[l|J9L>rbp#>ĮoR#$rՇX'g%w8nvn`NO|pJsaùnOTĨvG,g\w,X%W+a"e|U~_& #`Q)HXs E:o :5϶:߶tumƽ|9nx֟~(q~,YeR?+`柤U"Ri3 ^2@Ѥ#$F8C@N5f6DMajl[R]ɫrm6iDOs#dxǹAfr{Ԏ%O.L2#D[u*kY܊ݢ u5Uf#5vQ5R=Ih%%LTxݘt%>J ;vlIbIJ;D`f=8 'u-I/ūdB{ FY,e67J!v]m;A/7G;RO}>EX_$ʽt䔾P!ӮT0cW*:\9l@N] eHxI9kw!O"[a)I 59Iy0j~ž~gzNW%a ^PSfͰY$#L*_NVNy=[#`fn=nB9Q"3p$J}65p1PP8lؠɆ5IXb">,bobiGYǑ¥+eNBRj2uW=2~M4EM=T)uhMz~@ǵ볕+׹Ʀ;RDvFZ6m\-\]!׷^ O6R Uov:H|}4=duko~MnVɹB<ȼ`*gV! `Cװ_H"] ˞V2"$mCT(t'_0(i~ofdxS/u'! |y(e+{J0ضusцd_=A9ǰz**1@ [k\wO媷iX xOͫbLk͹Zw%`^%w/@_u]f6'9qb'Qj " Ҝ&܌Ukگ㲈l +O__MP<ƌsXR4^#"N vvE =Idx",/nA̐mfŋ n˿r_ 0̈4\=*䭀cLb`ELo'͞Ǘşi$_ 6"c 8׼>|9t1k^ׯ}9_WV_VncǏks\_q} E@cн% ^[5؍ 1]z}Řc}9*̿F~uV?qdq9zZ޲dz^Z䴉A u&=-b\[Su'XSѶ'hY>pRٽI ~ՋAIyϡ҄)(irg3y}KjGs.fgTda*/L2ϸzڇR}ĝߐ: }߷V5߂cߟxNyyBP-έ%WA_Ӻ̆q9u TT0"MEXQ7gf-)N^18IZ%!)q>SF5 bRm k[33p]<$7|i'nJ)PSoD{ގw|8Qqߢ[HV̶ `vHp@Tjl׈G25@hX^ aZkQqR0 w-CetZC~~O?::lB 9|hBbJظ̿cp 퐡vIDATaPM6rho49Ck%4r.(7A ,|)hbyh/ʄl\>{[qBҼ5_cL޿֏_$fTh\Ha})IʕTqB>rrIە3f }Y}%~aL_QGxotoMʑ %z==o$>B2ގ G1\}={ÿ8;7_Ϋ,?h3KyVaٴ;&&qNIښ3W÷gܸq[ycX([d2c"+׎0_/ɥ2 +Hm@{(4/ :NxT̥}w~58O=O fLгǾߖ'zwZYj yZ0 $}h`B`QхjWլ+!kg%;lDzt9&:h@46#̎%J& z/@?Ru =Aw%Co3O5xZgfoqZޓ!COz" fQ1~NjK&fTo/2]Y)b !]ά8sR׭Q;$t)OM@}ޥ\*sX^c4Ծ/ ;ki"EJ3CGpR2>rRIwaaCǢ$zNTH733J)XcRQZ4B9L4ipΎ_)J=H.Z6ƜώQ![j=%&y7$|jĖ^icf-ţ/zsr|2}9 DPA{R~j#Mp`֔aYqO3o߃_FiHc.cDފsRVgzXV @efD Kа]b}921'h0φה#rZ̏検__7ɈE*/$or`\Mݿ׏p#eFj"rr`,rǜ,\5)yQc9|+s<ջǙg>~x^h˱GTz7|U1%=¿Bۻ!o?8c~V]EPPU!-l} =7vЪ;8[Wd/ϣ񯿃8̫WX Z442CVq;jGu&ZgVU&eR= 'HI?Ucj4qi:h?w{7ȅFo m+S;mL'n@|s=U=&Lϼۼl iM2 #mEoo]) V]G| .=Z tή)oŹ61w|s?ʧ0evuBVlJa4PN.S033!]RPˬjyK0aƓ,RahJ{S $U6i~ Tnfpǹl;8>NAGu` *ac"wטbcp1(`&՞?pdTX1/ ͺK"a. fu;w(d6s 4Ȣ{ʫfj@ kyr]J) e!:K¾b 5{csKN0i9K:3}Q9: UOq)z!b&{o&}mƯpUc0a-m2sLٌ9RV !6FGe2<jiPdsNsX23z)<qMkk̿ŭu;m!4WJuh-^sL9l [?QPE4qBָ(O/ ٨ΪT0U3p'S[:@T7'e#3 TGGa _t o #QRtKOr>1N -N<Lh .IC/?|g$7s/G}EMMO3 )ۤ)zdN>T7gg?/3=k^) 2VY2%XK}Hݴ#v{co!Rvә]0::ioڷ9АbƽUdR&oiZ_0W%Z3ځ|Js!x;T^ҵ}= F<V.?yLzuR-OC1:ͯ{/ݾiLM&q>LYl@ߋ/sjeBA A1_֣IZGoY~ӾN?^6o~?-7ǁ7e^՗t..b4V}UzdIЦ,rJ\KlW9]~F*0ۍl@S9Gl k`A XٻtK+<6Uύ+$tUϱ42!*2{ bp,06\EIe]AA>Z].t!r%GDJ l7p7XKn.} B ^_Vʴ,HukS?'aCB^]#NC*m?_Kdn oח㍄aGgbs_kϧG~^YYKB+08I|a6Aƈ#pE@O FR]9] V]#'j7FWnr0 ,6Hd"C)'8L栲bfmZ7<qjWc23fÈ1ln;r!2 QuI^9ͮ+bh+|@ĺ/cΏ?׏I|ZbM_蘲cZN&i=+d0%=E>1r mF>I{$P˚ˁ3x Jh{c`햹kJ5t0зu;:m:XGVg}i9nrm޷Ip'MNݢ]v<;G }{濯[U|Xœ"5AZ p^˹+ٚ~-o=ֆX+)|Uo^HI-PЋ%ߵ76.Ž_kߪWQM'HEYo?Uwjr\5#`kr}ZRVYB.7 M60(.ͼ!0"d۞sbQV}IbI"GHum= 1r#;1/m.811!i98{@Cͩ:esW~QſzQH6l#utv:n7q߃DEw~$ֳ Z+%hvfƑ}4&jrie@$afwAmZ( 0@(u Vˠ+$[^]z4B¯rE\vPKraѼɜ$=ϡ5RḴ/H헽yb)'Yf$6{冱_k uxW7'Rue_'6~&!aט6\Y;ʈ 8`iw9(cB$Ƥx7 d<2:12he= | ]TW 11$ ZN)Vu]z PJ$;;{J[s.=)yqKXǘ%M9l>zzy+G1݆M]3\1i2Pu|IAF6эi4Z'p}i6C@X_z 1A51VkilU jJBӴ\wA3Pd,ah~/x_ߜ ؿ?k]}֘"ENgG]S[΂94e}uD_ZQzIy/ǭ[@D57~_\J!CXSQ˥z BWċnjW5ǎalEw%Aoܷ[M3ޠwcc1fMO$;$+*1_}/R;+)D3)c_1/y0MaԴ)6{^dAA;}و#oj+W~ /)Ut䳃ji7Я"j#xswiҳ^H/bpIkUCd$^"m.ݹ8CX],AJخi10.}Vb}%oKenKnIf7H`ωSȲ{&7:cD1Gqߖ|߉=Fqy=wmg4Uzb@Vo7r3 gMȖu R2aԮ(|a(PdWA`bvSM!g99[ew;I#Ĉ|ԣ S]9ggFXٌ<%,TO_Gߑ"ïS`KP]5ᔶ盌ǀ#-X#{Z]A}A69|EͩaPQE)yW-3@6!DB%gWL mŲ['K樠I7l 1dduk5 1uc6F911i,5ZVRς=& э9qܟ`( FhXiْm13`Y.&D3rTmN=F3az(ۘp!| lD991Ku8ƴLc|c^cnj]i+0,69J=Q !G Y GO;'=NzڪeH7Mj?na꠮t.ТY==Υ1}&%*3;@i"B*i=Dff9o=1>0M9W{ rSBuٗq~g= mhQiD#wU׬Hjq|*ewWEDC<]l[TWHr7;"C 챋 W&~dcQ=|V{Ui˗]aQ5.x&ZVD =ZRYṈ~č_WUL1Q=NXOWfh%Quefɱ'3/Yf 0)l=Sm[|ߦ}O pFkmu ~=oZf[wR}!O?^-oavGU g% n%Xǩ,lhO36Uh΢r#w^ CRWJ tAͭ桎ZҪP&I.M ,--;]#v!P#x'F}갰|[$yƥe *׼6WH4p:VD61 [9lZq x= B9AqRXum֕gJG܃8V^#]mMP6F1} +`]#`%^/ de)44s 3ic|ŏrYG#>ȢD4E隓?':Ϸzɞ=uHi/302H8^K}WsW$Y .v (VA-zm[WC̹H @z$m|Z'Z_w?!X ߦ >cf[|nnUIFѤ4LH=/TP+ݗl&L z'={g|GؘM3! :̞ TӨp;p8YB7͎$řP~(ݚ- =w.d6=g%omGiI?:p@> ܷSvOG[NΚ܅^G$Ԇ|uKomTNo$0i-VMd,l}UޭOWbDW1lv!ߕ؞Sm=)ٳSRs~юw[BTro޶iMGgY?eFE<)һ>Sk>p/"t*8K;AMAa|L\4Scp 5>E0Ş@[uO(ڟ5 vЖu3ld-(%`i`̪s;URzrSw:릏['*漺'Jڦag8 Vo2D#9/3 hb{:) 4dSb&ErhA28Jl[ EX4QrfH4B''MluwP*)-@\>9ϖ  4'^oΤL8m^ʉ~ sa1l(b}t2]?Ϗ+o.bX~?^Z|}#$эХINtqBFI:HlYih&K9J"h[K2}E:#Y*VJ1.1&̪RL}ؤaK&D:Rp'TV9!a X5j L 6cA\c}Fh0ƞ5̈́G bkq/MJv/E,]ׅ1漆3Rs/אc^z |1r9-aJUm׿.w!k_c1Kcޟ+禍w-]K7{/b֜hK3;o=M%)ms2U5`;Ĺۍw¬Ż'qۘW>?8ӷ&׈ xp3;nQh@QG[drǷ=yQA6J4WZ%IEjm/i0( Y-('XMy6P'$HIҁ} (yv,>}giaI]mx{EnAI[[=7 ;W4f5S2!,\W~/Y#mrU! r /ḼsX!dх?-H eqU{ޣwKr۪kvYEz7u$E5?9cI~R߃sd4=7_iVI} ƽHKj$ɋD({}7 "mm"s0O['lԇ\XrlRT+gFY0gR3}D>P00fSSYįy|jcMѼ~c"+u\/3Xbx6܁0^ 1\u͜9^ҕ:]z_kдj)bP6BK+Czd䳱QR$Lg۲WTa 2]Z& Dw>6}65=pΙ; 1Fx@xtaSLܯd# S(.y( ;oY-亲 †XͮAz6+ig%GK2Lu@*vBޫsb^ ] `caH1}_~/GXq23>(ـ?a61ߦvu'WEas\WOA kfk}1G<[x1m5`n=X<с'tG#"Ey geV>8w>2SAm0p͡+ YO%o{Yo7~ǭ1 {I1ҶEJ*VmTMkD?ކi 7-}ol)mmb;y݇lW҂`{iDڡjv;Zbe2jo5,1-6#DөAoрlO0}l&oN-{ǙMRZgwI qP))Q_gRSK$9$xz /pAQW;[ނkWIWG*Ͱߑ=پ}.J7߲K_:{L~q㑍<ȟVi9]>6'zL*E/ߔyx jy* a0Of!&jb4>R|bvEg֒5(2}-ɟEP<&t? N\o3%;tg}^*ܳ*g8Lu(]?/9IF .?,DR)H#)FXHJzH׬Lz1<*P+RE*(-s1[2P+ ;8+0=>gKC,+8b8`8ohׯx} e1rnHx}\Y)}JE/CLMHK 2(gs-ѩyziQƲO:]j:vG#(,ڠ/d\؇r\IV<&Pė`.^9ih/_c???_W__ ^04s'arn0UHifuA;"'gs뾿 łH3C:g)q~Ȗ S~E{u%C*Hѐ-O,x԰SX9ae2n{.F)&YŮ}Pn ٙj9zrìmTձ8 Y3WNRşݯfKvec ξ:gg|i3 1SxowI}{_k]$a5\)ibpKj٨ˆ 1~cz4ӺK!p.Jf{ Fj`O3$%#kccYs)&׹A>kRcZ_נ}i6F}@IWgʜvL;1+16ͲV8{Y9뺵.l3UFx +U[ Ň]* vakZ2ˌrea-FƔ䪒\"% 1sy$2|?9.ly0fW˓Ji8Ӻ!vܤiaVޤXaf{X=c1?"7jC<=ʊ^َ.z׋וAW}EE¾LJyW{|'W/=7k?ȴBGM,*74>ؕL]P˳a(v)qBWGU~&J͢Q$+?ٖ0C9 lj,*dC욍U^,˶ՃLz~gwD6cltq\ۀ@)u7;JG?4=Od_+e]0;pl^9ߘcx1t? 88VZ ]tޞۓޢH9P)Ӷ{q!|H[s\S!\oVO ko+--'P HɂFT}Ļ I)*82j:QazRz~E q,2CߊqΜzT+F,/)ZV&80afpJ9s<#כ2=lChꨌ}e gz7tD#`x^^TPA ",i]+K#h 0A A1uA}=uJ|,w \sfv7LJƄ2by\i0 J=hC9nɲ}Z(v#Mro1e v5$m~M XKc1j^m;YSx|MgM><*ecSe [ ;*}IN&C-뺾,pKQs|b@)C1PR^+K8ACQAI3{ q%5Wa6|23RcJk^/|Z+ָ^\ĸ4Ƙ]e\kѷ{}&Vg6+ɺGxq)j~bǶR2޹?4<;Df~7yɆ6fL{807 'qµSç|-B#)/㹬,q2Px/o^cD꣗;ƊI͓ǦYr>gY%D[ydsOtMmG|(YVƷ`P}ַ.rCK?fCTㅻ&F,W3T&PyEk`3șT,!s|3ͪyâ37&z- VǾzUƳ*Ϗ3 ,mؾC7q8R?x!]JC4)uz'Zo^қ.H$9K\/f-AJ?mM.ڃВQ!΋) BP ((Z5T>z"˃kcۃj?%co'uQڧggb0"p-i4Uج/X\kLR_7dG~5~a0?9^ X+sl \`G1 sD(p7RG I䎈29Z2A +*G *y9En< [w ?_A| AEvhV;N { Ks v ksHJ9y~ϑWH#s$4S2cFLFzo*|` 3[v[yxġ]1ϯ=">]xZR/3=ۮ/9/L2iQ5j9L#(c j̄sa@]X_rd9hƫF'TdNΞ/TVwL_6_H}<dD՛`ULib97Iųn|z3wzoڒ=vɕ8!y%@rd &|(a4!cww]{ o7p3l'SpC0YҷRb'g`3fKy˜M#RW oV1ZvCM0K#\6}w9;!͇br%\PdMJ^:(ض];ѹ"ZW#n3:rP1O敼azbg즓MV)G+V1Ťv(8}G )Vi4rVcu4_~!0FNZZck-B?^/?5 1Hł]b%*ܼᾣFY% MkJ30$Ѩ=Fs\;z_cT}]-Ϥ(ER5s1IakyX\WjzX@OĈ:D_ϱ'YYL*i1}QaoTkE$ <m"U( uV5'MU:&[JҺlYrAs&`N?u!?w3c?y19)W\1_/2/{}1Kṵ\:!hoNwT! ydM>{H}l+zTgq \~+ܸ 6t=FٓZ(Usz>HsOZ4U4~Rզ=Fe[k{&C[yߟ\s̐{F9ހ;t[jC=9 Ş4C2Z ֟w}vOнlBLh}3M5eN "lЂPNOeDi1M1hkI2?LPvڏe6ѥ#kcڜ$S u9O14vXϛB){شiluQc3T٤2T q/je2%8OLݢYm{FXi$'9 1=8‘3;+eg-kgFX7̎p~'z 迓 $Υf r;"k}&/D {t׃loʶz;:ޤ`c+Wbrn|Dd>e-8C |m]_C x=y$ Z6Ĭg\Jy2"OsG iGs7JmOdqo.6=7z~V7lRB:/8'H`.+ 0[Qt.$)4}-!__RD.r!s }r!)5+eᙞ3l^CFP# OZ4YRQѽy wO@ b^ "g`FC=٪,p<3㝀k^-0,l B)ABD ;SMT&bB.ۢ6A?Z1U![ف:mcEQYBj.X_%_SHG>NS8^n __s ~ ecr̔yhhdC 3$xȲc nƅ>.Zd ux$1%5ZV,-!H0`R84Үk. I_1?_eGf5a, 2َ[r|Fm JSFE3dX_q{rL;av,␝4uͭhL^A]2Chcko '2ե%)ӾF]aj㺿<ǂb+X'&)(s҄SkWH:v ۛ'D2eC8<4ܙ!w`3e4]9WCW${ekhi1a-9/B B+47 Ǵ Ro3Qm-q7clr{jAۊGi$f,0Ҝ3+/ƴYoqo_忎‡QuCS6/Ϧ4}YTM =guwV%#{`^Ca?L যΣNaY |2O(YIdid0e\ǧ:8d_IiAʏČ[|\*eĪm7OҠ%NL(z|F eyא /! *xh"J1gբR ˳BdKa*XLuKdB%(/99K؆3} ʁwt4 . wt9E;rڑI艣\[5 srg[slҎERK:5$JŹɹcV4ktRmP[mh~g~VYmcީuja3߲x+ۢgW5*tkTI]@O6l~*Fİȧk:Xi q'=W,) ǫc]$߿lͧ-J;ߌ[xx\;x=r(Ֆ*s]L)&'PJU<)%ZFVdzίX#*grb>[cԻLb $̶Wn6V5roP= _>rmRj'ikkǻ~kwe:Owrww*7wƆ*QA8o>2+~;yR1m.՟6! s|HfcJ,aU [⺨ꐱ y((VbeӪ)w (|]n αQlގc=K{1BmӤ$@qha ]^ɲ6v1Z^$DƥP@.w6_1p^4 x{\"׭ԗCAz猰t:{CI5R@hz]&Z6X$(JpLQlif&#W+-mdc>Y9.fsXKꃲ5r==]W5"Dsٍ螢Г IEFFDDROkәA\K[uY!zU5%!W1c|s\AEx~PdFy$%~Wp_?u}_eZecڸl^W@l WDM)+Sp|Ur~B[YgC;@s`>k-rf7Uóo?Ru/遬3cMx`¨^PIcJER@A}2[ag"l@͗AhK89OOMPE~<aOO\PAd6;f)05 Uij7/?kƆaSUkq=½Fi2떾}5 GB;Y798~?VD ryHQ 򫑄PPHWJnު\kx;g{EZaʭ5njh]~ i/<g_F}G=pIi.ԡTsZfI,? p(N >bs=CUOݾtFI `ɞfo &%f?A8;{Z>Tռ=35;e$}ւLE@WGO -1^fdؔBu۸ 6T*,"63EVn`17ᥓIUŒ J-A MFX2a|0|̻ퟺSS:e:r6EN3Dq1j:A7_f6/9LSO;LyrPwUco:J̓gL%Y#U[=78E7zfAtқbQ1.@4`ꇡ20hªO \q2B`9P"3JI8$Ny# i$!/mP[ʘu.NhZE two}||}G;Bhyͯ?`>#G}PX1};nϜ8j6@Vb.:m U-\HPHAC>wd+\kvRFvڰ}%o-;Jg(RSOW|]@yp̨3uط>Fg}!.v K&:>R˺j9|Beї]zYD FkC2g-ggp߿k_S6K_mZ{%=[vL!r`Z!rG5:ix3񰻛vhW|>nL*g[!JTS3Wl_ÁiE8dmEU3PF5ՎaOjzK QپwR oM|R'gy|պ3ͿϿqB\+9lڹdkX@!3ac p9 6}hc ni(3D'c)|wG6Hc3Y*$qFY}П磊ϒ4:tBwjgozChV>G2NP=='benGly^Z19>sC5?@r Zcs!WF͡k,@zD AK_!1RJ1Z!M+E ,G`ͥrlX#F'*&E9d*4h,w"51uˠٜ͝"({M1Rͳ$Yܵ2NHIP2Zʲe@LuFk@j#5ҫ@J˘TfsUt+]׀c k\pLhq uZ2-꼻ǰA5R̗+e0L5IR5O:_pXs}~yM)'u&86O,VyjA)M"=Cȃ(yޟZZԤ0m?6?NRcpf G 2!eʘg(@v)gjmüh~+mӞ) D~gEI 4Z)'4Jl!Ymk_|$fE^h}LIaCvE 92e&Wa y/4.d6p&ZBQ {QWz9[?cmp^?}w`.>,hK/wrl߇nv2KL&~l^\ byJ`t|xY$P-GGz-@CS&iHSI)v<2OhS7rNՎAy:;跕*} ]Xtچw;:з::+);z ,|X4{NA[Ip tcz(Fƴ2MiC4qqUK$'9XPPEܴfAfԒ"gSıc$b uD' b @ EJ6hޡld2Rqn髠y/1S8!&k~X: ZiF))py8Kv5wҠx^ȡw}kZ1xDicp¾>l#>?uGOfO+a=9qיBE! vyB񎋰\ٮgvVIkS%-\Lw6MGRAP65lΜGx`XaNؾV)S_J)ydN7&&lk1 cB?r-{1.HN?q~x}\tace6+DBV޸kEsCe 쨁ތUf$^/2K{1m}l_#/c 0{ VKEotiPS )ܥh1oC70Q ~:-sc&JZGӝhjxoLTI<:^ Vґi;o@I7JhJ/A9N<W*g7H:)yNꄃ c\:jnS}yDi9F2cJrv9ApJ3\!a^VΓ8Q$53&U"!/O/1̲H@(n6{C](aYw}~-i9~|Opݟ_s1_ӼcLyW{݂ua$e+`Vxډ>l G|XEe8WZT;n>ާ{-y->;o F@$=5Ⱦ*<0ml^InU$Z3hٜu{v^Ñ7NϞfe8h+ϙ_GV?H0e_[v^L>:fǗ$Ѻ~wCf#43ô!2*}lrh6 C(O~%xx}DrUN12A忛)FMO8B*ୣV;Õ@Vt+jŃbS4pE WLDݺ˜%6&$*r gA܃K~p[ AK )XbLNq;ζ.,EMPvPMk9z<<9y"ՠ!wwF貛 l,&s /ڠ礤;צ&{%\,t Jyx|eu`"wHK&'1$TUH3[wxhz} VD /">s^?~MΏqĜ5,.< Ͼ+RŁJ"rYDaÐD(m9^*B{S>m Kd ^y'GPrϥ* 5ץͪn8BiaoRɞ˹_i( 6 +x>og(L]R!%{GjnLܚޛJ[8!9;6e W][v{"_r2MiW@v`v%AlG1 Aw_`UZD2kc-#RUmab;u[Y[@}ݴm\ LJT@|p!巽s2X_gbeǛB uWv_4 :wkR&->xJҾfh|s3`2Jhu|P#)YELWbHO(k,~XЃ/ h6\;y؇zE:;n XC}Quod4~I=9A=+<3<zuIPͻ=y$˔2 D|D=_M&i] Td)!7OML2$7-e9.5ӆ)-pX$MV[lِ]$mT΄3٭,:wM7Ig2jֈ֊L "oWa2 AO CNϴSH yC_=\hRHsf#[kr 혂`HZ$ds1 _q%@pHt%@o %حE]HLU3O'"QVbދ-ѳariv֚lƃYQuʿRfX!2MTxM3{!tgٸ9GaCKu5A,f;ϯ׏\>3Ikwo@WX7|Z~ldZYDK= JCB5qן& =kKW;F]P Coba':t jSͫi3Uh[*KW-S}Av|<6_x[U:,OR{Vϗ~ʘ^/*mPRW1^Օ^%]_^k8DxitՇ*2R'm"(.Ռa•UwB/Oe2;6{&mZH+I],ʿrjSSŅ#~6&}Q}^}4n"39O.\i3{ uҳ5epYco[ 0+B(Qڢ]HWhI"@tePsgPg[q`{>t7+ V Һ9B,%D ٮ]c9G.3( Y` ZlM@ĕFi YB 3Ϫ_?rE#|N2}WfJ/ҢR xgRi֛{Yvi>*lN MYP=`q.Ύ=]Չ]L*^d+y( t zƾrgrA9cjP=_?`mfqL|@/ټyk{WHpK߿ؒ$ r /yߟa>tɝ_R61RZǫ}%.Ueel?;3lXPi9'Q}"bTH[ŜPe=Sƕmk_wM55O3>k-1rLD #%(~fiɈe9y} \^<*%m'wmXKy8 H{0w`'R"wњg>Jv1l\)6HC<9X6'xnivC9i7G5vJ#nvX͘IllM!-/hfms穽)ٌ9F9lt?AYy;}7L 4K^qIޚ4Zi/uF)D1MxX >I[BV-6G|zN0={jA7㡺.)4#ʁyz'&=&1s'{}а_j<ߞ (-!! ͖U)_527B>L tZExJjɪ}+jy+rRBzWV2?D&9=&[+oϊ% _c13YyטF)<"i"|rw\|&!tB!n!`r,˕<.XO'6 r׃}&_4ֿ啳2C_ac_D[Pͤ(&lfJ薾'yF}Fm T)][Ѫ`æGEDJ61;]@ޥc|deVGbj>,ɖ|_=[8Xe<~ju0|̦u{:!#_UDipٻtLbu)UYHFR'Ak;QruX,K=a֦ x@7-^EZ[oNߥ0$=›P}e:ìt7zz Q:.u Ybw=ՊXPKv-OZ-kLϺɑL{akSF7XbWh)E@|?DsP ;{6v~^|z;v)mRg[p{$7<ͷ_5T#献$do}+kCr&]8֕Ҳ9uhԥE_aQXan&#V$ȁXCp)PAewa6 T.]@ 28mM^?Dv%QCH*_Y?3ߑ¦sz{wFg(( ц^UҌ_w(H7Bp#̪-7? I)1 /}>[Z$/fMcЗ< {y>#;=g]KMh ,~2X^r^ٌ6T͕؎I605Q\^Y# F}T%=k11y/3,Zf@0e 3@' +Vv\TU#ov[9 ~ק_?DDžr}y44| r/ h|ka}yDZKw}:Eg[" ^.ZÁ?YQKk/_ҶS+Mrÿ8oM7sa}߾5şW$i9MS[dP! s6fC 祛`ViRQeև P1YOKaJ:Aƾ쎽a=X ߈'fZ] A5E0pX!]~?Gj$~6f3h~c}cuG2CZ਼!鑒0 M-f51Үq z'v:Y CrHy+-+ aޮfa"P/|tjZޥθpx vpi-PD!@VQ0V鎃;Z%g.;`QCٙa^ޔO?20{[tͣÎr x~y4V>[fW*:FKv_k9f`i#vLvLȖA1v0s 7(mʅmf -_~pL9fųU6LA)ӄ"rmǽ>sY\#}"kqѓֶjfE0w O{@ jC=X0`w"HV`i\9I?e?Ay a naN$P#d<5fRi1&/4ěKrί#|!a&ԋ6y |%c2/Ou]3"@^LbɓUH9k2qI= VUdPK3˕_f3A!5!y{$U 1I,5 zG=lD8YigUŻPqRxe9Et*k洵į?o&/D(JH ɦ; m2 E^eS_ VYnbeS>3چХkZ&G!׉GbZa DyNETS2XTėKkfaéV YH5RgbӰo5y6N?TlSM$a{G͇iN @}6Fg h?r\e= v{<UYBrRBd欻!HC+yKaS_Ρ~YY-jYl"]ۚ"%B9+(Vܔ]spi$kSYzov._bikF*OܿAU{asǰi\&f:U5hueyԭzuer]aX2\.+#s!M]6E` {N5d>Ƙ\?a8/۽Tq P"U)W3=H\p;ls e!ͦ͞qP^pX_kź镔c v>w20y2[)ſ.?pyԬ(˺Ibv ]_Dq>"0ϱ=S1#(f\^Q8(4F*Z[(l'}.4甚2EisU>yVSlӒ|dS}!o>7m@Az%"Hf`:4"T}0f93;,bpC@ rSR?3Ns=RRFJL}?Nuw=wlU!0m{\LWe՜bS1z;|gbbӐx#h#@; EvDtE|Bzf|x`خm||6Kx^G<ߠOl߳5ygo[.(E]s(I>9?O, {&i)x{KlpKSrζC] h6&-}T֚#&x#C({wܑ1" q:\*:=^|9 7fs`Wu>; P BOzz=XU&Fb@יN))FGW Rmin7d+)g~݋i[CΝ~H` zjPuQI%C0Xec>. )\OGoc".ۿIo6xMt^ٙqED7;p֍9Gc6%WF6Q&tI:c,tGo@2ćVg/Y #9 ZP/yvC!K " dCmj-Ą><}8ATCCűn +a@IwyԀ0JY&[rOioHd! 4F$"[oE|F VmuQJKܾأ@J0'I3)ezk†AUH mW&23}f99uSl]^b;akH+G禽Q)mVI%[L,E$u/I0:,Ϫq_ fW(yr#b@1R`"k ~>M_>F# ~{2]~kݞJ-En԰80.,4Kp)nﯻ?}ab]}gRj\OY%-͛D_^!V:3ѸFT7P(LQO[eZRm"2r2Mu!v;;D Lv0jr blkԕS#ه 2n#4Tʕv-ZS^-fvF-D8~KMyVчas;$Os)]+لl#[&=өA9rChF-V4n9~ 9vV Cr^OrZ׷-[||+S־uQ-S'kQyFxݷaHA&0N}nAIfCey%ۉ .1kz {=k;=oQRXw|޽}n 524]Ivwj9/Qw8+q-3,qxáZ\_rzbσE; !aɠ+Xp!^0(L 3ט(JϲB6 91pG#Jƴ c}% =X[IW;ATfĹ\ވ)nEgjr=aeUx\lgMaDĪP(D1aIDATf< uW pYsN٨h0AV&.AnkרqHيٕ,9#M"+ *1g+) S `.0"6kfTiLu:lT4Jw(“W8͆6<|f&#h0187Ab ZmVK&eAP)!F1[Q/9$.Y\S4yaN?v7=gDAbm.e3l2TE%5cbT6P , Ęy*p&!~9m~+[x $f̾bNDu9 ĒB6F܄|̜1 4/m}4+Fy #!SǴ-X6 8:^'jER*UyӇlu(P5Jm-Xv J|ƈo*rWbRWOFu TD;\)ZxjNA{P!&O L;<|ŨMw;ًg-6㳚t_%31|&Q~VѴ@f pKݹo!,f`b^:]mXֳSНwSl4!X=5iDAL-TAuޱ&յo&ĺ?;)x_\k7(SM&6V/cwqA-hcyǢ:UobP-Z9|ԣҩ*҆J٤ћ@}=Oƙf |~+ǫd"zPQ5M r  48VɆy^gp!r-*B l(s~`c ^J :5^A!^wh[>9 ,aiS J8QSR5ܟ2_Nj>RhXsG\ᔱZE`Eg\AtKbRֵJDZ}}†}&wk+&ر${JntMJ81>7_q`{G66jB~)@՘!$BaqCXy㒀kf [ = 2/duĢY4rJ|$rģ Œb^Yc6fJTNH?Xaw\9}ϴхrrXN-yC8ILa@f(QPaٴafs `_޻D#W6qR^'Mk\c/n y_fUm(T6>~ htɮc^g h>^ŵgwv)Ҏbe"Kunv P8lF*q[rGnjD2bX.0j5[F X@^XJQ!)q\ZQku4{Է]w oo>DWE{@'l,@/nL9rTIsּ-b hJ)8fng=t/zuLH, Y5jn95Z8X^$T α4^xrf둜Q ڠE.ᅖP1MxRe%ֽr6;i4q D`d=r@sB|lY+B=Y #B0X$S}þ^_0?~xͿzMc,w zzWviǂbWŪk9*EMʌ"u U3)PTQPtPV sOOYGMƆzF۝^ B(#0O+wzۭ|ǵ |QewÎ]eYfZ9RyF/Fբ$roha6fJWr~TuHwVz} ~ﵼyy yκ {X *;{}DIW.\T,n??buixЮk@4S;@gvNoAQ=Prir)JS0#UD  c]zI|Pb|tbCzdvS;8äz߄Yڻ;sE>kUv~~Ns'9{]6c@޼9dvu%1 Q .7aqY8S9++yn)rZXG$,L6)>B#c>h#o"}df\`X P>>%pik!bZi#D*̃ j~OcNfYeYVIÿo_VDĪ}tD'yvXD o9_},j/}KkEDK ßذvyǡW*pbK;ُs$`l`G݇uxh؟_ye*jh\RNEQɨ<02BsiT4Gww*{9Ql5Khy֔M]$ tjhak[$(,ٸEVsoDn g$j!*S X/ [)m )jR1#lD"Gzme0PoUL(xi;&[K&Ev,}ZMF |}5G;oFB7 #'N ƪ5$ԓO5mBR*5*hmIXhf,E,"r)DNϐG=U#'iuEl~.8tm'HPrΩ@^1h$˷y;/|li{5m?}m`/eNZ7u"[K>C~#?FKǖ0Y'&%|?H @gRoZbiڢ*_M*UOLR՝Kv֮ -l斬dd[/ȜxHbˣ_i$S∛|,sA0wyeMg(K^u`C# q4i%4R?%WW3w/Ŏ5ϋڛ-.C"c^'=!q5EȌbhښUkyt/kT8v#} _EMnE؅YdQ ?%q|O1\D(.'1pQ9.ޣm+[)0& `?n3Z13- ck=y+BTHZѣD*B@X6;F9{a]᱾}=ZY`3-\4`ڞ2@12+?byYLo5at_w.-9U7E1&OEg_zgyvZ V<=aQo]&`? nNrQtɯӣe{n@BvIbYKP뾩OPRnU̩AvhN\\wvRCFdVlhFi~CJ9([ g^ys~F09'I}b{InR-\Lվ[H LsI}wہ=`\^kXo=rAW煆?)p物JH`*4?2EnfL(ocX,TE}Dl8x]eoaC[\yC?4{^ב`N.<{>#hE˒dkt5eUj6IvZA~s X)8ΖఔXG1=B ىfec/ich/7uܑ}pN$[T{}rt'Hwuz~6]nC`9"uqx{Ά)|uɝ_ƾz;M߾ޞȈxzϷ5S 'TL-;g0p!+fQ*vnxȠKkIcԽݟ̽AR46͞1ׯaFlF @_yį_)w#tsIlxd}"»j;yW B7`> hk}6w>i*!G.uXG*t}k[,%vTcS#{6\u-Q&A*73XF<~;7pOq(X8lB+3(k2+g%rHHsLeT̔|]]ՙG()MZP 晱a^f3aeK"l w u%xbe=<<"}p(`ѫ=J߹P )1@sfIL{M(Ǿ#Z))?O~,Gh q|N(mE=}yfɄ%'k|3)pjP"ݕ[Zo+/"_إD &o ̹; Hy-6!!6KUqDĞ}`꿪LwJ;dT{mx۩S' zfq }f} ]Pe| Ms\^~8WFX܏gP5[xuEZ I*Q+PMz$Ǝya DGd";y(Bp-)$-œ~dOS1 !E5LuyRpB1 P*UpZm]|L=P}rz|m_@Ii49PSҕ7 fp~ā][޿AJ#Gl"u=Zܥuc8nLx_Q%xCtb2^k+qqh,9S#4WC΄KbڵTL=[0( Շa[&!L!LSȤ悳#M2bG-F RK`짗|x'x;)NtrKjjs1Iq< k\OlJMzޫmg2? s%wr8JڋB2Z%/\< 6?R?f! ctF9]$d*yR؉K|Q`)WϽ E!IAˎyśic8A3ưa91KCGzϯB u'4sEʮ?"*2aij a0Ox+?}NW1na>Zzv4 _pwIJ} ޒ˾`fsE"q7eDVVdӒ&&1_bӪE]O~*w}W/+ =&Sw0*?kŔ m'fa*7<:S]`K-ԞŽUb8h豸6LNѵ]X5sb,`3F r-!55!ݖZ:1W6 K툰wc+k_eOltt'Iehv9KKnd2aSNF]eu'}N0qEQ'E;w~GqOKʛT[0Y;Яϗbo_۔S{K\7xm56۵-xH,Jp+ Zuv|E̽ NQfwT(^Z}/7?қ*{$fX\2 ݌.ڕzzג?~%u܅?J7p/#=VY'os!D9i5KlZ"?{TwmsڛZ=O{{e31F*s WO^4=Mq'kBYRF6I5[LhHY嬧Qup(9"Ҕ1-?2C {a VpBp.i3&,g=k=ᑳGᅴiaf5 h9lpd1Z'_J#t W:TvTz-qhPG2^m9)-zlxb_+Z$\\m7j<kL ȑyF,a+&x"E~jz$[ÚrwUe%Ø*`dl"gxlc6l;$l3]D q섁="=Jrӥ2%EWBvl2.sG#&`55V*jh8`Xk ֓#f*7[qi~-ϳۜh0Uea4Ĭ& nP@x'm#%/_0z O:bCIw/2c]gʽ?g\;գIq͋YP}l(Pah*wt[EOݮ;F@c,_* #*`D7V{d1O =r8֏7ؗ:_/:^攎aOyfhSJ`OnKk s(슜ZdTXii* R 'y(HTVnnTNKcƌQz=zgeYuzȷqG*5hAcB11l9[fz~xAx^%dBPX_N1^  %KyK/td`?}  AN}3mt]d歀Ω5 h);"gKB1M9p`^crN8s)ΧZK*zC˅ޜo8|ESPmoӤH܎+/F4^y$U.R_H3%ۈ6!#>tʝn|r0YL 0AQIVVqA=?ku%Ⱦ)]:*; sI%h3C>pB{Yn/וtޛ<kz/gtO_P=O`YKs':% C-Ib LٟWxDtjth*fv{ 3 ?msHY OCN7eo]]_Qś( p랚L~ǹ%<~<NH8w ԍm B^QwovJίgKס[ݟZ%珰a;vw'S)Cu-g>_d4VNVVDzF&ϜBoam(D1i̡$8@葮ͲIf#$ߠ \ۦ`0[XdǂvamHݟ.v,lÊw^"FbBٴ9a]=bI%)O)1m 4MUγ*>vJUш%gd1f,ft-"%S0=$9B@VI2k4Q +2eHӟ%zh1=RYyJ=[SfI#'IE2y~~VAy)ry߫N"fb(H W%aV:ۗ f|1REdf6 8'H~ _"\4=x޾i/~xxa":-9M@gRwiӌf3~Fފ ֐!>m}\Kj~ c?`#npHz[ /4mAdFKg%¿oSԄ&hZҷEr_&7K|OLmqӷ6" '}1 ]~Ηs!X]6'$n&"#, ϰz OgOIO 8>g{X+{ip=u5}?an3C?lCA+Kk6JYeJZ{$˒kfz =8q<}a*}2˹!ޒk~\ Vf~L&K{YZ C;eM7 qkg>jש<ʎ{'mlI{;t~v폮-Fq}s;.mAb Qt%je%9cPXSE3;rw|^8@6V96 fS ؈0f}WsIo[)|g^: P$x%(CJCgrK&϶طR˧Y& 2=^P=ҭNaO k|T]!c{O`4S l,R,mxu)H216Lʼr3-1y\*6c@yE yr5zeKj%ewN,-Bl a-i!D0m4dḲHSs(H`La7z{x0Ғ;e"{8s 򯘮T f)/ޗbF$OFs/=NdmNtnM$_ѝ.[Eb#^j䐴?җAQ@;C6zer{ zHz?zW6bJ–k8r6-1& `la4 AxpE`^|gl?jrP!8drxN ,jwf9Q2kw jS '>#Vky~¦ιzG yB_[1#DZ+FZ[o #oЯ;܏|.'i˞ҫn*GPҘh%n6n]DͦUC}_r1g%\AŒBv!Y8`D/sb~z6{s$G*|#ae{H# |k}kGTaHޢJ ܉>Š$# aHXʙ95ݵb9U'/c MX,yNJ/@_:eT#G =of/BeFQ W6Xoq=Ғq3L8I~FoG:G?q30DYeQц2#|]ws ~aP`g?E&7iJ5dlJ$f{AH&0^6^(^2 ZfiؚFF`3,L6nph@^!KEFNś6$zGB95t~m'd9}>0+OfVE K˸5Jb (Z͕ej"e1j @ {,ڼ4LTIfd9V $ݧM"S3RmXz\fזʁĜ+mK_L)G{lkN\8.75`zʸ6Sw Q3î8~" J&w)?_WMC\)'P@xZNkPsT%W%+8s_,I3C:қW†Z9p! Vxv=&]]=@6G4S=xP@lLH6^gp];dV|#i/YP}N"" Њ/m5qTVL9c v5FuG"όbNlE#U>_0V#b\-,c)踓CFv !](v#Hc+{fDO^!'4h?켅N#BrǞҬe8mC6`Nu;Ct7Xw噑=& ( JؗJP3 /DhKoE7GwM/c{tqcSi oX椎`lG٢`?0?09>>8S! 8ȏYϿ=M^4-J\4k_ZqDʍPa]ndwtV l"f#S@/hH+)QV=MO Bۆ6opt{]? &l\5 t`P[J@m[v>NEWJE~7!鞼Vo>o#KĊ@-{unYy+AsJqɯLa38s%!7 .Z2[ϡqKP2:GVUA'ǬayTD$Ҝ܄HC#PJ6k)Rc1޿[sM緓FFg9U1a 's%~=++VElnm rj%@1_Ҧ4dqFlWug^{~bBǍw=&mn`?#Zom=3'`zYre+*cr#^;˓$\^@hmO M_X5*c$qQ6guM VR̉[isx MhG/N1=6$YGL /zG5]Exټ$\>5cα'鯳oUo@7)O;%us4'3\H%<(MU6Ph(F1rUm'123$ 8"Pu5"%V'=0x\KzX?(Zөi}?4{-d?]]OT-|SkKS FEK"Vԇ ^$L rFST0q zY@UZV ;t3 S=sl0<U}}$)[($apAk!Dx ʄU ,z4@O1`p ɚS5R= 3'Y=9J tne22%i|7aw|KZ1q{aH18&"!S 3_ 1_]H_zT-c} qH` DLZ7 â6L7PmQ73A?bg,>9i{;$rdW:.Q% $aP B"O|j }*p[c(5׬H}^!Qc;>7wuWOض'h +KbL QRcR\ N8}'!F8=ly7麯6ćf K(Zؘ*zl(M+.,U۝I" )M~4AšO {0w)<1uh{W}込Uk+ NxU`l7'yI1ET~P@[WݵQj̓ȯ`P`'rUfY+( PĆyU +>ݮ!dq;Dޯe:=9͓TW@'N TpX½&CW[.;zja~R~ƻJGάNT'za9 9fVFМ#SR5Zޚc Vd2\\=!8A3NɽiB4fhj,z2SGkƒbh"+-u{!W~fHl/#p@&,X?*Y6_|'lrx(Vw ;'XAM}+GN $1?cLOMbsWŏkHQzڒCqTg<=^?2Un:W2,<$C}l*U~X̜`LF,0^5FrHъ\?罉c~S&n DlAEe?m†#d4}0szBvaxE=~$a"rDG%A@"tʏ~kN Q#bZ .MΞ+`{$\Dx5:ҳӥЋL_PM郦)ȋ^\$H3lYxAJ+++3˙5!-ݓTư*-3҄|Օ}TA"`DD[%y;>}fNt2b+,hMxks1""J R?4Io0oNr)GQud- GQj%ԖġNb( : A*}'.mPmO3l`(Ci"S0-,d_ҷjU +d*5Y`^*I +BLrX~?JoLG@hۉQjw e9);}7-,rla:2[k]B%&YD-YPATrg?i@wVNJ >ne~#|/6-J@صjD_BrwEbFN)Y1?TAKֻ(FT6ٹH;f?E:`u7lY%lvTZ׭nߔm:.XrgR0̸ZS=LJ+W3&8c$>LzcL |CzrC#W AQz0nҫ>/8G/'Ѿvd9+3W(,:B7O~:1Txڴ()hgWnimh9ZEX>ǮVVٓ0wc+|ി55R"QWί9ӐL*mלsJ^bT 0rGU?`:|1ҳxYCCCqb) xPQcN5HWf)_l w5mq/Hk!,$:1'QYcGfCw6!\,9)$$\"سm<._ @kEx'WqjCi.+NԖr]+c6jgk*: O(=c&wR{>/Yvr=o=:~.6ӄm[!b b/1-lxZOI}oꀴv#JL[l؊RSG@l1uYHOҵ:7 o>ުiл~_Y=HAc4;I䘎*pdߙܔ$E"iqȹqJ{vr ڨѳQE$K<當*䫽4%KL n7L[jЇ|Č`ϾX)&a6#$ҺU]( n6F i Үr8_h3 ʢx;NAЧ<ɊolBXyU]Hy+OVa4[yk{fYg \jbuJa[O}\+%kg? {]sgb {q|F{s:IϷs37 u'o~:?w :|pA;&ƸYCTKUZ٫* !͐5<_~fD501p}3lB߀%ϊOs"{R?8:s/Mt\qRlƌIq'oh͊eIr5\+?<tML.&F8!ڠB243 9 f3SKYvXȑI#6/(bz&jqҐy`b _)#"΂2/XvcFPu5\e do8(_. pX,}/s:|,&ſ~BP&G ("6 N YtgY_|yc m.Wg&Eq\pEМ廣'QNf=)xûgdž]i_LCr)0v1dsBp[iH9t6U#2Gp'șdΞ E[`C^j!ӧ -EѣE6fZt qhK)=6&aRSd sL_ 3bfl*jƨ!9 42#Bc)l8k<*rZAceM12zr3c@#F&,XyC}M ]H.jkY= `)O|*6;Nè"GQn xD"_-aZEd*t,ʄINzlNsps@0Y->ip5ǨWU4I 躁"'ТY ca{r-TjiYx ߹ (Kb-Jimum2"Ґ[oCz܃tE3qRքkc9f? U.bNq#푓Iki(@vLxoHQN*#nU! .ͪa a99P҅ ؽkbCt򣍙;3{F1XnevzMt\kEs (}t̵kdc]IeӭݻP)ThR{+]zz]pCgx.Igq\~ip ulF;_1&JIڰ,1uՠ$W({u72X/Ʋsnzͺ-1$lbXCɫ \X _=~ u lBcv<)4s?ih~~>Ms=Z*/ܳiaCʉA59߬/i>zݯA2fmȁ[ G*i԰gp9sߎCJ3XՖ /qRS tRX΍)2Svvv1Q&sao}Gsg'^[|GbUy"jώ(S1 Vm_: 9+8kn!u_Ѯ%}+ɌLC"k\[N3)Vxزy^ K+<إc't rzh@_{o +fk^22Mܨǟ\+Ja/[pK- .qbFp^)UP=.:4cS:T <^:61bߪqήwZcT#i8U/9m^_~:X3b ek~C1F@-r`@iʾSyӅλ"hdv@qD\(حMw]Que)E@cͯ_C4%^;đr)G>tk:5!dFRQC̤#[Z\MCM(+/̦pT#VaGD#b%~uZ\L`۲4Pݵ>d[~NBX ;:1h0Kn&Gv>l93|\r/1U'! M7{9yU>0}X!j[I/^8qow:GMЖvl+tSȧPX]fcNN O@],h^/FEGqړ#e2R? _MIpcݜbJ8swb:а]aj,,Q~v* ^RGD›BopBw { u}g9g{,J7UM次qCC]g' IGX-c <}śM$﫪c'6溲L: \qS7{̧՜Խ"(.2ycuJK"Y f6Y]t90Ӎ1Qr<^H5&&a0~7 "* -l,F,I0~sWU}em'}l,jpu]!_k=ϊucgkVaL<)BN›UX;/K>N )2= ǜհ@Y FcE[6 X (6X4W sr;/0ǜ#S18^za5Y*M^3;ig)$̭4{0%eC#%a0lx>Y4z*r!/v(9^?(R1~Kac~Qz?Iv(=>R:&ַ$@)J|;`984fc 3%)/]* uN ?@+BYTυ܁_?6}%,=wIOeedG4>XVc'/OQ3P >8>4}.r6SlYp ĕi1G=Ӵ'-'&/{GZ`0e=ӢcS&GdLޜ}WP1_LB ?-a-kTb_k?%3e徤<<!V> uԂHN2/;ɘ!8r)|~SVk> yfuf)t*w#wG(l}ݠQϗo?/Q rt߉Kcb:-ysҽ1ҵ#nB¨;3e6ֶG ˧PS6LD@Jt+Nq/saQA55~|㑊 t^z5}u Hd*Re9W`GnW}{ =3*+>_K7sx >I(R*bq,Jn>N$rEbE (*rrhQ0堕=U>ibGY23C붰2hl&rdcI'Ix v5IK\`mK>p$;\^JRP3%ǜ8Rw_gy ~Iyx?w5e6 5{~E^XF_@`,KxB\fwG:9ʟs W b6N KqoV zz>*~V],箝7?7ҟAʼdsBlG kOa$ $s(i{5sCL9P*1[|DCWQ+yT̗7 0رVG(Y_5fw}|]:\&/k6P2=xL%Bi3BMeLzZO<\n/(dGZT Z6s6|h-AQX|eZ|&[Csr0+K5]%Ǿ\(@k@OB&;a-lH?+ gO_} lUרS_nLi7Ul߿4F# tK+CY RW;:aG{dKIn.6bbڸ7? ʺe' U݇fi6g*}w7h6#c?zJu1QF~}_}RiB?{T9̂6J-N6vCH$mGQK\qe2P/B~mɎvVL`5˒Nޜe@ԍ6g w{&|W*ޔ{JkO75;']D}c|z1C5[Txq¨%$q$ʌ"3IL5ՍlɃb',*ABz׿~|_^s1 t)8 c99tI[.*7׍2brOrl,G2AC[1_Z:H$'mLfR~JE;R} fx_ܝF_ Ȉ*opG@I zO1LpRM4GFeK• z{yٳfFr!UBdc.= 9Q,>Z4..Sl'}P{>7>o4;tح̻Hyk,y/5v4 }w/Q}fVgs4ھh0e?VС9p?< sc:p)c LqPP/|a|:U+Z2ӯrdIMl:ӈVuUgNX4κQQcCi?ޠlK]1b1SaX%7 ETMG6n%g&zep3=뉈^sedt>Sb"ڬTu3B i9u~h`iPsVzCj?Yacw2(r82.IWALs̘lf;JӟҰFI$G?!I-)g4!zز/+@VB] {Ny֐g{whU49A؋*kEVoRvU[xM`;/(C?9ne7۟S>ޱƎ˼տ,FY^UX݂Sþ@h(g8dn|ʆd{d_ALTip:@"CoFid1ql~sJj`WVVh>q5$d[7 V M" ?DVyA ˽f}Vc$*;v. #Jposa__rþ*@ڝF^Y UkjdyuL^W͕gJTf$ˁ"󳉊ETAsFA%If +I%<{d5rdGVznfEݗYZ"PI٢Ya;_|A XB"XPE{ʁ6O%$I92vk^UEpMK=}/C/t}owv*5G%yc'$k y] ]CWSCR+gVƴ$Owo"%G`C1a˸Ǚ-3bkA]! Cn]Rc ח~O̗_҉21tMe)bC^Ldy|W>?[Zʊs=Jgj4Y0E$VХ Vd :^3'cIփc1fΓ< ,&İd+Hևy3=hy]4&|ȵ"V5$|٘ghAl'%!j 3RJy3mZT[ctɪs)XB4,73{نio9 ~^f(>='^=-A`S)"O$Cd4鷔`m,HZA3Ӥj)\"7Qƞظ/|koPh\G]v Ҧxov%r6[r WzS0/NQf; uIZ 4ԝbºۇfj>&& \$ݟ4$II`-~HURrSkkrEVj&H1hwG[qC43Ȼ#%sabg(wiS [ϒ\>*y"ԯyGu9DC_َH`(rzz ,7B,s\ M:Qqb~0{H545kJnpz2!6acTלVkCՓkJ(I3w J#ںzفj._9+=lX/8/BgNhJ 1XgTKO҂k N:Ȝ#R;]Clv" m&׿f޿=\c&^ 44F'9h&X܁_zhZ-Պ1lfQTb\@7vϧYhyEU0Sg;~0E(wl%M*O1E9KQRt#K b $EOMe1=ܺePO*n:wP6G;ªY̩/I*n- UCX>Kuoփ1ʊ ;q˭EVu{;:z.''*vMKG-_*)CMzՌ*OA{BxxEV{xYP9)`vhZm_ 9VnY"@jsнzqˮ)r_ `F׈OeWYʚm^͠RTaE!yn(Lʏ=*9SA]ܤ٨嶦呍C zfaۚ(V x@N>ޥX9Q*_r\ }=^XS@cyB晴 XAuۅsjOmZvXGTػc}~~]lo쎟.yu'AR}Mcc(msx;tSpү LLX̆_%";b{Vы5~ 0- (& , 4"F 9|aANbGqL7wa=GHzȺusbH>P`{2Ε&tl{ǜc&~-tnC2Aa/:s9!s@ J n%+^._}^4i9iAM\#{_k0^#%uVaJSiZ~,ϑ < lK[ˌ"ov12G[sJe|e9FYk-l=_ik%dD8eŒ[K40?y'/+sca0&,-Z] QxE[lKP$"bITWU p ё;;bNt24 dȲ {i]^U7pPv9~W Op ?nX{+J57]bG0BZ =wL5Pv][Vcbˏaj)XBEJħkUjxC5MdMQ68g&Ȟ׮g\d__ 2%΂ݞ"ZpC3KishuT D̸9qw!Lэd鷑FݲW; 6`W7/,_btS3:-tÈgKe'.dY]wA~jc\XڝE9>Qyߵ sOaH{$7_ ;45crkzkffc+糚f43l6rwQ}aXW#?2)f#+fq=;+.> kd/:ېԾzYIbab/Wg;ͩa@ 㔆ep`LCgD iACf<~tO^IZ 퐌bHfA֜R#ٯ2K[s$^!juNPπu䪻]^_6J#0ۀ{X]LsbQC 1f<X3%五XT'{mڀElC?Q OUH_X9QrB6pK뙽G*BLZrEd{Η<*_*!ݐYg(<z\mCEUTSRULNO )UKQl3p&1"WfB~ Mr6Wv@ aL I˹ZY9oG=ǣ._i{iIC!`(mp Aj%L MXH8)}A3Q'ڃ |r6JaLmtǬ --+ǶI=_N' QS]cj^}sV} {xdB(`Ǣ!ϟEG %]봹|@ .EdYjv% Z%1kt%S$#-^ѱgsqFz95Ϯ^rm]_.Afk$a?E0~</BM!h>9ϋ@M%jAeZ(Xj 2UB{|QW=˅X͒3u . FחI#~}9|F0 b31&a _ޮ?aӒgEiBY 6s=N^_v`<'.O 5 F̾c~|>E}^03w7k#lژsdCM)r %t Ls1213U(]nVyXe/ arm;c|P5)JO mI"C,URbpw_PXp l=^d=OܴAAbf ;]#z>J8cfo%w-?i$˛p َ#XӾ 1lVOyW@,-ͶrADXpPuyr|Q9KxP?O]"4'B^cicItV$ٶ@H+y+P=X9!"+xeP1f6|R]R2gD9Lɯzz9mV'<:#%Q{/WbG:)]e%=*Rǘ)6S M 6neT~j^43V~je\\oԎ6m9O-_L0`t)%(hep?Ն^B\˜|ۘ@K #4XK{S:uKР,~/% 'a(rgi[uP}GI|V6WcZ-XxJE,$ EKim X?{9Vp@;,؟G+l.MUQ)t,]MN@3>rn)d 3f5i?~BGolJb² )n-vԁ erO{(UB49Dܾ6Y**~vut;4A_N償W?҆j27epGe)E U!bgXstR4V%DnpK_9Γ4 BFAdbΏm"5Ã״ ^$QT{B!ZמtHr~:{ `I \rCS6Z-ȾFQ/{z̿7pyDwXQ eÑ)Ԙ69gcuf7J /郧cfl#}16/q"ee]# &e{h116h`*.Z+߬wSK+L_ |L xf `t46U LOf$0!IcHp)N_z?T!"Qvk3ȠE#- eD#"8cԞqkQj }Xm 2Zpᄀ^{L,l 7R[Hp98i)ÕxE Z_޲yT5$[bjI92 nZLOi'ןֶ'2"'V@nt,5DքQ#(9KZ7ό.yhw<!b?s;C_;м&УVeq5M šSǜ~?g:Fc35t>HOv4;Ogϑ'?9{KA:,-R^V- +qOSf|u9|-)M2Sm_Zt7& R'hdX=Fq%V$X0LFݎ*E~$~'iuhvJQۋ}HO65 MjkՊnTn Oag~cR8k̉טc|}״9m1i 1Edq=arJB53(Ăm <R.aԦ3BzrSFarՖj 儁M %C.v|$( ]Pj(pòp0Q;+["=2hij:_@iYk/ȶW_"EO+Ύ{;Nu#V\CQ9?y"?ŒddE@X\$G!aA1$KL-0-t"\ڗd*R}=+N]eNCQ;F%΀s0e︎umUnΚC]NɷRkSX_6=};f,L4UV0Hl2?{\wy+>v&zܘɆIT]4ԕqr#2na҄eUհM~Ȝ6r)E0Wig2,Zm${{m_)=9롆=w(Ĺ=tu7DR>kw}~mqm?쌒$kmgҊ%-V~=a (~*yZaA[_sa}ei%?x cvSz`-_sܛEqYUuG3Q+}h-a3R0rg#wOR9@$+v<Jw951__끇 i`nw Y46^p~c}Q'Nc@Gqd>{$I+Tꞕ+;ӕJfYSfTsd}^G'"d+Hp7`PEe&쯊7v).}~|b%"Vmfd= &vk_c0 嶨,2Չ%=,=0::̬JveѱqR_UvT*zzifߣ[zB JhJgKt2mcyDt7E#@CdaBZFdžQ ld0V$6` ]3"0{*QڧT ))0LcU[q YiaR?wsDX{(]2X!ljgv[=E R##zP0}^k90vV7֓-:w 7{ULຩsNߏoTC|hhF;w\`zCA_e6E̤ӋT~}sdϪHKvE+Vzź=([Zz-kfE׿zko osYUjrce6oER4/tjtZ t' "3 KNAIEvDe46feKZ ?57d˫tB~O oJ7yU~Ū"@\@-UsX*wB ̊QG?G^[\32yFH M"haFԙGJ s+mk~Wm| {P9kBrjij.!m*+U@&/)6㶚'm1q,pzJ{E4RCLgdz٫U bu]k]k]/ƺ#M:74|(ɻ} X:BzQX}]dIQ-یKd'Io1~┡y糚v30YO46O> p.ƪ)z4͗Q{_Rf!>\5y>RE?Y|?& r_a3iz:8^)rvLbp?)3ܟ4@v1V@v wĴ{@#TYГn#Qȉ>b U* r34[e8W'e RlӔZT'MzВ 0j>[盌p3g]*ěT\2"_qXk.]=Q#NLE&KF{]2i\W3Fd(+Glh{KJe2η'$Oxhm5fg£fZr~D<^^ٷ1'Q6o^LѦǫH6ZW ~Z\z-sUg]JĐ=@$֮B_X,+3>?Q??0ްs0Ə}:>כ["VRw0}@jzNO=R1Y_WoݘuyEGy'4z_g/yZhP~I}{xO P KJי˅>/}a;c9W~+uJHT#bw~kʷm( E%DB*'ojcB m ,m}ULUG= O+=PY I=  3nl;vbP BmT9NMfPkpFOB`Zru0l@O9a1C8fYkO|b!J1 TK/W o wq~1^1Ph]A)w|7sٯnr9?.p?74ΓNyMT0^Q7?8Z4*>y(XÙt}gcfJ*wB`U~N ^tG IGZ`axYܩ*2HTُR=QqWd7f W[2L*vUixbǁ+ )YQ_EcG1Xca HSUc4sHa܏Hʌxӓy}rԭ}~Mcڌjb}_' 宵VІqZ=D=:|߉˭e0}6 ;$ֲɥˬaQ !rݧ3?*αh XĶmeyD)&bx?9.M?LkfHú.Ϯy;%U7̯Pk*O,滳{x55Y/Z~_\uX7 92 .0\-,ZOܕڻ*uE,R{GpRek;1a}V;;"HC*K{o+,5̮q:NP,Pc WZMSZSUZ68k&cqE VTX 3ϷUv3Ƿ>?)a>L&#<x뀕c,0*wi#NnQ.DUÎ{ x^ KXlߺS8Go2t#K64E̿6bMd:3#T7w]uKLLFT/G`#j#SBVTl bC Fw }yvƩ<Ӈº@k@S]la`[cW:Oq!JA"kV$m35I8`bF,f݋;Lfq% J~.pk 7MŐˑ0`"F 1lLF ^.c>St-KZ$?!E3,&lfZm- r>5i:ĠYƵ\_jUA QfYZD.T@[DCک,YW"M!;/sptyJ~h:z9j[?5` ^bV"w+.H j/if|'dR KiB>3÷3v5Ǖ6ZJqdPi>L޺/}c^$SpS6~gS$=rWIuk3d:,3 *[LHƏ _z~;+q",w]׿^iOMjcI>I 6+%vomNϟTb|k# ĺZ|]L b{T޿Sbf^{4.1kxbKu$ƍ#Sͅt"zT [Կ6M6/_TG4i(w7I\ZwN$l}w{=%LcO_?/@23]M=Z)7DLM:b:KjFc j14-ugH }{AOsʝwwֺC1Ryc"`X9#W])ÚT"fpGLx߯[VƙЉ֖t{p],RfYVm!N}HzL7Vϯ+(YB;7r7#hbk^nGf,255#!HE,|+%Hot}gk^ ;mCĐOo<=x`Uq.`ae߳.w(sjcXcJ5mwN$vi^%tdhضnu9xXRͼyv* Bq'--J01 pFKj׍m1<ëOPN>gjTHg/,:GJ\[B>~.4?M}=NUWMEP*v:,yWS9*-B>Tu}#yWWOE t( ~[GnwF~=NcbXgm:IBΘZ.i0%1kbŊ EF\/cEnbKU174U+Udzl)wPPi+.7wq Sb]RTmłEsa!kϒ> F?F<'gBx=dD&”\b 4|Pe F=OseڞE̜L!۶ jv]W,U|3dfbLnLd7`p[? ~&6FN|G4Do<7dH"̓ ,v]]xf/o5y?uGwW>MAu_<>@>ܿ;f}\!=_m|ژb)'iQ50ɝ9˕yFc3+"NŬsr*e7/OkÙ_}+ߵ d%0͏læIֽM5o.JbZrc]|lss܁da*H9 -V: @m~:؞sm`jX+RAj]{ſֺS7o͊GMپ}-97>{Nw%DZj{uhxS&s'bE\k}1@V!O;>NhC 5?{cf1ڗ.diqr~`?}P@ݟj4KoHY(_^_R3RU3oX jUL,03i|/rmD|ǸT+fV y|87a[\w HRҲ~RQD jHGi gv,ˣeh)pOA8r +sۆ 6BQU^# E$^? ͞r?+(]7\ 0HMPC`~OGnùǾǻ` UPOq|$^BbhՂ&.wNffDF瓹w@=i#8:LjP[ JUTmB} "*=Dv5di6M4 ZDޑ9 o}.,zBNbEOYN^#/!TeK[et]{̂{8$ϡpoϯ,rSgp_󰉆DE~9;.:YdI[*\ 8њ-&|HNW$.*ug RÃxvAUjoT\2@<ffK9@ AX=U$a,"Taw*uJ~NGʃjP-@*(`qֻw{5Giȏ͡HsX}x}1 {1ɂ<4$^Nù9gYфC @h-%A~uJfjkUf A9%IfSs7@jħ{nJ\|8z' v)TyHvB*+^V]kZ=\1@;w|͟Qս4[Yyl9&XҎ"&@nASN{i`oT{ yLS782n KWw.3{nh Mk{*`$?]U$r)$# w\@vSIG6"yߦ8'4/5RV(i5yoŧLu8\x "I9pVTj4t)h[>ٜI&ֲ͵8Q´9ww>MX"WD2bт S8tn0$O'/< E'AygˣtPS-!5}::I1As=[4Ҹtu.$Iz@`q +H+z9-X@(w-c7rVfJi{Z{SEw6fxz'}f`hX=kQ2 A1P;RBRl{ﵓ0 M1OCe vfmOG:#?>*}vp}~Gф͔77 h'mΝBx<͸T RF ӥhYp1)?YϼTҿ |c\̲:-rb\6*Rr[ 8ܖ6s8nY`ח @Fx~DNgHE0@"SS#pw|iodj]wtXo7*3EX,kzGUXzGq/Ó PsV>rj{Sn*F:"t1JiBJ!i׽FξDN9+IGFSgAbFkN%*63`<3>cC[ !qwFʔ9y ;h[y6$jGջ2:V跍2!Ԃ#~FF϶C"@VutV,kKa6@CUu@S}{Ug-KdGs  TUl pq HeqLY|L$.P,4ˠ)4i<{~m?hS;>YNj {RWEʞf8o}Eɰ\S%㌛qi}g8S9oJWh>3YF9(1I!hCs]juޕʩ;[eٷmhUo?+ZJIwvᥲ2M6Gu>tCaoPWc4TV+DaySP;T( ԗlxnyi-pMEʫ^{ꚮEvrSpC`aj?p75s'7\mypE!<ڳZ(\{+q}](aaa˅KUı\ bI{9?ψ3hS~A pȔ/K^B ej]U қqu5_beUFcξװBu iJ%!pQߨ[5"Yfyր׀JkfQX_˳B~?^A%ய-[P1AWet[+Xn2/ $xzDOm Y2E=|Qx^l"rw&z<8?8A)ȋ_0E-mGoS7ChG^.FL2қ:Eјة{ +8ا a>j+e [[xOC@z{H5xA ;Q[U;˼ُKbM//46mhtEJ2ܥTMZ5%,EƠ!@bd`"a;;xbevrؽLqfnwrkcx?zi84 loB f )8aƺ0Tg{X(tIîNSDz-X+~IOEY W0;'*Ioc^g' a;G>3:H<8'hD#x4狤eWZPb08VPA!EOʍڰoD+_di33cLVj4UU;M2}PviqlQ,m/YUkb+˩=AMSq60sÎ^|brK+"){Sఎ=C 96bSɡ fY`[6'YOg޿z1Į]wif22>1/׏{>N1<[{x"wd]sA<$f::5d./ޯ_KZ;6]1oR笖%kiQ(?.' S!Qڰуu/a,~#o^UlOBt3y/+jyd)>R9ӃF,"`fƁ/`SR/J/1A;o=uqoDbjwU {+:EzVkZfJ)ź川2$̰hL؋,PtkA *T8AZCM˺|#D#eNT061N/ [8)Br5Ccx/V7t5 PKJaH5 SҾNteV c1$lY:kYMw~nv#4 |C {Uߕک2q$b{1n|3J8'oe5ҽwͪ|/}7o-*'Ckc$kolOH5ng \ 59^Y_Iړ$.\lR[|oo$mw?n{qhPS9dsըgRfg3tALcMA`I;pH+Tynfs?`ޞ#$>Ց@7Sx=x?Cklם>vZ\y?qЇ  mN򘬫Iz0Uп]]@Q$a`͛i3mo~Qb`7iuZ`$vrv.q}"DB,[T_r1HhjkfX k8-{tq-`IE 9 Tw-r9w[3Sߚzّ0LT j,$Qu ]N=cL> 7o GAK!FOa*ve3A$7iG1lq]yNŜ%y\+-l!7$ Lkc٤&(s6&8jІNAcbd%K*`(!w:Jq*hzY@=#X-HCDH2j 4ی}Mfzʻ}3Ro(;KV&?=4f= 9P%A}GNugL(3|Z8']>$DVk ^>@2.7~r "KHUiUjDG??_Q9щv~=bǏP(Bb4< ^r#)D\*pMջDw}dq|Ǵo oq&$p;'IXE4%iR6RxFG "/Mq 2v¥zX'54h^TYnp16_=sI}OgNLC0h79 '@"s:`#B0)UJ5Q l_RTusw0[q-2b=c'ަGs5钂ѝ2eLj8 }=*9H,77mةw;]PփYlcSֳސKcdQU7uFw!IAJ(m4 %-[`UreT_#o^s-13$ͦm$  5yD*g)^{GєBZ$&w^f8$c 4scqAHKh" .Vi]/kr$CdްwAE !ߝPR!R Vwk Kg]m wϙ9ړF v}}؏c2b5_;LlYk4;V|\V+Zע\4pyk]wfn=G\nE0F޿P\{~7[ L*Iz`iS_Y'nݔP!3uggq6PFH6wܔ.ĺXVPPX+XIU<^>hI ˞6.8yW-<_«ϙ ;/xW!NT Xv'!.vg' ơWrpu=O<ފW]|^k-hW7vřytRD Y ?Y?J0lT':Oy=nx5RJPnj[ ^U Z! S;JO 0!2]a*fO==7z*/F 2B\{φG/ [L,ȥXLFdE;%$FC@5sd IѼoIv8aX{SSHl>ylQǶ$'% gvy*Pm(tM^2^Q)ƅssk-;#jȊC|jP}}nɶh:j&i=:R1""dFy sM[ J% +v{ڰ;zv3ROH@<:Ž%"K=Eh0L (q)nD4b"Ҋ/ M^Xyw4y׈{`QQ&ݲ>55r\Q3 ڶ#eE%1n>`0{e8qx>MjR;[NfD]Llʲi` (`.lċ(m'C@CR{IQ?Lop\Ge@1r.zVsB?$.7 镀{o@zr_1!PX_@j-3Z|⌔qy$Ưu&[L8zb vVϥ8B#_7}EFmm.䡉P`McXfÆ[@yϵn%0V 0h 4lCXf\ Iz"0H9mwCd;xDW^"Tqʬd\%)I%K="m!3y߄e'%T!_A<8& $xU`gL#xs.z= rbUA\lя֟hht7Ѯ+?*'7ٸ>&ӝgS?rO4#pN(ZM~3ݓWȲ""“ǫ]ViF [@o7` Q ~s ij4 VdK3TO׼f6]_lMz@C2{M>C&j ,];=5=ޟ8MlMҗjKB{J '†=iY]Pr}vHmؚ6GZ' GdTuCwn{ih ~]׵VpEpӥo򚈶r~7@d8 Q$>^wYǕ{+rͥxAB32. О!Qp&8NniŨYx[w<Wg<|76uW0Tn.{sBtWW: u RL>}KV61~ӄRlp}reFI}զ^ D]ڶ/no'~wy\.F{:}&r5o 5~hEmdx@*b]x޿2ߕ@9*zʃ"vz(1xu7Tyvҫw6c>ဟΏ`irȝZ[əv6c`63>qfU4з,B>À>P%D+zL!#=3Oy4-[z Oyf}0TidJ%P*C"Hqv<Hapʴ7ju'A3]VKuJǠ@k= AAtsr!F mgcgDtU1df/՞) 8^sXj&L;NJdg؏].bH`TbFRyQe'D"Z|M~ky^)?xv-AQizBx߿&?8)HA}ϪG:깔P ۅmv^ˏĶFpψxCIdVO:Ntf>B#. 涇w6)-|K,-]{_\t8*%XÝ,STsiAVDs̃IODjG-cyqTK,ݝbGg%xMr}XWCpoL̓?9~D͒=I Fvs̟]VF!BfEu|_qu".IvSR'vmp dմVPfoUX/Gԁtʜ5|5֞rVe1> OSГtviPD3LX:߯XP2`$ uE=x0]F\XXjmU!B,^ Kxyp;jTA)4OqF/-{T`[X\߿o_ ߿=x:p-pqW1~soUMO|r`|$Tz"'*5<۵&^u߹)a'7QP>e/K>$0hwUEW9. +Y epq- Ysf?&FL6o`:2V}UvξjMZ*2zZN>{;*Sps1RX-R!݊V;F+D"*G w8ZPp RFYCAՍK3#cbğz(:E&T,3[K UbL,* i1ٳPD py$>o:ctjc%vlNLv#lyl77Y.mqg;K-!{z {"p#>E[XOKc*U Htc/Bܪ  ^LX+ԛ~b G~S1EMfrwd՞~ո +bUnƈu& !N}h|hfB[Zi}l@/ =cz@5"ua]A bB(@T_(i\;495]<7aa}o7ן8Ed7{|Yפ:oɥ_1=$H͕̫p!I]p]_(|k&6>_z~`S4P>yƏO}6Y6kL}>#o;f{ݎ=sWa۬>bno93Ȅ2R'R3hخ儒j˿SS,+wI=BGZ_SWؗA)z֚K6CZ#6XTg*Duۆ#V".[^6u@im4І()F4Ԅ~ R>ϡP%cn! T h~!iJܿ~!u]~z]B:"@| ~%*sgz}_ԙ_I{^*Q`Z׎baq&Lm'4 `b'aݗ[ȫ_vjdu\F,;@Xkbıd_.Ata\P]MȮr=J#TݎڀG+$+tAwǙޢq4!bt<2od fqN0Λn1GO.#<1ߔR>~M]$88 in 3}1`uVgct['P<8Ch?29E?Iz;>"Šx]\ b⺨"+ >tCx q/kCl>ܣƬwк6LuNc+[fV twy!SJT.ZQZKhsٵ9YT;)k$3FS%lH |B~`,I:Wv4u9vHX@bgɞ"_Kl*+{{nmE;C#* ~`gd $L{ў3*N-t߿pm,cJ84KbrB`gI`h-x>hXA=vmXs鼦;< c m.v j͒fzW]*2ӀFnFN .-Y)1XHxgRIDI(*5#ѭΰ]b7Dr (⤨#l9_m3}Wgω52?9y};!-жhBmc!$xL~`LreZs~9rT>Ǥ"Lw?xҔvoV<++bͭ-Ja/2wh$D{ȂJP"& }8,\s = 0T=~y{uYyZKzsGW\+ԂyY;{f'fUw2-|cU-{orE[$aIK=9g^6%ت(Un SA U:w{zCm0׸|>79a+J_pOqsf,Ys{4 ?^R<G0+ @%;Oi1T7¯c-hb] sp/n"K,JߴV5=y;eWQH"9-5-S< >V,7\axӜy s[10,'Z=\>LwYC3qA3ǂ*7VnTFboL$  ΏI0܍~VMZ|_2D{W5j ; ~Q2dH+ydfDTDq_/6&pT y1z3zDC#c V`bbK*Be'NLq;&W(z(ذ#<75h 2IfQš1z8FwQZXeogܰcZ5l4֯\:zm1hfR==ͷD RͩD oҀ |vߕU6*cn }]XWlX.XQ vYS3kx*=!b HITm_IU:lmM+T^"nu؋!^#Vp]爌`S\.əaX\ݢp 7jUfG'uLI%ݿ&229d+HxV&zIS=" TqyԽӝCPipaq`c8Mݗ#|jcZ~뽗\;_J5gXҵ au*8^B+dV}8 Tɞ0c* cE`Tݚ1,<6-n.aȂ9}c=2V_ܭeXS1lΐ,_'}=)T!z2&Rf>X/DGܣdmpj:m7^qO*RS }LMmבYV5}T}UzcF0".7!x^qYmAұyV5gu]o׊uźW뵸aMGx.GVߌ?ڟhV8 Y=#|F9@S`=PzqŸ4LޝD:ǐ*x ['5Yf(nlͺ*6E9Ň9!UƵ'hORj30,2ֺmhO^PCL`.nLgqej3"zT_Z= dkNuDf%׊N[R$ٗvS4@E鴘l&nU +7wTtj*֫˶#4GKջ%cސA^ZB6C\@1RgUJߜ=sL08QSPR A&|K߀e6Ы;bP3*qJT8u28bDÚbkC v?"V"rSۍխ\B2CWU{Aj5^u*8,4?{O2"ʄv7;0Nmx>["5W+h;[.Vf.cS&/\jX?3x!b%+[mY`8V=WZIZz1/@QG7ԞQC9VQU}O Sz7yN>pἺIKe~z \>h4Sq lD B׫md *,U~)^UQ v'Uv.9xGDe_}wOζ:FO9O(-JJB VmmM#oֳ0e~G?$Ҹqi􏪕e#t x۰9L]֖="vq< 2p<пq}υBĐ|EzٞFOqzp ~=*OKg)V{,^D?6jxhExVMCof>zg2+b|RQWr&z#~85G`{$WYe?j>~=o+6R TdY [݌sA+@$}VZŻQIM.v*v:+M(I樯" a-Zs2aptJ՜\uyiG`@$N bV"΍KjqlZp-W[+xo&DJ-!}k{<|t@ 3!~(|1=QZ{;)؜dfxI^ ]d[Z, \Tn^Ŏb侮 \5)FD,#I,xNXdDj&١"N=h2qKbLb&Ү|g-,];7 (CE흚F\離 ː(ԎT92 \zT/tw eŪf[12cTŲ]ږz{uZ8v-Dyo D0$+X(iB) SK>o>R9>u)97s~H~V:uqsY2gg:0r=/W5&2+ ӓ5-FβJx7up%F\t#ޙՃ;zd X,TAA!D"׈4-&:1 Am<$7qO?`2t;qCevz=py)SꩣXo`K|B\=. ]8>&@B>u+ \<*R]Zd  ~0{V=EWgrmd>6̈́q7b?Љddq׭?zSI+ w#L99t>R菷XlΩ5V+*IjRqP}CA!~<aAi=2;XBw|Ydj:szF0QoB"bk!B;5UnjZNR5|hD[VΏx 0 Owk}YTf ,|\hC40":Ŀ9hTdFV ` YˣU(+V.kcڅ Vcd9F=3UƦ"IpW\-MTN/`iUiɦ{0NJ#E:A[.ɀ D'~u;u{8u:d.*>gB)Fߥ+s\7:+r9߹Uňuw㝍 s{z+vV%{fU#0pa9]\uR,VũMp ۹lN?o6kj.FڶV jzQSmLҌkiacBYT ^ L}8plD35өކme$#ո{,d)S1\5BpXLI j71fpPFwSKE ^8)t!!73y{" SRÆqcADw-]iu\C( o99 6:2KI$@7ުwn *02k'3ӂ7}uXb"P|תkkIbq JO'Os`X4rʜO3j]<ޠ8u2I.vq C[YՏx$1.8[dO~FxK:q"UUQ!W"܋ePjWSD) :לMhJDٔu+ dG^uHlTniALR@ 4U!< w$.bvP$?PS=; ui3 /wIg:ʑOiq86 B",l~zGpu|Wt@SŸo1O7 MupǧS=8?5=?b5dTwnkwKe֖rKtw喰jdFy|Y(ͿyޙH0IfKdfYHfoIO7]**zčH,s2[֐Z',%1{:gn z`s2|$NF$>mm :Ҍq PU7c>ezR*ҥM:3-Z H`)P~}L<V rȹN|xfdTz+G.a N:}~|D4ob.().m#x uI_P`DV&v*evVج9o}GG+@ԡ)ԜH`xä+=XDFCMYwp9s1L%MWb\2lr;]]O47rz~%pY`3v1(ŭog!:& w b(xtk^J34XΜg :yłxkb횺=mjma|_8Ȩ5=k6jEO+ֺ̳~iy$'sޖ~)ǢsˑiKNxo>*c߉ UJe~Ч*!Xn) Dd{;1C+Ж3v,J1G W S5vc*D |UD-c bCH^p[oTf2r+Z=~K Q lFtzy0&ƚSFS?bۡ;ԑܘ`0~z ][XEnw7M&~ v'PxIHy2iIIJ@ 0s q',}$(*(>ە䶣^;Vi} %2"[ eVQtUakw[sHuJ, 8읛жBKڂ߭/ bȨJSTr pzo*qyUHce/JEI>KT) _fH'hwk5k k>oGS|/9B_bd r 6g8{=M,x@ːX6n9tЛ$]dׁɓY=S'n+|^q|'RbA}>t0q;VFh2#h$(q~=<3qGq}6jNIE.xkX&937e Wz_q7|vrz_#feSu뺮X5O?ybt#>bf8qV !L0 S36l='"mAcNɩ6O<$& osw1.H߶ $lKߦ0LBLAiBZk Q65b JF:$T56*w_r%lZF [[uP{)'L5Q i,:j[܇@hY39xBJǎ/z@L>'T7$4?f ?*؁!FGo3^rHoMM&~"ޥv{xM[];Y|Uk-NRvC t <~9&V~;Il]UU7^öe<(T/N?x1!딏Xh^d '\R*-|b&l:[:wBGTZ8xs*HKzEg+g$b@}z:_^%UeU};eq[iTZkw!U DlF|}RGwU~9GGHwCc Q;ڶe6PRģzǮZW0߹VSJ.eΨ|STeOs]?3\g%1NDF6\!-]vr"Lnp 0zxB.; |,] =(5%k{<J %{iLzX[at;Bp7A\^SuY<O@ <4br::=-oS_ؘ0;0p슸Em➓bG},ΟI3{cBv^ ,N0 P?sthR})?pNRXrSA.L[ /uw~-%b!*uwɾr{uiNg-hM<"$("LzR! ¤~薉z0wշWkJYӢ>cilFZ#s}bM N ܿ,^byN{a";&s@3):`wTcv7$#wҊ& 6{fZq0=mC"ܟ~B9,NaD7a*}Ju9b@.\u*vg76q N ^qQ R=k3`VqW\B $ CkFvCg Cy0Nn섨&MAg*< ѽ+?yG9YsL,waF\?Ҋ쁅 =!oUm뫀K@T}Y*[ _J#:/%hP =L=C w0oz^kak˵zd넉?랻MG!?yN|u0֜&8 t ]>o}a+AzPF?%;85?6g&-RE`z [B]VJo仧 {tow[ n$F0?i Slz]xv5` ;4` Msrk]`]mR0+jɖO9j_jXeerR޵|BXd|{`H\{aR#H?qe8&zV~0 x g3lm H5Y ݦEΤokO4[euR!i>"ZkʿzM kܟ־s=sa!nKMi^RST1u`堻'Ag"5dУ l7no3b#dX_eQÎCz~#U\+JQ &6!$a,w:XԘ -.x*=У3fFnOz0/ސm["2ϕs>6σMwq'^ eqhGH-\eˣJqCM<ҐJY#j6-S~3SBd6[~k(%Kk -[ߪU ,гFE uY6pH/KOq( 1*ѳ`Th- IڐmwTn{IºeE0.ytra ݏ&S"=DP/->fZ~,!M%-IQ$kP,mv!0Mڜ:S"kQt=෰@ ӿUUb2s YCv?ՙ?EKb/lΫ>C1ÝQYK,JzުTnk$[~nAmT@[g%hQ=ô綤~&Qqi@J+]'7t]ڈS h<-:JX/Nk_'4HZfKiDS+"aT+$F4(*ZkDS JL;Id1m\?3M JK.MN/*]ЅZEfxLB HU"ѳ$pmL˓qaU mwwi˓ #8p>"fY,IG8̹0e4tY&jwX/u^ڐqNN%II · ܥFBI~{~QΆ7.z@ktGj7&ek<aԒsv7\*6dB˹zϞgTWϢ. :-xq覻1]hЄ7z$!bPiѡpQq`? X*MiT $ ~ͦ3e ?T:BHo/ت\A"~1 #3 De-Iֹ%nLL@8&ew#>(ݙ?`L4ށDhAi&B\O!L%=YBO yӨ.1O~d$vkZ׫CTγ,C%[\X* Pronlȯ5X]0:NƏиӜ"myjso+;ӻAv*{F56ߖz|Z%z:2jөᇴ{lj6XL}uocM?]_{1c>OOek5F]:=ْVI.I u}{Ϣ4Op@Y4`RL@ܻ^o<"G90T~7pǀ8]5K蓞XH"BUV&+II;< XVֵeXX"Jʪ m0k;-@v sR1"1w-~TX:| vuX{lIo7]WZw2߰ͅc΁TYͽ*.(X,DA^+Z5uêNo5.'JkTh&Wjv_1ՆG5 m7B2\DXvRT|}tO;OݦBfU*ή1 "3"R` >Z0s ~!xe5o)תZ)Nxs$`%-gkr*@\ ?`2@=MW؞eQkLJM .C ÉP}{A,N" U* !TIl()ZJѹPyȈg7"9ZߤFe`{ᣃ  \"` n%qm}wowP5@l=q*OsYzWsݺ.tvlr0bQ*T2\YFϬ9c ]Y9<2a#X{)d;sKt6uZ+b-Ɗx՛De0x= EӶ|๷?郅㏯gʹNxϥ, /yMeCOeG:MC4/r1ʍ4Dmh47(p߿kf#s n:jw>Dꁾ4nnaXK'6Iuu)#TVeiNٙ*^zkY5m%jqmd(:P{9MS)ol1*T;#Mݻ)xQM|, /*udw]I ֹwѰZmn~-q<̙)2{0P8c"EQ&A-sB,XRJ)l>lz8йา8Tqkd Z ۪ [\PC-lzA[MyXcj"P`ě;}vIaox},*) F7sÃ}E0BZ; 2EƊWUN@Oz<m(3|$ -кxE9bg,xRK:02{J&Qftep@2kfJm}tWWeFFpd(@% *'G0zJoyş4ERME2 euJuu>SԎ*el ߨv1\%8rHWE$Ba6W5(Jө m@y_ɣkf] Ǩ i C .1dP@&S#3aCuk'W،}D.ػm um YD@`5> rF4>O[AfN  Y]$TCmS::mݙVi*,w_LʝlV01}J*xQf)c9He+>lXJF8ҵ?w~쐏UG?~`];iYe??V)AeJ{;\ɲ/ H /Rx`sxrx-p9Ӈ 4+ˋjp|1.=P7z&FYfv4Pٗ1CPi3H4j|$6hqv%Xfni~qOXM kVGv,5j%R1^P%<i@BD E lQF[fT)RʗUY6]RU!aE,HQN%$+b}pixpip|7 <, 93ֹޏ|vQõF!{C6ރ%) 1Z4}o7C/À< [`|IvΪCioDzuO#ع:KWdAe\Gr8gAqF"1g1,CZ W8^-z!OFD+o s%[3iKnWJbԚj}ЖwVúsQv)$BzhK rlM?'?=R6?<`n_*&|ƫf*%2IfµO{d23# Vu# 0^1`1KT= /IJѰ(:vZ`,$zʨ> Jr3G}kJHn6;(Pe̡0.3i\Z xEkZ}X5x!Br#u|֪fa5qb6|lP} MaǭLZ,iɐTuV]~N_w"g!|)jÄjȗ;xfؙFE}"e9f%d{(+@X..feJ0?h 3%cj>~8!EE  #' `ڴ,C#cUI_p}0DwrD!Y/G em<ٺexT'`J[/|;,ֳLUm-1vkFΎO1@R'O㏐B? K¢뎲(ce @_O{aQ1{m&&dS>RDV3g{BMI~=6V Ĵulpes"ߺpٍ6a/6,%7c16 kY HΚsoIAH~ø. Z7(]ߣ}ػ=OLC zK-,:CLX+,\9+>+@.7^5mN{nZ6v`Y'|a6,66rBJGd=GC|0W.c<)οJ^Ds^M卍+B^ 1 {\H`2H>L1rz2x<GͲccG_Q鵯6խjDo/:|cY8SJr4Fkh<)[&`T3Cwl,sHzg|❒Q`rXs!:\N?f|YQ^IL"p#R0x%9*T=#ZglShEM+HW]UH` /栤1/gQ6:|=Пm!m]x)UvX&M왝,% E}1Aۂ'ѭY9{{me>3ǭwEM]DzZuM:aTC$,YUZ(i5`UgyPB,w1$ЍE4M0{OLKx\l=*#V@" /c Xi0%-E!_e q:nge,wL QVX̀N.?+vqBمEWz]K:v} A΄:Zu:qAKag rrVc .xh9 YD/?ÿe_/Ն% _ }ApJͩgݎVo`/Kp h, ]yV}8[s McQ9Z[*v 86t) 9JZcrP.x cGj%eҺ\1/.z&RapÀ/I'W {jgg҉?MO\Ԗ&>/E55O7SN\+f"$%!mn OGu/>f{Y'7?r)b)x<& a a䡕*Dٜ#g 3;hcֲ!-Qu D;z ĶgZ.Ӯ^q /^xCwq$%a<%C $aZ('& (!" +ˊ[;]h/;,ƐEōAiMnRΫ MmxSRKP7" pE[z}oҥ0I@̱lfAs=O5yn]")#gΧC*'#[ @1fܬVTzqIИ0)eS iJډvMh>ȚQbEGDNH J&d16/Szp]k%xXp!-b ˃JzSE ,s G3]gPnHb#H>CuCsK$Ӥ݅%⯌=6vN;F0lc <BN>XJZҺB-d6=\ՠi/|p+mpv[RQ {L=ZN0J[BCşb+ UJ*hcw+,tM/7HdR\X~[apSz ,Ngo+0?o@}Ē͜vr~-9;%y;M67uG]E>. ^r)[(,s3IT^/G X֬ێy(/˺6j*%\weh~OH l玎w'b;ug^6?g)g'3v_^^8Y{*a}&9LXY*Ei9QKG[r3o}UiE<HO:^Su8")UZ./ҶLrR"3`Y,.^.%ux{>=.H^j' ?E|7& ֳQ 0I)-`6NU8ldՔI\_\I 辠)7Q<ӘӝI 03n+L- zu-|Ý)稪XS i*sGW Άɺ ۳6i&R&U!2()74*S+Myb76F| x#s2Pzs6X*Z\|zrH\fLC?ztr&Drha,hGr0٤Xаs(ØΎyuc㞉VU1L$e6`žg,P5m{5;[RQ } 7m%)B{Dl6/k`Nif#,MrwoԻfi蠹KuTOk65"@:PLGez0{V,aP% e L^ߩ 6PCڕ0?ÄN&O3@g\$pfLՐ5ql݁GaY'V P,PۭPvնBke+APܙϪ٧EW.^K+[Y,P u^~۸3dN/_?ۯ}vj*Q3z^2Ȟ[y9)Ã1O~.e`fXn6xɏ*u0a7ͱsd.Bif@3cX6Ɯ,Oc ),4=ˌe_0&7[O:B~]٭qN`(5MZ/w,g_a%WC.\hMϣ睽 Wv$ͪIa43c^_fj-U} 3b#R{sX$geȂ9Xԓ(QCT1szҪ]LtD-v5f+4C~VS,/zGU(Vä tN]ȧB-YZ\5zcF<pyQ6+oI=QOg(Hz3Q. \6v7)-Eb2B[;Rm mUi;@d6oش-T[xMoLѼI dV8_H=3T6 X~ǫML{C"^3zei c9Dl&ݞјfƴlBI}/>9hQZ)WUDD=>r|)+fu:e7߅q""Y@Y}ݑUu :Œ;ywu{"l"3‘<<LU}zDj.iO$1)ט^CF_\61'm0(ڽ2 ;-%8.1b“ B DQr1z^sdao{s)ٚhAKëҞV -ͮHr1̪@1^ԷV8{,uK@DPcYdolZMʲFoպUjexM m8@EATD)p8c& ŐZdjQ/S8ILWζBd>H3L삭'23zmk0zfҀ-fۙowHfDDb(vyzo>Pt(GUV;^,%w+F3ED0jmkԑ8B\V`dC (% Ou;TD)UgZI>WC| pT e$ieoz ʝ6fzvܒeR "-k]AZ'un'=?-#Br0ٙLj#[~S28P~gUAeaM(^h}6e$nz= G7 'pp`84 Umx/MR=Mn:ح))' MW ݫ{4`yw蒝%_e.m <l`Nٜ dp4TbrwyMv(VR#rf#ŷjꘉwPE1 d/̓!.+ʝGjzrel {흓i>}b(7:{kfsaz=2AxWy/_6*̒E:4Ui+O/Ix?>__1$ج=v5P%WG xcQŬl,Pý;OVƑޗ=W.PujMMl+ e{S5`:1*۬/Lb-O 4lF8mQfAZJϏ -k">*tl(Q7 [9S/(_r0DW,qQ$fx qI >;#-{(:]IV[^OPnP?3<"/7N\j`۪[UN\e $ry2 @;;`̣0-KK) . 7I{þey,Bx h/#%3{͑b qNGApOEsItvw{t> RNJ}bHPb*%7kb5Vwʈ )IW&U}Z}X&KwGLDAMre]iRڪdcO}֎hjaVeJBye @(+hŮ1zt݊w {Ҝx0*44}Y#ٌ!L2vVC"l|s,ۉIyk]\lww|e֬NKZ1@麆jYABq3!y%?S̘S(UQ,JS7g VF#͖qzrLo!LՊn"/_iZ_[wuOl='T^33ؼ^Hu҄&o0rKx1oHi1a<y-:r;hf*."8SFږd2è? )B;#(ZBX(1'9Q@m){Ɲk5_E/z.Px$?K>Q[jԥܴ}:.R%I"H6)Q6˵= +yĭ1'+ ldUP_J9._`6Ɯ/+쒇`>?7ѹWD{xs(F]2ݍzc^&W%ĵS̗U]R@I:SS>\tF{b2`N`aYʲ;Q6|T7 [~X%X՚V}JKU_ZDŽ4l*  Rƒ14 mE).+[C/0wlK#KFPgP#fN)j-zJ̨QĠi o;}E0{mo_iYfZεSfZkE$ k>kflfe;w@AU RI.Xk p:!-tE5<[ڼ A r(lH@>-I[Q@b2!*OCu^G :=۫FQ hB6-aJixiR4:ڰ},[ښ0sEJ0REG!P)xpMRr7uDyQU`e6 3OT!ۀNb]N )E >n ȃ褌{H`)`}F^Gͧ׉%Oqv5?EBCc޾5ķZ*N])I1LM0,q/rČU^f~=!I{qL๱ϝ\-54i+sky-X:pv=UD4Fv,&*f GC͔PբS[5a3O6]촕S(=ml4;;"w p=v5܇;xx@>PnЏ.NNݪT+Ymn7_ʇ&KZsHtV t)cA6Fnʞ Jh^ iƫ{3"HYVwI-[|uAQ*sF[ԕ.ΐRsH#e`+ pMG0H&D+(IgC&YN܄kŧVm_Ͳ3]aVeQTGӪ+f$6]Q\l&%b>a =5r-3 Y&'k`iWbh^9u_K.wT;}"HnO>#E8C>Xc>V/<2B4újژM}̈́:=cgY7 {g&qul^{jfRYS7LF g@K9t[1)QzXOց}C*& iN͘U9Fs@<2ũ\J2z>:Ԭ2fYjβRT׭SNtLc,esl80uMn?~~}lTLypw_;M뷙)cy p͎| 79 tqx?|>2WHsX\]P4}#µ\pGQ+֊E i֓ d _a6NyqOHJMyBzK_#J-=45[)&{CDXbo#y?%,/(@/ QE` 1{_&)/}|^˩/+ê)JD a0LL83{ l=yKI9\dRzd\~鮻hŧ*#U%j ݡ>?oG{7gqL͉<~Q: Kw|}D…"VO?xNEx^hrSi?z@ `P+r0~m^>S(L YhMƏEݐ:T5q'Gd}p۲yE;hwp"{yHW[ I2Mht5NwVqdR#-n CĽizIfl Q4aI)cWQg*6f+Ƞ]{vEFA%]&d.$1" 'Np }&Z( .a3bTA䂀CsV^BN}O$jʖM[jGˀ -"^A '#-;2ZFURJqzt,-Ο> jz0y-K*IfXSFy7:?>+,q!-r`jXgI|b%KCK0RثqKq޴vw޲-n:`3C aN LwsZA18k4z}so"hjeK(҅*~9=ηa˩;I-#zy½y;#_5B=@p'chuEEblsLRRZYWSi Cz-s>Å`V;r UCHP8Ǵː S:˟'@#/0 ?">gT!TF% M|9JJ˛4N d]?jP;|e_0Wూͻ Wm*(pxr9V_fg#p)}\Ao dg{43? }ޫs?ǯ@h f.|k `NFiE/X >l;m|dVJ.[.e,=_nv7Q&.a-.Q iOEwoavf4cLװNH$Q4N"w_y'@1/0/[n@9zIǟu=Ysy~zǦ2%exTg{y/7Ϟ{[4SN5&VFDJQH9uԸ×ٖe<˩`zH*pCFb9ǘ{jA7ST%9 -;`]Aj*Ӎ(IZP?;$w[;KX7KXue+nGK^e}eUӝ I4ƈEI5%J7BMړ5Pu6GYgsq5Q[)Z/Z( ق@Q)@.ADQy1_8 /gGP>nl /`0^x|a=J,WEާ^56:=2 >w@bM&v>YWqn`aѳ4Ei c9HKtIke9zI̵=b}?r3__,Qh[]XO$MEhANnz{'V7[-'uV~,t⺖>wOADܵEOFmOXo=aw<IANrsbLHØ5(Xb8@hH 9i'  ,b]'*[57TEը6㥥gbcҴPwlNy|u).n%af$̏]s*=bӿ![iIwwHА6IB& ,2HټMڊ!ی;ϐok=hɓ j5a{jyij48wA"[k)(NWGTa&n.Ȕ_-5.!6%D˥N/Rzmnl#{E|\LB&0-6u{Xu(4<A%OxBkL“>{UI‡u2f,^Y÷^O;Qv/@}ga3zuSYUw 2g]}II/w9MaRX>isiG}i3Vj6HO )5!SZ0ة{:q b\YeC%"NK Ne6D)!ەW @(@~@5sS=o>/<bpn5G|=Bqt9( JqDN %u*H#i?[0* d.hߧ _2Ow[aR/ sdO1?@m?C_hk /y|"RH\ |E4ARÌ`N3d095_GM']ͽE}ѼԬB qݪ RB~ܭ1J6LAX+"HynzT!IxgğZ!s/swwm\]>CA>9/ӥ?Y]9sH(5)a!i>-PjHf0xzEEԎUWG壹ԜBJj( kK4ғO,^|C/bJÎ_;g-ёrPni[Q,:߮n\MB*a8H9!1h`BiPQZ! N=ϨTv; |:@ՐZ`4"ٰO-rԬWfth:F8Vz.78T=?s.C#Imr.]Hٜ]XGMlC0)4ꒈϗ |zj^G]8u``֯ F?U&0,M.L d5ux]^vܨgVߟO_):ϒPIH. mK Bjǰ@`>o^AÃre!]_g!컇c8bʮp,WNS! 1М`M|li}?˫uJQ҄ _'O]oS6(lԐ+ M^1 0'^/^Yc-G¸C.Y"ސa33YRS9j:zf.k}Ǽb.S]ի(ֲJe,R`,}VG DZ&uhpU6ӚFR0'Q[78t7^t"bOtur6*LE'dX\!D&UarDH\haK{oO歩6t6I=h,zyԝ*)Q4Z +F့Cj ͇WFC`ζR]=}Ásx#-ÔF' ɲ 6sW֤tk&g+HD59ދmoޝvM׬&FdP4ʼnJʿɶAVblF|ܒl@w"<@49łsY^QG׭"bXd}yYTmHh#Q)F"^C3۳S 'SwvwAUwIM9A4Yqn)v K. -r(}9UE0GaB|azB˜9Tj)1*=WT!y]hxeWI_=l}Fe s(.3_6QFEkjN!Scǖ? ͓&F'Muf0[_1H MM>Mi)q1LLFc;__%ɑet֓;O68O45p|v^YN"R]akJ@V9!BcEu^2l: \ ???wt`_Z/K 3kɕxE>A dGµp?kO^_PvIK9 c_N:>o=]W^qH.''G%yʛ2h2rlue}4s_5)lNicb@jE( Xtyױ%>Ý1+ A魹Qseky|MkzN-MWy(.Սe:;Az$kGO@#O{#fjC5t1baeT7lIqj/=jmf7ޟ.Ғ.,^Qyy=<6;ͷYGueN| z^4&f>TFmDOD@c h9LRZ6,E檨H!FuRYߩtqaJƳbЃn!!Eϫ@3a&vA ["$,n"K-!""gbm~Vx '(@[umQSty"ICR; ஛goD:`Nn6q^>о?!c=o'Mp9{/H;ISq FH)d%e0]c[@4Okκd=;\`/i / IPc[RKsV$ǴhV3eMt-J:agk9.Qi\د4& *;&ې~5SWmLI%”튜6-c,D!.P//W䰺 P*n}36-nC[ ~&~l`Z~`~%w"_A~duCF5^-f"QJ)ԺL}R3eooDk1BV? ͹x}ge@ʭ]†e-VLjE_z /%*`/[|NqDg?k]BXPx'E:ak_o?0 |ދϵy_gIPKAg+z>kY)=6 ;-jL{a@}1ml dyXM?9yVQ]* A=Ki+Y,m9 eڿ8mShQξnKl8+ӹwRЍ*m'q)#M<mCRk*GjL^_XN" ^" u6XYzm#ϏWtUmoyDi^%j13oMtX:mA[KuüD23UJ{.n*3{By.0 ̲;)._@_RWcx} ԳdkDW+MUzY SaD%c]r%CtR(;gl`5Kp3' ,:"6+_39/9t[Y1Y@pqhiY)x.+Mvz ߑx_l4_Rʼnx"R9a=(I-kL,t.8V$膝 d8ӂ=7a[$1[5DލN9~@vbNبc$,2+&X` ~Uʁ$R]JF( d|_vYilt?hQ5&MkalfJ"ALfûH^B8-Q*eV. `dXJVD˹ncnqAi6s> "eJ!Le rD=be[|"i7px" ?q%[()%=3dFj\Iw}Z /7Szܪ^잡וt%@'/6%gD?uWb0f@BaUGZ?D _+;A e6z뗍tYtF@/KJOG Fflg /UR"@٨Ccn v6IW͂}<~[ |z>R&\4a˾llL$U_#$ v!B$cfViV*Y`[1"|1n튄yܭf8^So3|h!vي.3B M{>"L=\qZ.#{t6Bs c ++%?" b goCuA'MN^MÌKC̳9lh=~.C dDbt5(]u2M2'R= 'R푒DR%^1PMUڼÅd*mu~l:? ?g??gkPQ=g$C<`Bù}A'I}=48W6~7fMe_[g3UZąp:ݸ^beHҘ!l` g&PY%W* a/{y{j/k5'm0 [jT{jrrGN vձK u<)-2en~_RZ˽4lmb`K`ód`Kr?Ӈ!=s,47/8&^e/{}٘9ÌO.E 9ƆdQ;^5ducyC.&W"m\ ̭ЅNlg\:?%+  }#~o6+ LZ l̴l)a>kl) F=He^T6XJax7 "ubg7SX(b6,ZcӠ H+z>as`HYTVi~`\ vU^' S-Dxѯsv<&SZu%!v/ 0HNEu>7mW\yYA<* cApo-NZ,Iϝflv|[힫$XkltE0<o~t'x8.0+1{wBB4BJS ]o<;~-NV&]K a[e#Dbe tJ?{rP0ʤ)EI+SxPIUID6# :޿k46oP^,%X⎗~ece[^-lz55InKLOo@1ꃸ5'MPUN{!3N K{^9=и~PI@D|o.Nk%ϧSW?|G { \^GxN<^<;#HwYD3ʆc`|glSq`{bO_QwFz݁ma mk|36oMns,n\_x}.c[8 3\jEo^j m΂] sv%8O G7 hmBg1RR!kx(; jAnݏl>qX߼1!oBv IFU{j&5oذ_6_̯pa, ҹÓxCuH2GlFWYMa]EU0ă{zT)Hr+RlnHJ?nux j$\.gsQǀ%98/0c~M$Rßl=$g3ePS#k*lҙ͉FjN{1F}!;@ 8C|$(eKmw'%TUJcrB2<ٖ+Nn+[7q4Mw%#)j}ۚo[Mx~>ELa”9_J7)^#רHxfx}!$5.InZުߓz;YL6z=dX}hA.{E.|[_S^'r^fi'eh=Fa-fBϖ/0R/cl:mԤ{B" i[R{m1i>ex# И6_6g^wǯdmYQJx!x_dSƑLl^(cpm,;_zt,}MQjsHdʘot9+ze(VIDAT1)Y ݞnwΞ~#3P[ټWZ̕X [ x"3Uv@W:/φ5@0Ian6w$X U-^N)8R\ 62bVӜ4J,mZĜMê*X`i?P Cw;[lIQn4w~4HA'a\B>/ak>}ˤ Շ:rxhO;IRzA)[`JW-anJ#zϲ!dRa-&!0n;_:Dˮs68-o3=Ѧ>ڰEa. / IZnm;2MH7H4s#"(!ocPgu'f);M#XxFVhӌx Wݛ3Dݔwe[0Fx/X|=h޴$+ː>3]^Vؓ@cژÌêyFʚS@/ t1ICR¨΅zQ:WSDuS╸MVE0=}1{mn-0+|h"͈ͯ"/>kLgC8>v ;^c&rx Ay@lQO+=۵a=\ƒy](>{ԉIN&p.i]uCZ0_+b;l]6?KZd|)X`ZW)~/)6 ؛4b& {Mmm)+3G)`F{oKY{P yv7#k|`8(/oz]xw`vHIr`5ɼ@-f[Ca՟6=_sS4rAv]mz5h|t2ȰQ W|!U{ 7jDh@I$u[y J Ja`.i!Gӭ'2[ aQ683I0 zl)D"7I:,ۨ-1ҰWKN:zރwn^8+ !v❯ 9EPP/mR.ƥ2pN]%dDFw q]j=Yrr{bN2W?JkT |ciYY8{헐$1fIǂ“ HF#(o $yjsc|N3s1H4t2 ,22jƖ//~QJj:cHRx";/V: ե]AB`)ϐMB^יl.J׍Ӗ"$nhRSNJk _ĿA;7&;V JV{blz9`#ejEc`k*J:fʳ?,a37rn#ޒ&Y|kDR5<M]isBK&LVxjiy2MDͫԝ1^OIfMQ|Y9)W .柫t?trEo5<OiF}sfjۨ>' //{8'=R@<.8@sOw5>Sn/:'ҹf3qBx,f_|RoZKhn^𼃵gEWT_68p\Lu;Φڈl2UFC8zac@dl*M(9*2UX SHf"b-;M9+sSAA54[ )UiiۃF{V{iR.da6R$4Ezo>"u_~pn̘ǷNR'C¥p _ILCH:U^jHALrQ倘j~':>S{R˭ wT.%Chh)VD#}u 6Z:'"%_\a;~[[/d?Bٔ)>gn..ĐlZ}<u.*hr042kw6 bYTε'zԎDaB=H^ 8k;.H0ӣ>mf1̟;+s>vpmטڎ[ mBl>:c^êas18U(a$,R035 $הܐVIj3VjVR=v}Z$5sΠ[7>( T Aw߅Jw* `Jϲ^50 ]fV?~eOK#v={W/~aƟ[A$Nul $ef>ʭ;U#|q:w>:wn̏'~{ttoΣ)*309s MИLńHZuSI#-bΉmcĜs,n_jٓ`iq4?+dGZ7\# iW֒W骩8 ǂc;k(y5]CW+SJ|Y!gUmE#Hc/R{=Hb>X#Ν攼Eӻ""њM*sKz5h"Y\ckS0i[5}Z6GW}[TMNZtG Hr( uj!lG}UF w< ͬz!X }Ĉr@{ܢ{AqjlIm}Z1/ry*p24YuD 5XcwrvNb18cV0WَN3RbICsVR"(6Eu|M$dhl;kşE]H `|I#'uA-=B/ZsIz+qZZ㩝dT|w\ETڟSr{M]6m RtstqZ)g_K0C.wYJaFJ%sܟLt!m^ɕ-B}lH`6V 1HtؐG@l sҗ ll)jA?%zfr+0tzqsxVʞz罙=j߇ gkzg'ӿAؼևz׳Xw<y׫':bʢ7? TrTPō TV Ԁn( 0P3\͗Qf%a`W*Fig_^›d{owb9?a"EL#eUaS}~1I*U$aTPgXaXo5T9k:h,ƴ][IxHkh@Wp.{SWD6u~BpzX+5\˟w>#\~`18_ưg[Uj@%hL; B"uKp/*R6GvJ=3gfir,K ^h0hBtø<[ddd@uWlm4[A,א!.@BG3ϣ]wekWV7qr2;o tc|^h~-5e0J]/"`!XD}8D_4Wt-G r;#y9X3@*,TK6Id@s,$+CQDHkɅ[D1S"4k,k4oyئ ڼrTRӂB̽Ak=o!~o=2DL[@=ELTrw;?UޓNh,3ٗ@wg Є>2aEL0ۅ`tjy*R 7jj衑)A5*!цRzaVnҦYuvt8I3Q}j+fYMuqR.xKWv QxB6^ӈ _Ryz*Bb䵾)\ yW h?DbLj!5H1k5f5mA@{LD2IzgWM6Y9`SG2eΐU"+٨:O5y|h?NaYν1=̎,d/1֓DrD5H9q&}|31Ɔ2cI1$m_JĽp6)=+5i?"h{91&&kz4puUjWzk=(YȗyWC%/\}Ysqr͙<洔ِ;b2T,sq @&V2QɥCHvZ2k7ޜP߱(%aR׎Yc#trZ i[ߎ4l`1{Z& eP*}  s'U0ĽBEaK-}l&ks7! ]G2p jzbƟyz ex71(0[^@ٝaFu`1 4ix_#~';ƞ0znlbǯML})䄬x̪زERʪ>"<)?ח{}"U~ + (06^,q%|h.tEFԦzI~U{zeY[&vq'\YƆ_N/֓-?YW֛ksbD}$k4^"" O߫؊Gac*S[ $>I.ɠN3tj8F(X7L>"}QvD[Y+ Ay=<79DYUEl@:ȑ Rn-2)|RW|I7 (0Q U&3v4WO+h"J@}}YϠY;~jƝAuEYOIQϏ߆9]JȢCIhZCtD{6ʞyxdE@f6 F2NRf7K(<0,5v+R]&S׳<)1V|6z\2T,'e#fv ̺6 F1V=zdLyNꯓr> :>1RJ1%7oϊӢ889q {XhJ|F4f-*_ax=ȮV{u*x^cQ ]mpEFO~-OR}9$K2}fm~;QXxd &-ao l%I}8+j~m"2-Υ6SguX: xuqR80RlkF?iElAk 8@ʣ9$a,u1ydrL{PnHju>,փFE|o7~6i4m <7N/o(c~1esS҃J$jmBsG&0=2"u5+֣(RZG^ln-i M|5}Xȴ_ =*)_H :ىA]D Qzx x-brB6!T5GesWʼ6[l`?yZ}~J*fLX5lK29%ԇ)VD,~/5 ?+:vWh]LHڀTLs|߱.m^{Zm!=";I6]rsAhz߳d*=VrŎz`]N>/PA]! WV|y\ ;yt7W3?-ߢql$1,9GV?YOc1V*$ g^Kρ;rUMD+젔C}4̿ T=XݚGr4"N;7 KY=_sL{0ZetSX_ n 56/_IEVaaZ>sLaנ]cEsO#*%Cً"OPǕzs鸄WH#4zo6Ѵ2ӯ_#as2%BՌsGgK%WS9I?A˿kK'^O^[/yGNu'ȝhtvE%!Jֺbet/K%-(Tp>?lԨQK"b ,MFy+ 3"i(5;}~p_6^6+}qΥѤu[mf_>}ՁM"|~drtWer6n}U a$6v:G>(cu޺ nY.OOM嬘EYr| "ؤv="e )"ei=Ԫ,ii]9/_ <MJ=I)A* Z%RW7zHHD*m~X>@϶0'0j ܄PD s9Y+b¨I»XO=g5Wզ@5W{3vgT?Ơ=^|Iqd q9izWz/ D`@"fxl2g౪l OeĩJ)6T8NinC ۧߏMxYMdlEX} ~)H~DB4"Wvvᥞ_$|16؅#vUȺZԂP|'! ߘ/gR$;:;Ӻ}eUpn'?]ز0 ^,.D9?ݡgf9MorB PFoyAdbӯF"(&.+*#&ۑ 1lsnn;߫N:7h?MpIT}OCh%@Rp?9C??Bzį/^_YU-?gy.vfCgn_\ IR' D`=!"o`XO5+k׿ 4/bwm2iChgx?ǖI7O?x'gا>$}K8›S<,qHDN[RZIqr!yu~ސ0_ 4kK@KYM}ƣϧ|=dvsP؉#N)s5% ] |)^ 9&F_R/#9_/WfO;?2zfܧЎ:- ݯtuU֔l^|߬=˰*5xx;wc-0" ;|iw/3rjmJ=OfTuF@u6_pca)ٮ@hk "XK.(_s=k{zwiCv`jɵwE12=sCFU+wb6`z. 䩮B(i0x>yQ 0~MYIYd34YWj O>WpK16%O"=Ümq\iϝM t\=i3;N.ݗ{'C ^0)]V[+ñ;æԖ[C_XlN~7̳̻dLd sG;qU^ uurE}!q;DG~WGBAeQ? BQeHmlAiA8̞k1ei^aWOU}bԎJGhV;rѠ gl @|"ϵE7>7<B('P#0Jw P?"љe85SF gW[ߞu"X<wh*p!\=eb|@Z6~MDzV?o#iӧU=BmS}?iZ.*vfյWuu4F!M$ o+EJFK f<9)+_y  r6?t`sx&?2~Ȣ*e90)g?;7r(/Dp=^Ae4o˾~J23Xv_pfi Q_e6Zh*Eu.鉘f$w#%Qp6kqrvt5lG7YS*8B~ӛ5H2b6nwߨhxE&ă|T*+ WoP;3ܖqB _rŬf7d9cϘC?`p& aws}/iz%]U Q{2[4Q9/fs …fU *wnb`5Np 3Pg.ҽ ߥrtSiۯU`]ّ}}:/%݃p\*o!JQ{ط >D޹C%}00p~gV6$"IeFgj }v^=7J3v")kJ{vL3s8n[RC:v w/4d ,ŲAxo FAEv  $Wb/iu?Lh;tiuUAU+ϙCFM+ѼB_6\M^f5\A Ng$/ɍ$ZZŗZNO[B(ǯ>^%/XI .fa;Deyi9(1xg[Ȕ{3(`~mbͭ6~E8^@Syn0{wdByc}0=A})8yQ6AQv(@a.Mv#p)| 2P1$ K0hˆ@hb:ev'_p R2rD?j[ŝ=Y&FڇEs ekm}]]+u}^?Ԥ8X<]]o-_Xҿ<)Z2,ވ׋_뷽~ƒO=i[| )?xwP:,*gWͲPdl6 l0$i&bnN{ЦF6¾4/]Rߎ.Y;()dƖ{&kc1^lF]ZG/M1hh{|,+uZM/rW!-Qg7}r$Jx3*!_~'曙11r\}nbZ) &+/U:79+MBe"P\(نFZdo b;gӊ%Q2TPiFمX+z2v6 Td? ЉڴI"@=bk>R;~"P' ;A.?{b^#n=؟S`|-kO(_&T$dqs!7^lQcz{*s}hmVO,K yHQfFn 2 ;;i5_пEH3xH[Ӿ<t~;ҧs_Dq xH h19o"胖=^K6rEMV[6)a$@Oڙ=O~M^шzḶFi$iB+_XEêU7Du>׏E~nu\JDV<CP v~Gs J%4r.Z1XyKSgO-xJD;:$ [Ҫ{A!ĂZ@`$r6J 3'Oqjuͫ˓ج{ޏ SJqʟlZ^!h0N~kx;x✜Uŋ4t uzuA wd0|~as7˂Oў;yP68.Af? ~ח}}<)1oXo( r}W6"\ǒo wmљMhdE_qLSԌbhl͵UQu@o_V&v~vEP##vДr4mR+Tk`u vA9lcfam(S]Cvro[&7蛕<}lˑs9vf*J!] ]E;Lg8CUά1gvFfHweJV#eM[&_,s1^LWP6J } c|?Ԩ$ADi إS\SRm@ffskvluD NZv2x@u >IrFuN2Bu6_7Uv<ޟ ^J̲4?^)ڄq_Io.;p?&Wu }h\dL:>qLRx5Ӛ50f Foiq'&ͨހޠܒ T-Q̋[|aK0CO/Mp4{?IckI,7S1y"';g5jxOO]e 7E"/-Z / 3a{;$}hx]@ M `R|5g\ӜE /U7F{0vE?C^tkGShJe{.W)yվzrsG߱}ckGrD3"ۖ;Y u _!Q|%X&1DóҜ_r0A6QǻJ]}I~O>. 坕K_ QZ08{Y*ī ٰż=]6~]ʊR褨,Vs--@ 4Y΃SN, iH.s;owJ mҫj$}"c:2U:`$Uc,Q㱰""bEkUL5y%[SF-Hs;_w$'IS<^o$ݨ>Eᝯ:N|M1fT`l^Ό1Bl'\cz,FYq֙}48C Ro.@"ƕ6)F +PgvTK uYj1GFW昃D}'Xڞ_=KnȢ`Ȕ3g?5sII"*vUIL tKerM)8htICPDdNǽw&;{@d2 9,gͶyEQs>>2%F.s1q|UryÑzDK}|+DCm䗸%_]l6,® $JJp4beT`};TFwv&!իг$bTrV}[0<39G+r 33O1<H)iN2! !FRo< oz6PQ+{9umX nT0qK"{Lj'}Wxt~U`8٩uT<[KP%.XsUuvr&" {p=ɚƷH]>?$\.{x*QcjI wTn t6-5pI3L _`q1aGg_?AȒ-vU.5COw\`l +]Yx(uzT2ׁT\;Tm)h `yp{2Y2!5 rqa&4ej&rJɸ@Y F6KN.e%BiB >EKp2V:j-Wr@>LbXvj azHJ.(RSxP)# (epKWݬsc81ƜY#'%~bP-8s2JA ίsDZdvgl3-5p?T0)+ }KX;y9e#/N 썍#,0Tޒh^ܛt:bY "@W@.5Ql + ZD7ZѤ^P|T]5A%ai$fᔤty[J\Iy%զ1o`QMrfbk=ƭۣ>N|BhF$e{6[x޴ Ƙ3 onᯉ_utMIFy)eHUO2}l%8jJieĵwguK'3bqg,v;NSPZMR73]';aN)Mh*vo\[1Gx fh\C9/I,bBoXMIXkMjYl)NJgYXPx]~ö%8w"$XJ= KCaHY,/+bS1.|=ze],BQ0#Od)Km :.o0` s3첏Sl6Kw04J.7NŒU9UY/6BvuIG Z "֤qˬ!0<˳Y!0aeu*Vm%7 xK}::9~逄.;=v$h#{T9,JUiX1D"G]I䀇7ѬșM-z}7_3jE }yLFϻ=hw -.@vL֪;mǻφe{%[џϭ-8+l`sTpugP~_U,XFkه a/Kچ&#څaϧO>x=9~9=n歃O>ZUك6r'Js0fu! R,#fhzvXkMb-¡@65u7Yku 繵2F Tz*pףx`-}+PE.5u4"tvlLZ_EpUkqc5.>=bMSueH 3:T1k{_PIETٳE lYCGSF?F\%O܅.L5c$o1OSU]}Keb*Y|g4[E%Y+<ӥ*a}]R*ʼnl1a_j:Qݡ|#2,uЁ! ,W(^I1gM;O75:#L(nM7ڸZw4a&uglmfRAkg`Qak*Pan[iYwtަQl} cCra1z3Z>fx_(.҆r+O"ޤKuN-VoکtRPXR c'I,[cUϑXG0tg pgs8b735;^ tՕhH$惄1)MyTdWf6AtP&Ss Y4Q! V^ {z7)T.04D&d{(̒s߉Lg KVGgC5nI̮9ah$NB`v9z3n|2/Zcr>U0O:d\wrW'2loqRw%Q3ꅘI}o/w^@()XIԯQi=vWtiN_e{Z@wk #j1148 '䅔_ "t:SL2E1fW3c ᚾ¡XTI}fsbZg ž i-$x&9GXx\cTFO+t<7>[%Zo]x /]S? XReG92b:,D ^ h #,g&*ԂI֖h_LQ2NFi JM1C6vlXVX2 - >A 4ׯޛ4H33lAgR=5! ӗ^IeMPh~٪ny2 :Wv [(s18٣Q:8}%}K/ҪHKl-Ɩ*)gG:拌ЬK ŋ{Fkz [ci o|fRQ3,۸eZ%pʛ"B>cV-<£{dw"TB2Ej5(|F T >A 96ͩhʙw |g|]AӘ.uc0\?3ZQ}*LUSM_0.2^ @~zf㒸x[$W$`0<"6@,̉S,037MתڵWa 2j**u/+X` yW!fMrư( P8w5-fΐ.h?,`erOx4ͻ@f.}@rfK8svw};֩ǃχ=zgUL¹5SBaՀ?ݜީ;ozi{x>4o.xgBkTAq=hƔ].>xкX.Ωkۿ Sͧ3eK>S.>\6Y=ɂ#gv$tkԄ8 fj 1n$GK >Z'{Lgxflһ9 68Xwİ\Gt> vy44_촼ݩ9Kf@Wj--fzM׹2k[DNk3G=RDPtgU*qF.[̏{aV5ٌ1OiJ5M# n^GuȣWi&kQ=SeKbu^Dh/%im$~WVւ *>}3ERu n@#:щf~_׿ׯzBZ)X+dq{u }zY'- s51%u %Sy k5l]f< \#;V>u~U>^CG뤅b8Fd+0k7qu}RD 327ͦJ@3RVu:f9+PIZ^JU\wyaXD{@-SHOQdt\򮙣vHh^K4T^j1 _kgGZXX!oKk-WGyV_tZZB_ܥq cuSp`OGj6a'[Dlvs ϧIu$-s积vRl p:lˑz5p_N"N﷿o}kƜ7}N|s(TqcsכMwB0{bT2lf&aeN )(s/[LEl2øy Ǒz=WOͫ3]X*' )]pIcs@0J9fz*?`vXVy_ |քZs^U7u%`3֮x(g.^CXe33J4hdnv3ȆTF 4/)G%Ԑ8ĩ{ˣDT\pH>y Ή_4zA!T"45>ӕ{A\n1ivdb!g ٳW}=~5 `IϤbB"а-jO2}>44ӢQJ,.~~RFk֫`i͕]D'[l4*y\;a]dK@UO>PnJf @tKs݂2K2ԕf2eR&Ca)ڲX2VHBfzQ'L(R:v|;"PBɔ}2TI[lg2 %cL V%6d::$>[4/gmZx9!euGs6H54@*[jP2!_dFf6jC1=)PgQ:?BYF eV]rVks` dAy { Κ;k"cb'р,9XIc:?@'%1!'DeUd3nURN̦:IrАf)4Q# ]433-1Hgaw}`+8 ϝR;BPz{,(/ޮW'rZ|(^BQ,sF1o,Px$,6C,cL+{P3^ p:زZvGT f8Ob,}lŰx֪]Y5M"mZт놆8 3ƣ͡9C|ÿ +dCkq]b=\ءIzvWom6$9 JlT+[kLlK=0R4">R$JLuo▎'JRCt9QRE/mNXTryl뒳Ԗ9řM2<YaNH>'K!u\5},v{nrN^vڧ:|j7-PLaK7R.V^\G 2vyp1uh9NEx0׹GDY(Q=#hArbOkBFrPC?"-v}+خuŒWNDxLϷ+'yl-haw/i9!y8 :0@k!.Zl#~㭁95_l{ k݂&qeՕ<#I!9Ip4c׃7IfLn/ILc|Zמ*te?IR0= i'@r!J2EDh/(C?\eAds13]L88]Y^J(3eaH =' /I81əՆ2\ip~HqڍAW̭Z9 (Ts[qC}010"g%MҵQ8rib yNInN6֞KVrFxyeY]T%2KHk'/.ތˍWoГ!3_/}LhV!p] 1(~=tsN9\5$X@oS_!kfa>8ڼvfWGǟOÎ2)q/Ly2%9 b$'a6@Ha@`GF^u#P7 5(,-VZ7p(1Y'Im(wb(f#ּshe7bh2,*"b xFxhx催ɰW?`p;:ͬ5MXBwˌ& kU>7O+T7㺃ru5M7cŁaZdH %'~ۿo>3'oizQh2}_y{t_ ic9|P)9}k4ܯ C6F'5<+i=HodP'AWNSLj v9=F5ȞG.|:a ~femj.|!<㞁yJ2ި=ϩq]6MY-r{5-c^+A# Ǵ50S&& c/*k-6:\B ֈe4cT%έ@rP˜(MȚq*9Q5#߲y_.P5xDKxVZ( κbkBB>o1Crd9QuH=S<2Xݨl0x4{u?(+2EHUmr;iU ~-=)"Ll]5[@ }YLPq̫c5R-T>Kv8 f4KH%*Y@6뤨;O"IW-PE'D^ j|P3F+ c~8A5h ANmǤϿտyBpY|g ,^ Fydܧd3&[PRCO] ;bdpU,oܔ69a}ڔ bV bHָ~,hk apݧ3vfQtkd]Vw)] gQ>J ?(T[y@FuyY<w"GbA'EXlBA¨f^Qm & fKJMkyFYWL|@7ԌݕeW֢O` ؒ3ߕp}-r孯E2# `A[~Y n+ m> H-iռ !H~7i@K-1ݴω`hhz> F@ö~oaL!Zz:QriU;7of蒦T¼^Cyc@LZBfO>~i׃[LS.޷|hތ;F?>}: tkSrCϮyW -tYP֪N& s*5 m3 w""Ģp0HȩߖE-.;u^ ,!6w*? 3 9UEB$9^z.77IXS/b:S6iOOR@l F #ҤZ!m_63GhDMX)!\z%ż6J4-Pਓ0ZW6Cýٗ~]0$@LHӥ4X+j_GKId_pXCǁ(RxU+vp]ɑY.ʬ5yQIc'hwZ-~Qˡ(t^{g@#jaг&|d %Fq1y+nxYg)dٸo̚|ZRA]QP+Wtr}#h#L/WLG'k[[ݖtr d ѽOwwkMMH-=Mu\+%R_`C٪ ?CexڠitCcsS.4XWcPũf`eR y2Bq*?Ѓ]1ǛG|v1](Ģ`_<o}܊v=0pw7K* aדדAz̲) sjN}j,"s.4~F§y];T#F14nr#Wwߏ*thxp4TY߽g<ʼn+ EPTC*֓O7'}6֥ZZA)#Ci@qPdhveCNP[Ār(6&Cʪw &~2rJCqGQX\Ů-qaDkk#Xdlb1vf+HSl z]m3i-a:*N"dA:İW_?z7,Hht,ם\*sAa__+gcӷ t{X`ZӞ:Ec{!j%3fsEuW΢Vg Y+-xE+D-R: f6==95A>)V1ǒ2{#˃,k~FE}hbgՂ0!o-i r К5crԟ7ȩ򋖳ܩ,#_J {N0II*]3 2{dUnӆ@lrg@ukTX-q8_ӵΌ,$7Cud8aNB,rGfםj2bO:#oQM{W.[пD1lI1둃܆뤉 5fLrڲL2)ȫwpa1@Qr` l{Lﰜu+g{glkOx7um2? Im3ɠT!YM; 2q%#:D SlXdJ;,RЏpHՍ]o;G~5X \﷏qkN_>`lTv% >u=CsB`feߓ cqkYw|Yx5%jn1(;g3Yl0wZ$3h}XZ_Ï,w1| ݏlv1.HE\gv*T\}s//ɅecE˪ ~j]iY: 2&PqE)HM^t2Ttf,3S}N3. "mC΢v#! hhJh}YC%Kdcj}>f@LE7)>o!`f3$7_[q5 ,EBUXB"[#1L<EҐgZDd_"U3!WroD;ȁOd֡cdJ1D90բvU; q %xFd1YPl|Y(9\-:DXʁH(ΑK7(:5wdyeW\L߮0zr؊lQ̣p^PX: c1Mx7tM`RpЦ2* 3byZu+1= 5X_>~6GZϲ;s0|縤\z8Fl%q+VOYC5ftL8UGp4cIsz= lB.'e}g}&TK)HF:.uf4c2pM:4Be-3^xux NHs_E>:>.aW1PT WSxR)cvּ"3EN1Voݷ P?HPddǓ$î5ЄCs~odXS$ޓjB6ȉԸ1'9'fs`mKg{73G,yGExHXsH,Ue/AE[~o":,+wFTn|I)V@XQqL\yyy{rɻ47. BAZA?T=˵)R.lm_3 mD.4~܏LK `)>m4}2묔gH#UPPh VsШ,J \zVr!*Py`A̹`gڲ4Rrc֞}H3>DL*:@ⷲI>d%7 r9քjXK5kIJ6&9e4͞(,Af,Ţ[^ZH,,^S8iuR5[xߌKbUجR[̊GOm9he AHBwAiǒopnDZ9&32j.; e~3!쫃9SoA1ZSJў6{ /N#mxcTbԤ=,{yk!*%@o9OpPUǰqe ʊa3ouWt4 Nw'&&p kv7W%+ l S-D9Pifᙗ`)VRDž֝7H½v\QM@ԴuBrCkŜ!\"lܬv{xJ.ots ^ǯX xBr cHOyClbaLLBsss9qv+e];(bi?6%c;F~O}XnjK}#!Mr o=O. Z\;_~[:Y S)aCE!Vk)gM?ҌۯH%C;tW9SB>9vq"M-]A qDmC RyiuȦτcu3!KL!c:rd^-V+ OL~ !s[wԖN)Qw wSWw!'fY8Z"vPC2mEWzkzWET>OeECDr ;40TTaf4E@tQ4?"ZSۨ7ɉp`kw].r]87!x|";9*}J{"^ͳy4Zc9`*CofE'j?bO%`S &]aj6ƙ!,xgh3fժ-FXCZlJ0$clj8nd7Dwg+fP1Pi 7r\SA4q9{KX8T!3M \ Rڒ1JMwHZk}zmM>z+cAU9ֽJۇxVilڒ~HZ]vRV^Td&$`hf!S(ݪfau'hq?~4\8F`|p˻|~}/>G;6Br3z }f :Q61sp68zz4A/sˆ9 PO{?V<\wymj1'u+Ţ[sEw |^!v\yZ^|Nқ *>,RMXmgrɗ\6F7ͩ}cbgaq!w$Haj4֒Hˋ-$:cbX0suB ]A,8ڸ׭U)٬Criԉ(' IkIeU_-& [}@۪+56xL }*j) Ո/G&4c8H4&S`"R~O9M0Pé<` ʄXNVJnl's߲ikqLӤحukW%~\&q$5O亹* .9+W(2uO[u]e$Kty 믩?'ߌpY(fuX@.z ZS!)A@Z,oD%Wr15Hx"5Ot7~d8CMƔAc Q&/ͮ}w~y/h> 'I QOabi3ת{yﲌRx/7,VfXX?CаVZ?-spk?B)E i&a4 N^<# B{]pX5<&D8B'"C4ӘG6*S6YXj)6hWVR*UKsf2#m "dWcSekЫDgAR"$wRV,a<:7ae8o״J-zGVjroBA4gFA?mbd&H͜ٴ yqyBAZY!䱫 ڟg`M*X7؉uX'AlByBs;DGZ[b~*Vz읏Yn1jY1R? *4P$Pt \2y/&х\㭓J2D>;5C;ٿ@q#p{ΙI]Cq_zpV3rvDk$S80K30P735eCXbU%( ac=UVPx 6X3_sjN}4s p[ge^ͥƾx5~LJא\X&ߣ vȪu[$jt?8iKJ)';~&bq 9u7]>m/{^A"ؗTs~!x!21 ɯ_v=_e/>l 23~gUi*!J%{{/^>sp} NY;fqaDfX9d>^֞@q.=CvWF]p^}Ex= N47@A(vW<0<*!FHhfV:וq ͆Ů:N Qp2q|wcD)>YC?f hIdhx<SnJXqoYL 6Nt/Y ٦\KPQT"$>]LqfՠDYlj+F9qRe#LhD&ubEuMCTZDeם ,P=,Rja9 %fuZk_3 AfŰ[{nFkߴÙ1pfp4sHBZKaŏt+?(RRjm,(!~i+uoLfմ*s4 dz֨oyG6MS6*R?yy~yIN4be e!t,^5b%m"2k=ޱs<s 0ŀ0 )s)01fNd00k3*שua<0-|liiFf9c49JtDG~D?SIWrfcfKJΈ̈́r:W9cǘoQ)81qPDN[x$#&3cNQPpunB<[41h`PP@oC*vccx[88cyyBn&~I3\&C~]9BP=|;&o)L'ga"Nϡ|BSj_/Aq=sZbOƜgjWL y $A[e`iܶ6JpTr$iHȚlz9ha+UDf>'Q'|FHLf!\2QDo\-K`g>!wp1o)Ҩ!!i_tZ~xYXx&>VnTڑlx9t7D38g+'dC5J$q=LX$qVMU ciX +XϾuXa5ޡ'a(8pn~)Cѥ _BT4w̺>IyzE)GP,͑:H6c5(\鿬pԵ=eЯ*kd9գJO^4f&y3Va3Y^kxYj8XN %K.GY7a"L h$㼛}n~ v,lOL+\/(}!TÌE Yf W /ܱ7UbӢ=oRPߪE#|Kj$XLV nX"Uۤ']mW& .42QXLڰDT#uw7 0b#wE/?;ifS1__r6]Zs%$QN v"7]źUn(Mm6bGa!l&f5/^3|E-%xZ?ۆ#ZdeߵF#3զ,( suv^'Hl5|>>沓cG@|Fጫ+b;Y#g[G6]SJyײ-*F#P.ͼ:[3$dB%#fЌVWJC|(˖ʞKJ̦Z>czTPݢ7 a`{#(S~"@F;ah9ڢ`:Ԓ\vJ׊SHJ) d\ 4o"mՕ"%wxƍ<:e[1zվ~o{5ܷϙBs?o=>g~#2FEho DH.P$[ t9Dz}b%6bJSVQA%w+hu0xK e}':K&!@])G|>+hFk c-~ѰW¯Fa蕟0vy&3i}lk t,/͎'CѼSETsOڧ23Y@#8`E͔W!2fErXd•;1]P fI(AȬ͏b/X6KC[1&щn-[*b5iP"!O2,4oҐw'aV>Rj-8ᜌX<%W _2Aצc*c(̛eq&Iy+9'\rSc"VVˑ2Gkyeh][;KWuH["KkGTp8-jm?}VM5.# 8DH } Or:>Q\ wB.*ti }]>@1Dօ2IWj[fWoYKKD?Ea$hV>ցOSilN@_YI(Jg^~`άlx"zx8sd P~ T"!H #WԈ@e>C$I!YUt$;$lfuWomvkn]]~eԘpIvYUǍw?iƙP@jYϨܬ{e\,UAZsčj8!zHEhEsq Eѱ^q&o{?΋E`p=4ܧg=宑M80݉4 Z[Qw^ 4<%iDpa,ǥ[[(E..'wuD&d\EcX°*~,c~Hfi@/޻HO>};|qkC"G_uke__j__]&c{(>1-y uZcd8A[d .~Dψ@5@1,d'?ٵn^mb =halg+v |2XlN&y(̑_5B&EsSn!hqZ,o,7tlF5K{j vS e1$C$ M3Ň+|r^h6!{%!*daq7eʢ\{3^j 'XؿXwrE$USB k ؤT]eIx-j9`}A8wqq'66':1Y̏THj!.F&:49M.%vp|Rmufb7$>:h•rN}L S'3x]1x[Pr|)F5z]L2Pŧ󋹧 0s:4̀SmS]QK5fRBcn^wUז:S~%!EθB[I.-MYx<|?6sPOkl--}"5 9ͽp͗l3 ͯo*[h%t| t A-3x%)uL-&B5kڢrINr4ϜՍQ$2SrǔNK$2c¹ܪag-YqPTX*OM\E"eHh4RuR|^Z4-zQB5n9s^9"~S_P JZDՓo*$AG5čZD(カ i?ցuy@Xq nVfҪFlq"eIJ<3DS *6HB!lx'"*ҍE+gɃJD/3fP~uXBƾźաqV+*vY,UEVUn 2.mI+伖A͙a\tWI4LNݢTcK:@®vmړj=@lq֙[ )m}Kݝ!e ?$%i:{3! ;v7^)ݽ_pgkf= #Yp<~Rr-;XS\&%mHظ~bXMU"E`dzb&\5c};Yy"- $9R7|D\-R+2jnߒ aզCDlRWU+@Ӛ<4LD[8A;r4 g4_:zc/ߚZ K`c ci3 XcSPa<k"s:J{LQI;^'r9E=hmxw#n6}eѕ5#Uυ['mX&;H'(a>"@ >Nԕ SÞSut/N]3W{Pg荲;a ^>ޯy9q=yߜoXc-_;!^v,yo ΰ' XǼ: V afX{ڼ0w=BQբ{&vhY:FRLbsd#$ghuT-q<+YTX=6\lDi"X4SnnK"k,{R%GCړrȔXʌ5Ds ?r̵VHڀʫ֪ðAPO\k:laY`uyuK" …&yq% Vk|(;vr݇C/9e7?{g]T/ +8J#F}4{Om¼2OʮVZ6 lhA6]sQׯ1 cL9Sb Cݬ5MvMwl?NchXk 0Vvx/Ȟ( W,miXػQ>GjZ IA2eiE!ճ~#EQcmEh7>ci<:(ES~a`LI_ Zy! ^DT&Qxl>Đv-BM#i/[fו%a)VD%ĨUhBf/g(r Fs;ӇGg(B9.)6E]z\i#!yhH;P@86- <*(G 3nk(HHPb(猭HLFɀvMpI>SlaeQpš5UH4o1p5n+G<YDsZt_t~uAи]wx [=|Aj ]Нײ/r94ƭ[>xƚ;&Vx@)h;_z! )}RnQ$(>E}(MYkIajTaYg_~ZqQHͭF_F|\Vx酏HJt_ڳ0cͬ]CZk!E@ZX4@-cn:c cOɧ݄ 2j%b,Qn'n`xɄ*fUV!CmS[{%)TQשJwF,/}B / " M[NZl'U@U/j ?> 讀-36&f1RsmUɨ#†RC0ͦ`tW&qu5ݙcTxV$U Xh^D?^DE,8o^k>O%;?~1gԤN4mYOg#&*\r >> w8qѭCl`=|| hl ~_ ɨ5-xQ(feL#=ZOR˜׃aj&]OY֯v6<,T朵`*jAt%"ZMT=qq ۾x R]ypQb\bL̉%Q#X\YM3.ջEۮzQʕWƍr`DJn젙ue)@&dIYʠLn[RMϟ$}ޢTWOaMV19Fx#~o|숒B-dq<9a\ΊHk^wѧfVJ|mp ETRpw ʬjfMƍ7}? .~(KkpHpgf9QdcH-Y-Yc\Fnٸ[fo-P)s !"w!*tIbZPn2و"Az+NcNqC9s J!bBM>@@.d%u-[13Gդp܏v"eE3U~V$:{e\ʲJSQU ]>ATbaô~Q^Kȃ_ݽoPlҚ7e5gT<5H4C 3DjӁ=>'Q- 8%Qfnd:H ᵋ>8o ~rBv1ەZ#MSfZ~GT:p<1͉?c;dDk=I%!MAf3s,Llf41ݥnm:fff_- m#;.r^l^+mA?s $"A9d.@7)]MB49|ҁy4puJN8"Us;ϼ[~dǓ|{ e7]._֜y,GǷ9$}:)'h Ҡq=/F)>v5Dje,bYkTS&VJ$ ?jv<ثā}ȇy;,3:Ӭgt]Tc6`pvO.?2&: (kҮY6!G@bmfJf:c:3d]6ȞBϩLP Yv=z'➪ZdɸlET6˗R~0?20YL)헶q!FV6sV0Px 'gG#0H9%Ik/pTC-\s<7e tPz"*a+񷪊)r>, vH%Xu-K ؔ̀P~KeR/V% -ptؙ-flYO"7B=Jlaa7|/i[x ҋ/zjgTF+b5s䭶œKg=be}őWwb i Wnu/E\nf+¼Ɩ!.%lfzZaL ?cx}c;kf4 1ߎGYC )[lzdDW䍴rX@2i͵X (݄./*yx؅${Eo?H^Iwȡڣզ^UV bUCd㗵`!Mf+$9 Wh1I:+lE1)1Xɇy&EĝXwك70Cott.A~Z[ҍç+H{S~tbƠp >x쁖S%9 G*n>}a܇jggh-Kưt617#sͻ@ӓw h49[tCfL _h>4_KV]$ߺ?g^~t1o/]xZ׭E#l7{7e-oyjQu /5ZuͿ#皯xi /o:捜fsaB8spe qH3|kM~~ǜ7aF RF8f_tH9xC C6Ɉ`PGT_)7Z2^;nF򓧗Go~ZHF$evu(MD @X'ef;N˖ sCV@^u (0khIUu4.QO>|5xtc$V5csABIdQWoPqὛ [!NI9D5P0W_I6j ~)*V ^M)-bxr@= AȗH _,afiKktY sl$GT)UhGGnK~*Uho ɍF@n^T"V7E\bV|]ZGN?kl2kNΡqbM=.|jߡ?7SlN:|F3% }p.J2ck KW(Y $Y+ߨ3K$ZvИRop=S`Kx BqFʓy $ssN9ݍ6|=(J*&ũ#!̒!50sCQ99׿Hn7%]>Y3f#'^3_"UcܗW@~~挹wTǓ==Tu^WW Jp~y]&wE޻zvד>мvQ!Z;DoiM^=C[`Ҿlݜ][@\:A'uЊȶP3z `5mmHXJ[4 *0"+2 dP/DLH1d./~бՉ}>jZ8{)dz*=)@7z>BYNY0k8%)($;+ؒp0(vbky ʯu/=XbH7l/VHEn:hMZndVH7pCsn4ReC`l=Oz>WE^PL,dz L]訆X; z6|ܼ\xwo#R3*dmN;DZ\>XD., a7ۆ ql?A}&PW}yY">JnGPPk(?.McR5ZZle䩦C.l/+&e:MMb\Z,sgb{f!lȧQ)gc|]S)\j &Z3N8 IEQq(^Ǩ;qF>3 gVo!v:\܂%nF^$_:̹lvĢU/Y߫as4< p3Na%(MT; SVД/V(D+#khqp%cu~ 0£i)l$닊VA摭~wd5H\e ZG\*e7 u| l%= ˇ{LT+mL ńOLmMs%䡏6mK7ЇGĜZgjVI*pWdV9]%tZhل t=J*7TdZ㫚Z My]=F$h go|DvXaN3xGWu@0^jB]  (+ f6IL4'_la ߙ|ԃmiR4tdMAlg2Z:5um9yI;dj%hP~QR -$bo:/6L Cb&/Ko`fD6Ɯݨ5'N rGTf]R'U-*p(y0,AQP82+ ȨdijZ +E̕K㱪5 8Z&d/fօŀg P&PMnV~T&:S>R17N.y[?a$ƴf u,R2,e-4{=ub5xgeĝTTqW։S9{g&g&>jQdnF h:vLxfYu[NoْlDZfG+US̯/Ւ2n3CJqs@ޠ ޵v6xA#J>\ŦnO¹JzUӺՑN׮n!RhfbZ<ܫ=!Qa|1Bq%<@jɻ5*fF,hdw]l^|@i?-yrL;ET.De/̇~~;IZ)Z9~ẖt?idX&BHƒ1KF3Fp7H/Z c.l3mJFrfP.b(ǞfcK ByAZSIHNP ؛$d~Əiِ8:r߳Z2 yИ=}H㟩P(G39l&Oꍫ)pɌclWkG s(XZg@Oɠ Ug* cN y:YLzztM.oQ5#u 6(<\cKs[o/Di_dv16/..^W(u|Cl''&S znף ᮯo/ F<@FIot,Cdd(K$z= 낁읫D~PCQ%䌽 KWu|}^z**U 6+گ@i% i8dyO ?e\EH7j/ BMkfKCQpvM` Mm3zG8!N42bHLcs-, -fh!Xԑ<ʔng|RwKB'ҐEXVkua/r`P5~4^'7.K gs|艨ʡTX2 pTRnԺ(dsXl>YPsaQ Hb+П!lדR\☃)LҀMdk`T}OK*<,~cY}Uȗ`X.L}*Xњz ]Kk4vaR趾o~]pJ ,@h2CkWT;y+ G|d "q*&\ѝAZk6V'ނ7k2>kY5׉5d Fhoblw$R> lg9ƻ,*9 eĔk[e,%&l!JbE3JHu p7hz82Į;oTݻI?cΆ`iYuǎX>SCjNJeID͂WO>}ձwe#,jʃkZ`Y8֞e@՗y=4!/];8"g[\tB4Rs7Hw戆ʢL "㪅{I&r\›Śó>nEYUA2.BmgflO21Y 0|@%0*X`hVNUZS:-yHQw80 ~8]f1l4\lJ)JoC0N+k ϱ<?JKv)n7 Mk`6 M`γ:fupǜZ}eB\DO.݈l K q(zc?摰$6:o I3I%J#|5~ٺg}P cŘ@;n8܌fRsP&_-w 2+(Ɋi547^ZҌA0FDY 0';݌3ҼQd!sV 0brC"I 1vgvkZn5y+@ϴ7w9gV4گG7}5(RV1U(,Z KngX9ns6Y:S]fE+S ə6ށ>8j uǝ>qS~7k_wf03c2To5~}|34^7oܯeǗ;hGEI#:9F*O_)4d)Bpj]1Ub W'VqBe}irH[K? ynσMk֖fj}laX6q@Ev`Lylp5?H2T̋lKp%5ey<1NN4YR 8h F,/)0{f3Ug#+QcgKSĒ 3>fp! l6 #L\Vt8.|ND¿gpHLj'-/Tވ{Y,4F{v6ycgn-Ra9I*,g(sOܵ9gRg=k:d;MJgjSº cm?W}_7N;Qbs;NVal`:@*%b^Md|po~mAU3fVXϵ|݋X"K 8SgW7>S|~B&g͙5?Eۮ(RΗ6X4K_v f]Up 6`œ# Mp]G9Ed'Z?>@2.[|2dɑ*w Zl+D܆ĩ9{*bEpjBkAv R yT#ZX;o`h,HYqNI;jv#HHX;Zg؝A5v)xyhod{E8HXI|}_e4'2DˀUQ`1@Z+lBSgL8=*0Oi#zO}b(ny39U#O6$U.Ԙ{hx!Ņ3F*%j y'&A>fZo|Ucz쒬 ;06xIQeuLL;xcXoWؼ a3ZE{w5c$2hD:dԇŵXhC/!׿z\}pO-;H *`N]Om/Vf?̌Ct/;#{nS(?~x:k*B3E<.4U7iC}?FF:xDpWF^K@z[)Rffc\Gv'BQ E !-E ZItIaz)'SshfItZ'R: e|mўd9""IVYoRT["I( :)?2UDXM^>m6F(+2&O?G*'梳('HC3l϶/|]L0if.ը4n:)71xEnE}a:("{$5"odyQp7sW*<"%*s(:]6@+Sȝ':n|}pu+!X]7OvaAM*#-?TSH7G*H""H:c3Wgm5j}oDHMOǕ`\%9*zXD趈ѫ>QwjWFqcmӷ/t(YV Z';<5|])(4,dG| 3J!9gL\{ի&yhߙ%Ea0Ʀn|IIAbʦM¸,a [G[+k"}GN s5;EcxADꎃ[ڬ t6`5*,Ò)eMts)]LcByAŕSѻ/\k2f0 [y} .Ȑ6I1L]i6!c&($pwX iBb.TTïǕf\KV] Bk KKP\ {*y6D,9DPcóm+iY|}.udH,D(W l2Հ0i%gawUy> )݌VN:yb$tBǽ\op?WΩpq~cRa|$SiLǑ[+^q4_8rI8'Skqqbb58H8@ sBݹG=>KQ |]6BzQrI>oϪ@XOBp4}$dkvrf5`3eAbuޘ=MϗcVL<7URB!Y͆Wby\ \U0K(i4<[\8h mdR, LB}P}/5hYVc(pjWO?^Npkdq}f#Y%gE7ϫ}{ ߴ;8mOc,*&z}(F}3<)V: &>#Z G۵]m.-r't{'@Ż`ueh@ƾb?9t7t7e5Uj+6ϧzM3bSHdjk)/vX4ذz\ x 诵3w͡-[]PNYɍ;K} |Ȍ2Xu5jtP>L%K&#֜o r:9q`4X+b]oL:E_?س޶*WD͈_?vC*s=P9)z.$g/@@JI}BPHa*Gg,M?=%V;ފɝ-䝩fӲAzǃ,!@ q$6byzRX >d?BNdHtRZU~5ש, UoIpYj{ݖ8[NE[Cy~nfeWh[Ŋ,BŠi&v_34Wsec>b2 ta1,C+7:IH~ÿ??>wZ;)8-oQͯJIR–EN_븑8gr _>yc?1NH*aՒPD-3;|NbwÞ?9?;b#_%ʌq)`N^u*W 4;A7O2E(m-CsOT. |kG Us?/Ze> ڇcZgYϕx69g4f.mz6jMj26<cGu(uG}QzVQ`/LLiB^(\މ8='ZFmRaYeo?U>@";ӮV94w/-G à \gCW[PZi@]-"KϢD{^auH΢{{;+ʲC}jZ Ҳ/6Ee>$+tmM.xCA7)&LiU'fzFZǽ1aV!хL?*۾qD(\7uU}T WuvuVœ,"`uA$A. DfaⴃzZ~FK*%aL']kd҇@n1Oc/ hFҭ _vk}"t9r5FYQַNFGF~>`(~@ Lyr~ia8"v\Fsd̐[Ӥ%BMmfy<'AqD9   Rr`%k6Pr} Z}Ec%3s3KVEheޘ:=ckßQ%hBz{ g *v{]%q>Ytˁ㒮ùR)]7>NJv5nQ0@\eNW}(h_KP[se&78H0*E2_|ǹϹι%nst P($#W^7VpeނQM i?jf/A$~.%3 ۦ_= c^V|,KL[r=G$Ky[ja&mSg4z9 CzP/b ,j̅G#r,oFm^l3%.wIbWInJRQt~: J63wBJ|J1e*qι"IZ2 mYZЯҹF#iUuP0 O%j]#,,7"QL5Gܘ!K7Ay!`ঢ!EVX"inR/V&mdb܃. 4W& ̻ZX-ǵZ+w_zڜ<_v8oÇ8܏t|Gˮ_u8x<=a:g#b*9uT'bɜwC30_'!ٌBk|#vȎZ$UM߅1zzX5 8V^7G!nc|?TbF:g2[UE٭ݼMR ;m/Ic fIe]iEM`U(? Oin69Ƀ>^-T꼨@Y x},)d$ ^ 5/&UkMG꿓JjWnUM.up61dyx nfJxS&hOz[i7*:*?)?mLqFZ[ʮlN.)#Xӟzl6jQmydlX8W[w9Iwo>^~^-z/7=jMfK(Rt'"nMTU 9;mƺvw}luO؟7+|\;tޡh!s+?%,- hl*=~|r-f|%:J= 9% -4H fSα>","VsBN^W.XU]X )(DoeM2Y'7wS`YftNXIܕuV6lҩ5_097   9S`h^!ptTOYn,,֬".QfD`H$e*1 %a,lG` )rG Z|UaTԪB5PQ]r4zE$j/ e0!P+4`]Z+]nB^#*u4555@ny7 wzxvx5 R"5=vi}<IsdL &A3`@8? ꫖Cũt{+ٹ~t\Z+;Jq_0xkQK#| MS%I}?- rll iP?pxǃʼޘĚL[ub][H[ ͑y͉5yW͟^5gwXsP2Q& Ōpf6gk L..# .uCЋbIVNq`s/T^{Tx07ఄkK`ݵ[#-07un-¼Vҧ8G$FY=& k~jjCb~_cRѫN[KyAyHu `7`Xy~ h-jj8h [ 譳G"3FlE˼w^h|Kv;m@z*}o؟:+'-NWz}mQUqnY-8RX`WU^0QlIPGyM]JYTB3"IYb kHF"M(>oq7¼-4s:ݪZ)u5Ux qE>#H<ޒSy*uܰ l:I9i>FNQQ٫_ڤB !Ը`d_4`rFk BVKNYYU+fhE̟%(h(`~E璠s53HV[q5fN "Ҍ: l5ȃ?ÿr>p{~ q%c%.[^,}Gz>=T;ETn=͎A>n>mFx2ϮMo97D{!qҏq.DVM+`A$iŅ[9M6urHIҒ΋ [.HĚ S5 B\)M&R 2(BgyC{m!ܳYɊ J[*s #PT^NȒN -̆hkD(B|x -Yq͙]_XI5fTVr$l }Ͳ'`U|x(&`HX0k-kTF9h-ߍqJ6?q~?oj/շnF$ߤZ@/C!8plrO4$#A+Yt 3EZeŇgnHMcv@'I..jx8A7rڧNoJ:A]C5w_wk2?\ƅQ1:F؏+ ܻ_Ux.ڍ!a̶[*!Ү6+7ʂ>uLn-XnHU}%i ボfv7(HaAt攲7bU}4zs4`ِVeE[ JI뽗@>r)]pUYݽ!`5 n>Ƿ(N.þFU¿?n@P;E?'wFqC2b DEx5aIvɃ vi/ pI&ٲ-ͼfNSZ˲5{xGi"/ ̂|`YT`>m[ys5XV )H7%RfA@QmRf$1^7"8@yIh-q%YD9-` L4;RIi9~m/)ǰ1Þ?(5@ڼ).; &HO1]xҌG(hդLE̛{"tfgy^0}n"hZXxxχP awH4C+/A4G% F?% <~ʰ-0)5XơlܞS_zoXq֍ֽH}b$<1η֔F .g%k"ҪP4B6WxlWfnAC#V^x)$iҬ{̥سZ|.R><SX;zZHK7`V#.&k#}ZLdSU֭UiớZ7uJfkZyrU_}uL}jû3h.kvC}Wmm1m:kؗy9a6ҽ>5sCo! 8M,b|"ш;ш[A H\3t3{;R8)Nbi1w4ǿicu!pZ+x?}!]([>RE) œ8o1f۷J ?68WNDtTm8*9`4jɥ.,@bu=珏taqrex,CA>&sg+h<?I#M[?Kjsi<þ *e6GɯS~>tJU.>oj pdNP5)|IB-ϚhW30"AA- q'9˵tO<&5#Zs~}x}qypOo٢=?wP믥:~ښzӳXpW"8O$aϟy_wttGQ Ѐ/b4b@Da/P*J ֭>|؈./ ?eǻ鱖1֜jZӖ; R4aް"De(X{0%kVч6}YҬnhnz|y"f`m}hVۇMf?jK>1)qo}VP*ROEtThʡQ| }xE z{Xҟb@J. NƓ69P[OMWK\JҬ*/-Ibke&f;=%7%A/7yc7bIOU6u"l YPu}ʹLZ@{d Bgq<ޮ՞Hүee'GJcXyx5EíB8Wz #q-ag>U{~xvLƢǪr2V6um/FuL2Zh%;)@nTJnn HOIkj'}%{~B+ KSKHBhdkqB!<]V\!قsuZ:`.<rI0c9+OR) L6|1ÞqaᏇ'pIff)Xׅ#e&LXȝ:Ռ.m4 oI 6uhOS] [T3iA\k"S\W kU;r$|x[а^o›n<_>ׯVvAI'g2ȶEMY1_3ɹt1g~lv U>YM?H?J#Jrka/YpTiuz:tWʪ[cm*,0ɬpo;m -2wj{ݽ(K }u)K(^Lh^v8f'uw+Y] ib.gITgW_]ǭRT4.$ { m # mtBlQ;¨hc(\ "SF^+"Ժ_$;f_NuB42e魔OM>F}{!rh(C@n2^ڗSFfŕHtYDxkoF)9Ny骒WMeh SKȭ!dǽߔwDw34_h msI[*<Ӑyv%wM'^WH;fS8C'$ r%PBγ;bW%dKS}!-㑪 s 4tԌ0rT#&@[8|(9RB2^Z qN _O9`o|-VAcc"2ad-ɕ U"74b 5<__zާW 6bYFbZlTX=Vf1-g Ņr w_3#'^_V W5Ĵ^KZ$|f#Eϯן4_gĊsH1H.AϮ*#_rc:G!v]Fe-mϰ{ܮ, jFnBKٽ=*̛MFuklO)o]N~D?AءrH'IDATDI"!K#~ bچͪy(,Llo3ԹUoy?dlZX5mDw!;mBVmQ"s3^Jx'QugOBAI+#EeS=pw>WBQ D(x|\ *^~0?y_zw6 {T7e"z/m:KT݂bH~&..VהF_ tzvFoȷ3㚉D Ͷ$* ؂bWXWyS7X˦6|̹rd zrA. &^ɑ5A\9tVDzV|k.{52cjo:V<=SC|\2dNc[o2B$^}- mZ`jڼCtgc_J!`]tLmO5:/*PFR1O1] jXQ4d&ᖬ[gD 1' lː B"㌐?'Ox6ӆa=Sf|+u9<5j``$jje)dLXNߝ|c<:91 p#4KqR}@rd^Pvy})XCDRpc3oMzՊ'0P 9V&y?崩ږ"bi5ϵ&6?)>b' QV e,1@V̱ @Ba"P, ˲ddt8ikU?nnbHf{DRWwDJCc3ɑVWEwѕgDص3WZR",lE{[C+IK=j fUX{yU6WCkc<{iܩq&P,cNZ?_@ Ϭuk`u'^w# z~e-so#}"UB&jSi #UǤ곹^=Kŋ/eLYС &;1Sm[ 9@8rk7i/cQՉ40@fUlZr+qY-df27ma0f7|\)2COrfN0C,:?cC%|g_¤E8T^2B&4-m1RVrȞx3(H.iY/GAB;8tlt;\s?a$7G+Lr!ڜk_p8C߿F>$D[_&l4Ω_A k6XUĺeUɚ \@?@  BP ngnmμQt'nanjL tW=+Wglm; Չ :ݏ]U?\ k5sUǘr3-҈nU-CUWe@OD(v?WJ7iJlh-R?9ʠB0yp~?WW{jUvy^T:Y=3i͏ވkJ:ߤzexIzUR( t#/:Z/hYeZc7 i^*o2I")]:&o#Qy:2nƲsv>i+@{lFo*mv,&/.ϧ>B[:-fU k7b/HY%ꙝߩ3Kތm&6_P{PyWZ;m;iיm T7cf{iiN "<`™C*)uLab8];a,E=0sľ,Nb5p{S#Zj 煿h57Ca5AG^b qإ8CF]~DOaJ">TPK66/_=M[teೃ$(c5HEY6 ElW*:A5'ldeE 6U02gNhpR*cA<#VC~ yy_i<|ѝ4sgv]I5J.ϬcqNr5ɟswEB4fAw(̬ DI-7_f ޷oͥ)BZf= Z2"fᣋ>_WypSŷw+ߔEMa GCI1|ޓu[S1Т&Yj6R`T?bq#eV#ðlTvNu,X]@٧y>y#-2xrin@f qȽزwOJz_X-5rXuuvŶ6tKqje*-۝AN`7(kh)IGؽ+t@);r  =} Ŕ~ڎX]tE?vj +t T-zcw\p7eZR}ѿsrDc1䗺lИ`;䔋]}9wJB~iw@dT%6t֚_Co 9Ymg+h6F̎*ŘYQ͑հ}nĘ_y>F#.3>Ydm*Ѡnh _ |.`0S5?TntZBB[dh@P3VĔNJץB ho5ݓK4շ@Cuơ$Nb}babG:F| \uezGvg#c3Gr h$ FQ˜ 9z;ƃ?|acXͭ&Y"S10b5rӌ3"ܐ] Y*]PÜҳg@ImMPXXဎx}9$by`丯5O/=LP/__z}|qDޯu*ji"0F78xºyeG,ƁKw~e$07t @Z8'Jힷ7hٿoV0fihk9*`Oօ]rSY\ask#ךK*to@МrK"MgR͂-TܮF12k9:K<"H@4*dF,e pr ,iXV%Mհꃩ#VpQM 9ۀ’bn o~JIX N]MZeǀN.U(]/Pb/ɍeߔ鹽$PB֡w/wW /}/>;u]#\ 2@5A'C YBՕrVy>Hior?TvgQg#eWt~Cr]XfK8T^n%$XE3ls"egRQ\1+SWv}@U~=x) Q3k8?=̌#mȬw4,rnlOsI>#ɚFPj| e-`e4'\57>v.vڛf֦:Hf$ pZatrFhhH>ݥ$$7J9AKg4 XX 9-DɮhX{WuM+tµ[u_fX4=Db,sZ{!bU@h_I)u, -!xB,gii~| 7ZF޵tW;\@K$1"ovDy~=-z9Wh--1`>RafL20\=Χ{pxo7ƃh0ωy}|}5ߩƉ76LT zkPGprb*z?oﲰ kL{n~F'X/ X>(+|0վK330"on$ 8^.~ *Uu%%7mםE>6LR-yN4}7hޭiʣ"НEȣcdX"dWu[[d\$,EԜ)sIcͽe٥F.hY/d\uEfT, Pv,-m.4fVKp-޾ViؽF3WT+G.VM#⽒"̵H _`{}5^T>Jy/ԆT*_Ƕ%"W⮂|ԻD.k#:A]+͆FU} mNO] "\En->TYs7/+%!enf·Zit4Iм9JXo׊? A!tnR +r]P/V(2R ӷ1l$ s 3ry O78#n(z1i,Vy{H. f (kd<O~OkBwYu-mj*Vl-}V/$ZEc-է@2V&HX b7p4`k x/Z$wyNsп?+kfK >HqxO?O̩x}cSV.MppE5FJ~lRZvCXKPNc,Lo -ĥ6L>zXcyOo[Խ]IVb:R.O'aLOE> ՌThl~uܲkXU4(3EV+;~褊p:9hJZ X)Lbc}54=]Z:&MbOZ6UQbl4~h@oh褹 <@nt97|)>/VS-oqu BHy#D[2f8nҗZՋ`aܐ3/z[G!͐"QcW `e ǥgQ3/QmrnHmV%q|7]us(N:vka-ޢi̦MV_lbO1x}vKz~/CYߩlUJ(0Zr )M)+0-ŵ@Ie,YU95si%scD,F,Pe>ZqynKK}0J(NcIpF (a KԎ%X`, 3BKzGW$'=3"C}+aM1l}ʲ'{vDUF t%;~kh6m)3 SDTߎ,ȼrOa< .a2,9ig1X+< %)K@@pwMG`Ό#q4VmFo>V2 d3n .4SyX?x8x??!d0Z HK$2RPUL XPͲO=M$"|wsu5 eMv;<iQ_*R V{_w F-+֚Jv> yx ߱|+=f#R0;'ާ滔81O:95vެ%>-7%S6ۛirhBHiT PRrӪ -TŮkm7LuRD/)k\ܐ"ozL[e^17w$7d vDwG)5?y!sB#qȂ czy@{s[[94JXS-_ތyXS2řn n" B1P-w̸"jstFʊ.} 9|pah)ڠ~.mR~Y\[Fg1&}hGhZ,@12cME)ErZ[}n1}hneDͦn~/-Y3d%ǣ|')nn1v !>ŧAZ-YWtWS|I2ON$}wK:}㸧7-.\~[;6MJW:uh.th]tyT, oM2J^_QÚ iG}Uȷ>ghþ$ o!Bk"EpQR2A/#⒆k1k-Rw5"St?-l7GS&!8Me3%gZ#o0{t5y9R\f(WA:WUF/;t}p*3r \Gܟ7O^&y KZF s>3R˔ aZ6t?hOO㐌(MϳVACh&aƹjrHj28\Z=ki. 59c9G5U{* Nf0g#,gqy<~X/I|A~@)d AT04EUѳ%ʰ:2.Zf?#ZmrU'pPDswv ZQx|UhNi8'tZ!|S ;HF{ iXKk|ҚU/'D+ (EJ p0ng[&owSC-biz BaP,wT&a*eқw1)؃ե\~"|f.h_)sFI4{6u7j׾[gw$wHcY۰Rӛ&ڟ! 2FiPn,9PhUJTFjqyv\K $;QU6?RQAnfí6y{nN⓴"jmGuAVeē}X7NxF_kkD̶g/ՃHT*mZ;n`ص-6}?rm%W+lW]Ν\*+*b%l_sQMYE3u s[ E1䁄Ru{ ں=E}i]Y߇bmo!OEi\T9D#G:ر< 6E ln`#*q;2Ot<Ш27gQ\! BkxwH\mQg~$gU6Z`Wi1+rnZh] .x{?o "-(A ŷ0=3xt.a<<%XR6(l%S͸xtM?#sƹruw53$;߮Y~t`%`([kgPXOf Vk()AwX=:k0ڹ # 1LCp"]̐ZazKkY0lBD jZSZ+q|A.:VN^%IA f!.ݾ8Apw~8%%cVġrL ךJ`W[j n*i`#E4,ʪrErfE,&Ge1rZm>TsМZߑQw`¥֏ ZooČ3;$5SVk5 G/<<UsWau^P[yb~Ə#m!}N 7 9B>zKȦ0*qrQ)uF*֥n xQ! ĒѵF6lɯ mv (R xe7o uJ^P([nscl-lR[[FrzS Wr>RWE7_"-.FV"DElz]a4OdR[DS~t ql2FloI5 O\]UNſC}&rڝsnEMӔKVa`Of@VrqWhaR-co@ > o~Ks}zqRot\|]1[kol @ujKfn,zcei@t٫#6bP`h:D7+AKcyV6;j-u M%aMh-G no? ߛ_d.H{]߰o=[Rg0Fh&&Ka}\q-sI We ^/nkM `F',0|E.#-rS4\, "v !{ D/'Ip%NZ%#Ut} g zW&D`<a !;Ph&6iHžÙ"iy4<-b?+mEKXqI{{u4.Ԛer.m{2Y,5Y-&۷3Y )c\VXqf1pNs 8%>zў0fOg1|?.0$C>9msM!Ǒ׼bE:I@5u\13 3q~X[ ] .MJ;_Z=$%)_"CuTު_;-OEh8;F@Y6'1Y dq(~fAc_@ 2!wˎOc!$0W$13Vf%QKh!{] ;Vk 8< 0^#7sCjl1lV0rTSwC%(*k%3{- 5!P2\ kX&Д}Q㪜̌yĺAn("|L&ÇqSe/Ct>6!\! _Ń(,;CkCXR4) 8d_6#[͵HbMq[mt×鬼ݾAC18__>/+y0Z+G,kC'g`%gt$'b{Ueu/r'i,RT$",}ڔ\L9c-?]1H(&wMAКR< |?CQG"~i}; x)3֪^[ ˖wo;Gy][(.Q"M>'7g8RhZP=2X5`6'W{@ԹCZ\T|g:`,Jn w֢<@ܸ HKK4./Mcy#!w(Qm6O$ qC c'5µ+ wǢ2Q]:T [D4[Ano]VGr# V f[tߠDڭ׻ϒʋi|Z5>ƩYi뾊e5ZUeitw%Um:5C_2NZܭ+ytؼ#Dmʵ`UfxKV;W`n]8Q l׻,`l`BMF=hFy5KMֆ_Y@^p#&U9iLjnn_/.|_#R Z "ܜmpܽqQ7zCuP^IvC*^pBVLN##V#xJt 5. rjtb0{aE=-Tl"LeχNJUz8AqFl3Yg.POqS ]Iz!aئ:ι4 M]o_KCbתF4C3jht[)E#}&i-E9uY*I`I]"nvI=lА.pgNaÝ3=is#IigNa~~6*d S;1( .(ugL)(ĭ/-D3?Z c vZp{£;GG|p=n_E~av͟]@7?#Y*QDuÚ%* PnTF{>B{f,0OIF*KExD,#fҖnKgD,ںq2Y 5ך\H*Px-D6O?OʒΓ FzFX )ve2 Sn%lvjKj)^7@K*` :5ln,[=o{_;yPٺk)DSz>l+M{WQc߀߇ !ŪvƲzA`lIEJ`ÿzwF*–VDYv#m /IrDeŖa--6 :Bp8>c&Q?MXv`Hl6M@x xX$/eP5koqҳfBhmU{o:OJ]L=U2VVG gDn >Obt-i#sm܎s#Yz5 dd\bpM+ ZFK5^OLⴎK3 /cјJg%e} p8JSJK+JWSPt\X K`Z(M-kCw]{vؙ.>G_Ls)V|M,}7/iJ"J{O#h0ÈcǃbN X4֤!r 3CRU2M;Mci8H;-pI ,կQ3 ƺB5LvƊwݞc)H^fCn$ 1v5?<clZek7uwff8]H:igIT6J(Ո[GBނ n88TEn8-^s^D39Ǒw%@r{*RҘ L-QuE JZNۤk>@lPril/Qj[\7f&GZnQV>Ft Fe* v}ؘ"EͮV@-AN S ߁Qrj^,^%BmTR($𛰿X&xx`rf]w BiwvUm~}h~'߳6mdSC:B֚u:@*6-\%?-(9?VKYYMDnF}0 TE\+"B`6點]#tzBʖ:DNQE@1QZ=f+5!Ǟ6mtwH{*&zXꮞ\j3)(0|X$ Ei/ڟ> P\mF*$^Dk~m5rWH$ 41jrV%4sK!i:դZp ՠΪV|ـ>`ԒF0-377l '[?R0_m;+D! Ms5wwA`3 *j@_CĽ=ךو2~s+~K'[S=5 @sc:t}O԰oRZLCmg֭M*XMDx}ֿ͝.%OurG!kU;h$}i,cqtS%v\ߋ;$&=vuiI3^4 &0 eJ:ذgĚZ1tcV2\ f!Z6ae&G:{nrHXFnR>ʶOR{#|Wݫ% 1/Fo'򗨳ܨ ]=[,Gٺqgf c1HlȻGK41Ap!Zz~ uUp)MK&`Bٳ|TNJ,5)b-e/3M:q\A :ܾܟc8H1p`5I U Uz&sSQšVVMzIb!DBR[v)zXfgđNM$ LkdN4,U^P̘g~+?.s(eF,gt[ 8?Ӟ_~3bBK w0dkӟ5K1;ьnyx.zoaU:RQ%8>F:IS,HXr$,oQ9MB=5!:E 3Si4o w#>biYZ#JY$W >EvDtёd+BVf0X5hQ%0~f`nQN W(r7Re"1G#H[] pDծe8O9kK^/)0Kzp܍D>6P}:/$7zsR2Hb髇T J@d#UrݶVBblqolu 樦NI"/h9~{(W_g`:D8aq6Mdͽ%yܽBYV'/OlŢ=:Yl.@חr?߾n۱_'ؾ,?&$_YH*#fUe.}tyI) ]EplE|P~DbE VU8h{nBZ+ aFhNp ̊'r(2,K{yblsjjŏc ;T!a2hcn%D]u;s-x3qK[JRĨrRU9^x. N#>t .dW6y5[F `::wKwЭ'7nD UBd֬[,v܇{ڮl'an`认VasH\Zkf,bVEla'&zh8aIZeZ| 'N(y~23 c6+T(1扃H>-R*U[e\\&!#y9Wi-$dK;:んΜ-շBRSVС`ƘBHELmgyvvG\+5'R Fe &FQS)5^F*WXl 1p{N;c6 i+f-)[RFs$)}FAڻ*z^ukWy knʫ׵5qNw!~+4w?-{kәmZꚏt= 0n=[ƀA~@׫uEk7,t]_X[+ߒϚΥ2dnk-JdU^P;µZ<0UE6hZQ3@:Wl+5J$O!L+s5C\mPu/R_W5Բ5*;KZwrl N:8P:5[bM4$|/*4nWaXU2KԈY-}434|\ sj)7K!BXѝVZ6mּ̓r0cKL'-z5[;=UFy۫i dJ! *'wWB,W#:[jߛBSr):,gp;٥B<=h m@=MZef,sͤ;p+}@qykK\eFfh-t; n #BnAi֙{S!R2/pjv`=%rnRZ6%]דd?dڀM!Κ*[;no^3h&P^犑ketkM+ST_.F[AxEro]9M)5IrY 53)te8 H_rkN'q0 SC Dh adZ L 4)}]2*ϝHhAz1#F)$ŒGId4pdZ Rd K)4h5NIh,9:{r7нVSwF9L s,Vٽo:`Y+Ս F~cW(q )  ܿMƮnFC*;=*1iNu]Wq)('0sd*/YFQgZ aTKk0)Zi4i:%'*27.|]+%_A.i8~틼>+5*0UB)Du1>t$[b?ުg0S FFaXaXfJf3=`)ԐǔZ3|ze.Fp&'j[t5"|㊹B5SbaR%^~#!l<3go!D?Bm78?1^"2niJeNt>:9O(F wdv+bf")J^:QsAO@K2\Dg*qe6^E`Y4bs 5T -F+%KDWqV%d{7 ȢP}\5cH4y๣wOxl~v7|[}Gp,g vfWĞz>C7K6ZD!zh%nSq JG y^ fWww逝' s?X1I{5;aJxl^s/~V<վcCymخManx(:z)kR]!^9tof$<\ NY;ɬVtueqNvY @nVosuN=NAGi4c fbV1yao1JIQCfw%yuǺxDh.)Hf~'/7аިz[oΡ7$>WMV NAFxT{iWxRB%T &n%wD# _4ĺ!2gJË(;'0j@m~G tFNfK2L4,렴 Vbx$)AB(#mDh&5H 5vL:V50,_g/G5Ͳb˧pr‡{OV78*҆o]/@0!BoŬ4SPjR.<{EaVri UG(=x˘b$!)NgRG$,Ÿ"ٌ9CQz"Ne׿|{p҈ʱ'r^BIyLQhynN3nZdt{c³;Euov{GЮ@7P$ X ]prvұ2LG+]hFsȁ(͹![:{ >3j~\a+1?Ll>R!64vP#)}3)wv<%Cu 'G-0T&MAbD!Ȭ*ߡݓw3.̡T Mpŷ[P l~]^RSx3e=輮0#spf!sY[8 ̆=mR(^F!0K̺]2yd13CyT|ֲBpVRwc<; %ٝboM#y7g.悔F,=2l۶*ۻ-uȆ;ɵ`6ԜfF+ Ƹܮes 0zXVԹXUXުEJ·4c&0L/{JJ%c(8P23T%dԠ<5(2]9_ZnC{Nvÿӹt$0H9mmyƊ8zlڨ0rB9aF ,#IhRF P0Us'ՊFI iQTZH֌123X+ &yYǑjrj 76fy>}(Q (  dG(JS芈0B)7U %*;+7VnUDR7Zyh{ &QP~S/mA 8u'J;{mGɮIl~L sۗq M.@i9*\mls4Ԉ#?l[疹Fzj?g kJm[[󁃟 0zHzٓ4<iR# @1ւN:1 ڱ:]؆crrNc_C(e2-VfhAk -(1jpG *bF?ŨdTkbESӹ}B-#g] rb_׋Rl ii\c}__S,H+sbNW\5%WCè{݈e%x'!e`Ȅ%bk(BErR PV6i$uj`Y3Sh%uP&th=XL#gC>S[ %a_/ʒ}ڋtCbU6bJVVѩ-4^3+VB;k֣X3eN{4h%6$|bpmxue_p2 eǸe2a/ҶOܶL/E-Goi|*K9!7EsPD0OE-=0^›9ecPa$"(PFriA #YL[,` b9ך~wcxZ~} ֲ ĚF"ݿV\C0`MO̷KY5/_ Q_X7{-S8Ϧ΢}7lo >P^:r4RV  jԗvDg]iH)֍ gvhD-(>Q˷tJ(islOɞivlԡ&uijTPNAtVY,]p+GdRRĺL|;[P4̲meKaV@,0J/h#?ܟC-z xhH5Ŝ7U7Pm?vDĝs ?֊[t;6p޶<̂2f7eC7ᦴOC5?#fէGzS$CR4 {i0QC5k`XcULEN)/a"2vF.vX89/B֪Uo+Xw2G_0/򑁱y&@k=lܣ yhvaY=ix#z^Q}m"U?b"K"C+s==v*ӳ> C{N`#&wYGEY6Eo=&A$A;'~ S~*T{6=I; 2j6Mk9h '0I UӁJ1WN:J~ D`m8 7EZhp'B]J>P_՘G'8e~] pkدa0r`']};UF,MPA}{N$\.fF3E5w5uflՃ@kF FVS:W]s*D֚{9׊ߊ`LzvF(^kι8'Zf#*RͯZ#)a9h`, { x^/UtC>Ԉ8sY6$! ⾇@VHVǂL v!*dM5%^(u-w]?T ]@t$ی$Hwt[-߬2ҤTrԶƫn^=(ݸpiS.a8KA|}{XrRxx\ٔV̨)3hѲlm :Ѻoj&ޞ;+3iC6B:zAAfV q{ [eC)α[R9vC-}rSEx5swlw_rNT:r Cڎ[lQ!-3ԏԠpEjg.q _ 2%nN~6ga ,'wZL;`fÈwȔ[a.Jpwی%e|YH.xK%[ݲ1Īw Hdep PVox#wfGL\s0]Y2iXI dj$ 1V8kQ,f0w83 9(rF 整hj͑\W^Hl^X! )L,enH;#KfلSY@TWM~5Ejh^6.r@~Yj_qʕZߎӜY(`VDhHh\s)H"h D{2XnZh) k&~+f~x+mz1ˆPĊbxG|{\+(v__X1H' 2sF(Zbb<+=Ҝkޟ( D9|xOĎ?@O7sW$مSU~tʺW=ۤt}NiBp LBJiym(9|5;+&͍_fkzxrnBhM tw s q )'O<\G~^.t[w n481)wc-./Y>X6U [5^vvmf 0HjS?7I YWlFG6G䣬&~I>o` |jGa]o'O_?wxe,5nkEwH VԮޠT[Y+4sNі@(z(P e5%g+ ]&VPզ3wjRf݉D5/B#f2.e>l ߌTSL3`rrhCWcԼ{ a2E u$y|"GmưngU\j`Q B4'?]{kϱ-JZOI0A`نf2 v',T|Nm{I (+kn^| %ZS%B6 gۊ4<M[?jH#pHwE Oo'YP-r-Sg|\RFJCt%΢Cf5Ub@ZB6DvϵhFJ(Fo']&:n0:{g;30'g3W|,N yJEE",uf9e>(| {K1PXy2 #);~v(dk+x!xQGk~Y6|(SrRzLL A J1uK1UrE|d$8eH]ktÜLO|)FM YtJ8\v`U|zIْ҆bW1}>LSr@Ьdc@ 6SM>+ub$W&XXƸkdB3Y D,QQGZ`!%[qw !t~Sb5 ! ^.Zp/ruq#_][@q=w퓴{.7PD= jGg%5SH}VC 7Q K&dDzhYc5o3[ 3HدX~_y!Ŋ99{Z k2-s A\+m+L1޿5Tk %Bxc\[Ƹp?[i?xWVE=Ao'xPuLq7^qz {WujlXw"h{oҰ0b(jv؎d-ׁ[ I.çʙMFr8Eb\Y(fErrL(S%Y,C82dVO]}MAH[W.bbnl>Cv޺$2/rG%0]ECe1e|e_ u/7A%3H /=Aq ObMJh'\/)L qԜǀ hC;"ZN \knUɚblAMX1\zhʣap+1 OXȥjsH,{V\ LC.2( ܘě/$\ip2V\x2q(;u@m i|9vGf05z$훂|$:aP+JzrxLKa& 2.ʿ+.^hmG>~x0Y/q ,z00/YLLs]=Cf*e{=ϸ 0DjW0i}hC)Z0 =S8Ņ /)$Z(k˓x#JcC;k@1t3e'Cҝ3=,*+ơt@VNTwB*ͷ>~q%?Ru,U>w^!FA_h7n9g h'=lʕL|j+~JjM"Rw^T#L> @sU=^m[gZ'AfD+(YPVK/!d\\'M)ճzzfE|\}=#D53gGja{[%p@0ifn_yxX ;g㕾xq(qNd=4Eiہ9ˆqٗ^rVD,=#(`m4\QȈL_cSp77h|n4м{ tC7%%( 1KHǪPtXGN x #>-+k"4A:_}3hNYȠ70n=+xl6kЙIDATdĶS=(C.b Byz+0v}+ s)7VmWDte^{uZQ}1hΔ$\{~5ZkJajHI?~ZjZQHkiM] TpS{>K~9nmƜ*xbA'=_TwYn55Wt{~T+tA 2u]<_~,zuexi'֟QDg ެbcx][ډw65N|4ifx~&J;Tj (xs72}HtX[\D@ޖ.k^Ir {<"E#7]y&llN20򾔭㇜sTQ]Ȥ_cAgui*HVPǺ7I1KG-"4O>d3NN1d-w^s+}L#jnD5ـU fKIXAJl +y,,UÒ-aԼ^Ӵ8;OR%/č_Z&#=US%Js+Lf3 9D^"M7a@. ]>~IF/.RJ(<9z-8ml21],K0޿q1ȹdƤ)$M .7BH3h*9J7!k5ך7w=bZ, @7K!4̴@[+R1"a=Ժǎ;{?gg A= ďW:zuTTŮ_L}ה$28j@'#KzcƔEG2#@zS[W4rPvyϟtƖԧla*# {k1U4 m]Vr>OnjyONmŚqń^a<#l}dŒN6V7!ybM*w|zȳu!e@Zc-&|(Uڮ*]f =xsnUL5E.gy> y>c/ݓ>k<:;᪌*xt9ˮ d^_8R>)glʳX3|E"ti#buwe4$H^o@ƫ&df6űҴ6Jܟ}ES2^&c7aLn (q 0EhWp ! #.!5[`r4f}X`-I)AC2:ɵdo Ɗ}|sMZ"0aAO+UK+jXHւ/v !V ~F?|GUOg??P?Lo)guR\Q18"{P~l,'>$Rcl(*1>5ƌTgJȩ.rGĔdvz>m k_{Ȇ7_}tx#[RLl϶!xzA#l²ꃸe0t0; яZPFdk&5zTդLa1tE6[)XB]IdO(;~[ io?vTlX(q+HJ{zDϬ!20ѷۨFªx&:&pn,hٞF }W4cxXYA/jnbSAB/f?^/ Rr^.jJ5wh/V늕]t`4Iÿ:ªFl`2ڸCPAmgGL___U_/ole` {Rf!! F x 6,=".ʡӚ_F|쀽lMƲ9!X,tsѦŹrV@s,bEVtF{cT-5ş᧏o>/_(%GwCLVm-P<r(IN$F^39`In/]5}v~eeIc՝V!`<07(F焝O|kpT#Lr 5(*֨^aOə,Eq`Tv)[4`?4%c.Vǡ7Ɯk#MDj~d\Hޓ<`?1"m<Hjd.sgU |!lJ8{On=;߷T<O ZVgzLe6Y|/3mq|w HK+.I!G/rJ Hv*uE)X5FwQE {즙,UX?lݻ2Ϟ]ڵ⛬1n(Y~뮻W?q܏o[SIMO{9Fjw GڼY`H#h.a6R&'/H\XHX@X^)X KxvX4o(DsA^<8V KĂˈ$ A+"A5Ss@KtB HULHmdD)ih㖓y,Bs! ۿ| 2hb"xk^X.#z+5kV|Lꣾy:rx|@$Ҡ˱K,Ju,zNHPĝ@.{Bc"HRI?0 H7m6EUBDLi)}mX[y'Y7^_ 6hKZ 3T|T|NJh5?i_ /LvYA] (8#>+Aq) ;brn?J^$mNYۮeK  3C ʂX\c :`& Voru#%a"o$jo9l- Zs}yZJ|=8"VĊ5IXtk'%"_ߧ,~{Sa5 ʒ᧙>|x:=Ow16 Ի#Q"@wkسTbdC3DXAEnK;l>n`mjiVX*@ V)#brCB9ƐEz8n('$Y$!kmIDFGy5v?sFbLQo YVA6%%ksF0i%g=w,H#%NA̳.0 0:lʅyYUo{Q{yDVlly3gBklolH~ӽ?bv/iAAIq-{ZHlP3 *O f׹4Pyv5G?cp%W;4~#f' sh(wn}o8VuԮht(atijLVT%#߱7$R?W]Jɤ<ώYWͫB$SsWz;kF?R ZmYh;qjr x17rf["*#[m{)0>| KQnu>`{ f7$aM.xj,(#V -9KaX2|9p 7; %Y bD1\I ?4d#J!wP' ĥ`&zXj" NT.a8KGR%K$@5< Z b-Wfp&lЮ}Rd>@YdCJZ[c>^ `War~~f'Em}Bt,^0IW_{kY({+ljYM jj(6D #72MV~ϊjT00|vuuk2y{}߿9לo*t+@W+R-D\+l?ZȘ>#KԬW@"97p>cG$?~|ϗfZ*#Huv嵈%|qI5oaJFWZ#3+F3{h;pؼ"4,$qG-pN;29`.qTu@P+tLQ-G\OynPLeb>|ڑu܂֫sZy' [>ժy V@O@eaJvYBW?Y@̓Y]ԃv*gZ=~.y3I+\Vnd/vj%»b?5_zФd,^$t! #gѕIC}&7n F*6Gnn_I ?G@[ ա`\ Յxb{tE@ 4qG|< jeur~Ɨ/xzG`{c#=(:a=]Q|WE:Qmή-"g5()d d3]l9+zyVr,3~~FzBɌș/}[|\Գra# .)0XZ_k\u.VKJ"u˒ 43xp"V`A3rl^0ܴb `sD" V>*#afc0MЍw5/nZE@FWla)bS;Bk7_+0% څYniF!c%e >9DF=|YcAE $#X~0P%\vQx6recqTx/nZ/Zԕ*&k$qc(m rap0q]/h}ev'5L\ y~{KqGjE*Heϲ*È ~?iS!a:‚ #UN@["rrT.7+'% yyK-bJk.oZSxW|LT=XLJ3OR=UVx3=䚈N-ٱʂca[԰!6~ \XuS|g&v2g Or>n(#:ʹWH0v<ɠza %ЬjAyx [RZ qDٜ@\X Iǎ54] b}p{mL\5mHt[C=ȡ(B4 .z"z#D7ve쿋?Fn|7BgB5!-ӧEN(ȏCJ8Nf:~' 7|G%DxώM.|mvPulDN;|(oGP' KJlZ$ӃLbI59~yj㝊L4X)r?hFs9ang߼u-UP9< L7iN'U$wҧ;S|Юa2*.T߱+bi)#lfp:2A)VWqNhQC܉Y#Hp1^c˯UXaQfv\e͢$!!jJ0"daRȂɄ潗 ̾Z) ӑ` JfP*R}]fcX%2,q `)q3'^!Ĝ1qbƝI 2*FF>.9t ^ ] fRQj)[h}qqJV|.zndsr 3~ϹFT{zQbݩ>]ю>L! d4aJKXXq;֞$ob,TQ)WuB]ۘp?|ϟ/q8_?Ͽ~II լZ6:޸:نnt/`j4U@/ 7;zp(o^26ʌRĽKIMA/ʲdl栍="XFBgz#-irj3u1z D#kηbJ]J[Ҹ 3%ڿ27CEJ@pۭ%ScLxűٍTȳ5[Ė9kc`SnŎԙuQܔfEgmnE˽ qR?M{-ѕG0y$ @k%h-vXk|өmIjI0ˎ>7mQD'_" ׽M5G03G+䳈Md?y2:eu|l)"+ˍRG)fmLkm&C<QqDV(+Y6fkߒ㗍Wbvha`"lS^0!Cc6+;Cv%[t8$D A0V*kGD4glА ^ kcb͹b֚SWED (bO ǚghh k ex8 z@c %L',~K_bWAqc/Vvc#4sڈ[H 2E+KjMRITN EO-=>5wkJ;2H0jĊԈPHKar4TmIWCߡu,*:x,~!x5S”ozfhfx Q=xrET8ڣi+'i`yv,v:[x^)%W> AMqխA'݇s:q|8c:&eM_Q7С kׯXg*rf+䏓7ٽ]x| AFz]XdDwe/uoY<}r2nlzF+Г3_~ʕfV&pK/TTqWd1J WfުnZ1I7Tw@~گ3]t-Z!F]HlSᴇqNib4 A} UO^Xo9Vؚa>!xKR,L綠RHcݿar% 1iˌ1pNrʟ$>(aN${(n'mnn>_~ςG;O鎧OqEi{ ;P΁<@IsBaU;-%Vj7Vcr%RUG>CjTuMn0Jԥ2'&*h|B;N}3`R$KZK)}:!{"L7@؞i*#b]=Al2#$ 9;ۏ~>Q=Cov!J8}!Tθ>c:7TSYOVYg.?bϳ>gw$A.5lA  p f3L&w mCo\ D7Vo (J3;'V S^Yzٚ֒D'tD\TC:P7B[vދs)YXh_)3;\"4) .Z7I)}%oF)4襸BoTX5Ӟy[32br&TSE&vjffauNd^v:s)g>zZq6N0$R429+$+w!ZPYO Bb><%aA 0HdƋ"Hu Iɱk,fQPVA3@[J'&_HP{|U ާ;DL|~x< ݅he]n(w[wlxM?7̙%GsA5UiIR.!]kQhzR<_9*2 Nj&VD`m1H3;ۨe<3OFpGJJ\I[> QRJ, tup1Om򚊃A7߿1`׼i1CVf,e<*3E®[FVBhxZtOǏ>?u|].M̹@MS{%n&t7CZpfi),N[ ljƃgVQlgY<agN5CKzt<7T`+H`Y5eB_v"M[Fqد7sKMb?dWx3T"a{rc:H@(4JBn2Iw0WR2/:^T0w(\ŇORAvjYJB|Bd] }o_fㄹh̫¼pb0&$Tf$O+Vf;aCcN4p)3#j2h~>Us W/k qJ.M7 *eCd,!,D[ΜdKfiL5EK~D Tikj[uD$5h"K%`,Uo$j%F>[0Xa__%ʶ?ܟ{~cjBS {_ɗl›]L&e!,)2=I+Dɔ  k|u ΋)IQs k2vفofF7"ǶIwɥ%8mh0Px%Z+p$C@VrF4ɺIfO>fu)aB28lM~v.:ũ8iZ[MkC:=)QH1^EdWRuswXXs š3*:8P?~{H˟Gt\,tV[~ 2&^dWz 0rHH9%nv"fhŢ&̣DYR:y('V Sl[֏Swn08h\xzuC-< 3傥YFK>e8I yRMj~% gFVddf2"O1Kv鍲.V8L3i{=!MpQgwYz eПhȁ#ϲ/H35GUt3PJBwjeig!p]DznJ,;$ymEh 9Ʊ/*c+ ҥ^̝O-Ҽczj':iCHyЊ g]b?O}R]zOk~\>Fo 3cUG]Nitq%g}1lxzcDDsS& eKT<=,*\zR,'B[.\bB5ύ6"hq].DWh2Bt{#wDB{OT&H=TT3zJDM`;Qv)EEɆYU^l=Ds@DG0JnV=5sp¸ 2w Uqx Vu!k ZEsxX1ܳAв԰_4ʠ"M /c#JcVe)jHdc\f6-ېgw_WkpC"9 k#;/3Q2g&I7U}CB^Wft@`Zd5A1S"L:{vjP;ȤjG Wk sudO-m%Qhgޭzd <ޟl-V* @o;bI k.ã>!pG 0v\b:ɏ҇},9COTq'" oXFCw0d[wW/if%KeAY#1^Øe{{F@]mAA6VcvWlwoL5HF3t>XQ=IUkQ=F@t߹mRh,5+ySnT+UbN"+|DĦ W(^1chв]f3F{ݙN,˝rO5%ۗ2fd0oYƔ5&̍jN='GP¾=</32Pj(#aHLra#7T(J⬽svpQ"FD5o_EK(޴'P҄rjf\=hA|D!'rB.>0j u܋xߊ[srmkA)VHw%Q9*-FVDL4o+͈5M[@gЙPL#k/΅; ??mb?sFMWg!iq3b-yQv|v`7/r3E -.AL&FNl3RA'(y xy^; \)qȉD!x@;hbeyu՞U?N:>yyQbO&:0{ K+qC0zBnc_IuK0\=;"`)9ΟS m!Kf_W~n; Ul@lz7iEþULB{,X 9ʺ=5!/kAHd4!Th1I-L[rq$ᅄ3,H-{/abե(ESU4o=:&}qͭ|qΙyN:) VB(FhxU3t)jjO"&]~w l w{;G(*'ԑ{2"Uo,+ hޖ+H<+hIan['dž{WDмC\qZ1\kj;R@^ĺ#"Zk-VDWFXڵ9u` gm_~>V|~CaHȅ(꾨Fr_۠+2OdF{>3JVKpI! 6ۮ~􅆴 ʦ<<1oXn#(! br8,~P0k7ֱY,yFj@4p~(""2.^O~>:u58-FTQu1Y:sSܼ:lQ~5>RhbC$a5xo25}ԾM#Lޔ75n#K7Zg}]&>ZmՔRzuL|? -h V$σ7kw$4 Bg:;oc&kBS6E #J &rkX|8#R۲s>fq$3CsUOUÚ /tWRsw?t݈S+XSb?MmӶ[0R8CFУuyҊ13b9>Ln[ҜR"1d2%DdsYn \bokXF_Bys;hlDr6xj nv1#"a~IpHG+.%fZޚzkuy\E]FܓCsJYBak dT9틔{IA+(RJ\M3_{[qX[ aN]P| U+\0Qzv9xejx <(",Б&K'M/h"<أXf;GZOؐi=c3@]N4EUFV8^kFF(R]rS Cѻ޺|#M$MmBX)hdhŚ#vxMQ r?y'DKQakYO5v]hcuKLէw/W2qVjӤ @ڨ9dZw/hO&6AWjf#؊#߼ٲ gTCl޵]ZjH,0ǝh>'@#S2sL2҉Ga+:ahR`fm܂4cB0z@vDaʎu@`(>+l#\0oGɛS ]{ ÄKtT]*G?^%铀PX)AK*Re+OVR\p-AR6"r.cR"a6ae_5^@h :̼Qct(kFi]+#r] &ab~$ 6&{"Q{= 4>__ÓHcIOa|E '\j^FFu,(`dhC),I9<LC4 2gJ +",+|1kSѷp,gb _f\sb0wj"Xw= iTnє!Sk%/\_. v6^䠜Lz5(AvOT=Ύf>{T4q$X@Q%o2ԀȶFx(mZBuw L9xUZcrbfwx;޿;bpXMVaUl-EHs՚?@vc՗Uh|rd ."~F:A?TP)OI,Yq4~rOmO"w([1%.?(#6QC3\Nz"tURO*XI:&{KXiRxRM竸(Њ՗/ET}I|֔>1dIV7H}LRWW~?;w?04:EDIt6U[DoDșu/ ^dx"erol_3Ht`çy7>mNWO>vJy~`eͭ/D5$eNCGjPI^B"`eI@(r@N\as۫-gh&S#APo,d$*!Y6MX ,E1  ֜r0^M =텲>}>7$l6/njnpB> L|Zя VzzU[L@`O(F'f2b9|0,I!r|upOtNnZsF)18MlEmDcF2Ƹ"Dǚo]x4i769+ONO6^b+'ӚqSj_gFꬆ,J`ebEZ[w"@dp8x&v ,0ݳ kYF#76b" O04 y5z7{qw@ O^ksX]ҦHj(5$$DD*3 DXDz&x5!U: ZKOcZ;Vh |h/O~%k,i='A\  #@wݪ,fd6t*wd)#y[5 )VS\=%Vkl>̬,u>7uFsoPjEFMSm] Wk):IYO[e?5C7fh?9'b83,g#48 0&pTI.)X><]S3$(8Rj]5Vll);_;޺٧.Ԉ X}f,UTf2D-@YsXJz£'>2u!XTfSݓSj[0-h4^2fL d".b0jw+LLQvƗibOy2=?Ðt;>w˾q?.@Q&:.ZCmo&D jO<iu vMȕ:iEV +ٛd4> UG˲Dnl>Β[j K$;]BԒ/1VL@(r0iϱXVZ4HtYA啳+ ba!CsNsy՘{|mlc$YuhvsΡTr zN( JqKmxM;aR@)wNө .-zL)\"i.,wQ* =I)\n5rb@(U8s6}Ggoӧ?}UC>V½5Lj-90Fޔ'2ޢrZ@2TIQ$((VFu 0)Ay(b-1ǟ+y/#jV.h|^Bpw fԊKBr_yx];Vk:#^µ03e#|˴DX,q^Xr,ьc$],ؽFڍ=M )~fF>@Y%|շ.j `UD}{}!UC(/ma~v5"WviWS;[5ed>o=Mvd8(7tiBclXes<7??~ ~YTo[Nj<yzL{=v3+R&0<An vZiף枺%0m-R[NXo4j춪,[pV}s**N6;#E'D¦B0T>C lH[p逴5y`G?8~;ӔCqvU/dB~m6.ˑdʵR6J,g9@IQiqjʷzШL2b|ZPAپᇅ5ӾxD5&G-,ݣT2Xƞ<\ٌ#N`qXKS>ihGRS33 SЇU'4ذm+]Iu6{ af돸e\liLzrPi 3mfǒmV{Umw*߬ Y!_+F\M7@ۻCyh߮ve4=M @I 9GD-|:ۛd ff Q^"O'#>z3mJN.F@1p`NszVLƮwKT-QiZ jv:/j¬XiV)@_>ZaQt|SYZE|^a$&hA%-ef,>{0+#{mv4rTZnݜI]Jp-63dT7Ң;}0#ANiH^UuOc'W6+J^/@;?:kY rJ\,?0=*x`]r~en{A5*<5:N䊩f b#%YufEhv"T"H;e~Nym:'c}8eG}ZcmUMpY)CD-ۧ,%/ȉD ,Dx9KLZ`7&/R/[~2{Ƿ-@W(Iпo2]}/BmwʯkM[}e]{af׵^يථmW3D,re*^ҵf~1<@\ u_4uq][I;q1dtSfwǺUS4b U_,w03auԴWUkRT%sC3jUIrtL=$FXpo}oWH9V(Q}O^;@=2bЍ(LLJn# ZÍ<>0=/54 >nksqnV@9!xR}ͮ2Bm>kE_ Qҽg_Wsx{BPyMju6$<EVN]pxTӢ 3#![_6<(!>*-!`(+/uZ}M1 z呓I2Ơ\FKܮ|LVk~70w/AܫxJ=OV*yuWw#0TܱT~]Eh(4F{aTI[?/%Ә0f|a©9炲r4^\.@M] T}{ Q$I+|}hr 1v/V9 S[ފ1T1mXFzρ+qT߂}kړG %UoC/]-!y`em\tE|.joHG*ϞJZ9rVŤ絙Uӑ:+YM~g־&Bj\puIިg'\Fᴂ#529ÍhJAKHM2T1!-&FK$8Sw4\r뵮bg_{D_^{{eKZwкk q^La "ʪD eW9>A`kKXĺ^&'i;P龗kk-u].J+eVCh߲{t[×Z0Qљ1(LW* ww>S-6/թrBc* )c!Э0=Ke\Qb $7Pݷ{iq39^c7(Q:a["Fьp--X.ۂp.^\ .Dŝ@li8J2sD8(aF̻\N, -6 <#خjc5jj9ŀGZUʟ~e~L*8+o@sK@#+\}_5YkPm΂jQ Ls_:+;V(ig*'~*R4:>܃)Yu`` ; hڤhLɼ<^ gFųqAZ'SYE'G2+ ux@MU\q/n>:bު{k}qQX}25˒S@sCX[ 8)=dޟX%]ft f7t!nSaŸ|i׆B8о}Jnλr%fs i{-sK H!YƀȒD4gl]|4ZFkUSq,ǣRx< v_2͛2qe OZwZo4pE_r_EZᨬ2Z[+^,(@[0}RQ܀6w(tyj#ٕ:\I#\~_Y'p^e KZaRGN4>#@POqo'|cG޾j2ajadzr+z&Շ}(U6lHy^ eϯ2ܠ +U FiyQup+^ȸǷ8EWīHvaE rE_o+ bV<;gx9x &.&kÍ4:Y w7k Zijms*FF2AgX3c/X@`F3w@$B$a rI"2rwA$IF%)>Rjo61vNu<`\On_cg @ǥr#u-d-]Z!pFxg]W21VgjÙ*8C0tsU$Ե~0E t @]gp^aHgugc]M)!R왼ݷ힍][fW -zJdŪ~"KE#Q3Ne+#JO_g c!Zs2PJt_"59_gfD hU8- ]((P{Ki+YvP՛,պF EWE?,u3g ^26E: -2fA%s2"rv1c7QaNs3I~^9$|*יNbRQ8?G}@7Iɍ zQ0kYe2,j[_h Я;*MokYuG0R4&fA ,2X3KmH1+ ' 7%]Z!2[.i2lBBķrcԬ7Aӛ.! :55\#g GG^Xr={GB$m3H벗Znh>y'ofWb=M.Tg 3/s׫hfq @7Z~}3Ψ%<ryYɟ+ L}sFn:MXX"G@8x2ɋ -ZİfhYM 2=}lDN^#ND12`JnR)*J)ܷy: 2֬jaVg2+Ky&Dyɒ|E0 Y1u 0[/33Yv#UkYk$<)ɢAV)"#_;OayŀnfrL|Zo.y<,0jْ붲(^@Z._(1*(iqN<Y *93H’-2.m1ew/~<+"ˣ;mZ_$ώ%w7//Y/Os# /ioݷ'G4҇Al BE\Bi|ʦ]Wr,!!oy\P$4͗|L:kDuD|De y-V-hyxMɴ!xިRD 8=rZ9g7k.cE\Ғp t0`e6s0^I o ; l]r̲Vbv@Ug4pQ 4,\'L֋G(ت`kt}iUw6aM+p! kH^1Fٖ7VYO+汎'+D5l1OI.Q⌽{7 u|XOv@.9JwUSsؿk5ongd)Wݴ&-)V2ѻ߽ooCAJ<!#cZ`%gUj,g M9m4c˂sLckdJoQK8_H.q6!wY)7qd6JLcΏM ,RMbz&:nHiʎqPkYґ5Ivu<Jh )a4&8q-6&;Ή 41*稕@/ ڢCr*_OdgHS9h +,0cqT^kFUUEXJ)Ai3lAg3[4Z z/|s]$|̧_g$\+[Ze(NO[km]twVHyPأvPQVX-VgD½qB+0y; ,\rs;36.xar:v q,H #夢o߷fS_*1nt #qvL:©n{H"]5Q[d-ߗb)ݱ@kN?:~0@ZB&d`d4Gy 'T柨/ZP};aa k KGmFKׄ2z^bĨZk/7UEo.̳2vjyULBN&6Mb&5š SCMȾs5_((ϞRSg-*)޳ZwG~u/Y@ kB[>3'Xo(aR2Y +ၪy> iol@,)4$Ak7o楛3$ Wcmя]ʭV]"v[d^>W)n )>lq<eQW,-m{[E-iZ]n{Om!!9y}~^V\-AUG'uhP"FK"R%61d|CκP@Uo&dBf2Br&$a6YЉ'bU5ÀƐr*`h&[fwpx/V:fJpAwkZFnOϏoBKYyn 퐃!Uʉ#k#C,\D]9p1VuU-GI8XY^K~dVУ)7exEoܷyQkiq)Z.^6$J/l 02CH^>i-*eLmVYe+h.x@y:akB"Xt=*]2𨚧,B () ޫH-ٙ2o뾷[?K~,[ffy aDB8Wpbg.rS̰w88%IG;I ʇY~@30Cܞԉki=_qQ13'@+>5"Tу;TT$^\I-}.BqWgxQmh$c򬗇u}ߐSkEvœKX{2K$Fչ*bWV+p89yTEJC{yʸ*o+b-K`1sTNC_lu5{zm{,Ooy8yBE!Gx&[`+MmϨJɂFNgv)2>=;}RxI'UDHt\}ؙ) w>"%{G)c WݳDs&{}-Uyg2ʑWiK8b=#rk՟!Gg\#К+ ʇsƝJTiuVWͽXn`Z/+TE!ԉĽ Ic(Z2prS3-nJX ER :W/5Vau%xOIx-_ zr ΫEο8S%&&0 YBʱH9Y1}U@rTS_*aKvnbkL^^fh˃]k[ūӫ 9RGh!Ӣh!dHE0(JK] }pS ݯ4NgL:1 v,u~@GNVhRC 9-|$>~/T8 J91y(x-ROД:[lS Ke- bEϷ07*N#/ɳciTjeX:GUʬC[{-|S y#SB[4T1,٣V+Sel}euuN*GQ"&ir {GMI`(ScxČ\ 2.tT2Xp@VO-LZ:5-P̒`D]GNlx[1syuYru@"D1eeR,4O xz{B[H&TbGĖǵ͖MZPŨh })ze}2ݵ\ٖOjЮu)}=g?o* ~u}(TΩbY 7DeT{՚zAftM;XBL:ụ oE*qu)ĠӛII,z̻ҢE묔{GѼ(?JkMI M~N37`1+8A #ٌ>jup)JA#*ٹ rAͭPu%\`..Ks,⣴ [ __2[Wm-d/IJB.Et#w,[vc;=g;\֪ /KU!ƾeV*,p$::`f8_!M! Ѫ-273EH_٢oq}ܷ!1b]<| &E&,MJy'z81ps Y1>jK2gߐc؆8X>|hiX:>H6MeW54IU|1:N\0̾ ^# v{Pٟ edQD.DRqKIDAT !ob [J(Veon, |7f'lM\F1΃R\:ҝD»v"C'̮* ]< szMD>vO鑣ߏw+/*4{}8YёZ3N@ |dV܎p8Up-M*w"z~'LFN-QR,UOouOp(=\)"WU=9M^ʜ};ړﵾwO1D.*?ֿG#yF "qZutЧðI(0JS3P{ϑc 䲉^!FDa|]Z7BFH<7G15Rl-#. f=Uk[^]QFy/2`f g;(BfKB"G&hӲAO&hӕ ~Dd!Y$Ryqg(d=y\ ۫JXmk6=-k}F5̸RMIVn7PNMzeu9FMNCn_5Z?.CIJO|uupLrfeγxTT 9QZ!_(RocAkELTV Ա*Ufp}'I7[XBh]L7~!j%n@:}BZQwCЀǐWO\ vHzV>7O_j;?"bυϟOW/WTXWՎ~~hkEݫgg? c!"Qi/j&qd˴o/F= -;ןC45%KYI7M?}†b93yZ6?PΫ8Ax Y Bd.\ATnHZw8 ՗/kާH$/ss{J@tQG,S\Bb,IkIn%j8G&H8){_X쪴TR'9`wV(s*~ٵclo24Mr$z*~[KPi7d~ Lڂ]*nr>vq cK;j!O B>o`w"şx(dىHȦ1Et-NJ߫0&AHx :Φ}|͏Cs< T=tdu:_+2POҸJ~ŦsME{z!#@wp9O~zKYS=c[r[_aR{h]hX.ՄG;Mϊ1E)!hEivm{E Ѫ(U3*\(dQx."/W!cJ}oF<-쾳y8@cyq< .HSg,z q:H No3PsQG%߮-+? sFN -7Ư 􀢪H^lj0S$&5cW-0v+GJKd/WU}{ǣyF^f/evEXQhPi {m RYއ:i/GsNΧ1A?jUw\>C/e:rH3P|}o%^}ߐh[%6q+ UoDD}F܃XUsJ :ZeSG1 NDh-`k)VdRɳI㗍h(K )h.P-{*@9h.嶴K>L=r]NUĬae .<&JbjpHbg eF~Ynj'`/x! *YdzrWՕjL_ l-rmo0ުfnu&^;)],JXba2W!yw;fD~_߾־z { ~Qf>DC,~+;GfI~>s( qM׿Az{8_3lQbv90bz+tQ`TZ1€I'CD|PX/2,2QTZ^[ZC#?r1C}౛^1qglJuMd+ w4o2Mdg =@ṻ>v'AWϳlZ 7۳ǒ[tOW܀`J!vUAǝEezhW)j,SBB쩽I TvՃ `Os 2'h]Y*P?a?A_ed{!IYgwy*Q1擠LyiB.jQ |Hzԍ^: V BJju6uFHe mw[p=.ný7l V%[x'hX:;&UH7^ͽTv\R]EvvD+ɒTsg Ve"U LMXpVҾt[5V^=HAWճ?NllnctL[t ]q__o-[vc tf̾;MglGI6ROx`e' ;(suWgi g'9֎%1Zt~zX +)DYJ؁Qb SJvw[QﺕoNKHN9\E~9XlV iFoԇӏ5E?hGiX?$4-kquiLv }X -v(Ң&J[q(xGP~DW9ݵ" mխNbe;S筓yL7݌K`CG^ ^_e\9(֩ր>ϡ 6<,BcWyLDv*ZP2272AZ\Xh' lۄ풛d͎O57獇8eC,96Ӏ V!J[ :Y%{h8ّއyxQKlsvhfZ?4\V|(+ݣE{]g(|R!uV_AӖUIޢELF.Fs7 Iy ^:C>{TNE"ҜDEJRz e{ l銠z;$9_!R&X0\ݏ+.rw߂gwGeұ$wR7/-NgT? ܸU,M;ŵAITCh^#Ql"=q@{?P"öAc~O о`TT4 &D bfbxTT3I=yhNv퀦{o_oKѦ?}|h؝fDRzFec Gm5)Jմw4EP/=د>D>F4ռ|h"8$,R8>(`k,EH(EUl<Mv[xBf/2:˧snA7q"?G~|ӻd`F6IˎEz'GU PbLy* ry(Ag)1@!:gN`|R#_Հ>hhkb`܇#ڮx55tiq"G9\} :Xk;Qט}ݘNH]׆ڽ ͏}>K5|hz1qvbFɦv 5m \-#n}yHK㻢ehJo"Wep ks~(nc]sHh=;pM͎̞S"e<[2__v5m'er9Y7koCn~TI"$4>gJl%nWCzf:"~I4ۈK4fQKS`fǶ"9G!|Шl!.WqXU[x@l\OG.2u3c޾(9A!.- {ZZ [4\/h{grTx* G"R6 3KpS2<ͪwZPQHarCqM;܂|Ntwĝz}_Ex!"ɬ F6OΝC\[{k]\oR6YC&5# Y>> % GDw@z'rɷ}￙?z ~a .Tt N34CկJC>bz|ʿ~@,['=9' wqAiu%(*F^~!ʊO c[wVGQ"fї/CKf4g\Mdrh-p 5 "(Z`zfJNU*sKȾIQ|UjOYT:];C!_U.{w[bJ "ɾn!JiY!hr, U!]fk Nqv}XC۱{ 7EZ>Oc9WXO:w15s gs1mI!͑i{E< >LAzVR 28\\u1NlrJ|fKfV]a!:2WRʻ}(DeddL,Z+:5S ]sqflȪQ`('%yVTd^'7lʹM̯41*lA;`+|c{6/_Z[ UYbj^WI( Yvq_"YIӯ%`NE}Q4e!~L.us `eOR?wF-ס>ޟ˨sG}F9{^̰d)i@wC,'EI4-$ZZu X,#1LϡT>%:՚ 8TϦIc,{xRp/3k$*s/US Y˨}`ĊAlrصK[p ;c?-10;տ~,bfߢŬO|߽l}X~6nO+c ie>nlӔ %+TP~WJ_Wg !H݌Ȫ9p KIyr'KϿP:[˺',h,#2f aitꬭO_^I_Ă{&x%/ +9"xjgM(7O/a'j_^;ˏ;b]])OeRN;ߓf?4ˆ~,CZPQp̜,ӂvMDI ,\ޤEnyo5Z$nyS< ם9|+ѥ\(/|UIw?DDKJLz3ߵ5>l-7VzclV|Ig?-h^ߍ w9W\2yaP1}FIp]Ufn90ڔ.3V@vy@s5T zLg^HE1: i Ν$C^uV?yӅxcL H)TIytߖ yժvؕceDPBwȲ`S$V!j//z˪T[ U|>`_h וuQ$][& RA>]#c՝phJZDޜZg=6Lj=F^"QSJMW㰖M5S%X7a?Xq,۠=]TE,jܰx˵uDwDcd?:.r*TXoi8]ˁ 5%d|G C߸߀+J`,xq?ssDD9p"BY?it8Ws QN#MXxj0 ́WgU]0Q8DbT}*W 3!ү\VWv XS^ƴ-{?!9Z q)n-CX(Qq:Ӗ#>Nr$@QvA{RټV>d9? ]O8,eK3F3#C6IK֙tYJO 7'sq4|0%95 lt (~۽=Wf\M%ӛ.N 5QD0L(r'$!*mfS`RI0Rj\Nal,1Eh`*a^ܰ`{*M2TfE?|sZ鈿<& R$0t|LtЃ|QBKuo*B֫@uUca IWVd9KJE- ? %!"SL٬GI10k<8`M,f zVEPQr<=r 'ن-UD%Pcd; BC}뺀aY((@4*G"5} 1Q۹e*/ e14ڕu DخYCeҮ ͱRCPŲUm|Wz,gD'{뒄-E  (ZźdODc pE/Е 1!(wiArGJlx bh74 2vyig#&TAp? sfĞZÀ5f. 1mSN8g\^O69t乄1.P"wUƾ#t`u{ߎ,fU%\c! WE-%yv7{UDVcV磘gT;֟v0 ofL0 ]kF5Y&h=Ӗts*\~(YYx }'Rg{k#3l[?]KR!>J"uN4,^}XUq]ƦXr<;PxǶte\S>4D W"a J&(V2o߳y( ~KN!r >XvgC.O[l}[KA Zyh{ېWJf񀴣n;ݬt/5(^':c8!ay}ʐ&58l+<6FU;/g8/2M;t܌,E~Z<_\q0@ъE h2? @[X }/? ^/{[J~}¤U!:BbyzŪn[DŽ&)ȴ(t]%6cdBnzA٢f}4{ά@YaѫhՎ [d$[߮ksHg؞|n^Q'|?;uνa+Stx@ǾwRk>'9j3Ϲ u\6XO,y3 !mۨ5/mLNW|> Y$Z*xc~6$rUJ@ϪH{”Jܺz|lzzD_Th<ݜ1EPctJ .}2D@:Ⱥ κ*n]kgl9Q)Z^jmY.7ER#P3y/}Blw 1|@jmD;=GA;ԾXa3:h,WaA\09,O]!y-5NǔwGBόcE +4; )j@pWxOorz;γs)b,k&`5UBrחY&вutM6 $StTh0\|RJec+ Ua3D,x#ݣ3m( Qv08oha-قD/H\/FEn^1PM$@+ג)y%F{D(x߀7{hb$A1xt%>Nr6**d:`VÂg(+e `6oyޗ'EErJ=.Jph#򁖟:=2~ǥ1G턚9=1GG cA EpE_&>vH(l Jt ^/r}w696Ke<:YYJ둔|aqoQv~L:߭7zƢ8a4 egs=?8%)6 {`Sv.8 ̹nVUl?>IYK4TۺX^e1c8| y:ap<ϳ4>_W9pj8MEN DjK5YvDs3Zh/U6dց(1y T"EWha>I: Xme- k9¬-EI,{!, f0[$|oYv*/5u570ce6*ēU4հUVbi0rځQ qpxۋ.`m=!̬rbN, q]i֥o_ RpFE>g~ښ\<)a>U poq( |*/ܷ"ѕE%%fi΂B_pw6ʌ^2jVݺSN[cI56P2&t39|_[jEri7NY;fݵu?^O#TvĜd$1e<;{7/V˹g-:dx|O`(:3X0NJƃ8ƹ~WAJTmxӯ@6 ;kht(Uᒀ9um8nA,oM{㟰e Rc0ǖvnFY{T#@VT1"陋)񬩌X=.}WhWe("R菾rWqnJn=?~Y&MNO+V6־7mo*ĺTRh&RB]a|ܸ ;ky0@y3z!ô<_o|^3&}ؙuuѿVU%VFAtfJA9O~f:v}t"='׾QrB9" 0[WPJ>V~ƻ@ u+P{Xzُ;&M'=x0"IOǡ-#2Tx ⍬2T9ܭ+ǃ_Bbp/HTL νMOilXym+8nAᤒ`F]ΈR(S$U  @peFnT2LG>M+~EAܠƴ=U 곺Ē)sFvZjo'Sh-)<%j<{jh&7@M^ea{ꗈ"gίe~K$:yHV h+? jE lDK)Obr{Ld+ }e^.udlH/SJyz O$Gk|E>m} kU\EM܆v⍇? 8omXڹ?Oj%gLʸRN4o}i2C ϡ6NUsާOvzj'$ D'}=l! >E4>D=Vua>ӘeUQ*a(,R`3];QwybGȤ6IZyͮnmۮ[1Rì*F~R:X$FRP (?]flnXĽO#Qd?o-jΞ?ک%Ǖϕaq@M|>f5y*V*mѢ fakϺ#@9P |n@7V{ qHcX.{**lCc `2ٮTQ>yZx3ۍFԉ׿ɧ~Y 3 eT6 3Ā:2Tox>6pq+?-.pmTUqvv8ђeà;S dC± pacuK+$R((_ܽmkD%YU}U}o#R$nA͢e[ L*S)N }pЯ%` @+Q#b=2uo}~~s79VQS~I\e{-z.Xr{N,ϬzLÄMf7w9DeSWhS?z40?Uh Qc/ML/<@ܸ밓rxzp` v]/{ GUr+,DւCkI$҇<iN#XQ~q=sM%4hWI25{:9u" [#KFAM4_f~#ȹjWn=Wkq9~vO!=O̱:rY㠊TɗvYt0؎:jl}{#=\uO(zVQFtkGe0J7'z EV^._07EypNV_Qڮ)53s;,(ՄUfpr 4kS]/6n7LJ|`ޓM Q񎆾o︥q'|l:{.r9}u;;80q`|ly+S b;oL/D Ipeܮ72,ĪLGs8)4z9JMx:MUc$U щo,6{8hfZRU9>$|}ޚ-mgm.mjV ~?lhtwpNVpwR*mÒ|ח\KM{kGRQ2(KrHiYޖemΦVgl,Lя|%r~uQHDI2 oMw#aGmǶ1+#8㇙8oؕGWz@e4nq?d_i 'a?Tv*V1A/&LtgE w $\(KctS˷Aܬ+X'w[ Ύf EE:qeh ɖF>F4 #2x^4mWW* [:9$%7u >%X[uFJfWK9AWgP bvWs3=7VvONL}f?F>t Gϔo9GXg; P0\'Knz@@;!tXz? bhtj'.X&N5`abu'lP^_RezUI,o4eO!}^$D9"r# ]O 5meq5܍5q QJ?q:!O]s#+hC2M#y;78*'iS >f(#<]F5{{)z ۮ eL-2c褷H{=V&:US%&1fbܴ"I犸k,T$H[Z}V_s{vw~{˽nPDVd ʙ0)~}NY\y|bt#w!z4FD uy-{o~(+^JcO:h00 YνmL]QvU9LRcSJ~_D8qǍpm6^ k;˯hRP'T1-^6Dٞm'Oߩ딈 E:kE[M҄OMaS w7HE$Ҝǜv5ny.~sx}]cRMfp8N$PH=+N= R/Z#%φJg#rX\piHP츻;BSQn: F W?v0$><,PO?E~4q0?.9Kax =v-^5Vq$Cۨ Wkn$h#`%_E^fBy0JǪ'Ê*JhŖ 2>yH:d!!%=zt" 3@+ 3;Q7ۡc(JZR|Вq$Rkuv"A-:BfN:X8L5ӦΆ׍`Z\wHgִuFFd#g՝+B Y]D%C*TbTn;"LgTO+eb*#Qmxj7>(:4o̖oR5lU>SxeyJ+}%4vխI۰]c%O"1k+x\P\F-lH9=* '6Ube6yj{1cud6,YuJsS}ҲlBUMTr>j/uNIbGѮ^6+gϲP7ϢC ԏ."3@`:˭ m 8~ىr|}LT7+p+fl'k`(#j'wT,怅o{>h@C>1^_{-2i +oR2#5+N/by*r]jzyX:crZ8fINR;3%*5Ou-q]Aן?{;S` .GU:EǧcÚ" eD,npw}Ҿ/mpo~D' 3s*^cr8i? aKڽdraG}Zy\ԇxqwJ|{y 2:]qԀ KQ0E//^rj@aUf̡KE{TBjh% .4'Iߴ8M=@/#dA}dҹLQݒp`INni7-L"%,|Z\AyġHagzD1f'?HqsL4 ^:}ҚdO[=4;V۷s^OolTy*1I9#zH@de1]=1 }'yc  @M_r~nG"VgIC'g%)]#o魞fzR(3),[*!{ C73}W:/y}ؽ4=ejYQj@uJÙZfJ]XC;o{ 1R@gV@Kw-ڥea DkD.t[Y84=?N>aǡ#z2€tYZP46(ݮxܤeg2.ģaV[*\`r<~,c,i?|lYeU{|{ڛǔ},1 /McS{g"֩lj2ͻzdQ2>ˎ딩g/Cuɞ5()3읲`hM*Y; %6W(LO,FaߢM }:ΨW(#u72g(dz&xOs 6?7ykBQõTXqu,2stGUX wnBQ:^MǞxLył{oTZ"|hf9k؂W~fpKXAj-' BP؆q_y^{Iꂟc~me3 Qm߲x#4$Ek]2}p lby!nN]# z S/HYϚ:0K}/A \ ZOzv#cγJ#wG~0iՈAj &qjʧ_EF`躁FI|p]nGnpwQ%Ϊ¡<t($Hkl]k]UI44c3Tp0`l=wF J;h`GKrGA'\8Q|cU\XQrߧ6![HTNE*];rgarЪ:v~=5YW&Jc %[B(PdbM.,>ŴzO7wԕ1v*ҬG,'x? @:![ 2 !Ml")qx`wvat \0< 1 5qh4Y/rG{hBgPRV'm 3b '>0LLMg.m4|)emN\43.evZ/ev<4Ƚ{H;|m<'$+7ٺߊ@lZA=8bQ= c=Ϫw:1>U]ٵ`J"T`a}7`z#%Xs; 94eL{e8J4ljZ٠qjԶ7~0}-44ҫh` Qe+j"؇A+AiٳKұ5Z#_NCq@!kir͇.7i'O,r 5I ^H/o; :'q \Z߭bWC5>TObC(%9_t/3U58F$D,o;w-)PVjKOd(fwfv]{p/-#澳5pAVu@n\C"AhK|V:iVu:9ԕtd!Qq]y_tZtdrmD:lA;jrУ'|\Xx5P ɘ7V[ gKOVW|ZTCZ?|^jngVn*!u'? sHe g?g[48/u9'CMIv|w܁ǜb"$tR\廥YQص@(ɜ${N;v^!mYk.eUTho/m'ET3 \lEV~ԇ z0nBU< 0=qZC21^v8v4JgՂS =H#.xXd=щ9U[GFL;`4Zs&n ./ui .]WRQ#9Ճ KRx2mF*HT "ژӤI06mbqjg5 C](sڈyIBE`IS$c^.w]56qY۾XV;$T]M8RHQ*M ̪C6S ʻsBTزX b% 4oKܿqV4] b@}ewcO^=U*<!؟}zՀ/5lc"GK%/e0 $)o1bA/rd,0QFNEa؆LIhzM؆Uy*=O5RPpp(S( lag5czdFNPne15bjS38vҜL.fsەQEleFq|j#7i)"/_!G6xdb>{,W]O{N{zP<6cS߻zxxn2jpLWУT) girWHT,sG[<0\!8$l'|M|d՟LVo1Ή}pHd A?I/]J-G~K<*|Aՠ؟C8iYF$- `ĶX(kp-VCo{և](˳m@F`S޸8 UѲm!PǼKE 7^6Up+"TL7Nt(B׮h7YTbP'13<{Ql /a-F`/lļ܄-`qdg'vTm"mm`Cd9Myew,m̥I64sr}QC''qbԹg|B=Y&ӟWh{n_.ҀT?ng~?lA!zR Ggw&N%pKx܊x%|/LmFGL%/Bn[$hP gL>IVN&aq`돻/ۼ<<y !|_'.arE;Shr(Qk?x5;zX.\Ϗ*s :Qjs c[ 0--s2ƹ,>QjxӴؒ;M=LNU)9,U߃TI Q\>\e}7E6 )7b6~re^zXm\fw) -~UgNYV:\*{c0(Ʌ]\dlDV#U咍Kb0$4'󤷕?4?œdɫV8-8Hw5eO\1dHP + #| ^vaSeXTVf5г(b^WZXI7i+mYY[9d%]dJsP_}X,B<7%T/ +ɪ\UuTY :ZY}~= GQ>Ϗ`#s2+u OKb[.Dx/X:I~`y/Ƣ9onfwqv(lTZBnUFOEأ8Ъc^ZakvLȮIϳ D3OvepwќNwz"Z׺_f=ְ .:;ynk$l9˰DY#^bCT0%i@eq S%]rٙO+t۰)YY B,O,6!dU(/WЯPV2qNYNRK}TQP޸~uj|;"E|@hu=V “AI(SU#$ r'<VNF+.80 ߰6#4mЉ/^8e;q8h̸r0{Uw1ۼ)rRԫФ!Z)C>Fq$cQr#K]M{*djEwͨS S'*O km5  ZED~jP8_'{nN8CaoyJmgA(}x&JXD/{ooߐU9vCo[EhY2`y쳱{R&Z6ṫx~97s-T&/%W1#/%|؂Tt^.%Sq܆K`잤N2BKJ=O,`6H(DxyN('r@^P֨ Ɣu/,H׀d0=*֬bAhql`#vj˅=ԶF &+q+zZjuVpS:NmB%d3 k4oR5j$Ut=* k';Rr::4E o&d@EX%kl #+Tc^4b[ڙ] 0?Ul)G\e_r,])H6kYw5ҫN hSD̮xC @rDs̰֟4D oluF-\f+37>7oM̦>4[c),kбY%DDdSA ]`#Ƨ%_:Vφ7W@m8D`'5k0=ǨԎb'1ZA"'|Ul<8TB龛E! &̅{&6&.3ЧݺѶ_X؏?MRKiaWtjXdԋtX'̣˯=+ͳ9\Un7.p"Xn%M~E`Q@3][<,xoj}O1N$yr qJSb=k~v?ՇOi Q\~/AIZhy]7 `ftAZfO66E3kʜ^0G+_l;ͤ"5\IQgUIw,԰l!Ir8Bd:Xk(PJuͼ:Ի ӗ-5 ^  vgYA_ [<bpK?޹qpnAv{|%M Jk5uQx6摩އPHnr `gbw?؏0j} ǥ7fV~OL=(b-dԿ;]诵BF,)RA8+JelW'VNMgu1`q(&`pVǥ@s"枋A%e-QEl,/$f(\v\RD |mfJ'l,i>7O:gw6C5R~'/l5TK5 Lih ҭImhFEPvМtqeirڊl|v3ClDQ/%"ZUR}5kS6| o)k|,vsֳA(֋UrUFVpU}bUM(q> Kg0-Ij{_0w 1:6,:aof&B{ŌqEJZn[^Qu6(evF 6)<%7)n*C?yt%,徥 *&Mڌ"cTJnī{wăTFxgԷ=?Ngy587LU;*#,+߬%'=OV{ 2S1hbO1K۲j L^ 箷h3nVNxoҼg򕭞"z2&:"L!SRײZvhkU#Y{`&i6=HE ](VMZxj\EB#4&JS ;Z QQY *8)fBysO_6O#"UZ =Ps 89T`-mmY/4V9 T W%^46fncoʳO66,60h6r~v]o4߬;M6%s d88K L-`FSI/+3^@d&2Մ+TpRrpMA&#IC@0358ފkIQ`I$Ҷ`[Ը q{-}1ZIFE?#T-&Rhݬ̜}R3)\$,OA|';͜P +m0hh\1DzVvkRSCv! P1۹UPeVK/u0ZC%1PhN#Ψt Fq~9hS]ѳE&WeٿkdɌ #NlIOBFk+QҔ C/2|r2 +&7fiJ)\̀VqU;Ob,xL6F2{Xܘ3T+?E}MrP\itU zH0|aW5mnlL&d?s?o^W qoⴼ>Y.a`z;6ϘcќQӻfx\vc`\J9\ؽ )*6@.[YQ2hYYa+ u\WPyO}}`QQU=U[ ک`f\؃F V6i}S\Y ; )۔9!Z-rRu ,3G?jىT|RH[^Pk.(dgi%tTijՖ h6X g߂˝nOSo^]̓eSixt?|[1 9e]GޘWmLgպcч,c}r/gw/>T-Y>\qVax)d1MZ:}(?bwRJ`E?>f:V@NfF"|?T7>vJ<"70#87P:G6N=|o:Jڎd1QQRIIUKвVL^$0 g>@|/&6Jd=/V:xD;q)'cy .H nrG>}Rt)`]L>/`g#B޼GGQL4uDpq~a %H[a>茧-̓^C4v]OˍZG%Wz_U[hf^Z:߻֒=<Ϻ F\T.73crZdV<ԛ&kgFEyF٧,'B %&9"EXQH.wv r/n+ ]t_m7ZSκsy~_Ӄk~97R.Y6j;Z`aR˦w&gWg-{,a!pd5JxE$wrL2zù1&'IWS9cGsZOe%0فG0]4xpgrO(?5 :ߕMmcn oomWWDK]URi0ɶ̀%vBNu"A֊62u AJ:-*tYWEs[%suVT]'6bslme KEֳ -kFul>sq[? X gA~~DQk\Ps飫rys==?T߅ EyAugP"޺/UCڪaKxWV`P_ /eFN,|rh}%ܰC$GqwU(Vջ 2d+\X(/#;$$dhf/d)YLgBRҮت+etmeJTqfjz==LЭnYKC@F S8/A6R3O0`ǯ`Q+pGYvhq&Q;GOr6vRqّKb}@1_׃:>z>rVτE W.o@k]6?WXh|0#dLwRfEq}*pjO8#]Ӷf|ac0erYYXA[/k4?=ǾO09 e֍%PLsU 'T8NW ;zgAVAV keh޵-Y֚ 0vxp !T5Q)أ8)w  OxƟpm]C-V=|e~"M0mA[J .!3e)`:`ЊlzdՒn8W۪1ɬ쮵{7|>Z>rn/@̩4Nb.{ ,RPvwvXɥXimCsR׎6F_tD5 Pe -hˣ(a^-cYÔՊh|Jv x#|wJz/ם?:K\ȬmKAa(׆{d:P|x wB`ѐ9="2d_H?#򂲍8\ Azup+X'?Mh b֜ճ.,6T#C)mVQM@Y " CTȫ{.zyH-9_?Ϊ01UO0Uu4O qq K'{c1Pu ˒B*c"paEҏ | 8S:ip[Z5[1k&tcqL>,Ȥv{Q ؓi eD :9F'vs4m;}czdzLj\wwT.E[T87ϠuɋE;<9=c'd:Y dkYGy18^urmR:P{7Z@{?մuA1Fhfvj6"’m bPGUXaT߳i 26V(&Kq<ӭm=KVFZ-tU ey֌xܑvtNŦ Yd~6#bM)/P㇢Vcajm/Ϡw5y=] x@/aolZ %ahI0c%#Ҫe6ˌB(fsla.ilvꕐ h2IDAT>q0;GӘs([C6;X^XSfFѫƱX՟@ix(<|2}c0VM fۙeUYw%_m!eG.jӫd4}Vrf1@($-o9="yas lL{䃸`OYxٞ$zmġɪ';i}4lC?iձ?2Ɠ \odrAP?9jѺ^t/p/*< &-Wʱ r9bK9^ӖW'AU;vO{UmR }N̺/x,9ĻJbvS[!y(3Ӊ,oLtreP "w E{Qwb$&Qϕ *94E:büoޡNVO^sgSd]?9A0sfh9t ݚε~E5ԷOc>|-֜{ւ?%Ǟh>on$ҩ3i)bXCܦ9y0}9YaGʕ!ϮIR j -%3A0H33qn=6|q .B,Ɖؽo(mj!4)1op )p+PˠF,$Oؾي36wP,Ƿza g32}/.7 lժ?k6?H8>Qs1tmرK/CsVLYwq9.E} #堛]*C;:fAdq9!MaZ=m:Q6{ Qsqt^驇?3'~;4YBDire+_=d*f,BU3Z=\cS U+X7q Z!8*)!o515[Qm'wnh_H1D-k4aś]4M[lGTT;f+ؠRDfpx@LJisygٓl6/s\ */®怒YOF;l:&%vJEOƍ0.buV.B412r~̊>ST/Eaqk ;BV nG׬ i)z4ê&'t]noi\nS6-屎59 sCs.YSI˗Ix'sW|0۫1lq'<-GsP5Ο=bQsx|ȱ5g }_j 盔G'Srq YsܺVR8;ֱR3=4#%3iq@'-qw'VXs=^M w{5i* ]D-%GQQ}Đ\I]VX\rL;}03ۻ|Omط))Ș$[9}O(?bd7x94YS | ͳGL%;&c=DujUn3b7I g.KY8t!z$x8J>;ȸ:3ӕ6؇'H-MA )"GwuDV?bE,]LȴUq:BԶj F%P0z ;e|hw^ORTe FQyv^cMp])Z4)ӘJc-tV?[S7dIJge@V}eSTIV2>X8hE %b56{9Ԩ#~uy ebdZ,JQ)\6ΤjcY |<'=qG48υX=2 H'}nչYG!|OkC)ͳw_u2!r"%.%kpLs/ ^wb4F{p5+/Y)lMݐÍH"Wg*NkAF3˸ȋ\\% v;fqQ ]f0 ݇yJ*pCw(u9uŌLNwn~B2)nZרӽ "jWxn@_s03(E/ЦxvݝLy5 zVy vqcy~kxQԨ ;{uc {mΰm;m=v3f߾5Mt #jh1*yGJ;l/#@*@};M}vHlݮ[nOA3mv>[zF9aAy #H%7{7*M H Cde9±=Ȏhe=?;D~JLߢ5^1>6SFP8Z{wϗjƲ=x }:x\^'j€ F}62Շ7TXM7jS:A.3,{H1&DTJ :G%)PօI$\DޝYf!Bkr-N:vmL7 MMdA" w#b:x: wo[,iPI t9M)r(33}'0lyk afYp僱54r5̊-5yW lBgwSIu(r NlzB ̽JO eMàX\IālG0i^a$fT13Tz Ɲ{gw)à436Eciڑ!;٭A1[>.X%2Onr+I Е(EΡ:"w4] 4lɨeydy9bkMleLJk.ev]FDmma++ 䐌p__(b!:ݩqv`%D=  wX4y|ڌVG'A9/tYef/k?"*omr).ꭞtd9)r@&g o[6u³4:8A6luG'<.*XuSsV$=3p>e|N'^' lI%k<~>?i8w6;70xsll2gAgP~5C?^$R_[~amŜw\l|c{ Ȇ K?ImYKt@yY-Ϗ7㬂vzIu萆U(< NQ@\e'i,*nbBu3nlI"M7L0pꆜ MXy#6볂 !<\Ũ Gc_tFH]AR!#H0?iRvͫ8s%(> ʱJus }me౯mѯ|5}v ne+iW&l׿/(CO0x݊֩%BAM@#SvMQ1఺p3JJlkkB7ŪYK˶:qC~Cuueaj,"[>q{7m[e;t;qrPʗDz’d 6 -}Sdj"caQĘ]YEoz ˋVO!|l)p0K>:O>3=>llj:hoﯽRdŗq&:>6#5PJZ]-P?Xp7ǵ+JjedL9oyl?S7ުf%-jj}UꦾЁuGA4#}0-[\yC.\Y!GZ"(g-LZ6v溊gwv LYP:!(Lۡ 4Q^1atY싉ZQE %g4뵶9V}G8Έ ͹fgT~VjQm`j0ƴyG [٩Ӓ\IwZأFЫ{:b %M'j;w9&G`;i3࣊ ٤YH 16mQܠ`V1^{L;@t~b26/SR?<ڡ$G>6x/CurҞˏ9dᆾÝoE,f朘O0>gyvよ.cY<[iRZ6Nmjж=3/YIS=چ6$Rgah̲l2X,*o&E +ZFheC{,dCniiLhG-Sa# xg$.ƷUi'|'<Z.ϻL@$g+cG{@ BZ&ᾣU-NV$`ت҆-+M~NS&=W+!ՙpy N{޽`H{π}iv4yZlsu.!e-,E X>3yh>$* 1*l%OO `٩5ϐR@ 3[`1 vE3ܿA%Y6eZzkuP,fAŒzhJ6> X-Avu m٘T\ZR1Nԅ ɰo_FB1OOY=d6ӚHjɞZ Φ(F6J{?~]>5i(CG 'Z MҠ ݨP@^ 7cz@}ʛձ߱GI2\G!aZ`2H5;{By: (B{R !'%ao97 LR!TA8ޙ{qG p_^uqssBGqVEkb-+TC5|z=t -;`3E|QVgK#IIs1d~.N C0zs:eRzFǃ:ƈ1-t@5 WT#<Հ|vzLz=$Ֆ,B.uv׃;TlZ=k}dS[-vs97m&^X[nDwҏߏ5M>~krGC!&3OJ`̈́]NHh5.h@Dn < Շxx'UK^[x2G\TI},^rU(g(f0fy9} l&= 3|`u-XC3֏}qyn^8Q[sx#1}إzO#vI7 5@1n~_JX/QiHȭtx,ZFLf\"eM2Cf Hyu$ pqeJ@VN,PŎer9 ka-e̜wMזR424#$7Đ5p׮hKwJDHNL2C}i| =g<)IZ˫]|k%stcB"R=TgPMmwGshN*Fސ#xоv]%.bٱ$;TϨڤ M7AGu/0-MREy3Z=~iƪj5FyggiqYrk2}ZCclϤE lؚpB!tr;9\3AP;, @Ia-J(\4JgOw| jTNl7i$]Z @tcd!tl>j@FhY6.U397Unۢ[\f頎}Oaہu.-Jκ駽N+?!:rmGj3"Yt㏋jqu(p FIr3DKfpUd:LJF4x?i4s:zOuFUEҜZnsix难u^OcaΦ€z8ϵuH&)oGw[ꊕA>T 41O( [9EEs?,b-EÄ2ZU6m4XcLY3}2Q{,>vҲKÏN PqrMwWrP'Vpu L)O?|cɐMO ݷT~3]r@:+ )ڂ7JeXMz~Hޙ^F[j];9ـw)tlniFIuuo'C'ՋjFB#`[ ~+e:mc*οsD=>8MIr8}Rϗԫb$xxKdD+*LD v͵6K!ZMdNW$XCC\Ư]H|,.^һL'# h媵l4lHqZZXU&1^3 9Lus |bnC*?=DS$Q٠2;ZޒQ6Ϋa2ac ;aI`x#- G~q/O@}lFQv ?n(In˜.uuGK1?| Fs3PФߍ'ِP\'m}ݵ 8{2/*xY4;_pA]Oa2CM:Kω #h{:*6);IjJ+A+1i?'z LGt<Էо *ס#PcVggмdET KdDlQak s?ʢX%IAC'h6^՞)DW4zN)L:ȾƼoඤ t$6k$Jedwd(kLكJL?e}jnx]F  tTlaY0Sz^=lUگi9iIrPݧr* i$'4a25?s{O[Um!@vSui/h~v{oO(ŭW(nB̖e5}Ge8t6&Oa;a\LIxyQ/㜹y>:mVmJ"@'(U؄~Z[ +`c^ReͬVfwh aj[ƃȳ٤- ` W{eؙனLߺ }/Ab}͍nXnRX]/- \ 9u]r\S6oݴ`BhͭϚJbnU2a;,Y?twEfM͠^i]6"$rz3|̣D ǺVDZ)勞F;p?jt5D䰪OVhy\s ']%8D;\iY #յSu^ִ18]ri=@ۖj\UNQSͲ84a5ö| K~qsݳ9)@L$ujRF{wyd07 }] X#+MUZ+"pwzh-.E{]h!ZQxpp0(/Φ?P]wCd+aWW^Ղ1{R)yQ܏؍%9[^ 6F存sdeȿNπ4bXIJ!v6Uk(Jo oʄ>y(]n09,Rǯ$2g2T?>OꂟoIrڮmSB+i7!Ol[T҃2(YrQ:XGXYڤhHKfZ23nꗕξ(p{o@.v>g7,Bv"3ޱU!sfL-AZ5t}^<=yxǂWj;oU=$y#<qnWyu%q\Bq+f=S` { LZafV v2c NT&wP%CDɳQ9熥 Pun%$1DZLB٠0$!H.Ȇm @<n9i7n70-⺮a7[~W"7g2""züH޺J&p_b+=Ue Nd&lAQ˵=5^q*T}:"b{1SAض'9X7qɺ( 6j VàKär=P!`hE5'w1<r 6QSI~W~T/'pf$BX`Gȕ/³af֥N5c7#4~L?mf&dȾG 6[ _vB7` W} DGe ;9$jf3BV ㄜ:0M*K/RavapL]B\fٵֵOHȳf(EbH~6="K%)۹gIB$(9 dhr`k|Z ZtsFW$,6m%׍9εcK1/PĨ 78 3M*iId&iLu/M;7b=6;оO˃VRuю~]uEhD%wߟ8ᦎ)ɤ d?o炏jN?;q\[tn͵?Ϛ>W3Ѷ=L\2["SȸG[&[U4EbxLJ*;´ُzN<\ RYs$e#AZ!ٴu6yRFSd@zR!|﬈Zr%Er6٢^u]K(YndEYOQdD$*bINvfaDBU!S}b"\Q4z;jR%;"?-Wlb4в8[?GC1c)ΡF~1.yfm7o#2>y ޙ' ɬpᾞ&OtH6^ ٵ,^<Ӫ?>lE6~%J{//w ][Y Kn,Q} RiFՖD[eC΀)ue4ú A,0PXjZk bŪ"EwMV~`m0tc on1?XKHj tgsi-` K̡X~h83hpⶈU[?leoo,g&~VԴ1=4{shnrܿ)5w=*% 3>6e[M`L jݦWͱNf?^ua~}yM;NaLQ0#vӭu 'fX$"/49dziv6lr9!<'ݚ+~#`eBVupIiVnCJQSD8M 7 9eк߿efedx]@C!w^WbٵLv#=BF%Xj,woY?x=4i<³(6`r=xDco*JS&ٴܨK|/_ʮ#N`i`@*Vp)fYb7LT%:˸E֛Xv f4%e)iFʢ>_A(kBT!tA3 ߩ^!=h #Ar!r Jr߽ 0N@T%ڟYɜ /v 5, [#0rn-nf۪n|jMYEBdeЏ8-)")jtp)~tZ>hҏ$@FH-8=My+ڭwDkmZ3rSs}S)E{6Ծ{m$V16CoaqZeZ,f\{p;&ibH)CBJXU#m3WËOIv eZM&#фD9nO/(^{ddkbE5##K {e3]i?C͜g %.#yxz|;U*=I_TeC[*R"ڑ5.Ev`ܬ5m2-1eIttر={-eHgd W]g8Q"!X[LeBw$JPAKXz-ѣ (ox^s7i"F%ճI#Mc")k'9?$vfhfbچs \ r[0c0S`cl/V(A H b#lZ;kܕ=0X%XD y >[bᨴ`%mkak:sFɑNZs9Ljpc=cݷO !_?LR'BpմW^K;GDeNW*^%ڧ`"$#Uq, jǹJO\x-|> @XXb]o[`DvW|2XvHI}A3ZHXJ,2.uG+9l͙pRͱk#XD?uB6b;j55s#jjsebh- [ n;V;Zx ?vArhm6}4CLtEIwx4Iapҟqكɝđ43#LVhuMMr#iM{b<`<4 z*#dAB0dF#24瘲t4fQD)]|[w}Kb1Js-:f\OЎpʇ߀Ýx3#rƌF s;TC4پhM;rk" w?B{1CbÒcM&X+"nRfP45gv٭ReX'56KO]#]S4L=zEK6_[*Zr hPƕX[Z!zKz]?f9;"J$NX]wwDzfZ@D-3ȯ 2~.TʉXgecФjRsNVuyʭ2CbfTcmVt`kUDʡiKq{@3% [l71]5Ikד4&Զkv凷>?#<䭧[  +jz/`͈Mh-70<\* ZYnXd Rr0]de2oFQ,ȵp-]fF6BוC{i~YNg&o^+5HZ#o0JҺ=g_/ڊSF܃*3Mݣ=E!7⿠2h׃ڭRc@Q22VrQ"W{#tMNg|Ŵ_D3Vs-O:c l-;? =HԀ}z__M ?1}gs5?4C_ȉl(\ѻ:%WVLY։㋔@avIZ GKVkUz=еh4"2$wܷv\v4 f/{]}ѿ^Jf0˵mZ4 *Dו3ݔ2UW=h0ZwLaMRYjpOAK|ٚ 24m@>NOrwIZ BFHMIEvo˗?:0l.WSHF8q  m64LGZR=NW Wƺ8Dn-`@\LiCξt24gUSXoٞPI~9 #$ģ#C~%˞"hdeZzYN545?[ҤьpC2N h[&&u$ ެ?6Eu˽v*cGWq~vM9I6mDT\⟉ fÌ,JocE:GUFؽO9yϽ'<㇛ox'8mϐYQ}Jϰ Ȩ>G̊$?RC?P"M…VVxlVY8[;,wX=ipK2VyDjPw<3_^"l>@%>Q* m>S'1ՠ$/b%bJpߩKqCg?zrqY[#~"kPڗ73>FbvP=(z2Gǭo=8-hJ}EɁKJQ= bZ+|aa9ζ6gc`?f5kAo&k2z6)e4-Z #}⏸=!_I^.[FYjF[fɓ1Ppu²nnJOQ:W!agv B줊;TSX3`Ǚ6泾ਹ$q:Jl?װEq@f$#ڗj00 w 2We;jVvjv˼cT$A4NѦbgV7yWn)&j%=RXȀw^WP5d] v4ҶFPoWr(a@iز_> X2"*mP> D/g۵=PxOLg<޽~65 #ǧm[SOxG+G.}i^НĂgd`*WZգ-080,8?ҔE1O!UVqomݏV)q,ӿ_Z6q{Om ;&^v}A+DzIڪ|&I՟Cdv[qےt#®r73[ta7,ڶGMH F[^BaV-˸e]]@J;53Xf0NUGAEd5v L^3Qo+F MZ8,>~Ɖ DSݿQП,$k8ܓHuyIfF81KSF>rCtJ-$XJ,,t+SQ8Mo4Q|..R|.b㓓8CZ;Qm[Qao0ebѾ74{> 0T|PgJN)<4q}RTj,IiWEaɾ3Rd~Rֿl,"h`Du)a-o+T'o\һXvVF*_j0w<-d74X=DlJx^oh)WչM:Q/?zÿpV#* ȱdb/JEC<&BH^ ׫T]ɥnvADeNWIH_q}J,olٲpzX{u @Z PW 2g..I#Ȉ7e Lͧ1@k]d؟Hhs!|i0{#;LWWJ+RzGhaQ¬h7?ۋݔ6ʹ'yc<`ٓyn 9\%}lEE Okz<ߡGYS{l=?|=<zsuر؂/PExΐ&`_0^~~>&KY5dVH9TnLU*;@qÕ7x2O&sXJ _ʾMkMI_URGIN}q.44Ix)g9ds(YhE0m {pupա#r4jJ8QJTEPq |ңSslޅ$LLy9s.1έΪ?23J3 p_F#OAІ`;(dS۩[=dεqPvma>?~eOaTC;)QZom^F-0$uĊK+"pM@\ɲF;uԙ YVXb%UiYL6Ahݷ oEyjJ"aBbƱDr!u.r9!+\wh  !4`>~~ٯʑлi6 C\xȖ7k$8K튵.#~ Y9I{ʺX[Xf]]/2doNT`wlMz޵?#6SOu?ԉÝl<#Ø-irT ~;`v4ꐟHt/>"3>fkJ_{MvO{4]jpDCE jt/AԢ yE0T>[D6dWK7?h'-&Jzw}/u -!2roČDZ6| MC8ݖ5nSJ~82ЂS~~ى 6H>+ : Rev=)כF,-V}D"< ɸJ''aprq/3$ߕlDfKkQoA{a_׋ k-/믿4x76y_u "dh 4vvXlvn([דG`ްŗmÕ{$۱R`ĸQ#E\o {ggxGV`}f8OXH~-ne/ `kJEHP`!eqEЫB+"ג [YPH@l3ѝk0&ITa@IvU+aMmVCd5Ql>L9z9NUsi33S y!&>(?z$bZIgt U >+݀n Vƣٓ8B HB >bsiC5!bJlu\F;/$-4y2Xوj6F'#;1h99̴4Ñst j'INr{"7*IENiy@*䞱TGΥбU?&w~]zQ[Rֹށ;]SMe }󢧃–:e>{lp\y?r&yp:]7j]Ur m;.~|(w@{vʏ7 oDXGuVl gl}pʑ ^ aIt)['W 2 3ldeײ;~ ׿FȖ %K)MFY `x=),K(4&$"P7e Pф)ˆOA01_:ɷ\v:PuͷW0'(Qr›Qegdzs Nl oAwz쟽E!t OOjl#7 w[8dv=O ug Ik<߸M=cKZ@{̲s&vf󗎗v?|^Wy e'$ěZJj`z[\a_ ()bd֪A DB"6ù#JsFMt9euo, ONZњqi arQy}qGNe my^&"tXi UL5jӄVCT,mqI{0P#U T3b5'G^0":a @k4pY?hʱ8гY:sX-"~Ky!w;7IThN[oEK1v7!7>b{Cy8֡&&l׆ZU*lƭ5k[S}F 0U jl꠲7#S#"$tSeJB^ZTٷzR`03ՀfyVvZ~+n7poG3hO~ELQ }LWlza[ qHOy؏m[6sˏ,0h«|XLCgpQJLk O %beY9͟mҰ$xevW|˜++{PDPJv-[M5gykgֶ#vJWSnf]*[|$)ޕra}Lʹ(xz, ? x|Pu*W39CFghπY4[H}-@&[*!vYNkXl84>|}urk FNŦc[^:PKTF?mR/J'8Oc5Y%|@): Wwi(|fkæFɣРs=qxmvGC" $RSXLA}g+EIzV#'-͘Yc@~܇=~T? ?¿cbfHy\:ԜS ;*Ѳ ~3UjU4XVF:tdm麇X>]ee2$1v,VJhmJv*e5DqwHDk>ZEG<.-C;] ҉{ ;˶5 Ywj<($zR)%A2_D$`72H-ɻ_1];H嬏})îᾱVz%)MQYWo)+\-ETs;9tg[/؋x{`/ bfzEOBr,'z@Zj2lQm%EzDg 학ߛV-NjC,btSߒg?d)SB:%ގNmZڞnU)n fN}&pZR.M\^F8++k'ؙ~"jiG3Vj>t7ss<;:F;~lm ylvPLyН)_%d(eZU"AɌ BpGHATdu1m˰.bzY,`ٞ%%~]e+3R/YU!;v -BuZ)o/AQRd ˖N΃wH.=d M;L_mQ 5]D邮lj{B4J4_4ȡYRR̡"q9ÆIO'\՘ڮ%o2x raqH? )ΧU&u*Ե[x7tW}8n}kY&<1IDATUhIm}oCy7߷D­ɳn8v n[!7KJUHMxtW$Ki^ďDN)% 9N|Z؏_nJ%G HnBwD/v?Q{;ZcNw,P$ SbZ w%<ح{iN;Zԛwܳfmf7iH7o+l ,Akԏ-8]qy][:x9"o4 Rm>~,'Ӏs@,)kIXߓTw C2 qp[$uW+REfU-Z;?t7k-A nmo X@jheG5FVMݬj}B~oבձ@*S*!鷺{˄o) N |Tt~ z@5p${iBre\K`j<]N؛$7c~EMRo;cTN5Jyr<) /Uy6ZFo7KВ(9b]G/TG4mnCC<_n#+79*x|Aϳ5U/T hoSKl6DWM#@XX: ʆQuقDUb-Keewa.e*Y^3,{epQffXoǕ*ywFו~^q-O|uTd5ۚ`-D%MGn9Oʆ6ۑڐxfhWޖ)bu2Z žӫrթ獻MgIekt#E{(r"npt :rlfܫ!zRۥ:$OzLLH~`pliիbN' 7鍏 H'ONϓkS8 lr$C k⦶C=yzUȈlz :_nTVr f/¾*Uy uz;-{D|C }:UnU7UmTx%VzO=2@V 4wshLπt[#T{uĢ:'NHRQ+eK2yr`0R֭a攄pAb]K 4EM֕~!xbnՊs;yd2d>AސuơG}[8Y\ R" 4;h ݍs)%ӮUJrTs] nכi%1l`U*ťd&e6hfWtr-f9.-7a }K#CpS9dqFhjhf}Cqe }}|#A7~ܮvdcWG(}4?C?<ĶEkNC>loR%ͧ*K!ڽZt_63+[xrNt/'Cj^\_׋%73{q-='fefub4<])<+~.ve|9BH@q{8QZ=OY#7:"5( -v?J6&R$uq)4GQy$ |>Ϸ [qb5% j0JV-:j MjF;7}*"`x߸ߺbjյu)R~o $anH\Mr_@SqkJcoEC1yτ*ؘe1/54ܿNR|8˄KD"4&VMDjc, R/Ḯ" ]t<`9k ofKR]޲L ;hS(?nV_*R4lCǶ1? 8X'/D9 6HqAVO'2Pz#dr{h]*@/+}eFmal~6k.s?hX4c(<_]w7%-+oo /cv^p]Z˨'HɎ'2gc$ZNJ|_=ˌ^K:)3ænA "Rr$:G;Yﭕڏk;BgrRșVOA_}Y GoZdcڽ}$X%vŧF ڙYl9&%id\ިbx3f>)i`'Cst m4-؄2 ⠫7i1[Yt\6?BAvsXF{"uXCoBڛC$q/ž_]]/;$/H:* VҗVXT{u+Eٗqoޱ|Zb,TzT W 2֭&N9+^2m"LػF4k)Yh *wO]NU=|È~D ,ȥ҄K)G ݃s4I0;׵YfPe} +s]@: ޷+n[J-ʷ֋t7VDȳ Y6Iwfom xzp+ 7"Lzp)dbՈC/@,{ ~3"at_͗@F_\E߶.%@m^!\fW[KF  U^*c &3{pםoCP@?`> *;@d#]2,wu/ieqExBIn t7a ]3X0=6)j=:79}&g8>$` pu`-DC4*OݝLBȀX7U.,˪>d/k]׿[m^_7"h~캮u]׵XʪqWh P~FJ/wBu/N(dő`4QQy>3erdi|ޢsh -;nY{94F e&ȩIר0`:`w)'ALw,Ng!к\n$^W xt '/f,h-xn ֘~a?LۺЭڶQ>͜=zSDeKøTT7Hg8tњ/+[XgqAlK2CI'ͱ7/-zbhβ>-[ 0.?17* z{(zW9NbZ\0uu%jd ℬ6Xfq]Zj^TW*$+dCZ@w)^zF3ן ?|XU" yFɸlz-6(N4 Y0߯*" dqn8h(2+$?;-.7JXNNղ6}rX;o<*pcH'] Gi l _I^!zd{ .ހKۈ?MAie~+d;FkHfpH~·"Bf~S>z0zVj9/f&[(*$-2e ,q>72wMyqћӅ*K}A?ӸH(xWrG0 f\a̜MRI/SKwvenF{Y U#x46 hZxo2Z+v_k-(zue_ҝM .s#dEea]fmA.oOq;bL%a5bǍM~55&䜻vA-$ ;<Ͳ0Xq6BoY -vU(TOb%M0dgS:[&vrSX 8Xڜ,@7{<1O$yJ ѬX;ngcݭRR\H`}IVz`m'>8/)RdqqfN}T̜p Dgs:Ty+7D/p[~prc7?_3``w6v% DԸN$[-ѪeW.n"i<^I,q6cVuWv6;o9m·RKn%O\~;"nu4b^g,չߞit&fiqt,I6ɶ, N,(&Ky#*: ~>p0{:fƯxUm䛃䥫푢L(:1ya};{ƸDJAfys`Aܞ*"!{hdfҞ ŶM[ s͞&"47ޓk7}#4"f7d{ c}?BZwqM U]3dǴK02FanVJڅB/3hux5mÆYL㰏nayYfF Ƙlb !t Y`eoZMyj_F&>q05.Q``["ÊiYo;OmdHƃCـ0yhNTyqvO)9/y9.~a*^15T;ZFH[P)O CO{miTlv}ȍrl]T420?ڡOgS}mi'^ovӞvӐ5\+H;(=o=j_PnֹI{iC^}UBEJhVs:5u<:7o.k 5w5g݈@(R^W)}һk$zVc!T+UKgǂaӏr](1=nIѵuT#"r.O?ਹڕѢ5) -ȣgAx.]!!9ct9R[yKKk\<.Sey:heD XɈǯ4G vZG>2Zpd y`-\+Ai si>\S $e*p^Te}7wX*18k$ޒ!Q4 t1'/?~4{Nj #1vVڭJEqBNK4+\nDM~.?|.]\8'a@°R23Od)ˑFZGXKbE w#d 9 yt \*Mfov$ӍiPz_ If GHLEH\Q3*L55D4o`:51|A3\+bBqLڨ tð)I]>^?O0k 1 D* mP cfRapc9yMZ + mY+dKqvƼ6JI={Cah6vUʀ;# n5} q6UwrI{"2N 9  oԷD%Di,9qs%,\XWқ,-Dݻknqްߠh<{Vwۼ+Z(6zowߑ'z~7~'z%?ߗ(O7ڜujk}cv]eѷ+ P`or&%cSx +UWkt8'mU=[ҋ[V Cbz]<6,eKR8~5"\ L@GԚ|a=~C"0h.~r7W>"!qz'ީ%|B"T%a!QwPuHa~9>BMS=?X m/ugZJYHU=KMn]S3eɃFu-0d<.E0rq_?%Ƶ7[`$= a9⪆,TgI㉞ؐ̇zAt(-Yk:_sڋq<Ƙ{@FC\&4~}x~ 9180ƴ=EmK٭ CתI/2ET21d%,H( j |MrH#>"EL-\[NBT=BAp@Ak$R ; w#R~N_Swce[ƽ={>y}8w5okW!D_ބ6m ٢%zJ2Q*͈7qBVk@s*+e_E[R{=Q̻_}V4h&wC<[-uGwTwcZ"l j|`(XHAQ5\d/|x\~ڬ"ޙi3D&)9WLbX)_cld+WoBِ~rxP~{5OmBdMl$2:p\)ܬ}WD&CL[RKT9M+aIk u Hv= ԙe|G?Q{]H&aA##gBD,r]Krjҙ#pmx8J\Ck\QCAJ}Izr,g#tCq1<Fkoc8zfSD{ebpFWX5m1̌8uCF#Nh1<`B:>lscɚ$nFjG.9r.#@Xuϻ_sו5(r,1) r~獔'Y.y<1C23#o$yoAhFN9;]xJzeQſ}/!Mڄ };L9)`VZ$$E Y4c{vfUöQtQu*ڀ_ h1pL} qH|_{Kf8ÏaW咤@wِqs`|N!]WH_4 \W,a5ڼY!%ucB]&M6؇4Mz+M6t5˨? Yre scg!G,a)>`.۴x/#oћYAR L݆XqPvs7 f-#7Qq=U oL_dkaip(X&9wߞҍ5/;%}@{BF1T29uX۠M. 00]JEWڸ:tQ4w*,b/Kv yA&eq]7˗XTLӨ݇ͻd[gF,ՑCt[0z0Y,+YQJ&B&M[+HzO#Vbl^p_]7f+pzQnADhBF_v34.F|3#1e\Ώ5n8|$#=' u)`0x. \ ,mAט38=×CX"A6 I@E\kxe43b'SRn@Pt1Lݝ3{ĺ;ǜ"RVfZ1A.!]sq!NRӶȞ[JR1W"fBtcp4ȣ(Q-܄`x fـnr?"9t䦲Lon]b>Ga0rzU) /6>51{赉Cxj{ {= rhs]k'4e^/ "i1 1|Ϗҝ+n"θN'L@(9]CG5 4%BXy@3Tfr`Dud@vrކ9eKM6&ٜ:|NK#R جn3TGOB0hJ>ͦUV1RTgcij9nQAwY<}5IYCl~SI_gNC?=w/}`Da&6)pW"xTt @w4):Bwtj1`zc?o|](FDS7p"3F=,T={w%[;Uf+6'WzF; ҷ +Smݝr\{,T ]@ 7\OAo6@Jʡf8wGwVi'@@YS򭥽R0LJq% ZFbM֒a?d-SQSMv& KšZrXPf*tN|qRb7בKxǢ?m$m Z0!9n2e7ߝ\M}Q -=%C%RҺ5ri[Ld!ncl.)Δ\KPMc h/Kk ǐ(W(V&}]_6ɘM&-2ZGH>^f#N\NS'EV5qvA:g`e' "%cV5v!1hѺb]|m:9zMHfGUr\Se5[wpe#Lk}hhBkEz01`5Mi|tK#CYV @y12oXQR%lcS7#W&+Ӌ2V- (-AUco}r-|~s.T1AB.pYo׷@J <0٧-0&]ǣ҇醄fWM+w:DDWŶI6d_?>AٳXs]/ecne Y'3x͑7\pxGT!i"1ALBLn@ٴN؂]EU'Ms7˜rrу7vF󏕧dg~ӛ*>uPZ_~_2Rd|r? GHV%+?b,F2*m7==$g=jhqcq ,@c, ;- GQn4Bng[$\7p/e+ٝ? KbNX߮&98|$< Vc)=݂mc&gsj> xVR5սO'_RAZ.,+nj$8[f,;=B|;V)*\%݂9gjHMIRc+ ! @{?®WͮpVD)Q:iQW6TDD-X:!~sS.L9 r@hI)pUȪ₧w'3,V1y^ /CO0;1@OE\9;2 i /Twf_/f|ج. 0,/ µp9.GCqЎ| 88H1 t_˯GMG#@36 Yr~,l}-FtZq]Xïu_q|¸ҶؘU]ff3RᶜPR#)^4&M>-tNt^0pOQlc5<1If e[_Ŀ?]_W_˿N5 @hp"b 1fL"0K!ZZ.w(3 -kЍH U0 JͫVh>Q*U79mzysQicنܼM8,nzҋ=-L}y-ۙ7w`ujܻUEY=Oކ]|H8~qKH,'d&5x6V5fC GZ46#98Y)w>(BI<ȳy@wwwgϬ!<lzh&;A;VIF~3vWbRnH d;vv5Ԟ?>}={Aѭ6Q?&3%M 5-8PZ vGls"ۇ,P[Uxh cPye*ދHdi>BKUKfEJ]u:z`nͼKYut>2i) {bs*× oFuC~`4oA6|LsUHS~''ö݄ㅏC1m`\ XsrH†Ff71HbEdCjp>L(Z8lty| V3r n|uxY;Y",z9u 3|#H]u}E󿆥03]+{΂Ar!͜^JZu;#,4B#+_šFNHūFރ6g0R=xE[KO^ֶ*Z0obM2ڄBi߼kbDmB\~9M^!NCK{f (ևE\gzQps03nfS$l0X\_u봸18m]+Dq6@k`UpHQfawZح5EUlIiZ*{hmy^OޅVŒ$MA>fe1!:GM裖SԊ`!Zw &i>R+:pYMX߽p5-/c0spxohqk} |11~qȨAsϬ}Q8èaæ0E- 󌬞{|h'uOƤI3$A! X$&!Xk} _) x\fN\k1x ˲sq\VaiڲH?7 0#ELP&†\ؠ;akpх5XJݰ}4wi3JŒM˟5 j ,ADCN `|QGZgL>;H 7M{(ie1R'9Ð(Rn V-LӚ,áIV"J%~~g[V}D-FB'a 7֞5~]qQAt?Uq#;q@wf/8wHE:|?YO\RY=CPR {L=Zշ%Ay[}@PqTԕ,̻4-YʁwS; Xl*/϶R+Af*%p~M3(hCv#l { j6l0kbdYk x]ߧ̐|@*\"a19 D3P.]W0^~v 1;>>c\6yaU6g98zR %9 _|F5+Z@ε4vhGI\ õ̫&F@VnL! r2V0oIso;#t;5Cߌ:o1^oN H@:P(;r\^`^+^X=6ws}:{}wCmX,ǫ69&y_s8"}9Âv?O5>}{b801 ߿Ik"%"# Ɓmü$2xT"UzeVXhJc:bhX-q:%^);pڙ} P>o۱a9$UN8+pXɾzVqne*d gD˶.w_m谅٥FDKݽG/9r ` SҾ9nI8R،g\K8\>ץ^SqźFO+#|gsqwQ**DCZB ×oN>9|0+@kLG:b߷G~ )[S,䭓cΏi`1̔VXsɃK$\|!X|/Ngȉ'×$<Ϲ\Z䔅Z㘌aσ!-,y [iSou: IB5dY-݊Tֳ*T+.%e2V; Z[Ӗ" nn?=@\#mH{AaT^t4y7Ph2xn75=`gx{~טuq&VERcY,>#E? |c;"P3XwZG[J+us ozD&JlV @ 埘>×XˆkR29Қ]NV 3XM_ݵzj:LDZ_mALە. {!‘o޽TGn= AFWs"@68[~MԦPH(4.ƩZe`eےF|5GdFcϟڰ*!)V-f2USvIQލj[]M|MN!FL4r@R#-O j;GBz#=+t2Vg5|ʲIFyis㺺-lsr.BNÕm@G_G7 yXȮF{]`ͬ&4c5(BeMu.\ y[F ! j2D `Ƹhs!in1yƜ0/RqufAZk_6|s ֏VRx6yaHodk3cmiܑQ5ss-fPVcF5C#W+bx-t+UK};t?%#qBwBh#+dś~M=La]~oR`>F68]P"f]Eè~è#cV1%MBj[꼼s =u=rA-cϸ¹t/kZLJ^qi.=.6-Y}1H]8(IadT릷(|d4C/Ή}8VO e XO}Q.+nbd~JXnY:W9FC1 6y37-gwHbF M"G0UD椅0 noA],' XCF~7"&D6xNR070ط1^uX{Z._x.II?]ts-qWz0y$_kbN BK ahaK58$m?8CN"-u9R|:($^!NO !嚷eӘQtaL4 w&,ߠr=om=.1$ӣ 0Woon #n}g#F[w-rVR}<֜GMs,ce=v'wB3"tsw $N %5Y( \{zHYMZuzܹU<*1t$9(:(M礏fH8IJ,Wm'ȼ665ReҒ,\`whV%`!),l?;xkN&_#;/WbO\ԜUTJ;|!F߈ Gߊ=u_YS (CLRh,e.\# m.&oQic؍inRU6&XuhM4BW~Iew6)HcdZOZBRj%2YubV$ %$>oio$h@(߽d ~B%ql;˨tU ̓ K@Tu,e(m:"D lf^`(hF}oڢrDn}{-%XchddI^P-|d4 :"5d bQ颒fD b C;vnUB+}A#aUW6l]ek+EhVB]gLBp}Q5 `?=As)/ &4ؑ8d1e @\ .+Υ!iEH8&tBKN0Th#0!i $La3'xrTwBrqH:zuFHXWWVhAKx1c|}?9k_se$nj5]*U`9o1)=詡.۽X6N.7,uo*U]v(sQ ܪgkSay!;M(<ҊM.P%L e\Mlcރ{RB-eC6YԘĝs/JYegD$2.. +eQ`#MzJ-haސ,TC[f]{C0ip}}Y)5r/qyt iBDH@"Ļ#ӸR:&EV6%{a; _A(HѼ&ZX|=nO0 ;y!b12xV =(+ق7wO8"`2R# .W㟤+ދ3 epJ^/`QTD$(+\;&l> ] $灐.b Xp!`ůyJ^D 7Ua({`+YYZ1FH[p-rOSUM=JamW>zp(s!q9Av;CX!]?1|oVṉ: 3?>Ƙ/;쯏.YY0R`)F2Iz92sd؎vϗע 11@% BOHw* oׯk-MP=w܆Z:*V,b񚨧U|^a_H/*|d= j6Ol27T,ĩw|&~t׮ܸu<{ s ︾NXSnj Vm؁ET\. AcJC뽠5̍CY6uUwD):C0'aKx Av 6ZZ=q̼bytY}@ 2>cH7ca!3zw`>R0%+f0 R~9a8^&q~}3ZRu;:~|uO;D:_o}~23| ^"!_!9@=rz\EfG+)"BM:)-}y| ?I ZάB/!mjV.-㋉Ul;#؊L~?75W/MUy k<) |o3*bj-=4N>< v}F)(:yBE6YgD:EФ8#~ z 3D@ƪ0-k<9Q6Q/dOl.JkcdEzlEO<+r8 ȃbRw/T, CoGv m ~>c"Ěq =KVW|,iQ29;6}}~ dNkq{ARR[ѱܷ;)jA6YW eD윾!G@gFRMQt d_smF}$vڞ_ݹ?$7%Qj}/δݹ I\w^.7c ۞ӳZ]'jP+ml6Wn䏤e<|USlR3r&Lg9ɅY0L;WN=(dܻWU 3T>5nskif˚Ĝچc1F1's1G GTՒYZ!ro&`F%3pUت$,9O| C8 Jݽa`7f0JxX51RD2X)D]funQ{>yٚt 2坕M1y(kA!Ep[& ̬3zn_[>y'%ˍrUC'T*7ЗbϞh)%JآM!3u,-_d`bH+6A0FT/XH_~ 5*+Gh<\W0{ Pbw#Șic#!u8|4+3C@ʥ8}4ZZRk:~@{}ڵ8&s^ LK_dy5aȜzh>SLeK^RU >t_ ~ I[ɱm_͢$Qsˤ*.}N|$`K.~?;|26n [eڼbIl6yÝiTlgxx硖;arwZupWXz>:ü^/r5 6BOڌ-m"ǝІ}'}wqx|.Bs76%RFJBPu#~6]VK 8(Z0|Y!cNl=4S^Pž0Irj::wA~ʠ|ù0+\+2Ei!PiF_o<XU[#唞TR0\l8a *BKJ!r f3ǥ(OŒ) -27YӀ1 -Gn14]|ԒQ2CD) 67VErrU!N I B8(S0-ivdM5we0Λ"V;Ho2iX$ "Af2A5eflc) (y JVLZ0҄U :߉Rs_ˁ:ukZ@ec~Oa|M΃ Z+=i#.0v]qe-!'=46nO[*3O} C8<&rTJE; kKz#L8|ޅ<ѝg08f(("b.h*{wW윤nmԑ턻DK;:eIڑGXzUUhɑ^6e0IgE@ָ9z@%͜ݪIC^+ҽ\W}522P S"'W5FV9Te܁669c$pŒGD2kyTܕSpy7z&J&3d(en|PPkGV[ѤН3ߵz{4{Nn',dȣHOՇM{*v=  ?QȬQ"NwO=cmңl`QKOi7wnej!]I:ԐWYVha#ƄkTg+9f=p׃x=>h [zF2ݶ?~ԨȎzqs G0vmjHl.l!I"}Qqw˳]Q<~DD*4 t w[$x,-8{pRSgH:4%g@;W= Fdo,"\( Uf<>PqjlVZc S LmwYG{Fv`Pi|KRD<.+DYvOЂvW(rls<6,GU,db*gl}$53&BOk$b%RQR 'cL  X$J<:,]JhDNfB̮Xg)0o7/xJ5_35lJ &:E"Ѧt[s (MdQڵ##Y4O룼YJK>/{ 8rjCW 8xtה}4qsӃHgKED:9M2Q}$aw&+6L\ 3An/rÝ|/ \ |e-Wx OÏs4D`aX|&aQ̤1N)u[&OBq/XVTUkZ cl5heNZ-AՋQNQM)5NOT-,) (hjV Bz7TN嘞uۼ3R=ןn-xoxkopýT-<Ht.*whw)jT-Y{ARo,3lM-l!0\#W]:C;bݏm:ZUfXX#両[q-G|\`/HČ^}K;woYxW wqx{ׇjV *-ߛ/2z3U61fI0vB NXdJ oA7vr0q,@ 餴Dl J ^M=5:V@#mgc0 i&H(L=[8/\k`Eh<ǰr0à6v>I3U X"Xg+#ʵ@VL{K:Ak]/|8}e_?CLJq&]p:W+Bf-ZJWSQfW粮->#&S.^c|_f1zkjျr0x-*a`5A68;F"Wa aboI]L1 Y,_rzTKN/Z,jn TJ> W bH&NHOi"d0]ڈaUa4_a׉U8=U} 悾g8҄V %dzV-tͼqS,`İ,?aQG6ol﶑ou-VI[tU]>B'UPKnN_ąQ-}~<-J# ]蒥-WѩJ-;5% asƪ!d3DUF%x[CYʬ+_I{skub?˾~=ZV$=-95P1(ZEe|"#kl% + $GC8ɬlG){?zl,+A \HUr䄜#![@ͫ{YZ)ǎ C!QlԶUOJ9bː,a ߲d/p ͎\cSzքbaIʑ [:#.JTBP{;Bn׬r:L"E0t!;ZrST=J< c?'g>V!8fvHNP;K>s^A1^.cNK$4N$F8Mo#p<,߲>r1gl,(^6? r~}]?8& 988&~p %1j(wa!Yq%eˤ:3=!吆4  8 |Xװ_!R/z84 43'l>$'FH0GK+x+Bw2*@om(!F?T^_%ܸ @ΓJ\"gmZe ȇ_8xq*x.MI Ok%g|[0y[>mpNy-s$_Ϙ6l-as}7ItQp@a@A^c.K4a=2n7ភڵ3s#br-ΜnҀgHf ha+6n!]DUDc*MDU 81чKDF־ZP_lEK 6F 6[x\Goqw{ÍoݲvOh}J3V%??qIձNXՁ? }CTU-P-I¾[D;7>V"UT ϼS\Y)zA_dScVltۙΞ6Jğ$E&apz @ýVZQz{^ 2tyI@.5s8:MF0FNAN5V')&~MPHDP.KQҠH3 鈸ۭWuؘ~;MT>U:FC\ E$ lTG<1:wAcP܉u6$>xEQEJ,$N,deT'VN3D4hFEytf&%4}ܤ3$!`U|r $]98app6 ɐ FY̓P&irR3@MFbc2f!(JӿU@ 2 FPw[ 3<_yC <~61'1Ah% s C5,1 !2h69 X{ƺixE qЇ/ZD(/,\oM\mTc[⥑< ԤJ&P0E %&ϛ(:KDrՓ@mz^TY'~xRL`P{֌y U`"kֳvr~/>:o*}U f0QP.)9uW? vAVw]hN5`f,ۅSúSo$صjBr*Kd}wj~D0h^'Rt~?0p~,O$7:B5D9Ҿ WlYeEM& %MiiUI]if]R2Ǘ8i0E3Mv;14..u9;RVV.ۛ)_IDATLnhg?zv7FF PT1=k6\TI6]"0,Z,Sf+'wz'=6mqFؾvE _.zz^%-i0 ~08r+t(@ޅ:-xѱ@/ƀ)_qf@ /f6.rD$IX޷1'106zQ!Q| {_f(cg4i5C{:b5_=vF x"?qb o$ @;yx2m\/'P%mWmK׀vt/rKJ+Xxޛjq;آrJAf}9c;4 +/{ S'Qf{*YP)IDm\[Klʹkٸ XE2086zwTG *SHW =vJfՎYbaN i{K9^\zw-9~JsL6I+Q!#lԨNPRZJ‚ehf#r B,p<.}e1ȷH@%G MXYӇ .E`<>ͬ-jͳb GmI䶄o kI졼S!zsڤZ5\ݐ$[j{N\pF_&Z˶R]D@n4ite9^=XOqLfè";Gr9Ql3Wm)>XS ZƏزq֯[O`YXf3^q<҆7''o:P}˯G]^ lSȶL)C=|dA3h͸#  .%pșvZU2Jl^󪔅20UƜs{ i圾]:7AvS#]ipB˵8JԻ80ZJ6mf20qO(eQ"d^"rL̆?#.-).D̰Jv Ze~<.w$חKq,J(P*?Z=Z A;[^e\a T2HC9؂@o]d~-yLtmA&1fVxa79?%,zk"H;coFx}|\\z5 ahkaLGwON_=&>\_'>~PAx}xcbd08% #@oƮ4a1aO ٣dlψ)ctK\o$x/$ay'HSr#OE͆̽Զx-Ѽ$("ku<bB|1w]F.NArW@-K5]*MҤ1i[^iͫ@1yX*tH2RU)"q#Ru[49ckCJV^=*p0 Ēxg{^G!+Dj=u0i99G$~3*1dv HtlHTb(G`<S.7M;QfVJmD=wn#k!]~U8J^mBTмoVnHXO;@M[֯I"VlxEW!(zpW6ϔ!b3-(y ^}}s^0avª;I\[vU*O1F>*󾮍wYUq&E:P6w`;66]$%FX7vJi)d9G"*`6su=ѲK{Ah8#,bJ0 FM4l,;#HLzlǪʥE ɑZqy\h)G"GMg*e[ԨU{b*_%4'[9Xw3#}Ci&`GfJ(q:@4$m\iB5ݶ@$]T:{ ̎?x.}~^>\1I~NHsXH/36y17k(|I><`ׇA)8۸kpL#񾜁12$<ꪂҹ݀Wܪ6Y#4"^1ܳ F) ~I?A/*^G\xc0F:6.!far'-SKE#qcp80)6_^|lA<xafLKAڧz FM$1JHLa8I'$l]wqS CC8E)6?|{acӲ}/&ꅏWA{8uvè,;?0Aw`Urf[L.#")B>0n])9`MvFo_iNdFqk3hDTi^w21RMy@u?rRW͇Sgdk:@o3 )-*xKe A#hY7> `LUb[&4LO@ghto+ ]len$[Hn|9r}0O_] !`ҁht'FY0z*э!sw ٮ!#ԪĊ{Q׿O4>?@HT}%FA#/@5$BJKZq[߂0 3$<=3{$m,guT&ۄ;;6!eg".+t&tFR[Uµ o9->Zd)H (ݝQWd$, |ZL (A eYȳ \QhZ:Oc7Llfl}uBȞ1*cPեCZ&@1]5)>LҴIŴq a1Lqk^O{x8fv#R`s\˳cVELI^O/X` 03yF(#ctGʫK4@P{pyYVEPcvkbţa9x\OehF `|Zݰ Ji'@N3"֕vQaf͢=8I_[}!BF_?!*eg`&ԫ` }0i(:3)fP5Ǻ,15%9GH,g{<ݝ*Iwe$7B8cx>vVIC.hDъ֖\5Djc-F{3{zc5YKߡm9›Rbsk& 0mɎF(״Bc6gNTtVxvTL< eY#1 HY09?2;ٹZk*N1hլ_A7aUjg(j/c({gdw~X?/?&ib4KI5WTFW*oײ(˻0^f0Q x$e"#R% G4u i Z%y{6_u(ٕQcu v F\ __Sy=e}oG!# %€GP~=<90l[k?APl }@= "Dg7QB1ՙ:TQ@$MD |"n*=E˷ .1ћ̜$mAA\sfnQg&ObNzP  3.`ۏ@d嚚W̞}WN$jX#EeM%߿}TLߒLo9@CF}ǾNY܈5=_@8goA 5lV<rr:y؎NA{`T6DYRIU3 E?>͗}%V~] Peߩչ(.aϝjr~(V<іf,gD)-9 U%˝Mry+CNEGr)5VV{0Au,:**"))I`0Iw/d~Z\pl!L5VrR֬GPg`c%ҔA,kE.D-/v%mh5ZfY^ !Nb6PJ+YbƯDdev gR-o!S7Sm9뽢 gwR?U`zS24BcTVnC║y nXʵ6TFLЦ7)U-'~6)PwLj0-tBUO=ňY!N浬"Y<>v%DV9舌T$ E뽕04FҪțq٠~-ni8t<@3%p3X,kx]vߒp$Q`ts+V<Lrv"<.^777?y[}qC`d fQJVsvze~C )o8avRJGr^H~N7j>ߊMN_߸C@gLC ?mt\}Q"[:uAFM{ydcr1-I`&أ ڜ?ffESԟδ+`Q-e*:<Ǫrtn@yXF7l!F,{ۑhBFVH4b#cWܣqd'W ϋ)PϩLEc'P R~,iz:~ZLKd wo͗8u]n^9/3]f,_яʁ1I RzxtÝCTS晸&@xPzlLT$yG$lOqdnt,uevJ-W\F'}0r '[t,?z_}ٿf'J]v3x>A?(^ѥ}!,XS :-?Hߑ#PfaJUY+A z? ??~\263.`>&Zd Nsڹ5]LŒ=<$$r oڅva2 :U:lF1gxǁ zRddg?,lP ē5e[COoX2o¬/ ٦QƙvLmZjnM?)_Vyaʒe=n.R +3!'! //n?rr_7K,3 ɞVwuzc`Ct|( R.ciFVܹցDf4d~G[ICYf5񠌧w>E"8_nInضgԆXrM"Zkas#iX(O7ʪ5oOǤFz,@_PSy@`P^gMP(++N#-Zfi ԡEs_f(uWoTn(\-K댣ʉJTO.2@W7j=i Axk#uH'̧0]s'x{j1=%#OZUU]T9$3+xa-ElfA#~  ~ABxN23" y#",k_kTK Hg d?,?9uTxj0k"Zz}LK"Kd?fOrr{oeLM UO4Q\P4}$/Qf˯N]LTvD)l5..Ytܑ@2֋m2^kLO^cQjW"7 Zε(&0VW Q" ؉;u! GwDX`pӮ8^6ϡR>jBx%one$s=Ma{Y6FjQڑ]yU  H1Z^Q08%_GfVۃ(/Oѯf꣋Q UgEaM`ij΄0揨:bQ/lgFRim5gi1Dב#?m!~ͨw|(n!kwT@ _?Χa:^UK8ܜ̧FiQO'ۡI̧dX2ϵj'F@6.V]HzwnVnڕyv).@MGD528RM춄4F&ac9|ƿ nzH.w_Fȏgᱻ EP$]6]3/j,uCyQ  /Z?4|]Fkz}FQ@j仔Gg/wCjkKRRho2GԪrhtR;7w*fk=cjҌ= 0BY 忁 6`%|eK[jձ,n"_E^5evn~f^0>{SSšm[Ά/ٕyBʌNY*БR^tTd0%@Y9?GJTE;T] [;(rWsYG {CF`A}&ܹx Zdd53BU-:Mb$dMmDwA@YF~PDjeQ W~͗M@F2OcH_@ߦw*v"[^.ut{D/@!4Ӡ?; O͟3ʣ)RPF$=sEг\ח_/sîVM):e+JT7OF]*#Pz[#p>.@mӖL !ZJ(.G6VOTN%.g"__r3[-2ag72܅|2OYf6[<|/KeQ[Pj{(Ҍxމ?+ʏ'f눭tZbƳ6_;@GimiLFhiu}@sϣ[,nC_0uc/S26& 5He8SN}D-ĆEƷCdG~. ujDiLpK',b͸sS  IB>~B7+wC Bxf("tѐeR~MoquU *_n?knjrg/NtVAԫȩfhe4eyF>}~}2zܮȷsWO632ݪE4f%ً)27Roa3dX{D"aM˽wj4Gq۶>q5Vn̼9v*2vAT9 7!h̐tPaEO 4Q'+0-qU}|&r4;.C*{Wi[u9YΔQJ&sv(g}ahp( <{Q$M2^7~+46 ?^~kʤ2ZMW}*C60WY PJ1Io zK o]2ZUHʶۗe*f0'>`l|CNrm'O1~=nrOm0}ADTe2MRdr:JkC9%P[WGK0&"|vǧ؈g^s:̓ B+>^%ɭdhZbk}*/`?/F]@Xi/ |)t-r\F74T;z+j9 dɕUs{}>Xq2 nDӧ:f[:_^kꩧTǵ:BUp\^xe]SVgcʁS)KӴ9bx}@> tJ@F~T)hw0=RS}jN}1, 7T$~>Lk}]N͉=>4*>7]YCˏYX)CIoYKy=/3ݯy2#zS? =Eυy楤F_WrQ:6qޭ.N*)lv䒔ij>qo2an 8qʨm:y[ߔ_COs6~=op$U0j{$v+"*/~ oX~vw3ɯYU2qf T<5>'o+|_~prܼ*i\t9=VׯTx#9c6J/[tkkG2Kw;#  D,~=h>N} {gE`aH+ شjYɲ\`5CjvsYμ3_ԃS^ֵ [{g.l4Qp2݈4z.eaMs˓,&ZEIQ;tD޹\kA;# eo5c\.Aq1tC#K׾w%LooYjkRj?v 3^Hx/2^PG'_\Ph~] 0{Bz]^+`DƎؙ+mJk;3t4/2wFy5@4#x9Ggk@?`蓜XǞ&=2?>^ ֒hEz3k[5~bk-ǦH8SR=լclW%aB~zL7#fǫ֙Ha]Tf.s/u`TMА4^EivRpv9/[&ɔ. YK)S=_蒩24g||E<'] R4d1\Z:@nO?g=ZDBw[Ǣs2gmq+#U adWzR%|yqtDLT5lHҮ \b Hcyh&~wGui2E'LD5:N__u=C\Yc[aNs= K\JXUYd$-ƘG:@DbWkʳ9{,昵~*)I[BNk̋DOi!ui/ײs//6c'։sjbߡ2^fLڦ*Hkݳ.kW9[3aY{#CݑVȄƇi+BMl ]Π^A2*ey^ 0f"@H+NJZoЧ+"]SdM-CVIX `Z :=!aI: l6` W)Q{}SJAS^ BiJ,̛"3k-;>M )I9WLt]~ȵ;әV5{K|%ȝ2xp]KWccPN4^K f^̓{ m[3jcg^v#nAU)eFܮE_85d7$16itZy<[ /:N]7}Ȁsifw8O3w_4ؐ:ⱓ0iҝ%Eu/nB6M>Kz%3Jvoqi`r]kVvΊH\i F3*uv㲚!׼;SLJXdӐ$ 2KQL}{FK5 Rq~! 84O3u5%/#:Pq.xf=03=ifBH:Lcd3Qiy+=.|il#&% ̕w~C#Qb.u Qi#gϢLmf?oFLjN#fN'{Xa#? ƙ?^Y.wɠ,R37U*Nߠ2<%O[t$Eϱ3?{z;:O:Vjd̗9m;^ÚSfmI3JSJZ2ܑv4ٹFrkF۪X,r!+k"Je[ځ{&*Pb)Ab.,Q̮ 2.]Dȵu5@X294X׷Ym_#׵#y)3xcd,)s>xGP.[](:!eu/82vG;3lhs ~P}Ogϩ"խnRt<9ZN%$5RzIqLRѯq 8l(2W)ja@Dp; 0J(ULK˺YYհ2V.Sd*2eF 8K3zky_a\IR"(R"ogU8$D2nL1DZ]3+|0mS謭< JgG_3QI 2ͬϳrVM|~NvǛ%><(ov,EEބ%uoܥ?ʒg2[^ilPS4A`-3йUH.}`(,æ_V8TZfr`2m'vc3? ХAN[pR9ӗ{B; F#lX"56Q ŽUȌYQd=8-~1<8kCa=V7bҕ-Bu6\*GݶY˪8ѹOR37@,ۏ q4 3z48]#2{@ /eX2'+8IVȺ#BzIՁiϜ"zo+Le/CyAB)^k_l@.Zefn/}ّvK:,6s8IDu+ 7|4l(h}ͼӓD;؞ƈmN2|} pjJ'mͲ qPSU} `6а?z?A'ڂ/eh eaܘn>r/*sQuj!ma$=ޢ>bű*~oFЖȥ> IޑtZqV-J0%qow1ӃEvkN3;j~*9ۚ H O"TJQ+1"bcD( $V.wڜ>d?9oCs:r.?`CGWq[@;Yf?Ec#{tR Y 2#:OԺq paWUVTdHdM@8s8̅eVW!Wkٚj]k9k^j--Jku } k<վKwiq=!fSZTu>=pnƢq7>7u|R_{7Ssqxyu#)ọZKsA2Dקo')>F!G%3}(B9PA Qi+ =ò(g?4<G]||4Ί#}xU6zjD2Zle<]>Θ$K jz0ɖHe&Yif>#r`Z ,D pmVBUc=*ob̓Q!VgcThœ:Z gf>5> {jPݐ4S$kXFۏ?uXu jU"UiPwH} Zv=ۃmE'jĈ-#Ud$%ܯ hI9=T"uo*eSjHY&!#7+l&KVEQ^+ \t/XUA~g226݇eȳJϯ dB/227n/6bF3sͭ]}R.{e7c{弾w| y6 I?{]SK/"Yr?R|@k23+})]|ARW]m 1V*g q=a^lo@o"ٳE5]Qyw1%B5ݺW. ws6Yzg1,#e.x0ww˽*pW}0vr4 %T<'^>y~TRVgtQ};S_kſ2_W{}pwU؝"._ҫG!P\CM)0n_%ۜ5?:wUA .iH2kFHS H'}ktZ?*KF29 JJ fvnZf5H,ZXU4?DZ-L0f!!fVYe5oeMrj듹EtSV}hpg9S 1dySO% ġ3= 96jn6neWiEpv>J#ș\c찫czȒ5>µ~YC@Ԡ~Cԩs~{_& *Fk|㣧Օq2223EoBzv]&nIq~MEo$)uezЮ6l/ʐ(7]_Z[y/òuz-/QLUI7XÏ23o9w:u XG2aѵWu{k٪f^^HPQek+LO0ݬ."y^}q|c>gՃqEG &> Ӻ2e;mlbVϹ3i6w(++R(azP .[.owym]J]F~ +x^ 鶜~ضU;b%U.n^eCR FB@˨(#hI= 9Þcd0^oFV7u A\顰KznGnQtO} o;苦41rσ=b)a_Yhk YҫF+_?7v! Kݲ~~4- -&rκA|\:=8 ޡ?uϳ>?|EU%#j_QZwvn/ _ٺ5j&'> -l=@> ⲯbY͖2&KNzpe/# d`!U$xcL{" -^aвE/MlHpu\KZJbuu,Kԋ܍ٵn/$3^hM~oVtG9ôIUB䦞>2 rτR[tTbmLq9PR X/pWDPo)KgCFzm E!=^4)Uɩ Uq \U|o]R@H% H)EH`oIJ=ݏT7sתavQ4FfWMyND<9jK G!kͲԝ_hZdґi_/ %0ce.Z#ؕM^jSE`( `JiIk<fmdo#&Y#JXn"F'2G$)n4닱J\e-<(y{`_)yθ5\z: s2+TncTm:~~[<n!?`I Q:vPOʡر<:9L?|y9WOeB$Mt)jhhM,w\_~; eW^.x1&qug%r kAYۘܰ ,)[j{͛„-ar9~xUȵ %3`Oq8vC~vޝ;oytVhTMta4iy> ?+Om]'0hiy;|eO1\;k>8By𤛖# %i+F،5kiҔQGN}E.?+skuAmj,N$zϬ&Ix0l,UQ[42L`%A$R !"nƌ.qKٴ,1 f3)[kKlvѲg5$vq\jS6)j4sBx3U蚘5|k4_ٙm!rwk6rV*M w4=dtHV B[|f'|y-QYGp%+$W?~@>啱/b}WnE^nBvWMY> ˸Lro_7ܼh Èe;.pDB*7Pw齞vǟ<^u<_ݝ:CZS.%%1&Z!Ny O#)1_6Av.zȣVEP0QI`LeHS"TFՈH..ii+BQ3#$zU܍yf#+rIT ko TjB}+~OcGbDj$-Q5{WkgkR˹ә:qMa(MF?js=Fvγˎ[fK"erAYY@a9ͣ9szpbz~Q=uA5?`9zhTz>]~4 ec:0tp]ೡ I+;dB V?MS_)ӏBpL>Zwia9|هco?,~9,T33lAGbȱކzO f|و̬+Ȝ#!k6x#Շ [r'&C|9- b2k9*7mnyGtTʞQHj?Vri*֯@_x(x &)XHU7Ea__v2f#ᥴWB_` wF&"#t[{P5rQd(GC7,7'me );f Tzyssr"3֌IYRw"#/MjtTC|I 0Q34?jImX:uC=ͫې|\HW^wE^@k},lVޙ̭)q_DnU#1Iss2n VMLҹVp(@Wve]*_n37M(Y=:[ZtLN %(2,ow}}̛=J8RK)!B0:8h7c^˾.wrܷ`t2{e.јK2rba0 Y{-l`G8`f˥zeslJaDk1R{u{I'vY&Ft|$!=V4ai>~H"Wq}^=R~K)A,+@-mhC{=NUjQlQM:Ks{@P/$tw|648J턒sy6w~лu߾2ڠ{͓6/n>$/Wt<^;ʻwμ}ܼB>Q5[w); _%|$^IVdj堳( Ӕґ\n"q徐\FK4u 7*V$h9KÉ< g`uof>)O<)B AR)Q [ZY"o?&eklT]gMx\}1fKKڀH]x9ڲ*u&wɩ(/ajpfkk#Lیe\Ѕ,I*~nr.h2 Y. YW)w@qgZcu'w*"PRR1ilXލRYQآFphD1 )1aNm 0e _Bm(l5Qt:,f$pH-# )/k5R avh,Ku"ScrHqSdCi-ܘP>t??pnW-)5Dzol:?}Gׯ8u^wF;{xsğ̐Yy6C?Jz蜦>S >gcFzʘpǩZJd]-J4ªpC ͖tC7݌#H‡l!6=V&SfP&LF6Ďm.qguBj`C`j:cϓese2c=-v*4\'_V4Š<xW>3Vp̧Xiat&m>1v ilcnf"CHv޾|r]"Ah2'T0dL5?4MN'A J?d8;q?_}B;l6I(y63nθqs0("!_ 4|p6%ߗ16ytiN'7f=c9`-N ڴ(W?̲ .rtɽR2^/WHs3N\˷"j޶ X|ygRgߐtwV {ب2uk#@Yc>ass$; opFXN>($s*i =iF>%W?;jfⰿFAl=IP$.SBvt0j~\5zɍ%r9Z}ҺQ)/]nق{2ݯI\ D:mj?9.=\:sHgO>4+iL䇃$c+dTF20xZLG+@i]-NGTGGojY7pNDX%0$t'_@eg#7 o)~|=zpن64Tܣ+YQUx/0^27kRJO#wͳeD, vGwƕe?BZ3aGN0u$|?w{-/0?^e3ӊ1yT"wyw.b>sg|gSbCd[#%pQ Y.{PzKE,Ѥ2 H+C3/E=䪩P5V U\L,'.c߄2EQyMπ0#CRKlwG;03B KOJ]z5;o7-1ECD-.E-۝A19R,+c>L'YyLܖ/n^X&b2M0_P^T)f dI pӂ nMl!f,n]-}lk>s^8MnHC٨2 ّ=AubKF>9Ì|]>wW-/>w|QuC'`&i3J[L<|aE"/UVH ʹa&#2Q{9mw s<2+c}V@XX+hL3ڂ/mr zY&Ώ;k-NyWX&P"dNj]mX,4Q Έ5 H*Qi=Ct(^}VEnhI@&`7hWu~l-q h?3u G3ժJ"S~K}OK=FZ&Po/k(&S`>JRױ6g7?J}Tx·Ot1PclEzfWъ>ޝ?D#6z 6IKhF'cn6ɷ<,^ǫ:"jÓʐlu4WȜ}p0yS ͟;K2_& KYa({qWFJUҎKRNJmt@TSqε_}Oc}/If-ģgxKi Ѯ'jǏKIX&뺖.-s9̚hSkeCzGwUrY>6qGcVShlk- 4zޫ"p2TŧegC2 rzD3iA /2y(@ͦQ%ӗ}~;OjK#쨷4w)gLH;FmèrߪevC7ZeJ6DMz7kk{`Vdd*֊J-Y8h#[boޱ# B}ot[f3;2*cf[ݜ2.m)V(Mye8^Z$a4of4oa4܎Pv0MLtTD. GY":(kr?N3]yGxbF=BsʌV7?hnZ?g|TCNRXq*[sWU== g;&X>9ŃoqS/)73"yVLI%kt|`Z:ekEXT`BL*_jPG[/7"՘,c=~Ǻ^r;'%6&̭)M(f{<1J> L3u"CCGzӪàXdIh @CjI{ :sʔ?T\@:u8s*Rh3o#RG=/X si` 1U\А߆+}9kN CZe1EĤ}{vl_́qfi;z!3l8fɣ-1έwMC?ҵKrVpU3^`gȈ,#@buu"=gϐkTIHGTa" /e5Zᜆ^qύYPޙ7i;ݡRBW;t,n1oSQh.\ً̗ u/r$rrȄ2 /%Jl]Ĩal[G+ 6(ej̴$K|e|y) aNҥn+IYR*mU#"#4E.a(i3/ne`Mw5V=V*[)r(=J̔eY]rSEn,JַؙbVcV[sa͝n,Ow7咽^9+skXkaxZE1t/Myk|p˷Sy|8dY:nBG >%a4>U\n%YCGCG@9?}M{ׯ_:\GZ =,zαlS/MB5wakXN?{ Qs- vN#F{h3Ea C9GAl~oLrj-㵬ZNĻZ)#.㖖];c'xUpB=͠ ixG`|Jx&>>qE}lŌ/!',3F(Vhq|ȬYk-'-hl&Phv=Oztyl'[SCҟ QZLf#z]UGd"Ozٚ oQBqf,CI? 4Pl' "sj$-JJYë́B`+ 'OᡯO8ݳ\#͑2rSԃГo30vc?7F;j2M8xֱ2zc2vPdN|Y99y%g[1}|Қ͍^K|̻f&ҙ'JfXeH'3D8w;bGܡ=9hxyi3Qʖ 3˟̜p |u%3w v<^\M:6RSNy(}Ƶ2~Wo]klDdϕfWG*2">vnw{;VwĽ;w,(o &*`쬵q@\@ex|ٮ^"F"~@?JI*՘Ze] -T(=#NIu4T`mղbf&ًCVf#j=[?{E?]%΍ fv"y)iOH/|;mKL? dn+<HM=7ͽK,Da*-DF,) \ˍ\nF{mI\ Gx6.)YC[RYeL2io+<,nnB7q!cKr} JwBB*Kc6OiPumK HlWއe|=b?~Q0[0k^ϺvŎa:A G_sɔPM:T4Qihw⢻),7Ξ:AmQn= H]Z;a+nU[AzՈ!}}Ӝ f3S1 ədIޡS [sf`"UT'#9i<NIVt{eF:<2jV|!{22S5j2wQi<(_Ғ)5!4_+T&;MLy4ϓ2z{; c)3]z_sT08-'4ƀgNI}Nr Wq~ ~ S̸tq PNb)Axi(LMũu>pύ4@>#}à}"~t[Gdރ5@4v'~|oC@t7Hxt؜O|&Cl })zWhVr疽Ʀ53=EP(&UWOl*9A*3NjWuI;}c{ߩ$f/jZ!)7 ^ԩhD߹\-1M笆A6QWkuDDhUuTJ3ek}u]Cef˭"VVaErXrqlrȻP j^wJG;ޱ-b*7  98;LLr=U$sB/fs P[r?}H___ Z:IJiNz5-8]g ݪ 6Ykg'l/_5S]A7R+q`^^Kidf5H aOb\۩V5VIzo~ޑJ׏r{ծ6bG.,9>ۋ ܁|pB;v_fg^a%[Hvd+̶}o]hUPBveCFd@%X r|5xC5zS*TĻC]R>D5c,\GSS<Y`z~9Zj(p^ZQ ;{NM7},BM r(@x%h\q>\D>Y_ʙ*Ò"jMC%PY[$JNl{‡+\"h"ˌuD3/ߥXԝAK֥;SLpwJ05a;5L!d I#y.p))ə! d_IHwjz.M5ƴB#G4,A{M4g1oã\ê}ƇϪYWӪ:JiUY:z8c:#x~3q\aLLJԺ.U̯iH=TͳpJJۖYЍ,@Z(i2Gfl`>?g{O7Y_}h2김[F$93h?~GM "Ᶎߒ]x??_Lj<<@?nccTxUXtSNuM3'~d|g[!e(ӞQ=θd;mڂ17jlIvJ@33"T^8K%o br^I /^^; U2,uruX۵gH]ėF[LiDž#)N q|FO:Ӱ~,7x.Ke\Kڢ.kÖ3sBm1ay@Mc5둩´IDATtrZR}/ݜPjHqDSI]g.-6W[i/}'D@<;uȩgJjg1+aSh UY86X0gȬZw?;;1tEif]D 4>[}!p:Z5mU#ƏQi~sTiN%@\jvS<>wd1llS)5!>T;sxcf9OOCZZ;~ZV^H#`J+~6e @y5CR2EFU nTU*VGܙ;[ poBw0Skr|P%i[?KmaW`^$ۖv F5d/%ے5˫Z]~uKI!WF7.xgƲ¦i.':*zgf}׿C0eߊY)1]s"_]UT(j,ϰ&k0E,J2Ӝ&4ȇGE(ܕ@ж|ŐW -vJﵮv];#Bi=@s6<⾺xTJ_ "wV,uEjTsvZ#C='"̝KShRcW:I֭aė}zJaRH+UWexGftfF{V-X+iQ6an3zqN% 9rC&bwީo9חr?"Cilf<$ h a_ϧxl9Rvb`M> >|1ba)V̐|1i/0fLLܫ.PFݨQӏ?1=C5XOZ3 h]9!sLXвp=B›FTZvq+DhXv7IDʃd3Mjkf8 iM7QS|~ćhhԘN. {O9MjJASzl1JM I:sm9<'f}3ϡ$qL2?ֳ=nH?0l{ZMN$ؖݬfQ#v̚w2f7MYM6@ɑO^=G>֐=y>faKr>;IK=Ou(mѵtB'ߠ??s fBn='}9xﳉ:gI<|c9ǡa|2+V%d(RxѦ?3eg~LMLxgYF%ӋP&ܹ#Wd%4yP}m ^7aojڦ=5bdXը}w%-.UR +&9^m%ͮ?˸ kݍp/0ܹr73h%Zo6!$*D}9JIS[iPЧ3=C;sd $g.kQtR-v*M:eLlMx̳wX25tTW}f$3UJt=4ճzM gZzed=+kT@m ulG!gwDK#_),ɝ1PRژV#Hu}PHzy/jK'#iL;\z~_`ՎRad)ҥK_{/4Op6efA2_~3(ߖƢ2Q{jblb]XfZ)p%Cyh9Pdhm9I>I@N!f s7풊|=<єP?7c6 Nt2b=Ix7zf ?NLg)u)ܫʼns$zfwliX*SjniY 'ЪXdHŢ(ZE@-7F7h!HL~(̌wL)ӪFkyc\(gq4LHWzQ{=G1q5?KgD;g(QQMBÒp΁Lgxt~?bL\ը8~,d>O@@υzfEoz(M@~SC= w;Ҽm2.+sLdim6d vCOvnDžxqL#(\Y}SW gv,|Z%9lrֺ0#wY;p{{5gc|RN^:IVV5Q'XfM'(r'vnZo7"XyX2ʻ SWdMG1XcL*FZƣ2%+[(UJ/_%XOf وerrYVײe#]Z˜̞u}JJ@w$2sȈ#C[#~~~Ko y*2~nC tbRB/N{Y/A^K(y%_fU'i4eISg~G tp / qWWN|K ^8J%@\ĥ1.zj<|L9 Uf\8j7C嶗{Svkk%G`DS4~wu* 2by򶔉W4o#E3/ X%9iFBZ"\Z‹\R3v=iY[<J_aý2zS8"#d-6ugC|$2Y: -ro-vKZ\ o~ټ6fez؝C@PD4|Ӱhdl׮h!9%LDJ#UNoN:ч~6?Rpud`bxD/%ȃbߛgX4o5P( ho*d=/O6߬)6)YrX5 ";&;kUd6gB5ٴIp{/ 0i,\ p3m&[j'g0cT*uUG};iRs`i6Yw]g6ʈ%]isgO9:ÏI Β[|9C'xHhF">ݍ?w?D"G)8E3}뱫v> IXD5I>N!P#iV @&"UHgkYeEҍ*й8U ɯxFz~d}V2FV1n(s[uzPςgWqAж8+i2\8ˤrO` Tw-Ҳ6= Բ<+ϾyJTAaY+`EKv2A"0*Dj^KZ߮;V[h/k"۵ +9vr=,31&TgS;❸w~#~4+1) eJhtr7\!Msq QP>/FdjȫM.rm@_c >XIE7bg+#ɉfB堞zm6ٴo,Q#Wn@%Adk,1{A _ 4f6yq9m>tCMvc͙RJB -l]bp#m?f![yСhZ;x/fY=H=yK^_rۢ & J f*kP|b@f0sW .,}2QlgNm@(Xd\~|>->,uRő*EhU{Yփ9&˨G<zK}41E>4=v|<|XwU@G*/b>;-SKKlpPfMaN=4oDl@Ĕ 5W2/`0i39 (i8=jBȸzuXWr8H ugxekؑ##q)P=lZkeg sli-s.~ׯ3Z/_j/0^b|5\8S-97i.\n%-,HnK7_\Z=);wP$&Ln Xi*Pwd k޳w{*sPCvd)׼@ogIC̲2(u>fYq: $rs1GsLOA::d<6%PE,)HK[ϕ0C{{ |hknI~}uKZDS?~ׅL3zGZZˮL`I|>B^ɑ2-aArxG@x+ܷ;;Ctvz-CD= ZFQs/Þxq5_r,"}{&KXfЧypO4hR6P!W9ƞCFh'jZ ÎfFaU(ߡ>{ց[vg C)7ꗁVQ}&Z<$A &h®]羜r|` opI V35*̜d q.e.PN C4:4?jglӓHMA5iiKmb#܃?iYzwp<輚 TrG9P?6-X0BgYEu,&t'_ݱ(q;qK[,}NT: s&'~wEٹ^(VlQpM%<"u{η;3UGn$IPݫVtTFj^RTgwpjɨfn+!UN<%o7͆xhQ8u-s{k|-_˖[Y҄H?7wfB4FI^vީL)E@HdΌЏGfS#?2ѥrHhA]*.5>cyi=#n#>b} 9ʺ.K,V[ wo13gMiSqv1V؎0K (-^\dk.pzWJP'S&z+uIOn_ $QB;JKŽ#_JY-e}pܮ { Y;~Zf" |Y5JWMltz _"֡fT]Y7qdlb=3ke]aU{6Q)Q69 Qx-CfHw?Γ,5a5٩O#F~f K7.!5f#&V}Q@rgTI{oa_r-uһ\'Q;{_FS_]ӣïw=&UjFw(lQ43d[nL[}'9] =E#0' F.p9F_}ُGũ "@L{+gnbS;kTkLJZ_̦VM*K*SgZyu)T:'(iW&25‡QծRutAsAhǁ.ŷhPiT%t= <LF kVA ě %InV)̭ɰ> ²]:l!wވ$SVkiz^ZyJZf1c h;1<+}ȏZ69@R<|yS1;]q#VMBʊ\.Dq*9?QóFA6 ߔV@ԔG>? O}1J0sn3OI*j#cg.Gχ"'w}t bԻohykrwGΗ ԯrK̨?YN莥bRDVMLi?w`\Z)]Yۗ,a@lyv x9^5(0. Lm4G`%{4[L2k@_ w~޿W ؝zٻ7 m3Oq{MTNdt=ԝߩWۙjrѦ}%*D /2YIs7TԉhL(6 lusJvC jf0uLkY`1ɌȽ7;3GxKYj1Uֈe~j h:*>_e9{ zJHi? H$N]aLn>+;w=zꢿr/ޗ]NJ*v.IvHXm>`DQ.Z\͚ɼwEUPҘukmxGv/̢\ er (iՂ"8,E՗$G:Ћ%.@pIfB3o;uGߘ 'oߺ?6 P36 -:COݿ} =8ÿ>G"ѳ? No߉y*ɫ'K]SCziLЃ޻)fRe0:/.f~zg<*V2h'Evs5'JNܵUyӉnp'#jeFD H!gBy+tl^Fݭ0еH&Kr3:ο tvTYUO4DH?PɁӔ=}! ?zQ} dGlcgdPm 4ppB*D*lkX;|tjۣ<cdz>R5:;&˒n1Q+Zՙtҭ7;IQw珝kS͕dfLenXըBdjWJQMP!Y=zpa}T8,hx,sxTy`k=ҩ>l<)0=!l+~,vlp2o@n|*#~ykY=%$F@mb^H%9H$Ѫ?|WM,S;\K ,KPݖ\T5k̭ ȞJ$nܿE*c~I/9_ŷ 9/z fq8DjTK2eE9i/|mEP{BbAQU7wYyǾώ;+_r0V&vND!TW B}FQ(M}TV+FEb ZBüVZs:M&JTPD*gRIgFCV]Ӿʇ]\"mq+bJ3 56qvj8n+A&8T7ȌP 0:FlqN]=*_fk̫ח]eˮTqԽ-Mak+}9o\wrJy]yv Hɍir-Óab49>pя >-H{:٨!$^^٦U;';?g3Eh[Ovj}g}7s߹;$q#H2.i9?έ%@|1U>\If|ĹO;\ WH⿣||-Y_Qi `iUω<,UyN]fiUŝO356,&iV_Yy{Bv:>VqS*<)O~O^0cR1΀Z>&Q< /J,`Hc!Q#eZ׉իW_=2`yӨpN^E2%]_].;^ ubH.|(V'\jr8nTj{\2+WM 4Ǒ}*f13룕lE x.x۫0;`  YyM#a:!DVid̗\RuAn3  crK1Mn )jVrG{};~hg{kj׫( U'9LU[)" DkX~i:ӌj;6fT2#x!s*dZ[O_*/;˫ ^Lh0-O*s|rpv[SD8\H3{ܺ"#v ,>.t&XTVe͚P#C#MLBId[-)BuZ6o|-Gg%խ(&"xj Ts$SL7(OXGXl8l&d7TCewSt𵏫OR@ӷBw;wj^250Xe0N`yUvBeA%W퉜F </rGE3^4 \_o f㿊4̂Hw: 3"H Pܡ޺ㆭgFkFH!ئ;y5@) hr܍Zf{e5q=E{t4@fi4I0Sw"_lMtlNg86=O@2+iCVvKH+Q̝X*]Ў$$_ -cPʙ| oȘq-i#7[y򋓀~KhM%t߂% UA!@F׵su/_Zu=ٖjF,ИLF+j-*ZE \UnWp_2ئy A\wkݮ|`X'n Qi-ޣ4|Pvwzeߕ4UK@:km/ְ9_3RkPy43H㵫ɮ\>ΣdZe@(fʅ^5xF>L%[ۈuKyaL6gݪ%x:rqW5R6@{qһќri때*wurB[-ng[SyoS#DfI]U !EZB|ETWP,G<8ٻy);|PQR+5m?[3;R@*@?T!LAm]q/_*7Go &&^rK#^C`4xRY f1=7h57BB8; |UQȼ3v6p hD\2Re݆zi1c_H)RŕVjЮCjkW -V6%ZUvp}ȿ*goFZZ/n)fΜlI &X5(Ei$3#k, _pPkԼgqXHU XV *J`RPr{l# S55Lg̞单"%qF,d͗/wJ?w=㳪XZ4ȸw. wD1A[ʝʝqGwy辂+DaJd[}mY jqug mKyKM'ۀ~+U)\̓ȚE5|WoHyCB2D7Z+}(J%mgwƭ;Bpe`"+aj$㾂dzE)N .̻nAZ7̢bzida U;__zZuz׫5>篽jRe䆨P%y^pbl*=+ ˼Зɽxlދo|sN=V)|l3Ch}[i t RmBݚXs$t#];\}CaH!.}TNL5#됛'O!xsT|SGrxg{>IY6"3oH QXh3&U 5}AVb& 5n) d'¢cUdA"Xʶ9di,t*6i.}O1=>R撴3͛.?MЋmij&;Ú< XZM_5䈶Y3N=aCQᰍ+#C6+ʅry*aUrh[$"y#v=PmT1MP9eLKY~ҺćyEWiQ,e+lfBwS/XcJ3uQ;u.I³&((FBcѥP 2#"sg )kѐ5 '%4b[~Y*,GH#Z1EWwO:ܷOml{4xIj1ݑԩh=Kcy4A1 3OKmhڕ4RBs.n@ϓ 7V؜@GZ^Y.MZk$d2F^wڅ,;^(\"dt̰hKZ3˧"[uw=Fjs·$+]Iw.vn B; _wNm1B[{Wr/~O"["u`f"h4Š;$=R WMU!$P.7+yqEG}pg@ڬ2aK2H-1Bf`W4zuRC6A&[3wfDligxT=W6ϰ.6فTMy\Ͼc)xuy>DBJYVN4dr;_zzkE3TZl0~9gOZ@uQYҕ^P{6t$i" 5=oV1>eVhifΠӥ f +cIE+%ɏV@iۼbʷTDW"XuԎPى0q ށ)2,ԷHXΎ?M9$,7Yq~wуj9ϟ?epdr$\Mqʐ}3TK*fʥW2^2_4;U!&(yB8Vm(IRWooNhr{!hbUiJ?-hpvCJwCfJԹPTEuuў=-*z&`ڧt{Kn@T[bg۞UGm%ht b?wEb k#dr^7=o}<ٱysgO7hj:b >4m=~ ~HPQOdt5z =tV<93LR*MbLS;FSL`M$3._e3fD4A4g?MŊJf(6'b61ui"6{}]i Pλ2w\"(^-dڽ880"l -4_ ڋ1}:BFɋ5k]C,WÍ_h1~Im-6^/r!zX /oKwg4E.3*򚅵m-mi5 4=q?ݮ?;~"#oǿ-軏2nrͷpgnagn?rgN:r*4GB$6CBn_ A+R,W,0bQԁK.-A-o,tk6(t]ADխ;͸k%viE)T'-"C{,3EܭАL,2c&QHL=|zg!qjcu e GBqg(ek_޾޾k_ kk˭3Y.HLpGJ@f{Ǝo3@L+s4:MӲp\?O>t# YςeJ0fZ޸`3 Lsw=Jc<J:pԱ$YTCd5/C@A>n;fݹ>5YS^l TAʈ>yLv}UjAϒ;^9z'Rs ;KpNaiΐ{AoK zG)![cLOpӖe$7m'v,[:1Q] _Pg d)2́sed;c~Gf'Y6΄0I?«"kI 72rBNsĴc,i bF;V[`z _lߙ$_{z^u ^<@M- g,iqo^V:< Hri%1R> qiʪyIϱDtTN )9S>MjRģ9"BƟ] f6)Z~e|4{Ae$3!ICMszK^Y `!ⴣgP:"-^ o$eryF|أbuHm^tҒz,;ifI"3vQ#3#(1#RH.c,E>'˗&$CQ1Cꔁ1v*ɠ@S0iY6ͯZahJoԽ׭Uf-wpD%W“3wj-&~fϳ"+{&bVs)yo ͳ/wΈ8u=-f+rMgl@6cF_۹%V"1o8nܑLȈlB$u6gS \g3j.ɺw/Vjs$EE'E7&skil[RwaF<3=NJ2|n@(cCBMt 9ӵ߲]k 6:O <}ـ ŞiBݝ@qՎ4gS:NC?]kH0+-_iXO6[Sc8=❽u<\P[7[%7aHE!e5Zr_ZZ*}zqǭ`j̴ `&7A,R, :pD4)MZvboݨQg/kO)Q_#(d Fq4v@0:.Hnr6^r.eAnu^gIiVK>";r>F9u%f# ϳi2纵5riUggYb 1bw pgwؽOl0P쪀v.t %:LielqbO\ٮNolǿۢQL 3aH%Ҧ#ոarP(+'罘fQx.M X_Ntee}bElTꡙEv#4'ٮשͽ{0rT{p"IC7R(_R7Fեt)Ch龌%" ~fxE}CqB\#}TMZb8 D.+r}]2%}_ "C{٢,Pcx}]_FZt|%) /2lT8#NnntRX}#kH#C 1iCZ?&lP@g^&?_eڳX՜iPpo$,>2eٗ[5L9m &EKA3d-aJ6쭬;o2ak4/]pXn(Um<$*6 !^54?)i^DgWD37ٽ֎թwM H֔=A%V mdw]=19>q4{[օ/epXS!?.__[!FF>.x"τuc{WŽn$8Njy͜wdVtr.6bOtGu8\q0l%d95&S(0)8ompǚbGjZvh2#so@OuUJDsO >LRH*.y211zO_AYL4C:F (Q9BI8b.]7 P2+G03D+FUNR1,|WKYnC2E9ifn'E2TS #2y|'Ä;'-^ DޑBv6T/aF/[8NK<4vw5œV,# hCT 03XŕDZ4lBqV"+0ԓ2g;{oWMC&.4%)|:5%ѻdX5dvAlZfzNbyNȳ)R Lmwr@2]Wѷ':͌=|dm9jWS<+i\H\ 8GacIE.VW4S `ECͳ Ѽ3o6=iGN}(1mB|!M3MRi3~8Jqⴛ5Q#x_κV&0HGqF./+YvoAEqV-p5r83znGg Ců˾IМx/~!ȷ㊼ ^ܗjU Tn n/_K[*Dk%efDZ;rGn0Lt.PcG xG͈Td*Q/uo(mC2}*`Y'y;RfruI 'S:+'ĕy{?]=iX ԶIr3pSZ@}XwϽ|coݩyvr#Jײt!9mPuCO{ChYȤG 07Xgg*Ѿ6g%$g &aF K3ˣmXpiB?Ĭfi}+ 4?]ڧ=1`Oʣϔs0`I[:Պ%pĽsila4 @g+ZztTgJ!61C>Zس5^=@Ɠmp|rI8 r\Z7-ʩE9!Yy26Z}:NDE4] 68?Mʐ_."Ifav+P-+nbkVuG|YqGޙQ֘\N@{/̝Y(8ڞsVkfF- fH*WO6Li6߳B*4r";{dow{g3RxMn^f7nQݙ*ɛ;c+ :b@R}U5egՒʲ+iCk89ҩ4Fk. 4^_xخԡ/w3F߫e6 |LEE=~]$37"aTM%XW^^ؐZ޹usO(8CY1ޙV U 7kseusD3_l}Mo"`ko(ѷr-3`bZk;>S|>qNl߅sQ3f5Hp}#}_*ⴧ~ cdT%ʮqO\YE]Y%bI,sL}i 6c)nG..̖AlG,s.r\Zè]sDd^=ĩI~t#LفHFagҬA<3;:uub<Na1op1%es٣gJ;__x (5-'%kL*fE#*#*?̈}bt-G9[8ofd2RQJĬH7yeLLAK0"&\zxt DlTs:[ee@F+ڲR_*Xo5cX1zM RsbhXӢOww @&a24-½̄^K4搶ےDfАcH[f,-~a *_]U%\ʂ&C:-8Њfgj+^Iԡ.:@DŽPlXH d0S(#{gF"i_ e+ .ea-yW˾^eN߬_4THST)_כd^",JɎk#_nZ|L)b#D*#2{gw"Bu}I72H&d=>N[u#Dwyv%fRVV Pσ9$92!Vw|ri &h;$j%*w"(42>P42eax8 @4aH#>wgeypwuzȠD Ť],w[n$2FBGPΘ؏6ЋfJeFpqzlƗ}fvW9` SX՟7%D{㾡Սn_y-]֒ڳV͝*z OLѳ|s>5|DSt[Ȳa! `GFBsVU}?tV *( 蝉Jglhts7[cUҲ5UV XMԘtTx|Έ<8Y6|8ڨ%k7{|BS'r6uW@aw)Y$fi" "b[FoC6M3ᶼiLoܶ; !TfkC y^I^헿_Yx`vps'J`جgbng˹#yj *Y_szxFoD5ڬS,ߘS Hs0BJS?#nj[U<=G9="~ngymdYapҖM^},˃?&(#QDãm:!uzma?fP0>LL$۠zkn)XQf[i|~ǍxogfkCp$}[q|Ι%ř11`4 ]t̐Y@rG/`K?m;bgw#xA{KTY)TCCm! L?Jŵ[ #(ds7 r%c}JV}M (pel 48ۺ\k{4 22<\rN|yєZcǿ׵J-,H-%`}z#*I("nKة؉]$~M)ڰ׎i|9Jt5հ@]-W((LeXAKl45Ӛg*, iWc紟-P5^ؔy =Z Ύ6UJ I=RB.J-E5͸:\, ܩ=jQضWXmH RCLPC Iğ.C4̰LF_\W_) IK|]pܗ\Z֝D'z`Ðu^#IaoF`ܱKfru]޺^{Yb'qOAyK e5-DWg1(m3hjp43Vz%w Dƶ̿鈣#wɅޕPЏGPT*@f k s]Uۣ   foV[IeJ9Mkif>=̽4*ֺ'7j4O^f; lg$zD'e{LCxW濐d}Av|df r"!U]LZv^/`̐@뵾heH{˜U 4ww_n&NdVv`$jdglVƲx'~h\3yNi[ e{Xd $L1EG̞dwXi9;ХN/~d]0NBa^P@OlV.v"3΋pk,`x=൅ S%z 2Bln.?J5gWJh f!Ŧ/%2ʴlm}egԟ7)?ޮl"vFx]`~cqſ콬,; ];>{RJܙenPܛn"CO]f`;@v3So &9Yx@.;Gv )!rTk0ƙ&G-c\J:|xzl O$Awkg7b}l GV_V'jW1՟*N' )يSx+?ᰐ\>mjz#j̯}'}e~Gf/)~[ff y~Ml\4[nZwj kk%u32}0k"dd6 $*&m1+m}Z)u6Y5!UoΤVPSH1r*"YV"iDf?ʓaÒ"p$GѠD?ӻ:LcFʌabr63mV:;M΁kP42rM%GuQvD( (͗2pUFr6iH5/?o)}T93"-X]ᒣ?Df'rJm/"~T\M S}=k}d졁H[+{pN5fSH`P2#2?רE/۹|V{@psņ`\9psuky잌-Zꫀ2˲k-3f2n86XkܫF3EPVS0^ nwm!<.v I@мUwrHi[ځ7-8S`\-`)zѯRXr& ,9Ȩʔ;ޥj1WOp59}ߎkq r.R䭖eDRV$&+vyd&ywuڙu x}!6! N@6ՌZ镙VRswsRF3zi {%~]]A뢗s2i뵬$:JnH{&yRLa-w=ix )> `i= EAYҚR'&{: ̎Tۘ@2vʹ֎xH@'duЅJ_g :O±mXc\'iKH-%g 6zl~9w Yr?}8νyjǵ7 sZa^C:1/6@"Y5JIQPA^ߠ]eXnoz띿7^/Hb9|g; Y Z~")Ct%Tvq}v ˰AP;uS"\ ]'ߧOQȣ{$NMΈO'V?S%X@+-,90*ɠB̛k#jĞcޏLkyoq~l6}SdjBؚ)MX>ڽ2skڨ8CtnCh<ы썫vLLfVPlXq(r+*zli 9ɓdzθ!*|a'OXeBgWIջvez9ˊJUo I;5#$HidBGRv0lSC> l0]՘`$K"|2sѢvٵ֗Msد o2{4/C;4 \H Y>̗P3cZIsfC^o0۹nl-_VV܋{夃YuZ^s}gl\"㵾]Uc:33wdBfYQ4:}A7[RwJWs6(ϔT/fʳe&َ HmaǺwܛ{DU~}UE]W\E| $#j۠yLzs sNe\eˆI&ꑯEǕttgƲpB˧ ,[|݅2HkbCp舡f 5Q42%@{61;6l2&u6O𺜆ط/" MvXe<#o7P\?DZzU1f\7^ֱ 6އfzrF鎼4e97`\!UM}8f?ɔ'僛 1ǍWE^cހ(wU7g‘QCq۟ZÑ`yN1^n1cվquo3wy '5jeM-Ps5H !և~:g}ؿQp~χ:z|JZ :PLR_b%%Lup4雨r!h;}|e~p+ײ_/{f2@LnzMPDzO+RMʹ&!๹qm|͌F{&zG9%ߺIi[447 s{Y F@m;`DEL@{75JC]rC G'>]o>u:})4iZ)?3" Hg`˃D֐C*^ n.me:_IH] ~9:/0lN9:?>ZqD:?{k5: =@ +Fϙ{*.ض3IY{U6*9wn 0eֹ:^cf26hE뭢zV5vgd#.p:3&⮃;SzH@r[z8^T0˫Q~}}rm~el9(r{^ehY%VU|$YZL/o2ڲQ`Q afb2ӵ ?L|]M*)Wb# d: g+3"uḿG?:3`@ҏ䪜2%[uE%O^{D5;D7;=!fq)PA&(ޫ2qеVuZd9^ CQ6 }zëdtϞ1<B#7if̬iz2%mQ(U8lPxQe"Ooаṕ)Crʗ3vcg/ODcfXU! @];Q2B_km_o{]ӉX>;ϐROBN!3w}gg0ogMQ# yjL9<9X~PRET;>Q2\ Q>F37U?9@[d_=K'ܙcY/]šR 3aR/<00ۙwg76aR2/v[JE~Svol!EV(!^ k> "PzBs@yJӷwq A_'39o {o#__oSrˬWifmunsPj`YVՀ=;NJ~#..g<8♏IbԏwEnLꌠTZFojJ4ȒwkX:hz7GL3Ш7'gDd)OWc޼)],gL~Z5'gƧai$,3Wn^G>`F!cuύtm=JRSxPvVL1K܄|:?=]Z*Hi>:S 嫚5-ոM5sHYm]![E^ zDU|쐴'ߙ-{ՑhUh* #bgD~2s|_[+=lvUd ?|+027m 4q@Y < ?mkUPm`=,?Jm+.|-s[kA?0ײZ;s}}seT*mݶsf0f"oIG36"U:I[>2/P@qނHUGI6#K]YcPƽw $>Sž}$߅vTmi75k,,CE}W>Doas6ѠtB1۹.B؃o23wl7jRxא5k}tLD 'R0 ia}[yz)Ce `.Qsvl{a  БTh>MZ e/弖wIk::0٬ϖ;2^ՁW8\r&vuix&?GtFՈs CM@ ͙,U"Ok:,Jt9gN<VvVd雨Ks/PG7X~^p]G}AQ;_Y`3hRF泃e7+X䀵% W;_O4Qk׀ԻeogU6&)fhYs̰%q7}>?턇F7FizhL-bP0"2N_V"kL'``4tέZC4W/hC|Xή5ӛkS88;! e+R{Y֭WzژqQmPϿ3wFdT)p+WnS_^L ^f|^35Rds*^뵮ʸܡ9=n~}-{]`<T*dX~/ʭV%a ;kMfp.uU}rNnn:͊Z,4ek_k+",`ӎAI2 "#% QMSFT JQ泑kI4K)8bC";(lJw7׈XFP5xST:3O{="2T=B9?z.Sx^UoƬ?yGb2R?vBڑ ;"aZ)NլSCcRchҪ n}CVrOcK*R5Sd'') 3)9iVT^#f]!Lk4`- V ;?U~=/O޼qoe-x#ւ}d6kߴ adxBd6ry펌2^c4t(49ZORwܡzBvJ@N[3qA @bCkbVk'd9zn҃uG(u~=Qy #K ⿬KReנYXܦM%7VshU-d{/ E~]zZv%W(IEb-!CiGC$R,B]ՁZoI%_6%HRL+Ѽ 6Sn5ѮKu]#3vey~x]n&C֙zyߦe;4n>0 ȃ#\fD/S$ .`'-\9q%>khp2d`9젩C146HK"b<Ț7QPw" bdGܬ-R4̨(c2# -5SK*>K;+c ^/fMkDnŖ~a @ִ%d2Dۯel-[^/bq-.CAkFp9Io3KTfrGޱ&h髛˫G 9bNqA]Qa*gn=!u =)R1} GTwyV\`% ڃD^F%ώ.Xi *YV]FZi:ҟJC<RV$&OZj1ֳF~oͬ= uZuŋä:W]y;0RZ[&:YAgv9rƾm_^ mg!I/[r_f5V@'|lIDATDϩ?4̽5i=&'N λj V$b;[r7p*eEkIj~Sb6N<٢2m86ԿbN3p4L\Ss|tTeHIWZU]/yDByoyƣ~3L6)#j ZY 4ᇽ()GHQU"a2|''l11stK 2 =7v0B)f oh 6H3ْXV<* 509uiG\%\fb)6B.k}}]'0*S>,~J׋?b'iwB_E[U:аܠ殬k˹Y*MOj]lUc(:ˁFӅavg;N&wTKsٺX'#;*)x{D>̝CDj?0'ڑ;μ%ԯUC1u@~E Yzn|#͓w.vRDѮو لhxaX8PO`VB['ƫYky] D>cU;ό>Fv-Df\BgWqӊVe@'1VX4y "K֒/ &B/H]1娇jMdny״~0haa[ ȅח/ˬ,nq9MüF;AD~܌ׅ[iF=u)15i<&xk278Pz L J)#y&(E\Ʋ/׋7Z쇤15S`/urzCVV4%Ve:It4^tT$J괿l{΄Omļ=Oǹ.6y>UӴUI<z\^fM^UK*5D^2o:oQ]%pr{쀛vkqx~חJ{|ېYM%ڦJG0wk5Z[>H kg{znb:~/39uK cYYe w^xz2:VHECw,%W>k-nd#ky0?th贜+Tg *i'.3ϥ)ͣ?qqj;33sky?\6= ?OE@J=Wn**2:1RADRj̎S_hLR{Om;#ݱ*F<2$;#XZ6, (Ң"*:#?DIL=7o맯}r33V㓬f_џZtvtlhx={k.0-/AmY]ٰOG OǏduVd#nv Wȥ^qS32LC,t3wx_O\f/j:67J󀗩2ZH@5#@&v𒏻9詒x`4OFa γ?[}lpsPyf|cs.g%@Y짝%!I.f|w^m9s4ּ.C%qYv[lɊ6BMG:W@~B!rGNgwt _mkY^?}»vT+̬Ppe[rd2=Vq-뙓 dn (8oD}lKC,Ui>I)5{:T/qyKDh~Ra߫hӷk̜WMawulgVJլf/Z_nRݽ.;"A^/VQoF:Ytxs4A|! HOtZsH7t$YOs]k/7[kemřyd[43 0}y% Ǝ.Bw>k X;tgOfFs__je'ɸc>3Yuebˠ5^L( F^)]5'NkGV:FwN:b휲xKلӟO*YYع@**B^ qBfLi{TvGQԧ ]9[7 )*' !C|g(q]źJ^E̊WHGdR}3c|vedq]PCi$;PÓjRNu`?ՉQGjҥdFs'krZAuZ:3=>d;_^=<*Ck-;eNd v Tô+"x ;[BO7^݅,iatLj4#YjG#a<RQvCjlW;qܾDl߱fñ0*HPcwFs笋g+!ifC4%X "UݐԦ}%-mGL޷LAm{}zz__?y_se2ZM .`C_JfTjq1͏#ϱ=p:]<~kR#Χvr`dD[X#9Gh9p+vE7[^Qi͉UjeYcQhq&@:3C_-tELWCi(4TwwPL5bf[f+^q2%,N R&I.W}Wv*@_7 rTU=Q* /Iڊ2&U'l,q :V%$ѬPF{. ƫ. "^̔$BCdSųO%S.eNQJq-BƙmaM,r_ %I,Au}rY]5c*s$Hs*ۨ?$*u+9qH0Q;6yZܔ^x2H&k:e:A[&w-RB{]vd"K ȟT40PDpvqU 3[Y&OI^0bI)݆KӾtTػeOÐu;ݪdylJ }s/%qe\nNĔ/_Udu"μLQ$R=%B"0?UpR#3h4ar܇6/۽,2j2FRd"#[|2BD$5;n,s޿:_ț$h\"ՁIC).D˹g~k?{_郇({j2>(R"{e~]|P8ѽ<-@dzɣɰx>`B|>'X?\Nn5j`=Pe:g4XP6`ܣt[!|%qMOslqe' Ӝ(I>Ӎ??WMDѲ6!_9;U㢠![=jTr4 =}VBJ`]@Jk5Q93 8v*lL*iT~TbT}z;ί-B ;=f)38>b` H70C,ի Brϵ=ͶȚ.ۏTqZMUշ?Nc,;c^y?F]K?N q$#JT%=]: dOY90Ȅ,nWqDfzO{cٯ*SJ+] )k5QOjC(A~KgsAu;2{:Qq![@? P=Q2AlKˊ(;?ˍ?f{i>A?8E6Z$_ˮsrV :ۏA `>־>|H61DCjTlPٷ"Ӎ[/ Y{ÆQ'NB`Nv~:g8? f[du "BZ5Z"3WM(DSCIs5qq1_҈A𪥹&g}{{q@U)8l\/7tR6+o"=YtؤcNU'=ܾ =h^^r/~Z.敆L$PuDKyƺgcOe s(֌D9Q Γ~/O Pr[wwSZqPB)pO7SGdfD6z\j*J(~v69?u9V5 +22~ ٳ, CE&g}0€&TPVEAއ*mFɲd-(cE~NQ.sзO=w1// -CTT~[0Q0BG0_Y7#I'0ot]VYŊ+ӀUѠܙAv2zt:p7_5߄ N)-sw/C ek}_uE_jk)[GxKYF` SW=yDI}\̞qقZZl9X>-[ȑEA3ceRyfvwDl.xDR{X,"+n0 q!k~bbF/jf`ӍnC,чhCō#&mzjt%O3K(5SV1qA(Mmr/9*+=e@ns?V \f}yf؎̼gW^W^WyQ 0 VV#/ о~Dw($n.c@5"{,eprLkNؑL4A%sYM 2/e2l)Pnj֫S7$R+iқޒ#zz~8h2Kt=9(=w9}qa-Bk/d0iX=)vlzs s2jWbխb_rȟ_2jb7|3"2Eul]Z1cK8i VTD]ك-+|%A&k>@Ab`4uRb\CѦ{ r&ޖ٭q÷oD,G3c}w=nH۵ɖ3RQpгj0p%=2pi.M˔hG!.> ϴw8~}$#u^F& 'DGLfU;|w=@uひ'ߝBJa^^vz h5#,&vc]6/mLڧ{[CoW37C WDzBZȖkx_˸#U~n66'>g]Gmvc9s*h70›@%֧TwpxMԭhFTk4dfvU0eN8*EP[=<IBBPOpgn.d5s5wBE ,qU& \Sc+CRiɅf+eʎG1%Oz~r+ͮy\-bNuLW"xtgMnŬt|r]\$CJqA} suG洞h:5 {? b 5`*Vr"r~@fd+.Um>v+<+d5Tݭ=& ,BG>[/tef-}[Z<<ʪy Reߙ׍Tte\y]y^""KR{5u0!F)\v% ԦL덴MMMn2rx. ˱mVp2,q,&@|a?!RgF_ f-3HKMsS T(@=pB'$ݾxH`LJj_tEV.yyBYQټa4#MF9`U o;@QMSqz%9]FzBcWd AW\ECAW(kE/?\L ofBfZ[5KnԽf{lDzQm^(>?oz-Uc*Г maMhL֚I N[}:XIf%3u7|Pϒت}Hv%CXZz MHKaf2__?|cU?(`6(k{,2՛QrV.GsnlN/pBj&>[k9xXs JDT[kԺ3 lez8 D^#*<7DJ(ɐZvFOb߶9(ld%OzthtXv[O+"i(^Wr@8(Ĺ@Ẑn'жZSC%Ǵa:%D7\u] {uL_2(@Cɭa^JQ2"@: 4GG]PBWCk$[G}gMUn4!Jt蒵I]wQvj@q|/+sٹ*,D%j}sZև/[kEFT7z-ws#]fXpÎ2Ibك'cZVIjmnsws/E-eSt3c3_>V'̭IEޞ{W42k'?Gēs}Lw{L֗&pw|]穫Z6ZzC aIRE^)cf*0]5: 2`F>PO 7ǥŅ++RZWUc؅DWfS8 41Dݘ8^J)fŗov,obFuۆ>>D::ȤJxfJ;UuR% f0Yaf2ťdrc}] Hr8>J[9-3/\k0cdmz1e'Ody=LzwլvbϑJ3ޮzy 8ʞW<'ןc ~~|OZMW湩a Fu^=1l(7n;V;G8ڤ 525F+% ЖF&1l֒SSٷp&< #H0i0}ć1:vOi__HuS=FـsװC\Qr"U%x)֐&&ꋕ%siyd___?~|x>ʯ_odw,ͼdه՘9ljQs(T4^Uλf}Dm1qάv[oƳ&dVu"pƾ#%)ȕh0]Uny}9YB#*殀3 w~ҋ!>EcFR4ͼ~z;n&j5R RDpeO״}=eSir4'IWKfpܭ^{  MRhi뙙,k`$c??Ϗ82# tw!&# ^$av 0Ѳ3rČimG F4dFJ{U@p`fwʠd}_~׫㇔|)LHլ fn̜zgD"֢eIftW|VRV!T^?ZdH U/uYweK8ԼpOəZȑC.dɱ3 yjLmpb>¤= x篒>]a'T-Uy~̗u+ZM`T5^h~Zedbp~Q[z^)#z9⪤eymEtf!3 KoJ] 걸}= 8/@B{kџQ lXHz=Òl?VIatغj8>S3ȯTd\.]~_ǟZ`v 5[3au߰wo7*_iI׃uM22RMӪjbmMH]ά/VݠE]QjYǣߡ~+mcPڃjƵXjJA.N(gD;Y}BIOXٽ~B:MہI$3qYe5KfY.}%Ϩguǁ8hv++,J7\t8SDonAO^JG5wUê; ~R{Fy33QV?hjPwQ`C2O HQ}J09f5kNy7Y1Ϥ餦.tu(5zoܬ\BtJ"D+Ύ=ɤ<5^|o`'p+7o('ޘDw:_Ժ5TF^K Z.*efGZW\'30"x!-DDmm-vwӸVs!3%2{ 5ZY"G=i u;VWK7^fշɚ:wyl}!(7!hnjXjz%Y秀m/[|_{ݲ*uca"Hh-.mQ`yATxnY'2PFI>gKf2 'SWDJd$FZYƥҾ͝j2r|Gm8;uI&`@/&C)2Gk õlg9 NW%-C"rS>o8Ip2nyʼTƒ 6/|*qmC&HnmX6rQ!1N[7a0#̺ nv8_cphB)&?ph ïu5 dIkתc5?t>S&Gp^?2o'UQ=WToZ[3Nؤ qBJm^(.,XB%=`ɒnwԃ93cvՇz&;G`e{AveqqO&3|B1>nvvmv7|W GwnZwGꚼi W ƴt;g۝nfӱ~X 5fp j/"Yeyu<#Ȗ-g%ݗWZ"&Bb˅4tX˙Zr~.{-8vb3g l`'掯 T2D^e-{CW_\jp(}P Jz{+Mi>R2 S0%0p"8z]T6= 8銖nxqh Ux|ƎlCvkM7dI>g,0d"tЯ:}E*RW:_5p<ˎӈW{lMH_"PQlnT!Nʨv}.c:xiMM̢ٸZW||U/e[ϞIXaSK}փ:,G_|v TƎ,:x lTӂ)5XVezSU~xH"e$ed$Hu<;gnBWt.ɴʇ+/](7慞gUE2s2@qXU|K Yl`È.Z_$D9-֟jrfgUͮh?k:CտQ "Sf3ΞZZOJ'WLZn&eM n͵xW"m|b=uʩºG({Nj͑5d#X76TV|}cVނy~ǩ\Pf~EW7 fv, 8>a(g-Kx$I79RwxTLr4֕ցm0:"Y6kiT>23"~$]H.:138^k\Ij/^kqM-> E%%)sM; @ӽXn"qaT.O{n~֕GM8<J5TMWf jܒi`fzfـ+o\}6g[Q5 D2n[Z~察6a&pfYTOExJZܗ )Z?qNᜐb8 83ϸg䕪B%1q*"P`YW<{[]yL`Yܱ͍Zr1,l}bu6$?u^!?Гh]F}s2ד$r2Mt  %m uIC^"0,*ZNq8o`ܒǣۍ,M&q#b=,6+X!Qt?I___ο+Ur_N_5e0w.qXܐyf?L.؋uW*;&wdTM N :0ݏ&JX,K5[UH oXa[kq[%W_5P Anls~n!t? XVA ;d|~]+WvZ5zDYuKfdRͺ:6=\"amBu.j ,.2hpPspȼJ%ZJ+k}]4^'qﺮuLʤ X!Gi213+Op + e㯏?23i`S9ؐk˽f{/edv W8>ղVeXm#=طJwinw ->d٧ZP"Qoy*RkVOhr,t=};nm-$;rJ&US@dtJ0]`H^yr.}=SUH)?Ȳ KUc:e<#q*ַܾaF[G5kۮ [s0l(/$ 1-eEsDY6e?h8fFtw qz:/jh&}?%+QلlSt^4OyYÎ/tC?|Kaܼ'U;-ϝZ|PiOľKö |s4fNםYto7%70 4@ e__gu"27;x֚v]-4} mǭ/j7 &j\w0{wր޺܄QC1u?VaZ!h yG~\v\q |{R[Z3#I!BoXys#||a ve\5j_HH `^Koi:rCh?R ]I+)]<^wS_uG^-++`$=h|/4YgI T2% 5nM Xz oqmY<lg³y^>>ՙgf %&΂нBRh%h)#X'xwb2B!<и$¶n X6_zG0a|w1 l)fNz 0;rckQmK0[vҹku mo>ev3Fn4mʻش،qEm)kN [&<%IWiCZګ:-Ryfx#YB>)lԾJo^eRFTWl E׻mG+6_\C,⬣,Vw_/5mi]Z%eTd'`Ƭ)۱hD\Mw+7>Rwu0ˆ@V`\f;?Uz!* 8E;Awa~nUDˆ]M֭3zMx7喺憆XސucwiCʈ,_믯qghDzF?^=0{l B횟?6ex^~à4$2O]}jYn-D(4OX߭,Վf&$` f5ܮEsIr/)\o… EX  ," TJay'Keh_f[&_JgZ$2AϨ?r/+̡eKkr7~ejZEcGW5>v%scUӿS[C[kV9.j<όbSKHY8?Hw&O`g/"#.ՄUZB~(%DNvHbd=RGo$a8 ż I'W:pN;d+qL_[{'BUb1\ܤSPϠGFy@,_˭:8~8pEMkOI-Bz]V4\x_ UAFhDH XFLu'*6[1O@K˃ ̼@o6#Pص}xͶ2W7et: Sym5f`먛0y1:\\K _;J|+3u^ db5Ѫ&v#uJmjzznZkcxw=Lcd<)9 >{em7[1RUs1J\)Ѷ~zlLSZF=;Ml {(q]ȶ{hrkjt7/y {Os6i-拟3uû:,gEYE"m0nXmvLqgM;i=ݭ[lT4Ia I FJ@T0zWg1k0Y$T~5$f.kd9݋/xay(#mL2r~]-8+ņ&3`?L%:AvoiٱZ8y|}AXԸU#8ƽ+M>,3`T@vtUٲxA]SNyE G,Pu]h6u=!P1SUF﴾]dRKR$a\α%1?B<3$\yܵXQB׬a3R//ˌd'L]a1](MμzLW_)T6Srf.&Ytk_FTҋfzn~5y #50`!VE-+JT1T۸OEsv6rR>uh"~V`^zH_5:Pu%Ghi yuuFm4`N.fxQԽH9ň]k= *ۿ;Qk7ՆTmN=Bv)GzJWye:z;+RVNj2~/''~΁}5}RK|vgz4t bZ&>Q&SçN6 ^6vM_-hLc;s WcW}ߠwK([XY®Ts<[Ae|Zvud MTYѥOQxW2):W[-2???><+կ_203pQ˴dqT$A<\ԐeAg^<-yADNyw*d`,VrL;[h-$[B$ړ`{ܬn}6]b\p@s[l+;k-R+NG>{jc,oCqo}Cnbyg+Ң?mjb^E-5XÕ<4~3Sw|rTk3Pi鵒ޠw?\I~$ i.X2y2̼XmEbϵ8p,-̓F++&<̟',m-* o eev{+/Ev_AKi V9H2abfLѶ֎U'1w'  (x?Ǐ/!@B&3k`RYh5 ]ϠY[R&DH${~]͡xPovCbMSruJ0i'LMO - e|/e4nף"N34OwoJ෹ͦuNSff'>&J4.)R^3+WUp_+Ӧ|jOi/{:nqM!?( Ҿ7>ʇM$Ixa}Vv[ף43nfh8;c3 2& [=UׁꝗIu=2IMM<DHW! 4YI]D"4/Lkʔ[/Z QYYx 8srvg[dԂ"]JgٱJj5$w b#Z~SG}ʷ+uEf]pt-o$'"DuyjM:xL[(D/AJF-lΛ ؾD'.І&McGj.:͚ιh[G۩3mZ@HԵ0or=&fOq>>ڭ8ϵoJ]Z @4)Fq&qr\g!jBfs-|yR+3rTJgWg sHr;?SE4r ZjZDB-F:$e@K%@0JaO%:p[8<|k=rx9@,k֦3 iѠF"t\(Mcpu=0C[Sݮf줎CȈjq3p*E75LT2 lw>=<]1`ޓQ%zNm:TLPGe0FEt:?STZlFLeFU5cȌ"BSL@Us6TH'_ɛ0Z0Sf\yE\g=UkyAHιdʲQD`U~6s9L@uqْ-Z{H ?IR .3[yi!섥7`ՕFe?QKB^XnNvLg%U@h/eٵ+]mN~. nm4'E Օo݄(uts<;<=h= l2w3ψy^3"!L$l8?>??}/n2>PՇ*~ QG7K~N)yFpgQ̣uVU=Ɏ[W+(=;h6IR|E<dy#t<jԙ^yVg0شRh *y4tGZy7IWX }UJYB m3 2,jeeˋ>i:+"ms~d*j;+GیXNsq)L ܸyN8'PF\yo߶H4-i*tq6~vmzp;#n";l9im;+; g1+$ ӫo`m Y, Wk.$stLA9wQe7q.B4O?È""lpA!^߇pu# 0ug#iU_?\Zr ;tF*l:S+g5~!E4r~WI/v+;F^ȴ~?bD5Q5jZ.#j ;k|ZjrwL~tDg@eg M=y md Կ1R&3t7mOD5TSư鷨p{.QJ48u':\wr6OE"8C-R&lbUP:SJS,u{qw5HeQv{̤*$g\Eg*iO6f3UEt*3q҈ G=J,* AqeȌ$裻ݮw` 3JdIHLX">v\|W.˔n|%!'!{>:SX/iL;y |_+e|_VqR܄>HE[Y>8jK ^fS 6&㺖b֠iӛߎ֮.$Q !pC`N8;;y>WpEȏ>l8}|moqԀG||pN;l>57 w3J4e֚Cro}q +s-2`&ۆu7[\g#1C'e5Р&E7Ld f zb+OI >!A7%Xq5`AqG'( 8/|xvPd AM\)5Rpbx#e KT?&nۜzU[OkN\{so.zdvRNCl_hmߪbݮW[; M!bZV JRC _Ql֟49ݤ[n7ne\U>u%C_jZY( +Mѯw},{|ՊoAc C3Q}~iRL)tJ~Y,Gg} GhB)_gye~]I_͖9Ka7)Ma?_,f3wכ_uue.6(BLVMIyxPBLU#YI yt)1Jʗ̽lj"lyELkuY,y XP5\Bv:>gU!PUB>jrgÐz69:֜_a7H:q 7ւJ8{#OU o0TҍoXܞ0xRj}hv'uu;22Έ|2g}_kcxckٱZz\#w3ƓBg}}yeFq2b5&X,UsjixW\A&ѳ+y1ĵFoם۳dQPA4qGn:œT1ŵ2E&V2]$x9yI|C"Yb%FE.B3?g4iN'V^:!_o|rI2xodDp5T2RExp$B(:HgVH+;yCL'D*ݓp:MoJn?H-c95g/öt$ B0r"cxwyIw&Rcx{% *CS| GqVG51kY$LU4&Q&I UK~d:bkTh1̞.BkYˣdp!-%R݈A*Uqɒ۾P$OҐdH^W.\DxquO+늟g}ONeNOA/r c<?~]d?\s<,f3jG",VP3LhJ^^r_^="}Zš,]@eUJ:w%ӀLFt^#m=O~+Suػ>{O*~3Y 9sb}ya]֍6O/R9Ϝpؘ }#/*V5r Ixb\˜5T6=׸/}wAauJfU{*hš*ddi);|\B4>_"0͘ K+ȴl|f\g Kp&_+D -4Y[e[/'a 5r finfIӓvv"چ⵮SyØJOLJI?Q'K1 l*x!v#!ޔz h~,$xXWux=p]>ٰIz̗Xscoi|h|FL?xy1b7MiG::,;+uF>qF~?֫ce׌'s,?5O- m&ʰ9gw4w]mFe{Mcb?)yk]7hZy'qyGjRݭ^OѾ4=qkw:ȎۜPn0+ӣdHMg\ؼd ?.eXKD2|0muLV{zyFXҩLD?Ö̫'l0SժFJEJL]+TVI8m^<>ەeFz0Q8d6=~r{>)=a!t]ܺE 2Bٟժ栬wcv.`v>uڇsQch8?`dЍ Ruf+:;1p^gg)mR8K2*A^rT9jR}և)$kE <7TOw-x("˲\f1vLa!.B˭;q&bwSUz]x̚T&! hU]]HnOsU{l n nk:>p,sGYߤ#-QdCB7޻Yo?i\$4]o^B&G@ }[i yEW~y]gg>eN谵^^~j}3'ٗ&[ۏ {?*Ȩ>pr:yUuTB-0 PCGe i\RMaĺCk̦TH# 1;6~{W,6ݻ&Not/G@M8je71YSP`hw#9] _1k@ CAэ5DFNK؏:ܗXMݸ+:3CAhWd#͇8f&P CB9<3kpO'$#`~ȥdӈW{pYEQ3}U9MΊhM=:Eֳ Ne.9D纻/vщ]R3foցn B*?ꦇ"y0,GuZ s0 s]@DL|c/F ci.2yIWR4dHrp /sy8Jiי++jc_& ~oO(=3aܜ y]M˼A+2W7@w!U.2ThPWGνT:nm{Y6$7,3.3"EzO69?F(jd@=;BX=6^tALpNp-X;Ҍ$ B_P}Wm/e(Rp2r-~,VV f%nA7OTDcwעjf~;Fo;<Sg[:C.]g\G͖ Í^!<^?>2}= yOO.;luEhH(_\c"ѻMhfoW͞zƄN3ڕ!6C`tvEUgEY1?ǩ 3(ìzxUok msP^J.ĿiB;"`x@e@KLy6GdWY\N It%qfpeD+밗/LgʼKy{RGfBd^i H]˓ J/STms{,pcm?'O7)prw]FIxxR!8mCYS}c!m+W}/1m-ju}A<`8w|{gEĞY;FK}~pב ӇhA2uن#qrB,灖場LfNY(0F$ ,i0Z]`d|K# xKc%zI|_yT6I7PQs Ռ"JM!7/1=Ђ &DX9N-$Pu$"afDF\ex(/ df`;ER{faBg nyo`Sln%k%Z#\w-7'gl,Uj0w3GU+3r9Ayv1{&'; ;OLӦ&"-Qw](M~$ -nkZ?EKXL2P_펛~Peu('@=6/ReG.@'PnAGؽWmciu2-Vfn"US@L%su'1[X~E0߳iGK]~e )DɁ; t$]Κ5*MvnUw^xNA N<:xX~Lp/CȀk9y[sj=wly鏳svqC'};A DGd+77O#^u8|q6]x F7-}smGX5SG$zZ)pEU}iQRVԯ 9 guzl#6)hov/pl0yM T-s=[ח`ͩU.C{ڔ Yypk Gp;Ooa+#+U'̀DhE8d*.VY]K5 N52teCPXX#YR!RHX%y+p`T W=eYLUDmC癪lr&~&r/@&ը`|~afF5h dig1fFZFjkgiP.LL[.(Y,]ɓu11Ͱ ]jUQWܔ¤S)S-,͝k7D" =Q8: RV*zLIlVV2Kх#Lpa%W-D:h>2yf-F"'T@3ֵ{Uc"v+7 N-pۢlЙ֑"T8R O5cVN2WgzmIg}UA8ҝ68k`(JvZ6VF!IwN) ni3GjD1䣚i6U2+z_jn$sT»-5ve,FS׃(ܕ FEnBo`X4vk4_Jo&;ʥ7D=&W .kyRޯbͳBY7EݮceV u~(_] L)wIu{`'7FP%ǫJP9s,j4ö,$"%i52J\[ܖuHbLH*=J?<{oo1.ۻ,y;@g0񲏃m.3'_p-+r<;"H=qh~G@w6y07< vO߯` MZ@"te\?gJD̏p:qر|d4TC`A~I AUI+= WyfJyʏ80ݘii.xaBپܡ!=3Q@3eG)H&}CMB惒pLg'y +zu,J$2ģZR& <0&2@pVOz gvI%0+T?,LBЕeZB2ӜL]ȳHF:NR\I&i2&ɵc%9Ed{dlY5Q>(6fݮM7=CR?Qθٔ|{vTASwuLHxܓUҦ>~|65X탦vLhaJer(= e#?ҾT3׶f]qmn2A*Sf噙V-+}}hSaq%D \Ba`L3b/'3R5 F  Xu yEu׉bYuB23K֕0(;7^e/,bADLN?.7]%eYp URhO!\ ?K1ed"Q^US8㼭fo"f;T\﬏3'X͙&GH7mб򨱑؃FȖwEʯ_u|zgW\WdS7 zNrM[%vF)᪄&s 9QUUhmW1aN/2|cOt1@"Ҫ9"{X;n, oVhڏP4YJ (v#iIy m[ XP\ÿ"38s-`N@ѤJ/TфJ(>u$L,&:3OoT7!&'PR|t[1ڔl7N&غ7vDh$oٱ)Z];o0QhWBlb )R)?t2 Dޅ}ia E4M2R'wнdR0Q&y [?a((U#(<15 XWNU|?L{Գ56] Sj{0a[֬B`]"]^ldT>ue.)˼ܱo4$dG^t6xQ5芄"JV:TK:oG7ۉ@0󼿋#&* e4yOr}xlB' x_qF댨f]e\܍Kn0%`7NN%ӮVq%ֺjr.i2#ֿEe?_Krf:5w W A^TDv9=w1ũje&ˋ2Bv)Od, 8ׂ1ͫ?$J(j4?MF ʝ|bEU-d8ü5*vA֓d,DA:+۴9ʺZ~9*37醢mMF8}j9CiDmioɱvA"녏8n Lm9r?yT?@uv.\Hmƻ1 8SΥOo|ʮJJxe~ý[bH]~_W\hX tv/{JVQqmU)nGl0 >}CMpĠrpE^gC6 32TTꕩ.3mlK JA1 ]3ZR7H,Qզpc"6|7`t+8{kVUr!wrG>HYUx[d@*RG=%nҕĕZU#"{]e$2X- &:D︜^1R&}qQ}&UŤꙎ5eZfY hw=`nP$E(ə9,5FXO>6skdF1pq=C͹6p Ξl/*6@s v di,S$8J ;-/ #ɭy}5\Y^ZN8qe3N{lڥML F:5J 0R 8#!Z:Pc@Su@ץ ']͞W/2d L^@ d55ɤPp Y>͸L{-- X6[jǭF6AO Dv{$fwS5]x &2ڟGI%,2 ځo[[WCMҰM.FR_Qs{k DrN R۫^fW}5u]Ӻ$30_*ayh_ Ra-| 8qGG+qvǜ Tʞ<'`T 2HE'Lյ#{sy2W^%~Av!\2:@6Cf#%L"IA)%Rk!_41snmr#!bgxKEXHhZ05m 03|탢_O>Pdg`Y v[iX72[^GP X ڣ2w[fLW Bv{⏗c13O!;HpQoHkRo76(xԪ6>$?<*gbR]w(`QV.|@[2[u1% o?o} GI5Q|$]!t^ea"QweQ qEx 3]W"#K .ObVb&v1{t70|Wfr+𡎜[4TX'=v=Z yiP{'$ן^s3\ mRڄ1WԀ.=FF1B<ܹ d/,Nz)GՀ.9CMvxu.a*@9*I nzGCľ!FvѶbkt!vB3Bijf*)'[v]rёd,i^deCR֧ۚF tIg&2- ӥ8r6W֚;] ;XJ^(/aafNs l: tXN,fޤqyk&$Zi4PZBCG(̽Km~jE\WmK%nYQ#q,3"seȽWfX9qϔi܊-Pa垬:Bf&١';Kشn\>u^uuy^_y})E@_t%umlFcx{ ".FϬ SyWeh֤ 7Hʷ21 x&D2)&J}eT+~C0К˽2Z ir+iZf/ z|9I,JS$ѩvW$ k2{FJ&:&p`;|P"z72aRܭ/L_~EAL|}[<51fhx3:n~svljo)?{v`4 lvYU1 YcoI= Mnvؒx,b;KXp&/yAO_v]40ΒC_WًgW`ՈĐ \Rzdx<2i&%aiV.1vUpǐֽ(D>9.hpc]¹IΟv|4>6k`_ոn:$uT]v'SQ.W}cfp10WKy&..:vI L4Cf,~?305Bh2.1ށsHhΩ>fO{;PHR9Z*f&cɋ+~fvJg]IlOM߻tyv#uAsQu-#9P<Ў_ ˟ԥ4ng$BlEK+4]BI]- uMےOiV lW(&WXr;hnPM>ghN{y smnR #ʤ8Y Aq Je TL%(Jrɺ*!VQ\Kvg8$'yrVL_N}"YYq#hfZNafXcЖWęqFZl'(dʩ*K)dUMD΄V\b m5"070OAlB^RDPۙ, VQΘx]!_}Eq}_E :Z1;L[ݸm)EDmaKp3N/k*,Z;o*|ي]xĩRn#8VKYe]&<.0?UdYP- &( .wg>gLkޥoẊm=?Yn]̬ %kA -_Px7$>, NjNjk /AX및feEkY=8^fݝn>wsDb:]"󧎃LNHAց׿׫HnfVyz7X^^I[~r}{ دL@Lܼ9vJу'z"-W.pѝkɉBkМ`ύ~wFK_|$aڗ6.9).n7c+tdk_C2FְZ~$fHe7f,ES)>|eGz_6W7;SV }( 7 Wq1 VOiN{7swmv~x泎7Tl@g4h51EEr#u!!'&5Eހ#CK<X  @g x`Q;}( m.%so^f Y ]֟A% Xҥ2aLX&`Vs#%KR0% ^ўә$eMC\ GkA@˺bě"-,{pmwɀJ{UHK7MJKΣ僤,ʴAښ3&D1i2ATUGҬy :>fI+{1aFZ[CL]ҞPt.7ny~+fX]!NRYIV=f:<P FqRvXD+)@,GsӒZ(>`pDvК%QdgeZ=[FC%d%$p.!nW\yE\WFDT"í|]HKi̪ey?& 2tDW;WBaiTKJg^8uzd\y^y2)$Ηuc_5f WМ`I=и܎ iVMT Q1ىj`+ Cb>I_@,g&B#Z;K y)C@]yY1T3ً2hA;lӛ!kC"X%$4fmWO)q%_uӆL ͐l M3p>/sKJak8T務|Y1[WkE\oZaǬI~;?~g[6eʴ/\f8u"bQ&Ad%6׿܆(GJ:!PW8yn;=X|nX%WWͤ:,#PcކѠA-ϜW?ݗIVWUM/R9Ire`;3&ބf>>b ;&SA֌u#1*uod owCl~#0*ZkcM|K3xl{av&DαEIjEUY B]R#`=AQSV%r p.^7[DWJ,cŪwJH;Ğ9Ben;Sa:6 of}jޤ(SNQ7ݩ'Pbrr6u x,&Y@Ua|;${e1qݓc9.ϩލK,")cXdbjMg5{d`<[HySOK]AX͆e`(TW:ɦf`@ X-o@5PE5IU4 H]h۝|lźL*3O5t7͍2h y/da!^ D'83¿h-(_}]lJ$gu ՚F_wyP2+"%-An Rd ~ u*-y9&Š2AkS֡Y]W (t>иpxYFxh< V7s(MI?$q-QXʈ*;!.wu 2 D@A JI{HFIEHP130'p<;@Y.fՠ`f`z9j7J#ƥN@wV@ "ዾXײ ]aeԘe|.gZ.ׇ {wG#a8f eZg#[u}e&(a􃖥b!>nՊJ!|8HψO_nu>h1< 5hq/߲t_?цf-;NsܴYWkHͻp˙ # %o@"EgtMDcV𮅰uen0k]QNn2!~uBD=XjiGjGEڕȒis-1v)ŞH>D"Dbߍ$_7oϊÍ-dKE_`CFq/j/봡}/2:[iImfۿ ײ"<&AR ,Ga#3 R"Bו;vڨm^I&tBBu`rL6r=23rB'r7/Cbg(xTWVk,(˝wfc3_)CcXUξ.=Q?;9Ł(4ٸ1@qδwZ oVIn[ucz׷B6bj4j22wʢcG<٫4͔s40I2f3kn%TZ,v{(!RNѼd&[L<'nuiKlnI8)ʰGFSTzJA0~29n8^{4RqWqeN!g&*XA̯LK1B؜)uFLS+⺢qFYWS}@0(-y^?0;Ц.p?Cg+gtB2Ƭ|W| v%q˸e(|:t;'iqmYDڸf^5R!8=EV鐸؂jefgɌ~ſ_@EA6T ϡ(Ne,uHqQF&@;ʸ}rSQL)uw,QUP)²>P(ʶyssadkQA:țqX ~P|蛕`%^\˔"Z_ab|}1.7fUƭ̍ts|!fHj-M[!0 d4r.ʧN7-醍sv=767AY0ny>xw]3 \iчPJ:QY Ɔʹ ӏ9"縟k+É0M'Fe4qU d2yV0Z.hӛK(a3[V09o|ߥ!~9eJʷvPu Cl7 .}ޘheBK*` t~6%̤W{D~V4|m/ˌH*њHL 6[bfNu3k^ Bx-!zĝ5[m]D|49UT=$+P yൾ Z ^H+wEnE+?D^soQXh~v4YLwoadn̎tM.&2UQr`LIv<jNzGt`] L窱q*R_ݧQ!vOH])QoȃF%1jlSzHrMS6ðH+@*ޡ٢B?j?r D`?3A#؋]dqrs34o9RHRFNi<#jn}f3%8 7 ^8*]27]{R%\3u%5{3}yʋua恋J`mfxb5Gn?뺮\u UUS"}W|eS f8yBFWe,.i5A47{eGS)n ",2U|`vĝ*`Q=W^iWF"\2dJ׻:3Ѯ+VYNM^u݇ 1b*$_=8QcLjXBQ.(,A.*`%|amjR5n!wY֦4,:^fDYYC{7|G2` 5c˃(Sa.AYPAI*QeTifɻAsJ?R)<ΒAtqCozCCe` ?#u^Wo R:G C؆| Ŕm|2egO_I<2WA 3Rpo&ZM99EjmNe͕r^ÞR=5֐JZ)ؚj 4F{Eܽ{5 (iϥ{c͌a{,[H~(*b֡ MxOP0n߉Q` (O;e+ ftuєYwKn33" ֖L&L݀a {ӎozUް*'_~kpzGqH%1%͜ s>=. 647olE$lF\9(7vdgrg9QsSEǙ4)s.͖Azl*=UʞW)D<ͼy]6>ZgVeFMcwr~4xh ޫkX4g0ZZJ1Xm:\1p>E NO0}&ك:3yxt7 RZB4C=}}hoa T4;̸wƙ#?A@Q3f ˀ ?Z3L]ɳ֑R5/*څq)R8㑹 LV!kvJ)@/e4>'"lL3_H{*T%M?du_J U\͗7 [9V2)Nra X.@Y hOCsmX[ųό#WPq͎2}7}*l9t9v+7UZjxS$mT;0~T>ngPHT 9ՍGLT ŒH, K:0 |fg"=j;\["Jq4 fĈXkgϓV}r3.HgPTzs IΞK3YǷPI&-V1<M?Տ퀡`|4')s2nE,ЃF%# JA,F6&9 p EJ2/10}P!=G8h-ZK|L|~0+ zk.;'H|m,UdVC21qsv${q@$1& Jx^#m6@a}Yp??ɒ-8='FԄčז6 נԂ͖wz5-z'_. W})O*\'^>?6m;9칳dϣ}wO0Vcpb@Xo uPG(Yk/QTBbNܱ7J6#IU* #{m05aj~  ZJL2=wz,x Bp!7vT2<ʆCϑQEH& d/&G8F)n@1lE 2D+sēl\DQTx=rNטd^1z'C2C2 ט/k=% aO.Ho@ JFPv*ʐdùsַC/w C%YRL9Ƃ\ (pGۘ 5B9m wS1ts;r@hsjTxfS|?n DṀkS,rHiȣYvai= xo⑋pJBX[.G߱?i̦w4b2w*SJZtr"]^5CݗF'D?A4 8j#I144kp^M+:1]o̐b'p ǰ =$էm] 1o-}x4bo6=nU6P?*Z|<[+"|Ϭ%]O?*ܤ@s$Gahx "76nl\i %@.䖭N-? k/u͢͝X3`|2=$ZiMn"7#31qGiZT ʠSO*1S,+k!B`ŕwHJwb].lE|oi9%w,qƵr9rб/; 94#ъni6zk?9#Ľw8oN 5Οҟ1Z o8w]/mUٗ%1H$,IE3! zA0`;\;A81܀-@K+Fn\I2\w4 /v-Ӆ EQ/w*0Lf> 4Lzy3Z&g^Ŝff&ZJuJM! ]Gď@kK"-mnBh%gC Rf-,;{<%P66RUֲLd Sjͣ 3.]@-g6 C uSv{\_< UM*s Vr@ٯ!g=[SHd6\O2czDֵ0Nt1:S9+LtG܏wDo?69[f_UzCdR'MYphSU.P,Lm y ,b;^oi旉]8Xx{`0M Ff;!qj ɂ## *V \½]34iu]G` \%L7࿡ !]^-Ó'#N&UaBG)?9H34R/jBW/MAR_.@?I@7TN&1 г Yc9q]SdύS-9p0mMH`HeYz⯏u F{YsȕCpuv|$jsi)X()ਡz^߽Sfܒ_/0 "'!&lކsDev6-Ke"-7X$sk ئ3`9RYk Gl v؄<ͬؤ|F|d)e|]KTu֠E1\`c&ZCz @ST32NX\DliLpHH(4(ϮֳG^ E]3Wu- RKc#iAˌ#YÍQ9YŸ=p7|u{$E՟CBDgpzŭvΘSX,,\o07_$z=I#1(?T \0}2%S.Fkc>?jvguqmW<[lg_n\Sh~ j{B plU6  1ln]lTlm5 vea\ajqu'I*{@ |{,b<8ţRB.7Cr#[.¥r.wEwE{´[cB(0(~S˱|{I6 r^>ל nr9Up};э*{DZp!~^&2Fwqй4^fb%P6MgMP`#PVaaR9FZUj,*x֋@Q}X{IPX :l, >n'ؽp ͫ#|4$*ɍN?8LP'9I:mnj.$,¿Tv#I;_D}]/S@^!2| |Zp1haB*G|̿?^Yuf35~JhwQ+LsҋM8?8?| iٵϲ3 f /˓h2Rmz>vr<@Y!4hˏE'Xf࠭oA6& FKrzknhA~`( WĹn;Z9Xyڏ=W퀲~9g=2|r'$g{=z*Hr, lKoJCL^r*8٤I0(G⌓ՊQDiT /FE1ā(RYbj;v]Lɲ9*WtZ2bm}=#8YnmPKEtF[pspܲN4y['EV92Iwr0a#IHSZf"gXfmlR 1) l< ǪJaYʔDbAQppO3-SIL;wö'r_aԬǷ)0-\uHMBJr۲$b!Ŋd7UhAM\sIe5ѿ5-)w@z_x}@˾oE)Uu2SI&P> SW؅D 3:ɑ֊myE5xוJo=Lx s̻=M&>8fK(& QX{ +]<P`׍!m2&\A$WK[+wWމ~])tWggF h_6 ZASNSYz gC}]\kLq4' &nw{{ImEBbeׂSZ2< lHW9;Xmȡ߃n #=iN \HةG{<ƃ4 ł*Bl  35l}mtߒs=_!JR`z5Hׯ<̘Eb8ү/CڤunVt #2.ѹJ7v7wBBƓ6w\sQ|Z _u%IUa$B1Rl61@qRBe]2Xe%1/xSk|^^*(4`xBB#mUe\sh=X9l|.]%Ł\Hk>DuVEP @: |AuF3p.ꏉҬmϏ;ojYoO?Xv5(Ch&["H9%}HK#: |y) i8w).W?B#T\{-Dj갘:sݪ]+Hwr L^ C Cvfu z M^C_sA'*t[-Ԑɹ7+-32>Bhd ܢvPX3.#G`QDd"'䛟ڌDV- fw.|%:V+g QCBs]W=({ $Ҽ",l{PP Vy^R RѼ,!ҁ$}lCJ==̣sCuQO-/K%3i&bFUhn 3+hv{ CQ>/EE.jdQ/9=K<8r(q =AC&Qoa'sdQawwmǒo2"/$O1T`K߾|Wg9_C_+nl-hc8F,i |nlvFl-ՒM pbʑ&$i/͍{} ˰w#ta}a[X[*WI!5Ebw2x8hkШb5a" Df&Ie˚GV]x%P2w%jWGG~<0 O7?bk{yW. `fU:QÊ};42ģ%qIΐ[Q{eHy #~/;]dP.^A.CNfA3n6R(ݻzk3J4K@d2 Kx 6] L-6$}pւe}}hl@EGLEj cMK$wm6|Snf3^ϝ;^@xUF =qɝPȕ&}(#$ #T2]MLA;Z&5 'f)HR{tTܲ4D"ǽ>U`[tVr<oq Cw[' uᅭ/:2'PvWpߖK9G9^C!u֫\ٗ;'p{L>-ab/(xFNBH&=I-a&6kx%ک&< n . -d-K= y%,/QuϪ[OSSW=$!$ƨ&SYG#,+idopyU9fRS]GbnmɄC!Vً/p'ĹچfW?4z}aoP{=% y&pѽJEjlBfLY+|uFZ(7Hm᯵ޤoZso ʘ0hc>ZbN5R r#l%?13J*'pϐ(2N;0 )2`-s+Rj4"=/ER[W(|Gd;ޠtƥÁt>iGV( ~x|"23[ZuE'7̹#j\6@ b `m4#A Eac^ ?A2|N"z]?.ca7ͶFɬ<H䬙3*Vk2L+9]ߋi+,sLJf`zw4r(@)*CxzF?d8`ǂY$M{K38+!~8 ^0*'W9bx l¶FGOI[BVsyR};]=ت[`sA>RV4rѥ͚wţNjy03CM)/5!@r\7pLG(ۣ&Dn61LTǍefb[igF\pN͢gѨ[~s~a.~|Nr6K*pD9%P#hhk  jjY @?`ƈMg-Z<4iԝ+_FW\B- o'nSrE] %XgܜbnW4\Z[ĵ=܌˴~qrxJ=B#S_O X1d3!RH A͢#6#@qf 1es΃s9PFѳ!MRqY"hL[gkOg⾇m xH=*- ;Lu:%yݫvDEE˟_0EV6Ar=h#p ]o@쁍-&!!ÈrE,UbSԴ<>!.4*iRh 0hGEP`L(-*"ߠŠ2XgaZ/ vRV)I.CJУ{Uk+a~^K}Sc"iKvTI& AHL %w,,˺,뢦#Zo !J O4Eg bV\ Y$b<) rEz '3.to>NסQ݃dal$i[ @GtݹVIm? =jK\ U8j 1Yshҋ/!8]GNj0pfuy"]ow4]AO_@t5Y dRX#qZa^F7q ֬ϯWIf JDfEUSlh7/⍇qò&[v=A6f@- #h@]1Nڀ& 0[c[چIwq*'B4k":w2à gƥ@{0k|X$"X^йVP`[{?B:!<е*0wsեB~smQ[Db&dz^2>#ӯh^T(T,1 5>`p,LlUǢ Ԝ:vKI_4(kkF u'ݘgΤEo0e6[q5ZI+tWQ%qb{4baS5(8cz ;zCA'axN?rJl)G' ICG2ϳ 3rz꘡n<0S._`1y=VKXplD2T9ҴU%#$03"&sz0iy|vw75E [oqe;SuSƊ!!cٻ /X:0H& Lpi a61mNΉ@󩊞(mt8h2}A@!Aɡz/;)tũh)G.޿ Ef|m". pL돱| =_|Ǵ,}Ƹ s]7' Z'?#1_,x f >,? oMʷs%,cG(զWA}pȧP]5:9WٔP͏C :d"A%|3ǻU8s'} !K/tNr$ yU U~;~= d0%Dcw]t,]5x%C_Nܮ_@7a;RFgZ3IZLb(H! u28FJlB(8)B\ۈIҷgչqg6o1He9%(~ 0m!tkI.Q]yUcLXi9-O U||PJį ;dUh0.CNE'kMƭ#(ώĎuuMxE%13_VxA:;9O,lm @ T-"ݣģ28=QgS<)H4'5-I޾ko=f'sH F~`(œ6hP#Aga n/5F/E[+3hl,4;beÙٛ?'U?ȺEGÇz'VnbeϏ7ݢwET 8%0f8vv|н躴j6ʹ5 rL {?zj#ǟE}4b@(oʶAwa;oYE'Pc& ,ӕSBJi@ ҝrs457(|<#)`sau)#loBUogJz ۄY 1@3gqJ/Dǘm@LV'mUU"lA@>x9F9~;z ?z[$@ 4 X[j7TӽkNJ.ı3ըys=a]kRp̪>Fn/Z@b8~Ű֮'bEko1~QbDd̎Mߺ4njv?qla}}Q R_HKoci d[c?fKo|fXgmځw~/*gO:pG sg5hc7:;o(0)r9x*z4~Sߏ@r^OWN*G{Ze¥a;  JZnxx1AӁ=?cDi 5"/ 0mƎ켤<:kEeqgɷ>~yF/lV6is_6^bL8޻8ӷ<`M'\03}|^چr3aM[$&J.fDVy ňp1bPE{XeTW5_Q {99X(FMSUA895YijLkBk. -s} @aqFVRsdl 0JEߩRaL,l:dz'Py 6 y"h&5/)q]"c0IHa@Ta;7ƺ3c&ql 0a!8hе wfi IJҦzlT8cpҖ{CW-'vxm'z[I"\GQn. 胧N$  YcΞ\7"1GrE3'Q(4oUpr7ak$<~pd紥emu ј ʖf |`aY_I@l І0`a &\V&6*9~c6@7L˵ac0 x}s _HO`ɸp94[qV 6*iX4?WT 'N1Qf5nx]IvѽO\)G@B$c ĦBAՑZϜVj0WL~}+ O2*`2%AMV*JЋΞUZ irFuW.D@qE7S'a&ROe.K`"v$? NUbpƭgHO훝$< ' ]Ióߩ&nMD?$L d32o1^ڬ,ZQw5[ayJFIOaa@ VU}704Q;Qn(rOȰ 60 ,M~}y0̡1KoA11,q|H~Ͷ4h)+&wP0Hv\^¦|XAM$i{k=NiBX ;5߿vAwu5p)' ˗ׁF.&zpٿ?9>nXR~_LqU2EHk-%1?>g2Rx2a_sg:' ~Tњ>HzdMi)HڸH P15ln& O4@C0r|J\\s' I )M\9T++){ ° |=>p|"+9Ɍ$gϐ,6\DJ*yR{951_AlĜɐ3MK0>e71"mcDŽ)^Jr =?u-:3kL 5d9n1GsP!h6T vW> WC8'ǎB+xHpggt&}PƜt:xtE+Ki+Ӳ<k<;»%Gކd't `הI~GWqġU=g;yӊО~4zֺB+3bwы/@֎t%{~+bh[e=BlApܥJu;쨤9)3J^v[=cŜ+BN+ՔT B*.2)VE̪_d|&ЕZ ,7@e_S:YƑ@T,oa$k!,+NAe) ՌYطU&(%d>1oL E@!.l!m<zveMTUXLͬOQ~FrdҰx"3Uƶ _]ǣi%}ݭp~}~*Iϛӯ@ޏ#펀/+cΉͬ|J-pC2H(]͔77?blf>((mVZ43B Lfq"-lB؊_G׸}̦|WiQzQXϠ;PIy %j1{Yq9D}Ѿ5+p Đoi˷3)ft(!>6}SSA2fz(f@q'Ub{Hh{ffrY8 `"r},5k9,=TE]{, tcyYaJ.BngYGVM}XNmu (*ZWUo\׃{&z=Gpy^aqk÷|; I3[L9~ CiЋUxk_>!sv[JC~"/5Rq:N7fHj@(kFjq˄wdm>mQy2*^6D](]}qDL) Px zn@6S&ڠܬJTsAy:dR TJbLJ[a>a `e誡KI2-{ehg:Qz(LL>=D y] ǍqQ=j#bzb&Gy6_ W@=*`5G8Dmf1`igЈjJoH4umä;w!Nw2* x˱7*~|R`Cnȿ&VphK=ap 9XB!qӫ?Y]CY%ۀJs3Hʨ S1>knh>chH:R]sÔV3PR5p4<᜘F63a$psc؜ls/Z<2L(HeNuXrջj7UkgPvbd],{uQ|_f *L"< {1YP.mpx+z~ _2Y6IQ] \/uM[@yՍ*d螃QFeq\߂`ޒG} %y5U3`Ay~ .(~iN#\gFQ^D_i$pW ^eb3.LoҐOSkrK8Jқ|6Qh^m2yxb63AF͛;+"8LBZc Y4Ʒ^ 4'؉YiR.m(iq1pm /^0#F q i{/p}OLw|c?e+%Q*b#aN0 KNL0sG?3t7y->{y3A80*Bd%~4yԛ‡;d\ݏ-//õq<|G |0`tc$ןp|S_VZ-{AyOzfa@8ʏi60BIyc>c 5  L!vl>tNLo&ZRfфJ^G%5B5feEDkOa(xP>_4"WߐgeS{ .n&h3O kAJXpa=\G,~:Ix(F,)C͸7\88n\SbfYy]NuZ[ï&J~ ̑$}]*B7pxV*B?ʉW>s>}q>_ ?^}ta-a_Ye-|rf\xh)h@ȳA6N|1`R.Mc Jf 7:5kS(Չd?V1a}3 j𮮀NP)]&tޢ89WO%nΒ;1.wm7kC1K3e{#-_M7x=GۜwJuE>%'Z&/ZТ6@ʀwPŝV<4N~8r-+z-B^T+)Gi)W."BW/ 0sA&0ƺ0_ƬT[{2%˛ɾWvZٖX9Nr^7X-夹BI_E.DeιZ*P%/Vw+A..=˿^>N|r,l-+E:YQݑNۡg?OJ+8 'HJ]5qcUQAŴ,̹X:2.ʹK9h}MH+w*4jLCU_f=Dx #i2K5$d\1׌rq9˲3HS%)Dm,>^!G`t4XU,%Hj&1C)۹iԶ5Ɨ\57}(hީ|} 1N0h;y!!x6C;:25T2;J-s_ž9KLc4J! Z0TbAI8YXeZ ֯4'R3panIf۵Gc|J_SJ-/1b4HbYU hXMqdX$a-,PiyjU9AuH'Y!cx*E!m%-hCa;bq)Q.'H7?b\n >PKa9G/o]5[p 8!8_OVXux<56Ɣzgm RǔHún5P?}9(m0i)=U39fudFaf3TҚcj&mxtg5:nmno #c~,!8}'Pn*V=ÿYEk4t5=ߐ?f]> k;罪"T87lhRAҍ+.EY;Fvis~؀B8A.wgR~5=I ` IDATh$dc猿Pr/Ph6^_/9{9ƐSZʎhMkۘj!+Us49^.@wИ*` zXYxVcĆOq]9~NPaxt[_ lG@qbk3V<'χ4]J(:sdWΪAIPe1tAZҟzR`rw[^]x% >J 7::YؐTc{KM_%,JA5ps "`Rǐ6S'xUBfy'[.Qg Y?+g9r8pX}5ޜo p̝pB8񪒍k)o|'ۻSwuR <niTF u)i6@`j.DR~i ?R>"*+c3RdH)_fb92]8 <+U13/c0:JWoR.JMBJ2Ztg7T4Mq*t #۝˝M99 %3-~bz pafc<C6`ԑnIAsBg [<>Zg){脵ڽb1Ph|=/Ex%-ԉF9*4&ydf>3[$p̱| 8F{ =jSST:jVfsQdt dި쩮ou*o)vwSuڙ}ūcf!:Y'zns;zkb9G81_X `w,r.|H$sFb*r]>^b)9;uld#KdIlKfm5=rM6nڎw1}v̀1A]J8q(Jco4?ֱV/ײ*JV~}eе sؗy^͌8 }a5 {&=aܵeYԝC\ }>mj1Uvۚt$T* e bT}T!TgD{`/7$@lԋPJ8tdNflNo|+̀οW v TH$?l*xP%t-%4FB hq5C0оfnvW*ı`2ڎ$=?O0βе"+6bFd(ԑ%hy"h qx$^s%VbLRB@TY< )"0hN4q/uuԥl{G?BĦc:AtqDFn" sNl_% Z|&$tdOf#;c,>cpWG|^>ʆc1c` ̩99lb2Iwm0Bf2Ymɻdޖ^;OHTYT<|@z?@^{eҏ9EP- 0?!lI ˉ5UA戻fq/9h nR00DbE}Sq|xy p/f`}0!^r9%"2^}+&[tO{U3K::,RT=lDx%u}|穜) &3|8TFD׌*X\ \x8C[iF3srӖq7!\^UM4 MD] Ŝ Űt-ntd~, !^&].anB[W^yxלOy/ .Kw4ŘhΗE{Sp䎲_wGr#Rk*6kWt)\dpO4d8,.Fl9}ۄd`ɨvؒXWReQ Q^cdxXd5>e_jNVcMCҋTg8AHj/P SQ_F^.LJ<\h俅`G-CT߻Y|@-v]edh E @psFl1-$7c4Da 11(qbT8|z 7iqC7ʳ I^g +_D35ѷX搧oigIb~32Oalz۫ĺp(z: rV m=я3m(c0=@YƝuPTK0rG5wt9xwɑݮ5#B^qv?g%NΞ+-8Rz+O+Oo(\mu9 IxEZTDb* Ek=/V} 3#9M|v8_!6.ie dpP=/ Fj+ t!Wd8!V^6խm@[zgu/!"q䥫E8tc~=%.i߾<ۈs`%2 `ILQYT(ݙz,|z/]nnH@!iɱ2)Pʧ.Dy6N3& Gs`΃7rHehEҚLv +0YY>͓,ht=u'MK@?3G0+m-^x*U2I4z_D)K+wܘJI[u:mЍ!s"ea&^ĸ%:O"rS;j$*k\I}Leܭ0SdSir4TiJ{#3IՍӷ!$r4 Ccp0 EkzP2!tPZ|-ijXbvX=LvRv uyPh| X_)(܄#EO!Nh9y}}ɋ4i]UN`B6ǞV0X9GQɱ[tDJr >fzM=/&nc@ԜfY_'=?& ǛML\e5p3hYp7@F_{~ ߙ͠ʛ4ŵ %L Q ~u: )%! ^$=hk3 ${P&zWY1+qw:j[dqζak(5auc럒Ϥx%2r I$P>"I;|ޯ.tmr>M_ ꣰ã=HO?vvRuɘ((Ƹ"JgTLx=d=#I#iaV6H k+g灕4Y,|u t!]tEޙ%m39'Ү9؃ =zp ~~Qر@•55u;Pn4k>1_f&\o!9LKsp?6k`rV8|dx&ԕQ+ A迵eNirxom6abio h6} ljbaVy.te(<^poYW?拯jY 2;5U/ 8sppo≆RكP NبVCSb$q&z/O@F&CwÐ*D& %yVSC[yP< RW$EbjNއgBՋq ]y=>1::ނD{i+2 pT/e58Gb+}fz.cfxq&s9]ʙ̣#Q:++DT:]BRFX.B9friXH{M^69`b.SɜPkS &?W 2Ϟ_,%kx`3ܜ΍a `':Rdz}ذsOOܫ"tTLj}2ߴ~&} ewPHȭL)P<#L&)Ԏd+O͘Bܭ)"47ɩ2;dJ`yfVtf0,v?`͍za2\uVX i6XD0#G Bc̑ ̬՚.1:x6 ؐR?/qI;bYS}Iu|8*zU Vww1 -qLjo'sLrH)qS'7 />߂kYd A3*԰4Uc|gyPw΄T~clpK~^}pb+(g{D;! T㗱>V~`); 0&KDUg*w.\PyX}ef+2F86ϵ-}} \6SPm+SGӘJV ND1P(ƖjoǮ/piz?_0|os[4`ʔQC?닯/>x&xA" a"7mpNi5 61k+&#nxNgh=%3)'7"SI" *l$ԫ4ahJ/,f`Rvyt2Gt\Ĥ-^k(]qyy74?ܜn uteAf{5.RO7;@U!ZH YZyaЪdYrrcNS>FmIfpKM /wcfrLaUJ/П$,VapMmO:P,а9ʺk!ο=Xi02YC#3'{5QZa{6}oc6 n` ka8v֜ɶ\F5 t&I,S/eL16WM!%{֕PYFA޳&K߯S8 O))Vt {W[4r$NHaOL7 ¤a!ILGKXq `t 24E6ת"[ CvviTlJm+c%ACi\XS>k&U cPke֍ŕY0.&6H|=<6:Bڅ& [Rؤ/iIorҊZJxx?k^/c˞/{{qd*NΚT,O 5__HxE+5w:jJt>0MW~lކ]Kh0:V|t!\>'>2 ~v~~[''wnDZ4`,5,% |FGe;b>,|f aShCEEzTi9:j l#%k_r/Z@mF˱w(5Nb:h67M*0%$M 3{k>/{}r)HJ96ef1HA{vnw5UuKQ i[쬈mNxpqt?"Bzd+_xY Zfpt^oZ̋SRs0}t94 .J_GbirNE-a\WGAFup&Il{?+Nbd(8"_-1W$-JRtlċ>ˁG"zP9bebP̺b9몏mZ9ٚ?Uꔴ|vv2|T9)uJRj;͇ӈY -#ikXuoXTdc.24Pb~(S fUxU 1Ji wYv  LR8??b DꓲRs7v:@٠ՊRIMGX<gDQ>ȳ%W'S1^plR(xj[C2Re&k <|i0_x@)fj4FN#,5I`Ros%,Nt8I؁"Yn`Ѳ)b֣ٿXyW ;j|ͱv͒#${”0czkLƴ5cfFHz{j17<8~$k) @7q(dGwi_{LI^~}Gϵ6Ջ-_?щ꯫RfJPlDy%U,0bkSz~P'yإ1.h8 V.9;=: Ϗa*d3(n縍6&2>^M.rѩ@5_(۸& JALAMfϸHz&G-%.O\1cw?@!z*-apz1u__115C۾}~RtD8ȝ[n8olƷD`*O|cVjZx 3IfS/]#DW Cãpٜ>z>ŻCӳcƒlzh>l??~Xcy1W8K#l}Lo9SVEq*@NWuu]Qmɝ$7E)*Әkj8)Or;m-]3-ⴢǼ^PwuDU6u+ -_m%T;|7d,ssB]@>?JZb VyasPK9kgtˌWW.O LL`"(䮉A8ۥhemf3P =܁R+c!Ui}IJ覶sYLhzmmկGȚMK6i߽~҂Vo Ӝ4?DcߜQS4g9a%W̄2BclE@Ƃj-_a~" ^UC^qhG:iNwJspu7DS/ڒÚr߰$ m 6)ݘ8~N>.=2 `fLz(s53u& L1QAnQ']UI?l2*%դ9r#AIs!NL(ϟk~9#NK|ɏ{`@yi}4$Lr4ͻ'r>-X<[N^Z"Q ;3 ,`Ha:JF,D(n-lhTZg}P ̎,>Pڌ7 ,CHR_4~?n\YІ6?c1c6>c|ט3'l~NIaY_f_/t G'IC 3 XDHz]E;S,y`zσϚ/j:Pq7?xl2N^x6p>Xƪm[39?p?qV~/B}޿=+:uJ7^7Yv1{sK+9_~?vϟ&2VeV4AKחʆ2\)m#ѝ9Շk}jǰpj?H-{^9|57ꥩiS.86ih!F52hQp&` 77d̘c>7T}ByI<c*!MQQY]Z>z~.w+IIB83m|=xko`/@oC=o8^ )$ӊ 45k2P`r_4Gvx 8O&z6P&~'kWpyJ(1 rvyU&2|#qQls[CI͜? I r"=(%Y  0\ǃ0tĐxݭug?]3ivvAYud.BS>8C2%?l!5mO5燉Agb;5KYAAjX IJ -C0*nUAkYlLwshSkߢTUZȤ-0tm҆3e T.`,n IٯRܻ-NXyD_|E|N@.t9G26ft%}%%}Cswk|/Iߩr@r҈(?BQf8Қ?s ҟ'|#6'B!İcHPK#s߾1Gr3k'L'/#Y! ~ [!D.E7eaÉL2PdP7re}t NDXtї<$`G`8?ut$h;K df豬@+9䉳  8 tm@KZ(4BEƜY_pʧ$%j#|5{؉r$C"yDfӐ/v~(/E ļ}:j;'Cդ fk΢)RrY;#&!NOB^MJl)g9٣2 *Dg@(_zqjk$ǕAUf}W}ؕ*#܍=ΖdgGƇ * Ro.\.H{`,Mfb☙RgU崎[F)4 ]WQ( B kA% HdYE=Z0~%,)u |'KלOB$bZgk>hs~<ٺ5fOPP7_ }&( 3Z{hh-yBFyYNTbN`Kh*yc.EkA0`[l Pn5kr*f-Y(^ Ǻ1,&t1֬썽1N7 /nuƺܻ`ko?a p*:/~`;;;n 2ftܿcE"_ʋk+]򾩔!71F9|\cN7뭝5>I/@؈ФX]^x>2Df+vb; ]39 lO| ?v."Lƍw^^@BvMasE4qG^P@{KDXiֺ<čMKfLH8ִƌ')5#D^>䖱-Z fǿ8y>8ܚ>>x<:#idjd-Uf pXCJ޽vsArpX\ߞ4koö"] Jw"Y}Q0..1\9ucia\B,lY4c֌s**۔,$kKKHLYSoA~ow8Uwٟ *EKYPO%*ۉ ./f+E kG4Sz^y|-WdGן9 hy܄&5$"sNLNmh9̔.N#0-$ +)٪xIfUT3"c G 0yx eQT WX@oyN4.|)kfeQ$Rwcզ ܬMW:|z'7nW\bc~43y>ƷYg9ȃ `ALaoy.^4zNݛg{o<]A_yk2Ֆ'D_Y:] )t0:~:UrSw~)W@0)41"GME'Iܧ|䐮L خ */o|4d} ЊIE^EN)$ U18mxR_3?>Oi q&'_?5@k Γ[g0(3TLO4Sj-w[^kaJ1Y07w[ s߈5=Y;.[gzQ-+_t ?q|ESnWgӆ!/wI0bkM0Z5mCAMjA~[kF{BC—V\fFӷlLc,I߀[!h$ L\˻õ\&F'֡+ ׼7] k+7FŐ$ =g C3 i4IGFf52.6 ,8rVw1O+`l} 5Ӈ܉!<[lW?5 h<qQ ~FkZu l}ҒѕWƔõr W_!5j< K@vGs6ys=K]ha)XVKr.Sld&s!W;4wF_] [efO2Oq W· S~23e]uŻ/0t˭]qF|`A BNkIlo=U=. PLܤ݌QPńE*Ngi~T?>~,홉Kh4T餩j,MoJt ڐZ$ 8Ny-X^o}TݧGRHbEo F&N`fSVM $7Iq%4۽@ ytK{Fk[lzlGU)X#9q|Z瘯9^3,th}}L4W>i\yc 5v9a`EDEksPV IDڈ/Dœh%J^MxprlPS&OQK\P0t*V~gg[;"*s(* L#z[ ]{WҒEÕlŬxu|no\3 VBq{bVhkz%%HW*a@/V;qfl1L<Ӓ޿7e ^]"X4sT$I@0]sļ4/8C) DW)O;)B~I a"ffh1i%_&r尴z1Uݨ%1.*oDðXF<(kƻ_@<~cV;rAJ4e`G+.V땊z<ʌc!|&IWa4fqXͲ*n>i~MK% yxjC)yUG%)T77N/K|u\hmbُ~>qx=缆̢*Z7X?m7[50t!i"M0d4 %y% ^[=Ij˯G&_|D62TWY\ ?D?-Fl '8CEQ3oR bRoξswj%F|PKW⟁tX56B4__i-9_O'̼`zkTC[UGo>Jn_JExJԯ^1 T^_->jV BuQC~I/e905z+c l zT)8yް6߳Y OLZnU&*I5ĮH@ R_tCxʯ&KR $ -W3E_MDŽp&#-AZY -s6UɎVTܒz'^]pQfXpv D/m4- `%VⲘh ˎ$:9RmwQu5QA/2'f3;D!pwܬ ަoiXp3I ޭhzGG;N33|*QVD{k nCX}d:P@ZUV&OS::'|הGgQJU$&Sc-bEU怀CH)K\ewv%J> @ZD<rrS!U2-d6-]l' ޥfkm5,̓E.QE=7-UIvwVN;HjM]!oJY^O^q2x+a/a;λy߉bWv>-N)q2~Pp bX@uhE8!gYK`fƜ̼a)Pf8Q6L?LU^$ѢtrάZ$SPhxH"3qow{9TxA/EȘmi4SW㉺jUY]mm1hJ f֏g-Ȃk|ُG\lZlv^Okljk6Rd[C P@뺵l&|-B\`9U\Ն1:9)U8F=%t&s-*\Y[\w=v;r~t#:hG_ b pjH/QDղ\N x ,m[qb&o9my?I",o(t8ǂրHx]6gc-_oAlT7~ԆU5+ZHsl\}ˡf5n/m>>w SLmO_v%[Ni%Tsnů;k8dC/b6l!|›FFomJ5촳XYNK+)iȻhjZ?>?n1:RXgΞZy#'.zOq7Yy86;:=5 肵7 & p{kyɯ1PhQOYeh^FH_l2NUV]K]K l5rN טbTDAyND ;""4&:iKƄ[z R]g.nYYf{O嶀nT>MUX_KU*}_ po𽾭 j_ܿT{Oxwd{PM?d.3v/5dcC&M#Ol}Fi`O erPe< F67"_>iL%s&w rnSFσV IPD^W٥놇Q/J(<ϥ0}v` L/>Q@gq8V[*wauU 675~&{K Ov㌁Ms<ӽQf!߭lgoSOR: t7bi[ӐZ+Cނ2R`U'U~w(~]ǓQʏzRb*O\[侣V vJDʺ%ٟ'gQq<<)Uy+ %?]:M%^Е3Tj,LYN;ֻSMW )g;`%J,t*0}FTq2/Գ;/h`$\[:㽘yVz<^<`W"m+{99'p~)c\睏&{nOthRQY1- UZƚ+Bqߚ9nA Ә 衹v3s>w>a;rwѯlgj^M@]_X8=Ը~Ql k;d?> uYk ^ҍ>Ceh ϯqaǿaybZ5–Jr3p|~őjS(Jf̜ԧ-5!̩14ݯ9rs"OUI3&܍"PCtr,IAp3uwLifDC5{E.͉8;ekM(e!RjLBQNI @tW(ae~êoZWhWA$m7y{u'z[(y8q׏3IGSxP9sQ?AL\gRs7 4Mo7Mk&4W$FPP~$e(U^u!>[{xo3'_flxBJb 97OУ}ػM45'lN3S ZH).@$=H7MP@af֐M,,Jgˌcw}_Ű=+/RTdik9/Y{Hf|!).~I4! )sF@ܓdbL*Afp*0-^tD'_ڋD帝s/UpۈsSfO!BTmG0U7)b8KHh5$JkO/M k@/*tEu:e4 dC Mcג"|oLVQ@V׊&_HxcT(„4ϧ  ΜڂNvt*%MHb#A3j[n{1WʸvaM9=mtSݮw@[ D"P > K^ XvcB]> S{nKub6b^F)5aXiH]0 h86^48ۇĕb?۠pz\L᥸IbNؘ1ǽ/KWP'|g)_#wp}КƜ՞=ZMu_Oky_я=v>Î#T2fK1~[-h{m ij9q]w!ٚ5ˑ|*s sj ӯ9/O7u }K⽖1~ޥR༩+3fێ&q%$yvE*.x\h~zv(SQ[to9g"5MU8m7/5G؁<װ'A6=^(7k{ MOn>,з{"ܜ$9&Zp ɄQ&A^.33x/E9@FY(ϙ:3[1as -zWϳD.-bQ*p} AZhZIJkC|Q Bza7ZW{Jr|X>ŤÚIskk\ZcN736-|Zç]t&]aT5oEhÕVa9ט2xNDŽL4 ?cG|/3k-BmY/n`!czXs3߹Za9ύP\\Êx WH01_M0Nm(й͖7Bʘ"ܱ%V ee}[3l\MZS g5Hw9ww6 ?ҏc\JKER ? ~V(]\6g15h# &@$FkN6kE7=0%Nk] Z/id0 E/M m҇Qhr'͠tJJԚ^5U0eVBVCSfdUg8g eMrflzUepЈY?w7b߷8 ɪm8 zk1I>z]sF>q21Zk_? % &% 7vfdR&@QP\mܭnɋ6`QƌGU⤗~1yweZ~*;^J~Pn?cmQ})iq1Y(sԚ&0!0'}H#H5?:aTŪzKt n<ȉ 6)N7 J{a8#|~I>>MkVWr(%Y®"O8wloEnK5n| 'TVGM߳{Whŏjm(jyގ>:;[]3Z">D 4C-sM)m76UO44L%l1@YjV=-"F> 4$^1BLdۢhڈ:sh|n\尼NMW/$%:?XA^.RάQwGxs_LoAb{ r>e0]u"7  {"PzYsp;HPͬ9ì8?[)u[<z|pS9.39^/tџ&thw~s 8ɞ\pU91L3*,PO$?vՆP̂ ulhz:񂾩M<> t8.򚑖PCYHUCEKxŊH(  r?jy%%@DKu·iu¨hz:Sm"UU :.%=Ϸ t‹]SAf1t@N-=Su${[[=+Я)7| D "M+w~h@武j\A)r~c~ 75y7yIUUJe*@ & w-[N I|tSb޵Rz_!3W gWYU:ZB(. օ1s7Dd!- *xSFib/Mbc NL 7 1}НšbȚ :`4,p52Y`tNژތU9& ͙L1LL*n~{Hl>.)֛uYkzMÅGkOkלy]$tM9ex;)ax խ ]Dfrm)3|+ʳ6n X3Xr Js[I` J/F$`uQ\2W0鯂Ͳ4`_һ q/hD̲c~Z_o$Es;i}F@9R꟫!AeEmU.Eޜ(ֿmX5RKs)7TmPcqWC-].Wga8;!ݝեYf_oFl6uS5Up*9R/-đ `צf)Rŀm[ry]vS$|a~_h ΄tW@`lAO{Ip᢮̹+]SRNu eR"V!,#½7PýrPƝw;-{Kw\qK]'m-t2;[GӦ<i {gO=)`\iC|YocL5Tޜt` 2Ss|\R:`݋:SIQ9B;p1Sn4 b[>Ty &idͶz/ (bof^wH𩬷頟̽Kw1p 4Ni'ۣ٣ٍ/h#}ZX6XP~p4\73_ -XݜD:UUa*:7ybYobOkw"CP}? !@^tb5H4g r'?4{ -Y0a W8JЛ #n BcpWX_C6ɀ lm >[H^̞\wdBS#otGMe%|\-h3ӗKIݽ[;K+" V1Z۲f[F?*KoKue,,я_Z?NfGs'?[h8c\d#Dj}9=:S M0[C jB />[oP.ⰏXʊNႭt7%ʟ~z;S\ѵw|0*fo{+4[*S&uQ/& S^ VWCH 3nX~ୗh-Q/:k7 $z6⢖v~^.ޕ.rP|^yr=5;y _*3{˳U'B-\~[P VM9[eA<4 yTp',ʍo`݁Md5ɶ m) MnQ7z[i?۔+3'?e|3ձd4~}/j@nrI̵*6=F$7#T[:λl[>wB{;o;[%8Y/$F"\ 2$6d?hvv쇝'Œ5kDO.V)VuUcPt$9x~]>.ӯKȌ,T1|f$ \֚/"ZSp9tM6}d NJTv.1hQ7cG^e(Fó&#Hh+H` pk,_:lF`?tt^sYkWRZd68Q_~v7)-]{߅q[d'd,zx]覒YxcnGW>ޤm](A{ѽI@?`8|xw,^}6ܿ:*nevڣ~OkfEYtNOyq|~~\D33ʜ.e0'!0GI/J5wQMVw˥6Zw޽r-T;^:,lrCUUك*Jg{goƥ*j86aR/I}QOh  ""!%M[XWK 5#[f:bP{bΨ^5ϫiVPr'ĩn{YrTx#ds)| ݀gO&S M4 =kkni""CO{)͑q`5My#!c"H0Ȩ+*ﻛZHZ9iWP{YI^aXxuH5we\7[XV4_,Ddsi\l\|=zoC#u9z~&p,l<<kC=&GNܜFZ DIpo)LUIݛ΋Y#`3*5fxZoz -dEDŽYN -c NKP۠6f}ny@-DKU 26Ӿj~Q}+*{[f!#!;u+ũih^:ЀS:y9Gxo("jbr\ApR@`Ik=Y#* ÿi6-yE^x!I [Y4Xϭ}<*i.1 f^cp M IiMޠ)bt&-nKZw`B#$~;\]:i^!Ȭɭרj4y|ގ8+g+\F7;L7Wl?hgy|~.ȚMtݎ?y|cvpu5Ԩ 05H$}W50[AzĔdx;[[B-mAw Z,5Z_1f])xh% qbREiv=,ꄡ!5V&bR͊׸Wn=r`e!T|CʝYF=SB`yVN6t?TUܷ*MF^`UygrA Ap5߄ppCM1߬ؿɳ~F$ڬe$w#LN/UV1LBk*֌H cpUoa}SY"|*@~}r8@pN-ͤS`t U."߉: ]ݨD ӯ;,uUŷ; %4[R~N-I^ZTsM)NS)1]eFSS~EdA;ڷn'*)ZUUy|z6k?ُٱp?uuE#j k\2|n5Z F3 A> +9G΂_Kӯf *}$HDJr.=CA\1LnlSu?nѥAޑT?UC5T(6OIS SЇ` I949o0 B kA\RuȄ7t ěS%m2lV|m#~{}s + VV p)E3}ڮD#?G:^6Vd fV,QJ` \Bb,%|MhDǒneyN6B CkG.~;eL2b,;f@kI@&fE}|OliM/@N3bM7!@(ɐRDœj4Ȟؿo=oBBCy*m9pb:̀3jL5}6"#j%}lF0> FPK#~zċ|/ &PN "l}9}9zZ8Q`NJlRCvG aܟOt"}PrY3ԽiK!<;9kOJC&õ 9Gfnwp5ڑbX PZ;ޭì`4;ş>+ r&#~;s/$BEH> YpIƮ1UbtЮ\ rxꦖjucdqj"kodARK$GM@c0 SÖ́v2WC_ e6.;I K,$֍O1 RͤzB1| 026>dhpb[hm=XE~T˼* ~Bà`CZmvVxAM B  Y :Fוߚ ^Uk CvԂ'4Q꩚kl;TbUh(o\;.hX6f]E~+d\c=r'^|2+ϮJA Nx~ӌi6iZχ|STjS3Gor)Ӄ/?|/]z)~s5+غ'rQ 5'rR /yK;|6X&4p+:[N4Dcv@1U2k 7ʬb*sτwf n~dzHc{ I))XJD A0# ۹Uޣo֫t?qyC^}~)>x_7¾wn0{+ )}A46\V1ýIt=pL$|hzۡݐm35GfftIpΞf9F]F&$䓸m5t;xI&1zn7yґvFaVBsX;͑ÈrOcso*uv CTiGk/il .>8\׃<ɓ&]8R,b:SY"RDO=q;Uα؀Cѡ؅6 ]+Z0봣ՏG}T$iN~ǧ gSz4U5cԑfML cf^ MK/EE4ɲ}NHzj6&Vvcݰ'}hUר/\&_6atLXp#n^^!&^+:o rΐZh c*Zjw$ kūhUHaz, 3qa譆܃{ItKSGyWhKDUkA517kkKuu$?C)Mt7yklq䦅sPZl D}e &SÄn&6ͻRV V7b=śo i4EzG B]-Dk}wduNkBFj̕r@fR2Ľdvl}c;VVU=;n!L*z)jZOBCv띏xX9 jMuE4G{7Ŝv`aYG9[=9|N}u]KKkr dNI|8| 9t[+(?κQ1r)h;4ę6C;АO b8Vs&rWNw4үǭYE# gX/  e4F_@n=8HrL͡>Ƽ!rӓ  1C )ۗqDǷ2Tf';eLz~CWH#U7b%wޓqI(T=yBkvVg+@i۲5u9ޜ90L$^‚fNM&7od e'1^FwW L"tki.+ ΒyΘ>1#]r 6 i?$h fuP?AVOʵoJDvL}jOңяO]avGogG?¬eQ"_/f퀮v<`-I[U' UU\Gy[=LmO H !]) 6IO)K` lްPLKZ,Z*6;H2a w+xWHlX]rCBc5UzչL2['u rp=ɲj--S7Lr..Z\x yvB\?YnLSӒk7빰xsjz^)jgi屩/#-{Y-}G Y/H/ܝkhD{g;:WGذuZgkKƥI,G|D!&3:߿u|5p 4ɦ9u4s Vwj@j OwlTpҦ)j V+BsONk8LE9"")½}P0fWf]cƈ70GY76OxXOdmk{"?#o/w kݟ-⨞N7%~whs?o $u@4yܻp5f3;TJmʦܔMٚ&yؚ[D#^dόv7Y42攛94>Cb| W?[ڜ5GS/[X+P+4>1ɻh8&i3+5 spM958$hrҘ3\$td3:lQɞi&fTMFϔH(&@2X 4!xqG`LŚZv8?Z;u2KMH/vʯKd)_+9j/`}$(ʠSJrHO3GwŃHY zXwJ8Voս}z`&`XOi_Q' `H/*mlmo*Shŋ?rQ<=_2֪}Lje5vaT1s5Rzua>S޼hph]V!rsůJs&ebNo lq)Ʀ9T0Eq)J^Pr 52FY81Q"~d:q4LOaBćoK@V -Qa8^Lsؘ5c$K#W$xk9֘0h\O1n3.%c*!_6:ﻁ{YF?CS).x 1F4tI#7@&?$6!KILeÖKT"UVIrf34#p?IDAT3\2ȑ0rq ^ƨ! ^eb(BFq4Nh[m@%BmCr@)ɧR{7gLޥNY;w3 m# Ao 7FrO6Y;-/Z}31~N>TPNAj58zG:ۈӡ׹uv|$yяC97S2Xò ҡKzU|8`3yɗ^`$ @UUL_n;d%\uʪ/{wƬejkNwOmZߑ@?-_Г74A]iit_fi:xߜ(gn_VYlB7@n]|7zA7!tҹDoJ>oPHQI;c G^`]SϜr'4K8LMhS'd̔L[&]<o Ni փΌ"`hbK[ɺ$)r-zwҷ`1;gz@j7]/s2۸2[Wkg}٪lzux?fYnTK9VUT:BcF^J J_`@/,|Fwn -J,{2qjsh tkKlC{|C>So0 iǘ:f83`z)C!9 ^PVH9ߪ? ?q ;X0qGyyV#5ha@Zo+%MϘ`jȿLG9)j[/BݫyQ}qނjAR4ܨaj[x[ʚQ{!9`A+Պ[LrP! E J%Qq:ÛD@6J~s[9i/*э*m܂ݵ7ZhE|._4C'8lj%[o53ۛ|tA O2[JB®U0B!uO-@({A|4t<ڂ5{D5AЯ#qAZjw֛FM= WjTGM$x4D`IZӋܳ~z.e ݨ'.|.L۽~ݙvm+&_o=zXȰX1fт~q7^C@oDue#3809_zǣ:rcHZ& f*8vOA_ XS)uªf3N- f0]4F2,k@tD @]7elj¥!N1pMKPCF$nHczPG>=6ƶW؉.l y7mxcxtOHޘ4/P=_.)amK?#PWt6Ls{C< ǺXZ&,[{'uŋNE7BOTJ( /pHaD(f5ۉ1?=Py&2$yHJK&9CP1Y]IWsﭝbw'htdX!`-Kvl$[6D{vh-hEWiŚ7aJ`kfgǯ=7>GVn=2yx_"[?>W')Q?w.)[4 ||_+kkd,ݜ_o0r%3ɘiX ]l.T@ʕAn5>>8MސVlHELX? ;$J\Am @wD+NII/"A I\kP /7%~.n"2!0IwMe+v)n:+`Œ 9zWJz) 1;+uh3jC_Ŗim^ARXΠ4]^;=h &Fm:|fTRJ~È>P3ZQklϤ`aJS侧oDK*xӭȴMW 'elah'1効 Q3k<BOC vR~Fa`/lOs͕74gnz;N{m&|9TPP d0ff?>#X1=Z;Z?u)qK>!r/_q O2= /_H9!8 b$UUp" B+woU ?H>-X$eGOټ,[&W C'5X23ko;cdzib&m1zxFץytĘ )[5_OS>q y sZ5\K|g{v޾;0R^_Ebmp;'&dI`ԀK Y"F.L7OsfS:qwhe7)(Lheb#Ц,Y#kZD8 n9IIE#nɐyoQa!'DLFAbkA99U)4sVhhB'cS736&9%CZЫ5{cPQI@k.Is/)Mmtr?O&z66{X$VnDѯٽh}2,9}ܵ!L0[?8?|W,);x\^&.s1^KnF[,FȺ ax¾é-LH7gEQc m2'F6HSf/]FLk1&NYFcj@ !:ë< o}#8б$+L{h;]>_xX >,ޯ"tZr䐅ffߖ[*3ws͐F&Rh<z||q9_[>IˬsM1Ƿ5績׸}ެIP @@vI4wH7l,X7ܨYҞ7zLh7ڻ-ڏM4æΨyE! 4OBQ.Lc1ry'R` ?O=Jye5z.S.חj˜T9YuBkk7UISz*uɀ"QFOѠ7R`e1ClZT<xivik<'nb!7S;Lg#Bgk }7FCշWBV\ 5q]mw >,^u*]S/Mx.$f&C?mCask'7N$7V1:k|kt5:>>yÎz7k(>Zt׫:M=am91_>GK/1;]czoq>D˰[~Q=j, ݋(oQ߈H_UWrW?׌y4"8Lr^w0iՙ2y:C8)M)&3J}x>֬MwConN-$޶Jv}9m(>WGkl<||NYFXf].Z51%ȩjb$/RЈ&08ӬA!,1 iA ID1\9E"th[1R]<ȃ줵h4/O7s$g<Lk2 +O!}J?}Cmv4{ܚuryH3ކo|Ck ˃X L"Os 苫 4Xvq:ϣ:_=I\vcZ9A| yMwz5^(>.!Fk0SNy-&h^ܞjE=ׇUf_3+ۻm߾PlJVӸJw!7pYh}wF3muQx/ U~q!.:Wҝ-D}Md]X9.z͗?rSZ`Q. Woꅄ }/h`~-]y:^T{ٿna$c(/2j%@ LavK ֽОTږ8ѭNXg$/BZjZ(DKr?JJO<=Wa~ABՐArGFnRLޤp(~/jr޻N W]5_tlfCwyю# YH[۲2qE1_s\=1|g ~9t痾 ? &vZ/ud]luSzSUWi;yWoF / & Qg0^;mrwk{{-o`y^NVrGiIX]`'.iNրg8%̂%P64sW6cY/n&q'kBMMK[dkweoAmσl?а?mW'G(s^%w4w+tpu`rVH:7\ (Ͽ% rX2chqvNxE*"v h^B^3}M`ȧ 90|vC99Lk57!aIѭuGK>i@pY|Vl|'pg0!E?l6D4 O6;̆su9?h`H5e4ZCmT=$3MrUd*N!9--;~E0`ُ8Ώyjv^_U!0sw|kz~[/S)NU)!'„Q@s1f(NsGʊ1AW9eqjd!v;]b2Y^.!A|Tz?u/(ivXm!oY;W:-:Zc *amǶ.loV/ΡpS+-Yo }IWnWn(f@kHYiSH58:f^ z6Tn~s(OXku?;B]O޲ڿeTY5Xv=iaYqIO)#_pv 2"W14PZyF?E'v\']Q={Xj b+5tOÎaikkzo=h-7ijRXRA@cB✚Ni&K'ן M!vq~!xwYh{&F':Xv)y`~}~5r{Qo(wF4h;zc?1\jFoɡ/R뭸--nvR3ۗWþ'̝X.j[ŜU{;Wd.|۠Z@ (5$h>>h=Ӡqh5#M CVԋm&g(ryz۳;x 3HG)stR"/qJC6)! z`Q^H2~74;jF< yV8[VŜl5Aҕ!t=Zh=.\W{ ׋cp p? |d4 @10xKό>Rl CocjEU~/ umU| Szg;>&8xg&]͎NkӬӺ9_Lަ[kk1~^}۾o,1 5:mQf!:p1z\bH@O "7M%{ɵ%TCaK`f)tbM.r)\9Dz}pxߋ3 71]@f18qy&?>~N#"ـ&ftSD~`4r0m1"dv<,L/&,1:ZxQ[dҦV>S J<421'ߵL:a:N2S/iFwڬ{]ƈY@2p"zgt29k|{&^tZo>uN1í(1`g+Dyf`7. [}F~68*ǖО3iq~<?7͎֜wܽ@-9Iu]>^vN#V+`42W3: h223 ˿nBK"bȰ&V6~g˥="6u 0J~жo$JGC9 %?vCdEOUWWV-|)L nYV_g{2Z.|Vr׉ %0\{+>K\#kX^Ru(ɰVWS!HHS¥ڹ Y5Rd+͋cw2_6нrZ ? :%7L8"ݩ'WW‚wm\O$S<Л6@#,GK qi?O۬&w BIzur9,n~5Gx|ogkĦ5aa`5#ˆ%]8?0^ߺ^ Cy !pfp]|b^zq]x]/!IlnG⃕#$]9Ku˵ouso(xWx-U6KRP]N>cm֌<9pcFʆ&[܌-|<0Þ쓚lZkf s=Ȼ<|m&ZXr\k:~ R*=m-ih~F;_q~ُf'q|H1>7t6D2?_]׷W]7?ea;=$SeS=c,ad](O5VfS}WuԩE=PxLZ `ҿ'􂾡tkыʮ?~Z@kC]P*RƄJ' r&B\'#bjz dq}ң~*}@)Qo5"_|b!D:nHY"w0`(52)N# JZên옗& _MFCY5A'b%`By4 -¬.7Ncm3[RxD9;0,dJ1(&p1aoNo;wo3mN17r盭l+3'ǿ œ>>ǯfxO;`F#,T`s2[ q@~zu]k1yh,|J4kOt5uzz/͙uvJe@!&4!i7V63{wѶϵjd䄮L &ٞr?Qit ]/T`"K0.KLh>|H_Miv$ƣ 'պ"$4sBVS5"`U%KqˆާjKhr]WG?&, Vi cm֓޿o[if]upI11w ɐEFrrȲ. ^a$j=Ew:BʲD_̡$lXp]%9KGY9:_fv=?j݁<_DRZt„F@$n~ \/1=,Ƥ~p,L8]43sB^&$-^右3'zL{.58?fw?ׯ_|x|||g愑.=kSI.Јnfƚkί=9[eoySrOP:B8MR'7@.pm臂]o&';>"izQ1؟V<`F*'7z @LMFS ,B޳zle]yYjtRK,o8>poyM0r)jłD*Glr\oż̚w%I-WYқVFj6*FLq.%OHU>]"iLKDxq1+CZ-I_N<`-\pK)BnobʠkpݶJF["~riQE+`lZ֓iz&t DLx z }q;r?¥W^]6wBWI)0c5f;??>g{|a>?`Ͱ)K4gD0 +./=qLC8a A{J:>KW1zt09>11S 0,A0?BDq}fismAu\x=cn?Vi`_Ba4R D~_n1n@e~UlA4N$/ t!ިI#QSG/aɬ  T W5D"T1˱ַ^K-|[ӝ~Z4G7?xgE2khʛdڥMݣ͉&r/pM2ZxØ2&H]rX4 t1j.8˝sE х Ԧw8NЎܵ9[kBÜ~G fp xpM h/aOC:nHr$CO\0 B 4AǑRKpcLEn@'q}cpKpIq\yͧ[*tw`W*u߯$V8Rk~~?_֏<8NYs#&@Dzkt^k=Ow;7^;is;H/ Ihd?%:[DVAey!oX5-hS%͈/,p^_}B/&Fl- o/Gǎ >~oq"Q}U@MsݺK;*\MwtH)5+T/[qV6}CzCʺ "N0(Vdl~>`'@16uSnM%OOhblAWoi|샼e7vz+-TVŪ%w-U{'+Z-μ50Z8_ezYLa|Qw^m? (]jJDڭ*L;ux|e$NV#GYhbke82J,Ek9b|F؊[2, l @7sN6.5]Q`݁)!ky3k'H$~8622 &s St`lJ1&N¼pl4ݼswkF7qe]ų TIEn="먜ᖙ=ImYSDI!F(KqtL_+jw?6MtŶ|^%sQby7+0K6#Ϗ䆝*3inz< 67Gy`)LLt ;EJ/nR"۶Rp96a#"`1|͛5Zv !Nka69A%}I3e!v7cok"6oYc2YafAR2X ?&z?чEDf2OQ 1S%jcU1)' K{Cj&MR>;ǏO$0Ch(8^֒#l3̜-I}ψ<:kCn;[X| XƆ,ܝ @L)ji5 BV 'R,vA-\z]&iZՕ:JPX rte|I_S@^].0{Y߮-97̚g*)!I\*^JtU.0m.=e\'%yu@ŧ;>y=kb)>a1t #n˨^}r,1sHwpwbQ,$–F^POz?jlTbz3%~ӕUcm}7{vȦf7Ӻ˂so7s1)@<Ե/P6'}Z &cmzNF4 kάBf^nт8 VOw>BiNў? m66ܵo}%js~Fv%HOCf3ch85Bxb0 PFZ{VVcI/MqRfKS0p}q%+98%NZeBm%9[^IQLjY7|ަqɯgԏ4}-_{IӋ]lZ码 s {YرyEp;u dmIY!2LKXc "<~e3{\k%.51go?aYy o<*q Feݖ%xdUQҁŕZ!+c1I}vj`HE;,t$~~inN=kH{]Β4FzI8)mZt!هN3773φQeFL7Yff>/O'C9TөgAi>6@zCtҤ&q4euvnvZDMCoZkΝH3pZLa?fmϏwk7߶4f`Hyox1-9kNcy/ENoz+.0 ^:V8c#Ha $.q&_oeQHqﶺ7دbWp۬)U Z:u@q*~SW6k{tVt o/ lȯ̂O>mJg#֘J~leȓjPFy~$Y~x.zڛ֔8a_ւZ:c>_z ^ҴRG_C%zs㳯i YM=OsԺ01 .\80 ϒ:)^[;5ҫOѩvXksoǗPtJIA|H'5bS ͷ/ɿ6 |Kި%ܶ_Nsf??lmkO9C7eK\wDTb:^rGN@Jta Sc/i#AxN`zE?xi1Jh҅` 4<9,dE0sEq]hn{ΞUP$s ^%|O!kY}V=L_lf_{3ls7P3f1Hn?6:+UsM0ҍey\5isL[K[wʼnqN~tu0 fً?=:E%y{RoZuL,B))[ԫ wrwϧ-*~2ޖie_ѕ IREVQ/=@t!#=i7š =NsKzPQli  NR/3tt=ξA~F؈36kIһh0Lf"0>"G !|@D;8bDq|hlh-"uQmr[x@[;َd$i$TtyB"ցT'lꇶ8֚sx>Ǐ?>os03PkN4z}8!"4̼oHQHyuyDK=N Ȇ 6+z:lD6#1KfI0sfMzI\[3Gt!` OTt:&?Br;x!D"/J>?iT}Zb&ZKU\j1cWn ""'u2opMkUTE9o`ϔ`V @'l9/ 1bT.˪3gAd᠜wUkV_ \$o׌!Ɠ^׿v>M~^Xv"Y)84K>P :-z xAZhæP׈j1a_k7}sjƌo!emx~`1'm߸=|Ꮗ};5ך8OG(S1Dh Pv=.u?ьC@kpqF \- ^zѿiNAFI:y6@r1V7Ot-Ǔgzzfᾛnۖf nh.)6kkA8^!bHa|Zm_I9ټ̓M[i.^11[r ?~EܳsS\ͽXCPDEU?Pͳs8.tTe SǟA ON ٩h2 bR1]ig"a$cZlD6}݇A{ rZpO'%|Rgc8E̱\R#} š&E `DtE:?0(B|?-=h$tENtf!~ĐOaPk/_\R^Oԑ\3$QNj{bZWy;ji{ѕtq7詋X!6S~ǯv^]O aOz>$ $!A] }V!8&y`Mk jO]X'咿7eIWA[LtZnq\n*kK)7"-kP'#:xCٍס`>3LbP/J;U7˪ra[p_>vQ&nd^C[[aYAӶᏧ=>m[k)W->ތH}(Pt'5PDbT1:"؇ssАzę4u_g=ȶۯqIB х13'I'|&`P)Ifˍ-6pX'e~VN|e!^آk~|)qˬqJ'h͌ -ܼ=ܟ}3nnͬc@NJ2OQDp-:T-[ 4 nlf9,F$P_6Zz^ZWTt;!*+Jss,R<3Is< 4UT^ |*|(936QʲxRZ,UYu)526]#A4b.+E 8݃{~RG-8ܽH!q@/O{79ȥF ~iDuNZ ҐBd11R|Ҟf?`l#"HDXz'S=6h\g2fN(6d)4շV?Lb2_q*mϫxӚmo翟??H>zI1}:1~BnyGdR}<~ǯu>q'2:mOXiO]XVD xQ4UTU2UyY5eɧ` v>Sz[8[hMf"2 Xw@C:FsN.@īQ'PLľTW[29VHZ9lw3& ]F]gyr.dMꔧ10xQ_/Sφi7A:E#B,szs_ 5|7o,a"]0XGF2vIyYJӝrokδil | 6KY E $S@""cI?FWY>tFt@ _*yc['yk`< v@B'#.rj -Ӯvw+I`qVe2]d"T/yo UhV=$4ʌI:V7g:7[@sU1LŠYB iFn|`7kt+ywUmf /~̷l:v4}?&uz;f{;Ms {'r]xaK"_(Ξ p)ԣobA渮ylXyf-QK8yfVIȀ4hͧI:I=9x0F'A8{Ckz;,mm~ 0718B(4؀faT0ˉWPGZDџO'@gZMD&*%`?r':- :ȌLbA2y2k/h8HiHP嚷ٶ?@rw߷ca޶ J`z}2Ҝ ="bDNsrڴ&"GJ}xcNVi3BegA>7e:aCL:E(^06ylP(O΋<kWnz#3܋}H}O#I)YV64%7W\ƯZ_zuFJ:AfF,p49o1X&y7L/wJ/Q]-ɒv][^7p]E3c(:OvŖ1G%({~[݄sbhԼ0ta?SRy$>[-; s̨&Z3Ep7fJ3')]`(݄&xu(9l" O0N_e0X":С:fd/";(G|{;@LV7w#͹mhwVPV62۷Vd}羛73GƭRrVqhtZ.C14Pht]gXg Cp9=5F@zI5vg ,?Mca+\ olBet3ZX^g75& 7MnfD/.X1jmw̙."S2\15qp (_KpJ {㶛fn?nhnEҗbߎ?@+{ph{!Óei[I2ٽT(dr;42D`\ܼ8+=VjK\n zj*DHJՆk%.Φ%SBESy`f)ʷJ@Hdw{$<餛мuFvD6AB }#D1b`MzĠdtgAe+!Mxzѷ}Cz@ i'@{!6ψç> mn]y6 "[=Bq"nj]Bf'̬a=?ϟ@?ܟcm4f)FzE܌[*͓BT,4%XeiQQn9WpQW X) L~@~ԫ^ƴ\L`/y|WYD8B޹پB@tǟ//N="h[) b|D|}~ 7ȶe_6xo <M0#lr%YAF8ڦx:t*[LI8 |'_ُ4NXV~6K%}bʒ߀y Nykq!ʳJkBNa;S3'B^un%[ `j^Lrumg7@NCqS|mѨ)ɜ6TCDGe:L1xrzyjkߢVU*,<ݢiĶmg_imoHhNw{~ۃۖV6ߔ6$evg׽Uc "O/'Q!"B:^c]c8@3F)"t#Ѥr##"/_, NCnyh fKOdы%Ǻ/ŷyyC~jx[Z?W|Ck\-$/:;͆j*ih'֌{pnmNⲔ]gJusظVmc al5l3ܸ5nN3sklfpGf7lw4?KeQinc+p=I80+4(=%lY's,֜e;\6Jnf #qhf#Gj-#CyH_37qILjZ e˘I/_Q{83 sb\ƫǝSR]uuak\{!yOYmdɢN\8ɀ1k kp|MF7]ӳO.7УZdYK|5|FpqtɎ+q3۸]yA6i@_o}RYFF;0!:v D0ĽL+z]rYX^tpJs]Մpq59߂QeyWsg#~%HB޷T*a^L yF.6ܼ0tN LDhwL*x}KTv\v%oRƋhGzH7ƶne ii&6ml;fI(,%#b]~*21ň1ѥTч#Ơ9h6Slza)u[E0  &4EФ?xMВSS]S(* pp)bLf\+p ˓In̔I5r[sL)nFEUKne;YUWlpY3Fܚh NsdRZA:Y2X՝Kb`b˜몙m7Z97gs6l܎#}o_=וWxܻEe@1C+56/gYc1{\Ք}l4g΄3bahS̪ 9)2k4r6\#":2(),+l|/ yiMtR+k6ΖSsNANY{;[23f|T`"ΈC#4ytO;,smfuwl4[ǖ=𐞤vi#ܬiA؀d,N&|OwDV3ZxEBv"bd6@)W8$l=m7lGk?z1L^*QNAۈfO#""󮳼G#FcɨSeAysrCR8q`7xm3/fdƷ]!^97:5RReOpc,p ~CB gm_I:~{h}3-8s>?ڟHەݠ?k(2}05o ed/{4 4OTKJ){fh՘kU "RCqlI8/+p &GS IQ5zcғ;Zy_ ۺ/>Ͼ-fn0ԓUAmV&ʘRSK_6>gh> O//˦JC}~O=ߗ(P?Rj&M7zGfrr 80<>ۆ}mɚ5fmL0{ Ltc#2O얞5RMx6#4 }y 1Uq:lO;bOSc1TFAk!u2}R/a9L9 dfui= 6yl2ԮNň8CVX sKxskE귗>M8%cM-əf!fFnfF>77, F߉,eW.#lGU{lۖ&[D47\ac>#ims߽CW;^lkA*KJ 5un'KfqO[)Ҋ6Y+pvEuefOf+= U {!.qj5I.) lBGgSTV-{j3rN $ndzC5 ܏2s{ψ]:s INZSZ+0R@ac =m%!x@ON>x|D*J!&_8_1}r! v2dR[9ԅ8N 9#4U5^+۲ Ћ_{8Z.Թ4yhc\ffgqw6-exݍHcWq. #>ss#bg WhO;}3oo'mbNu:6vܒQ,e;c (b^c`{O I9ֹ9bMgui#C:C9l\W1OKOƷ8o(u}[8Ui=.x2H9evM7 UKnLrW5r^To$D\8VL''_(IL,'!&yveYKЗI ŦKHϿARo¡ \` P̂*e>שI7^o_ŷqR`I9&|pUAu]+8*%ԫOR(fS-)]9{gz%ӓ4y0چ7n[%w>v_6T1ƶl26WFl+r&T514z(0Fcb<$lt;EYWdP?{t[ ]2>x7sA-!0At/4ig?4֟9wݔl&S{"<YmIJj'=?*oƛJOza5fdlonHs"M@o͸5",AY4i?} ؛{s .}}􆶑z++ H.˶65.X>+RgpKf tqK7Ʃ0Hԡ1'8&J̖#WЁ/0nN:ЉӰItlY%`/kcxRL-pk/7:A|57F46c3Ô(#в!HAŅ7mΎO)Z I{հmyпU\>1Eu\Gw6LR\AKE;.BHC,*/ގ4h~6,mZƍȖ F]Yvk.In‘>H|$_j:!Mk(xD]24a-4I0ID~)I =dfØ.9`t826zL5u$'jcs"oS@})WLfmS0S:m# 0 yy+,bYczgGhu>Тz6 ?ۼlmq\m&K0VEf.o`< )˜N<~[?8{z/};3XFk )_x>P/vFӲ !-$ oQ&n9t@h x!~#^/^IwMbΏ}mU} q/-(z˛%{w˟4=&)y][\.2-SZ9)FwP Lh?=Wi6e8;wYSml0%ibLXǘ5J#tBC:#/@|px1Auk퓼(1gɖӝ^y]µH&+e]u$'' zj)sͻ(MG>G dtK4_83C,-C좩q k{ތ\k%.r6$Vj> *,'FsIm›}Vjo-/jMX2 "kaCe'b}]M9ƈ]Lw%3[C#<["/ 0Ai-ZP]9rɓhQNgk|k%h[o+4&HX.(-e3CnlVt2ϭl*%[>m*I5aǿ+U4C{sk6oѸf4F__ENǵ(Y)@y۶s 賃I1!g 6&9Ve9]|B_gy1C;uS{Ɖ<̔9`':4Wd=x7FXR}{t3_")1 +4Il؍9W2^?͍$py,j6Xi@?IQj?TfNWЗ9tao#e7^B!u ׊5Kg |Q R Wl߸ccuH۹7ffCzi'ٶqT^a"覓:)@:g+Z~Ơd,Zn| 0Ε}momQG$/scָn 4-~͒w/~FшsgJ/EhcyqD?n(HPѻzT/(|31 nI;̻5Ir|> ''TEK |^T= An@#vd4MR5}Aq%dH-g3pMSyZQ'U)1Gn4'vSnQAqghDT3#hKXXJ ߀',^[C F8eyzeg`ͼd 6\]h];c޾}NՉJ8'V@b~yp'}8ܢIBqݴ{Y/CLBȍi<-3}FF>H´nB> <ݴ&6ev1C 44v|2Eħ'ٳ]-C-y-Lalf#qy:qbOwаnqQfP~ "Q(0$hcxmZZ{֥ eS6ֹS`d{y[ڄR$PʽoK67 sٗ="JF1H%#NuY4s/(wl',j(ΈspF@و~}_GS*J4MB~jtCSڎg5\tz{NlBVJDW.UL+啁k8I,=CSN/H9R 9$ʗпcs7}|ۓS'wϥZ2Kjmz0T>3[Ј~X/+#p'@D/0Gl4xx??C`Sk7CϠfĆ}$;-ihI3LgF3=sAio[qtAV6źGu慾f T6L 4'<2+;]ϟvd|#6I'ԩQ뒲9Py'81SZmqgJmo]@ʈiff4aT o.IWw\ ݫ{Lx4M81  d 凣~*"&W1+2A:'pper62YZN 0#ju_Se&e1 1T,'{zvM]^pu^Vҥ }fFImn?sXJ6&i"qfp1 k>pĨF Z 5ofAD! &ѽ+YqP> `v"Jp{7|$)d(~;N\fbmx:O4_7a82ZPR/U*%)/ Q!&az߫ p7:.I"r/;eIADzB륑WHrKYtcLK\Iw(*!r#ͨKPeݠǮ' |!~sVz\\t`OOa!0hC(-ؠ ոM?D ƜzVŵP|J/9O:ȸWR*U#cjygyD'x3#NS%ږZ$7nQ6̙A@U5,zfh$P EH{&)R#&}}i߳Y)U|(]:#Fku+b\*Aub}\2|]|@6d%BLEbj{b3AP̄s\FŭZS3d{^$Sf# tx#l7>ƔˤM& -nx{:΃ w&+mIE(. ,hr2zT 1o%ߏ(KyKHXrDZuZ|RWy8i-bvˁ7 WX@:oU<ϷzދN,{j}2#ԉ 7-RCՒFUuY4﮸^CG2܌Od`@rmy"`;GCiM:JP2/u"P(җ+ 0أ=}iI=`kJ.b) j+ SN(?芙V5`iFٲl8:67ΫQPV]Lq1lVP¾W z[Y*s 6:eRd<ݶ`hhNxol,_K])"-:"=3jP>*ٵ<ѻ338E("4Nw/*(-OS@߀OdBsh`]M4ၬr}8N|F؛ AUZDk8mz+K Tm83)&%)[l@ etlfM-IDATmk[Jnq2u5I#M(m- ]pbZ1 .*2SZ|+Vk^ȹ}桴^jvo䲠r:)k8Y~j=_s$zgEA^# .4ʕz͢i9Pm{(.xh-}\)!{El R/}~ .?s `l.7RJqt 235Lx/a5 Y7rfAtaDf> GxXizBNzC-=d)mrtT6ۈ-ZWTgwXLȘ@6i<(8-#v+,ܶrbPLz'4@'?߰8ԉ=6&{ҟ\gR36i^C:1/m*yEcyy1q[u+//:s+ nn'n>jn,՘՚7|ftUB8&3Պu3hRҘbqea8-ŋqDhTspUE] `'(sR׽xw0qV+osh# SY7ck漶fDV0s6Oچ}7̯{(g Q>Y16 <%6 YW%V#B?ɖtII]tr1)̃ik9 \rə6+3ЀqGt@STkZSHT%\fZ}o+WKrk!,IGkhk۝56٦ݤ͸^/@ہA3o}i1{+lBE{@6/7^-fiJWsbKv{ֵn'Z 'M(p~50$ũC9 @ z\i}A6}\DKƗ9q[IRR w# ڀDEe -ofd bg雙uZhzz)v€-m A#<ݭll,Gb|ICҹ>f0fAf c0+7Iuy9B@?3p!`PMnGH,_  "ǁ9`"IQrSaWbfys@ĘǤOAyw q8܊`@8kϮBװ_duT:s'߀fRݷlne|#ݽ)!ݏ~s~~ao}+7q!H؞{ B19%J1l_TĩPY ؤ7J@'6hu谭 (es}'b{H/kWvKHͼq.{iMs-DxO@vr'|Ī*|ڋygOk¦BEԡFe B/<pPAp/ N_Pg/LOMtNO|*]3Q=ўOS>Ǫ%@*4_#q3Z K }R(Ϭ?d]6U3T `)\BJǚTdҷIZ^/[do4}Yw:#pXe"ZЈUt^m۹1:}B\ U㧵f16x3b[#mS5ݱTe9 njisJTLp3ˮ&BS9ҹ}}?hGqq9cxE:W(}0XՀmw$ I%ܗf^ 5B@ócveRN4YYuo.0QJCV̾)*wykfm3xtl7ͭ9 I_ OrZ8|}o]_m|, nOKDsuAĸ[3"ifUu71w9ndSXՂrj !Z sH=GRbF2yҞ!9 G`Fh G] `z2C0a662+@K?ԣ{swoZ33C:qj@?f)O1ꊓf4&%KudOJ;Hܠ|1v?Em?@!/j0_DL&2d*ccIJ@K:s$d39PT*W{9Sbd>YW~4.:PmEUZݵ<,@P55I e풹djͅ粼J{ۯe{(K?.eDT"y޸?hV_FeSU旭U\F(2C?7&SݓY湂ж;1?ؚ88?+ΗzWjxҞrIV`0} <ȃR1h!ZT>=8vs.%0j ð BwdxŶۏ1T䣵mP;#m%,69r} TxfMOT)*ϕ2cZϚ~f2wk rhfA"ÐU{{ BW]k).6Ad5vt$ VQ:;%Q~>ƠI?Hi# l/&]k&@D=@@g6Ȧ-)H> OsJlV(G雛[q`Fh+@@=؍fb:Y7;R7߉Cn^сHYQ 㪼D[5D&UaY]Un(JV Lijp3aDzoi4w 8Y?6V% Yk^#\5f!d\L뫔" - V)LTٰLR~JULv9`x>??l{ zhᶓ$ZhtosO"zǯ1^c cя5[fFvcN/N=EuQ-Ss+ P~_?!OzXڅhaEF,-JNǏi`M so1_- ⼃Oro/c7e 礁f(gBs !huM)>ӣtE%.۶ #pADNq@Ri s!˴ʬ!svYX׼ o]s׬.lQ3o~#ys*L! щ x8M/hEsnC^VWjTYRʟ;3̓\vJFƍ$Ssy5>~O7ii7%iBoo=lMxC֬m˶mnLל6R{݁>M"rWk9 Ɛm3Eg3z_g/t.Bo1V&)Y d36{a[)|e2׀If%B}E/sVO%-ٔcߌ8,5?)ZnsSj<_,}h˹?,e+ 879Յ⤙?q6ܒ0Sx$@;mUbyϴnS:3xJ"}Z3n2eGt12m1D+Ú4RE%`˭ͬFF& Ku}3eE~Úa9nT޸w =d $ϩ*}I0}`R9ɯafPӐƈ:܏}ǧH7ի`6h[if?>k$6ȭ&EiH )tMڳi p~ IiNUSzv+^) 7̞Z?5;h w:YN*fHo^+^I0kpJ?'^0Ge%QGgvFw% b:򕿃[^^#EN6a~^0!ۑ1׉l_}5FO24Wy'Ӳ8V֞!vb ͛En3je>~A&2r3y+o 9YV꜖it9^p7CkronOBO";سs0m!؁.'uOQG(^6 B*AU|0Er2Vpea9-j,dF?4R04̒55;ii7̒g+y>Mp` 5뼚pbComsl??ϟ涻?u\;VLoA爣uy޿8cd믳+rb-䭠3QwvUH `~Cr>bnQDz/0PŒHt|/ rBv6tE[Wyo\A~:~uK[Ω_G@7뢯aKYY1>q((d@Hl/LmcZ'=+ %~S AH tTf9 [ZrO.Ұ:4R7ӄ K*dq>oJz qR0ib{9bjk #>ӹ@%G^+%Xn;Mv9Ӫyu+#m|ͷTdϧm% O½ }mgkߊH0;Qc_e& M CPkTn@U:%$icDC_ <bϭ\xUz[܀WeAnF)ncX6'U[r F,1&:t<[@ L-_5jb35HS |AZN~ByFW\]pz5^󆼯wX0[BzEj7rL1[6nѤ4 G][\~Q8Ѣ*BɢgFвHʂ[yf&S/N5"!AnF"614u3E4 NA4 i4rrdUxuT䀪t0'Y$[U ނE"P "`_i6rOr5={=h\k%xHae/2ЌB}*zySdO?Fd2iTCfC 0͚1M))a b'-/t,aM=%ߢLmESh'i7:T)[t4HɷE=>~W&ܷvaZY.P"F9_;Ƒ>[&@ψ1Rr3+^7tzÀquSO7'@558vț[Mpݩ|P/J^gEVNd /WiQIL+ 2M~zYhC "_p%`х_tibdKZmr;HAI]YU:%/.ofY7t_QDIWaa`i'j_ۤFdVuDD$ңm?d[p]C#\%*cV+cd:xlDAȠ:='V\DmU8T8^׈4&2!gcWTYim]g;#Rq0:Pht- b}:n0]0nwYPiG%k|3ۿon۳Yslwbkm[lShյW?ͺ7_ƍý nGERʓdr?|L˶lj;yf9SǚʉrҰB*tíf_,atm)E(˥a`Z cp=ڶYK:uH= Pm3J$I'cml˱6ܜ^ =ЋDcM̻tr"zu=ٓ% T;U4z"amopH†~."G|\p54k6%!k 0+K=ORsiUFUprM >˴fX IJ"p[߳nZi+ElNq06 Ƕ?moۃI] [1O#""U<:?_cK9#LEiDcĺ}Mu QW!Ɗ 379ټ5"-O~5EM9yg+t=LU .tF,Sk@Um ɷoG"Mo̼^ ܖ pݨo *0 3|ɼp.^ڳve03c=Vol%S6%TC?ޛ{JʩD}e%6 "O߈/W~b]i d yk(YNA2lyrؽwAIZ/ihշ2F&S7U#$Zru\&~SJ;H4?̖6]pmm}ac1Tf54Wl5CfYf,2z'O?=f0"JE~xqq:H@Ogx}+Η 6IB/Ƣjƍh=6U%g%3QzS2&Cs~D6`LA9&We^A4X?]ʘCݷpߛ===flYi_0DVϸ%WuiF},ޞ^x{\z'oj-Z+qU2},r{@O%ᦧQ a(g RmC[Moϑ=G񳶒T%lPvlhlYt <N{^F4@`J3D4C'ݛ޶|;`)[ɼhψ>S&=_1%$~} o"9q+Y7E Vʹ>[xsxHv%A!10b|,<,]Ga,f4LauJbUmAƸ8M 5h.l%zWzS0&^Yj-AjN{QR[D&Iqj|jBHkY)bC{&7MΉQ- o5YZpF60!aJ8˷vzb#uHWP|d\u h m2Mq_GJdMxqYAamKG Due$OnV=InZ9rJx e>wjBlgkvHx .R_O$?8Ԑ%4"zh(̮ɑ\ۻtc-@w8,zҨ1j"ľ낯2en_/leA =7o \ĵ4u^"n2ҙcYʅ=^_{jr`{mBU4ii}9wUXzC;usZ @x6&s]޷C`T [?o]]^0 t؛4uF}s7hѓo-9s|RKcW(`Ayxzmv {eWܴ떄nWiyںRJrʆOrBᝆg2[/o~4;œ4컙q{03Dx~=>)r5( +YݷyHYUӣRꦤfNY̊ qӇ!eRSCqjqq1Yi#S۔c: ᩲHsN:-g+KY0$yøErQ,҉>6rK;\x}^?m!sQt爨ms͋2X6w'u\9&u1f}P~||kRnH&oa&#JFoh~^w6j2з͊dbr heC8Vg?FJ(נYAP <S t,kac䰡#dɞHIT!‰0 Hz6ɔW8v0]@S p!GWS4_:%$L b+ЗKavgG`v]PL?"fLp),dBҤ 22$3~Z9(ICuE2mGal'H4Р!$/s0n3H.5H"$ (oY.\PhWDGInEw|5fIr+Gȼk>>>}tsei?I6ERE3^{Yf~8#GɆ" z`}xճrY5"Q&{x7u,L[Tz_2FOf>us**MKʷ3z޷=Wc> PeGb -p^bډ 4pp/"ۦV9/Bja똩M.@_YӬO j m6di^) "Mk(Lɾ_Bո0CK?+.Cgl?ahk,[.j!a CkQ ot=J8cfw#TSxrr.{t˫BZ%PTwH\oDQ&%tql߹?l7>ΘYLe|oֳ3[UPhR4V(;YyR6s]uq95zyD?1F3AVֳ0P[|~ 7!6Ѕ{=fa{/ ::6U*5G̓zOCGMC4f&s~pOn{x{4O涹9k@ʧխQD_nI(lŭ+>n:qt{{"9K*oM6jplЃͳ"\ <f{|9*VBS`E+%SSBn mRtdK94GjNm/{sGa'0t[$Ǐd۞VXv+q2)=8.n>eykn9kābd𫹰z䘧(krxv~Fzz3SgG 19gI,/cI# fRV>}f}kNwUeJ$l~{H{MڹR(¿(+{֣$:voSM\-E(D3y05vb'xPG6)I !L7jp}G}'{-ܪfV.UoYT nn,^<1lʟmnJ \#Wn /h+߀/6L'1Lτ~>ZVjv&𜊏/>qsmwrC$mNi[Ρm$>H"-V #S$B%ӂPd(N/B H]+8k1wyqCA6ZHF .)yҤI״ %{Ɯuj$s ,͇ͬ[)n9JTS?5CS=Lw^FGg6LY:GVeI13s}n `DAi]F-&1T"R!7Dݲ SSaqg"k]fH HnkMw@ /W#Ka^yZ' IFr} I^J~z3wj^~l۽}LJMκdHuGG2g8~=폿?Ok-VquD<{ߧ^ع_ `x#t-GZ&qJ>R̩-#S2oZC; Pt$ȫAɱ1bȱ@/5lBdo@UŊ/*/JV2E_Eldq٦):&դv11/.!2RU2on7k9ZXy/CNKH @'_w}ukrbk8tBϧ3$g t/Thυus`<#@DF"RSJי"%UACx#rq؋G$0LGsjKH ]b1~CYA(dPWy21 m=! ҥk{"COZrGf#6o*xJzmz/^I(dNzޚ,L-0Tmu|?FPzR?@JΗ~u^KL23.};Y"$Wy$3[kO`"V|J-k؝B #M/||_z #QHFg*ȯu5Xz3:qy T.9Ⱦސu/zy.yK$5 1䅷kI14#_~sᱮLH˗=X DX(.SXh.}*ABP0`7?EzeIܔIсM YF !n u,sSAZU[4R35MK+㶳ѧ6As+H*Fs:%KAb1FX qDlmc݆+cRh6ʢ'a` zcE8hջzz4IiHGBGsVꇄܘ$YO䣸ra #Xdon76Y㏗ _zϐtYc:%<q&XlU Gi F< 2f~3/Y bT,c3Iœw'=p .%zE.֗2]}sy^c X AdE3EIGL 8;zssEAzɊCD2$ 7'}"eTGHgB TenH;2zs`ZJ!0dF9XI{)1wؼyـK`م{A;lJgZrwIx?'#bGDЍ)Y-Ak6E懚S*M(C%T ѓqtL،=-*cND,ƴ_&-1ÔD^U5|l*aYǼX{cfc@5ܒ&*7*8 "=o^RoB(Xv߶uQFRj-r5_z}]ьMMd$"ю_W?zP̜!hv84dי]E>^l5i%?t7/nU[\fl!_sKG8J\=o%g~ɀG~}a6]y9T _[b_嗾&t^MK'i8 *Nz%gOobٍq)FRgn*$epI ']i`U=S)6kzݬ ҼE{ 4t*_#҄8S˫G@_\SkriEzS$4Dhzk|ıDZ8!X=zWoؿ ۚ %6MmvDop7G7F%=( PM+QiA76v7Fe;,gx/CEԧA(Ѯc;sWS]mFgf9o^X K#v֐1*LV]NuKoJk~k'ק}#B"Gwb(@_Hj]|W?z#J:+2wa9x&f)K!Z u ǂE#nPJi ag2f9le>0>7RhXuJ!0 -(ç)K1'OyZ'Ӊۇ1JCJOpDL3 $(!@SdHIHIErIDU Uсv's8{,!(ERgZB"z o(d0(t@z<;6vG;Aٟ1^&l7D)ꉻZG!WMi5;9cZ>U]N\D6pe jһGM8_ E}PО8#W68? aPOgT!e{qޫmVIub%:ZV6?9~cA&~Rӊ_7a/Y|IA au5߂hM)Iyq.yrTse265o֙P.tD쏉CE#EtHf J֌8EY"D ~ad3(fDE 3,TLk3pJҫ&: 9a!Y6>di(^4Ծ +v![3WG.3I Ph(qS0*ЋsކBLzpFHm!#*kj4& w*>'1 ݸ*Yț{MٖNC9L #|:7:xzd$9ln@jbBL Sɀe ;~Za^ݷ^?Vơn73ud@&4hB;5 PA:}>?|w{l*Xԣ!F/eʜWz{/i&p6錤38"y)us<D_mm_BXc^ЍK|<!| j~_oO]G 3cʝqRv3XE]*#Fqz_t}J'.ԔK2f)~B[0Xs[ldODvE8sC)gbM!4a@L U63h>OvN--U={/I5Ss4Vˣ C%o(:/cFZuw>2 \L1u;?;ݬQg~? o'Hm*"-v$X$I/VvTeRP(Գ9xZJN2cKzpc p9|>@sF6 u|c&ǡް?@U֢7d<1${POqz_ |)=]* LvQ fN.`ZX@In6'GEk\ f Ӈ' *z֘חwIJ8NԬǔ2nolGjoCX#̴U7GqCc\V+va_xb ^$F D2dSL+YR7G(G' TN2I#|۠J#rLSw; &P4fmH N h>%VxNJ;F K ,}XY1uv{{Ӌܭڶ۟J 3+4bh`Ɉh9{%gdýǾՎ_ڟ~?_"ZܲrSIǗD/욗u\Ar۶haf۶yMMD4k#y&:hf|pAZ`\ J\Szy~_dA" _}p_65v垀[v/'tyYq\s2/Wr̢.ÅIG&u!pؓ.B 5-"@@ il~!ZA#$Иw]a12FU^ > CQ\WD8ͤ7&mI0)y2A_6]|&{P%5'+&Bh-rucF#96Ǯ1O:-<@tp ewb,#Oòef:Ki"6G 9av-+!;i8v@e瘝 xۄvhC}"]n77@6l}U`wgr:xg37"&Lu_2?/Ue|ٗ~_@D,dƽi@s.u.雱SFĔ[b6k1`^A4w($dF>QRTT ߤ73A֎M ExCH};\'ך!"@!&x Y03|GY};& Pjκ3Tq#$`;A3#|; fE&`7SC4HDcȆ;h_< aT3( pfgwGtQ='6-1eգ&f6҂AKWL1pt:)Jce|S$Ʃ0"ifV|em{i9EͶzW ߶?nw3x) r=2&Fh;}L Gk?z>>RP(5JdPB`%>ɗsm _F0L{R']+%zmXq/.I2#6.Ӥes#D8HN|˯gsbF_px{EiԱQ ٕw]_덛S0c 6u^KFd~ ,ԤF5eZ°H[1UyZҤK`$ +8G6 & HD<Ԙ>e72H <9c6q-̨ty1M~ fcYج1/M~YQIi$$3cEp%ݲ' _3@쀲;F,˘h4gu3ZirKc=KZ: }rK~8X*`ΙǣHc$uHkoərh}W&Q(+!՚#:2OEScpu/;3btOu]PuOt{ otщIa#WG LQ( ̵j&#R:dA/9PN6Iw H{|g ^֤wɷ'Co\hR?|TI "QeD2-Y$ݦtBC1rԠ # x D́ɱ"0'Jﵾm3wC)v f~fD;vҢ9lV{70w)@{g|um5PH3F+9[h䯥DJiCVkoVswzSKz+'x"@8-^B*@^oc➎+ I_?i#^p_w^{ WMyZ/ּ[+wb˻+45L{e9. qpdc^jP,7#2t> i8GS?cojю[iT7ĀHH1Cp$/2H:u4(ET/x BW\aOR47.nc--E .:zܝU̪^VPAlv\$grV?5k d+^"}aݜ^HX+ ؃%2x4`.c:^)%#Fߩ,$-aT3y1Tok_"Fa=G7HsD,]t 6RzEYmN¡6a ;? *8DV傉Rr#i<;FӈTyNK)K3ZwO&֌,$d4T2oz@]jd'F6"GŜ'hю!D ")"C__uECw]z33i#whoقcCr70L"Cƕh|l@P޲)$l`IIlo(d'֨# asv=(> lPt,cn~`K{譵4jَgo-)@*cy>~>9_M|b$~-5 CA+Y`K~=-fIu/9($}/0oe+`="9AWTdVS~RotvUr5+8?}.[Ĺ|y.5V6ri׮z)gd)rSu\ MhdK@t #-ZP悠&r|R=g/Izr'Fg C$U &FHEL~8 }'y1xۄ0 RmsyKFNj&/IwL1`/ըv^^h& RH"e)4 ۑDvkJs<INf $W^`>BƬ>(JvH4a(aWwjǁj7߬f*V qŮ@{B ~W{?Q5_ oTr~Vs Z;揠#=j0\W}jLfN6D C6bϠR SicP2''RƜP)sJd ;XI7/F~9ffӠ7Wêr 3Cf@gkH3;.RtyҁSo&9:]S`>}3|"A6K9J0|3yGۇW$TFRDd'+h Z x*FLP;p'o4Sl:ډ9D`k rK T@[n> Ima6& F&0L+( ?)di<6n"迀p)C0k# ,I)Ξ8iYI: 9Rn[o;R_u?џ- w{<{Yy!ԣvjGkSɹԓ(^~13 ^MlΠqvV%EDoXY.(G=q֘ڍ~4Wh9z h"+Lϑr+N沗ekޫmEsq58G[:G5kY}N8VIsi瘣>iMFZNϫ{d}fE/ٞg?z;d%2 ᔡН48U ~9)D3Yob>/KUJXgf|a-s?e~y b퇽Ihd4F7ɜХ'T5f6v[ONߤ KMRQy3D籧Tb Q9i/ = oKiRU :ɠkczէ"\ah#2uDјMڭ_|Oq |ϨfyCW{s{#F/UO &pFs)$>vEλ'RH2RUv,|85TzG)RC]Ȇ`H.sԚk:Lf]ayiaT JH#0V-w0I-skHE`"CA3PH |JN V2$odqwͺhn&7;R|'On'O>#mz72>]}ã) )Q{ ᾑ?"nU`'w0BgHp n?5{FIr<5Hhɚ@刂{vhc2#oɁ}@ mi!3sHn "gUmjoKN3n=R0V Vz!Z8>bn[>ŋ9hcgk a;3\{; 0R41V|Cj10v;Zc4KNrv_hvu+HY+ \/0"j-kZ+~_Hqy!C2PK 3E:5֟/^>frelݿ~ͻvUD\?|13y x#'c=-wDD*wL멈1Rمً*pN Fgr/PRxΙЃ`txfтdT*ڟ?7" ¬cqQ_7{N*y8/֏}V Lo;̖Ppiƾ ͞R#? P~h^ryAeOSfF"f7;pox̭ ˠHg ܉"M)" W^U zݶ3؉f*XҙruʔdHGAChd`tMJϺIYNC#41aR_*ҍhVHֲ^AaJVH56& q7Fhvɥ~0fCnfցt4"8K/{l JV|h%921@7?3bPJ7Y`nLVTB)}omrsJ)lюvc>Z{mr]78"cH^ZnR EDls?Zo9_f! Z׽MS͝fVZl̤.'fD?Go6ֵ +dcx%_8<1I ^edJ.畛}E̜)aLХTщӿQ. tmU}b?8˥kǪ_ |Zb=E[3u9\$YiJđKOAՁXgB15bGx>ls\hz"яFv3.=ԛޛEǯsh珫\4Ի'<Ku axʎ//ps<]BvlPFSvY#O$;pHtx TXeVH6\HbM`A11<@>$w?}۬7֛UgX cdʑOJמ喼!U uwtuyVDkUp>MILN"VY1DEfC*;Іͷ'ip9=ZH*Zt:ˏdde)B>nM[K'`Dٍ$It䖅Ymzzn-u1GF\3[!e5>fdm/-2xԺvwO=#]8mV7z;Xfm72]~¦IRҸq_uUBe ;mIp};xgŨ:JFRX%zK3T :Ǵ$ #W F;-]j ?dK ܣimT YZ;b;ZcpX*n,f.9lɈ@oI-&mxch8ZdnMХFaґ-'b=mF\A:IMnFfl7h'Cq=J~v y{h}?޼6[ZoNs&Eq|}sY_BHzI$gV`KTZ[RX]x{뭯"9}o~s I59t&`A! 5=ot;קׄ|M{tp.WَJ o/Sb\ǒ8\z`wFPvb)kbd LK]v)JjP>J"%k d\Nb(NYϗ|k䬙3|$ѥGN*P)Rd%MWNé9Y㢏N^,*.>WkUL k#Wrm,&6t f?~ض,؟8CʐMhv1YdQ|~;_ -#!l!!zvڟApԛZ2y4~={~#S֕LǮ})^C1eQPYfHLБ9 K6O`qV )@(=!)қ&D0LO$}vC5ʰ!@åbʺno|TVYݛLv-p4pKkd`{>S,N߄׈̷_p#^㾦FWq%D&Y:E.{X5t\KUa62`m Cq[\JJPBG@1r)#j n"(CֻJAD$N?![̪PBA+T:ܭTKɜnIڄRsO ,F xHiԒSDqs+zIGo>dT'4Sqw~ xO(eћ 8څB>NA\P<:[#P$Kc ![g J؊7`K=w#v 1EQi!#+AfԀCzdԤBN5HęO%tZH{ vK8 Q0c*&yJlL`E Y$x[pm?+37x>{h, Y)z8Ĉ^V{)7A], x$ 뒱 ivMcU3n]n^K:;Pzo'~%'5Lm×bLrBZB0xx,莗r +E958be,_ࢳ,:]lj,+ 9N9ޚ%BC7& oC:o;.w~7kRC<HQ9!BGJ J䩇徴:/rQI茥l C_ }: x4@<'(1H}AӬjֽ՘$߱%ӬGTq[13e1{:m}3$ TyJ@%n7o;2iNO[ z֯ϵ3ōs'wQ*e"M /cHl#n+4=A;crSW'ޓ1@AiE*Hftݬ@%1 ,mQn?jZ%Cxu3^?϶'B->ʽHM]="zo^kGgo>z{M6$򾋫`zd<$ 旈3ۃ3l ܙ[$27+dL:z#x#} RHӯwNoqg/ӕⓩuY_d|9Ac$:k/pK=54G3nwq9ԇ}4W9(6oM^e3Q%Fypq'yjgh&?UJga4Lԉn|p`04 4o,7nt:kZXOa5LoVa)YS?efnuK0{a授 J3n7\ίWZ͟%Vwk;/&ZeΌ]g)9`)m$*Wf@ qQ3O)49a'r3yvEn fQ=!}(o`ٟya#j5SUIDAT_R7Wd^VFU_l%a Ȧ֦H׬wM 8aDV)b6rn.Z-MO/ WGXB+9@F?:gўmmHk,5[9u=^8_}}kJf |jp4y/-K\+pخ&9̪h۲E8h#ErP/I^; .Q$`eY,!3!IM5ATLI ѥ<ϋuzk]O+ө$Ÿ I'{1Ro vdbq7@N8JciMu3. d2߃LwFs[qeOg;R9)m-dI4Ctd#5C~Cƴcȍ}|(E:/$t5m@u9&-I`_Ⰶ C/$KoR' *;wjmZWBUn7`n#Wk،{ XoBo`sXɷ_K!^b_Gָ ٺAr٣DJwa@cL*J!&yH1ScjcX3sGSzudɑ̸I Hsb_棗E 3mDf[)%ej^juGfF/^ nDuAM=qܛANftM"v)c#!Pf14TdQnZ-(EduI>r O@}p?sKb-I4kfBo! c*X(*&4+5 hq']҇' -)Rߤ&`Ҍ?:f- 63et0ӷebe]cz AF@D qǧ%ͥ:t>oU:q e,1}+38Wyx.}BD+FTZo}bqHyNYJv>26J~yp~;]T D(dy [6ߊшѻ,B$XƟ?gi-LYAHO@T$jF@"0C% ,{G<юelqh(]TOMGdCǮބD#mHmȳpqd͠ (ڮhsK"pIWfՅi^.J gfWF: 4SC':-m+CRxDX!9y cZ1 nL6L|pⷛG̦+>͐ [sQJurη?gK/2]i3 o%_9}ȧX1hy59 `*WHX# Ӟs2#&{ SvR1mUDLbb_A2=v@1FGTKݜ,mݭj9ͬBZ2;E"Cd3knlτw@+:C~ܮ(Zݼ%RFY{K}}k]r|{口adT>LzǼl=*F uXs 9} HtunP P̋fY%'$hS{?8GddV:B 5Yi .(@SA߈ep( ]y',ZxH(EDDì7+,I@mzsT7R3B=qDZc#Z[xW9vZk}3{[{㣵gv?{ߥAǴ]N +cq1ST, CKFA_Ә%-ֿBתtny*L-if׷ /,/t/Kf+RAGvFN)ώ92XX1>s$e<LpdEByZ#1` El74 %疨ܕ wxR^s+olev״_чwHo"D˓:xr<~7pd1GCJ"]n1/d!Rii$kvr8 DY`?n^P1r/湟n l7}7+;80g)c:w2.y3dV=qD)m MfiEbKcPsqDb3BMOSmpf-"<0D-kd9J;{,Bthx?iKsg»5.H!U' a zVܪmѰ9)x![H@  ka MfU>D'+?TQ-ЙTo/b =)Ko^KHe sRXdi)}K6(8_Ԕ.BVh79}L2dx˛#s v|l@KvsdhI*[׃ 𐅼MQ"tJn`n1Kqw7oȋ%3LBv=ЧnlfG)4䳥jqm6"V1cM8KA`5 {l{?zߠT,2&] =Ԥ'ȋK ] P82D5T1Y-Kzff3oP]p1ОTɿiYhQq0wDI:z[,@q!v_xy;ny" TWfiz{#%kl3c(>&bKu=1o)IX^J>kh k2D]ѣq-/`+ygRPv_&cJW vZl ќ_<"3G\R̦$K`29`OCjYAԁcOԡX^ܹ<ӛcƥ2k.thd[=Kmr>4rt1ޔWi˝X3vfbˏal }Tmv5-S!kJg(OcLW0*hhTޅV܊b4p3Qfot^K)ܪ;ef߹!N*a*M+<9g%9#;9Sy|Satl~aDkj 43,[ɧvcS%4cF/ #PIwN $c<Խwh+$`wlVDL t"g8>/˙Nlldو#N "Kpno?f$!=}DWs͟dqӷcN29+0AvRWxBE937o ?gN챍kdTaHeo[l{fsܥOҌ)D-SD읽Ca$ivWktL-{Zὗ5T^4ݫ{ψ3ZNs@ݽ ;)`кz&#QBaCțԨӃwTs'gnI4P40K$FGh7l߭:=?{F?ԛN055ߙaq5yIgD4ɱ /eL]RJ)^|=|).y>Z^2R?/UT`T58e$.<ѯkMqg?BE3(^D>4?1?xI q R^{`zK.૴l"*17EH$ۢ\{0_˨k9M{Mx!rigCl`0e|~|95&Y-JE$77eaq?F#r ̋[5+b,fnhsdnVnqhͪZ)+Ig$Lm 5Il ’Q1pTİ RV!TK鱦"lzz\ Do{$0!3=zOvh*d˸c})xTPH dmP4t_|lH/m8O,ԵF;U;BV6uJece(B)埿֍^b{EruJa) /#xI3Ỏ0kAPw)&IDVb;DS̡rXB+FXww 9YwDdcwJk8")XMO 1(L"YFl[34sR1"рDfzfrO3,'CR{GtFp{FDOzo!P~o3*5H`D fZҁfRiC5ܤ1**#T#s(fCosA>S,JIktE8@WRwQ8B4J>[{>?tE9"v~CgVJexϟW;~ǯcgoatj&h.9_QWohެZnLCٸIx)IbdڵZ|Et^;#l!aqȎ59\O(ԁaG.(˳0H}~ng{ҵ4Z 9 #-CChGo?= w |4LR6u2mQ+nj1s_{)VͪxN0n:h;kuH顩8D'nvvcx;kPu1}V^>kvQc@@T`d̊6~MUE`n)e[ qD9d-kFyFMF4[StX!v(m_i3iLW㩡tΨ1N+w*d谛iۍ[V֍f^dp#pSoznmmmsbhozBVKh\R!וk0Z|yׯ~n?F At}rpqDDgoRdIc1Z{^iY<_?g(A y#+G;q<|mBHC(hm^ͦhs=?9gk=#Mz fe_7/;0'A~;܌, IΦRQ]>X?˦RN#ן55^t}V;sq ~@ 1JP'Is?``'>S M}0{V_ן_&feC]g^(9;~5gQ~ڮ;VƔ Ѫ*yzuf|~ z `:t%Z:hbi4 1!2Alv ^1ۊ߷R;Yj=g fIƀUG6n^FN<@ t̙`b@% N l>`#6KP1B=z#˔:ċgZɌqypd M)ՇjuHd8#xL &/D32KT1R? w' Ҕld>m#;;;6NmV$= h3,QGsX6۪Սrfny#:?3.Nc)0y1';&6-e`H7xsP-M(E :SSjp֮ò fՋӽuE #/;хCOcr 3ލ bW` SXrP!LFuK,ضN6Y7v6}Q Pc.!DHa|* ހB63妒d>\YsqL}NR<⩐Ʀ9Lֶ'p#Zoê@MN/ m 1X^^&8͸DqHa4}` 7g7ᐒ#dtENЪ$J] d֎GBAhIl"wsEP?gfٍbjnǧ{)NW)3Ș'?0@hUd7JB␈amBG<_KjeIv~^s<>0p!D&{i 3s8^G~Ϝټp}0_Pae!2ͧ}gdj;f1ZW4E~Wkp$0SJSc I9XDlBGrLnS1g}dom+vmHXxI8' ǶԳAD,QpٿXפc]F2U;R]ǡ>^њZD{K~]3w|3I'%&y~ǘx|`kgOh &'hLN \S'w &YIQKbMiӢk\F[nVnnV޴o6ُj7fx@c/L=Fok!8,JKaμ׭_ z5+H~#6B ND}._fOVz\_/XڋMob4{Xz$ Jn3( <|fRǴ Ƈ p@pRkc-K8;=Qymv9v=):Yv(Yhj]^nft-OYZιZ)VGRB=½5胶;w?ΜdH>ruHH!#2E=EWr1KQ)>r,"Zbļa)\o$< 5T "£#tHwc#ǑD#<]:iƃd8O-"7 ̵㐶*yݟFGo8_њKUR#8;8ơ]F 0IO2pxI@6H!S;̌W3R[OyF`(-:z/)c<Eڠ?>ƇqN`ZsCIfכvNn7,mP npאtXv?oVps{/M!)mRQe芲/G qۨ0L&udi[.6:p\煿rͯ7W\gt`kŸTjȄ2JJßbj(^dѬ e4]DOrEPs7g6$Fqؾ[oֻZ ݝBq u2 id%VLͬV=Ҋs dw]is U[=ݺO $EsEMЉ>MCpZQ]J9Hiw*PJcj oG) :6 *ɌR(9pQݠ0` %vwHDa%a/a&7# f;#2:3NA:`$CUlNJ'`0Z%",m!& AFޚ+r{4?[2FDffƒt4G7U"LJI $rvyf 0l>P(D"<$#f"EѤ%@34}r8^KڞǾ=0$/2n n f?ӤrW#yD.h:O"wn;z->zU,fP1""0ek-BD4[S5'.K:_]wyOYCDIYd:sLMt!BORC Ul;8/J*V$rh/9y}G c⎺ `kdF 2o+(_tc>Ozy0[ E5 %l7/K ȯTg]MܚJm5A7+zҞH 9Kgz5πWR@&1&S"S@d"ҔR5jqexMG= RIV$F6aP|֍Y< k]cG~ddt鑲A`Gk_Y}ccDOo_` \ro4eho`v* Ъكt4:sdM0=傞 NDI_5H=?UlQa*Y1)gynJ10dǁcvApΙԫUĤǎ@U$qnϵ `Z_q.vkZp}s=u@5Ƽ=`z[{go_*l8:^ z/m3oޟܾ֞ӿ=?}knǞ#`YiX pbmPZĭՂ耪v^Iin0lnYnYz9,VUefۅV2X<1neou)1eLF8ZXD{2;D3f:̤ he0[_wVc1YnOc qXC-$=yoP]Z󒆫Z҅:uf̵\56 <(zi7'6EFdNkQƯA\d_}LQ*j f8j(_2uN!T s4XRl6T\kR9;gRc>S*n~aZؕY/E3B'6%sAEFfOKWGQ:cVrC'[WvR^HSwrۖz+[c\m3 U0wȅ;DWf̢IKO]Lo HNjF)|O~ of;E?׌ o:; ~%VMҠDxg9xט@XɠT]pyb%~_kdFߒ9g05pTnZE:

uV~l38T0hA]b4\f$?U=wsm=͛&_ -_OiN`i|b _pnfK:, Nwwwh6Y;/`oF ND/+Rƿp  lRxwLoH$i/a6XEڽ/8u/{ϩC.;$#T^ b/ 'ZUs!ő\W kPwvriDӱ2IF-d&7蓙. `)xvxH_iKMk*+y;|GSǝ6絿;̐sE?v{$p7{rvxw1[f9|Eq8d@C`/&;z1\9I/'{4E'P"o9.%֯j/*_ۖ6S:'xi|8E/Эc%;B|o(F!O0:2?6EH9ɯ|-R0-;3p_fV$h\/?׷FY/;TFX."VdSeJXZCE̤ǔx 2O>r5VOw6|=ѡ9)y_>HUlc<"ٸ@"3d}t .lq˸#Cyu֘|bwW%"D33bpdVM^$lZ^nlq >騬eVssPyͭVc+*y_Qj }-^6+A]>ͦs{c?FNpîN6lhԀ\nu+O Ð1GWԊڙyXn 9 H癬wO&Z;r5Mkh2ScP8RR᧳D4Ո]~GhgBkw{jd/n3DW`lѿ2匒LZ-i?ag S `M&@6}#&6-l}uA~ 4r/vg1T)TݘyM~M/](8f?sbw~X f'#nov{dwEyzP~t,' g ڴqyF|=f~D"fzHtb5HW`bՔIڂkjVcJPu}8Arˆ-3ԏ x\"Fk/78)J @.ԳnW~w[jIݙ3>qRK; o H=ת?Sh}bs '=O5HO-ǽ(,VoMoݛshD-8FI2fcNkwEqױy5Ҫ ҨptVfM?4ڍ& vt63SrAw{Mb3xJCHqb%nvJhmŠ=~ʬ飆(ϥ]Y*CQWte۷_ODns ż]c H$lPM٢oF]tB?8 :qx]g:SLKn:1>a,g :AGo~=T ]o+%AO1p~}oq[+A8=gc)VL!˙KKH$ašJP]zeVyJ??cT㷻Z?n6}8aX8 G|'AcT+=(eq; P ܟ'xbטɢFP#oV*2RxU%u'1a5~#ne]Qy4SݚMS5Uv鯾?̥ט"ٹ XڋTabդO| ՊuH|K;o0x0:Eah@? kCx*6}}q _Y $ýTuЈNaftq8/aCew~b@f%j ϛy/6ng}kT s'^ŦV|O~}pΖzv tͦb}-+nlqesoCt [E:Z&\.^6ִ>oFDnN)EU/z;7Գ׃{kpϽNTiywE:0 3崼~C??=j8rpw;{O琞Z[0be ȖeȈ|{x[4,qI\9URJ@D ?3)3|4W6 2hz^w&V$P`nK7o%N5wpiʂ67a|~1;ٟ}ʚ0 ˖ikhxtbLKݓTXTl+-vM;ӼMU-Ę^ p/v MaVnc.#@\ҴIĦ83#>َ`Հ8QI钪W&!r)hz[jE]EIE%"V6M®6حy]ulItV>H05 ۛ4q$xZyL)]}sa4nL*y ZV,^VJgb9;2 ,?M$f;gOK*TVEQJU}FK@6*awuH׬\@o֗@!ЮzV.j_ZOysJ&M?SqySv?NOPcX:KJs)q3r-9/s>_9R8kꖼ|;f;%͖}p#$L,o3иx T9Ьލx1s734DP ARN NSى|ˤ:oNdOC( ]ȓ[]947 ]g+\+Yx?`"`_x<"% !ǸVjSDVj8ܘByֲQ(W5cHȵƺyxiAs΋g:%DQI#\OV"ml;h"K1(,zG(ԧŻdz/JdȧJJ9sFvXTknL~)6GݮoF!/;G{c ՏST)@u4+ } P@&c s,FtFCoU| /4a3-ò֙Q])2P 7L l.s&~D7.0ӴI4FzΥ~]V4<ƹ'䟂~AO &9ʚI*$hjr}%dZ0?VE0@Õ.vGnSmݭHxK+س"zPl4|ϳn HS %v @C >^=u|/_w;x笡chDƳ'sq6qvD@./&=hݽ[O/N÷ocW۳\o9Di9zr!ͱ((3L}Wf{ `/1Ϗ:{ :0QqqdNLRh"0}!g2fwov-vNŦtH "ZR JzFDRJdOԵ #ds/~G"}իYޢ{pL%j*wb3Kp9&!4k&jo;K^X7Dw?;o?0Mh~ HwPgA@tc ;[ofw\O/sW gwKOy=>;@W!{+Q}-10& om+'%ٸ% wv68>z.!1~)Wd>B~Tfkrt fg;8 mf8=s^YeO!P^~̏]MZkev5TT1zL@Y  ឍ@_uyȓD+mJ;=6nCD98:iX%jfŚ[eVuUt͐"2>$)2]]ۢ ]~P US3!L;޻s-jӥ] 3OWB-VV/*FhMy@>l SG8)4i=V;@΁8f@'h-ф!oNkNNjK'Ͷc8j @<bb{,D}%h X 6=`yGfJ:?GڦURx|2swai槾)?tNH8Ы3p#W,p"eϓ. mg4~K&Owed6ψ-=1 _ u2՚ZTeͻۉ SqZd:B \xap(芀!v uvɞ|\ZSf͉_F~ MOzsb(9ϵ~?gSN')R14N&FZD{)Ȥ-J̏]^E\ƞ2P=y)Z3TRSRd{ʞuӨp. Z+LSkx"!),!˄c֕:xշTcPl` 9t✞`"ꫂ Az{iK AgT+xՔA;cz>:0^L@wL5[Cžs` }bň~㽱Ĉ&ӲLpF}K>) ޾t2eql. ș6[kWu ݻuEЊB:\ij~jmsBsɢSl 71|ߗ>6_}q1~anAkfϧ#kĄ5;[v*2+Wb0ucGq,"!0IqDzQ6w@t .,r,ws2M@ &4VcH9f )+Z&:IL}9>F\w!4eZۤ,45u"p)3O2 ֏=<@tG_Oe(PzLڅئ v>nkL_ܴ$5]jo{2:d6$wI⑴}SlliR<3!iU'w74{|X1uq =0lu()HOk!֠FF!F!_mt06mY,|l%ܱo;s.8YJf;Az߃ |?90Jup]/!uȄPX=D.fvjM8n;9uBQ#/D&!Au'N%+-" DAzc?IZ` zk{o~߀$0X4*0_n'9_}qsk K4l7q; ?1_Rc@3iQ)q?Q?9Azq=JYl~tsQ,gl^n{0 l8N.b^'Q:1"9r7*CLIyLG>0%S \6 !L.@Qt'HN'݆`q+ N70u$ʰ$0ܸ,K0k*z6Epl 7zRxOH]c*U%`^hp_KTt&27SV<y";6O7!:Ԏ<&ޝ1f$fDQmwn{8ՋnHN }04|Kw@?]; kuZ1J277چM+e6/^Q'S"rUsN@CfY}ež b' C SxҜ-e܈J5z1?ɩOQsnP3>;C%DK*=j!4k: wZ@nb)LQ)!) Mqa_x @9- ҧ_4#DJ~ya9 ҳsR ͘ "BCw5c"kJN1%/p$|<*Ʌf.nKd9}T>fQ1B9tS+$9}0ܯM.h /K Z5w츫y1N*jve@6'c(f&`}"$Y<9ҁ3b>tR'Z4_+2PIAO ߦ;Wy. :1*z|\l*V蒠+MW t(@jqnؙqz'r?җ'}sGP b $ UďzJ)O-QtǢYZ%_9] SxMf&A=4 P-#!wv7τ!fzU)Z@;5&+:q}FcVoaŸ!-҇0Ї$_a$+(Բ8:v1b:e9OX< Y@ۻ;%[oMѶBҿ FJP?~gmUbR>y" )Bm!_qċ:̋Tk&T| "1RT$ЈaR>.뷭pRTЖw&he;c^.4IDњ~Ҷr"VPۅOc'MbNJH\C!-ں8XP2G34HkdeQ)Pg1QNkOC2+m H4@`\r Uylt܅nTgAq6U I8H(y=RdM0gWsa"DA~ WW?ŠfzmrDFN̏ڲCȇW3hy:j6lJ*cjd y杵mPE ezK2*?/_ke/h^}mB+Nr)pR*ICNfmt g̞|LA8/hSj:I]{o (nj4XAfC+l ehLgJ ']Fi_SP\H]%L% ?_i-UP*?) cZ:rG_wMx ΜC}}.d‰Irf=2l1_ȨۭG.J1(X+n#d&u^(YFVȑƌmZaW 9bln$߅U9;I~b S,vi= 樕)R#`:w Q0ԡt.4άyv~b{={ ;ԴPE @[U.J;V A) ~Ŵvyuc~_ <{.9L DWC}Ц:aG#:J<@ic/.?`?vZ tΝ烞pBge4^ Lhb0ƄAN B&p!! 5Q|'!Fmhά=ݝ5vQ"鵈٢HѩvPgc O}'8;_QC^iKO37k]JS#9۾Pӣi.h[8Ct;ɝou9}E""ew)\ Hw(INz~}Q 9f~:*j"mK$&EՒчG޾={Hdyvw}h;;!9R۶ɧ_ 5k31:[FYan8$Jt"%x 3ꪲ3SXs l0`E 2 ?U:Up2BkW c՚7wc~MQ }:^gsjalOQs/7^E6hC`w߯ϲX7?Biݧ2ľYML1vNG<`#0!xH'O \\}lXwtuST+5D@ϑ&sH_&֐n7>uP^9xtf| &'TODq d#=/H^z"-gn4Johw!%# }^2xy(( x~a/W 홗ճQYa;?Za xQ|V\V#%?,Ye J)&(w'-'J[$!:1`Ey Oq $'*!EΪgݎ2=Gt\\~ dY*G(J'w̐#ُ"]!(gb$'|}۾b3WR=Lcj ºy%I%.&Fm@l4x} _OV9NFA!Km(fvDy%!=}SY/#ur=s=/>l!H$IǞE>љ*߃!4#~ ]@Y\GwYvU,/άRHq%9D47 Hy,L qk8uMŒ;MⱵk:RWv H cfq>:v1o t Ʀ)D3@g ,|܍ߠۯW `lp 73o9(MдAs]@W:<(.$m +xxm2)skkdCC$Ai:/GHX'< qgCx2[SRWtNٳ ^W?jO< `}߭Lle֏LeXYJ@RC4SEmz|WROLS|@(&_-/e"'ز? v|P)d|OSOOҌغ7 ѺCljimx(us_j[;3s q fҳgvQn3B֍-:,E,Q JM AgW,k_;01&+Itk52{Ӕ"0B㇪)G1ԧW";^ć5B#U'2Ghi6mn W}+{jNS-_lq"MCC>nZHU~;֔I7AٓR=ėoo%~}Ya-P&Xbf&dw;aIyv: M$Z^Qh5!5sKzvKՍ<9}㖭_(k}aRT:1w/ +ОTЏi=a")[ ,cgc{%~TӉ`R盎F?n2$ju @[8`Mpqi{7:W۔UR8d@qLM 0޽@6Xo7GJ0#]XeNj`?V5JQxL "tXJ^W$z<)H+9ep qDY1NXۭK3X] EZ,PB3jZ?[ x:C~lŹBx_ EGmfJt> iD^UmB*<3>ī B?~쒆p> ˪'!S0h 8ŀ@MɪS| gd2)mJڽP #H8E!aw^;Zm6g el8?'Wm[+EnAkR0GI,eճywO u:MEQ9/HC#Q4:SɅ8rC8-gWf[Dl9Y)8B FO3anJ!pBʇ0F #I"}6*>rQz)|nrYA"ר aa(zod/몼 ˺47sZKN`fu~~z겺NQN_6Vdvo'gW1+ 'cD9:焽=@Ӿ]p0ȫzvEP], YZg&hc# ѿ^[cw_%c&\F^94Şُ`tؔZ·ٟi$Ix5;00Z.]р痟X. [ZL1M?~, Lј@Ƿ: pJ%ѤcWGmШ' 9Uˬ &:>hF<:@(6Oᄆ.S8LR)P`Rg`)Ki,,Թ ״#.r&,lD*)nEf7RSkPԩ6gq(\Pš$^Ě2ŨN6y3ꁓ!SpclϺi$:Y1'cdrGvZ^J 0xQbfu].$3!w,CFǰÞ@; Ijҳ*%p(i(lûqW'n{_?w- HOHGG|` l{Q_7Zt ort}{SBQj1FRm{\%&f)k ƍQ!$)p ][ ^Zrz/=9r罹ٟxicN}f<^vJ;zVҜRIR`2`0,g3$1Ӻ1euSPG->>w!]hd%DR2v2Qn+tqYVKVݮAxpbAd k:`!h{p` dg+ 6˟D!~Y +rOW$SERS~'ZWsՊ99m"0*RL]}3 fnYU?a'}S=8JZ))Ml< u^j{uQ\:sC*" ]C-H)ϥZ;`֦ޝw L_F7nluz"Xn1Ħ29kR0:hUq2?hql| ZhQdP~$D&u*kP0Qbb9%{)<Ƶvq?]kk=]۝7 øzMj/D^_T(9}Ym[Rs][KN߯|ۮϺ^hu0Az|tjvA =>a4$12cd|{L@yV²nwնHN}1j}dv>;NTn} M'8CD_bqn>^_PblnQio/XUDٿy<1,qlDV,o3&*( ",HC:A|m꿪P,Q*~e 8T>`:aN/6(:ng=ŇA.gCΥP tQ{n描Bj^p@FsYR@ƎhOyݵ> (䍲>2 S C 89VDn?ul)E&cU^zV aXZ8׈hcu9kʜ=b$`-ow<bԃ.t~Ql.&<#9 Ƅ}cEZJr{^(x@pVrz  U[VZއb{0PVmy+6wĵz])M\?*W}G9 J_?zz>m%/6 }:uk#l 镖d96*U㙃&s6}oawfMO!ǜKw //?y:޵V4wQB'I(ϿbY`lkCjm %tE"`]o&>2X&"B\q7"vVs[k+ьֆkF{Z|}6مKIz,nPZIs+Ir16qR>DbSA]#!I\Jw"\# }Jpi@B=Hs :wÜ>rԤ#R Hs??PٙG@z;|1I. *'%-o,\+cDg H E9kzb{j1ñ;>sQ4h"^qUht^)F(wJrvv*8?^,z>\;wy^@h,?+=SHJ17\ġ3DeO`! <J2<]|`PGNYnm#0A?@Z:Cn[|NGDlX~tfRڈ ^ mIt=滓5#J#7SLI9vd!@T'̮y t| S~mY7%)8EY5Ki-8yal[o.Q( a#abV˦̓v"m7@)aD<7F$E*&~k*MɁ3)fn.R=tU&Hڠ4hcv-s|U Hn}gC rYw ţ=b4Nmv#O/u9*o[8׃l46 AA U9f%6 T\{/9}[ߖ;o@z pS3=xM}yr TC̗_9}_hU}C[#(INo_;5흭|Y mږ~`Q*+ uJ9nh|fj\g'C TpX}RLxrBQ,4؁~5N&Y`7Հ]Xxp-AU=O/Ƕ]ouP.UcKz<qwphY(5clzl@ׁ B14B1P'/Aa?B#"g|*)lb@&o;c/'Dgg(9oXNcs%:;>E,JDo+H$x!QI4`-4#<`Fгnr]qI&C;B$^Ա&((2OitY$pg{8=lwH)Zc2lE"[|BF*@Rvψ$BAaW'H kSq#9hZzo~ j0Eq_A4=H?V~` ]k鸨0%{mZ(EUq$9.elL]_w4CSXٖ7V/8sowtDIk}Vaww)iB$kA >̏xѨez %En"}sgbU:u,Xir?)0GGJ,}:gm̀W:5wׁZ:cX@A(8.ZRiIj 8z2+ J '_vt &vSpY}MXǡF۶nb59o#ˉmp=H_> of.껍w Ʒ6ܕ;)nBloMˋI-R`i~Glj< HGX݇YӇ@_nOTmڲ*5} %9=XV)C4;ma iW9F?s S[X Rpڼ@C&}[Nn{牓lq!{P˳!ZHĪ&x^Dlӂ39:(m\M| 70~uUȏ.O?"+@l=¾O/mmh@ci & (if% uOr#-3rpFR!Ln%A)+LT~ةQUKV^K1EnA sEpvl?ǑZd +9ѪK>[W1Ta{p5 I<5p:wIM*rR{}H;ݚ?R>b@8@:NefwZqLvg+g"[ (D0Qb͔θ|u{(6wq%NF$hqTq̜&>H㐠ZZ}âs(O;(?TU4ӛnĜ.%YLIDszbuIbhT'F]!l᧋Gݠt~/Q10W\ ޻"49]oO"F݅/O!H\Ao~(Z -߶7W%\ju(O œw_ @HN4%P~`^_^^1 LFrwz͛$(# b!Ā/U[`[}w3|pw#.ߺՊ Ĥ&Ëb9QKn}t%Dp- @ow22'|[S|s;8ߓ޴}v" KdymLDD/ ;R֕?2V|w%wlb2!G#U 2( `{) AT (kbH)el>i/axnXЉ#50$yY@LLZŐDlGZZ2\ f%K

$W'@@-%rI#u@KtIa5d#ùTɪZw*V8-Ij0z csjcFܦD^'_\+nv(gE1f `,WvB^F#Ƥ;AOBraCC=<^[Gc0B8[Az{[8e vX]x;R4UDju~C\ nK. ZB&Yp!.Fk1w*!Hӫ̎i?Ts0WY/ qH=H_TG nwCG߾o{6O^̓J@2ha꯽􅮲=&SQ۷KBӛKYi1h%<8%=wieŜN0XF꾠:?^.LR3>cui҉51Qt9:Z.8FR ()0g%%/c-`~2z~ɹz 78bH~Fǿ7R‚,,Em?C(!e$aGDH)z{DGb81WY*&0 E5K~TS@ GY^KQ-.1μ2Ə`jIB0 vg6WP6:n Jt6b!0S7KJaPD*9mJҞuӆ KGui~PO c*1*s?:AyzK (F,˅x dvqp"?{;Ob!9bv=A B^a"95v7NԄ{VDŖyFlkJ@;*. }΄*o(,Y־;w /~ڋvI4"@?5"~7ߢ_٪ʧgy.!BXWq[lJ-PE\G\~3 @zRb߅p첯]r:,.m4OYE4CIJjcJ| 3c䗒_>?H7y wyD|gOS'H)-u1T<:izdn1Dhq @ylsy"jgFTs.#.q=5%.c>*J֍%?}IK]mbyd6+(_yW| qF"Z|emSf4i%֏oUlF0-_y@˫H?Z`Vqb.KTZ[( CF9#Jc rdn !͏qH#?%&mOYnb wIl[ԻPቋ]{;kP*I@Y\nr7k*Wn(R8g4Ma ݘVWsU5?hxcFى5!KQ1ZE'1'!H_뼜VdܩH=EJt+1Ҷu[fdՀ pn[eL]zf& Zgđ1D8dNW eqFrM{sQjwv_@h8*>K~vnr7>X8[o,V`3Y{jC[nV j ` }>]T\]xs6 $){7h)*sNi~uQce{L)Qmcj 47Ps>0& e$+V<ĜYɯGs( GM9ߦߌp\eL(8^{ʿt+<7IF'7!iJD?9 ݴ~&~gjo4׍Hn(ijLq'k'_wpʀw?0tx'bU!BlhmM0AAvnSA𼳴me_`lBzFtkqhO+t%)Q1*aszƍC1xmB|?9-vzWm@ڭb-@ۆ4n!ڄtļ`DK\֨SJwMBŸ)v%r!nh 8^DcxHLJ <~h1d.jy[8A)Rj_*Rn;jc'D&.R(` Uo.ri}@Lpv3ysf_njv@BoHX`Mr^Tf4x=$OCEJY^)Zr>a*J[t|C!dF DSYJeΡ]I?ܗ4Oq}:Ǥ !r(GW LcSډ_ʔodA.j#a$J/Z19bJiC <[S]uƃa8߅L'z̫Y"a`M@ IJt EgvFp"R>: v} ;K*.ͮ~ous R4JCq)u7Z.DQLT20!BJrayf[iGflY T?L1)O Rm}fG^ Azn{zchM$j29^wby5qk H^fq4jӻ'mb -K? +*.7#! Aqxl&~:TFnwGWWRəY3wS'/+m{ٳ+w/҈ $x3k_ɉصnYfZtȩdZ!w8%5-o?9Dѣzx~xMbNU1}Ōa1Z1cZ;W}dد 3 }`)U [@X*}(S@LxD5x"FY8M9+k5H/#ݞ57wՅ`:4˗/W4n\aGG(DΜl$F}\ {js6g^NM^W>Rneb7gzWº[ec_֋(.z>dΘBZO/">讖ز0 E\;ͽ]^wX< &z(vW%RJPm % ?>vk }>R;͗Zg%9 Dp>]Af(<8- }nBVE!o;%=A-*Z=X nLa7;i,;ɻ"~D\FW0z)9}ZK50SY 'KM@>/@Y{V4U[w;kFk* @YBW }JOKN@e.rv@Vf @۱4*/Ё?:*Luv*k{G`o poj JE`=|.UF<𙹽՘ml &p#HjD v,7ҋ%"HZl{!"` 붗]70 ΃`ml ]7]Y7%E9=Ti28,ŧd$ BŢ ƧZ 1v:̌ e km64}\\Lظf S*mv\I:"윯K׭|b ^tVrEkZrz.|L X\,/wy7K`=7 9n\'g/3pk9K CC Ha? Aua k(wr9x6Ŧ^H>K0P}Z`l09GWCM5:z?(6â6͎cb,woSj 8m1܌RS{SHI)EJN|9UAs2D.TvDŽ ?8d`"bH_bqĚuw7uإWZ~m+w?V;Ef_LI[ ckIL½޸kΏ^;ݘKDF̂H B  W2xu=KeIML٭ܢyy\EgA%`&+ s(Sn=#y*7zBi0XS:JtOLhE1l pLL S |6bO+ͪ,sbvo(C!:ٜ(HBS8 & ebܡ&k?mB-n^q 8Ogqy4ih rf3uqk*?`һ5PLFu b(>5"q 9=uֿQ%ϧفu504jH5-5 hi/lv4y L`З)?3uU#]S-1E4ZhmY4_M גӻ]o3/cUnT˗ 9 ]x׾|b pY> v2FexV{YyqWPʺѫ0/~/ D/F&|f,CWF"jNVRfa+k"K=$Zbm~4FQ{ul(yT?Da\ Le@-ǼAAA%ҏIQ N3ʲx끔T5sǹ8yVIJ4 @JgiHQU]VGdK3r;nCἫmqVEW2f"~14THLLZwόu~J;,& š%KʽݩgJ{)9XiBI/#E=f$J*(jҺ{MKxK,97ۻ^u-⨱d: w{Q/ \Pu:acT.4-A S_ykq[Dz}@-J8]">Ԡ Ur;}PQK)a-j՗>1p-5;-6 xHOxS @F\]0' Xm| .X׸2?}CQijO )0_TŦ3j+9WHW|ؼx5/P~E?Yz&+D6jU" wRh/f<$K$ Jo~?j`!;71҉Ei* $FsWf:#*e;Ꮁ^7 >O,HQD]z+@=Ev҃疆JɭIaN7N𤋮qF@zP7]#aVX 5}A{X)*0Xz_2ՃL櫷mt,dxvy4k Kӡvq@r `Ay zciTY %Ֆbm<2HOۢ")X`uo<kM6ވ6}JSae7:RNH (& DUy!8x&:VҢ'`A"jybΙHsDv13РAC(x؄dQ ~q~Ԯ#BsLr1IOFO8x('ř1WuUoB|沠Da h'ʉh`zt,y a6,̒־MbfhN>5qa@ n9'=(Xo9A34.s:_z0GrXMg68 Z䉭ʤ(=ɔafܱXl O;>=њѠWB`"ZL^9$2ʇ5KK"ԳQ4ۛ+VMx2PHmPM*r3 ғrꁊ}"R4`yWü at*s4q Hlڦp8Q'">0i Լ4[́V#w®BB><\>RPWb$qpf]YeY/꒶Ci_+ro5T%Eaݸ +m#9}@{f@{h[pCU@T.tAz]r>DxfT=\6>!H{f',SV HCܻ{ ` K.WgkcQj!+Un`7}N_ןZִ#>euLmd&E+1̤$DnmQ 0;R^i1z2:ΓAj߄d#,?w_ ųhq <1k/'KKH(d5lP&d9(Ζ)Z⇻btB,~^Ȳ,?>r9W*2*X,Tؠ LF Ekr)`d,! ZMfQ=wGO6#@hAg  (G<U *vohUԲNݩ˒NB($Y%s|4 F7fΧTh>NVZ@bµ[=-:+'D.ER꠪) b(3?N>mq^Az?*3[ j6MPwoo=C h9 605k2WM]0V H/dwr\3%?B'/.xw-1#[T\7R?3EtRٜ||6_E6*gþ#7ҍ[ֽ>74W2xla:Ghd!y͚mצ賰߸QJt:uHEClOB-%V5G:^ 46+$dL9fSb( "ESjt(#磣nTk?lmYRL8p?1 pM`Bg ZFGcGy/U!Tp>(38xePfNJE@U>}}"c&'6K.9 38ZƾZkL] (djΞ1f+3 u?(|^h~+:)^k!<":T`tIt#;2#zN{G,}GI,12SrnE:qmmD 5|rNHȔ.{m+]|#:tĭҘ@ ZH)PR& zjx07hC*6}v1?l7E{gmѸ:;mYmSBO#8#+=RSbo ;ii 窗F$\JV 9bnUOX{u\7ov_#TУ%wH̃tHxix`J?-W{u'9}N_>=ϻ"4מfG+[ㆊD /0{):T~6~Blvr fn.z`H_}/"PmЁw`_(p =Hiogܲ߷w3O+G]؃'0MŎ_JNt䚮Dk'?wb1P &+ YrB=mJq={u: KPo6ӃH>gDUcMw y &7wa>vЧaz7yjRs\ Ib1?XsX]h/!QXw}3Kv2@s$CbPOJ+egO@.z *̱J#0ECL[iOO0"bIC(%xfKx-]$LµSibraWool(-gl4 3zGZK97ĦU|P/E8L\C,>YB`V; `ݬX3PºQL)xu1{AbTηD3=0}taE36Fu^HN/уVCC鷛I4Nx+|lH3M=)c]*miKF&6Mr[@X7 ɟz["kF, @2$Ts&e~:HNW`lJm=EB3}~$Wk<( |4PہK1ܬ^KTj=Eno4^`tLGa)"wOٴRLQnL[~,z?i o` @rmJG&~؄oZ/h{]{<8ϋ=G8?#5<' BlgxAS?~ v<[ۿB\I+}{ƤQ^ۛv;($$.i4ѨgQNuƅt AY4f{"4R./g~ $pq\>hDAvp aW<f? ZLCufF0K pvEL3:#Rc^ϙUIIBdЅ'Öȳe-6TEJ OT WD4'Oj u.>%nүWgmnyR|xlK)AX\7;I1Zs@E"("FT/14ZJL-Ns?(mRim, %;DAuRؼnf7lDeXbe^NT4;gFz(JN/! 7~uWitB;r.\LV*v' s_xSLeCN*JINO6W7,D= -LӦRKʼnH1:~U,@Tr% }rQXU!@;!&Y1 HCnJ͋L-T_?Ύݔ )`?ffF?Sx#To'be̓7Ye_㘑v/gm(:2B Θ4m~X%m2Ieci~.znkHe1.2|!ja-n}T[gǢ~"kfsl8;;I5.: R_ ube]1X }<}7N{0(Ks군~xknQRBp pqVӫ6ţK9 qhA[60(| l][(rt * s *!i苢{ h:Q9&*զI3ǓVeMkOa[P / QŶ~AέbzmaCBO*fM$Ţoj:ĥ{MLR:XeD/HD:')Q8GItC/ޅ䚮P^xٵ_`L{J{=L&m?C-4Jr|)I*, T P;uZƁN)x}-[CWKԇ$X@E.ՂF 0aB9V2;$5Lމ@PL~kKt H?= +9} 2%O_?Z߃6cY o6@Qh"ϾyyN~IjO{HN(.Ŕ¤peϙ|ūİ5z Pr=v>ЎWC#{Y}%.uHРEzԆq!Z loG+-p(bd/x`DgtSpri1VSZ9[@$(7!jS~>$>;j*lUQ?orQEl*W:oQIRQSAٟ:C}r?liֱ4 Sg/޷\}XG7.]O{yZ*ig +zb{0>7զk%0s;nl 43@g޾SdR4^:M02x(0٧7͡rt2Q|8u H FDr-;'|Wl&V.MX ~Qz86[O? sH,.޶{ XB'1x@/d[AH]w(W'7hZ:/a}ZpڡS7JP+ 6qyKMDJr@}bg -ދ zS.m?#ks\Rͳiޞ;+`u 8?5<.[sXc$*I1F/́LT4I5s*n)i1=U m9kRt7QdU0-w5`&j#%PmD_gxR۴*/RRȭGePOd6TsSO atsV~C^uD`f&}&Wf)y;ѵ,W'& ZZ`Q1$SFسn]Cw12;WA : O^C,4,eԭ3IBp)xuեœ ( hJ{}%?Ta"7n?n M5xѐ8|Nj4hf_|]x3!\`疩Q cCw7:Axfl|,!,KL7/T2څEaЁd>45{mnϼeb_]Kr1q8xcK'wse >k=[0m m ն!xN8}9F %[7|)expͨW6c@JcP_Ԫ$o ⠪~^]5(|mv?osS4 (xy8vaRT9?`إR*d1=dp Esp!Dv`ULy8YsMiOJɆf];_$5|sNXY)Xl(])7ގ$z @gRq *V},]E$3wNQ,$Zl. T*VD_3%ul UrZrM@]pXStwXZBk8Ūg7Cʘc[4phGm`$pWZVVӏ7bC}@ \^"zT?5)Ǵ<ҪsG]G8u[mh[:fДArqa . G(21EH^Wr)FK@WW Iv۷~fFvW@@$5OWysQnQrЁ屁}Q0$b G2˜1JΚ(0Mۣi' Uӗ  #!G?XxCԽ*Kx&S%548IZwĻBcQ=,\rRUeRS;^)<ϻ[(Э^^r.Tyn|:_♗kgcJ⪛Z]z n ~\sﮎC+Ixy:^HC1BtF1ZM(9GO!o%0Dz-(87+a`ዜLwǹ+M_g?5R))Jl1xvV/`{&ċTvw7@ٹ$7U{4?_<*bhxcHԻ ж]77[ .գqH+Us!z ȼC z3}*z@:NJ+b- ;e`i?~x_Pd$I 38\z!kSM'h߇D]P$nGΧ=b)m@DPPywI!h$8,:kAj=?q<D&"  9 0;f*.2bZ*A]sN6"@#_0#^ET)diW88LAr+pjh;GGѼXK~Sڌak*RLC-3Uq,;>6|072xP.Fܷ@^ŊxST7GF=H7MQ=iӓ*sTLW}N'@!g ܤ_E^D *s'.l!H'`Gҧþbci;EŠwalȬǜ62)~/tJW41\m""y!ް"/PD-\,`_" BrzYl>朞5fӃ?[(4JU 򢐜*iUE" `Fiͼl4JiTC)u~DIsAx@e/!jfmɣ/DE_sylߕ3JҪ e x5nޭlK{U_3dBTb77w}7KuL}ͶEǽIUrm?DXQIϲ6^eg7go(zܺbWf(keqҲ`! g8'E }>ʜ \9˶<{O037S5&O5'[ PFco@'~@m GH!Nlzf}Ic ȪR4@(kńukY**I_HRJ!c__;-#~W^r'}"E3(XT=l]fmX ;apeQLVy >bK}*w!OӃ,#ҿr9ND&,/  Ҭ|n73W*,|n8H' Wq`1W #ؽ6>Ѡ! *VOiJ3 9|'ӺtDh:Oij}sARɪ@urztϩ y,)Lt=_)Nz,"lx"Z7ߘO]w ~Yxݾe>_ AXP`U؋xviUbY\RR2ع4&W5XrtsrM1oO"Q#cC Ǵf) &B &CayLX77QѤ?yu.K,ܻ xS @= ^j}.D(=_t @2H'bZqLGSUΨePE` ?Yȶ- ҫHE7gݐeV?T<9l#g>`t ;bҪP4Dc3M>& tӈ="ofa\U4/ozz>Wb#9}Ss JUj.0/J->zcʶ+>6e*Cғ Гu UsGޟ–oс\.a`*gx\R[sYM3a}q)^~c J){ @l@%ti g䮖 ˒D g,[S(uՕԻ>z%wSIDAT>.1 b>jma-1"ֳdL K9t…x{1 o{؋?1)O4˺޿DD*nHNNչ|TSa?5_N.[N2׀NQh]|!19"43AjoE6tq]6Y#;<-2"Y&5=3@Mt7!Y*$yX|13U13737p  %-jGctGf)5d*6qNhNLB Yt<_־9K?V" @S/BuY6X Bbe&Lu~;@jk% )?m}OJV֝h|q˫+1*bT»@cfOXy$NsM-˼=>>Xle!HU~vf `5F{ʨpH0^TuҜ>#HPf窼*v*iVs#s~l@]lS MZ*7]a}+x{*frԆD|@Ȃ'H=;S f`,ce72Rѕ'\|q3-sX;^S $Ee/t{llsa/+pd/I.O]8,y67rW>Q؎a֛z ƚjR=qgcrukڍ." p$$4 ! pˆp_{<0\1J5(sJWϒ*G5 6 ~+8Pf@)ь-~X0lQ7}C+zSfi @/3E;/aA6&elr3ؓr\1v0v@Jz90bKY$P#SNa\_s+Hm qӴJtE2jژ6k®^ [S,u؂ۻ}$ַ }IJ6 ȇl%TN7 F)֔ӏCU*d&kX_,cbj`v ^z{c Hq !Ś$;1-3I~L=7uK S#-h965Xm&(=YPm V Esse"R"ƒѧ(# f ,cX~HkMo7o~~b۶kcj @'0unsv!2q}:?0Y`]10uĶ2E}KoT8"ƏΗNeoo V'e}p8P%![WkQ8``@ިnV-O]ښ_!IB*´&)*14Mz.ZZ\MNKz*ګrOZscv{2͍ͭh_R[ph5aVd©h~̑鿽w5uϩ!Y 09-+=t@M"ς Lڡ'4Y[T+ -[.ixl,1矎.pS(G\-z?]}[<B^(}ԫa|l]]M ɾ6AKtvPъ):z+ݿj L> %5zPa(ܖOp$J4gjca-{eT/j4R ᄍcEj URZ,LqN*=.̾Cr~H`[x%y3G `ePM`AjNBAzc]׃o.˖TӥGfaZ&x}2y7|~ƭ*h?ԗ9:>DgTB`I*Qhj h"%׳"H\̹1I`b{h8ϖCl߭Cն))-SbƤ.v1֚*/_hd 0X E+^(r-YP6"x0-[+dn2:q>܏)ݧ i7Ǻ6'O2;%NT[3$ec{޺ql0[7/=&T;r [VWQu)NZ$ՂON+6IvJa~=*=SRL)j h ߽9pLPfysR.91d>6mV dh%%1YU6 5)٪:DD\9SER>)m]T㓜Bkb0Mf,R͝a䝋KveGT>:/إOy kaSoDXZde߄̷'q]U`9m.Eor:sywX[},X@:{' /P/Lv s/uW R! i K[uOҌÔiP~ar{۟h`r_2&o.A"[Jx]wFY+1xDU<ƽu!E˥BӗQ G ݜLQF}N/駐{, ҧ$ GN&vbҜ~ o5۪YK`KF('m40*FXӎՁ|[hhls:]qn`b&dAk q>+\]oØ2ؐh[D"(kv"ULy@o15hxyPC˞'d| y]*,xh'o9v­< IxޖѪ0g0`X70pPy>E߽5`x{?u:H׻HFnRՃGޥW E@TVUuގt v9})a> ?MAp S=h7}m&hS`Td ӏwJ5n`~ Cgfo^o[b `Azc C50;[(`rhNT?M5BO~K< pP#?%9Is C֞s^ ֛?C&:(ug`p*HoBszAIx-r~ƵI*{X7@}B$` xղ'\ၫ`[̝ȢMTefܙd $1;Yp)^O|X>mPj"So}dm @L-0dEF/l6מX%/K_xz1|4 __eow4r9^S\lOm94#gJ^jI`a"bsvK!.%zt -CIV*|nI"D [-}FP1`B'_Mݬщ5 ŝ[~A;%2+^))?8p&%zC-G"ʹc:+ȊNOOatvҶoz$>m,SX^";MbZ׆KgȏU'BTx VI-\ uE^3ʱ˟zA<6Z=2\['9Zbv1H^YӔM`]ˤ%A,CDlF-T`MvNz/ .՜~Yq[ 3Miݼ0\4 O_<t2mĶՈz1xsYE;?؂H"{ odoDӻ5,LJӳeӁBDRc"JD}N n: j0׊7/VB@w=;;k ]9" ()XboTIU5^-ռM/_]~劵kIN-J)1Y Ç&c;9˱Q(ʺg_ C )4Р̊Dz1Iɴ=')MW )҅ 8)͸l%fH}8s1^^HVmLgV Ț"9TlB8PœB< 6 :bLcghXՖVi9hǜ#caK2?wF7i@+"-miwʀd )rP?(3jcƛBU.M̪_96 PJZhkn}| 4MZn"<,y:[; $WǜareShd*fkwYr|^P x ;tVPYxM0geN@HM0 qݪ7EDȮ0O]I|G7[* =f*R'6[V/ v+L$fRˇ}| ()X;n˟+:玕S2cD V~2W6v&ER7;b5(ҥm/L+)f;+؏_kN?b ckÎL_迼|V69,PWw=e})gM5: !HxnaWGVMel?Ym6M?DŽG*d] )HW{Tu?քvxӜ^Az vX"srY.3.n Izb𝉎8QI *!CU=q'u .˻DX]91;XU&#"{wQ9:`5Vrg$`ɰØe0i8g2,w ĸ^(8֋25hHpM9;!p4fSVPVXHH0l&/Q-ώӅSI=ȳUݜJZ8%8lkEB!Fڦ>-W?=T&kw 2t.jmĺHCDDd ]ҙ-&SOM"w7s km0ATfG+@k&crY{oCH o2ӗd̍tVbLa'td U=a&3j) (7OF!B解eL-uPvK0 :yѷ hI7϶6zqFea4@LaoiD2qUa1:UoG S\G"JƜ,[Wh;l+ "1y> ;+^~YsZ:chi 飳.λXw6,bTY95ֺ>I9[~tId3v}ʟtKMt xϽwjֆoI 1ui@x8lИZmw.$ /tQa )9͒Ǹ+(eD+MTói/%+KPsx_ 3g"I3sLlgnw1˜SKE$]s7?W^XCN.N k}?O~qqn\^O3UݔVq()>8Fbb!0TsuA`]l}Vfg|^xmIָg{\s]o3 TURZ LO. .V5(pd(ci)__-~Ă)?s65՟'W^g*s@$*F/lS=QYlxlEpsAfdz'Ƿw@4*QX"!SPʺم20^z]8I^LWc^כ| ʡa{W&n!3Ĥo_ܼP:4diVҴl`ˬ8#n!H{3(@^fUX%{Hq`SeƪN@;yxgBՍxGҜDjڻA.]<&bG,1R j]nm~LRw9_jNX0gDي9_Lq a_7kcƟٯI"1³6fG)0M6Hõx21v5>O 2s_aQHҙ`Y, Ad $c?8Շ9Xv3*>GY]%E5+ԥT&[Ú Ls-,5: '$"!eg3Z1{Ef@R<⨵7.b^y*VOXHԑ*qƱ4NzWO0UH[m@7yUIw;gYMkd JtYcsN55nh`M `{$ciIti> @F<Ůޔruy1utSʺ1a>Kt#‘;")Iʺ7dt?vLoclYQAˬ:E& AҔ`Le 'abⲋlvXH͵(jy|jy/f`\9bT gDkH3_Hw)fbm 8$$͑Owj'$\(Hyy_p Ё4 Y˺=-jO I =_UM` E1ts/_巻6 T ݶZ* ;G1 YFN)Sk=^2 k2.q~-5ed}'tKj>vL㹚)& fX&v ZJ"X7<$O(H$@0ɏFp^ Ӳe2)il<5qȡX @0>FI_ѢUvQYg#7!Ԑd_tˇ'6vOM2_n PXW1_:TZߙ @;RdM1CO|F%?Or~g!H+i2@!MϽ\>oAKlu\J 0*5Q8+.AJ9VoZ3L @MCGͿvLuܚz:oez- D>"87?6Oz>rVCҐW_{F08hoZAZoL#x/myH~ [ʇ }EUY5ӏdE(򪽬S 2,/f֬|ܽAWb:GBA&cќ=X{sFCP9}V$ؒAeCA ql(9}{am["Z_*S!=Ho98Azkp<*H㯮0gb NIsz%kπyqm;,&1yg(_(2ۃh4XW~]u.-o]O"MsN&s@<ҏ8DK6S8ZKjh4L%G"9:X)0z &gIk lfO`@*,rBwWVGfL M? 6Xjo* 2@ɶxRi\`^܍Yx?x z&s"@, kV^J94~:(']4d2[ߚHH& ԗOJGCqЎ:;cq0VfX -j';l:"VFiA,?@4._0?J}HZ^?pEd% gxGӅ?괙X+SȀ#qL BUT鯊7^̘xp}Ɯ4}I]3 WD @R6)^W `EҜ~t=ܽOU& @SWwGӂ֗#kۿϻY0AAЄtfi sj/"4YlEA{@UKۏ!@"~2gw BsO2C+ OƩmxb~>^:> +_9Wby\]9"S2:m sEQB?>#"B[|gwNapݞum3''pBz9&Tr7N6,^cV>ǷjRĦ3'Ba].ȕ@?PgXL%˻ /Cl 3km'1$)B?//SƑmյ%ĭM`i=zI"\w?O@]]]|hS+{#МRM-h oTeq>Sg7;BrsP{xZ=l ;LRAe%,{~wm)%kWxÐwdK)ꮦs$Eq..qZ{@Yc㪥 D G:R c \, o\ ߑ;-2f!u3m{hN7' * 0Sxuc<k,8 w%?]BڴFaM.op @l1PzX<2%-_fZC6>~k=U+B:.a ғ, UkvcMADu3@7"7w!A!3]ڋzw R]c9Ycp`dC՚In=jZ FNg]e5,cME 6#zt CYnFmv :aN507A31Q3lis|`;YqN̺ ;ull&"Br'28!5fPL͈5DTf7)7P(TB/!EhOw1>68clk07(NH/l>T,r ,_f`C{ֱ(0BA޾|<Mv-8뭶'eH%>HSf:l!0Զ蚑`hv6(۵R}IU!NS6*ڽ:IojXݞUQ%J),-2w3(O3d 2ѺtEkF=s2=߯БkkeR~e4(</Bتʻ-Y)gKczuHl/y V=.k͌)<[Fs %Rj2N!' :T+A"ۃ0X()N 'Ay?'4/ڪQ @fwȆ) t)O0`Az|gsK/TVXМ;* gda, kˆ(qR'ؐ`go 6njiZ8aN([Hە{aGglT=Ũ&ǽ}FKr7 ;ed={yZK" ^O;6/2@"9s(ks90qvDHlqz8=13@B~(n5G9) @;2Xf\;m$Ir5ַ9 ` e♃#>=P€xdMEnZY:r^w> qI4Qun ^ݭՕZڿ|ש כVEoLn*w>CE&i,9\Z&2tvl8nO]G'i!NpQ2ukg}%jK`Ӻ/.ж}'w '("Z0hQ#D:uboC蓱]@MhꙄG9o3)X$y{BqgXT`x; j' XޣW7KOǜB6`&(i,L1ڄNǺi,]豉㚭:?D<ȃ1:Cgȵg5{C:k7Pz&T*H_fLK*3z b3=BRMfM9CL1譲Q$Af\>驕ewZ;ǰo3̓k~}n!@]`x 1zLHm[Ǎ5,l)NE$\>ݥ+ 6(?#>W~ZHaOKףflvŋcK/>wT:w[IAzu2x 0줎ImB+wI zTo!8&cIxsU׀f5z+k K$j4sN$T,}zcƮ j <ӵb,l#)1ڟ ahwo%OmqpkiE~Մm!T?f9IyH[o9=*?aa%":,f݁鏾'ɜsI(Ɨ.PTCC_eM~[ ـ-놝XBef{.}gg t5Ml,VcZZx oU5= ΀EtGlj>BFNrz0zG/@z,^Zy9&~ i_eyۥ<jAVcټGo歂lLYŶkv4q<1d$φW b1$-^s,7e -梗$^g AXMz3ӫ5t6n* _̼Q G`#U- }[RSP1%YjH&V|CS8v];uJRT{ɒGJ!piYSa^3PJqJ7XKv#Dֆ0҃;'V )?Ot}R;z\SM Ю,$Q> i*oa|_ ֜~3׌22n+0yqF8ur|ihgJO.Iy>44߿׻PLfj?dY~ۿCeՋÜ^X?7 .Pn, E PAv sjf~~<{ph5Κ8޻u\rŹ3KG-VFMbw*Ct:q9afc+07xe@&V%E#MMZґ#K@&gQə@ƻX?ni԰̈́m_)=Po}!(٥/n[i,odڽqNYpL$d"@@a|s{ "uuC$c~DklgTmFL [nQvnoW M ``,YUi-M fyl0n䚞"jwO#CtW־bDѱ Zavzmo?{?PJtQY;]UJ6 U8)t٦򆅵ӤP+H7 41| `S},+t-kg??YoHR9 KxqydrS&DHEҶulZ!U%PJ ҷ' !;sCToaN{]X^pwK\\&nY(mD*H]na3}ED'Yz >$;qIA׃TRZ}';1,è+UmLw l )Bo5X EA=H8^]R VEc< ꢽ޵9Վ-PAҬ",>sP"_-˜}Sm\ 73_cp;\ <0dŌwq':a1Yԓ%}| ==qV֚]M6u=v&n2-&קۏ>[tmCPF|g$3aX" ?'91K1UTk V(!XHdlp8{һ;Z]L&5~-5~QQ. -CcK@llh6j籯+Pxx=Em`о޻[`U 9Xߢ 3G"-Hv@R߃$DPЖr  ԮLWW STn^QK/^ݘ۷u;X˃F{}R4Hu}ԃ,pm푋·Uw p$ݼ^d_^.U05ַ?rI=H}:69{M!sCQAo@OkaSQj;Z&[30K_n9*{`pw514Ύ< ViV^k6XIZ+fr߬hZ幌Q!t E Z荓 Z.:_s008:;]nenVk"ǻ/އ@ A ~; 98kBb=;$ϗZ4M4ZӤ̹%%osXP#&~=Atk~}0>#8.v~-GoI^I|UB  k6)M&PA0!-ַ$x60LD5>qP9KK Cgt65)zqp)`O@jϳ,(%]SE2&TQ?/Ջ2EB{u V;cQʇ+&]/.4_ Fn ͧ7ax!x,Te}lW%@d(5eTݿhyBjQcƹ>7k,~#7bP d A_||1x \c67"Ƈu=wM3_.UFr8_p'߻@۳]V!w?(/#¡Wde&9_h=c`yOnT=`:AEEV,ngCz}iZY.n2V8iִ?1 N4K-/"M5b]O†Ye#)%a!k'oSm"IOɄ>n P܋dr~@?<1 ƸoHz^,hoѼ|,+_UM9S̽ɱ|hB粐4O=gas HI8sKσTKs%2JI XZRjᬯ0'Fg{Oo:*H8[~<Ȝ6ѿͺmSC=c՞5Y) Y=-G u A*&~ӱxgO(}XD$5 |YuYxc o~nn/SU{ӼRSJ /1OW[N-IC(ixp0Z' Mk 7A;U *” _i `Nx;'!+{}?̥FEVLS{֒pi}k8(k&q`Asz{el*DgT?gⶱ5hv}7Ĵu(>GCKz r({Tdt,T~T{1S ׋of*Zqf0^es;({ef_[ f]chMɩ#n Ս5w(,`Zy"$if7ރg`tSهu rr?T(8:&_e J@hX+?vƔ\_3u +=H拿=zlk[(H_"Z$w$6HX%ڜFed5McxgBlBVq9@t:|}Ha}! `MS @+m+DY#)Ly)2yO 9B:I91ON0%!?/0 wR,cP˛b6 Cfd.$@SMFGH\ֹr cN9Wst6b`hEiv9`+OKǭFӯ0cK< H=I4kdoLh~V#SA%%7p$ΊW]m'K|bI3H\nUd?|&Ű5Zmp0=~'Ij*{5gCZyۮV"  Y>.$&[I#l  N KAN|W@l[5zȋ'u%GUzEiOpP/m[ 7&1ݿe72Bc'!;KeB-ʺ_]a(,36`XKb&1qc ;~_\bzҲnr4 =H/Ȕ3=H/ɷF# >_[֜=rE_r/?cbFX& ͽ8XĖ&ދE&Co#9I{!TzF4+ ɋ~üϣ !j_%"dm&|!SgY9_?IIKOxZp}B& ֍Ώϫ'/ _jYFRiއ*.#(Y1ce d/@B0Gz `~T8i@lK6aO>T nWoLjD!PW5}6d@K@l4^C6 "q~?O?^7Djm& 2_09UT~q`BV#i  &Q{vW4CPJ(Aks14#nԖavG yU^ J$8>I&kq}A O 2$,?}#r\^/) **!Ai*nڴQel17\; :?Xh;^ GgDbz^ BG/F xwƌ|Ѝ!H_,iYQ4U{˥]d0W i @m5P[zM =,u!P>%X,W" sy:*c />5WmT(٦+9}b*E׿WkNp(~ O d猳ܪ~'(jȓ_(~479 _r˗'\(H=P7όR5э750lDl0UL5R|'OS{):$}t+O[uzthVb)bQ5:іb+v/4-)x(%d-\ [GbU.~7:ݦ5~O%̎kDNj┉A@9Z$ݺb@A.ЩҗO=F t,@ЂKjxJ/~"x7`4tBԠƓ1kJeȉk$H? &r@_}]kbxÉacasTG1g{ N8reݨVS;xQUv{-@TC& $H*=T;Ru`m8r] rBw%CQat^ⳋд)Pn{rV+YhN mCnzO|(L4Q A]frDkf-/k@RZ 7ۏ 4j}7UE>/.m7-539s1@Bz] I׷mU]^Z_r.v#fRz~_9߿k#5iu%7[F 98xv 20  c,Oi\1-Nk`]HVc[@s 7-W5/$qVE0%x3;*h. U Y1)NڎGEcm}İy$v*Xc<_]r֢s#!DX$IR`Yi4Džul+ Ni6? a9׌شBG(*`DYԻ3tY|" P5_0[V}@h H:?Ort`zDh3Z0]{R owz aK/^̟+V[AYn9h~BՎ] |u=^ݦ48Df~ 瘄e{hʀ) D /\MDsz20V"ҶWWG jG=8n`](0sj9X1]oXl4Ut>@"Taa; n9BxZ)F1fX ,, oSdAqv~I(_| lɝM`F؍'וPR61V-'SS@h$V؎uW$cJ1^ZӄFc@Nqҗ{@t W;vXj$O@(Dp+x $;K\6-i):шwYu@С(JaOO>T{g3bX붮mZq7~P PFҧ:5Ӿ%:jزpW<eұ$~ `{VGiJ:r_9]'d|13~(Tf'H ׏ilK$meYv#9Y7_wN469#q:S Ąl4S#6 mio2Gk\_[h!9)Pw2d5oԁU3lٲdN1rj4#IE X,3 > q˖7cߚ[wo3e @bCw9;gp+l s]<W( Rnګ0x`ӛ EMlx[5oRi dLiyyqnsi[KѵLcH !qmAk|INV1*ro&1lFԜ~,K"+ix#)˹]L}d'dּKFYj gs45o>Lך`P7YeEFs-QØaNsz-p"?;E"S+P3Z äx<4Ĩ450Ƕw<~hrX֕a̺qf}@!SXp J@XݦFK>h@ *346p*|>Tv_%cu謍]*%lk'ag 5\,qP8VR aD9WX׺snS[4D ,igS?,IQoQ51:{%`[8zӟ rb+4:YtCmI>"0 Y=K?ʯֳˍGlJ>+BSIHw{4f5)u3tBYCC{hv٭JGLz/Zs֕?I&49.&GdJ¦ cɝcY*yꛛ+ϯ0ל6_ˊP UwտQhkqݍFQu>1T#kK?CWP~^.Wr\-17.A=QmCV6-C-]x⢟ق2|u[W~x uFkGMM1$#gÜzI@dm[,5>AݏKi;Tw klo NHk(H^ջ.gB)!&jN OgLhn= }/b~2ɳS;m7uyGpEg!d?*:=WJ=v{/`OOߐXڄKDSnW݌ n2y8/`u=A'|*dFع{p >Jmp n<0i!ǺX{@HǛK\jS. <lfM2$AuhG8!k2Szk5fͰy{=}05o@Z0MVY)#Դx{)@]D;Z&ysiwHEx/(<.b5Զ8'ں<`ﱽI|Sʳ= 64ML%cS[w $tTv- Ա݀Bu{β4eFsz_?A nHYz.[f7<Ãj#UěQ{rǙYix~ M%t释.{F{2ɮUAs*P+HqLG>7#ˎҥ"S~ }{@x/gL4]~c ߯9hN۷ZM/#Ѝkhf} 3$E̹MwR?IHJ"cM5b#i}>j2AlڥEQYMG A90Ivni_d U,PXJ;)Nh/ / < @ZagGKN$QYCuݡ@[kATYANok`P e`]ٖQn*uR!Cз>7"7n Seoѧ- V_f X6AViQ Ĉ{8fڏ|4.6k8.yc/l_ W_7u=LӇpV{I5e%z`ma~diNߗ2v1֏xN{z&z=&j)̂2=]gYs8SL `?ҍݘySd77 5% HFwGobd,XˉzC5U6MxvPHKgQV3qm\y4HFn+G6=׀&D@ KYo kP%mMtϏ#a3mfY7OoiMt6q+phe4d@jxk"2gLu . }QDurMy[q ."M<Ή]*TbLgi̟Ufx ~E\|jL5XX0aQ@z o(_]^Vծ(&H ;tXJZo^_{3.:QFn߅ slGGGeݘh$>XPJOȘ@#0 QuCz"(paу6fؒA ChcŪF~ċr҇9Q>L΅Ƥm{`㼋]DT2@g4\nY*T~NdWZ)}#ELt& Ri,2sMb(m}Zzt֜~_}׫VBh,nw!d8VB=#I Q:/T8QXZc:(1q0vi'D֣auc)9iEO\6bj}O,{S Ȅ٨ >KceaϚ'+2X_j 2FrOPIeTA=%Cq|Wy?窮QR)1.Isc- tWCn@xx=?KP\0e %@lF”.pbidéipPW7ߡUJτUo9 a()sܜ^5n} &.iTLi̇/V7(Fyawill?|\AU\XjCyLaҿ> (4R2?wBpdp2G uUc`1CIy Of̫a*%h$""t$ =Hl5dGPfc wΏHJyQ A`26c{Pj=pic+bCvЂ7okKAlQ3_kձMOyL͉{8_v!Hs=3*HsyANNAW۟^㦞O*T=8Az  ({ĄPB}}d6FユnHY4 DfN!䬊^1V8XY!lAkG J)ưSOoj*bW6~E1}zrztݤV e8Wώj>6W/V"#&w|#,~\$5*&h>gӈ%ub!c Ksm(Rrc9ه!=0=9J9R.s*a1wvtξOEI&4cm<[tO 27gj$6WkL师R=;캣#MTSɖn ygLҝWTN !k_ck? \t^ct ']1[.^cRPJZrҧ*X7Ji& ?0ٻ;y}E1n+SbMzIŹ 06L)D9q=Q啳dI8' F<9&O8#Ê<z eo~4pg"çoszrZH)0s+INXdhfmA &>r He+aW j+{j}1Gvc.WA!Hi)I慂 h/Pf?!@;f^¶@PƖ'M3QŲQ1c{?P`$/a%Me:!y\\\SzDybDeRxB0 El_<Aؚ.˧1z7"؏fq@9DIՇ[ S<hN+_5il+gM 3.,`WmvR|cB_&`;FTIIeUh;VT4'S}L&qD hVƘ8%O9m Ւ"+*l:C_EIKY6O=GDZ(o>gF㕇o0K,|vGXB8sĪ=smLΈ o kѕ>k_6"tz?SV仼h-D֔w}~GCm( xO]WsH,m@Q$O*]Sx|桒D-4dNC%DܢDQ452EQ s{g.#' Ը DC>/>/$%??ґK.O;J4RUMi^m&Cfh'V c _:+ ]j6|L6ϰ<0EaWd*Pל __ZAhX]~z̢<R< ZnhbO] 1j"UJ0yK! rn;̼u671j dJs^nEGG?}@xZVv(ŦjR=ܓIкʌK f%Gdi۬K"IiS ;O ͼeKԴH1JF#̊H ޛ~ϙVE>w_yﴲ(_#yŏTܮ7hm n6yH 395I2zhI1EW1L$VN)?X hR ئ2/5?zKHw 삝p#O9tV*-l =Ru_\ Ϳ{ OF:ܨnO]Mϳf9}{R@M}:lgw[`R;n 7tބ N-:.bFw9lO. _wɟhԣO[5rI0 xXtV22$N^Կ^;_iӇhIn6TwMv-Mx\#-20ojT6'톍ͤw@.]y\D`NҹuXfqOwu4 ,6]=?h3j-xbTaBa}Nba$!{֏SS>ϱ@@1_|ּyqk6,J¾|_8T"Q炤)<^XA9n1][n)Ϲ3}b ) 3p ޴Ocyz?º?|MPU0Fm꬀Y勦>ۏhgWeZW‘*Ŗsޕ:m[ d?

_q Y gIC۽?t M,Zf0̺&=vIV_$7$_ YY9\thӕ!HOH՚ X>s"̈́^г84b9{)roLU=H_mϩРFlޫ_/o~3!8Ǐvs4q`/~Y[+w~8pֽ./M&DAzc `(H8$ڥ8:z}/<MӦQt΍?6:6=Hƻ8qA5` fxGӗU 7m[/0j{;،cO <&iFL|Ty;˾M4>`=":{[y'BLL@q,)%PBvf?h *@fUѝ$׋[H6_r uy$-B {tj 77PDB<ȁwl΀Rf!#Dk.N {TPL'o~$(XίԸK < )#6y/ܒT.{Lإ^u]߃j5xz*PR;_p~'qB¦-U%.?b_=y{_^/W3{Wo:~ݭu付-5P_pƹ{5I/`: [Yy M%˂yBwk`-%.xCð6K:Y'_1yof2 Oo@l"NRǍ5\`U\Aum[trIBԺ4 kW; ?C`K̼(e V AS +Z:tSIDAT1>?֟s>-eOn /X[[)9&<պXn.); 8 8zbcQRWV>L n.uh wbkښ|}Z#I&+ Gӏgl.^(:܅f֛\sٸպG(bY4zRT"uxXsxؘ]Տf'YD6dO!?XܷM `DT_fбݤ^)yeLgV۾˕;$QM\I \ 󒆙bYnR$}{ZyQ:4u0i5M}+zkx:Rڏ/;9kf0{4cv;`񏇈ƔU.[AC^c4  z+0 d9vs:Hec!4W 9@eCl'|#o/QclƱ|e0D4'ixm>쩌1I0Ò^^ۜB/ԣΜ `V=vf5ޕ]a$vFF}\Ϯ?ZG{[Hl @Xi z[W]DkO*"\gP"$)&h%SF_vkwJ풬jh{ElCLZWno|ZTj=崻ӴAߡd|p\,'Ge6kBZ*FNLۨv{nJXX|sBzlIg~şm[騲}j`3M|ZֻUuw◾9uqLcq/ah @ɣc.M3K\X<ù۵'Q|=$6"\ f'>&gS;IWؤ9a좦ҋ ^z?fr_B3]D>r!$?)6+@3pe:GM٭4ļ:YZ&({tb P2w|;\~?}r/ Dw>Ec9pUb޾>rI%m;|E tޤixӆDbŒaϏ:D @&J*?xY7VZN쏻7 kNdYX3g/2@Rzu>4FKDؕH)N ;uC&ܚka]'swh3#d<$HN6~tͽ] "OsW#h}1\_O?ji^껻 OOpethe6Bأ'5a5(B Qڸw7|{N!/Ax 5H<sADB;Yv=U1@FFJd)U@ :D k%%BMmPƣ.4]LkgWkfڴg[-г<}9R8%v>{zSݖrE^;ʌk8aa Y7{77o^V~˯4<%޻G^"(2޸F"x檊w {po [c!S @L <"2t74.1au|3-2ܷOeD 0)\2eİv ]M^UF"Jމu m=Vay?y@'nеDf7ޕ:i)^4 }d'R}*n"c̰Frf#&>#ԃ?M34fV[c܋ LIKsUJ _c3/ڎ+ƈ^4GX$y8%I:>s14f uGHd`4閍`uٖ8ɘ%OsCu@4p셇bzkMqrū}8=Q5㻻 / jQǣi=m٣$o D >DqyG1IX R̲>)Y:{}ȷ ɷdOȐd1>>tdT[;/PdKuH5: Nޟ6K%Yѻ0go-<ʈ)C!PB! [dN齫*+Ȍ=|y0<2kN= .=z 5Myң0·@_v:,׏:gצh( EEvļϊ|,+K-5bN >4FN&1uj>[YVTՆ|`kV_}3@1@uzxv!/M6c/_ ,kR W?e4*{Á* *E=GKʪ$<q0a6 @JIX7)5€sӶX:;%=ଆ }}; d.T͑5bxgs^ woRWK=`ꁳ>}y\zQ׸ p壩~E1JJ=m\zb["ny#H`w_Vb}i!yS!4Jई̩{rVo,K蓂:5^Mk>%&16eꏡ ?Zr"DR`^6fh=dJ#x^AP5 ݾG[* \9:4YyI H<Ɉ'oH]ٟ i)se}P4 .N|_. ۜ]_x,chŠW&aT*EI1)N8C4=H:7DJ 0<)K~e<Ԡy iVD J1oFRlYG!Nf~O╙EC 9ojPYW#+pKt_E-q)O}X?~@Qf0ژS҆`y?2,6~3!tJ3' ,]lڞ]~Xឆ~tżܬ,>|HCN[%P%B"WǍJrJ_q3UUD4iOˎgDc&>YTK9yS:MfҜPB֊#؂4-`mSfնkMӫѬoMAKGI{21R>175+'`YXK:V/uEDi>`3LRS NFd ذ"PJG;E x] ;\ D\xkk |.!_*s/_o/.jK蘘bP4|g2FS3J&&Ky'f>IqUL+- U֗wˋq˚wap?"u&VS$(#(`VJA)a 6bн&AfJ/gr^?$J@gժ$nQ@bDw#!W@֖DQ0[Gn{*1kwll\>ʷY~t ^r#CXHj`Zk.W `jD"y|(E*%rCjc e:*;WWB5 IJҫ{~IUi0Ggf>Qe癑9?ya[*p͐ Þ#SE_=_eh9?i`)MCzTl`΢\ho*#aH7npR݁:X0H)<K3Typj{Wl [sr>U\F bdL']mfbl;5zjAn]{8ɒbِҺඹos͌}iUu4ȦfһUTa> H?C oE5إ!6kwLUKF)gC27.i3*zbŒCRdefN)6#\}06ZBz~8[mHuM V ɟd͗)!0RVt=Bء|~aMuЋړY J': i0bF4"R&mTEրL"GYU;l0B1H)\?o0sdY{H92u"%c NM ($J$G81A'%I0H%Cl_k @Rg ɃK H[w 7C bPp HaL.W.?9 ;-CIwUJ'=GM~$?BG$|U1MW\fǨVds{vu:C:0tޥwp%&ϊz(5qZ@jaS&7"ū+ ^֍S7 ޘӾ.|6&!I(eR &:wn/$%.j!YmBܘG}+gsՀA`%h@z}VR{/" b#Tv _ 󏛇e3A2>ԿzkEZK]6WoׅC<{vKڷ3 ް1u/J6SfF чh{Ԃ/W/-cO+z"_3ou)L&9@Ņ|Qk$wH{|t?Fۡ@܉T55R%Dw)'s(7MNUo|*ivR?59}w'ϖэRPYEF&2ϖroַD&;|~؜mʘŐe$^ Q 3J3Ȉ}teBYe\3#΢(a81s##29zG'8AJ3[Vkק,)yU 5<"/7 #PWR@& I-{udC $1d/?j$bsUN0 {]VjxI{ c2NIv me,c]*ۻE]s,BrD4B .VaUOeY~ ^_"cmakgI'/TXWTS+Ӌ JAEy> ٰEcmx}FSmEv $auqowA ߍv(Ro VvOPw_5KZJ_jSpFVBkˀDfIX7/^T_}^xn+6#_x%ڼ@[@Kk/9_Mdn-^`t':éD͑!0n;_ݻé{ ouش]ȣ^Uluj1K>F Q BU4{wz؇ M1 /}1CN_Bqgyf+RPiHLoJS(.Ffj 14@ ?jZAB BR$Mgy=k/Ftp`taEn&u Cvw?X:~i"8w -ZU(2ǭ\!g}";n5eUly#*TFpa)|A%NP}v~;/>&PK  NMݦkoW\r5$eL( waM!i<̍?4Y pat#j$֙{=o[NI.IJc]=+X(06E Q?1/0 }67DJپUS>o#)z}eZ9,Os @ yRxMy ޓ:8BvFo:!Hzmo~=j]9rj{ =3DƧRy-\5!D?uUyD"ӕ}fbQx={_L%1ʅ4-SL"fnO_ qArᇵm0Q}|"JV|voºy5$x҂^~; HIz׵ z*\\n YH^@o`->Ov5s %B;TgWJ'@hKX H1f4ڮCfbN$ݩ+I^,J\I4ꚍkkghFcf嘎AL6hVԪoEU$mgM ^iNnrR4Oa4UeU]QьENy)#+FMt#ak?(/'wra"r ~by*'tF`7S_f' DalQi$0oM`o*0&AExV "Y=Sq|OHOSH& M i' %(kD}Jb[* sJvhlA r1 h[']Sw u#G$J؛uebÙ"gDJ.fƏ:L6.P SYX7q `Skc[T)uDn sh_l?妼3Ƅqa}l7fnVfܵ Fl @? ~I#Q!~۟H|x妀dHHQA'xz9=h 3PLpQl5xJO,re>MNLdx7֒>4+mL,{Z~bD'^JP*(*%9}<{ wGAWN}unlXd9kd<^E晓^B@Dv]zq-ӓ]*N'&ۯ4z z"'JD1$ȑx{[__9&x1u ]XgQq7Bnȑwg4I#bamn䧩_mmP8`B[1D.8RBY>DG9( eo(;1&jڨ*K4:'5Nhxv p5.Eo3jI_A-U1b9 Cp˫"ff4{: 79tz2:OƫizGavIx&3dqi꣢V1%Ŧ)(]>| ?hZ6J%n_˿!GV.E+ݥٟFT; ЬꪹEK}`$fOdxzxT.kfZBvG]wCbXk3{SqzbHN>K {z+2$mgLgsgghs$t^{שּׂ+++@X7Z3`?)%U%$T'T䨺/ }kU3#7Tj:s8YT>ΟgHNKVu-ZA}$f-_b=kP% 71leooYchC1B. 604"B|σ'~~9r5Mq{/P)m?LJ lJ2GׯWۛ*i#7)J:6oo7,@ڍŀFg-y@i%5$Պ WKO<G۩oϺYn"zQ>Ӣ =N%m P%$ M;IE%p*AEag0$ *m(@Ri.a`M~I] ^\WoƊO"zT x\';;6cJE:p.ΝĤx &FBS oE◄#( 5'KRIL-fmFo(>aWbk%*o2R`,9@1xzxu|?R&#J{SbT @sE7ccx?c&'hk͝kYqy"zΛ=BRw3OFUUYpHSk\ǺYߡ}hzUBjX7vXUDwBLUSfa|L2+)Ғ]7P6mXgK4v./A;RIkxUC/rm)_gVUքEu.2#R]qUOTWc{$u<ܿ͞(obw Wv!հWEtET6qLN5.ՔnU ~*"v4IN5p/bnCIWGj11eNz<= 56h"`̒bwн 5-,N}rFn?ЈP+,(%HBY,ddD,r˙)F{cq+ffZ(*hCД3,5\BЛDB8J5%jV֙Kq^`L f2,㖎@R9$!a_\<@t= i>PUZId!Td =O8{l7K!&m)z!i$1Z/Uzz8O]BL}ufEe|W+(Ԁt*!i=/'ʘ9sK m.>hᴯy )<)^AϷf^n>[j WL|aX m Vd&EFsS|cWb0F/窊|nkSGl/] עc/blݱgً_W7Iº#$o}Fr;?n/w$^“1M"&5G~0#SP7u(!VLn7r4)ѯlrrㄼC9݇nuն =2UML *;vy5UBs1b h_!F|eGS )%mﳮǥD2جqn:~6:F!R'f\}3`.<4xmǏ5{T()gPO(ÖanQCāB %h@O머PGmzIoe>UpN8hYȑ<5>Veo#lT&H=% gzHx1fD8n[zetwnЋN2 U넖SSA@z[ J9Q i` @U4wGuDɀwճ!C{C);"j;`]̘ hey+ ij 3NIRR^Uz _;;[ko3 U=rfV}U3WƐ1 @| ^J耻#@=0䥑7#nQbr1z=43V H6kѹoJ: '儤d?P\$vMďSJu5&.n:=`c&전*\x PpvR2i4O/ÿlaDޠ/R=i 6ǴY˞u!鄨$277_/zH&]MF9ú-drS0D&,2+ p-Ƴ6kL/_/ewŅK̅nj JmB:7I%@QJiw؀BYWm*+;޳{Tm3ijK=G} ޗp 4d}TC|_6IF H$!0zͮ/5#]]r;h/?.kOT7MgH~PŘ 7ozseaUKN/M9*oQh0mJQgIEN4z,Ad*ZIi^o.maj4_޾ؗm/,%ۻ;ԃngT|x<|dWԬ:vcVLO5F fR![vSOW<@#~K{H/j5 .9ًJ?ٳ' 3_>|NSvsݠ쉹 Q5>ޅ|L7_FM;37(_v^g k4^>Ѻ˝Uʧyw?ߋUk7S1Ow͟b[%~^}u_]?1ޗKl@l35SL)6 ] H4ķXOf1M'ѣT}m3w<+}{|*[/N}xH>Ud0`gu`ݧ %"SKrik1Z!zHLY##+9b]aeT&F3!sZ)Z[rONHR:"a?Ut '=1z16ŦS+y@*މ?To8lRUVûVʱN(@|tYC٘@O1Rvg l-J NfTsnoR&45 B5QJ05[8`;IyumH @ gh)1TLҙl@A yv e3Nx:S{|k[ʾweW]]V@ az?F 3W|gst~QK/yc-52:dJqk\ bD1*"}lO dm%E:0!=&#sj,JR%Xosh}a>1F3f |۬S%{2d>*RC;Tp✤o5ۏvYIc gbR"4JT^@pwjqB+n;|ך K^F =WF*y /}da4x,+9"jJgf=V?>+0qK2@Zj&W?c䳄;_uCFF2O@,oג|$d!uVѾl1 iZo.RQnto'U^0ҳ\ kL]F0"'Ȍ) ~)&)!aTK2V)+"WS$npޚS= 0O ԑLFxU<WM|]@%Nj]jt53O ` "1ұCbD8^ӑ:spD04֪"~XR30r`L^HH{NL#̓E>닧ۇȳ @-Ҝ0:A }=/}@,KXr<I$d*s+}Xkbxވ<^]٫zy)Lɜ Z7ɛhsei7 .|z4CJFNjc7jv=>C7'B/X{\ViEXkgn|@52~AxCx8 pzKjVI.8>NaP⣧ r;5PFmǐhP~ hI 0ĺ|$@{Su~ƓAF$uޘEOYAgO{}~f!Z PO1VGt7$&G_՝Ek/gtˍrHk]9feܚt5|(deni @C2HmW z2C 8UYŐ7oK>8~Eb Pa8jgfOR< e UPJe1&060imNk-uS1`֋GDJOộy@6]__> +SnQW?A@:w"* zwGLR&q!;Jj{"S2`>_IZ|_9ba~ BehrP#r5hHP(q6DBϒQu ѹTI2s1V S! )$`I$Df]9Xx +2{էh~"(ȅ09Q }Hr2f3`(CH_KNzy):Td d"NLp=ʬ,ϟx"Cx&.D_te[ܣO/e'x>={r|‡9qpȱ(r- l 2MNrrm#5Rk\匚v:[`{h0&JTn6G2+p1n!GxDN1m־sb_)M Ϯb;.}]]x}[JN/β'JLz+frYk~gɵh{УU!滋۰4 2i8(?&]^.9},3<Lxevpq/`//b9gzB6]qnݓlKq,@${nv*@Q=6(CiCоߦ{fa}(;nz~voQzyV\d54'@>VlojS"$XjY! 4|$ 13fR)gS "ھB"iB0T֫:$':N㇇X2 *1rSmf@#XcS>7HY0tS"o?}b}LYhbPatY]^!k?3C5RhF$|`I'n!OX$PX'k9:sB<@lyJ^>3͈2Dt6ב=S<| 03#_t2|zogс{RpRWA.˪̸.zX{Xڰ|oW&oHNߏ:LEl1kίȵr`;GĤZl[k&CS  xC+oﶩ˼k fPGח;Pkl^^dsfHVT6.MM㓕ћ\!XVգzjw[l*?F$n>fbjE)v\y&j5zZx$#g/.d+4`L ;V약F;A~_ZYS:<1PPq@^FB7/zY˜VCR~U(ڐ n;Sz 2%bC20,RJ&z frwrA٘*Qm24̜|V:C]iHD/t.,Omli߯[#sA7@PúMl >V^Z%HAbhaI:5 YSeھXȏBJZQXݪs1VnϷtڲ?Ph wze<1{'}QD6MѪQP+BfU7Y9)lٰWU ?`K;Hᅚj>ɳwsSW2w,/wHHјf0MD-DWg|ЩPw'w=kBu~~hcbh/^xES@zd$*5:SCu[')/ Ӎ1z 9#xw!{ve׻.^\U4:"ٞAH{=0YHM!rwF2I_Jbq,ӂ i44uu ltѢ-UU[MF~RhXi<& ƒ25a}A]V٬J a-ׯYzY\HnbS`D>*HYM_7gÂ)TBf;fֽASR[5<H,$k2 .0Y* ΌrֹocH\Z42Ebtg`:|`]>w 丣0&padK_wOEkÅ,YVlA4O ,ƾ"G>[zg͈5_+b4Hf6,o-n*Ϝhm[~._9ڤ;}@ E\3!'NKʦqV>=b}Mvגd7 %s%ϳ ^U33(>MRMf OſRҰK2'<.~ͯ 眩`fuuqA+S{4z BMU72B\9g3zYC,ɵhI2=S_~҄;~i7ihf>So6o Ӂ-H<]!q8^5c֟BQ&#iRK  @%!C@qV!'0 \Ãr&BJ4Kytmhz.&Ql6 |._'h%w/Kgt 7'nLf?b#snqzLwe&dZ0"dq6Τoď@<''߄Gio,KE͢L!zo-~I)i$D#Z84AR Ҧ]nMqssz벒~7 i`;vB*[ @v"BGO>@@R쳔%H-כ F ଫ}m3`DHFJJQ}1T#,CF bn+ *Ť&z?Lً?\d/0?SFڬ$׳O*"hF)Fu|ꜭkG)+7DmD"c@CWm1>HMV8~+)6Mg^IN)d~3BMZGۡ%TĬٞ{klGXbb['w- }>wCC&f;pG:]"#O.'8/ zĿ}@F.W[C4 rz}ovrMv% cHN2r CB3#k`XeM÷iÚq}*qs8#;3m[fL`SKK*+]7Em|y =T8v׷_[͸EO߯{/ۇ'󹢤-VT&o)="95vÑ:+(e!RΧɦ0d4:) $yN:Aߧu(M$7X~ :DV! 61 lIvZeuI|Oc7 AHш@U>uw32_`v@MZ{٩(ޜUF(fG' #cG! y`7 nsɲ>3E6JYsBVg>G֟,>C;~` ns,{m̳gYks x,_9}r6h֫q9dt)%!hUM,c; V ~|]\X:JN|WԬՇH$f!ӕ tobyU7n>Hoߓ/^.Q]{V*Rq, -3ڗ5 Wz&o$7a5gx"YorAcgץd աU٠]BKL 9t;8ݤ~_ynbWIŵ8xV=)Un+$1=3ъ8'/RGRR? )M]a8&[/ٯR`*/>mzI$.qߘW?#<{jJw9^o n?uNPn&wIb īR(O=uKH>e9A攔St/6vP>ɊE+_0+1 ~;7;q0.RC,G5@.ǖo )2Rxc7_qT{ROߑ%b9 ljgY/N)nCVr?l e@UWhB3;(SB͒c~QZ(X7iӾ>`DGZ"$YVa?~Lf3-6 k`P 0wc- Ɍ#AӾe QU*ޔ0rkrJ1^/떆 O ^TAib|ɟ(@;0%P` *tUdtKmw+WB l}I5}3pf*C(RW'RC }^)huج+##W釮h{ne"%a NM[en' )D՞Loʨ?>Ņ,`v퓙̶/S͊Ka)M'=dqbY,N翽+6ШNScU-h1xTT#w3u}Rxtawͽ:VbDDPPu =MyJ7sZe1.fM&l I+u #ybxfanFe/{³ޟ:N~]=Zuء Xn~p  8+Α0AMy~R>194 ǜL0Z=f2o(XUl.w %{=c*9i[d}VFVYQbV:H'%OC @Ze| a]~F(@f0'.Ҕy Q9ͪz3.$ߍy1 eƚ @ }F߾HRC^ E t{8O06joP4" s"周Ch@$ f @3B%rSADJsFY|=mӇ`<~:LGV_`T.'p! uRv:bXŕiMocX@4սʊv<|՗?(7 =xGuTSQCrfEº)S̵P\_[F@z(!gǮ!m-5ۉ&@#wW{_VmFg bW#ބ˛97ǐx(X#˛l˘"y ^7O/=7FHHm5!1RJOEkF #t 9RKtvT)\ )Ջi1_\^Ϭ2&aXrrDފJ]QWIULoy>Ahqx=v'v{w,$~x Rçw*βhV_!?L++=,1)WiMfXvDՎRT?au_cJîQQ'w^'QmS#MJ8\K[ a)WǁQdqq4rk36 @6@ 1:9L?\ΊR2DoBiɵ3>E y HJ)EP{$کl P(DF=SdI'CpjY?^_(&WW\1B1PSɃY\yePwZUszI[opfohֈF x gC!$c(TMvpP@T! o;j,_c82חsowfZDQbR?>fqujtE-;>kHq֭YEQ.i?beP`9=ǜIR7e*/}bF雠*a1މo!\5i+cr;R5[ߝ]$3:i#ĭcok7oOIR5tֿro/P5ah+2޵CZ`O$fU,%y.na0A/tkN"K*׮_E67߽(FiYj況qh|.=22Qxf{;nCtjZn,K liE:+.m+'OqaM*ƪ޼ǚi[vSv.`  k1AFs}|'cF <m@UhcB~1܂0`\k/7e,fp zbL@PјfV_H0ȫ)ɍ[aw(̟.ל2)pHJEMRV:mfRI'ӨK0>h|~eOg7X}&@v> 9$X1l2@VbbT~guӼS9tt'!GxnZ)&pB* ]Μ0g &Ya|Ujn!MG!]A$KL~dvV.kҪM]NCdviGՐz{zZ۪ܾ]=Odkl{<$^xXW582dfK`S- Yqzo٫7Gf_|(Ǵ)=e# hu}Nz{5a {& v6bWcs筆N0@Z/MnR@]~5qk H=*r/n=ھT:rL} ')`>Lqz췲 $f9A?(.y{_&+èHe|hc$cM~o2\Vr`x[xs ZxIe\Y`"wV+ M~qozz `^Г1#il^$!/I S:Ka3nwp 2#2" & y8z0΄ 1Eٹ4zqDY%WB)Ѯ* lRgWovp0 \e|B7>pW^MENgF1:GLXaِ+&U!1yۇ@^i q #ґI8B6cڢ^NĜN=E2V'@zYf]bl glJŔ4{Tr(eN~,+~:Nqϗj]r[9US6 5e͖=Jj Y"Ma[Zy {`,˘/ɴz"9{'O..v|ooa+Mp)sv_ RqDWGGչ2)ңӍZq hvTO̟^\J%DfAݔo(ƣQ~|")&xo `1Wߌ3šM禡:,kǡoOU;ȝ|?bڋ6 Ag]1HGf-PrIH(n=z7l%ib0vc"f;Hġ}2dڔSt^ʚSF'X:wL z77f2"%CaEWyk˰vSsjc(MJiʼn4dž ' h}eadI̻;bx"Fnȏ8V-Zk D#O+h=5 m ZZ4BҢCaM w@F7d/8/QvlVE^w||79J8xVX7E;@Ni;_\nZC_%Ck}ƓuΗ0@Pќ>Sv$ɫ@k{+p0H+sCc잚"l,QcZTyhG sR:t8WeȬ{Eӧ<υ"[ޕtߤ8YkZM{̅͜"~&;"5Pd%cI^_UG4Ӭ)ٝY^\8GdhvJdY tOtWg6FvyzSAz`ի7< 6 v^>0_mGл˚LYpd\*MTi N]T%/OX)'6#XųYԓ*G8 u9>O?qe(IeȺ ܀ad>4GLz~mL+ŋɃcHıLHfg:Ҳe0'e%;;i̒FXi;"=kD<*=[^ f{CPbL3(3#jR7ݝ< #> sB?wBq 4Af%oDfkd-@n]RXb&+yQR]ph֔ro뫥[RsCجp8b+WAzc)I}>\Xv?XEj>nR>gn]_$Ydȁ)n c[.~tʏ-e_V+7w[dyfo'xm@7vƎYvR3M:Eۇ-2Cjx_EBLֿRUugl8b_jGq ĢW<6PdR)\ !M!dϞR4ofncwMNy<iz>Kss;ҊWՁ&$?2s`ndX:Yj3:ːdv :Vh; ƽJ.XufrHҸZ(@XmhVx6^ׂ;\7=(1sJ_d{ F=|31$m3Gз_=61|vJ_zPk*]cH$RHy_}@ZqlD`jD=k-x Zs  [_Ai1)}؊;y``3qTktBKC;a,|F+ _*w̞j(٪ d4b*Tw.Nl7:b5\ϖvÃlBwBǕ;_|dJ_O( : =ūd@<+ՔאԤU;d"|TڥtXt {ﴟ/eg>>>zF><#ߣ]2rR}̞n<kySWT7:!YEH|j}:EN)Eۚ5JBvZIFD0'73QV=ūF:p3g6ѻ}te&]hqD& *;LEEeb:J]nMXKoә7,= Y4"Mvx.r1Fe o2w3U @GYW؁3_(.$[A}+:o8fkHˤucEr>L!:66ߙ KX(Wp2aueɭUpghno1@ee%VfYˤ]8xw^|,ϳ!(ѺӗY.dVEMM#S~-m<f}WF41VݛU7R^cv;=!X<p|>?p;WVwMԒyMc`[=;0;^rîwI@)n52:/4@ žuśS}rPHC޲X}Y 'V1 n /S @cT*8=* q3D.W:{rOS-00BMu2>b\) mw2Hdp\]_+q:JNFO8A d8F?#X+J Խk=jdL?tI5UGJ'\d` ]3үKcC6r9s_goWkK{i|nБqؾYj54;/' ߡ{vl"{S,KMNX_c'&l|]XW,PОznUd4M{1Jn%|f)9)L͌<),Ji!?ڙ+@'?}yPFC+{zBFa'*?Fٿ~/,t&合Lo!WsgxxT 98ԜNl$Qh\f;v~5В&h i7'} @!hs8)R̫[N6[*YYHkYIܰDT -`/Z㾿olXd:8@ܦiVdWUPaSjW\Z(pօ U\MDYºUMksC=%)x>de*}42PʪF ޝocYM%oW84KZ)9iRɓ>zm:P$@xz Cba+9}N+!ˆ6x}Z٘2:HgffaԾ>b7xumޢfW1>HZ$ɞACE$o2dP#@-| `VA3JC9}/q$]t@0bM^]bXmc[#|]g;Ih*e'io9ܾVGCxVgeQ_;z ٶ^lgu~j5r䶬с܍lR6TPq픇8q 5@)(žr|p oF0BЇI $$Nt'yiS Mz9tl% @8bMU7PA:[Qx *:e=ac&s5i,814T3t)Sfl# XbI?EH 8%bsR7BovW>TQ YRL~-r&r:G~esڴ\59 q_!x拧YiNgk_Am I:ӿ6)Beӟo~@콌=~wg_JJ$ )~Jw(@M+[B)NÖ]N9By^,1SnkeMtu*f*iP/dn,%O?_zQ~\,0}wL̋br?:%~\('\~yoTRO' {7Tv}nH{ExHVҸ7>_k}ZƮإڌm@zYuo*yf$x,G-1h`u{[ʸ(hn EkEܿLg, }nM ;:Ƙ^SlS`3M .e< $K\Z4VQ<Jԫš&SMxOrz1NR%"8xuP@2tֶ?̝P"? 1Y4ẻЊNI $HQqTT$xԽ_iI($RDz|6+m I595и >g}Ns+GN. ѹqFxA{ v3C[ʴsl X?`3Rj6=Iqo_o;!~%x4 c_H)5-q' 0"A>9^G$=GE)uֹR&RTlUyMV`QRFLr.UXcr9ᆧքGlo_oǥyi]6uئ.`dp |`./7B؊dFQ&NYxÎvHPGUwWVϯ& V)$II]\H1Ȳ[ j00Ff5G{cN{+H^ $9vܵ!Yߙ)w 1Zao>6Cdc|XdU)IN/Il&YUR-C*uSiBC,.+h/Jݏ PB<,hVzSf6M| KI+t|!j;4CF)pjcoR!9 on{*0X@s ܕ, Oʔp1Ƥ0cg㦊')k"U" C̣>ᲞoAJhsdfR+>M1<']I%iiZx*U؊# "^UӽSY'ʫdPHp/f QX7]T--uj>z|;)*:Lz;mģ?@9 K=Q[]YQE軏V/j ү;80I&Zk DG1RrWޠ:4SIgA۰~N1Nwݓu؝%LuIB~P*rUc֦9g.Kg ºyS(Zƞ>1y mwSϞ_7gW *?iUsh[i&4ʩF̐n ^mw{ˀܴNM@zYNKȝ~Ydx7 {b[ֻF CIR$D!C#F`1S[ݘI+s# ;Qu bf$7JcDl%?jG2f> !{D*qHԷ/m1:-pd0)ȩw jx/OeHI14:gU%CWo9D!IW(jU2H(~U[*n|e'+3\(=:F=OVowR#_%%{ju}Ltk~EMC qށ=3 FF4夡Pc!T1"աKJ46D@ͩB"es4T&}L^D}G Q[BzD&;!MP@0"-B @ % ="'* M/o~K=KFZ LQ|q'&xR| 0@tsq0VkMEdx'i9o_opmVk0{ǛnZ`̀X`F7oMK+=tBw߉ޢ"$OsO6^#D.SuV=/u-H)3S~v/"S8| : st<]x*l~ˀSie? j'{џU!Z=A &џi&4GOkx[Į$ց#7+n/+b H_ح<sxnR9c9RM];8zs쁁!_i כw_8jVJj!L?47Ntj>C%0#up"HڰLJ%jc*ewy[WºB;ux`~ u 4Xsؔ%o6LJ @](Wǻ䔔}_^`NĬ"&E'Ք+,]~Yv -<)iV^VUfn"[4Md~95ZEJH@t>D pd"E$0I}۾)?pIrU2־#K'>túGP@Y!4 lVU1?5I_b)MeYϊYYVy~F5m GUѿOsY`P8UʳEbK~dn`]YVwO߇`kV gўىEDאwBE=-6:ȵrkѰn\?}&c)~(EUEq_oϷ @fSL|yݤ.A{dQGVhw3һ\knreXJswv saӁR9N|u5v`O@GgD}6xhĭY+13s!{!dEgå(fa>{h4yдp\Hu^Ȑmd>5@ @96S ejd5sҙYQr?;I}ceYy?EbS ,w'گVF́i{am͸2I,wfT⤠Iw՗ elO?Z.H?~'ӐEZs4jɳmU5Dאַ[4Qڦ%w^Lؖ2 mTlx}\lQ{qE 8-.D\>m)4a[CVh| a{Ceԧ0[\pPpEVo/36Eye@W @ToCjeտRz;{_Z'eil5h:~5Zfa|CQN^fDa@ 8)z[=bH\L@*}_^lq% <ߌ?E(t.*2Oi^󀴤l/exJw }njL2[뽆<9+" ao^C#{HDl'2ӱIt7m C'WaM1k6ZNLh-][k++uraR*$9dQ9]Z@e.rn%_F-sGyHnaPbe xL w}gSfRD1?զ)m 8aq? t0 (eS >Q}5858 3.zHX.jHS\ & C$`%W$UV* $+};y)Fa: R!oO=I]1qu 53mgYM $¥-!v }~P~3dMK kmhm1^e(D̑)ՕS(pY,ҫҥt-^rA*,77>{Zy&D[[ f6@04|R4b(ѦG#meAb%<*,|\b!gCSZgg~X]N&#Yq`Cm> nJK9KY)J+PW`ƔR/A#l jcf0%G"MbwaHU\/Z2EXN>~ \Fu/{ϔɷd@l W7kU?'FJO.SY_NT]sAB6ú{7Ʀ1gx^uYߟ\148By1! վi]2yr8\LL,U;tygff]L F &-!of'fpJդI2S h{ ?"H nS1"i4lYͯ@ h?qJ!= :, *8حDmN I1l7;L@cQ\B$Q$K!$Zq`D x$ݻ|MBXeqBm_^4X):qr(׽NBcU( @X[0l oAUҟo~'I^@<)ˈG㞿&v8{CƧx/ 7e,?XkgP/"֙9F*!PZ}|j~%*L_ghxsWHcmj7[OFE Ǟ~5lZZK:њ̈́h= ia qƶ_/̮Aq55/<`؈E }^aՓW , 2GGws+8>Qr/fZ~ZdvSVW(XBd @pG@Ϸ/4"ur[ȋ`+UIbJۦ*JF奮6qE5 g`FDoڃiElmNoE>&RNbՒ7ceUTS{,[Qݎ{K!F+H~3'DqHrڞ#AL"`=`KU`G8;23Uᖃ~S,$Ob9Y|NOx>}B3Ƕ{ E$=pxuvnޞ2 mBT3;cE5A5:+Vf6H'١N琬RR@r)^>C;tvXo9LD/ JDٙ4)%wpt〢cݼ } sԻܣƺZI_`>`d4ov2oywZm"dtWKL;/X:@l{%_F6/~/С`:Ûs'Z\bCBzwsLko"M]}SW2P5PH^h@~Qޘiw_0ղ;kHiHK5!HHNLY3vxoyKƝ ݗQgq+e9D~O<@m*줃4H`Tg8`؝NF ޻_45˵՝O%®%nL$}m NR>VDG{<g_-vJoOe,/*Bu/iUBњLk29I<>Nk1ૅ<\dF*E =8S}o9o0:0iI@#Ve9)Eh-4p% ! !5'@A m3pmL.5+PX:(Tg|Yfa'؋Чv[;xޘׇ%IY@dc NIgs6`h}Z'`ab&ĶN\%ΖA4H-OcT8b[n.s,Y8u>;)cc:g};D_= @ 򜚱A4L'|xsr_6{!")1n¥|5Wѷ>wJ҂|8+K 0g?v[c2ko\5u+Ode,ɫVo%#@nv]n<p0wyQ4/~{_uV"”6bzU ^ꈛlÀIly ,˯,d3|Q,eM,(2c8߆K!':Epcyork CFɦersHB󮽳{xߦ9N-QZFs7L?$}}+GO$jTcJ>y"\^GbY[eb,y̆zܐ.%?:K:j(2Jñqde8 .;~xxS7э|MMQ!Np8t“`:ӝ?-AH1} h@| u7n>N.u4F|C}i.Mӻ@k]'7|_Z8V5|u[tB>wrǀhi{7++pZ[Xf ws95 D0wP(y@%g@v(ExNlp'P@yq+1"5-KfLP]fhk`%^V>/~/=΀pK[kQe(}^K-<mSyQ4<{QůJq}߼v~M??J~P?F ;'`N$\(mAe]} !pSs!Gog8]*0G&ANC' `xtoQ<Y#!vs^IQ:8OyPC;pO)n\.$9p23Q}K7 _P:̦Whq7=|W9ٜo~7<`/aGՎ˜O?烜3 + &v9 ¬d&uhH /EIA@q Iw|Y6T}'wxI: F8>:s=LBDL p6S1qW(AԈ)9mETrף~+Axdžq;ڑO8~,=%|m.͆_'F2ETw۲&wg]@RIRX35.pyGDEh9mx.I}?F__)l@d>$Fb]bBhJ(,"X=*cb[ g`<ҷ7~ vtP8dzF̀3{_#.ˡ`("$yޒgݫg9gO|Jl~ _B=?K5`#;$R BՅ6It"ZI'&&yƕ xw>AᄎAR bo3!5*8Q⓶컚93 9Ҩy:<Mj ei8a'8"j!j κlCCYz͚:ǡUDG&'#z3[N'ڦ/T*QBɹ[4? >ޘ)1h09þ y2<8h3xqGao7 ϡM\f/Y\DOy~Wѹ9h*nƍMmC5@=Ib m dI][A􍆜(կ^P@Z eg&= C6yQ D"ZiS Ċӄ $ eQ+ڡ^oy% s@Nk X3ҢS]3ԍ(Gַg}xJ+Jw Y7ƶquM#b݋P`<[Mxo}-׃/P8f.{|7#+x9=oH$. I@L; 2A/U+ڢ1ͭI)o_E %yB_숋Xx8Fr?i`9È5< =?|+Ϗ7-噚Lt1"Nrˎ 3Q-#EгY CTBctb }bEv4wdi,iEli;XOݓ0q;+y}|BH#=7:$ ċ#-T<%ck2;}]j狇zn˲(¤~.(3Kh4\ƅ<E Qem.j(i';L'=xU6CF.V{??p$ԅR>5= m<'`9oێ'%RmΏT mz_Lh8 ȨD1rG0V5'03n;l~nOED5u FfM2&(8&Ke1l"9Pph'u(29韑Lr!pZ}6;wKҟ6:o}N TcEY(9.3+>`!{Pfى6҄ }+|l,][bouV )yMn9dV+Bn a/JBmu9bg^DD18*"?%4ך|%3yx knKe7٩ͫ-f?3h`BnkXjOlB&׷f&;ٸmDDޒo|UYJcN~3 QLXO{D)d%7݈' 8~mdb2,(+ZS0;Vb̸6iKUq_~nۋo6${w*E1oOrS39.M ]bX~%@"[Tm,09#i4~!gɧW_h2baFAtq.gbeQ5 PH^6MU cs_'Ӏp4*B1z{p>>zi\dϣ.  qؘ<5#Z 7+|[Űj$ FZtI[%Q:ā-ewP կ<3Hڎ_0n@20c T~D1lBTÅgw@N5ގlm0v=;ЧH͛=}M%vEzjf}wE*eʧ`T8~uk^Naު`qVP^Fj 7m;۴?>en/Q:}ry1QN>ݱ@56W@91ԁ6,9_!f|G x1.xDجDŽV a9,Pawwr״$e]rQ[}`¿9(ynƽ<3=B|BHx&D³!T5 أFbX$$:sY5hGq`<c=#W*nU댈}ҘV/65щ]|ȲS7nǔwѕ[d@yK@#3rīNQ=tx\јp 2Kt(( "w ܘX+ 2eY: /XjKc:@ B9@%;YWaONM/\uՎ:Gvr`:#J56!Q-pMuAY%'^ەJY[.FɌ$1ypS=OܼHqQIaIa1w@sY>3]AQ7m\#vk&G7-1ãE11걳H}qR .?6"cl4ٝ []b|2Wz _?qHXVg>1\i>,Q6ǩ|oy= PdiJEɱ엢? ctHN7tH $X '7!28~85+4nlPvzF5uYPZZ2x<,AMEXX_8/!s\Q9p9#]M8y*ME'A؉@/h &sE8UaX̄l 929d/.uS_zx\qV 1[)jt"|®4^sxwo>mhXL(ڟ? X@^ZKFz;6ǀqe|eo8o!HR Fl|qQ ZEF-Qz]!ON[u[$>.}wd!\ױ(2Io6©4/weו)RҒ=[ކ=Kb#Ez^z!$Qmx mu?VZʁE~<C&i:G\Ov;yE~L@U8Vgeя'0@4~VW]O?,˽]±{P8ɉGO$Q­qr7-,Ϥu;j'y|MQG.M^,c݈A'tAfʮYcOFzZ"bz>[=GzO2aUH%Sq:`)~S3N՟tR5ж@eq|Pq]ouz5pzR*KtM~>#@HT_ T-gUoʲOx &'fP|MݲF+B[G[ -Dk(yIybU#yD;m܆lN \Q7& N[km ~4fnuVyZv_-WP Xt4n#ɉݩl~6 +KZjl{Y*Nh*VhZ;0/qe|T5*+#RMro/DϟEX 7C=ԉ9&z2YeUJőTye Нł%UCCZtIǗΞO~P`X9>,>Û|!܏HN H3d`-0霂I'<|8_D US$} haGm;>D (~XC#ˎ#FQhQ48!I(C4AG#ѴxY'ߛyY@b|f}ڽ4|z8F yrphSFdP\"z;0:E=vG수(Qm!&@Ҙƞ:Ff16Ĉd 1GYǣ)ݷ{ \-έHGV#ocR]4iO$$p\I24gWD8g.8}fiW rKM`,Di?)JUq&lEqcq;'[@K#\)7敪ORhdCV9Mb K&.'s|eZt`>T2tDb̭-I L“W&Ĭz7E] ;knLm0=x|òtO/yL^s94UqvP l+Xq}f`Ҏ1zw=Qe"48 GUdL|(b嫜zulB-d~]FΜe REfJzb>`Sk\BZaHw8r%ӏ6UOBYb@6 R!%C+!Ξ(9vmn-:Vv3gQϟ"OC_3Lx cy-/)x*P|z 61z$,hu>} 8F?)48XT@x)@_<BU!sѽLZ"`I=wOJdDxYAzpEl0*΀L]ew#_u{ h/"+'Hi*`* ~S*Vb @@ f9WnGZAPD0BfOT_&/hSI1Xʺ9 Y{"1(-j @~dcʯ;P4,xrh^fbwo$B;M +:8BB.{7kpq\@eb6čFqEH=<m-<\>D?YߔX:FI, ܪuv H ?|:l9ͪCOJ즆ZTo>nBj,R k-1d>E=ߧ-OqDqP7X \VJ;Q?+$wG0>zM7 @K[/ɷ7?xXs d?LO |`~Ԉ8|Ku]>ot3lĖNlώ[ZڦXO6Z[kVC[)bmCJ,ߜZьӘg_v* pK"96]d)oR>]54~}.ʘ`TuUxZ`=S|%dLaGʤcqKmb ~`q}iሠG0l~nel~̔3؉Z'^{8_rQ S-!<3q2>s2?=nD$U5Tfx}0F ulR1( , #i\D}މi&c]ɑ>N6fYRKϓA1z1vI6H%ADZMu\pjHjNd'wDŽ\h2֏c?=X̖ xZl(~c1z&n~- Fp[s<^:uHN三XUToP`dq% !tKOyn*SvD͉Ֆ) Qɵ3EWG >KcJ\_$z@zv,2{o*blT+$FB$`Q<;u{Zʂ߼}D߲ M○IZTd36/*3 dJ8japPaTsm=|L +@~+n N` M&u!7n0^sOǼ2Jp@5t<,9ZL>f8,ף=~X4 fѤ۵w ㍎S% g>MY&ܰxi_&^[l'QI\z1`"Kt#k$;y7M9q<6ʭUDop&2Gr=tgfsZx C2qe *$j  ^B4ٗ(!DYvfyIA{, 3RYs ړiSWO2GFܐEQ2AJmr\D4 O,|;?ز72 uJ-Qz^xbEK1ӛN)4ݐ1%E۴u4~O7zP?}gOUS1}MN&P"B@1 T5}Pi(wr-k, @ ~Ul:Eba{=ģ[:QW-0m4˩m;hIh]6 fV%GzUjzu]\]Y僤/Ri1xaCݴ|~`;wٺtXMSYp^A!훀1!? G 7,ONI) 3B蝰<[chs~dϠiN =m%^gi׉ 8cBb [*;9%7CV7b&"ϒE9z^Ǟ/% on݃m=QT(C]ܔS91 !& (o+eC~X2fu}Л É5{ *`j #  {P<^OȤAɓ/!)\POɶbk:"srI?sWOe`gF >eGU\" j|Fǰ[ ">1K;7r18O]Nkr^%*$l[Իgh'MC i+_q>^[z6̿xҷ/)ջ2"qTqgoebG6j:/<B8u 718~po}w.Oy/V>^ EMm8x{r 3f䅎}ytoa(63&mpft'9c8KIRD Ôѵ3uӲ;ɮ+@=7evNѢ/M'Gǀvۇ^"O≃D$%yL].'5B0xE H$=̧߬ 6޻&ܫtZ}ThAVwIf 1S!,͖,yS1g>;e9׻w4y:ΏP8Yߴa%wI%1 #I&g)94xZ]۝$YX"mS \31k6GZ1G(Lq Z-"Z q7#hxKJ"troɌ6!/d6w4UT6}MRw0Z5dNjmao=w1#sx OL@mN˚ ]WE^ye t wHFia]~@5BjHz4k@( &nPz?m@6r}.qVC|Q,j?3VGtruwFe;NAn&Y&ASjY(`>OSո6y98@_}]KĜ?Oۯ32'wFt-g5xD>D8@oHz'w=/>n: Wɩɸu|K7շ{%@c|߿rcΊz7$;6!8B0oLA\i $bAȎ&yl^׾U2? pyh"h_ (l鐈Qh@rʂW;޷iVC>_LYc qȀ"eo8\uyᾼ8>X\ZAר̈88R@OpΝP[}%9³D#q0GVPnK)=~2oZ) hN"^/6NbCݸf%V}ರH&nۏ1g6} m. M&}1.? aNzm#?"&mP7' S:HX5x{K@%f?ȱicXܾcX'}փm0I%0($bjF9W|{dmʼŜ V8F+@̊P_}utUΟ%je%s9 _Fv3rtQg89Ss~8g]E&{!\otLpJta/ԪjJn>A69۰^jf Q|zt:KskI c"옜j눷wDE CtWd$Sֽ BqaX >7^?x0hf,p& [jȰ/zw`ۢl/2ָܤ e2" (H*yu /D&\#1j Wgj†KsEJRqVO`( O5jb{Y|*pmn.G %93nJK3f'K?N4P+D'>c@,p_n;W,WSl~`5 mU>|]|[ÎEC#>gDǕz9'`K?}{gk} &:SE3܁zn ^[+/x:he)W_/IB9H,hfz#!&OYsjC?Xg92M?d1 u߼ 7E'6ݝ)kxwL8חB{0Q[~"pnO_63tXI5u#s~5!EBvFWLunZĥOf77_?0:*ww_YDzq[0i% 5hɽYg$6p&\B(HqְӸ{!U;m; ,nV[lоH)s%"8 $˘g~+5|p;6j="Cki[-JZ)W27jXPT Q·A`YĚ%N!_Ē|>%)^Ը  ? {QO0 -]}|K/t a=Ujh|$d$}Oѧ2j)u&tPӹ  ݁1CóY 954m)KD֪{,]R '$T0XXpRL%A7yqsc<&/fLon%ʣ!eEϼ4r[h# _U#~Vb쎺 /V/XUh2 aswM3UqFy3J;_NR!&}O1Y/a3gM|z{{w1nDD 4VL.ҎUdޠ*cU:G v`:bX O͒ 979 S/s*}N'>p^0I.LVRg"n3ޔ_˒wTȈda#! bJW2{kQ[FS bʇ*TDt(vZYO1n4+n 26h={?tTzW#c )3nv\A+A ~=x}m\%Wo2@Y:a!2ȷs Ю_BPGQVz_0^{@~v`{6,"h5ZVE mK%,b;{HtDRbeIsHi9[;lsM`@y_H^ʐؙ;YEȩDvscCq'yFfCĵ>!&seJW_Фhg?(S*uF"){Buy5gpbPLr9dQקq*->zPT0Xj K_qE6UiI&&&J~$0Dld& KCH@DXҖszc^Y~8q?}2O$HLaLywsq3/otqKh PXgf4g+eǗ|NYSqh=xx+nd4ɕ[Ln qvXp 'g'˾G˸?5h+5Guf%h>}ǍYFxF9EhLny#6xɺɏ5fMhIJJΏ:2"pp9 Us\ڷŲ osnkil)V?[Dm''7گHҪ/FpF_Rz)*Fwh)S06&YeCWc DYN'iga8W2)uM!5lތ^"A6؋4td u3Qu$$!l$- @\c$yJ_c&!UOvagww-H2NoH9:k)yubTؿ2 I~Zxsݯmƶ޼?焴zD7=x̼C<=u劫յ*Z˼jb#lg3Rc@pF<`RH hKٸl. 8g='Fi*$ݍl2>9 %Dslyp ̠odO_3?S`@UBӫzK߿Ky}nҟsj}-K>-onUi؛[8LW8V|haˑ6%@;vELa0õ!OcĹTvCNOjE51XK$ʨ("tDfuZ-LMDr]ڬ  \\X4RG$% HZ']OϤh'zLʾQFD@ecW \(_Z/EYID1\b I:_@ t%| ԕVwE [O%"fV7م =L# 5N0!a`SHg]%QN}k渕 " 7i7OZ) ZvĆٿw_8>|n^f YƜZX9zO!h7A>$NVV9cms)d B^.@[Q~Zb]ញbgx Y ^X3=lQSO7lv؆G]e'^LZԡPɃjXJpktMQ8xM%pfbu&5FԺ'^04uyZT% BqnD-$/Tjg-7 |n )tpqH.TDݛ@a@ݗҁ\W |\:} g=oCy9WQE `\sc[3LIJu{#+!~9c=pݫ|3<>ϗ~_F5ýٙ<=葝sb=8UF}޳l|o ~]o$R3ﰬ2Hl}lVG Bv*۾<20PiۻɁ&[@,a * CC88%8h@@ <>wb+<BDB]X(kzLv/O^ 5TLav%:c73|A@O:v#H;Am(&~aDP卌ň٦LB kn KRzk; N$a$8@=\3׍*h!F VS ݫݱ PIb(-So{609O=ty^kzbi9+@拄\Du=>quB+>{{4:\ho\l1Ƨf=>TzsÓ%zPH#\NP㣝;;llu@oԕ-;6X4j^[w8N2K</4&{McCS"e#ƥa\YCDϾj]d$LgC'0qdx?Ieyh'@ N>q~potD4ˍ%i]LFڝG3%-"^E|'Gc19BK ;0(Q:s>-"/mЎSNԗ$+_ݽqLw XFL&ҵQ˕sj#>;*A*'HEA|~DŽY f#QR{J&q!bQ_W)Z#6O([-Q4˴i w%vѸ9cM HI'5JsO6vb;::+raFtDqzI,o".~ŰQ‰CMQ+=;jm6q፦/h>cI99')yiԆxlTpa(]]Eu¸LbmIÈjĔA3ըO,-p,"Y >݃.$}O]X8[y'0Q]*eK"r #BKY:&KRn!Ёe;f=~ї3êώMĻ 9 rK*~Ώu}ɲ}ي336rI\}`ZYNk\Dj|q3;xd.C{֑c_: a+t^&@jAIСS~'jL*:`Å\m>V&r1.zOe\|F *c7)wbFcඕхc8 ;"'^Y\Le_&(7iKWV)gQ$Mݪ^D]0 I 5"ڬg&*W@ӟ vP$ys8!P@#Q=$^vtj Ɔcֱ깮up:u\M$0{f*bhir&u}T[tU*L|;G|zB0ɧ踟fiw& V2g@98 >*8F^WYd D;x۩mzaLq+r6#O>\u? eIgny!eQ;ċ6g1&\iΒ1#֕٘)E/*K{>Ûz~ @#ִ{| 599Ic|`qv;`J'EέCQe٢ 9@?,D+wf͑`Ϧ[;Wıh/@P ]]_Gh%s4wo}v~{%ΙvcW#؏So<h2ޜ8P;^N})SQ5/#2!_WV-jCAm(e8z4Iyq(]RʂV :"f@blN/qU hHl!` n@A֝EB`PAv_D<@| 2H eꪟ)Bp1u:\%:SaXd{d(.ZV ľ@S>}Hi'z2+?"ƧEF>8ࡹCVxkV V,Dv?^E a)wQ5$~~$BJ `%-eBY!"ƺcw5fUI4?=\FUc[Nb,6HjPgI8c8fԎqN]y'*2ͧ1-l =QHF֘T7 ch=@4: b63CZ`aӮ}"Iv)/&^\eb3" 쀠cy92ezHj7I2PpDޞAG'8sYYd(Z#Aa@6޸a$IDxJx3tbųׇɘP5!£pHs78 os:g"s>J<[v42:ЌDxgxj9-ss20ANǁ[K%e/RT߲ Kt?d ڗSAT:&9(-cAEA,p>*Yi\&L3jРp병eP/k&˴D!DTzY RE&wj;cڃ,`+LY[0gR+̺ɝ%w~+Ko7#?Kǐ̹@H Omk[c{]euf/?E;hݖo5Rm );GX%vˎi%iޘ]S:S!v}4Eض7Ad~{d㢂!m}vIR$!c ɋ%u7UlD6UISDbsa@W(m!167\ phUC}Rx!3Fi'aزK8Q i4}F ٛ4%KH\(i$f\RFشBûթ,[3J؂Bza&{-VF˄"תa( ɾw;!:[KP`8!_b u vG9CE[Skit&X[Y!\Qa(y`MZxa>&RDlxA" B|n!hS2-<'2ڇ(zZ\]rjvBr:qD9%tIGv`L'YDjQj*yVgif>de!MJ)-=헨mJBvԟFCtGH@u?g 9ZO:?g.YiY;9u$HO شwi'IEII5%UJ@0}=pح4;_fSIt@ 7H(F"l6թpqcHkL1K:N*Xz0n"inf4=Tzǟ4΅m6/[7#k+mA6*V6E b^M%^5D"EyϙEPe"9H bSmy౻j.e4vwK#Q'@JMB^t ͻn!;ݱ$Pk"L ]t.53Hə'?z拷k|;gĮ2_IlNO?hBH6 @QԇrKԈe+p2jZ[oO/ؑvܕ~3ʀJZ!˘pAql~"@x t +o8EҬm%;(l9Nzޏ&,6HfKG1;M(Z/49Ҩ Ifp85JֈK^2r~A^v(DJ8G7t?l$9{uZm\:Ff6|)N@beEF0'ˊJQH$Ryp<[ 7G&ç'*<|HF>߯,S˨"2Z{گK5(EQTWɧ̹=Ŵeyϻc1\]VTo1Dҫz`fa@6PXfȧ hx[=,0D7,7Z?Y{_?OPt PQ$cD1[]:'Y}qW}Q@A=ݧ RK @ίR邆/@WeTJ7hcg@ߛ&} RzLjPU 8!.)t9`RhKKe{#W!{lJn`+ 5=%jȤ`omsG8["-uȳ;~nو4o9d8A^Rxڕ`5wѻ&K^gd2&Kh:JS9؛<&_JWq6]5=榇`LXn7uWz#:/g!M~r]f]Z6t%]?~ͽ'pmv[%ҧֹݏ謗Xqr?̟K%W>\=ݪHIw`&e%gE$. \OShҨLJ$QU4Mƥ(P;RDjc Bh .H 3"α]IœCtiM_"b)wX9fm 2E忍=u''[:o/ GPͿ)Ff,8d<$4)*I+;mAw9_{gjxq4f\,Iƺ[R)J+ml>\ƒ?tLR*,kw_gM';rO孭~oʮvfpǑ4޷??60I .GtP{/ ؉ F@/xԡe.wMMޯbj墽{Xm`ޓ)Qdo/^Za f8O8i[tl%*Uk&/"Z}K*%]R1aWu܇pnWm(36 mX^jNa̬x.7#|޶ϋ*7%*9k3I|ґs?KR !ӣa򈲎c7]jF`nG0'a Niv_,$}}nPK$=[ۧA#|=._a)q,+v*jvCRԈ$;pZK3ȊљYT)E"f0( o @l (ŨJFAL/rR ' KjȺ%=,Y]O-2RОZCs~1D-(x.9Q ^Ϯ}.5=ܕ={*ZW (ԕz'a]˲w Lt+xTn$I :9sL)C%QףOۜCMOѓ@huoMUMϋЧ](h2)7ٞ f;8s1Ovor٥7 mZuxoM\OT7ыjrM {@13k6Xx#pjJW1ݬC+rQFr|MYGIyc1={,RN .MJLyYv8?~fK{6\wcgiĝDN5nn:W~9 m e+!f=:Be\yn F˜UAYw-sXpixR@BY7miޠT,%$d!c}JUQ9yJяMzs#J2 q\Uu$A0pK: nX$.~P8YǰD-Z@G۷˴-`fU(8sOfi*S&>W%RNz կ@u*ݪ;8dHWRn6a AL"S [+`$QSs)M%𷿿~ߩy_EBP;n=Cr Gc@\F@o$ M!;3Q_|2۷`̔/%{ 1_Wן8C8ڒiH>೧?K#OcL`T55_@{W:8M8V8QxL9Jc{Y7p U{  }T7 K!_)`,nӯ<(2juvZtc7^[L5AeL=@0/v?: NX5:Qa  )a7%5cuE ,ukӐʆެ%/P&"' or%%*;V os2A^Y?|c_s lUa@TV_Q\uؑ)˥Hik8b&.! Ȇ2F+SV# ¸% v ~x/dgz]Ml+"6KFiFcS >d 2&Ms Q%*ٮIRP äXO%4DӬ%G T (ď tD{=˴i i!T0)I:R7hNF%O Mq1t}mKv+ $ϗh鯵o?9,8 ;X9d(V6eon  Qh3[\Ȑ8vMYn޾\.=P`R,{Sn_4C;L۷'O,.-s&^@ٱ;?W']_~V9cF 2CWcUYH3&+r(֜yo@QF$_jA'.d j*dVzMBC`#'9|2C5Av>Q'bKN҅elWJmb ۘ(egfL5m[ H׹s|@Q ߣ)MlU nD_u DE`I,{< lK*ROy'XCbNPոgjl<Ģ" &/odİpYVU_rt"39Iu8+Đ9mNobEE ztF83jrhx!S2L^(@V9(- >pF8E\Iz~w@Dki[Q+tHʪ>5{:28dC:Å$|PoY!m.v^O{?!.}>ɉƓWtnN y+F5֬S60u\noKg=?Mkپg/sk>3ߔ}'u e wκ$^.ClG팿<\ DS~: ݑUǨoqVRd\5R4spVms6JN?2$۷YqU}ͧ*ʱiXz*rEnY$,um'}:hF?Jb"`^evv8I)ݞgkDL `Jz|y [fc%W5G`DݡU'*Q@-<-bro|ۋgOhs$j5L{eWvᓤO]-x¢1\M,'DpeK@<~'{Dw|!4%eB}L",vK*=߲8<IDATmwwhKuéwR G6vwچG@5Iq "F<~L3u $.5ƱJt iPJO\O]}柄ine v3Bt9mVf!&ԍ-P-lG J@ۺ:0vq36m[#t N?Cb to6A9Q["~}kL6ڪҀFOCP9m=컻2DE(K/:<9M%y4'.~@]/~Wۦ rw6|5hb̝3/6MҠ@b7ar#{ Ix>Ӥ Glnͧ-Oa AH3ƣmM?[T8_S(e̱頏.F~$KRH]XRY7LVS;;7Gϖv'_yc+da vD~%X\yuXtO.IlwIJĎ>2Wme_OmH\`OHJ%C|9tLѩҭ+2?f,۴\4c@O8c%\?g/޼j뛗y?}~q-ަӗJ22/ 6ZȤ1#X݉R 4 pޤ*NTY9*g> @hps`mu{P)VAG nTO3)z"hjت^-_=[  @[SaFDm$XUCBe{xh((J"Xg a6ScQ"dbZWR%e@{iwEc`IG5ZTrbJ1mG,Iz.3&G%ۏzt%*DpQp>+ f3`Q٘bT <#dGn-pB`ehʘ6Lk2e׫ . 5@۽jC $m]ȐEvo0E_1qE_lw:Sޅn#D<b,MHfbtQiӂÍRWNƐLhCaalIâذ1`QOf̧^1N!0/J(K?uMv~?lf=ҝ(!$Q{@Frلl|An!ŲO|8|sк񁶖7XGJהO_RTH7VxFR@’#sr H VR\'ybMlĎ&PRUүfx-Y^]Q_8 1Չ'kcv88'mĖc~/x"!*i"E[%l3 N bP &>djjqo;D)H[)Oql{M+g-3:6+53tV,jZr"jn| @>z{[ P7[uet.XS -)3i)I?"_b() ̇~)zl#B3&s״ri<&\~P#E $zv}?y׻DYNޮg@[sk6@۠q>u>pOL Ps|bw1 &1a 1 9Zݏ_E&0 q.'*G[/LvWfse! E6p\ )j]cbm]&%eBĴŞ`~iϢ Q}bSUb*c[˺^N-5|!!E"˸xfE @B@$ۑ. qqlP.Ɉ&SZ$=/Aÿz݁ 1v}ޕzouƨ~;,hBhh|BWCɔCuu ğ^(@@t&-)ɰKwrϟF;LB[|3Qu{0HM%HDE@IuT6L񘿃zi+Z}do@|{1|rOb[弐ribZiaih[..բY `1M'R|7FA=FD\fMщ_j `}GF;ch/i/UUIY_'Je UhԛJc՛ cD7mMg/Vc 'XM|6(g@,]XbR b`UO|zU&7"hC\S xTFR~Ũml쬈ZsUu>=?s/6<`ӓD/Nʄ&vAJs`lXn9@16ϤiP USKaϳ@_-PU6 Qnбi5ͣE 0ߚOÓvޏ6yqo@.R]\<֭{6!:BxХs#D\P_q@8:G?_s*+ά~!@ZȑQ|)X&55m[N|>;uҵp61̆m:c( : \w.UII+HW!9TH>2a9B#k"e5vɪH`) #b+tg+с{`N+@B1 h(3\;$Z8/~ǶYB\ p0PXz3tq4WMyAghnmDK] ?eK[t.g7v)Ol[PoA:hkwZܔǏ|`yP (|i|ud>P3L!Ij-~ o!6QLvΡ>lޗ9qDFC}wޏ7y\ZcIH6hIغޠ{~S ׶l0mIzŝIV }ueNrj fDwUwb#׀T :[¥'/Jt4>>ޚn"Xӹ=vw>^5Yyk%}~2zxD&i< Lc;C B BXꅹ?DK>(@>P:~BDHR9*uF2G)W1?敺5b)40g)jS!@TG DP{m=iZJ{r 2?2SsDv5z&'aUa"*[5B$ˬw@liluWVvJu(52ÙA,VSֲG3G!&Ywee[k\?`z @ۧVfd{craǰx>)V 耝O:__Oܩ{cи[<Ë7[oxsoѡC3Ut!!IV `rrdn(](, Ʒct8}yWXB$(qߦleXgY/JU`}ݙ+ըbˇP|TkQ^{x3 'Q>I/bBӍI e<:>Ssҫf]ۯoF|^[{ #aH\uwJ#Wb,lRmϛz4 18K/"jxQ|D2Hۇ*!ٻ|65(,. \%*,YxPg$ܱcRúy謁U9g}wxs)I4Yi17CV8;y7!j (PX$ܟF jt os)1\ZTȊHnxvzC@_G +sNNoMC &B.gs=v=y?+;:=Z:x#Եo|>3l$N_n7=e)^ގ}yoprB󄉊[]ۓVuu3BZ-; !z!ޡx;5%lf۶Q?IPs"1]V?ln_F02:YH|G1Ӳ;~*XU{:ݵwr~*;5QЌŋ.x> 1MRK!Ef{'ZQܼJ8ƞմ65u%QM{jv4A Tr@&פ~v>}jHg]'}ZЍη1d.qE}ء Mr2w{m ;N4$8jV]zvz `_jm_VސcPyg`.Ra1˼yiЊ2x.TN44Ŀ^% 2떰 t} ‡dzѦ&:w3зp"%6nns04ݮ0WoT׳S~o$WU9` G>4+W]\X/>ZRJ)sC=4mz|CaLb=H6^OWҭ$sVx?7Figma^q-b7MeO=ewJѩ+E?]3]`pj/?kN" &np ڣnߣnY#Ciwu(oo|0 Y/_?cg $}ؔ i$ϗ_wgN]} 9Aռp3IL;,l1eOXNl61ȆGJE C0Ai_/Ou^ZΕwcآ8ȭf3ǭ1Do9:<>zkBtҎ_=ѡ Dpymݸж1zB_ X#_p 8])vp?P'7}҅1 wBTJ`]yhCw}Iuzo5ݻG>}?ooZ0vfc9I6a ᱜ;/MLIV%Q.Ž, ΐhsR#colx+<\]F aPe?{hD-9Q5s`.|#&.^R6͇B4 |f[IZ@Z1$/@t+{b  fJ"e WCm‰andgzS*B ֖_D^yG}HQS9^yi~7~zVk#u}j v<ջmWh(רvXiCW)N˜ŭvtXf{G#oc̜{=P+NX>#>CdGzU>8p,m2k c#>BYR 6ZU౒͌(=Fɏ=6j[%0F<\lla:R%ՏDOl%O@x@)IJ5c)C~>.ͧ*~~:Cιore&81>/և13"jR =ox_Pynu5{i+FIz(6 ;7yt1ćͩRg|_g/Ga?cT8'?_^{P=1"h}8@ 5 TQ DKzdBZ@H* 9`TOqG5&+z}9v1櫓^lK]2]5;@CG7%'5} O.O4#j 3nHQh*&u:c1/[Qp9 з&kaqȓ/X 't[. pM<5!\9e&$G:;XmJOذSe †3Xx G`LKu^h,Q.jV@8U E AEJzRa<6X(+ UҖ@><%8[j3+l۶\q˩ GWXIS U؜Zrvŧ7g6921"_O~s| Mp֝4&mBIP=Xx KXީ0UF5!`f/V) m³;,=L;X9ctɅgpxT\uߊfZuN7iO,4ˁDFt۟)toB|vm}@ilUϴ#aFk Hx_q #JS@l @q@z IoZH?{,K/{oKUV @žG`ˌHϰI4zP{z׳n:?c9'PyOzGvXC"OrR9z՜BcTf@*NBβ!V`rJH$@s-}B;S$HjUV?k)TRkm~.FQM%2o~&JP](7a[w^%}g"/]#..ZRd1sjkL%PЎի; S]y"~es'VD(SZ8g\U$.;OU![F^6 ޻P!YB`EgTgE~-HW_,8"='^lLMPx` w:+pkxg!@S9 hO+?خ]Ԭˤ/:5΅^e0rA#~Ql[>ǔK .1dżA9I,HOҺa|`:{@Dܗ΁~ԪKcSrJK@e*gfSCϔX=KPoC̹݅ꚨ$"m:vs݂|4>tZ=ݠuNKLl$ p! i61,%3~Yz~ex1QU~g 'T$ d'X>uE-ZJK]?8%ONVVxƃs* d!6&ff( I*Mt{c$0D ;P<.\1p?`_\7_Oy:НI#W:a$n]T5|у/j4*㡤d ;ES^XF%G "wkxZ69֎,pf0ۓh 7UXT~c^_2X- 宆YXLI!*l˗/l~ yz[So{<5 {"߿A9ZT >(DobJ@ 71vdz /R]R# *QTǘPi<zD}rZ%sZ/9*+ jzF(g5^kc^2&,pMXodsX47Jq%Ƶon{ dꋈjư!Z d$`gꄄ`Qi&O4/C4 sbDڳ oԘ `9cyU%m4 D>C{q8peju,(E(@jČQ !]HR@Y(%Cz [Ym"G5VD(E Zltwp'0ej:3׏yLLۻf"@B\co}UtP1zu:ۻ6VaJNU]`=QPy~@S9HqsܪJ B͉ljJA@p j3蜙^mTۛ.l|Ffb_S=frS5\ukn)9W͆"_Xna!,gdY-DdUOOϰ~P嗿7Iv_>wh&g4JA*,7xٙfTsRzQ]aZCI8`ToD[)τ5Y:QL^i4!2'lKNYE9 &M* e^wW 4W @"N DƲA{PP8X)d$pNق&[o2]#)DDh]fu84 acaN(.Mj%'U Jqȣ3?gy`\GQmb^*}]m2Gu\~@*4љФmN/w)!(kq`:*i(ZlOB X31uVJ4gH6w 8Dҷ?E};CI 'E`?[^㎎/ gcl#ۿmc00zmQ쪂j0WK̈uw-iy :~TK㲂$SLLrXovy V$g[ ݿNrzcA$TjP]XHVO}v~("X5(I O?xww_wzWJD%lEQ2 `.`JG(aѬwOѻe VV0npB"Q4Q0Ah,Qf"ӖJ3' v8m6ݑؙ'AJ в4Eݹ w'3E`h֤RSC]\) |q[#M)f`$1myf/`GړԿBK2|}_*I{JWC@%ng?6cQr?{4&!Bpkd ~4~]?n_q*TĐ`@ t,}<OmݚPɍSGEUGf("N5&X2&!SbF,H= =O`Ӊ{s =iezqA%񱝘hhۡĤ 8ڼ{-M&;C'!n#쩑 OAZ:[)Qg>1 mg7,RC7t+4;xs^tZXORgwۦ^|&m?`CIƯmN@[-kڋ+cF%ԥEhTB"čN}ۢz82DĞ(g6Iۙ.hDLd{_gWgWw_v>f42۟tO=Q6qmxöY R4Uy㔤c8)D"jb:M;bq7_,LҐ)?B9[#vBD:KB6r&HI׿ \0]+F/k*G_S5x[*65T 4%%C{՝m°{0Uz &$~}|됆:;}o"Ґ6cj!/dvwnZ_cBK AB#IJ^ uUx(x);S_Sž^af!kY'LX4fS"D|1+Ɏ7[(Q^8rwnmz)\UӲէNuDIlwXk"{R>hv6͓[tlK(ީ{!t}~{Y{6ܜ*z֑@zQ{Ĝ9&s&R7~{ @UUa }»+!~i:s6V1P ͧo- mLcH@*!m^+d$ާ~"XEŲLG+"s C^)Po$+Gʮ/"R^}/f"TC6pFcg%HZ,;.y6; =gz>fmWyr%3q %7,ݤ١6>CAPŗU3BDsK "s5.6 c<&8}.SvPNbSq=|4,ͩ:ʤ U: O'(]dUFNˀ^_gCКYRL,hJ!T $Y]8 M lX+ Y@ Mu;6P5Ld9DH+2!Ǎ/7Nz26 X>Ns?o ~D;\F31@/WV(̊TR0ڞen[/l֪xgxx9]*~TIAQh`:nI[vVΟAAL"K}S;1 Yvce^E@u10T<ϷG~}4,H_aȺ@ 7bghE&yn>}s]Y;h;uNճIj5bkzhHijYz@V 7 ƑsIhDN֮@?'6h6_5PmG:,;QB&~/_\˻Mg;TSQxH`E+iN*5پ+@$HT=*=?jU'cʀH()6,PYYZ,(Âԛ[gPk"ƿ ݶ.˶AŠL g; eHpj~s)g; ^$jD*С?+JFK5hƺF+£X_~^_jgɻ&PE!Ǫv8hSJӃa(VјƈƟ`-E J9ӓ2џ7v텵֨x'b:k)w4em.w-`{ƈļ?V"8t $eXׯk6r_4ܢ]֮&}_VeEv] eY7Q9~ z2Dk ;z_hYS'Y㬇zU%"5f7ݎgo>V7̿D>Z%#$L|zա..+ :؇bA?O +MD8^1||4%'x;hԍ$`=%M}`P D"wӕяb~yf65(ϬUu|KH%gQb j& Cp>܁&Ns^ @O$[1:<ӍjPC|} xX~tbh1&^K!PR偖w`!ƚ"= (m'NhMzUpW)Hdk$5ޖӡ2e!k5_U 4<~ MkYZ-ިgxyc d3Wٺ߼s~"odS 9A5JiHߩYS2P4TggzYq.Rİ4Rie-(N%PjX &gq g&](% `6@!w9yN{-6?ozvC{Nbz{Uƴ=$Bݛ֛3ʂx3Z1T!v/l%OfBo ZVOP2f}}`׷&.lDg~mZ2J<171C{0|zogىDg3 :"Ct`1n;nN3eЃmmeLi+ωGek\ FpmWJ' jwzWRZ EPp2higwm&Kl1P #5&V(=;.1M|j F' vr @_4t{ ƍ ( 5VPUk̔+\!0 +={2d8iPdU h۱yX.A=Ni dni݄ TT x,k/RwZI\FS39G}zL>{n)SK#Q:6HŶ\3 Ճ^1 5G֧WC󠄣30WO*gOg 籼Nモ4M^ruUyv/U7H?@ϕoFeI՟#J1#^쾬6XYw׋ݻN;z^wAR{ Q Ck8ߣ ԊgzL1I%;䅡\7rxkpc;bqfĻ-!Է$BVS$T*kV . W $M@^dV6Lu${yj,k]q'On4g)e>}U}p`QL4Iػ~nzp ٹmp ɏw yu7T%"9f>o_eh>YvrYۿP:b5#L^4oݘY*L, ?Y ;Q7'5d;#J'&l@*e<MNlPz8}=?G;Τ$:.%l\Bq[^Z?o]OD%H~~[k+bA+2 Yl$/i=~ȍz ud~GA(8=[FC d~|hrNXRiS7IVUi4DZ/[;P&Z @9elhse$<4d;zxLm_xD=6qhgs{ 3i~ahMy@mZ~L Y~{[vz@ND'VҪrG< }1~О{ l\k-Ugۧϋ9v ؕ]~60ӊނ>Rp`WODkOo <kdu{rY.Vݙ2h] cӨA'nV֮a֧th$1eJâBܬ}>}0>.GA5y%]w[Ɔ=@' ýtNtMg-.-? ‘~J V6 X>G ?`^c=靻V]@ O(fa_n>뜢2>F;/w뽧ԧS&`YZ)|Xm6ٓ}]Zd_w\j{|PNeŏGR~6GxU[ @hżyAWkV =^氽r/Gfvۧq /~JD3XߋTNAmj=^O KWΏA!aZ"7ʖMBZd!'OZ[h B4$@=M g{gESB-TT,GI"$q܁0Nf=-,Jo(&PvCdP" ܣpg>Vp뀦 6/ y9&_X=({y=yGW/(?8#5{ }KD%;aP'ٔ 8xW:.VD}kA:O&NYaŲ>4]zŰc˒A\dIXWRܺe{aY_w6`OmLG:ɾ7^; RBqLT]ɘѭ=?U"i{}4Te<M̧oNbUqu~q56ɳ+U?:˩w'KWؔMP >S~ a$vr9 Otj=]grR:7?1^;usK)J,Q1+Y-Wyݏ>OBildx~W[6[-_70:qb:^rr %gݪB/@IyB߅А6 1g#TFpOc Z LzRfCk4@0#vB`C0+6W"Dn_~wHw@ SA!, a>~*Z<\G]hț%p47}15-C@ p0yT@  2"4W \8X[UȞ7mqF.?k$'~K Hx`=GL횪 ;@eSr&we3M'OױbDu_)U4 %ЅX'`eU8 ?|7][3*8@UOkvZ[L71Pi`qo=rJm+ӯ`"'!wdm3F`#*ޱbh2`(a*JGu'ttlR'H(ҧE=rz;7'{ 1{UMK.9(@b(t]U'ϯ}bV[@juYo .aj5.cQߏ ED r|k`{8<52r-ޑ q:խ[JgO6{\޼^D鴮Rѻ#udG1*BrQ1ATOZ  V|0 Lϓ1)i]IV#MaDZ9ɫa~j$(l#_kN;CVp$1T:ob\&ӹyMtl?ak$ELw@E (ϭA"K\[uj> 5)2jZTRxb`3si]Q.__vpǰ@ Dd>Fi|ߐ9 g~~޼bY-V|Bj_/>yTN3((EV1P΍M"W6+u"zU02v!GW@36{d$:[9V@rRS l&MRɀ-3Lt530S,+PjL=Z$[k2bRE7NӒ>\6'xM[($:%$1[b崂GP[ކz3Bobu,JWm 6`W#p6:ݪqW/.7nVC}SL~3MWlѓ &LcMFb)|ɉYpf'a܉Ҫzx8DN\ I )EV' 0ΰ?2n.wWPNz9؈DcvUOFʆb~d!l i;l=v)"Cȶѝ%mU!nQlB[2{9u-imz&ZaB a`M9lsF~u'pGC6eTzӛ]>GRkg"wwJ߾7-$O( j?J#| 7>suۧPkB >hq==sHLMdS.w:ö}[ #(KQRIU1If/5$#"Rwn$xG˝V@q A\6gqo+id]5U%% FmlfHdVl㙽$?Χb4͉uS#l-|5!nNPХRXܭORv1 +-=@"-`:y6%-Zp>c£oW:gVCJ禰ġ9H湤=1s#9M+y{g7-ekW{ >gCL~' `|?}]uܛO_QEYM>mJ8k:vmv-^dDCkP^jwUz@4 R'>(G 90;4)NvDEZvNw`ɋKkv-gSU_`|`y]{ܜI /PǠs!FsFq .1Z]7kkts'#|<߬^͞.{da/?zis{ /B9erMq@Vz~=]| &gMM<U5Pfr2;Ǟ),Etovf|"NisǃQ;g%⮅Z}FU-oMUxF)6K즺+2o<,p%J8#|.K ThI iyh< >2Vs-^%I*:؆961P&ia:6p~  B hm̼Dz^|6K e u6DeGynSڎAb%c H*:moJYڢid+b܆Jj#:my!m@N۪C5V.E]ٞAzYUwLե>S"N|`>={/ܕ^YP5=mޤ_1ertEP#K&/.D}wTUF-P.dc#ƩbX O~*aUmh53n>eS/2sw?H7?UD4j1.{ZK`4~#*~.3Oc2.H5 o+`ٓڿƾ૑#[3&e=pLˠl).HN%gM)eS=wP҃ ZKk1ILabI1 3DP_?p_sܑzmx*->Np M9AVVnϒPUOh6۵ ;9NzIΧrs1q7Zy\i,E$e`!auZ\SyIqt;#Ku@&l/ӑl/+kZNݪgm,PP%?O2wu,45,Е?e>~̶ Cmwve*Q @~ #"QnƘ}WGQ0Dv]vwTk,B'(|Bw$cMLpEPVz.'[7z2͉{^ov5^y#l>v[$&1Wu`j([Wޤ?ҠA/o|{Fϋ1+$O<3vg~( D]B f[oQ;6z=~kxm[/3q*7؍s+B˽0p{]Ar]%AT޹AK^PH27Qu৪Ok wfLfw;h7~Z~b#h/kCT}ϻ/('/Ի ą&\^8C5`k1H`p~(j%w=VNbOB0Z'Mf ޟ,-*Km.5n ^kY>Cem3~2`8$|?Tuس7+#E\4½/hVMU@l4S]?uFE_2?-ͻO"5B މӏ[|dzGgs= T _kza1ڨj3|q.7%]'?Вv}=tE*ˍ?fH{̾g"ʃH}6ʛSeb ~ˮb;3fbʻ'G5ݢ{auJHU7@S*P^Չ#=Y❝Ycea|30P_OZMgO.~3✛Ÿp{_OgD;}@k%V-fe b@Yڢ`Key^%C\t}Fn#eΞq gU1zIU9%pGW_fvQyQtN0lnx2?Fd9Ěy}6$usg.J(xNpaF rN5":jhZ 81외21 IhA9v,;L>r:6tO,@ӸdZ߯;@C(<@3Yx =aTpT^*r(1l oW&EhrE`yEV46?FcP?h^O@xHB-3_@1D : ݯ4Vr~Q'ف뗅[+]DCtscPQ|50a[ :02J=Ќu.?`=!.vO5?Z}Zm>*(V޲Gu[]>P6)SNgT'ť AzC&W %m)\i}6z9]`.;r[,J*I %vQfg6&J (} Jex(H*ono_;b1q2c>SleV~]I\nBӈM~um|] oN,ɭfNgja%:Y j} YP#kv *L9r-%1p?k0f-OezG<Ȳ6O`DxvG;W82: 6cRqucPTѩƶkhu-eN+E|x/ nTh.as5 _<PU \]Z=k OxO5Tts@[{.kv}d" =43LD6ZЦp]K8>n2{ f䰧GQL ;S|w\O@^ ~@ oZ6y|;h>jr OF4t,3g.Gp;LhդFR|,n=$ר_S❌ +XРE<-U&!-NGI0.67dY1 \x'2G)Hq XG:? `2ɚD4v[u_EMy Zp3xLK/-Mɷԁ}@1ayNa0[ wE5H,n%Ǔ}zu,mQ>bJ7{16l6/p|S䝻O*<g [RuLsmz QeJR'mDuPYKYz:fOSQ~)ہF4 ;bsy7HMgX?`&͚ =)4wIS}\u}zQs+~27"gAr#F[_Q?\wI#!dy1&w"A@?0 9 ao6(/oJU_4dwwKMR}cu*֛@Q)ӧ̓klj.u@ 7;*|XSbj p 3uPI(92Ax9+.xB+Hyﳢlm99XW+"Kum{`bT{RSNOj2@Nep<=M2 Б3U?hUsbFSR]?h`qF-;yF=HD) W@aXnGu>d73} |7z2b);\J[,8纏)gԇԵ7~Ӻ<)hfN|}7BY!>'cfg{Rf!gg1T@{NEVu}w[جS^QŷꞐ$1+e- +e>7X*żE* \2!9w#2Dg ng!02&z˞3[]+M>ϔs,/fY:wH&'04sjCqx Ł6gOApN4gױi&DhaN}8 s1=O]w}4?!qkYקs*CUZ:-e'&Q }Y %(+gYĻU 봇J\(M+nyV u `ӗ*{%ROgˆ;@4`mƚ%)~T5*;=qW:+&jSG,@ Jy6ޟo=5np+{Ƨ|:)s!M+/e=\[:h6v'xlEmۧj 𥘯ltu @*3т@0ۍn+oX 0BPL|-FYikeV‚9xOtm Hwh`m|f rI3ULOR)n2z䝋FğJ;`U|h :V^ @9>C.)l hw~aUU>]D @ wr^(Jzx@ce>};&>&-&Ůo^@h'ϫ$F0yw)gS^$ϟsۛǺ޺nU}ŗgM i&&ĪyHk KȝO0TgΔ^Ã-[i`0uf:3?8=ևql'TfӐ^S: {.tZC2 "*%dT݃@q WiXۿ~5 w #ձR; ޘEB9͚)S # d|%}~Bxg5ּdmłCej 3N"JDVҺO\T\NU28qN$ۈj <`RsTb"/8GghA&Yat{sKM0[27J}̂]3;JS Bti-;2Yֶ|p=/MwDD j-@#%U "Rǵ3d{}ٝT B -(SәL 5$$4HnV: dxQ)&l}w7Ͷw٠=a:I5;3/5E:FU kv=U;4(,PZ^TbmVus>`YՁ8f>}sg\g:+ЄM!a1ojݗu.U5۸EaUum6kR<6u rowwMW6a۲^nUR#~afY`piZiV#8c+#>Xz-jyEt!N $'B"BP1j?wϞT q̀8U$, P-q]t#L]Jbkt`dN >i[ع1~ {Qj=lylRDH'=q(-Ly#({TnzI 68uU!1*z9tY"K)^`^Qe2)g28_mXg0wstTAsOOkSl@SEjDŬ @^U?*&v{ړ|Ւw\a;u+{;PCt9;4ڙ/(Dyj: .>d lW8h{T:"Po^]/S.ZEGp nd:1{XȤȷBWD[Μ,[RAv p!ם̢f6Ɲ!^E-V%{]4ދ F7K76^|AP_R -lvر`,hxmoQj?9eY`!=; C&#CJh d%5yozlD61i*wwf<)qۅp%rA X:fTşdEiluEp-1NlK4ަ4@>hd{@9-'yS8mPơyǴa>= =/p`:s2]RMrJ˵- BN#p/f3 @ ;ߞ ^.B*kYF?>m=:̈́ٛ}g2MO-b4޵?ۢ㭺94ݼK7lJd 'kV1+s;ܘ \U w7:a X?מ"Yk1v8jTmXv:#:Y01VqxJEz-{%T>=_e#w}zrrZJX(H\N;֕ofs퐑yݛRUzM;EQt=ml^⚜&|wWU>Vo'w@u[8t40=TFL*j%SZ@owҁލ,hjѪ@^VN# |>𙻹%n//0MEyG^|8f, -\ێMuI\m67d# v}OUf/7@ѧ=E3g)5[(F8;[Su@&$E$'\$ʎ+!11ct%Yx}7˩.Q6K`!3y >-#Vhqx&>5l~ԿH \. j*ځ ! j Roڮq)WL2zE =4>1`+ꟽ_r27rV;5';o pO~5?4P_Ê oVF"yJ^DiمJ$87k]Fh6ЇgVbR#rncQ(|տ^-66å+B`$a!mV[f@' n$d7QHEG=cSґG;P=%xt!lNP n0 $5V+*%PւO=w9l_9<% yL]m<sͤbm_[{Ph|9x~naEA婪YQz]=+9-6(F&^Ep7th4hYӠ@I@ [GXek>}/6cαqFN"yH$k%211dM gBQO"K?q%c|QİO;6 Yn ̒lYqCZA'}\ep8t$H}Ƿ /Wn2;/OjMM ]5PbQrU'4V#~u{k r.xw[ a^A^: jKplm>}pv9"Q /Ybmdϖ1T%?iݹjBL(AzlՈAd%϶}zy>Ȍh/u}uP^~M omI\VYLVMj%no)+SZ-;w  P2M:?:)Wl7fcii@9k!Orp3T+{8-)d J_Ao~5|#Nխ`+A[L6BV[Ƙ%)X̒sQn+"d>(J|G:"w7$*MUs{sli2 ց ?EKH=LP݁!kR꾛1>xc$ٍ9_Oߵ'OD1!֛af~osO?rCY>t!Z*c׻ Z|`w;W*l 8X[X{)nu}zBڞ̧B=(_-h;-MVTw<}:UfjL Q:gv2R+[ټBvThU onHs nIDAT\[8ӷMn] h28v;Z^Y&uu]WY>˹ 'I^ İqPͅ=K~*}zC54`z@8|u]x5ZJs5QF[gkn~6"۵΂Kʚ] 1@̉ 1_]Uw*q2Lo3]/\3t{4? pjjX:(ڤ  wh)+SoFN)ZD#?{}E73PnYYe);遑Rm=qxt_Wիu| {BD3o jKYUԄlSy#_'HRq壄jrs/^wdHv݌es~~g3\>{w1e64O2g ""{y"-(?mz6HZ@͆duɃ7qiw6zdܻVN\R --_v8j^J'Uˊ=)au,< $I=H~w[5,rE/@y_zqF1'ݘD7$(LRZ}9 %9(*M $ˍ64="T@Sa2$W^kwM'A(J|^K)TՃJ#հ}g`df浟60^ؘoeIo2gsu g3H2w(,ӘW05`xZA_fӓ Q,6A(٪o3_v& O6!yov?3x<vr>[\?hO|8pCK6SybTC9+ X {W",#D ʐ4IIn?2U һ?ֲםMqeg"brhYgȴ"'TUP;'EM$痗ûɂtp:=2+7e ʯ)/W*O*Ef.E1.%Tca.AS)kkq&No:0֨za3= :EIEDyZ&$h&_otCp=uY>p8h7 f;@:XzU{'@ ۮ2M5kB ]:@ v5h.5Od黇B\NXd5M:A'bn:ھ7[3@`uK.7 :q /@a'ԉ.]*"vt6o9ꦘl RsU Mܣ .wDi @ݡ06H6Y_tN3q{/o1UBnDnD %gM9lk΃ȇͭ/m]Sm2YSvaژO/%1@]Tǰ fޅs"S YQb3l>}E\| ޾œSYm>e,{ 0TU(ɼ a`ft|#fW,\+j Ng)8˝j`BE1Pa_;+4A-B!`PegJ@D0L.FIQz >m+1X@Sh*{'Mf=ZGwWеhgkqR[u6 > @b0$H0]zʛUS|@ߔ;2whӮ9igHƐƻ:e=̛!b z=@eRAXs:smUO<9ˑ!={@}ƬM?837`iZT~6-6mLU?= 7ΙYC]_F|zǫ(1Ls/@|ejY 7ʱT&Zz|hZ.E ,Nm{-?y游ycx;[պ !b~o7 X @mDB'/&`aAMKb9r`?۝5nsZuMձ`<<HVNMZ4KĨe#At]P~z ,$d/TMvY]+gNiӖ5&d._ c8 .8Cn O"}=RR :I\[)ԯpvl\acjCfOb|.JmՏ>)-PVN,sup-W1" {1X46k'k!翸#1DN5ϭ(щX' oȂ?]`|FRm̙ݦ%Ę ||Ex;ì7UjaSuj3 r}GÈ[&όm Ԡӣ_)zc /J+P f_ e{cAzaO2kٹvo;x(zQxI'Dgo3ŕ bC6`k7׿̺_| ^-j#:I!KAxB 2^N7,6jF"!=IJx`Rtߣ] o=pF",a\EQA9x@wZ!p8r˿i ݞ_OܓX jG-c9mˁ6can-(& 5m;\PCcB$NWױo;ZNn'ku,So$hovl|?g[Th¢ov9>佟?`>a3x _O±5#y91Ff9Օe8?WrȜDu4Wh{`cEݝXSy7Imx nιYs&;j;.zVp]7_qvw'?WO̧o ,TCnͪCp- -H9t LW[>9+3v Ed|õ }.a8:@O, n)KxKJv44+!E}:g[. e1oWw7;nyPsDH<`JQ|ẖ 6JUojڂloc|"#;RzCwG'EnjTc pے%g8~T"cxn(e rFenL$ aE \CKP h-@[{ɸ!*K΁/e7= k=SzEH ڴ(1Bξ˜E8jѐ9j$~aR>pr?+P B/jǜD@z؉\tPy /2$A='\n2OȆ xzh2y9- S; yϟe9/-H0 rHiཱ&Cpv{؞lB笪9QP lVA +-ębvwyNmNo7|g;,*wVj;+&ulPժLl+ltu&y?. _]-K~}ķlШ d|>[/M2ȩݭuՋvxL֛_m&ɧ hݕsd6z6ob w~v3upg+4%Lo2^,H*ը͇NuiC7[9 +t\>y@U}vw6/S6Ϣ.U7X9i;4neMi '@9-*#Vuר*@?Nl0Lg0ҋߡ.I}48J@~(> "z¨!'2 F]9\+ njL,Z=cf BtS(p7̀DkCqJ-fHD$5 _ @r84,P߳!/IШ4lStzrۛͽ$l1NPTU<9`1k`"æFH#k'<b] u3v(NL_#m|{$+KZ"R pk)ФqN1K4.d5X#j"Vl#,: ۬-qiڂӐݱK6C1`hMǥupٸ<[+jHQUGDMV+I|籮B]08ٹ:i%QXWnS%DR9\>bcAnH6e ]@GR!ɣ`Q.S̾Ew ^u=|난=y.>ߵ[x~`w7B8`B|}o^ٓG&P @ L{y;"DjTdf{c;MNC{k% [tc$Jm| hvd\wt7N]ѓ \8N R&BV"2?Tk!6liw#@RCeQ>R @VөҒ 4#] M]ez'gβTJ:HN=ʺcIm+W_y'ΎyrJ<)6)MZ3 PЊ?mEDn J LY-=*Ccʫ]bw00jxB &}] s_&Ysi؉揅-~eAŢ@QV_eUJק|B^r|B Et@ȭVޓ fbC P)śjA+r[^`^19('R}|N&k2f\MRL0-+uR[> X QADx͝:fY~gC/0KT{d?њZC:X̸?5T;zd#M6>EyW {f`~kOwyU#\<ڼ$6^5.V:#@\Oߵ[S;];BDP}]cI|~ r2v,[ 58\.׃u ǀvAB\+Ch\U%V;2 YvmAjB_&(>'cb) iBdvK]-RBvqQoɝ2N`Az7qc<$A'W͝mZkH}sZTUZI:?". J|AgeXً҅]y`ޅj6ĥD%S jVf* g|ڭ~S'UP$t~ JY4mH9^"zWm[\|A"o]iUI:POL*)kɧV-7ֽ|!8K'p[*8h)ӚJh_(J{D͙* 'Iۃ* 'lO JDdE9`1iwx WXcGڬ% x)_I^ˉ,@ ǣwni|yd]jo%"meC/McƓ<$@7%NO8`0nUJE:ύOi'%Fo.QzeaWc ]޸3n[Z^ޱ~jlA/O:}툩֛ӹ;=;>|ڹG9j;,2)nbX$ 6e$c7*=;b_ZޘjTj 227\W@]ϳ#voUo|ԷteNMiF60ՑXO_Y6@{%y $P!.EWr4q)qaA T{,z3_l6*-ޤ&ަIy{^˫϶^XN^'H7>=w#. x0q"8xw'L+۵hY)HoZ#B`v~$_#%{$ `8 ]񸟝B Tz&\MwFQFTϳ6UU$~F:Y$+{(@\:}C Ħ-TNF0 (b)9VJq?ob]x.345&fxOqg[QUkAcDCa,{MQD~2ܵn?/M$deL="E1WYtFY{uP̓>yO>p~s$0>/nohオpw!|[\} OOjlM˩6 V Oy=$pwY_0 0G$Tij{Aw0.bJ2YD؆@ǙQ=8epjr}b :R˛I|<`;YT;cH'$(7'JJ`쩆8}FA2hWՂzr|8~W?-h*=ZhfT}i4Hj`a5$ JRBGJȍ / w7{%=dZ曱߼Gz@ޥOXCV]Un hn6*dpS#K$ , ;*I팩]ɮ\I7yY0aכ(;2,c66a;_mb]z8jYbrOqcU L&]'ӷ65GytjPN{# Ͳ%<kՎ7ΘEUmRu=s}i>}>yV^ƽͺh vD)8J{ `Ι* gYR{@*ϟ ޱvߜ #@5'W>P)vEQ\ߔE^]?_zz6gvTzf3ɴB#p}5[tw+q"Tu[^&h]Sjko-tՈ:(xl˩8?{dKvyb-\ $]mh3cCˎFR};XwEpw偪@>ś&nkPҧPz qIH}c&2{z^%k bZضj}&'Of{<+kԓׂu=rU|T,7wXӣZ@zݙ{@"0CZqw΀9lLf\y5"\յM ZHz1\JGJ4}Es{nK֔İ_$x_A'Mh^뺺ʢ .\ܿLE+[[ O'0=֔49ȗ aDZɓYT,oKwK)mHVoBz]VأX]hr0陼9T&{p%zn hRm_-y7U""Eƛ*FM)’H .Djf½|L$*DtjhWTb%,1eN#(3TVvJ}c}䣓I[&lͦ*CzK]0{/_U)ěTUf!?t(N{yW[Jc )㪌Y (+abDI֧>ԅW*žfUtwS cC鰭|qW s%P,mKO3QX.{uuG%Y]42!R*hv䜖k6SZER5qg@eHCM!ۢL wOj^eO~WMj$ף=љwv6y=ߛ6~}1+66^,fu]P+Xsw-ZygT6? Arλ'X77 qVP#jp?dxA4՛/M^z2 ^;w >'w^198R'.`lħܸ1:4?0-3 ={AN)F՞0n<@|[(WRU1MU >`@m)DQfW厍'ru(6Hp[͗§4na,T޼[;fNhz"vhC/E5 At;ڈ|~[-om=&a ejǘmVQ2Ʈ}5LcH|zʋ@kVe=FP$+)mGz::Ko/せ@QKIM$z6=\-1ч֭`4 ~R*u>|'ʶPZTM$2{zZ17}(ZPtPk B<͇z0 Faɠ6Ps 90=rZi*uPTT5+ \//^ P'mGtõ'F; \>ˁw>LhQҺΉ8eb#ZsO+w^,J?Vv21_]\+>pI]YUe>+5@S>^$ZiW ڄ؞ 󨧪^dyHwywz=Γ]*pdֶ=PAC D^c4@E1J?:vLU5rWDA|˵ۣ;G&H;OÑd1W6ɀTwj|9KN_>GgVblOߜ1<]&lMqJo@d@ ӷcXj Q y4u>l7ƀvǪ\[XQܷ̻0^,9Nbe*C,?2fk&;KQO{ǿU]}c3}OxHIv.;ѹq8ͳQ7@ph+CWᯚu^Ŀ+ٻu}*o?zOd^8-I u]οȦׯY~Ph ֞oj^P6l cbX 6\M[,+M6:ݖ.^t4:x\e+C~EW~5wt:i@>` jf̠)v$0gO1INlz2;YEY_lsoO?yUeE}4vLˁ^:! ?\.g_o6wo[AlZ359+ JVx|  x@`pW d>؛7Y fBĘS"ƠM&Rɧ[z%5DEN_REwMɟDwbi$DߠL-RMV&ĚyE&w-yTH!-h~LzWmSn Rc |KMQ|%oҥuk`u0;bH2;cojP 85̝Xǚ' !jy>w; MNGYF) vͭJ"=  Ni?&SfpDNw;΅#H'n̪*a[18)_IM&@߶r xW'6'a&M6@]/ŧ[>hcLr.h؈ZħM";t~\WoT垞Ҳ-b0>>=yRlB$i 6O׉x _?I?BaVT.fBXkԤ3Wh}iL6eLnw+ڍ9= $@]F-|JDKJb!ȁ>[ٯ__5tz~}I|//mr*|&gon?"'_=}xŹAbvNx^:Fn}{Ig%p}o~3vO]}, #q:azxAQx8^:zBvDj%i`G:L]dkK•@ghaV~ɗ}}Mm0k|. YCѯq{dWZ:*Ɂ ]516;w7NŪ^;?(R(J X[,&*TTDE$m1p<ڴAc '\=._1{[T%<\@s8ڕWMb Wk:Ϝ֚ڿXS:ւ@OaYHo^դ,U{o'Ī uY&lO߷$VROngRu_ }_l!S(͖UT\34+K3ֻy1;q6DF5 OǢk͠k4&P*=袂^')Kdw׏InEȦ{w_gGy} -M2ib&Y֒ZhF#<_ߺ%I2@#@1ڎ^{ ٻ7W߮/\xv.| ޻M{uHPMgC~!omL.E58Qm1%Ͷ}r[!m[)5;F~cynuJn/X6EIq/G ImFEXq=:CgYU|UZzf}&w؇{WS 09qnźױo?eUS58tiKAI⨆uDC?tc]+IUa8YS>ڬvK TZCQά7Qn,y@]lG]z6\:>spf: M{ckxRh =^Ӻ5&/=TbT{=PBMb m"I\,Zw*Iҗ/Od{K]Wlz21PB6Y=NWsR)%2>z(}hpS|ֹH_J W旑.M_<K`U^?p }9|UV'_<;poW˻O_9$B8^!E& f}^qf4zw2N^}I[~ Du32z~6{e> C x#F} AKڸ`i2$^ S8:.^~b)i4T|nl/y&V mOhM#c WĤ1JsB}ux0BOVo'P$"{m޸Pk`#*UDx<652 q\%ږT_h3f’m@Q="V{Rrn9)V]!bSdQG.U aVUz6m,iߧt~]/`O5 cmMzUt#Z;55VI:\6M`Gӧju +x<->}]>P4>}ۿ6K ȷ$Y[vZqvvqsw_djM fx{$u5$#ؼ/y-e`Kkmj,c "4@'m>=)J+5t}`?^ht/r#<Qco`%Ğ~ǚ,QN5<B%PhtJ&j%gє?Ѻj}Q?@J&dR"2MX Rjb#@6A\])ijh69AhҿO Z.ĠRʤTay?QN5p{[ӆ aX!T1y- p! ˇn>{@ @݋ kdFk3-攰<A3%# [62W~:U տ>|G1IkAPV=vcmw%K8:o^?B&vu2$8k}CeiUiuSBYgV$զ$_DĿ7RESMbE?Wf Dui^hn60JtBGBbXmKd^)uSQNSMiцk?5B 4KL'=☿wҩ-[5[{݉+Rz8Wj zžM0aWڤutZ3~VU.D fHM[F/*HwħKJp3VZ+ zAh/?!czϯaQ|pIjymz?3w@ >X:>>$ݪ; 0=Io_q˸<:)SeKn@jjȰ9tiZ.m̳k6'X \#[%̩4TȈ njd @FO,"?~ql;F g{ z>y{uQ$Q+sxEd9m|EшcKH_;U ɲPoPHDo,ܣg8ac%m4Vn>2$vuvu}x -&  fcfkNk.ekz{O y?iٮq(M&պ ?nڼO`xqVK m)y#V.dvEz$#@'@Xl!qG ;7xG6Tʚ{*4?C{6juctUEL_&IIbii)q^Ӹ.Wjh2}ʍ1,zHTدbG  `{ry^+5AHjfϷİ9vGU(bf{!E>bHUliW*55xJ) Kb */u|edR>Ϧf6җQ[T5HO.Ɠ]hWuukd^˲i:-7@]9dL;f}2J)QsůH=%x+_&Z!r+. ~ۡ߼V^(n! .k( #So=n= 5T .޿7M@-6ܣ**QJ")/m47 H)p>ˀtTXnq^0:' prѰ0F;;*bړx/*FCU-ǬU/z$xrbD2&×;hoQ:t+ͨ{{EBȩ!k־C~d$R0տéu,BZ mI`TǤ/dN6G$5wl-'(мn1v-zpr F{ ק\רN&FAFC.>1j;fiC:*7&ߢ/ւ+ \Yv*M+Yv>}g'Sֿ_+shZUmԽbU&M/@c鵊i ::jQzWNu3VˤqDB/ agy,jlNȴvv¦yo _~Yۘ&A3>Y sj/C$M{|(E0׊Fȍ%ր1 h\|yz,nx# (3d 鵞0 1=9߸^o׿ʒ;ϋ|Tb7o|\7Uq(nwP#Q "=vG7 &(`z2}-F˲~6AVvpwDx(2sčڒQ(Ӷ .im8v<["JI|87 *7oy "0BVظ+]ŐVG%1;d}Q!6tgEZdqڌ~7d54cOM~NKMӕ=h2_R֧ 'M+z@TΑ^9E)oSռx%Ч$5<ٌOq[\ve;;LNb/C@ŇS@51Od=cknTh;} [Q-5d໐ yُ.PV;r.g9P6?jay-`:\uoӵ/|gϻG_3T2as\5 <<+\UJۍ 6J3fb> \7~$rw7g rD։ra./RAYC4NTrի۟<9f?|GQ D/QSc|y홊NB(tZ¡XQd?41ԿMPa@UG:)ïoˢj^\/5)Z]/h{('ѣozHKqR溸 sʝ>!&{H2RV+mZLFڳ廯օ ݏGm^ˣE+ȺӚ.頰9痀 0{F$$2s&vE|LX ~ 5,{Wb-J֗\-)m.ܻMw6>6O BFjϦZo1M!D&AP']ƽL1&O\ǻۥ |:bE3` bYu S|BLhr1OhA<[$)Wq˲qY.WI;Ѥ9ẼehNW}&>}]:ɤRD_u}!A^NSؤ~:7$nx0o مܰ"|׿J7=91Y5tHPtB3޶2rT)@P[㞿) JjDZϝi [B1N&>٣:__@P.=QPE^kK<ϯ= (GZ<U[&k'yQC zv͌G=zjqG@}Q#۵|e+m|nl^ udzʆl(W}&\*. q(owf,ft\[&5b DrvtcBt3\>vfRת_\nrڴJ`3mDկ7O"-zK÷ZF5l?֭90[`rPob\@_2)Z[:vL[yY٫/&?&66FNtYL]_rr[ק.^omr 4NAT J86Uŧ\^$FݲwRF|.VUr#czŻu&I.T-tI?=YV+!r4z9 (Woxewap7w^/hsTcBBkG12ah EJ 2S!i0 &HWUn8Za} Ju>BJ|ÕpaWȼ ryfR4`P+%Z eU#j3"~'˧/w@*\,O&X9aм[‹ͳV^WfT\4TH?M;)cC%VG)>`B[+yA>f~{UjL}jc{߶ $@6=2^P{h9Q1`[Y9cQ$wmR-V7lD3QNjBEdVAh9im]=VbPĭիo0ĹcLb93"8\∆*F[=1/.(4a[fa!*J$Ǎ)w*XQQ!FmZ-!o>Tl*=szypANׯxÇFE(4)uM^IgZh̒ȳk=FKÓ7"M 4uEĠcLr OX+*j Nck\n|&8E$iDޯ$(t( RoLXV**y[*UEWg%a3an^ZLw/ǘiI{~;䝑zѷ7iC(*#~~\_l6۬v! }&Ka>a`6/v@ViUQE%I:>îc1͎pIZ,_@%[v}1<{o4}&ۑj9խpuW'Oo{wR,vPH*T$* 'ݠJ)'ݏa4I z`JLD_pzDuD(5U&J,v3.6~i@O]jSGj7EVGg5$֢Ez}2,M鴙{rp|}0@]Fc.߲(|S$ %T75 {QߕV1DS֖=)-}HS MvYeZyA~ۈܣB҃{F5XZPҬZoQPz c҂oxi}O,ɶĹJ#FZ7LzRPnBhYr5&'@+)(Q~W9Jp 9O}Vт}> l*$L&^oMR 1?m(j26zWĪ,LTw\b<*A';/ehpwgm@U%9`u=e@_T="`̳y$O6|'ٓ>D%5Vd>lT-dzO`}QogO?Yz/]&;(=w5>=S4lUy<Ȉش3S,@)Qў1Yv42dpj@YoUQT!ݽ|=ۤ頰n?x `4:F6dFj1N*4ISFc. ?8=c{-f}ؔ'5]dc2mj:"-l6ުKƵգ=dqU/&VJXHL~e h FORW+!(1󛱝VkY4re;IA&Sj˂,?{M>SU0B;=s>8ͩ 4ectZ|E+~!;F|MRlGأ,˲'%|z -OR yLAQ)kJ;sm1լ.}߫AcɁe(ZXgw56bi)rh| F2 9Y~$5uBy}]6uz>.FIH-LB`4sU -*kh#X'fAM2,+pwmGqe;wNolsC?3@QZMC\b|6a͍g%s {*樑u:%@I8tf:Hcu769>ϪHÞW1+@,|}c3cCl?1 Y |M<hfzBq]j:74w˴QSauN FпWjV^oۂ9-TŭF,V~XDr@Zzf޴mL#]͝ o@~L{q[Ň%ynWN橯\]<$W$eneN()͊<Ӵ$|[$րO: C9 AeLd~rFR]+d[5mqNSh,I]'LCtR<{ę`@%ޔT1W$:{Z  -aex1^$OeKŊdP>HR Of!njs&>ܸrcNW-ڼۦ" n HtXid}s2+%[_>eWwpsgϯ0f;P>9Fs+c1co (^R nv7 zSK>L-!kimxqH+,1{uc:o4:4,p:Ms $DF>DX+? i_^*j;˜Wŧ 1= Q+enXKV>Ō;4uY-518=>Z@F)Q+/L F(alڞ褩jG d6R*k (W@h$5{ă8Ybl}\K3db+ѻT_j^bFU\n6^inD|숴 S-дڽɨ*EG"rNl40~BP+cҒ.4j&]gOrPpR<8~ۖZey4v\xIRubʻ.әmoQ+ bPjכgYp#`块Lڴ΄fvm߁sOB޽e 0umħKZUlC,1.;ivuRVOߘDwsk[];8\Qk8a;s kD<9 F_E3^OI% A{hҤ5}=Vj%W2H7)=mTh(ʃFE𛹓vҗ[_~6`2Y{WչeK TyngoӞZ;Geon_o7QI:tMV%Zywil€ŵyPMX&nJ 6z Gw3VZK ZYDI-VՍKsH"v{cH$9cj?Q~"#ൄ[9>:;i{L Ǫ^uW9DЭt~1LH.4':rOĪ*<^+|UQ-;LgЩ悟} LﶺPR_ye#G( Ŏr<c61NqݕEa=ƧIR9m ~A? j!tUۚ&ը yfc0Y+zxq:<)+iCt$ Q%o\{$R+}?<5fps9ú*Az&P,;R[ggF9֝,7[Pr}Jw$ =Wlbab\> }s#dA-PUUߧW\ν%H ]& ={^c֣dO/&'άeYg|rzLTMFhӨ',I#箬|F~k9y)D{" J->}gwF/ ~ \]T|zA tA[\'O|43pߋ(n @?uDZ\9aсlغU{WY5\(*~iӇ]V)E1CA}!iIz4|<ҥY -),LK8{@34xԟj ST^':ZY63b"@["%O+FL sZ 4O Ӣw>mVcI8Aj~)Y_6ӂGQj ܾif4D'T/SQEʥ1?HJc{x&Q_GV9kok;Z9ˡxUYYbPWV!쩚0l:T5Vq y%Db2Qwns<]7-gGuwt_Z;ZC>@Ҁ R[8Mm֘nhՏ?*aЧ"IL7_Y~l$M1D|/.Yj^qj=m0pz>sN#8/8ħoCr޽g'ND5v<@>ɉnzY^epwǍ4h2ܐ% o!MGG6{1]u; 7ԝ4t^^bv'4./66j d'?Ev$@M4_YGj-~T0ls A[n:CUD$=B AESEYEDjy=1#X mct8AK嵔ЎCu$dxN./7#/NF`4‡5̘X; XD@: wAj;"|*m)c8>`ML%:}]Z-|#Z;X Uȋ&˧7zCA3hD%V=yiIfO,0;1 "u{66 ٣\9prv<*#]tcSsȉIp6`/F@[i$m|-K9&R!I?+37(tI(ҋ+όU][Y{lxVwN|23~5E, pnV+)c fuA&l =:GP*ŮO/7Ae5^!l.jUE}kc@cֈ&r ^yQ]3w Ky]v4>V+}w()e@\C CQhm??(x`0F6*Qh{_HZtpUQ)F7]Ӥ-8 -cϠ''oV/1E_^/Z@΂‘j? 7^WCxQpl4ίwO:T#vTN[Hō?<|j(C3t""iiv?xi<8c>SzD ]9l,ő5Gx'8N)JZ"8+DZ 5M-~Ph&H"6Vj*,MN _+ՊV[@2kO&;t- )߽j^aT\7mo]\Vy^+ ɤͳ]LnRc[Zpv5ÍDQ6Ԓ׺Nѱ2Z?:%VX6` _BCL-UڔJѷx*֪`9\QvTjXˠh0:Օ6h J봧i޿ˡԯ(*6=)R*bVπdаoCh܉O߷) 4ecJDW%`f]Lb}(ǘ H/vsyr79Cȼy&tOwZyP{bK_bҝqJC\_F3>y=$ᐥ+雃~~}x}ZC*scIh4 t @f߆"H VĻH H},>'I a]X+`khŧwYk/T$;gּ H(IڽD@|%PgYr,ϛŕ2U f}ɀiSeY5T%RiAR5 Ds#bGUX#.&-G:x=;_A":&HO0 *T82'@ЍHq_xn2.OiiQ5z*~E  uT?U=D$pE}TG^~kۖ 4ݶ5T(ؘ,l) 6e}ZtIfXTʄ 1,wP]{erǜYq 섫kv,oVYl<ү@uɓ^o̍iPU֧QmWJ]T$UTͷVDE ?h{ޚ dL=wQ77_Bњ6s3⯁Wӻ ԥIxWIk TnйaO0\ɳy$ӛ(VO~3wE\ FForUʞ|4;g|NMUmTUDXD-ֱ}JMC"XO}<۫CQDIStO+IѮv9ݦ &}o^TޘKC$VMͬo.όZMw oBg ^ :4 E?IMhrcDg+M9$aVm*=Y%*Wm Bp,Bt>Ri;>9}ȡ8= aakGZ/hqMUq/ް_#A~?Rc[NN-JtR*{CY:`8#+طfAk5,sm(eyVˇ?|nXdn3K5B TU*aݤ@][ a'щI9DĬe'ò/ (FcVYkn]$-JIBno\_ħ^$Yv?BCQs_^Y֡wkh ɤ@=ȸ.z~+`z! w }l1=\65ަZovVc{T"ZS$axC>b"Xke s f> 7S+4aci(~DZE oĖ'TQqCt $E)*Wn!<1/i8%z(#૨{ǚ,0ܤd;::(GW(| IG%U}.kd'FIuCu56aBhQ)8!(Dξy{,q^'M<@He]6_%YZhʽkI[z){iUmnU&My<"\WDECL>n [l{C F>ћr%EPIJB6'U[1Hw=}΅Xs!$]H?;)|~$%FIDAT,l#͢(OI5!PrxlU-GRgYPqM-4"4>}hVInVE90=9[3΅gNŧ_0pBՖLiv T{~S@2;؊:i@Eq[WE'A3Z]*촮w8DMZ >bMZʓZo{G 4vu%X)`S].vi$2[nNe7cMϯ,fZHҼ5ez$Jd?҈O߷P ⪮ڄ=|cCu9$ͥJ$ui!w9?`Hj_%&@Wj48ڑXB|ؒkuj 0[ (?({:ʪ+SXLrj2{w: )m[SŖ~+ݔר:HpPޱ}@EU++drvB1*Yǵi誟}]iW/PmxXz`IۻHPqӛ`Ge(%]*2GTPX-#p;ȅtK(T\ahȲjSݩ?4}K@\=cɤYќٶH.v{lQ g6i.޼U퇸,^tTӟA2;heBIh{>It]8}ڮ@Y >  wd _tuC@a4l0%C:HU!M͇ϛ:}vX]JN^=&v}$jk6 LL7 ] Y^fLƞUp;PEr]QjNc%PRYޫXU(U~m6Ze"Ys4*j7bg>OLpwTOҦݏQ3tx/ ħ17ɷm35|Ͼ D?x=nUpK bԀ..0iS_C>yCfOÚ^UWKlit8 M>jĴY{#D*PBەM{ujT#W>d>X@MTp="5%:) Ge/-b `W"޼N13& ㉁Ђ={'er sKK#Mĺ8;fR|EYeMH\V'Ic}h&ӣ ^4\ɾ@]Oi3&dPU;'ϖ5+HR[ÊpMpd$/e[Ƨ/7?*ke*j ,zV+7}[(cyZ=SJ8mo=EQL/b~w#7|7o"w0{HĂ1xOg;rzwhQ|fϻmflSӢGr[V@#|/#VmwkW>I''i5iCC(GY_ZI6ՀsGXeu{!Z} o~ }) ;ʰրlO2ZG0ie7ұ,^Y:/!gQaOczGoݩLнOuDgӠm筍;SѝPGd pyT=DK#7DJ "A[yk=uߎ?@K '>6W#u_hMdkˇ&&=qiz{W\ @wR6m4 : !|`8>tH$S@a)ҷ>t \DU>eisZ|ڇTyJ=#N}Bx\lHAA1ۗE{+"ܿs1R+2Ϟ}C$Su?Q՜zؼZWնfȘk汌)ϭqIeuUwH@Z~xbp-Yx:x/_ۋ&M%5Ch7]Zu?J|7-H/cX_H~gXkTe l6(W ǣqi_.6+ON؀ *ȉmeZoe4}{!Bmߕ/JsKys@F5^8-׀Il?]; <=~Im|zuJ@ HIOɻbluu_!U1ﷴ'Ew5\4ηT70ڢ&sM'8 A(ĘPQyjc4Bæc9QnvWH=C?x1Mu2m_tR1*bPJ)UhhJ`Q v$:*j i1Q i$INx2ɀ(I74A^*"yctfת]5t?VtC'Z7MiTϺ!|"2IZ*.(`zЖ>- .u8|{ CEXdc?L$J(OzqD."_+ Ԛ6rZP%AGfئ5皷蘽UVJ`ViĀ2I 2OBTms2fgVtAhưT[jb֮6 :IZUZo4>s1ޘE$KknPl^M.h [MXr$'߁I*U}kiNZ-kyjrWߢ}RͧYݽ$ ho^GM]. zJOTM>5o͖`Jdva&YDxJ>(ܤ&Nuuu8EݛUQ t 1g]صW TOŧq,g=?^i;b؈ O3=~u]^-g*?nO6ng\7W?5(W]c|'̓TSRC ẠD&_2toF V8j}0 ("&mhzẁz! dN yjP;ouz1gTā;c*(4!I}Q܃Թ\rak.I˕Wsu6^i$]*p?`LjBm42{6E͒ x^ ߶@dPz2RܯTFH% -D\}8OjY6Ъ#C%WkB0lL֩>ɁÏ@Әz~mj<=و]I5M vsߙ=xt TeRS:G*J6*W&rM9| ?Z=-z W >%iRW50n^CV'+uIT?w ņOyVW/*lL؀qg8>\ju~:;i'_\s)>}s*!?[?b}" zƓ `4;+K`+ /kyuE;1UJ|ri6|%$VʙzX IR团%Z $|볮;Ԃ`-z0nxya`*5yD>Z裂m- Mhh,.ה r]ꐏpNu2J+R뉠v߰`Mhk >1G${7U l.6:Q^4Lq^(-TiX[Ic4[YsMgNO'52Q*_>߯oۊUQw@Dn߆tx13DlTuNbkcMYb*j`:Sd4(rSck {Y}z\pJJVY|{ e>2WшI'X $GjJSVeZ h܀(uAaZw$C-NUulp B,MaH>N>7d UjwS\K$)CNos&@úkd6=I7鉫27P+흧77m5BpZ4ۋčEˍX?zd+S7@]I92\鸽+i*-~$O^w@N6|zՀqM cmG;`4[֝YwlBvAWZ7r|F/吪MpޏZ,h{{ o<ɻecﶃYH\\X,Ҵٮu(֮yjgϞ}86,/?Vr'']pӱFu-*U5+! {xAlM;U=xnj >xD ώt^ F>rvߺWE<>S;k>1IUQ sy3enKy]EA &A4#"YZkd u~6JY.JMG%#UWLn$PsdRp<7(բ%-WO=F;r<5O{& t\ 퓍'"@x#/ ã8LgOs=ucʘ轒b>F2ͨ* ,'CV?xl$ [<ŗwKd _<ȷ ;$u?$Q+~|e4R=IōN+fjEJ\^;! MDŽVAlÔͥ3^NfHJf<,c@=ڌ_p7ݟYS>GhxtjKƺޤj2δ(޹|ϕ H3ak~9q>2l'!'˻k<̀ n\u%7k̚+/^[흿&M5vv8(6yI)[l:YiZV^||]"JCTeI는 Wwy;{̇"[ 3r^+"A4U~t7>dѣˆT)] ;Ac[vB1Nvt > c5,F-鷬N"P;pQ)-3owU Y=RI2}3`@iUld]®>H T:7 򹼐`r Qku_ 2Rƶ21dԴ o¤ qiਪȷm2c+ Xq͏jjcE\NUaK_aތnٹʻ:{]IAPw[i vC nU|z;QQ%IQev9DWQIh-|K%poJ@p؀rY۞qJD_ {_tZgb Ӕ$fy";̓| `[nv +}̾ 776}7ogހ?^y{U~2ATeɖPy\x6Zޯ/w~rb& ,e)nd|6S ¼vwAD6V&,jVRl#>c۫7l׆jZ6˽/F /mBMGCFt BO H&?5>F}/"#-5%*q~ ^%&ITIĉ}[m?̔*&y(O=0XZ[ʌJD1Y(m5?+WVu3CiTunoE#Eqj<{H)ԇ4#RF 3"l$sкih}&5dv{TAE=º_OCo(}\ ʌVJ5i}]N Λū;V!wcOgO`!]mb"dY"`yG,4tQ]$-H0X:NpO6?,V*dQJ&wK@J$.AKVz߲lM V'>w LAwjU|ORnx5!p}[r{ݟKyg{ZxY^Nj2E\@6üb"dǔ΋5-# ?}L$Θ'.@] y{q)F`:{g~%0=]sLm2 uB7|AZ'SQkepu>:ӳ8˻=/] lunb !9,M+۩ny?l'de\+bܸ}ki QmƨE^Mkv w_Z@)dU ͅib 90x:|6Ywl8oY6ŋ÷G?vvQԚZډUA\ꨦFjy#$8}fuC}MyL& Έ~91ȷts>7c+OJ0[ IZx'fS㷏f6bk&1K2%L/MEixo&3~I5+#/v>]VKSuG։յ "#V,"uVu=ޜjOى1޷oPKܰږ76VclJkC칏45Ud%M$$|k_ב@ VK׾x3] 򄮭dCJ|F厞zo4dۮ(WӷkތF8Ujaa+V*~hl4bC!%5PWo6|zѸ/-{;!pX}e؆;~<%0eeP!&i VK_]>Y8geJ׏>pUFLawym(׷7?vYY5 \ Ë6&-EuPp(e.< l2{*6Xo:aFmtZE""u (ʔaMzzxqM.nTU/?E"^+JG4qXȤU[ޝjKEz:#:>Ƅ*`#(muG'ȌP83IfgQ;i3ekO2[Ls ̦XQoTBRMVnڰ _Vt5]UIlŨޖTby{/>Yn} {twQfV ?.e4䮈oӓepqBjFÓFbkt[Yl'a+]/ECLz=Dr=puwo~(1rCDm[,3 q*?pfE;3(܄~I~šWU% 6=vM& H>0C /w9k DD4OX<޿׻/&qʽ@WƪFZZ\J~Z8ӄ8 ~pbZ]?W ]e \ %Y4W@>,鿢z֪([:IC)׏G&_&Em4cӈ[(Fh$(NU7ʧl =lVU?>ˉl[d1=t5lY,F{t3k=]W>I |M;imh%s:Ktv;NO |Q`[;cÕ i~55bEq}>x*ħ3Ʉ-JƵӇ`6B(ͳ(ɇ~S6ũYMǾO {i|lӹT,Dv"F/sV!U]b>ڥsnݜ N混i.>}:<g:<~zz_U nXIvڇ.ɖIf%/]3=ƀثJ>*ch3D%9tлk)c1TˇT׻+0ƆԾ{/!4\@:KӴn¶F#ȧ^w/Q2iPĜ}͌/s+qFM촯shmiJ&cYLAYC P*&* [) A #}d*\=bҶ͌i"Q 7WZZ`4(=O[oNřF»M&*c<$Xs$/V?U=U9I(%X͏+誵ntdB:rul\ 6-8c* ÷_,B>eI!n$[*$ë(7qK{@v;{|| GFfbW RL@[Γ mPVI7}l =&SW`|`S(VӤ6lZ\~@@z\wiwu |H*! 7\(+X.Dy,Vk$xgoԖ}?8z x+nOn0:eTiKRcUg%[HM|89FISLX# \6g_-؍=lVERWoDNާ}cӋ=:mjv-n?mG@wJX5MwI{i7(>FX vNc>IMY`+A&I,`C+\{$Si2 ebt~ O91F[MsasMBuCkx[{9W5 ] H>8#„U'?硍R2:ܸ"-N掝q^# P|~\cVewYcj)@BDbM'ϨPM4%2ZEPQuBmjՊsGyJ(Hgo_Hy2 Hϲz IrFǛ&@%zO,0 aEe.ǥI(z9ºISS0}p\wM'-y7Rk@Z_b[0J v؈УV>l$xhdIk }>¶ @|<.''׋bLPnq+Jby04uǴ,͖JmF\f|ȢdivJ۷H~ck֞ən6B ,iվ >@eF/=HzMFr|e>R?j=EW4Pp4="M͋_L0T!c t.B2?ޖ\gJKJC>J6 jMAZoBEcTޯ? (cԂMP#l3~ QMiV6.rc5YbT+| ^4\__]@50E'Qv=~(~s;c>@fM#Mu}$#]( s/ѽå$ .[}^s_o3l0"]>}kÕלo{B#eMfiw/RG!K1{]r۶Lh#_ 94=Xm=cAѮg1=OD#d'mԟDIOgCٺ-P'Em2΂mb{Ďְ=^\ƭU @HUZ| Fo+ /<HW`<{qؐ.Ѭ9˒ݙRӜN5mG[$2y֭e$U#6 zT7~pLX]{*`elPN}M<ۦEJ#c ^xbuCߩp`v%}M?SI"0=0QҎv]7?1wF=>mN$"ޠS=r7]M;ٔ=_WOY'M&Ah&fyAu/T&@ll%j;ݸ7̛"+g{vD&cx۰Er ԡ 慳DY{e#e>JsXl{>Rl6ƴE6#w.8Z=df;Tԫ]`5c{3fkǙ HH/5Y`+Bx*8=>'dAoyLH|h?EfP~Lԫӷ^@H 2Mm70wg]re7 %h %J]ɟ̀DV^!:vӑn1R0mh ,4pѪ}kt`>$;/l*&O ԰sZ)al1>1h[Dt @+iaB9?(.Oyì v&ljNQW oܻʐk#n4-N,҄=M -W_OnYֺ7H=- U^+(p{.? ZR[}q~@T}zS>H&<@K~E^dXz),0yfv7M-X& 0 4֦ ]hXrϖ&"!mGZ D'2S=}9b۴]ǚvA],1d@@vbr_zxX53#?8\6Ǔ:5jJF 3!!~0ѱh&騌")p{$iIxrRP0B)rs}UhyA!E"Wy VWʘz93J>[BMD!=DfCjI,K>rX\gв̮eU7ȍ(p^/9 ٿ^OLO=<ث+om]<ɬe:hՉ !2YG%}SS]H9{])Kmf2(/uũIJBB)W7k1#jer|#a7pWqM=){O֘ -!mf۬PH@,Lmq]0@ad˦ſw@BدxJ^{g/K}zv#E[A%Xc׎C"to8| ?T 7h8_7~l@ mvvXn9| J)F粮l[sXzpCmt\1O/N{+qLv̂) г YĀPG0O1L@E%~R(f|d_E.=b!Wo/d@<3qmQρ@YGZE!ơN=g!3N'1TD643֩{Lt-q@/S{*?e]<!>e{t v΁]_*1 A*8O%&oEsXg^bƤ8Qߔ3+y?z^v ;qQ12Il6AgBO@R,rUӀ?a>mOVr>d:nB?"U'C[(CR7ɧ'GFbA&ZDA.-ެmp? LiNyXL̝C|/䊥lvNؘW^Nj-/9:{et59kI1MLd^ T{_ަQX-I(Dqc٧ϋPW|;>71| u᫼|[m=19Q" Sk9PRG I;I(IEip C.9=g2$Qtm12# !"^cIYGXkӱ o4L_D (< ׼ꋤLxXhgNz"EEzzJ&3j=QP8Y 1)l|=ATB!R |'7 DLӝqTFn1~VJDkh6mdHJX} 믞s oZ-;񹳣q1CɄ@f ?=#t}FSgEF?X3Y0<މTR"+BStV746ڶvz|(5P$;77m}mdW/CF W)pk>aP<$:KH 5JZ&@0f ,2z_9Ї?D)h|wMp[ێNF&Yq9BpPmoaSοP`X07 ~1KK$ߠ~|L`ds q^O8z_I ! *JV2d٦ifc' |>}7zo]tdACr3E9ްO{?Sm^htl1J~]H'iL}4=fI+_w>QW3RW~6eF  qRok10VE1ZŒ+':7Ĵ|p}%=8=ԢY #X?1D ݘA'E!BD gR(n%oP} I`9D|'#Oԋuν! 'ቀ*zA7{mDLj<'sˬc 7("S ~C<&, =zv.46+JC #uX׷~5sl&Lt@g!,rHR[Yuq~$R6IBH8Mb41RR)Fx#B1םl0M-R4 Ɯ)CP݈ŶX <8ͩI$TD8#+YzA24g|}@gb~'}`>ťf XW;PL0PƑC}PShK凙,aTxyIf&5cj%H(x5{u4q  Ďud%$ 41 Hu <0eƙ`h@n3W |.4FeC?sn~HPK<l"YӦ$1{ZsBɧ̈́@ g4ԣD ݟ9B]wXv'#5l6'ݽ/BÌ9mI3f?75}y%GeZvy\u>.Ӛw,KAڐenmR+ÅCWks{¦!Rd*bRӧ5fP $?S/l:_q\mVF;"oY>e^QްO˳'<1\6J͚vW?PWɋ/#[1> ޽xwD) lL]s3GWUQ9l=n,R S)t%LNN9/||҅@X~FK@]!y1v!!t'9gHh_&E5[k}R~bD Є)bǙP2O,Aуא%d{׿/@9Y+T3'/_/z>ݹu| )QBuj~5+HOePJ"R^1 UB#OZ@p66ܡ$>#[|zO(lWG3 */1]մy-" m|IίQ(U*c\kH#xn4$XC<\m{0K?}_rS'U?^f%=iç5vs6kvut΂wT6t t·pٔ9˽oȔ$}w{8"#4D=zʘG1Vܿ{z>HUxWMYQ}T=1[ԛ:†4P!ȞԶH4Tܸk)U;](˖Mo~{MϗQ]'7zId@̹w}s_񆐳O[~+`%-:;T36{Wwwٵɦ?r}*ú0P@gr}|R#M]'Z;AJuGKBc,;u@]P9 8_ ƄY i|>xZi8{ʾvͻrvmgvvlYp{> /D|yO~ `<j=q_;!*CH~{GAD:*u9Ȍ桐R ²j@]Rk1sԿoH=g}~j1"@!MQXNAڶP:TH)d;Hy|oZ"K 09Ddz)__A 8jpwf/ID@FGO̤ " !ݏm8_L*NXf`O:ynn|"_w#ZHi\8G Z e AZ2S5w_O1؇BPG昏vPL'vIlRTg᫞e.FeBf7KPP~4v R .QH]I]So[GVU=-b|R@k˥QJ wPf+tUpcCT9ecaNIxLo\0*l.I:+9Ie_ 7u( 8*!Nwն޷ YS7Ca(dz{: θ`{LK9^Y͝Kyh}rƻYlj~7URc#a m+{gǽ_r!oxz8oo0PjNw~p E28%wh٧*C.z'M&}zkRI<okt5ꛯ\]lDRILw'+j BMӓ&G~7z\D8îL@YoP.~2~W8ȸ>.@Ozqখ'"^ kf6"=c[{w O\`!b$%qKxp+R1A=ȓH#m>oÿCKR bv5l2[jTǠv9-%mX.) ?)d P 'm ۢLҝ>j|{U2WWF8&Cی!iV%hBuU7},Y$62:EA 4usJ8cσ'\ `Aٞ%c1דk8+:ό _^x" of4'!B'4$TQ$$ӣ˭}&ER(2B%bz6ӸsMl4/su_/Sl4MY$'g]'OrJT|r]19d@] ܲ;}#'ÉCRQEE }pӢOXfQoҵVa:ZIh23"wi`/*t^0_f (WMdfz@TٜmV[R2()6aKZ, gc'. z@>iBRzoz Ǜm /uHC[vmm2YFo!^ znM(h8ۛ|6Nb'@P|EjwTfam量ï{D2_]0][m'AQ&6/P%@YO730~XfY^3&{|9I'=}~Iы>zp#y*H76s1CP^c\D.K)h\a*=t>u Y:QH3Х(ZH+ ms5_$P Ac!,ОΒĩZ_oocux2_OI>󊶿aF:u"+( ;\Aosf/Zxy} $@EzT B@ yBDMoJ&ĹbjU53ϤaCX8ų&x5CǞN(Hx[HZ;q^JӧjO*Pq[EyX.$\]dq3z+Vd&Ġuo̔><31须mӣٮ+> ف4D̍]?Mn3}B0S9uƨyV&KGI-ZGxSmjQaxч]LkBhEOF8U\tDG62.ǎ=6!&#JR$S$_#oI?E9H+hx@`41zU*DGmӼV6u@D1˩/}9~Hѝ'E-vCP?,sḐ-bϞh=w)0[ZxMqxfx qYcDhucve4E fk'8>< &wCߛz ]ήZHgtB'նaFwn_~*SER[1KOKx0&1e<`uC~ztvzu9}(nM߫ Y-8"Ձ}zT5e@1D.X;Ct?Q iSz)c&:ta0.5!E1g ȴ77w%~!bg}GO6. JP(#/LPZmk ˥{Dj.KӮϹKayS=1h-˜uR!l b.2*7O u,sR)% ͤrz! wR /]e /d3Vͼt*/a]TBPi笺~9["[.S~V @Hv'ly>(u- F$(xB&Tw>H1& x$ >y- {e:scĎأ8 罒5[$$IC"ݪ{]֤@^Bi>'tv_(g˝O(>o56_ܓHnEҺ_ D{V7٬inuqEcom: ==2v&S'>Cׇ9b\- 3 |l7ܾ.H٧vh)F؆unP3ĉc$rS)Q?;KSL$Ӟ{ Hu*U۴.TtRIG^'L7OOHD *@\O1̩ɚk"L`q {vu#HRd)ptQGFgy ׶mS͠1o%@&c& PleT,(˟,ohA=n\RVLf+S!;xH:V 'C 1q8: g®n_,gK@OAR5gʠCLص<Y@R1{^}ۮ@Bu}^^05#a!i2!T'׮}`БāwA*aW vntx@gԍ;SB8b[˰:*q W1jm!̹{QthX/EsA-UH}b<`}umOX,meۉ:9=pe*7ؕ8?'l~ xhⳅ2?Tu~4Tg.f > b*s*I(fRG褶ԃ= JJ궏 "H%r1,^`T. "p32-2ӼJ7sF%9_:dCcodԴQ)Ğt@ ]vt D<Üf{ ]8_dGM(h@N.>CUIVYKԵšݏ6yCl)ۯ۷3WzhsaX ́ǛWˇOVqmpQ(3B6WR52&զN$`1ke2 ;ZYSFh[0HV(3mS}N]1.Dqx}rM%ږhrDN@ +zΰvUDrRkM~"*b0r+boC(cf:*p2GqJ yzX-]kO_b_r%hIƑtcar~<ۮ~Ze^m3mߺ_pπ/)҂m#ڼ80q$@ěD=@7/ֶ/TrXa֟ 9I} VwnMUml̵ 錡+Rog .Lwdj*+> E.af=)%SV - ^x0XE]oGثq/7livÌ>sy㸛>Υo`A96 50>8p!(f)q7#4 D^H{L>I|rHԎ|ƵNTs7sηnC,˔j(}eu}cX,|Mx9i#٧gth/luZϜǻwB(f{WZt!&: nچbH[G@U{R6-)@^` \|o؁t'!Q`/5d8' J xE@(˘l/X7^-\Y)8N(K iFۧ5S-ڀ`zck^J<:,ͧ|7/Ne~C;z޾P>:m$Jyq\RڢKU>5V]tīe'o|j`gcBJ b(?cXX[ ʓ-ȼEx.N&RyNkS,E2~b*3Y,ͫZCI. 'Ɯ4}DN곸f{ z'qYo )SW"gkqget2::N*-x!hpëR?7Z7I(tӝ`)TZNw>/2= _`=)k} qϕ(e4uGXgqB]c°3C׌&@w M6́zu C/Ke5m{2=Fyk2Yz?X,<B(WN+ mBY(mQ2iVU6 q!g#Is, Ϧsk[~'p^@a21^uCBXeTP>H;jIN"RGp~]Vֶ:]jx|dK)Zm.9ͭD$.HdD(= ̄A"03귛O_?>>? G]? rKh( YBl6@ke c;˕ē/n_1zed8KpN?"B|Fp\O5WGwgX A='Ω)!_SÈofK  @>cK*5⳸$K }wgM$bb3ah 4M̲S"b,RFI}#DtVΤ`1F`nu#~R%d1͚=l L#cow9oAX"n &vАku]Rjn=Zp z~[?~$=+Q@L0'`OMnb. d.C諰/ nƇV 2|0@~8eJm7}'#`j@2hSqkrG09`>Fμg1ZxP;pԅn q(сm,'޹]7 "|\??z <ݛgNʈ)H B(ڿM8M'^so4$y*  y4Pt$4ϯA7&"X|js91)1%c1Ĺ N$EFҏD"!D@3AV-m.6(-:pVq'X#u?]ِQ+|# -17gЗ@&l7L#\PӇ{tBlu/o_ N9$[l'nbfW Km;~`6Sء3 >8.*~6C2 5 q (1Έ|ÿTSeoW죔ǻo7nȳB4t~c8G p-ɗD1#Tt?"^nQq:6LͺYթ4DBT>f?:G*b@ kv%kUYD=\h33ovkMס3z>9x ËHЬ)8vvt G5BRS]:ҐBe'6-zpCf\+AH=&B<`&a" !4l]g~ 6s:gcvAָb{Y`ЉXSZA>0uv;gtc<=6EϬJN!)\fpaL/%}'[?b~ڬ]V6i\34_JtMض @djumfN }LYUç`+#:NKr ~LJTHL]ʿKl}EȞ0ED>aGG9: )pDպ3Ƈ>;  xKO 4mȫwYL]RRʧk܉O!FP(i=Qӗi b!U1|Ͱ.9۵/e{OƞgEb+8|h@=O;a̸PRrvNvڳ&VkgϘ4D b)PPHy:&4c/MƁZ+3ƴL~2FʣPU(dOPN3?ЃO+L7Yvy"03> a`>RsJMԖ'BIH339SnmR2= κ6룘>`# #B"%jۮZM.YaEeļ]u-̢:R[y+#^Oq1S @^>u?n`rb #}L W辤}'W~³P>ZI7zݐ' Lvs.uiUnnݝf)4e[tdN`oe^]ߧ'Q( i66&/~3FCSfj@zM0msI^^716n"37(#O:E e:Խ]vQ ;!4)tsm׵V@}9 (cщo'̓)Z v;98sŹRkCsdW~q3|fuV^cizAx$K:¤l)cd.U}k+*J Bv|4||?Y!^^⇣\ip ŵ}i^˛0ԧB̈ey|yPuJɲLkP,w^k[/ /9R|MG\տHUBDB@z`}(4ږΈBzٶm)XQ0ҡfC;ETY?^>rƴt˴"6W:ei#-o @rV\9 Д%[D4 6zT'2NҶ-zԱg,d7=+3o?[3K9 #C1=ا!:UA3@TȲU_bs>!mPvw1nX!$}6<;u̽@FcZh\ܮ> a]>mMTw:[mkLTIʊ3blIDAT6Ε[9~ӟ=PJ h@MhZƮA8 V؛j:NA Z+kϚoSƶp:I?rg? ~hG-^!Fod="l{ -`b"("> SMF+&զBW(.b7,*gq`$h0na<(ZpDQ0'lkDW;&K> 3QyVH(Y@f ]z,s6s1%*7w4/$VX9&Tt#,.WG.i⋡+E)159)&GS-ZÂ]%Ẑ,aʆJIHD2Ļx`.'NT6X^k[:pUJfHLvgw4{AoNݓ(qkR!2Ny *`qz6ב` y@4n^= @n,oku`E 7N]SAG#Y8R"0K tc }-0`D9w *\̙sf4$B2/>Gw$RR F*)xQRۆj˙x[ $.aa;APj;{!H~,w 85lT6=q,fO0Zl5u~[: 7_~y0Idcp9Ꞓ=P#:hTE Oh ʈ@^oWmBLJ'mž79r6r1dpDl305+ jϩzg nnj ̱7 YIy.2D>Tk;4ijOϜ~i|+JI3yLr s1(S*͵Gz*TOqS\j-s]/" ]%#aa_tDN] n#Z8Ĝ-႖u`Pmr΃g ?)]!>(9s~ /aEl %(q/1V2 JJ0?P%et4s'O㖨6ҩB UXnY{Yy>;30,ePc =@|ڍ0a{1ٍYE);k`FRPz1Q=~Ej;KI<!@FoIT"ȧwİRRҖs`~IRڎ{$6֣ۥ'a/ų B^d:!W+&2_ߏv)gK }ŧil.-+F jIA?ٰ3iJG?6.7$] ɴ%S*s eg$<rh¶Wļ\ggdM_]Ht"0nsvk^s=# J#kCFhm4u4hyz?e#x/`N kD&d!xMJ2v:Fq)˕~]SuTCJ*, Crh9GAغa@Qم<*wW9}s(i}F.x+><=$>k{u"چLԇ%)\)b 28@?77KL@t]B0]itRG/I i;HOz!~3FN7epTiGA5 ‡o sN*P)Fa[o]7ˀzx%RT50i+hO;BxE; &F&%`L+_@93|jmII8MBP1ٳOk1@ `QX^T"4cĎ[+57CI`19t$x= ԛV`K$uJ$;_ߦ_~vp8B$:D.wtW/ "ϊ Z U2,c1/FBb)Y,c2˭q|^@LՀ(ojc]e ~Ûw~}_?gGfI%_uK|uxs7T}GٚMJ%GwFOH0GQo']mxd=!D] -O6<fٗYN|żMk<}ў_/zff Xk(7 j9$މ:>)V,Z7m;`V=[SXVR27XkӲ싥Z@ w9ԱJoӏ޼+̯4Ϯ!$ ͊q|JdgmgRO /TfjLm>w81BR\m*ݲ:`k*t4^x d&'6":`^~B$ňxN,տn/ꌟ4U@`,vK$2^hmgM(UZ3Cf˻;s#;/j `&&ϳ!%Ǩ٬/C=73ás}/LU6QtC K>9@8O)qX*p]s"p 4v5#kۢu_O7sR{t&Wmg,;+fûw~6!? P@'Lf0=_֖ǿ B.M`݄#]~H @s0 ՙ-u?B08F+$!Y*C>}B|t6en7}=duc\y1j"]`iq:m V!=AQ'L7)$˘@ޡN9/_τy\ߔ~3vԔG@K~Xo>n5İ&IB7] WZB2xΗ:~L_(qQo]-Q%RsBj ԉ,[vAUeJ~%:}ֆr&u GJsNxn~rKEe^,2 |"oAa?'CB0Ϊ&CMY+qO*f@h"&F^>|>$]Z<=^:,Pdv O7O3Do{tS#ÆGw> Jg-Rgo@DbYGHĤE*ÛꦩhmcH4YQ6v\lWE)x f0s7q0?N%KH.((,ٶ˜`2rY烪2-q~`̔/{ ڼaz7.bvS2m`1TT1m#A7*7ɬxLzDzm> RD8p;MY 8_n"n9D)Lf1?@˝7v@BeĮӽ(} :4Q اܽ -SMoוÑ)X0Tۣf;qg|)|Ti#;BeԷ^>hR :LϾK o}Af3|1 f ?b|:c%͇ёG1;Ѩ/q4@pPJnR# ɹ`ط'_jor y-F/)J)2sR0UcQx*qh,7J +U^Zyzj=慞]1+Tnn<=}5ǏbQ^JjW"%8Ġ92UBQ2"7\DK'!}瞞U.f}>t*og*K~B=F6`tUI,ыw%ݷL8H/C,mk!6peM]t D G)WZ)d fMzf{QЩ= ; C8H  @9[ɡ՟ +9n^YkI0񷿙a']kF#.P9E1ԍߖ۴Vøbz ,3 Zo7KU'VPSА)hEe">Q41ԵMcl~K:kG)d{zR2RqTZۻ; `޽(BX.%<#:fylSOibއ+2 TKνNh/2}O->`8|3ڹtr0`]{w97 <Ÿ(3>7 =t2 i&;~qsoIWIq!u2OǢRzJ:hjHmHm+Ab*Roq S-)_m"U̶9: Jl%Cc޿swk}A%X(w#/u@90Lt5z/-Й6v5B2Efvt'2M?%3uc"`:R&"'YAI@҇-?`k ~H0&ڏ'cGЂl{~\^뼜iER~}sLgFEiMs&ϯ9[ d`.|6| ]|\s냖B TWOw .F|;uAֶeBhBҦ:]џZy0B\hۘg>4sYyAԴX7Jt<Inb ?JpAcܕtvf.'!8Egz{ʧqW!. @8g=JdP]t ^XE]}$Ǝ/hk7 \_)=Sͪ.RJ`Bi#m7:CMܙ FT ]vY'onSzF/:h?2RxO VU@#J~~sئSgԾXZnۡRe_~4tJB8%1a+3`(sL>逸&(w{~ ^puAV@OEQ \t4#bnbWO[9f)/˟0_dDG3do_n[n_0(#D,B:3;zA6W/5 Z{,GW(Hz1V?hJ:j}(,r$?Ê噲6{4Oǵ#J75.DFQ56V2D,2em)E  MG{zPĝB$$TLSۛn y"ഽzm*,Ts2{ThXZ& کɞÔ?mSc`/(s~ia&~7w7ǏnBy"H }Klq5Ŏ+@KjwR :֍#E:^ϱm};F -,(va1(D`yxZx'΃atW!zB)~؛;G[7CULp_ćG2֜ ]UJc^[^o9Il᛾_;6pX)K }_Ζ7`BOm)h>BQiNgG>)5vN-!T3=䵓HMa@Ckw eg|x0D \vImw}\*U^f؃w6zwzZdy+\>~h0洍haF5 j}(Cݵ !J%}b1.o \>b:fz6q#=8D, v"qeu{H3  j/v%m;)Bx 1&\;=l:#݂{RQ]zy;Q`-=ӎED Hl⳺Zh9/~>{RmJ]ټB)R AEVY/fզv*WιRZCKaJIa`c1%/&F gfcQ9#g1x%t峪b^mEg~/$Ǯ40Άxuq= k>\.lrEVW 0f8x_ KOthCaJ aCGSko#[g+{*DnQ7rl"e=ߌ28Qz_HYh%#썼n @1Otl 6,gفo[*K*9{'޺gJ]7ɧb@Rj `63JzRqf6~ktBƨd6heZ2XptPfҊ=ҝrH+l@*b$U/ȕ02tʐ4אRB3m>nZ9>_ixJt +֕cͩ"WBirq4V`&eZٶb>e@cm ` !xmcn=Ix¤ P3Sf,3Oϸf T\xd0|EM9 ;dK5`i%(q_}z 2lR}:Bf7W~Oj 0hG}XN;mY'΅Hjq˂8Lߞ\\uy.8I?"\=Zns4q_{_ !^bFɁ彂F ZӟQ m0μS{j)a7Vb]>t5e}J\>vB?Rk eFU3##!8HI1|^TP׬ݑcvIf 5m7Zq *3x,3>mc7%#pP(,'=22:YڥyR 5 q` :2R]fWUǦi$ ?R'ĬDtf>fRcr^ |WF(i)K{0x`h;[HC](5+Z;`izP-g8^[-lySB!"^bȀ)J7~Сpwr<# Tp_ @7U=. eSB1̹PUmQ}c(H )/ЦLXC๛PFvMC]s*WXQUz'K};C0!E"oMڐF*UOAD>@~H]j!IُUZw3/'+9~؁=Xʙb$ȸnYL#Ғʅڬ3A).&BJa{/z79<>ܵfCq53%ĝ PRl>B؋|m |׻@ \S1KZxBXnP@O ۥDs?._fo^0uR@ (RK!E~V?5(( SY PD,ls̾iJR+sSW Ӫ$;n0ɁA;^0P*T]y9((ɠN78\N煮cp~S&"^bмI-FN'ɳOu<;2y$.}5<%i^(|dY)چ;x]xT+Z\Iw&F'[Z !mh|1sKtQGv˩6 aU>F#%OmJyG(]>|?ذO߷]ډ:yy>}"^@h0X@ /oا>eBkh!t=Bj{yP(!bnJȒ3q&L.R˦عV]J 8K$̊L 8v9jfpR.%&DꆦORǘɷ%sKӘ~׵am*Vҍ)d˟VMX>3@T|_$ - sŲ̌I)%@`17,Z4i ,t 7(==AbN;v:;q"n'.E'ՍPIxv/ WL2MKibNö |JURԕuP-_쟭9{FR|oڈ˅jJw]!u+tTd5%(l mjjG@Y&ɧtꮼ|לF&efbYb> ( 8L^92d]g9'2I(=HҷV6>%:o`Q\wxb/ ڞ`8 e<6b!qje[wwLJiݔn۠pNa]Y7 2I^G$<VY۵2b.gŪ2mTkAOO8vY%D&g.)D)fK3ebDb59|?Q`a {Gop-D5@b)D0ڠW&!B{̄h=s̬u0\va'~< GL^zSAjm2(g]u%E9O r,@:6Xv\?מxw~ܶ QUXyPT5d)R8g#rB1J"·|] GA)K= 0Ӛ\ (2^J¶ijG(:]3^L,)"\s;P"iM2DPZb'mP)1Ĩ j{VJ-8OS E: ^A'.͗f=2(pȻ" ӣ")5`Uju >֭M,!X!49Ȑ!pjiPly_1s^^PrCI{!y~OX۪y FPcL/g9EJ} ,gGFf'q!'6Ĩu;zs٧ٷ_^|㤨-|]weydS/|OFƉNG)|}'މ|HcGOxQc)(ORщnNc?P6.F)+:iy>CKDk;"/y!;#ދJm, NNl{ǙY @m7Kb] )%g,@y"(!$!Bt3KI2/$o@yDY:j}VWp~xle)EX5t|'6pip6txƩ;OJ)%}f|.+3j yL?)d.(zMHp F PDp.R(?%%{wA%J!Y[[*)s{qB`}o!T޼=((EDfB*qb9Np~|""zK#7#b`d4\@&-z YGE T묜q.ǣLu F\[`dZzCoÜ'>|:h~p=&JHO 'A>lui-uS| ,e {G6=]&ܛ^Og ffpXsV2 -a5|z.J׺G5:am[Ky0{w}$ͨYN˰cT2%-_ue]ژNe<$B ¶^w7/5ms2٩%b$*k ;/#:qYZ˲i ?@;ӫ7_AAs>n(3(zV5[mZH=&\^i6Y葑;g^1<鐹=Sc0yLL95zB`l_hzBvJ"}z,!3 ٥ GB F {{LACZLi}*ΧeRm뮃gnjaا <F.2Gr_dcǰLo^\o˳0+1j.F#?ϴd4gގ/iO?OyHa}Bm; je%bfN#Nhuf!acVUQHH"InQC(O& 8R@

0n>* HAW]hx9Bߛ*L47;:.Q:DO]&jװ EHP)g}"-!$'* }՚UgbE'*M [K㮱9T5NH\qqabϮ7v63Uϔlυ3PM_1RWJg6]'vi^N07%^d%2o ]ū4.9p.EBB¨;[N_syh+-*ۧ},?_+uwNLXQVF僐t9v8r𨕷NU͗W>~ zvC/I>)JVY9|@ϖeoFg{w)Y'bu]aАf:EPF;⏚D<'B鷑 6K~$d9{u1ÌwlJilF',lzL|ar 5$I('[@Jn]{H?3U*˕x|tg"ӆN2g>8] %fR hqO0Nf ޷rP-+mq?=$Y!t~T:_A ]$t5FgR{[DqG@*:i]h2EgXt ݱiy_z[?3,FNk#;FC7ŦBNa^y2θ<_h:_h gVcC4ANG4 8je?!,S?U S;s[\Ol_\?s#Zxu}AXW\&ba*d\y彽 ?Ew4M[OU4W?A X9-5WI$"⭙U@pf O) 1 4jmb^~j{|HepEMM.oӚ=f$6i;k~@_C+i{0]]E^ya&o:Zwt捊Ԩs*I*4Jg*ƙ7=j#9QK5fm,zpN  DȪ5"fdr[E 4`w8&d$=3Dq/_5.QRC[dŶV2KHZ u1 {1kUNbHz&yC V>Z&RIfʃ!nI1KAo#] Q/=Nc}DyA{(Vj؀EX'bR!0à[[{/n{_?>3_w!3ɱ%,ʝ'F'&&GdXGQ b2K'HjcWKkZ(wв1({6?}e&-\chCnGvT޸rA,%V xR<^@ag;%1e\E `l#XY|ٸ$ndžgˮ!*媮晕@̀[/K-;zȟO~Gޏp3n;^?uMA$h N.>$kʼ5>GElX;/t9b5cLLЧtbZCJVixm=ӼIAfǺD$50h6&|u`˔S3 {Mn3_AҸMƍ9p:ZU:k\Sb[diϛVQfyEjSᓯ6mnB2ASi8M(I|0x]]B.Q sޅinsO)0Y;j w q ,=4L<ގ^t>:{_$v89L[ &J&Tne _f-gQ*w|&DDJc  qJ3}GNEMVK_QǂB}[O7ƒ$<UXQ ޓ֣mHGĜưCGF {i8kV4;ċ >8߳}~f`\'~Ac=x#'OEr (% O2W,|@Y$?<$٦@3Z~v(ruⳕ IZxM|"-2]8euj`y\`傏N//I@"lBQR7%qSsl "l\&5BK:|N( ;>4,MxrMc3s9(]-*.Ԩ';Vrw?<Ȍ7>b`]RduU%i `{-Xe! S_USF;nEڦR-?:ҍ`n^Lg(fa>tЦA_ x$F~34`Mj ;Gt |Ґ*@P$Nr&4 (-x@`Q0?J(S-G@\f]󪝳7ڤ Wo7S>|w*K3I4EY`2r E sP 5:ru^DM߾YՌH}Փ_'AXdY&m74A I,N!N,r{{¡:Q&W{Nc-~WD)l}NfV9-Y"ṱĆ%z8r1} `9hzN?[(đtcGg?獧Ri6ɝy:}!-6gcNK쉫YΞh=;VJ<`evbM CſXP6f:˯nct.3]7QHgqe7i*P%ZW>X.SG-YktH5X4d-'f iՎX5d;?q:C̏s]$QEYDgc`kT\%]]RUdzGP;ݻoo~}lEИ~*4 4Ǫw?#˿.Ї,^2F TL+烹6SE$&ۙ21cЉ-H#à BPOe 4ITB#VW/>\IYyC8̮=IO :4mu35x}e:̶N7Q?^T $8#`R.I[\_POW-ܼȭURȲ0 obW)Z[)^ۄffr(w?lwpɑ)}Y(,;8xp&q9wson .0V)xAYnga$R-*OH^="ni=(f}^ZU~s)E+fIQ'9>4@i:0RUo`1JTS >Nvb&hZ`r`R6gyPAݼx] `|`sQDAd.' [Ri[dy A Ro]e4EjqB]Z|'zѫM HyɄ{nXÉ-$xTYV~Ev\B̻)s z̻_:^gY#>5,%txXh6\q2C{xj/~202VŇg$?ڋOH9J_0@p>kq;@@i~7ak̵ƃwǑ"ى~D::0p% })˯6蓯_ D3;C`x3AW1 jϲ% ]w4E*Va(ƎScr'7 r|uZaxshW[ъ$}V%81vXM ٤M֖*~E? ,LY<&3L1X. Z<5>~a;?oNn6[UIհ,G ]S^FJ˷m:;%Tk"4iyP&0Zk Glw"/e^>oKɍʔeT ,Alk aaE !iE-׸t{lĢ;ko<>6Ō0²3hhuDŧKҟ2ق!Z>ǰ*} IŴ38Sb@-hU*E]+~<@& d@WC+;.^4iM ~䦹~|mSFwiiʭFaWv4{ؖu&J񷖫n >@JۥoYEE4rYS\K8(r}~L\8w 5N[s|I²ܓ W/K 0Yw7a)u``ǝLs(BŞ0޽}m,n|P/ֱr$8G-KIr.lЊ`:168CE.aNfZ7w-!)~ӭc#B=ؙ1^y6@j3םd=@n/ h)OkFh6b3r]t\ۄ +SЦ3+̹w?=x .m3-hZ;'JF$Hzm=p2evc7[;$?~e5g%h">Hcq4r<4\~ Q}zW%e0ɹCjP0ͫt`s^_-Īڱ5(k6zZʘGRHu]HO*dY AԠL Zw:$*1p֢iGQg7l! Vx&zbuwku O zX `CSС޹h5L&]S˥Ӡ$o6QZ(O~Mqe釖/X{NOby(V>puaƔm3bZfsA/f:vV`BK8;`o"I 4V=6e̊/Z$Μ}()W[X,p8 (7VD[ BŃ0omM ]P6M@m0vGQ\z=e{Jl|AQ`&F ՔPҌjT)Uq!ZoRy~ lu2\HNl4VZi}r.Ev_~g\t^{V䁪r4jH% VP=" (c ]5k2LQ*; RTm};I+v''sb`Ч'OSŔbeJ1&YڴnLN:b$ߟ5 vs"TRiz G(ZsX5'Lw_Uh &G|A톲?.Б}B 0&6UM _/E7d۷`]@`{g4EwbgcxWH @]URCTu;kMU}D> 5>uU→R/{u~؏8EXI/{ea9<<,t+>>[McTow~wƟbk]|j}(q4p?_u1ߢ& ͋v}_5w]4) AϴKS\2!zܵX4Dpk$ң+r f}\_Yro @bvϤeS^ltS3c! HZ#˺䴠h^xb-EGc޼\TO|zA(ė'I4߸n'Y*6ӻÄ+!IRMP?[}jGZ'6ւQU&d>#y^lDۜ\Q(͗pg5MX6p | ٮd5*T?8>gw|J%*&H}UBWv 6hIKMDLXdtҕ/t\^A^ܫ:IpAi =_dX<=\Blti /YRA&#oD}NXmCLb݉vv ^xv&͹~loޮg/C)VBn@8 .l7-m#B^dD/];zU g-b`pf%t'VEHMS9 ډO?k{,VҮ%YI*amOܟ^kP]x @a=+ӴjJKyd+c`5m26ӏM:S{< Qѷ`ES$ԝwm?8楾4}F@Յa4/>~vS;W@ tmI"gXM񻉉M,o2OLV$I]ףb9$sф-ƘjcMOg.$IjIltqիY`ػi;״x8<%x2|}v<#33B/W ?'&*}GYw 9n>ֈMSEm& ŷㄽxp}-V@w [iA(T UT|I r`57wԬu}Yxj.H*jJ8K.vNG:`F̱ͅr>~©"Pb(F WxjiXx(1=R&V B)-F%FTNY5bCY NBe>7z6$g͖&:`yDم(Uov^g\]y^tQХ3Wk\L1;h4㪤mkl)w5s2Y$y4*KN'?=W't6?6 M U&T ],*t5R/8L?s.W~׻o'9j{c, &G&dٲP=kCw~ M b8#¡C*CvNk1^{)e妡~N YS[ ڢUqEFρcЧ_#$߼Ąi I}t @R|v}ʜYƒ ]0>GjIhj \.Il#4ͪD R&/_ʝ 27xP!$ڏsy tutmDKۇ]]]'v%&FuDu"Mb_'Vp^n8QۅAxô'C= SU(Z\c_TXQ'1jw;o4_X0(t-L؋7˺4<@O2C-֒d4= @XȲ@u y呆]'4Zn^C$~pغhnWCK\427$tzkӦ^;PuTCr(BZoi{R?}uĹ2cMn}bzK80ECErXk+ޓy4Sh%4^^ݒBL+=L/ ]gkyҚ49L&HUr>$E6yلFKjD('scΣEħ\xtZV Pb}d\fwӏAku J#g2upaW.VZ\^hMuɓ9mk%x3R[,BSB`SⰯ+U9u;#dZQW!wi^ۇ?prbjg@j 4gJpo3n$͍6%0"8-lx_E5aEtܳfN0V,W]R *c /|_|8Iw?(?f мtlTG$N%xwspS]jY X *Y'SRЮ,z7`He יxm K/VFvuqlѥyZf^Z5^]SnȜ9>ΉV{7o׊XkUe/2MoM}2I >oo 4[J6 g1fs~iFUD"; .`{Ly&5d<mZ? gTTTI5 l>%Bx v zf R$`sI“.K}?I6K$EXzhآx6ZB$ q:ŹeY*QQ I|oxGҬn,?6=_pW@G?Ar5~+W7S_@cU,vY|,pͭ2QO ó7)$pH'>}XMG;v ?ni^}$wu޷> @@ M+VXQ,QkQ>RJG~sOS/|h9WC4D&.9X\MPfVEXıs\][Mu8Z!Xm,`>%]vs-])!O6"0 `ONY FIHOA$e/h~vߗni4Ԍ YSad@\S)<Qtj!q/v)ۣqc[Csb)0k-L &h z)8:aXXs5Q7E_@Ka ]ͻ82&m7-Ilhc?>>PthBjvnY&$&р\,JQ'Aoeoޣe$܊^F8u)'*XŐ*`5p5NuIeHiMƥC$)0I($ǧF6r6NJ{sߡKYף GL "i$!S@y-O^ُb=k%)Hk};_IjzmoԿ?-ݡ- 1a*w65>!&uU'>Dq7+ a#@l*6\q[|l }fDn'PO 4Rk PW !_;8*G%ڝ!(₄WBT@rkxW] cl`~jc$FcNvTJ/@bm`Y:REތ%W0GKVV^Zo˔؞ yr!+B'o?؏ Iz2pp.rhMoAo2+p:i{"=[>\"v5[ R9}>i`̈fࡁ9aJ̀]5>LD1`4_t8xnM]hQ1%`u7DTok CBӸ)s2=27Zyi<`7L^ drɹ (? eNY|ŋ}7jieY M>J,{ MsS9<S Su^Wj!^5ԕ*{}Ϋ@[ C$ ²Bs^mkԞBY*%ߋ<{e]Iu}3U^|mK6= <8%郇cphf*=H4ȏ׏>lLgL^  bqVlYarG*:I^)h.(ӆDݦNӿz]amMÃkE.*晎Jqh7UQqQq ,Sx2~rW|#q۸CPUea&[ 3,yVwy)qJDFE"{7|NicL5|2Z|zpSS0}HDnd:IuwM31unVW D>*sڠMqBUJW+Dr tƎ4WTUU5]#'o tBvnk$%zKng~)zxXO BW?5z͚?Yؙgznl֗8\ p R$̂ezjE4Yr;Ce|1" ʠ 0]v|/aD'L F\*Jkb \$=-9bK!,c+nnMnv 9M @,,,˫:9ӿxF,%A֢Rg0o^s]7W^9O,ֲ=*uu>o{ _awf |KhŤ [.Y\~$עvl?&Z?dɏᐓ*>$'`zM _ǂ!\K:7aXKB.;(VTCLO7yѹ,J&2 M3$h)k&jY<А#'M ' I|Bq@KR2peY( SXK,s'eُhR!\}׈͔^9N-X0pV|zr8;T]"nӋGٵD\yjjaR! `t^aNm2o~(Rٵ>=E}CZ8줄rVܹ}F/%Ʋk-E)0vokQ֤,/wэRjd@Og$Gm%)M:f0DX+îFjZ4T]5阧%zH$= @aL ru>GA8  Σ6D>`B(Z[mzcOEi0j+{2uvvc x\5sgMOy3̢Zn¸ eh?U2;a. cfvF+ hI2⥨. K "$GVic=T[Bc3V!W 93I{\"d 1X dFUS"Mj C|cN-I)̴21U6Rg_#[o{KR6ivͽMPhīd3aO77 h(v\ ]RQ 2rUޯ_\oz~x:?\ݾ^I뚒CUQ#$hB*X/:X,2{%d^Plv~TV{[KR4,U.'1p.T]rh R7& V=W=v'+-JcΖٔlN:3$C}bh|@sbm!>ЮES+m-$uniLxp(J77;v-kʤ4COAXs?cektHZJ!r9*JQq\f'@WZ}I0SȗZ|zr,7Ӎa/T93K(L{@q(ŋ^Y0t_ pbacB骢`L\Y7uu}3hA}*g-5/>6dIRZ&%|{J5~zTG4G.DS{ǏEDuV >^宂wP2cN5Ddڥi5[栥vA,kdNSEs7Ȥ`yU _fn&ĩ?)˲ZCKp#+<PIvzu}E`Pe4F-7$Q#0AVtlTx"1/FP+@9Sƀ?(M =E34 W* + -@ PrI=+CE({ZuYn+kG$1k6v1sCD׳@J+ko}xHi6I23^ i}\@S99@5VDWM9|'NJ4Ȏ]iɏ+m߭[We2tBeS!~ {1LRĞIh|$]ŝ\{=b?[~ۿ[@bMrm,1D;%I/}7Ԭu4m| 񉌩B/{~IV n$N,PK"MF>iL(C J~B( cδ=t1^?ғ/g!Ej)]td~} `uۇ~x=ׄH:Ujm+FRۥ'4{FlAk&@PDQ>AHĚ!t8$J'%:Ѷsv'bu-JD#RK5ZZd'iϖR[ADt1WT;[,a?][*KMo,6|ݧ[b) eyV/=DyE)-$vc ~~9.˵k,\`_/KTVh!"~WpҳWW|7Ѷ "q[Sʇ}'T'`U8%It {r2,'f\_Km>_4 jT nL3'0cHJ}?Eq-jl,@S4GWR7~IK”H73t5NQ6J9^ t w8Ԉu# /K\\kᆵ~o'fH]u,Ч|~uR.+q5.MLQBdrp/>TNDU;<ǂEI?Q\X9com;?HV|jH2@)("mUZknNH:aF6糆Uff`s5!P-אZ ަ?ݹ0Y6*=K.CNegwA^s660lH/$fB"eMA ۍ #4Frz֨kI31CĒ%m/In x@P=q [[cJ ۅyμȁn|J@Qի 9 9eH=8RMaŒXxdМR3g%^dd%x>+uhIZ0dp*ES/Q.߇ I"xfFD|려(tUCq7n7huECJ"ݻjPv-( M]> t)@3#~ D"j,QB=.vFotu2<5a a6묋:FCMN$!e0Xj)I" ˕eih@~9uŝ"PQX6>XcMIDATJ-pC'1ñt"sTJw.{( n1w$a*y\[m]44mLSS7G%'; `HY2u7Uε)1>& ze v_$9ݾP!2 QU9MWd7hB7;ęQDDFlYKNїZ}rq~ AuhB`hEզP" ,2GN06`m. 4gJ`y1L:nX*IѸ[9!MC>6v!_$g?\X,#x?MX[z,=HgBͼ :wU - I(}oh/`qnY!`VDp,o p㨪|jI:zno^lF C5q>Z;Yo_TrcNMU6ifQ8phmv<:HcShEi6E$H+~#M1Keyh뛎Jʬ$<\fmtIs )&W$YZφMhVh'Č0&D>^ ,FoMW̆,"cf?a0$ U^Afaq6&Qʏ ;~I|{.򞝳C_Mg2eӘ$iJIu_MKq_+4i2:bb 3)E\EzBY:Vgq[dMZ}n~ºr81 |FGk"m$F@> E zk/*%;S "!2̡X\wicbNgC,w'u'O@UI,xryōx D`cSw)80[CBPĥ$v+N-10Jz8.`ws$t=r+_sLk]qqGwpw&G`S/I=<<H^X/7_nW8& R| &xhhphsLrPl 6UZvxMRa<o.߻g?^KEB9->P􊒫63Ogs3zcՓ>d)fgMB*~*Uդ*D"shIH~̔/y{؃$̖ޏL˫V#^W$]%5Py2tM [y^e{u6EUbMIT`H߼,(^"pjE *ħcT+$ }fq\ԑP,z,2AxF$Y|n!% 3պU5>s:v_aD+]]3P/w\-MlC͑ F7>ԇa֌6ʀ\|ta"Z@"g0k'09e3"XWX]OKUyj^ZXF[ `g? i{9,L`SL{bf ;^-qUk~Z tE޵&ۡݑ_ mbfhmiՈzD愠!/'Yr}!"0$o4ӟC8~k4DE!iR6iq8_&"{u~8=bc y9G=eLZDn^Kq5v~ҡ*mpFdn<ISDGkAm3!%#lwTd#@|2d -vhGixSry[`VP} ) I&[)ZoY5, e^-iB|z0'o?M.P5,qM#} @lZ̾G;iZYߕ=q"[sIlQy*k a<h &%ol@kVIj@Mdm{Vq ;Cۙ*C6:[? lӪ?(b1s)Y}nmhl~ ̒/O[&8g/V1^rw:>86?(omT*Y~6)_(WX%zϓ ˅DY F%hi/YM$#r`E'S޽2IL6 e=uFR9Rԓ/06.WYdqO`5HOW&u+#ͥHp{7݄,V-gL נD9A#؎N7Wb.\f v@DOBz3&VmBmv0GCdI)>}S -ֱi (=ywI'S}B+^>)pnlb5݃%*<6XW^ j;道)E!cj3󹮥?^Ҏ_k:id?%nQʆTI0 + nƌ&'%I)#˟suc#uAۅ7M&1-*JI.vߟӺ{_u'>l7%MH(lftm ;Ӝ ):-֚!˂b noCs-QхU K_}<9}1:\\W9E"B`aw/,qGeqh" @LB:m>. 2䥀VC|ԶmjDX PhaR$eI"l,GQE񭏤1I-- mU{@~<;;),;Ip̗L?MPE(Hzw o@T >*MRHʴç;T]ǶVx4hqԍJl*,W~W ̀J,ZLKobnX}) NW&**_crF F#kTd<}AP|+q䧡ik>AO:Q4+% +S`s9}  )E4EH'܆Ed&ؓC-ՐDa7Kb*@U.xfڹXU{WPJ/~> ;XzpZ4Vnt7wBy?h?߭5^l,{t ez-|2lUDICf,X{2Mw1s)8^k JdE7Fg@*4~fXDib-<4S=X*l]3M9A~$p=q73l +gʎnOe?ܿWx|R=Is`2$v5K r;%)>=~b*R q|?^3)TN! @+F'iO{QO]v94@F"%3注i,Rs9e4E*L "8t1w(De Mb{(TB`"(ڔŇN=)11 x bX?5:V?^|ѡJDTpfwG2ND PT'> }<r-ڱX9޿gXC-8 ЦP-(3J/@\7B7Ij:Џ giZy450O٫q..Xd|w$L; Qfe:(O!&AkKhEA!]Qd{ !0Qe5ߛ;O&ҏ7E~iqa!EsvR Ɖκ/y@\` @!ʾ<&ծteR՗\Y9E2bsJ DJL UT]n@%8+vME @)Ǭ|p6 mk/z=қV(i$XQ z2֚&@vɿ3C1mB%3xM==\0ְ >'-]o>Z-i4:LYTKrx 콟\S3R~l40dOF=ƙ^z `ut~4ٯUfK a F' ?jM kiyW/>;W#Z@|>o>4\Ϩe![KbAd4E,chΕ`h{Ίjo2\~ΣSKDe۶+:NG&MCڇwV`t\J5&/v>ԠP~,O|}Y)g8/^_g77NyRW/ΟL%gux-!` 8`4W9<~VNØ'&H Q0!A݃hf6DlG|Eøqv2VKrR,Mq2AQ?a'VO7r l9ҳNm*-|ƶT]aB?X;;FO7ڦI'CF{t_[]36 eb![{Imb Ka1PKf@%4[W>w~z;m,ZD!ڬۨ$9-V~q\mV+ =2-'ݶIR6&@6S7^h$=DbRn\&jN6:ozJX]k.J!~vi]E3^C? }0F B>1 Aju]k>#9T8Dw6=OpwXsL/w3QnVFjj&)XŹ\&j*:>-'TD 4PB.A #p?pzskGM 78%=x4y6EHyF(aYG)t"I3c5yeQUH3g%Xb.L$#7;: zOPKlӖ>::o,^C ȲX%o8͔jfsu08{.ҘRmS2(ʮ > ]sFTCso^gnOD dN =HGk}H-/5.Ik0`//rKo\(Y|/sSE$EYN6a:01fs UE t0.z@> p(:,W8CCr.M#JШCh,w}~X.ʀ @U 0Uj=ŠuۚwH-za'@z#6!1wƮۡQ_o>a\GemA) C0=FK侩4o78*@T=#]eNbS)jLHP]ͽ|-^%S[ݚ'~xYS9: ti{t=`d罤K{^,ёG?1 7OYoY(A(s p̳$ y5/aHܤ<b[T@p&mQ$΄( ],'{1ŕboog9iA;3{guZ'b"ϲ-(("c9WohNKu dzX9k>~x*i C OK&ԍKW8]TՐ<&{@hAiu,Xha}n|eH0Yzqw+3 ڼZ[W@YMU֌ծJ <jS=ad0L| S$Basyja9VJIQJqg0W 8T0IX@[1@B˷slx|'Ѡm>nU7ֹX_O i$I4+YRRa@4_VEBVʦ)˿CEE|/>}bvIM]D*:_(~eP^aKnDR1(qŔU @@GiTڏU@R^Pt{҇_,5; e@%b6"sҔC;ђzǫ74R> 5l1Q@uU "@D,4JZd8Z7(FKU>'v2&qͣ>tf] 8֚pB}A1ۼ=>B!y?W~ۇ4m)ޑ^ܜOA !ZC<$b49M~Km= :R.vf(jFL2H$#M.,>6o\0TH9MG\k:!v*дm՚4]k!8WNHapI /ECy^Rx;Bj īr]H |I vO}ڹZؾOˡޏj|3*%Y' 5oJ j$}JPjwB3jGP=)LMcs[cojM@]I?ݟk#Izc$Ox(sWdk}cD5G `kūHy#E$RgKL0؎)׺?\w=LW 2,%SС?E09f Iٳc'љ۬ wB3#U )E4Z3N:h_}5B?܎*o7WׇGnxSȏ܉EV _E`fa{cTW %(n<ϛ?&S~ub&uKe%JsN^ Œ˺p2T]PC:\r=pK * keP== UǩJ+ϗ$-II]g Oht+Ch8XK}3Lҋ(3_+o>II';3nxoh Ncauԧd IJXŚ-a~\p$mMyO:f>f xrt,xaj,ti'\ `\E(jv~߲P ^Ȳ [fif4wӋu˿&(fi#IVf:@w ;.ק.C*1:F3AO/ÛJ~șXu]A$$ 968k+]a8bme8}(I@ Ƙ,g CqMF+GN$=`в2kstK G-o}:LW:nTQ#dά%6K,2g5bt]1-%MD0G$"y-鬩?KeҕLJ%x'ZveA LRrd}L)Z d4jS_Ol~Jw}%XߠJ я!}U2WcS=XBS]:d5JF,N*gnL`yKe<8_"emI]n6{*IqY(fBt"=uH|rK-C&EKjE:PJe =TGc5Lm4M=65!8Ik}OLr`jN|,^TS93& (|34nWU h1ECA;pD:$=Ż54{N/h]A{dY,W￟wc?WbUL$>ف60)WA >V(W) c}  `M!K%pɷӆG@Jϸ_J5q%MP{lc0zf꺨k ]UnIQ舳R:fyWXgLP$˪VsYr ["+VK>kb?T|FY"ɤ-!@xI5Zwv@]b: ☢kcՒv{z\m$=毼+ ΍!~ػ6h]vjdVJ f1o6Ss!%|\ȱwmoӔvDmao|}RO{15V٣w8Q1uŋP?(Qz;#o S4.wE+i;?³*:@+ cuB?%WR7Ly8xa'F ؐHdr޳l&SDJ9ؓLuH쏧)N4H>؋2FyCt[ >-o>0./ he&9jKE.`dϔJf(+-R;re;уcJ2wYs WF=_1IL"EAM,{VMpeNudh .7>?(vv}):QBN"┎UˎjI&p eAt\P710I7ep3^5Shi>oT2E53=U_IP!pDdl]p+P>ԗG^ I2äq)jEo !&BigA[q EKxMPUl@3@7FO}XZتurQޔ;Z];]t|S6YH>&nzܩ9$U! !Z>l͡6mħOF!"-v",Oip~xX%>}7A,܉:ggI$uw5 ,AX@f6'ng.>YASa8=b, Vm; BM(ig~Ojq$.䖬ܔQYgJ糤ZiF%Z7'~ѢN<@|iu_Ȫf=Z9xiڂ}|Rmӌ߉M\袪Z9] W:сv2CX;ף9h*^mxue%Rן<>tB~sLS'>ui[pNsj؋@htPb ;GL3ItB>g?2\v}9ͫHC/6xF$P&]'Tޥu]&IV.͍ ԋ:OʼnH]EⰧŒXS|YwE~WS*Ćɞ,Oyt q 5TFѩc%hwЊҔ Fƞ6\3ewg>u5Jf>Ffd}`OCOOiM%wyxIp80~6q{]l`&Z%:]l0DxxaLP~ONRq]p8"I'`B!E?&ɤ$OYY/5 G]" \u\ԕe-,(VQ"$H xUE] L[&lR({$g˵奋ū mK!4D)SU>*7Z_ih[G`5˿mj$Zzyg%6fxuE#Gݓ#)icdƮC-ucqꗞVK<\ 7NV-X14hJ@T3Xit$+/Bc|Mybi n@|`@Y4U_˨~;V]6=`V&L͒4]Yë Kh6wI%i'ЌE׀c̘RdܓTQwjQɸTU)ϸYܗ^T9B>,8,&`~X/_g"hCIQlL܄>h`&Y-HS^[?O>g'u" 9*`dsLh^u]csY }gYkJKC"_a ! ܉-,r|>|.W+|:"p=$xfQpB`%UmUE$iILiB4Ġv+hs MqW0Z9Ba1T7.VV=!?L#RΎ aX" WGD, Nw#MԖi `h*^/ItUqΪqJ`L3M<}5s1 S}ÏS:Nn|buU4d8$ Kjiݝf `I3&U@?/LtF撯q~.)};'9Dd&+>%C]q^p|OIa2M i]9UvE pdm3Ɛ3*shHp{,nPC@#/RS$seq#WnJ۹SQ5R9f XNiŸ6iNҶKxf&h[]5vGf\X֦ ,P^^J8 :֝eHg mUH*6rגoF,bΰqͬuUD7FUinaI5juFI*^rv3ke44LGѴ=qWHc*`h:?'Myqf(r,q1"sīSt5gi#Q7瀳Nu1 fozQ~˚8Uݮr"Rz=hU>A|к4GZWbB/?OXӤZn4'b/T\oow-0ZgL/(sOeow W`q4^R"R1ȋJl2+NRid3 yW p UxRsd\ 'L^Zd L]6,= MFfI}PZMKX!s~km6fkm8$ʬWoZKy *gLԂT/gfiJ5:Ic,r RȍV7W_`>ICIR?KhSI\i@E67Bϭ ‡%TАJG=yLfxgIB.0Pd,WOeg_o`LTTVLa T@Ch<< 6=XG|~׊5! M@ur qaC4 >!L&! >/VEQ صrޭZ.B0Zpר&<@[cjCgTc^jxd^, ۙtw߉Oeg{M*>F 7W/6gE`Ú * a2"1{mĨ#bڬjijk$ Ak]>~im6BP{]LZz vg'k$ J%iPZD@SstR,f˅ "AY4E2n`wq^KQ:63A17![̯d`ґʶ%":Gvc#Vm!zMY:H sX$/++?˂0LuOX7QU `1*MP%= IŌyu=.}fiB/3R^v?@y~GۡCbJWlI@jiC8ϪJ!IѿZ>{Z^U)}gOG.]'nL {96LmJ_υ)D!03Urqlx 1v8>  0 S[|PMAQ[Ł)R>)3I/h6{P.kٰ.hewπXgr!ЏS$/GNpyq7MUi*g s=VoHghHkiKK5)~u q!]ĎtIߛ2)e_+M$⯳wSU.M}0ZUix·Qsl]q eM'A'E'KuTw-J5ʤ˕JL~i# AXLp R*pyKꤪ-edM̨(Dڲ_5xsY ErX[͗KuZ}9AsK4|(w>q^?!,D!3MY9ęqc}pճQ:2 <,a"a5m:9HX<C`g4Ĩ).9,\݃hXXfp`p Ğ#+kyX 1 F(>Vhpp61M%/czo-ke‡H`fsŋ>~z 6VW_.H Ex}_Lu'uU#MPW:I=T˪kcsumqkF-k2ܩ&|tA nw>`ZB8Ae m:Y`-7 O"o~88]ܢZ2_Zplxc./KEF՞T*hH gW0hf:?2rG!5]l/E)B] Ǐ"AC:.__ٴ0,;?s @^ :ɪ44V ^ }zets$EԍM6 470=!5Bi|:Z3A AڃY8D)IFfyPW>(cVEI㯵c0s,U XA7-e:jq BK$kLS-2τ3fuw ozOLy(Oi2CNH69J 0E>`k$"# %9ZH(΁ʣ /͎["C$]!~t?8cH3 k 7ǜBar%"W'!rZ(Ebz@WX^k%4_bZ ;9_E8Yv8䲷Xy1J!$j\䟞C nkb `tv*W I \b90Yuϗ >S'b2Rؘ_.(xyD5r~<@ͿYa}K?=6ʻeC4uBXAAdLFGĜomd$ >H2LN5=KKhq//K:`A(Mw WYG|UaM(_8}btlv{ ݟϕ1u aF smO1i%@,|wzD)VfolvZWhV9*Mq}@QfsSL,6>s oC3h?].=rs|tY&&<~E 9TͨLM:wR\UͲhq"u)͑ޓ9S}ʣLJKJc!.vSiiaA26}g698G:!k 4]ҋ'{ntGeKH CrhŲ-:{k7hW1ڽجߧVܠMj=*Rִ>{J+t G`Z"J} O+a2cӺ8;{VU"Da>J(QQ+>?k$ɲsu33_%̬nt 1"##BC UKdD|ۢU3777_ȬUۢzsQ@Q-w_Nd.J~Yk `|i ̙ݑx( n:XpDL|ԻзMH"o~7%}T/fib{"s>~ۇ'ާ r*Wœ[tf|R 8"5?t԰۵ID O ϲ6b GI$!접@S |>p# R[NEOE~+Fo,wSO֋Ҋ:%-\n; A_I#Bbf6ñRFIP~TC%XI'Q9K`(iEaߛMHhO>)ѩqYpM[a-9!ŹDU\tm.ƺHE!MRQhqTn >.dCEq"j[NJ PF:=bS&KU=k?iKP18$2aBB)?3 UQϨքhE %y,(%P? JbZ&їI"Vӗz8R: œ\YB/ƙ+K^.sd]X[ݧ>_ii3_<ՍB&7R%*nEiרER. V5̺RmG-+cWp*Q]QMJ:qbY"91˨w Wh ^Tdf5h|H߅nk1E+ `b됸RtpY?w\#6o~& P3쌐p@d‰I݌0ĉ\{ {mTxy1Gɭ_g/DO2QI\rPzn439&ŷc>x.Yű2$}'qNȡ)Z2OڔcD h@@;" Kcirg LƐh Q|~ާ68;e~C7;fa0@!D| kNkZL#ˉS+"fM%]\Vt`Qc毩xzNHIɲ3Oԟ:9DAH׫\OY(ݘ,f,,׶EMk7xg,wVTu=]߾yy֧o]w~Ul]uBc2QtR~%5ܸd[ 99Rr]n_ >`}ۜg˵,~eJ̹Z].26HIYt3I3<Ա~~xdfM4NmXnexW6wZZN˳>~ ]ѐT~s ͻJE[v{X6Q^ Z"@$msg*ą: )?}2I&bIxuiF*`K} QfL=;Ml{n > }dr?XMZvֽy@ڨC"|Q@Y$Y OBlOj}=p8mp4ĨD[c1*u]q2Z] 3S rLo}Ad&M*SMckh 6++ t Nql+b~}%UYh%,Srhؗl @]ĠdER5@cT Z#a'+>@^+dmHsQ3|KN95w_WW̷5SNѴY9&%.E f]ħ.* ^,5A C6& $25*K4ӋkwNf.sD/B&ׂNKȝ9Nҷ>!%Qg>}Mc+J900|rn_)ںNxC`V(mMЖV,̒ݼ ]t~8jo9"_6%IO3.q1\V١q|wId71ʻA-ME99sKFw$qk' ?ńЕ`2ABk)7dc YwՀ=28&VJ?qb;D;?rJ'S-sQ,`t֥ oX,dpx=?Whщ1YCLxݍ[a>7'! ֋ǹ(?Z)yIϛedb7L= J2kưՈFJN3@SkF;聨!L&ձy`ށ-.%~D"gAXbi1^>24(6?@j,9gka}k:P$3g~:@] %x_z7o(FҚE`Rm|K-s)K4(m2nS<~E;sI\+3/]8y)޳6TC}s܅iþNN@&ky~&%ai!9o?F'6i |^l Y mG7zz{󑮧x5~HP1;19A&`,b @hܥVgG>YI@ש@cj*%lvf88(kؕTל~ǔ6/KqSc~x~' ݩXax]wj'e㊦ϑo6IK,n:V1(aYih#N2iEQRW@F5 DVi.TUtZ)`ڦP'4_4WbeCT"1-4e͡mq DO) &/*m&R3HnZLt;𥨛[7=痆f YSPi,FdgpWR=>@Lɍ*RUf4DD, Yb̉p_^cEFBVؾU7P{ 6rB)8E?]-[-ISVz|}=a<>ofG}ri֚,GI>%DRt`B^ R5x.x1X)`w<4WDxW'L±60S&liDg>npV)&4:5m)i!ԙ]9%wE9ju-{7v䷴QRD)I J!i&_`X,8I%TO1:p}6Қ/^1A?WIN#Sei]Ͷn"RO܋l4[Apb!T)N[QLX(,gq[!6c&]jI8oД|A)CQƓ[)v27$ f&% wY"Vij"Sc&$f(pT4B9*1E̸ \Cz7LKd+FfrGKĹeKz Q"m[gG 0fɀ12j\ry\ݾE鬨];D"-NUۑ)Ę%t{ZAř1Й`_~V=7!l2%Z: B MDHQ7$ !?g>zMf^FKZj<~6+; j|U 5{ތ!(ꮓpe[E]j יpcIRFmVҜn[,kĢ`ED?\$I/ٯ=OA">߾v_?(M`u/W|}zu\ ̲63HF,y| RSpyM1cٳk1'Ja­>=KҴM եYC>ɾ>ztrRtAɜ-B3%\ 4JYƌC\`|6ߦ3s^PN͉}u F#%x7)ms-K߾:+R;!HiDhm5tnkipx><ȵ9WbR;Ta B ә _+̡<>,MĴn%[.@U$ :\0y87C(67P..݊T!J(ojJeD<ƝެyOG'z4-u['>yb 4}Y ڙ"Vc[ߚi2o//}_cWՍZ. v+rl{篖8InڀêSb =H`0g3? ¹E ǟ:^]p"q ÿcNL2Ą]D`TI:pZ1Zh˲(3ƺuqulWco#֏;cqSq2{rY˩wEc< F79i>3*Rj.WZu3>~ZYVE<vBtlu)sT1&gGԙ@2'o@cIƄ?+Qd>$oOD8TǟK \Q6- y>*GD=Sʜ8 0E~G)Jk0KփHv}1w_ya ݿ 7>["E5WfȞG=B`adVUuUOXXq^L3*p\4WoTU*ūR˻&@@n8xz&b5䯨bjr1T{,-s^|I2/k%s,>Fq*_齷g[ *4gj}7VoҘ"46Jg'pS@ŏ_=b>$B)H3G3T䴺3- 2|X_/I2"5׶%T O"8&MRj^3^W(NHmC$ /^s^mRQծxz|B0{f[͂Ga~ZD]KK`Mkأƕ0h ;!&E=7=FGi鸞<. x8 EA(] l}!>)p+:@z޽h;S 6;V=xww55Q$Lh?] ~LQj@"qp #j@&V5t#9 @FHz g91eI8'͈OKYV+' 4H eGn}2&o\  H5'}4/C 31R㼽gkg1-c fCqs7l I A[&&zLzgmk(Q09-Bɴ qҮCqY[)@`V!Dnh^i4J!K)BF0z[hD'#'«t3WJrAu#ƃ=О_^%I"34#H{ձK}BRʐ߈J^:YXk|3z `.I2tF(PUy! ]Bq^!]9omiPJOd'T] BS[mvɇv^JW7zB5KҬUH )P (UJ6Ƅ %bt$W*gRO_P:4c\5co?|ϕK둒>^!Y1 Y^Ų_ىfs!3,]ֺZsDj@P+I$ǶZm7e^[kkki@*`yZndՕzdWjj$s`ia,akX:%w!l`c҉(SBtvm]ST- ͏vkR*:9gRde^lubX@Ԃr4p +2+^͛R~ZOC_?ѣo]8:.ق}Kqבɸa@Wxӛt. j9N޶[a9?L ? "$͉;mR fAMF][boZlg΄21kΩ|{g/\?@ [,5z(OTZ#  4iI'i6{ 1 ȖJPGes(_7fkjq}-x6\'')XruC$rR? sr\Ő:= }̂;R i+A*O1Rm2!Z*)LJsX $mg\WԌFȀtCG.b1L;?G"T9Ͷ\-| cg1υPfS+WzueAFQʊP*kd9#m3Ff玤)FS17a'I@ق؟F1i{,^$Ȗo Rh^-w\KOOv&lӏOF|qcvNWS,2$IJ z m7%79kourP*c4ه`.|?@Dsp jh ZCQw\ܿ{܆Vm:Z:(Jy(W-UmM 4pb(`)Z=݋Ϧ3m{Iug%LXeDv: ))>h,Ւ<;K]"{3*%6Bށ8!d>SYMϑ]]>70>a0#NI0%!\F9i888=rpud$=w߫}\[onO&wƂS]=3jӯQMH&+gñ3J^BMۣW%NBǎK+H2Øhv\4oM򎒞?a=39y;?Cy$(Nk)jh /IL`tcYidƞ˕P75x{m}93tZx{snos pZNE!@N'LЎ8 &KE:sLY1/CvW8(_=j 2vʎ":+"Ĥ4E 8鬸5o ~=, $kÍn!&&bf c%cyH{¢V0zZN"ip1NY8"Ś0Zm5=^I-Z(mޕ)TPJywϏ|s{v hvT%9o'M257!BK>riK:^ckk Y{T~ݮZ,EhrŊ:.ZF‰FiJNY;'e`g_^ZRMSSXX%9<%Zv߹9Ka nH@{N\:RʤK)fS/J5)+VH&23f(yiӡV{̋}>sÊ) ,W3M |-55pYmRgYD#:Bc6-R+C  O/V 7)Z(KaY^t-82ԓq_TM]\I,U&)1X畤J.Wg-5SzYD]Wm7oϟ Ne:Y,E2)y}b}ΒОƓőIK䑪R<$2<./?fwIk6ֈ>syA;qԢHCŞ5 劻%Ebp t&m} /.%#“/?Gs2b3OPB[~"UaPQ\,ͱ . xݩg 8 ָ%iBWi LrMOLNHl ".kg/'JY@x$D e@x31tkFZFUQ7'Y|ϻAW\s@W"ȠVK=PMχH!bd:+E>vKJ밺5:XG?/`;9U擻)WJ y+V(1+Ec6 NtX @ܗ<ы8aLXOsՎd,ƌ1b)ty:)hH*hiszK0+(=>$6hsU̜H<Π_u!&zGH*$ -'xetb.ħ?=C=RYAr$HFB0詥m[(=:6B̝y `G}9 J|Zʇ0HlUQ Tnmh5V֠dc^鐢V $\mD#YjDߺ#JZg-EQmoH#,Q"In$yHsBs)jةv^{˜,!7;wJ[+ ;s1n" =ŵWe j}#3J~m76Jeth X(!ͶlOn?>qحV@~Sju9kLdvUe8Phba-hpB5YX x`gW-W"8XX*U&؟)>ƾQ==:@9bF& 7KH!6LDOACTҮ}adW2IS5@RpKr-&t0!W6ޤ>XF&9]I]sE_,JE);#(m{U}l{MM<cLy~ u@Y{O @d+⺻Lz%. Q.-^]^` k&l#mpN -o7%hO, 13!Q"'ho_p#Zs,r ˚*l*a|ϹG@9Z5{uOtݎ#|L@zIhM'[Y19"vo E:t ا+Tuk6_n+u'%J:w>n~QX&_nhOnS'=qOxگl)\a-M1S{{N;x5A'O$F.e]VsSRU CaiD13.0%=?ȶM( wj$?)s͚: 2cqèKCL쥛|ݽ$Bo7$30N.vӿ̕ڤQ`Һyz&Z =Z﯑E$.S&#gӈ_c&fsI%_]f1Mneg1Z91f-9YfW8q`08%^ң ԪgQ vr,9)g\bR /$ tH2=eoj6 ]VB2Ugu׿Cߛ5@=`֕I0:ŒNb4lLǴ¨äg=a?fی|r ?kM~Z].7߶{@[3ڮxy=߉Ø|v])Zh+|7@ BE:u~5wJD8 7)W''orN͡#ȋhC]wyq0Ecr%\o U?JԿ1e9PqZ8vغQ,q0cNw/3^cٍׅ, 7jk:9s/=x} c:.:c H 2< ?8Տ90IIosƣkFHqCc^|> 1@Ӛy˻Zf7)I($6)9aP:i#O}N&uq~^m<2JiUE+2Ҧ(Ug2Iϋ-жl M^I{\d`"C&{?L_m`)YKDA^>^(y;8Nz~iWkS}y~{Z^^X_ˆCBحŚS85}(23@.6dfcASdd# 6ELYhGy͖6n`Z:#ki18"R&ovh$/w^BSTlt?6k?@6?KRnnf޽_-z霜q{cUˎHRJyV .nWwno;d~ZN0uٝ*em(m|.4[lzqSTZyu׫|7-w_etNXߒDTxC䇛z?)m:Jikc051*Xڷj#kMѳQI$VZlLW=طJ]9,1$I>jӬL'?$}{ckX@Ql@Qӝhѽ}++>![T#?w]87MXH%s0CE9U?&G,bR4}b3QHnո*t51-ICk"lx\߽mnr5MQR*$Cc+˜vZn(JŔH:%LBX^T̚H\Yaswtqc ((=Hm IKD,vۍp 'H* B B]d^9l"'D=n#8B?Xt H&Ũ܁s^^\EOzM[#d8E_y_fz^9E |Uu^{ J2 dM IH;IZ s5ݛ+Zre/DNeY~yAAM1. <:)j[|$)lnCl^bײ+)`c&MmLNNWjJ5:16 U=e ЯCLjrb2ZvX,uK|0c!\1?|#)SȺ4䍤]1rO|B|sюJTΉ0hȪc[俟mFc'@.4GT6l}68L9Ƙbb=d ȁ4D d 9Fj-`<1.cF]N_K^C~$=_y 6-5mKF|z.@>.#8LMI8BYSUh:oOj%E (iM;R/z  o wZ{HS)@)_굫2M.t4<"y]aB1Z 99Њ$+$mwRO_v5z_H շ>|mZAV|Ѵ, wqX ž<X3_8i;MXzFυpY?ZV38CғIŘI5E]Äbc)#s>xgMZ3BPo 8G%45kJ^׊ `rC4 ǟc\|.3U2H4%%ڶ `Yl^Y[%m>O);y2 *wꫯxyzU7Yf-ˮWm)Ro+&ƦkIw]z?E( E?'E~+ODMS rmOC+1gT 8+ m[-">T,%|cs퀙~j]sHkke)]샜ktZSO:SUnЍL"JýV>.3/չ@=-<)ݡ'D:6qsC%3bF:OzV7F)uA C8 `=w43pJ<`7sI_oc3W0SزLex2T)1s"aQt ;E\% @ӏAu]/O||i_53bڛ7 V;0AkskݍXA@׀vqgᘅ#P&qEdvG$E&.{yڌ9!ࠉ*%vOҚ)VyzD'e!s&ĢChZ RSJ=#\qا29mFbұFS0Zi(?|^X|t*3s5X.yyS>xt6x|8x?}W7Z.+y"N~?VBZ-cO5ٽ{V^Gy(W 1TuSV=A+r:wΊAK8=F)~b`m@BNQB*܎/;w." GI+1e7F;|MGF#(M3&-U:ƨӏK1Z[YFBZ;O/=Gx* -iIiirylF^jmC}!i1ȉmt/Y%Bowqp՚9A" Fj+oim;烇Z 4; [@X.fڦ9˙9v5z}(DWP}6 PlꚶQZgegDB~Rqՙ8w_4`pG!BJ)QhTO;K*1'a#ՃęAH@) &3g C%КL B7)죌!R%͠1ro oL ʻtG +u~qE$)sֈښ9EGj@T,"V,`^h9IҟqPnܼDַKŬdI7sRP@\W>`!]ޔw=ڲ#_k[/?xz((-Pӄ`J4Wh`Q=7`Q=m79o5:kbRJKvL+%'FX#7UIvgTK?S!lY1ݾU2:)'bxA(qkIOkFL\ל:zܽ-jV0LLly!J,9XCYO~&Lq<|{:nƑdNi |ij#>}EWUp=f9QGlImÜ]wO˒^vZ&qi%>}~ DAO<ֶ8lXYj~d0*ɣoHYN]hw#$WMQkEF:G<_P%m2g4 - @6)JtE>TߋG-׷%ҹj#,a`~ʹ{c۾O?~mۢ 3}J)h>XZ(ܑbl~7Kbqq]/c_/ڱ:ƺΞz!<\ԕJqGh[ ^eH WY|{wpbPzk->U\f. q{DW Ģھs5[ ۥB5=>_Bi@ˌ]1jyY|/of'} Ƙ;渄o Q慻]p Z IqKPFLd8];ErevUEbZ @' )M}2nGAO0G7|QPX>Xm愮Ӓo|^mPK)I)!h_$zbcR"RMc|wҁQ/oJ+%Y_`wuKTfe¬f,Gͮ[GHd9M>wQFI5@ٷ#E!` { J <5Iе]1 1(!P,06{˅1r{,K ]v(~`Fs ]~;|ːMM8 */LKdd%Ԉ0ԁER3 y?eQh&M8+WG{"iG5u_e/sIPd ya)+j){% Ynn2/eD6ж5BW(Urw+z>||44S3څxzXF5[^׼ 1Z*0J@QtYi.Dhz|{Gk޿fNq7TC>IfNpk71_uE[ޞKW,ksV$ldgbLڍn-KVPc\BG-1>1 = h>F2@'@3=5d9ä>}`K )ByDO95;^0NjN Hc,PɔW5kuv*(X,_p}̭$/0+ŧϷ G}#doQn"{ | =% k͐J͐]ԺP:fk}T~B*4Opi%T,3UY))fVnt mާ11V۞\&vu91ÜlBJ0 mGm'L'WeZw R2vW+ˮ[]ReY-m.dݬn۫r <7V$$L )ދ@ ~~7=euG7{,Q.1XHܳi"$V(8s<[$Wa Y1w+f-JSnI3k Y pHJ,]dԍX{P{:Snf-ˋ_ӴD04m@Y yD'u}ߟ\#/WeW7 AٌOrlx7o);!Hum_swʪgc] )< mMQQ)Oab6=%Fu)[Ye׭ (cHKQ8"1o"0LĄ@)S$}'H0߲V:B(;HIm,@}\QЦ}~z @˞):y?G>Tj'ISAG>}Ql?|~R-^޽{莍!@6sq̉Yp /*%ef1Z^ @cM* Ω^7/⟐(9h£S Ҿt)=RQzL!L0f;S~EkyZ1/o`-IºcY5o`5K_4vWɋقн2MQH[.ĵ :Vovkk7fʕ0߿1ǗrwW+Zįヲ6ϯc44M1ܝ Z| E^^GZeN9?{( ΜSy4R[,k$7|k-S#57|jdtsiG|L #31Dk8I&KIsL+u_.Ǟuç7nv}Β[ ~@SqtbOD;IffmݚT6,4S"iPlՈѲ(uܘ8@<`x4f277sfsjh1ǯ,qi0$n6-`1A6^ڮ.cJ)vƜI/0stirmk*w|^.Ts*}_(TצCaysyq':$bPc?&q^g13GVWNCtSڷ~Ϩ˒V܄W#ZaZI.0 o)xޥsٍ4ANB-p\,R\iۦкQj#5I9RҀ2E KW{)/CHZsQ{u4*3";Mq쌱!F@ } +(\Z RLA4|: (5T&T9F/EtxHgYuPO_,+kh2^d } %9YVȔ)ONGM|k^dd6b/o<>b-Ýb2a x!EIҋ+FzNB21QQtb%G,?_;6Z%8RZ)3?aqڛN$0.u]\洑Ύhg΢9ȋ寔ZS~c$cR*\vR|3nxIS'\ph>{ ٥$##$AlfT@4Aˊr%lUD栈T/Qknlk蕈8_jO3j ?|Q-K It3):CH ԗHE#zŨ =|EiXt~'Jڔ* ɟ̾u%c$Apçů9gU >Zt6RTtOz `>._/ 8#` kk p\l[#7}]ptvW"o!B^5^Kiz5ORxĶDޛ.=<$ytns^XzF}eF\Jbo]/ORM Qމ(~:}$Z\ FOQFBR2mݸbpwAĹ|fX:}eLJa6Sm.6Q,D3gs̍F!㘻RfL19RkշhZIt^Fa^nay$BHEb@ZfqfW9b.Yd!$p2nA%ɭbh7Hi#q`U%^H?}b m~DY}zurmDF^Dڲ׻t&jbx|psO"NOmS㐊2d:ĤB E[,JE.8BX , +g6J/Sܮn9VUk_|AMFMS(H[!%ATIkIyIZ/W0{%}bˮos4&R]#Sa_vKv0t]VŹj8(~?{h{ʉƉO 4q䁊dN;:mHX-DnVi\ⰺ@E+O 1vcB7gizpdKCNG(5uVyVHr :J1l`kM*ՈR: ]kk14B@0L+ R$x_q"q6 8ߥ a Z|^T(=N* OU>(kŞĥ54϶Xiħ{{]TA56H䳘Gg!4F\"=Ίn7~}s_Iu bj trS૯Z)M3ceWD)i|Wb]#Hp`~ jуmqL? 0 ~19Nho(#ϊ+9Ψ}:2ge?7=_SYXcLd8٪r&k; (%%b~G+lG|-]$jضsԺchRT74}YNxo-T˦M}1ZĻF?VϏ|YnO/O@B 5J:۝A ! {1񠵹/%#y~=$$S4P#BUыtӫ/Oײ]Qg%wcbJ^#"vylѓL )UJu"b礥%zR)RPԟguuO7A 3V|T\ N̢;|D9Gd<&KJx@1-&&EnU ps`nt0캺}g~0d cH"+,7Ҳڊ/.77yyu!&r~gu^G-}žo9NR5g`hvϥr}8GHb?1XY(:_xS6ZXsBf){~`7ims-wkjY Zٜ zXQ Wy4@N/?c6)%I(«- .DPsOXji:`W ĢX6uQjN@,4y Ew m@ j("a7@΄QMrxhIQl9( 丸j\%e[JƄK=hNLG=(ǤY%2i r>Ǵ!F a$I^Zg|6Zb(ΛT0v'VUYI* h f>ӓ)yc}陗;HA# D5=q)t r-H c1:š9HkxO\u\)p3MЅtӫ]f48~&}d^ *`OΞ`X.wpR%1KtιќL+eaWDzەYߍg;8li^64*r5Q01!v<= G%D/#YTΏGdnni2dFSFyn ,ԝ]AD6x ꔒicDP!munީ:ۆovO\r+mfSw ;ps{E?Ip"cA[֢iQ.`,s9Ljx粟JAp4\Iߋ uNjlǾEZ5J5Wr YG|`)߾4L:F)_6ÎnuJ0ׁƣDg z i~չvRR[!#^M(J3a"?c9RL%(޼bj|Sزu QhG2@Ev6G֓._R5$"Cښ[wg_VԤ V8/JltNf+y}ީUKH%;'LN">q(]Qf#=SɦH+> eL\!Q)) !O!tG<6!b{HclkvCP1Ŵ@sJF*=z_[.L-PBTX;&hϥ3Cb=Jr>3j*Z_*9 iX9c/Ou_W}u\.r(srIWy0DRJΕ'XX)4QgPOlk'ODݱjp \ <>" zMfߞrEJh"HWHI&1,g9Bwm_g&NY`@},fCqv~۷'6G7~pa)IJܹ~K !M$H:Q+u !Ras15T~ ?m{eHK63BT'0iTw%"#[a,X@ 揎mh$5 $ J.uUWYW]<j#hMκ]5$`)/s,h],JOn(#)ضK:Q j*ElOayŀ~ ו ʲ޻xTSlpF|:&a;OsD#Ɏ2;ͅ+'E㵻wgM8ڊIJ]DO*,Ds|~~\rc >yw"jN.ߗ"lw&t@{G3mzCL@ @ Inףr'##4E^|l)ph[*t4ˇ-F`ݺ"bX?3Bw}nз}7]Y1>D!~7}ݳŴ^hVp<;9E9|!Ioң|6mi=tbM}_X(sD4vGLE#m% ILP$*5w. &+BTG 0}.4dչo6'*[p ӥ} ݶu"#cd}fVk_S#7'{AjFo*JyV98܄RX>\N11ig !IS_[ܴmCe(ڿ7 ?e>kYZ4"t¯uŪ~q|tՃL >%cB)0X'"ůT( 3ip0id gUב~)*n.͋KK6+KV^( 9h+58Q3IZDQ:=N|EcޛYk(E|XfeCԞx8izs iV}[*j;]|NUd8K5ɕ{UocI*W˓l/xWHm-:naejIu<"v4aԡL.#1Z!=7Qd#Ifgآ][U{-y+h쟖aO#ZM֝xS?P1@bp;SOЎQ3zE$p{FUAR"U[{Ke$^yآ{:-R|;1ά1fF)I>r?H,M,ԚHW$KR݆ f֋0Tc}"[K |ǒU]{no_|7qffA4й!~C@BL}ˉ8ѤKKbR5 cy/*Eդ+4588$Ct+R"I 3DFx\)!g-ĭ [hj^@k !ZJIMm/[zgAUUQ @p=؆%s>kA3H:WSj_> cжeY0A/qьMJл˛y@y3<)4ߠ"&"(e6 B=fu_\Y׏>Dk:J`[|y Wf Wł;u-cRJb84j3#((B⽴ΩSkRR)~b㒂zcbiINmKj| ٢mysJAp±C!Vo7ড|͆Pm/qŕEhZO-ZEt1{xWm!CurV#YP{Lk ,̨Y. r~Po_^+cG|0ZQ'A %Txz}6^!ߑAAYǷA $R߉O?PʡKє9,l`Ϙ/Zl69"(:=oƺK,v\]$gA'v{nx]ÿL[/ۘK}zj,MYҶ#գ=?xѹ3%-j[ˑHb`̛}/j`hL7Piشw{;n '2E:']ɷ WΚH.~(HF'G_o[aa)u4;AGɹ˧/(wB|g91EMjR0ʤ1r^,rJׁᖷ$xW%]vUr.O4s|`}][@W̩rJ`ř F/Z.JU7 e+8O/M Fg/mS]k 0BxN;ZQ<NSsy) {ۗ^*4u(+A#Gk;G̋=zLV#tt(>ܦk:W:c|r-P"}?sqH(U$EF|SC sk3L^y^@ # #jAI*? }0z2 ?0y`M+1ΈH>3 f7y۝<'|sEGXϟsctm& 8jaQw da#;] HKqY}ΫѹS'WN@T߿|dzw[`krUܮVr~_%`HbU)v|v7 !UQ#'?cNLWJ<ۣb򥲼`-aJ1'#D@LLe~te, j;hWւյK@QZeT}=f_zڦ$f, fD4@Ԛ.Ickxq1 -owwo_1BL1{wz']{ᰢ@MG` @4_/ ɆTpYzsk7WB`cHش.C`]]-:wF}z=uQeGXqUjM 3+JJmcl]~֖@w"%k4aG(EЌ O%Zqϫts-֪ʟ`2W^k|^>v| 75N z^ `pVcS'OKZ}Չd W.Q RJַ{rFI#I?|'y5ŧ铔`c~ Z~ @ʌX;@$>}~R4"XJ[rӹ4UybzjZ$W.`^Ix7;:q3t>8_$!uzB+xut4=D/c~{z ջt$e3{zd2:M.ܑP딲XC֐ƐQx9C,RRgNńa$VW} i_'0RU׻)Oz5j f*)/"hBY5Lo:+@''|s) π 0 I%/;lC총-Uo4JBe7a+HZ'^\#dg#CQp`OM (1[r֭.)ZeD+ANˮtEѤ5Z68r$COYi(UᎩ?\:#D)P.a"6sWUWׯlL}mmBt\v hSrJ]nU_QjKԀ}LU }5vIյ>?d[mCCK~$@'}%)*fFp&3u̹`rչ,9W&M!XhfgMNym75$Y.)QN'`kuyV3R\CgUbat胐l|󑷤 Ϙ!JVűhY GM >AuPGV28I̔ y+hx>;.n~S_? Ӌ8g^'6/%I/o׽(4W[l =-F~p\\rjN,e9VKct،q!tG#<ҙUy>|U\гLH!^Jo$NDFt̨uc-%ʣamjV?)35cy7wZHh6mk\Q"JU {Q׀=)Rs3[u6hUX~5mW?o~Le}{{QMU8:$iHL Xv}^VH 4ҏ.@o |~ $z/=4:zi CAhD|C<ϩmHiϡw]+($? za%'a!&>}Q$QuE`4ϒ I.HQ͹''Ad,1hN0c{A #zu}nWY,weٮLg'.=NX 5|Zέŧ93O{)> Ev:G[O)v\lWж^\HwF=P%Q%3A5pދd{3F0~0* +{`k72y8yic ֑54霴v(`"R]FX,-d񰊷TWpv!یSʠ.j֭sMi32DCҋ$v)ZqXks $To*'}3YNY[&(R" =UJտ^Ť(wޞgFR5VU) +8Criԣͧf mS~S"oB_}sᇧ/s$E&lY, /J,%̎+J6+:-W!+e- =WOXEjsD0+O31QNSRvFW*F'Yi36#VƲСcA))/5 9sae.:Z ,Wfgߌ>?MV:6cHV'r \I&Τ/| E9x.RY۔mz9#)UAv6H9N*K;}7Xa_?(CGu$oFFJBZb_g~W-;2FR6pVK)@Qc,7݈ mkSPˆBĈW4bLZ+^vR8ۂFUuH猅˒V%YԊsK1bWE#|P wX%n~aCO@bFt7,W3 v/ۻw;,us+Eu;%"&WqV2N̥=;Go/9/j I^R!08рΤ10.xqbP<<[Y~`>xSWQZBn(Һ,^z `r(Cp.4_h}dR7n ļHFA* $E׈r[R;Ba}(gGNbW|`5OMiC1ƟI535JHeI -PMkDbu~e4kNg*+̨ B6Vd,OM܊s"̲k~l sq'P ~[xߺB$./%jrdEO}YiV `T4h1I$/׌J8́K` =i팘{҄ә8 s.M75*yHGR+k~{xk~GZ8<'ULƇOVS Bg_oPA8jcZ#'M [>ʱ`-m˒cF 7 `F4nk=kqF^+a/Km3i񵎌9&OhS9JRs+sK P/6`}K3|o6mU_kޮpܗ8v,m{ouc :ZxtUC]CA-+0޿Rln sϡ *}>kzfu@8xcj(p>d1e(@q] Y TvIҥU N3h!~ }E$Wؿ2kjVEP_k־BjLE:Bb]|v۷H0FNioħޖ{gm l_^th뵕=13|Y(tG Ғ"N"ngL HiN DӖhbյՍ<C62++'*E"ɹۤJ 46dXtE WI'y)!%=6)S#v#ǤTXCN'c3`?ecb8(28lV>}mtꎏp$-zh7 $}Mߵ슿` zxʝ8f|p:nY6SQyF ,#Ů#W_mG._>~\n/)b8XJ\)cS.([wc{آe6ؼ$L!w,N481)$Q/CJ!4C| |gD&Y~|t@WVflevcHc+xssPswaWS窖`.UZ%0ZӗMVc `(%z{/#܀5KzV=8M'(Ť:}Oެ>qz D,kB hj(V/ Uiۍ?48EYHV5r$LJKb{o$ַBğ|-h;u[բD/_P,/ba ݗV[w-`=XP8Ӗek-xBsZ#))Rh)| W+:gjJΌ\r] >s0q"WP_S )ss E(GJ"pYTCo ӣ(=63m=1Y/_ i^$}LƸ%7l7jzԘIYb8@Sc>DW]g~vе1?/R陋/+T{t0bjhmv~놵te0[cY=k-ȣO^8OCX1XQٌTӄ4;͝r゚CM2@1]FoI) J֪¤99HfS?|{aέƼ],, ͱhcEWPw11@/"_>)D'5^8k6C紹qhl_DԷ:Q&^Rb4@1_b|?rHdg󓩖8wUaT4#G`QfoitFA ;bQ7mQH8}$}OtypkO3_];@ϰP0b`hĬ5% E)j_2A5:'4npiEMF@slZ@<ͯԼ-gyЉc%(| Y\!X^{ |責rLp.UB>d hE/g돐iAIKEC]3ZNߏyl Kٻh}9 Iz(tiĤ!z@k_e8Ԃͯޢ',(>f[nX.~笼>߿駏'WLjbDLUsЎzm)f]WIjPK+®</Z\68vg1rD@eb 3!_3yJ$XnY}D2o?hG)m:B{TWP`. 6k,έE\${]#Ns^{[ޟʲdgطpHf@5'=E$@@ V lU,2NgCD`2ɛd țgჹ}p'Mg[$ J؃)BN}4DkMPR=qԼbQ`QF |QekRP^ӈ1](ep7A2cE g@ g%%J񾑙֩( E*yQ/ipјtNKy=u^>k9GRj-|y\-:y Yy[J#b,U٦7fW6M =t0'F3[+MP^mTWz_>=_?n?yymUU}X%bZ^2fѡf3.lnGcSt1@qc.3S8$5k!lm(;Z%~ǼWq1jܢ>\yUc]P9 @1 QɎm`-rr'10?ES׿y]mVaéYE7܀ M~__o:oNl?*1u;fݰ,>/YHe>:1_M2 +0 館J[+"dy/ nJ (Dkv|C<4)1"IO` Ř[p $1LzvҭwZSV/[u9%Z,'EQD +pߋji5 @H[~ ֚_UׅmQϦNO]F݈ȥ !SזR}bVZE HfBӨC,vD/6Y= /=עŊ=|@v)gaީVQ614+|M11#Y+a\h $)0tl5s~`4 WN-T8e{8-&|!po9噟~h[%w$E&9`&K=¶GhkL84@UmѶo`ʿLmT^p;_W ՂnK@X;ӑ&wvM>!Lw1~qK\,xwIňf7tVsG̢0M`llA Iv,|JA h[ CL01+o ͐۶ڜ4k e a"8lY !%,/^IEXrmg?廯Y7w\`sp5/_</_ɘ?A_rD1S]M{`9bl&\OALѤ딄'a$MK_:,#1hCF!)6t/gcM!7XTu- OY]|rj8/?qHdҎU@S\y$}fh)ioj.+}z V,vπ%cY}T u bm0(A= c%j7 *SAz÷}RẠT$ji\YofOנs0%!}2wA.k/jhb@1cr0h5wT`.$$g;t:v#sߤCUbY&?dO3eKI<G3PvLquLx7V~ ;UIk\(mchCN ga> ~(C^s+hե/7E9"7֌kϏ17@UrKyQӰCF.6۾{||!hu o_QNɇO+pY%Y!)[,\tCrRIrT7`8+Hh`(@lK~jZBkTQuO` ǘ7N)`~;0LB Ѫ~B60Ɣy e0Bŭ>BߒCb~KzPƱT*(x&)c⪄cڻk:{3F<@W_D9^+q`~q/8"0`@ Q E۬4Md1)%TU@Rʪ޺:fK5}ltO^)PV39qn*?z%)X};Ykxk4ș֦.zw75&hE.O8cl{PvvkɱmZ'̶f 8N r`c1V5e(3){fi@/g*}>ml[u Mʑ,❶?ۯ.ogcxG1ޞy7i>'țLJQ… }*)fRاLjqhMvs` x?9BAn 1\_Z nznahdqNcr\sj'&LQ$cھ6T+Jݪ37k??Xb; Sd "A*B;w3:"|z( & ^`BW\!^"Gi>ʝZYJ2LW Ӑ)JbJ al-@ ePdm̘uhD;%k p=3@i UCAc@*ȥ/BDwKh!X ~f]/6`\(b^oO&:X@ҴeI[? @Y`$j"t˱\O_4G efo{iKoGZ3טsIRU{DmRZx3mQ].wMߣ{.m}cKJF^c 9_Y  y9vVlC6x;Z@uз̖cL\4 .)(BfO3;2WѩG1M>*Nia' 9`Qw`m[Vj10v6I\4fcW۟V-ScyIzv`%<駧?bJ.~ '2 ^9+dXQ$kݸswNAl+5 hW軽[cH;qWQlQ(h>㇏#GrjS40{NϏFMuRRF~8e+NәV^A}X=;r/Hm֚WT NI0[KQW)vfW`ڶ` Hzʪs/{e*&@n}^>]D M#u})t 3hٶ?QHLY۶CAhC UVIc#mVYM\ޚ$f?E1g1&rzZߎW_4׎j0bD0>d܅}1(ܹP(2c^ ;fV'{Kba=~'mfkOg@\46v`ŷL*yx.RdhRPW>k`m*<]tnD_=^vng$W~\ڍ&rn)شfVe_/hNĖf6=ֹW;͖~adb|0ntNm ~mݼ,3ZLJrvwFAPTU.6}em3i?כŐ * ,zN>n3ٯ5,ΡFdlI j!F=z _ Ycۇ}o>'g_OZ(*VbQ]#p ( +<(lr^)̪]N8(IYp͵6LԭW1ENa?1 GÒjQ֙ڀI؄Lvw ɣEI2@,{ =@zxF,ouϧ$/uyӷ&_10\T/fPU (f*!zYi|ЗmNpS땝/OBl4f3e&ye,g}2BP/1 NʒNֶRU4a{PA"8b(=}YB*>3}fq}QV д޷,ƴ\̙9sD##,1o#m!b 0Ɲl2Ӡ bm m6},M&^:>҈ ۾HܴmU՛M;`v7x|7f?g@ k#IZ1kXThIMBan%"笷-G! ߫OSAa`/D!!hg- v2?R-`Pߞ2$2&֔դ3u~ Ji'u+ܣwj5ӳK2HYfR_|:ϗ'zӻ3t7OL$)Ѱ }S xY@C ™ j&1 <o oqcn9g`}ʠ<FRNu>,O1Um0OdI>|C\h ,ԧϟOX7FI~f/l9ݭ&l[gGifYĠH[$W;P Sy,KL W>`\0%( f0M8F5e S>̷}lQ,SZRݥǰҙ dnbhZ@d;8ՂD mU'5][P8[-_EX&EuxvHl.(k %(R<\$^![`%ВKv3_8'k`A|"0L:S|bd`P4c6&@@ "3jmZD .eu0$RԑQp@_TbrIqZ2nj\e8Pڀ!YM2Mi5B?̡mnO"3U[IQ5Zl~3\SEFD5ZuL\12R)D!>ae:V.yǢIb]]UWD ")}ܯtKʵ ]`vOZ?V6LqVƌX.Sq0;9lwl,0 83"YLd5ܚ3q2xURS>fgOT?>%.gPjce hKёj [ح>,5c}|GM#'L$q aBRR[n\Hg8amPUwkNRB==@~UTw勉e*0{ % 2{m2>}"뺲'OFyqSllf<|L_Q0"]B-8lU8k!mS۱2N:e2u1Ճk(g<sjE$e$V'{2Q-@W㢽[<Gz#gb(@`UB1϶!0 85Seh[fӃM/\H@b@ '"t|OۏtFSkIv5@ɣ}ߵ5 xT 1Toxzf]H?)Y \58F,&=kqoj17" 0Ɯ/jRu]|@mU3EN8>\.CʎeU?Y Sێ}dH3vVM@tSԵ"4'l[YjaGSEs8!;!f]ЛjsrLRO.'x3[ކa]Uvs|A- h*>4'mo(R )l$ęyu!g74V]?n뾚8PEjwH1Olڦ9j] (XNWR"oi+yJ;r?bME zbtF7fOT5&0&JͮOh%ӺCňQYMҷL ɈW$ur /5vKrQ1l44K >m 1/1gJ 0{z\׿z>!s\bfm2ԧeإ) z dl i;Ӳ;A&@pH"UlٵU 'c)Ү+*' |#&(C M*-to^ 1U}¶-OEn뜵@]1e-VbE)0֫k3 Iv=_ gͿ*pDܚu}|(9ϥh؜"uӵbIL]^Q" s4ɷuFf3jomvv7%M!z]BAv9aHZz3c<,i{i{AQe%E2$'ݠ{uj )硏z s0?SNG8CHze|x}#>7owvW? +Z &۽qV}\[S8XgSE}s :eê%qikAmWf2r1:?Y|o\ci HA9P\CO|zdvΔ7bNP4D!"[1RWÌc_|u맡ɫ]`s9WB\ EINlBed$/Lg]jr*+þY` iIXTm^סz;$KWI I, 27" %2vE( oYVYZ^`(̠q8 $0##ּfc3jh'"0'%_|JEcMΎtmyC{d xL@w"&9;:я+U-Khon0fՂc׽x4C,>e]5OaJ?Xw& H-(=)4l5"At]X̥uy_ՇIQ~㕙Mns W" *$ b+yzij$E9ÖOcaJ" Xstg&v8$ M2?맼xY*5֜Nqg̸J<7 ~}zvOE|"p?<^؎[ Iݯ]LN%?1%Dgj T8BLG-Rjs!Jc\J6Oɮ`+ B$fffu}6Nf7~"X:<=X m5U/$ Qk.!pUoSa1etE)#c@Qk1 )KYʌ2UFR$Q[C}xK'=EH1Uk -e"`{E^`u0_RQ)˥jn:Vk`|\=ӂ36L;di":0UǮC8r)+:ev4O"vot)`[2o0dlv@Lke]w8 vkKc_X=nk~*%6;)ߌcsbs/$Z!s}gZf[Uקj ̞GƹǿA*|0_֫ ތ ey>rqXZJG8q06:i^O$LHuv`)W{5ORlDhf~ @Wv%[nud$k15~qɇWKr7EUa3a6BOLW3꽈,'֡}',g}60[rev>ğ  o p&QM'ENr?!AD^&n,{d9(Z#%uM SBס,4R puš_2ƐA#FNV@}4^[,޼]+I12 @Z}ƈP"_w) ~@"+ [T@t/ϣC5oVo?THƺP0zgRGVP-1F{=pFQ_} rL!;w7{5A]ךpܶ`p^nUul)E j=.[`ZkH@yYVb=h_f. -G1ƱOo'67w$2n7glV8CŦtq8g70'ZkȖZ(tJ"sm^1)e&OY]sThW0 $3?ů~bL,ڰ1y7xG(ʓY(eG>&0Q~!c腔9D3b)p/vĤQ*bRbDT\wn_!AU B1E;h') QM^u #F]XtڪI4XiK0_6 ~fL<77 ]]D3%Amn%rb\Z.gZv,)ͧxW yWvM[dvLfu `6nn7gs֮,c޻> 8Ĕ/Ө;fB$(geQ ?`4w;\r,&F m1N%57 H:HތH楰W)Vf|4D,8 ̔p1gD%&?iTm5jH1K"%[mJ! jC[sXc^u, KT4`6ûǨYz;)Jbtn6ȉO(9M8Rh)#>No]QkW+ᏬgB bﺿ(?>B>#fnUbe鉊я[yt鱑ps4aLcMQAhmG#{ܵdw=&(ԏ?fZǁU6y;6zMf󮞽ٻn?~b1D{E3$`@Gr_bdRŸSOUFڄ!3[cUc<||tM?ɲTX6k?k'Qh kهߴo??g'9Ej7⬉@)t}MLڋ gp3B9y G"DXI3vpbmgnɚ@r$#w_dƔ"2%(-WO ss/Jm[F|ٮc+D, 1(gIq&&`-eqi@Y뵞1X1^wӗqDآ[k,(gUAǽ` \Cō]=MϗIJڶQ"ZhzQ2.7@㖧ex%`lz);N)0۱ B}k&M|d0RT @Kz,S]Cpf8c{%T^39k10|%k\F(a`l'F$&cʒ8pYś6k~99bM_S09t1lx0{Kj:V#/m֩{Bvp<]IwFhߚ r?lΉ8NTh6o7GgbWr8;-lfԏ +ús`0ƾ&KZ?>&-nͭ;MO2W/}_Ulzb/;1""uTY;GO}DQ\Ag.|մ>A6MCǩ J"$qX&w ~_<6NwaSo!BJVipl~Ya0] "xDz/lSBe] Wl?o;TX d26/^Λ [!ulx|ĂIYYM4:ay|gƘx# Bzz;`_tpsNeC&dk@$v_iv̏ (h&KǸrwpPnMI-DtVƫ,`GMҷ]:| & SjNUJ=tM,&&l:^R]`66CR{ݳ&F\݆g1 ,׽vf[WsnS̈́ Z% 0U®1'K)+Xn\=1~ܬq> ('<٬lԧI}mbv * kII!mnլC?]E]rUQia['[@>۔ghO6đ>NQgJ^.jQ|ՅVv_7?~zh~Eow[ZBsH+hr;͔1 mKe&JRwе@@Dh_TGVg2zQƦan)kHH?*܋IUĘ1Iΰ1 )O >,H( *ۢ\4k1GfOzu-7)mŚ` ~Rr6g+MS[bJ# z@a- 󭅮es{W\Ws̽g\ZX̂hH @akϥ\QzY٢x77_ЮOWYRŐj6k*&5+6{ گLx%*A0󺕖YGFyC2uBHO[c_:#~,&kGGZގJ1wJjJt0h9h':5i".N50 'X{aE@sB& 5RǏA J)&1ĝ҂ ^}z5߫1 fJ*X[} $WNinf@U`8+_spkGGkv-F]78Ž~qbf̗3HыLgri,񸩚KL&@1%~z,;M/f7fSԻrVv``LǤq&&$F$iÚX}(/>#5rb_3@,'?OGq,K!޿)~>whm1{! RQp H4|۲3d"A4)p~q7Q!.DH"%UQv;tY\Vg!-"4PZ@ z$8 D056Rr ! BJbld%wH!NMkI2 SN%)Ҙf @bIV`4m`V"S&( Ĺa,B[}#1+H":l*ڲ`|g!Z6b̭9]jg'%ҌUժlu~Niy,͛SU߆n5_u1\ڋ٢߬ " uݝBq ֖ךOo7]0}-6՜ڵd腡%$,`G~{H `)bWՉJ@W:hD :S-JvOD* )dm[%j<V45ːKJ1j~iʷAͲ'$dMʥ0) i-i#fJ!3/-dDP-<8Hv0*amVO8!>Ysʥ+W ~/0_?6`;8HQMuXUR|ZL2BDaYZC1VfSšt3K(OCT6.Chmi޴u5L Ib>'{q*M GS.U3&P=3k67-=݇뉃X*?a(.Aw09r>&8Dqϙ4:D]&ۻәE&b{Ծ'cMO+31;ٲ-^<;x_8в =%20Z?7Oq|+mqw_@@ZA*_ز)\!ԮU4νcuv`7<P^ǷR(\k!4l#flQEX O&~Sa_de+Ħw|G{2 EUρ#j6N߀Tc3Ȁ1SjPjLIq idm?syLhTL|ȖSdՕOGUmn ƟovYc|[sO6xT jӥ*50GƦ#1e- nX, ;ϊ[}WjVY/ AI9ޞ3JMIkvsi[YUv0K3TЦch0H`^WURZ|'#\>{@#k>=az' :k6 l4:~MgC z<;8}ʄOv74-Ϗ^Ap$"vb|TY|ÝN~<X?~wYNsj֡C~I+.)OO P4']!U0ٮcH)Tn(Br͔((iwa"Y 6ay%PH`6\v{7 V}YW>~Mؼhps//>~kIt_ɜ3 ,!&s7mAP%6⋁YllM`,)"vPb̓EPHB ъekxk@Y*oFF[K!xY :֋׶%YFDR/ lD;(=E&׊(]C1Z}{ٻ8eta}cSg0ym$Pl{T%6NL\ gbhxiF ?z|DC\ªcHɎgpa߿x$}C\t dj78Q!:sJSEErpLqơ  T\ըC%BYT =1]ԫDxpy??#6?bnփ̶n hX瓚 ~%m#ɔSA%JqAtm׿Yxy ۶_^PG4M{΋_nRJw}}9f>%gX^%kV@29 TzgT! 2Q{Ӷeb\@&1TĀInև[ fH,>D D2Is@ffT*46hhKó(dNluLI>VӚY(X7z,nC7w]K||$/~v=s(}͙y\ab,QL񢀱"琫OyA#fQ?3ƧME@YfAE -Wu$V:1)GvS2w@>F1dh&gx^3-' r"y|ARIр7rs(|Osz#O}=v\0+O ӗg1v?^_.oRQ*{EGy 2Y'ЫinbejGB]1E4C #O[IZQ4XC$4LcX>m}Ii aLBյ&GPVW;41P(+į9Q$nvQ1.g% eFܡeANm~ a/$8}@h\}28TSoX ~< +R}R ΃<)%^RטW}yx1r"HĚ_gVRf@y}O n΍ PRp^<%iT31FFE@#Q1di8TrsFJhh^77\=1(c|(&9F3@V1`7﫮Tj@͔-: ꉗ'ٕȅ>æA ` k춨YZ}뭞(W? bԤ&魫4lq,wsqdס,seqY1}H%q\GA }X?^ӳHWX,AA~+bXbɞe׵\p[689쐼BMthZiCNL,Hi|s@e}hb5Xi0p6C`Y4iLCňA>wjHmY8"K?@8VanҶl~݇[׫ԇ7n#h48Yo0+IG}E m0Q/j,9Rz4??/^ 9$Ux!nj7@YL>ip%x(ewg mg8&ȗ6)yユЭ@]qk='mEFg k jDjmr9p Ft3DB 1|{~<y!W@pWtm0 ֒s__oo `Rw29^MR݆&8F̛T6Wz"hz,/ N祒8[!kCx!RWEH}pk n$]I'eL'|V(9s-H-{S{Op" +* 5no5>֎[x柫yh+ݫW_k{&ui^<@87bu,/ RXJjֱCis CARbiVQ#)-LYFLm_[\.TvrMCZ$ĺ z5JzxGQtV8 ϩƪTW g,$)g޿>l9-_)g&4m| Tӵfqgp¤$9w_ڛ{|x8/=OɭgS$=bmo(۝L5=B|W^I毟PewmZyct8ا~osURT}F(jc n҄C2J˹Ⱦs}b!T6<'&)\̈F,`'ݾ^BY<zg1L>DGrch`97(ƈ:u<< Mu]캌yzLoߎ$ D2:em>v}uu|W7m rF Y DX{l5O5EnOޕ}|_Uh8Hdxf;Y^3g45 ))LӮ{1IDx!JF1tB d&2!X=sƿkbAW-omw֫ϏyeRڮ^[)a#"ج^xE?-̰@& пnP]!կ{K,y.5[^jV RU^PSx!sͩ(\z;_ΕV*ߋKr {I]NPW\@sdg:ICIe@a SP'ޜ(*'E=ߘ(sE plZ^"(ddKk80+l>JݑM݇brs;>aާh~._ʘ/h=,mGH,*ҏ;;#ZwWι:CUvZ֝*V$’(0v0uF2hJѰl^ci 5G;?z׶}TTrk>=ƘQ #(M~l]qH)ez6b y*#_v85>uA$w^/PQŧB8* ai/{o?/u k!lN]ŸY. )b@gX'|S uD_3R>K~aX1$y[Qa..M&#Ig0g 1Z"Ti|% $b\H"UߘXK!ZJp`Y;Uv)QPTx~޿w^KY}(1躿BNkC =I+]_{PZ[8~[QX Y. O|%)B@Y>QҨ&@eRn,ۧ+μ3EDE6$z|Wa 0v:񽸂늾@zm*:BW<$ !Y˓<~=i-ͿjxߓSѴ+j7 eI݉FҬ;)P9~<8K;;NVu[Fc%Y~mc ?V8%܍0ֳRUHMb"7OVv|y`vԨ7mb|&;wEy7>NJ<{wvw7YnXv-[Hİ6vcy#=x?pn)8*s%EDL)U950&J>&ќ#<2}e9 ͦaHa>RdGrm3Y]Z207,;=R%x6T%Sn|iwZܾ 1?ζ{4K$ oR[B矻o9顯6mBzO}|<_5Wm7˻d$TX{gz|xHI4uu- QMqm3[OrtyF$s$b*0CD=4P>[ I?F+ ?4~ 6X57\@H) (^[&h2l)310_GHqfX|Ic4FOwR)]fǘ:f.G%!b߽z|Gc 8+Y7uY?h6Ogώ9?bRx%ʂc [q amcmӴ6`RJqX p0@Xu8k2^j` +Wu=A\8x{a[<:lU8ٲAPɹ#jJ~j:'6̳Z7}@;i6ճ]okL+0~ aof3; iPœ$m)IԛH @#1Pq1R%rK{;7soo$tGƨBb}͓2+2?0]u`2WR{qD(ODReϢٲ_?OfHpz|3=??4]ᛅo/ ?0`7!hw(kH'P=]:dQ M5h, SݭWl PWUø8Ǝ&ܪ6p?w\&-Ҕߠ0`s?=n[=tH) bڌ6ێʘwdeuӵOd{q#$^yebBS4><7Rޠ\h<1ޣ './j8V6L3Lu{5^SS`vi >էrP~v9_m|D#+дT]w?[;aZ|-UxnDXq2#H!`u36MIuy0D1:'wb b<(rti t"E2mLϒhu(L5xߟ7b8RbZ0Y]Y }Lq^a$ǒnxC. RO?o1jxwc>Z,]P@wJvhV\Xvw}]j֙ oʦX?7d%8Mԧ[,\5Iʌ +,4Fy.MgOEni9#mYY]!uw{{[@R`1L0b4Ƽ bT.Q u0a&q3N-*%WF`'rHaZ[(&8_V/P%O@.("kJrEKVNTá0Kk_,SnyS~A" NukT+`ݾִ(9 &VtQ_׹&Gץ45ǭqC)st X)fAg mu%g)Em}=>+Y;lǝI^#U&W'~(F.[ YWKY!ڢFu bJj*kWdU:kMGU 2(e˟T[4"BIN2X1NR>D(q\iE<kwz\P!جY.ln|+/VXag-e>f}-R{-\UNWA@[++2o_f*$Mq{llLxNofe%A =Y\: `vW* c] >Iy?G`΋G*`!Xk2e86U sR:C#Ium>6 9-kQOyLHcI},gUq.' m#xPET@/[۴ m4GQ[@{JH!91ma\7Jr7fD?T3K v~B=kuIP7EaDilC{zY@j EdQ(~Ѭk!kV9:h=*kp @اoWJ Z]{I|ޭ9#/bE>g/BT_?7oN*QQVFמL_=EWv/ziheub;(_!ocxO6 ;~[[ <}p9IC|J-\o*t]x1立IBkL^dhQx4YmBI}I5Ikvm /O%S06Riߵ vn&̇3}5Zc7w6 bq"yDCe:R 6- NxrӴh3^(<>|WzlbV0f)-N !8 I{.$pe]o"b |}o(\x`$KY?w(j%IF YYؑ{\Hk! \? `X$]*ʓ.s: PVԍ8a8rIΔd93LA "`|8uMM#Ȟ첎{ >CL[sx}wUr9q z_Y{ܧշ/pxIm?|,eeUDhčqoߘӐdC23kk^Pi$DDQ$pZ$㌫D?I *.4{48]k*z9Zg耤jaCQ`ξ #n .ԇm{0o_(p+L<4{;\uszoEQiqU2Y;b PV[j6ڌAaiY|u'&1H7D) IM_f3t̺RfǼx]vE `lYѰATu)!L%n(8,({0]+Ez)ua%uj)s I4 u' Dȃ f0_L peG -!u.&ˢޱ)WknDT%H}0`M fخ*0 ({~#VBHD3b[pw|A.:LM軺 ^o ʺ>D6._|ƀA0HG16)E>`nVD2sHBJg*w3$P?_ϛق6+|S;M|zzkπ/l"6  6` QPVxD됒t% ]|(Mf (ŠdwsWȨ05 7wpjI Cǭf$kI-~mHa,1{;I('.SPc" ӟ3<#5m[a--a?6|/1[0&k$P-:NY=&>/2<$\#Ѳ1C/ MsUf(\_p"/2bZ t [gc<,mA kwO{6'e3yx4DCw&N#*2"K/X(Oc}YRYC\H$3Yϭiz4hԿד}v8鄶VOy+Wl&@6ϻzmGEA<+Y/ʿ~;akiQౘf<"vN"x{{^V@)L ǮD]@|ztăoi(MG!&؈nAS /?͓̾P6 oxJddM|ڹ*lLUbo(WUu7wrYͭK̸R[$ߏ6YѺD~y?:TDS E5gr;V:ͭm@YR$@9clnrr+;5XJVд(l0gqS |min)^Ú<2R5 w}gpŎJ5H[D6#E`Y'jMJy &*d5ItT^GX>/]Ζ W1!ru;¨&.jURj\ft":dօbRfb#Z=дa0#z*Sy!S\koFLt}*'%( rRc#c~ Q@Yvn2thYA="ޏ]֥ifDf$LW1F[бL&J!? E7ha[<ed滓z}c\ M_i,DC4 A0aOcA }"Ld1؄~qգЯ&6n Q0!&|rw0b3׍my!@~뇚ˌȑ&+o[3f_5,~EIWl?uefubp%pp Λ77ڠ ŘF0!PaUt6m ÐaRY$!-%"| go;l?+~_fc˛WGgo%~f3ص/Z{[}i]L1 T;,/ >Vjx?iw2m? еeN9MY92N=s0,%XZ[OC|hY$6@v!%JŘ1ņMMl2}jW>֬11i imԭrvdɪL#R pрD1k_bYoVS@y=Åe7@ɹ!l(Cs<*}Ǜw &o"U\D?q4u}}h1w><ش+ї~xy:xr* 6kvě-J Qծ7U@e(o&[Wo0(JLV'Vsqv ZwP\WR]l^ӥ en!XW()zIR HOukwK;/X{Vwg|wu/.TLrwdMJ"!p0>g+~K,hƼ0iGJ&k٬' RB@@2WX"jPd(^󬪭X/%q-PCԅc`x94`BMjTXQw(\Ǧ\uJWRiNZXP˦C\MLXqW>a,rLg-A"K2gdSst^3gM[6XGAaƚT/47fb:@ʅ+WR:ϱYyU}2 cc !Z4[  ^agPf/ MB)yfYIc#C(Lvy+^C mߡ(2!v^ +D.+ࠝSxОIoNzOusΝ^[L馪h[YG8%u2Uٽ#ӗwi|VG0PCmmlu4I'E],w]zpm%鰅6@in|rf 1t|}O40$F {P;NB$\%)u\N$IH{"}6EK _?[{^'N%Uy٤LJpK4*ܾbk6eݭi:XK| rz0ug@rv}j:wU‚$U%eZZP$Y".-?W{2IT25zPQpQU[߿" [g6׾[=bvH ˙TmF2>>0z>XetJ MM xpr-tmk*^cBOcrKԢBimWUvnsa\hMZUm󕊿䘽)QnuMYm';&g#18i f1]}* }( $qO%:>W ׵j~1|}SΊ)(I.f/Ɛ"@(Ƕmc&g\L}v;Xɉb^\bVaӢpdӥfihe1>q^m*;u!g:F@LQZB. ĵ5I",U5ry $C~Otȶ%YR4/btpԩH[(2skJƍDIF鏔d &}5/fX='}/"nu+L_|yTwBH18?Ou-Xpۇ=Wo,cn7\ɕk彘uPkp3ICr鵞ͼ_ڗ|Je4.U'r9v"%MymRJ] Hּ Q-oR-o_@QޡBSgߍM0k`3 )t=6k&*1!3 MRź./6R6>zv૯-3cx  =m>ټ7LEYm ׌U%*Fc(6lϪ[6M)r!@5>3ްIi\yLM*8ƱOQpR,Y{CWSLr}vd7=D{@O l І XW[ }KŴO ߒqI ࣴA1|sW`+Z& aj6x,5-^sO8kf-QtA&`sRSh*0}.@1izu^jΝ4{~l"j1d2i|14 0 ..,AuCay"" 0Uཔ%d ~a4-|Mf߽{7Kk|Yc-X ԥ(fЬ;A6-է'%Ӿ;qQ&] I2 3W7lcK!,n 'kI2@$ "SHم)| b X}ϮH;ӳf1PjUWE8a4sxꮿvLy([u949Ʀ4m}HC}ilulL|+ה/JumWE~>a:cK"L$u3Pw7dI+G>S~[<1Dj-{;IrY3&sRK¦f͖x6nmc?Za?0qe@ONzXYJx 3#|N#= bBYwL`L9T/SnF|$M #Рȉv $ƨD1ϟe&&i;Ơeo?ǯ"Eh-|0>t2q8! x¿KdBV{r7b|Kl^;%xM89+)`(˰0W^L1^C1͐1!z*̶I"w:]*`q HJD<8MĤAЊ8u1/s_4?IT$A6 1U(1EͶ|δy^X @Solq 5op-#o-KqᣲxH [r"=ef1@`\[컻; %`97@3>w:IQ낇X76 X^%WOQ`bO$lڋA%%b[\Qϰ7| '8Aln*AvSEIǟqUn'[M(CĚ E+%jL/3`}bcjhuU BDqL :XX"p@-:#{-mA$8ÄyZ 4_xu2dB@J,'@& ;7k Ix4VM#&]Xr9_ȇyL~G'j^ӽ9QWIL$29 BJʯJ&ѵ@5;OF Py}s eMȎK5I[.7*b9@|FomqRu;-H>"79%-)J4XDokyIwf1=j21ZxΈ IvҼX= PxxwwWrAε>™R\٬y6Oee6'wMQ}'EID` \k%߭&_|ǷTS/斁L2 &D@6CLZwFY_iI1ϲ#pfQ_ `k{15fַO :6Mѧ G) @ZeǜD3z7CVWJqY`;6vִvL0\8⹠ZtdS[ 21:}13v?b#_??1gb+̫ p:( ]]7Xpe'ӟ,\F$U꛾rBvyZ?2DS:w1(U'x&Ϥ~6`lLv{?Gfvʮ'3ʃCJں!潤W˶i9EcRa圮j68J2ϏV8r)Mb\|f1`>Шgf+>M/=Pf%.|IP.`l#hIkQ"wv !$+?!vÔ#+)I$a1Ϊ{\9gh{88D Y R1o05&2,bISfȔ+3RWw#*?c| Z`]ޘ&Ɲ@|/SH@Z[{"1CUto,Be}r4v,Ӯ$5rp6eQ HwXEhXqKn= r`MNKج5IC ( ?M}53HW@\?(&E 4szD9V%&6|7,bN:[^h>`~uhu]t.|)eb޶n8{+ۃhh8 $3ߣ"?~Ӵ eU/k߶ ~zѮ7CX=UH|Y\t{3u"`XtCTYƤ`$( #fǧ`BYnnƈ|d U} >r036ش=3l 1!>U8׊ v`Uh :p*)l"RZb~Mlu|(>PAo+@BD'Bɜ$1;*!%ݱg^.?cyUh\`AM/X1ecUߋn12-5`G1Tq>7ޫRUF`ɋx2QE뤵&Th%xA7_ @={ MbR=Q%x.m }]AUTi&4{*9.\<$x+diPq!Z#øR}[g5mm3"MD>qQŏGxt>*7˲>ƂNЉQ21$#biXzcXRf0@uiW-QR}`ֲ.%LHG}&}e_"Nf48I&zg0Ii:+@攒4He-9bh_mSoVwnS_w+~7_ 4(`Po<ZOva+mU'xI(M6|Cj]m1 M;  K-6+.ߤ<x \4 fl6BOZmVv3^<ݤY cˉ h vg&$r@n⇗_7 >u)8`ph]Xq>%1X o6> d_[sॳ/T@QOnstll6@\h7.`NQD>\=S ~ $*vSJ#fS|N|& ꁡkQVZfznʚF B[*G#IDf8+mtBku&tA>M2$ !┶9˝Gt=BËLt8' @EqK*1E)oV6kaŌw}6TÀc]|{i S#ñߏ^ݯ|2n';@ W?Z|eV 4fd6)00x%]ݤ⍣uSp.ڿH CK?MU7y?9/_u1dw%YB(Edk0 @9rEOSX?7Osyos6+mAU\ܡf K'# Ia8%av&v5M0\F 9ـaۨP[EǿяXmNE}|g`6SV{$F" φE:X b0q2ˊs}%s'nS >T(Ƣ eY. vk>>?Hr,=A y%g_{@O?m]nma\X^bqՙbX&G$K|,8p<ꡙ%Z`MuqC. (QtpB***V63Ouű[ݸfO)Kvj@FqR+Fc)Hf!I/fY:y u^6N=?geC#$7\Kj$%s{r}2kMQ;4Ts w Ʈ2E:DRv**ڜ>d j@R:i{lQq9F;+}4q_9-O"0 OC+>F*E}NYQ7|(I! |ofN4QbSTi3P9eUANyRgfr6h9'zϨs\ʺ/i&蘢2+Çl-yA5tELn _=EkEkzjP qg/ 1]&nVw+kޯX, dNU(0+uyU}m&iݤ'M2z{\8<o1sagifQHuu g~ZͅųՎYNbP2zAkR@ΰN1 59ä91b䗍?wq|)bkB/??d@Y}P@ X6'”G3|΢yN+ #!~IߊOfsEIe/^P\8|sBзr D'u'k[}=tMS֯e%z?Uբ.,q ѴI<&e>$˕n-ןl%I:W| X7HJ]2` M6Ŕ9$'Vb]Ǧ1LOWH&v6FYˋM!ƔV/y}7")z<(HkaR*gm>e~0WZ">xaH.$\ Ix|SH029yDet8`l Up vU%DipƧ躘U,'ODeNs4^+xzMz9ܞzdrƦ#W~xH) $ܓZ,eMLStqY c=$GN1if>b.ĕY}'1NdL6Z:4Wtp)OR{@ex`cҾbik{=7{NXW fwwUP# DvQV{JT:x%^b) !猷Oʒ.xɔG[W_?!8s*W eYkJylhێ9u][0h2>9_ h :h fXC7#$ IԴWkm߹_JʘTV*2K7^`];YK ~`{QU!*PStX/z!L5[!^6sYڪ`hM^Cw!@hӀlnNb1#]]1w@/BbuVvZ "JZL/0tqns\i3Tdתp )94H햠Ld6[Ccpu*E=^aZEQ~//S0ܫZ%tt,fbjFm>OҴ!:*{n&[9+ɠ;SEA}fd \ʈ)ݞIGT{< F yJQFCO;V_^XM}PGOҝ{?y !|-t}?qڥ{JyIgŞ\Kx&iNhK19 @hsjˈyQ},%t<(H(Ei!Sb U0FB]So2I*81h3VWP%W/_2n Dd[EF3yWһ9F!G? ϟvjpl\z @5j H~o{bTI}x Z<Ӎ?=G`Q7"ˇnw(pt3W+Γw̒!Q<& LD9CYg5vo4s:5jF-m 4H9 -LJ7(o7yRf g% y.TQs7keug27q cpeZkCV @NjA-/$5<$d_hr9zƈ*^ݿmQDթo}Eנb qoc(+%nk?1H[k_iv^k9:%8{=},sMDD4]x(5yH Ht)b={R?ߪDہyFMB}F8U'tv=.E?By}U uƱ\}ȱO4ݧ@`NyZ! XE uf6:FņY ݹ\Bp)A=94L؜ģhi_7<7",IxyFSLrJ99 d-8?ıM(bW KUXU9vˏ %r8d "zRtKh ?~]^ʇmI<l蔈13EnKr) 5P7M}X>W{EW((DҚ9Ob$WS،eiҪ.\ʽ>qbC)=Fb#L/jF{W:> tF+WIb}VgIyO}= 2 "OhPXZДSJ<~GEI)vմ Zx1Z{O[D<b8Eɔ3 ل޸ Kz~MY4lq^SЛ~}QB{`1V</@3t=H ~(T wt& 3)g9}? k+Rd fEŽr$e=1/ { =@9Fx)-e]wP\]G@WZ{F)^lpw۫"ֶ d T!=rΗ kf,2c `R_]Ӑr,kż(Y;JC~2&u>$g\?q` H64/hi_=|~ǬCus>\bٍt: \CLo)i  zԋ=GJgV@z ΒVOŭk.Wv_ V: AsJ yc0@6_l ΰ H@X ?YVuUj2Cg(;-k٨[# h}޳1twD1WZ(gA 38+e:89n$/nU6+D>tX.- Ln:l9euC_sڔ \>ܜLuJF[IE 5ʚvk }{e*z RKJ@$ug/ Ia: yψ/MU6:CrZz@1rNޠ7zى97cϟr+2P+Jߟn ṾKZ$%Z*ӏrW)24 t.ꐙ {hr*+3xQ:FnؗubeA>= E2ćl˜'2̑Wy 0I._鲵NaNb^P~[%8I H8 & e\-%F$>!7IS 1:1E3^=߷NJ}xT'y=fM4o'![3,,QS1fcnc J#;F>zV/?Oz%PVj?>;MԀXRZ LזFiHiOm1wڝ W|W!0Vn=XS{%=x*Z_* .wjۢ^o᚝lEYjExm)NoJtnqdw+`OLc{οO|h23a1 v@Μ{@10+6q^igs\o$ke:ͼMR*cLΡlnw?7_io!qznʪpl=@גO#z ( E$U D63kKk1H8c 9dHOSxդi^0Z]Gs}Õv7\&:J@\ aEraCԾ1wRj,ʎh~I cMcp V-o]X 6u:o]cZ Bo0X`}>L&N> (RD7 vԜD*'2I\̗I.v XS~lj͛Jq׶VDnWx؝s8 |bbTQ``na81(wGHT;SK) d l&U>;bcPR>P{dtNDa'}M abh@*GS )}vJ1$O@>T447 {-@5eE&(v} EFN*eU}3/9(_I|WyﭽuC@Αᝧ?aOgc Vfl_S`e֥)bfMYwGo׿_?JœsI`r fmŸQTZ| N?o< OMH9 B=&Z-2YM]}@jȂca\u E@NRA@KM1}կ~_^'kcK E7'a.j ,/=f71Yu(1r3#˽hFH3%FKLb"R)%th8tdQikQ~O/ p @ᣜM0qYXJ8SQ_GT]P[ C!WN"i?2礔sb`}خJS\׹m\ t]p)YY]k3!&G'"03txgCzw1Mbƥ!'Bl\\b؉Y@iȤ@O2֩QĶD{ ^tX,͚bG#Z_J!XC/e)J}Ut%1Ic?=%Q4eM8AI^' -s|iqRJ-jQ1pp~sJatYx"^e1ҁ,:[qLIu}0>Ri`t咫R]2'anwT-XX2kEIEC>&ޫbJ13=$\PnD, =e}:=-p?+ArQ"KmCUJayĸtQ!m!|:,)hMk2;DsG痟KD`ɪI,wUg `l.}Hmxhƹ{+!R}~P}fN4z%e[IDAT !tCKT 9rJ]ۿ52EG#7W{n}p`LϟS2VTU;\DPW:ŧِX=txu*}O!޺;aN9~}N(&}ُƐAӟ=ͥ~+ 6FH]^+͗ʈ4&s(I*x ( )G!8g)Rױ"Rswo9ʢ` wQ,!@kP* +EqO]7vm@Y.@ɬ\)Zj7_( f 9C^!ڮ*+OSx=_ f)P6pRkb@]LB'+JHm6S14wDoo}1N[5-{,O|ߊ( OkNW ($U)Û7E|PV.{}ӽX2Ů\HEjɴnL}.H1Ŝ]_;FLqPRG)TÞ'2 zwvf8Rsՙ嗨{ƅ!g=qODU/}K7< bOzswJsiѯM9Nՠ핵4j_%m@'h_>lilrJ%FާOIǎv8Q*WkUN)Rz[C%K]SuկA.D | 9lsMw4EHTK| Z_C 9lv)D&*AH45]4W]Xj@. 'veH0pyE=|Kl^֛W 6"|Q@J;X~ @2(jX a+[Wz ewZEؾĻǯ~hVjo] M)#& ӆYipM Fa(kS_*1*y[SS˩Tu]rz1@uyB @ o~%)iWyTe}1>MyR2J|\V!e 6JD@&fOTQ9`5go0uYXjRk _GX:-I>F$8 3IMV@ۗD謅tZ`Xw:Jm+(YwXG{s Y ɴ7*ƼIQc6q>f,8[*szIZ[/b f҈CJ 9}*5 8nFO:S0ѫ l  imu3)f>_UbQä́)E'V:ڭ`t;(ɦ@JR 4j1!wFм"b5j%Ѥז23tC lwڮ#}^/ K{eo9?z@gg4 HWz3U~fݼ4YVm=SFʢShЧ٤H6 PVcN3 me xCCޱݪ?xoӿUYZHU;r c+^UfcM;1GQq0d,ħʺ.!84fek!}lK^[X>OڈPI-VjZ'dCm4T3<Vr d, ˟+"M_T^(Os8\@ ["\+gh )+%bobF]_{^q(?ӏמ |I~$E" 5B˷J&bJjun Osrg="chLإI hKj]T@I1eɒ>#2bhY@2 !><) :>IS!y/ Q]'|~9 GqGc"3&w;5ᎏ FYeVBs}>jcdr5Zg?sjPZm>8^T5)/zaE#W<:Uvz@Seu؜oi~Fӕpɖ `Lv 7(&|Ǜ;jjĶR s\2"Հ ֜3IqfD+zdw/Ӛšm=Eids"y7Y `FfٜXiE!! iKJ`fFG0s3f Ȯ(-FWpjl0P=o>juGU-A^Κ.bFKP4EYZ! CJS9U˵h VKkbaPENN,f^tRF5)R+,TJ]@v??Q,ʽFm^D|m?h;]hSf&\qGC BPVMft<yfM/i{q6m{]Juy_0-&i(NM/ U|Atʟ3/e)i=gqc) ct/ ӅC6 UlS vZOJ=pʒ:7L!M!*{RLSK^|`gm @9'G29h%#IY|zyF 0GTc($- 6P55:+B0bs5;Q-+pĈ`FȞ OݣGʉ0>&yH@` ];s Sk6 b'J@ JMre|ZkdQ)biڟ(_[r_~. x?g)@9ihYlqd-J ]; D ?gχXC9099(p$؃+*gAπD]Yl_錁R Y2[xzҕYX>_/&{ q:r"O3'к랍\\Tg|2If /O%VZN͐NJ 0ng^3r4}X/׾-!lZbҒ`juZnR$ݷQ 6;Iҿb3--m/kY,21k{/E>ٖя.~s6jyiUUIzk$7*ȀVRQ'kUZ͋n˻!_k =;Gs \'}' ț28/R]3[tn sD XzcxYmt˳y!QLl41x9:搟c/HFsLt k)_<YsDhn)ŢZ{(Xmy}e W:q'J #d9G|vl>sDƮ(~FDًĮ=]b,~J4gzr<)pV S8fH;DVH|Ln3H/a^W1}r3ƃ=UC$j\S }s:bGɴrVN[Qϫ=rUju=U1k6GnhuBLF#5*nB^ra0Tǔǖ%vf-jn貥msN,d:8D\ŕ$׬-N=Y?F.l7 2|JĔLҤG|k5mj7wKj*(͚D>^(LI9"322G/R{ь~ۘ{Z(LzΜISNŶjLFFe^,Z,w/0N=* ;Z5ZUUX,4ꁠ &t3z/at-|,J!3RH)PlRZؾ8}lzrQO73뒵,kwfT Ĕ2@ae`cTDeduEv٨(d?b(#w<2{w2N4'#^(oOUk6P;rք kmLma9{Od/u;&=JVrV\{IsNϗ 3c{yHcN sFHG7$RGvB#. R4eL::(1GUHgrJ%2^-ZK\!Yb, Wa!OͅgJ|0+ Q2wS/9&2v &}09Tj]S,S9ԧ?Ql[d'_nьPUwO߹UV6YźC=rϟهJGcWV^+Rxa_zY`u֦xESS@͆i&q`|tdV?oZUb7 FU/"m>ُ Z[gT(`m/1>] Ք34X2,)ĄՆHGyFy1?Zg2┇3Bf)w@' ҊJ )->^9 u`Tz*XrNsdkYYIODl͎$I&3&;YR(TeĪfZzSqpN<_ >KEyD|ք9 @=nWʹU;J)> ]o oߗrZo\ twޖ@fjs(KnzMC)t}` 8],nHEfrŲMk1#szR }S:@g !<9$#|XSR&'`Qs3L !dI1*3{Iށ踟zJ{NjmWHl'rBDP4 &]*V+ܦ8 #y][+*uUMQ'mZa^tğ Qֲ7SGstXJ{i߉_l2kΘS(btaUwKF~t=&>6QĀrFK6'CJPmsYܙ7ڦ:{hZ)/HA:xXЛr l|8 ȹ [83˧)&鄔RHIJy`~2Wmcƹ1߆/m]y眈 d)֖I?.w?o$sMnX+H)4@9ZT_1z"t) 85d;ȉb`HeFĠ,8;$'s ˾^D =FwRp6/\Aپ(t%ZM2VŐ U5lwW~Eksκʊ}(jٶ[&cHzSKY dXP?-(u"c9RFJc줂VE!_sV;vJvf!>^Dp{\hŒ|hpl cO]wʮ#$rYBYϴ_)硕$,28c"PLU]U!5&)qTT?xɧ Fo8F Skipdσ1ߗ# ##:E=0$hն+ ch]PT+Wva}R-__@>&5Ζ/1•Jkkat1أ*m@=In*X{ }1ltMa %]WH]UzE%A{@UꎀF'oAq)nguBr|C V{w\u:gu:++Y䜳SKpnd~j[+5~z(;HSH4M׊FFd˚3**E5,Xtb}JO˜ʩ:OU~P1xo +5(TJ YiH7#1aԷzT~Hu`1cH |Ȟp%lbo-O 5#%831tDF1 + /M_`}"tJu{V:9 _aZf%Do ʪvkyvZGE{~ %M: Q1j [CN׋HgN;w#Jp@™^7 O;/ۧhLz-JY+^sJי :qp(i9٤F3ѓ0rQ!1c1I3'c\F!I/4{2y@ ]ƗiD~Q1FyҤ;}Ɲ3=;g5Z#mQP9<>7kHpJ3}ZWbKa\3eIM!1aRXna|l!d @Jfж2rVJeR|w„eK8uJ q4D':C,0x/ϊ0%<`{̍8+:࢚c^r06A4{ʙR*3i;ʎ!~c3^9~EUʚ7/^zHŤUEt^10?^nR`E]8@D}@I8 /Iq\>It4.$}@Ꮈ`UmwL7x:&}0]PL=ԓ'@")2N'cgEIi-53aʾ,g%I/~0=h$&1 p p! U ^#/O[?8LϜ!%ԸBt&RSʪ9.x:A_Ru#[; .?áJmBB]$'^nhc*Y1 `>!plw&|T >բ (c`sLԔ|~>J-*Q*Kk͓uT\?~ msngiԵدuzCzөfˋ^%jK9Sʈ+lfg3ʾ6( b]Uaw_4,w;<<>EoJ=f(B l^43 u1u_EJڥݵCU|o&4旻7;wuQ6PΡ{s*>`|(űNY)fUVHCFbi(r2@MȖ$5}ɴ)X7`Etȭݟ5Vj핰aqG⃆DZ*u(֓tbmQ@omtl\pȜ)PZee9Н\CM__o-g9y-,-59d֯p$n˛@Y WM-qOի4LZRVad l)dPwٕϮBw7 }wbI)aU]=\Vj}|=mϣ͐La3ʣե8(v앓VA|;NIu0r/J2gӫb:BS+GBA!XYdMFo?"&0O"s?j߯, \YkDosDR4 KfEZSZt+&rIJChxݎf$"YST}NC^oC; 7;QH8V(ŮbkI*>N?{N>CaN5hϪWe=Cfh$Mqߝ7k Es4-N9Y)VJqbe3ylm13^r @ zyQLz?4֫ڨd wxsI"TV#bƧh4h?E6mQ/ZO9)i-W R` ギa~ yy,A=6 y`-we|O=b {bv:ꄲʶDY*mdF46G `8>)[â%g6wm難\>>g>_@פ~6jh Vk WToXX>s$e!^n ." ڈ_EBJַrt&~ \6\M=F? jpwKHC&AZ+Bf0!CesS0fULYJi<=OBC iK8%30\#޴ z#!ɡB)4,y1 9gNGh=t\Wʢ}{g[uUH tenUDar404sdd9UF>97J`'̑&9SG'S@9Ѿ = NJCL4Ѕ򤳁Y%6HtXʈl;gSE}Ɍ;umqS,b\8>*jhNs]X,,U};Ő#9 3zjmU;`@LisV *FNao×?Zhq5YJif\=?n`-?(rpG7C*@HŘ:yTN73ʙZfceiq?ש\̼EtR\8(1ZC[{SYٮ |5!CiRM eUoSmߟkc JɏglW]XNW$ _)딁k}X.b(ߴz,N:E҆d5(i /7t`(ss kɞTL^;uXG@p8kGZM8",8&^Չo: C&UQH >uLr~'%#drN<x)=#x'z]Q7Rʕ1~@9JyD~7fLyՔII=Ԍsj̸I$vEa>YCHMS/uQr+3@4 %b&cp֞xVɍ΁"k4/X pFJŢV)1}b`e˥#m# @A_{ -"em2N")ɹz&.N9=|5^,@QJA*jδ3lU3T?OcDdVN&@QOBX"RJ2z/ K3so%^֏xy o|\|4Vs~ %5)rcen]s%69k0*S=҄fr"|Ύ9~rGu,Is(ɺL(3)}披[n] Qm-8RlZ$tej ժ`ݕ< C wI~Cm#)% ܈T Uojw*y4Uֆͮ[CG ]/dZ!YӔ*#pNF+/;,%f V{3g&EsV$f&,xo T^}{yѯana蟜59!̯[v.eRLH)=+u©յc2%$7Y՘>s !3ȇaD$J)e%ɻESƛD't4ĔQj5*25魾z 3nwX2)%a."G`q y;G0aH1|ʼ:G1^I@U s`9&SF3zW^\ ֌@Ҍ׭(0vy*1H6'FJZ/<e= msӕllݠY3XA\v:d^(ܐj+i*U<3 !-%:V$Ι$M2\)_ygJHtj"zVT<<qra#'Kp>n(O8j5Xm=nՔ@j!Zk^EvQ +cŕSG_7ƾmg+pHy:DCgLʘr:=F+򹵧Ԩ Ktrvl9|䪤l0[9e)4uq}޼hyeݞJp:պ(*ȺYm)nQ'uTN|nGGL"I[WdTyf((-iE]*C2{@O?D4  Iuf_}ekuߵ\}([Mf+9,u'm<$L /_i̇]Kiե_oyw|7UK1]U@#u뽅ΓJzn_̺unS ̫Km77iHAH5> bPDh,ѵ0@_/0zcax@○1Rxnr|z5 )WF. WQ:)'tƒF~ouJx)8{RNCq9xJim870q@1 ϮxHC9U] m?c?vݟ7P b y'5,>dM{.6gDYŦRDGǺR/gD:/\Ĝ%]p֐u+-{H^eY*is>bl($l|ħ~+ zJ)Ιē7*y<ټ0bb:6eN-op]Чr.+h,km MqҳZ)y !&PH7bӃְ"hCfP+৫ZJT+2F Yׯ "gc^.ˮ $ %$92-,d4TL|K߭2S"˔T랋@PC՗#QʘbmuL$]A' WGJqӧz-LӚ#`џ:LQܞ_=ߗqZwp|UX8b#)Q{t ihj,n9N`aPLa|ҁ 2EιY8DM 0ֆ=T{ʙ-^aRS ԥ2_PW >0 f1 |rŽ9G޳4=tG(2VkWjH |/t;Gl DR^*Sθ}CFuI[iqJ?bL 5YӕN8}|~ud;xwhӶ\-uU؝" zb];:PUf}EUi!ejR̜Bb"x?켕~f__.P;6fΑ@9"d!DWaWMXaW=V|.>E[)=JHZ!P/\ ֥)ql{z\ya *̆c,Kh]}S |~?|>=]w OiRn[>{EnH>lEaRK!`0~iSJOcA4BOɂ/$Im6~U#j<!BD9U5 d%)TU@6]#\޽(U;(Ξr0ƙ|ɍmDa/9̸W&)}}y>&b ?ə&9/r}߉詚j]r WaLy "1Zk=ůC2rFey7ā=._r. 5KR5`3HcfDK:}[/oe9P4z*gvB` '7x1gn `ws@);X+=>>"4&lOޑRH)hx@!ˀBw;{h0Zm:;-4X( ֤1~Gm"vqJzν 3Bdb .Qֿܔh%  "8d?f=tZ*fw@ZWoW~ e<4 (s. FnD†p{oT~y-*$$LCmǑ~Nkv1}Q  foL%H9SЄJrg"Ęj~q3M_7APByNr\Y ]h+J@|#SQ];)tld1׫33H;"PCRbNt ]inq=owZSz.{PCH^11j9wd)R$( ͡UA'W)?= (d_Χ@Nϳi b'MY_2uK9.PI:̲PGKƏ"S1O%8m1 lǖ_gD)>}tynGX{^ Ly'|ޟ cby3ˑyBǜCTGKjn zSvv=X>EL!DBVMxމ G1'd&.߂bk pd@'OoחI@*!!GrV%@|kK̪b sפ3SUB(-ul$j}S B!&PsSd7m^p܍䑣֠Q7p5-:t/k[ ΗTTD۲i [/a]8c|eEǺ8 dך81iJIi0FJ_i9%C#ːjE IҎt )dEG=yJUvg(eI {8bx7:(C:p{g<Vv]aX%(1MXy!i'/"t}1sDiڀ{xbN{ %(#NKJy<1 459e&_Bu$IMQc*EOqPlEbEc;QL 2)$`fu>ZﶍrN Ę?אᄪa(7Xi9I<斒l>h @A旘ۭ[nrETAr?k׷$@5'4\L/SP/˜#F!gJ h}&t=UϜTBo Nf mfD,|v 9=<زulV;WVbc;]gs*,1FKi\.}[ߘQMPJ1*SEEhD @7}]/cwn5og1{ "4Q R[3)z;޺-'>auؒl+(r{YC3!ZOK?3!qSӯ10q=88 i2$9Zg (0Lnkuꞥ⧕@ҵO!4rɫ"l;1<>7{x?xBj6}6nK4ٹ^i³M^VvxwL)+bY;8APӍ*rh˲ fWO(bqF1`g fSQ-е\5gKB4zjD`e8DhȂ?K̭|̞(&eȥ`Y06a.g=Vy_ˌ:5SrX p;)(1B+ob!+ՍGZ^"a琳7Ʀ N@PfowP#p ЦsڅiyrPVч<@v3RT6w@{,}LB_'  @Ql@YvB]_R.^&t"ZEsOMʪo3c)`i:t1yuW:r#o#rN=B1WFZ=cVSfM>z톛Uc2J/3D9@.;ZQpP3{׿MI{W?:;gk1y{4Jr#cE؈s>-f+detBٌ%(R>Y]rjJM 7 IXbV%=> @nn[ k}ybWɻ%!Wį Dĕ)>\ M'(/&c"2N/,cyHV Sg蜧i(0wNj`k:iKum 5?~2%PGR I^(|I/ u2A>zWD}a 080aJu:vé;Bxw:Յ&Ag2x'2D1B:bŪa)OUr#E4ν)<(" 3vrmMZsH=#3Z!+*@lw[ n()]S@L1v{IH)XT.]ڣZt*lC|ɞ:ͳRU)ƌ#JP2k!B0#zVFBu°!=KP[ĭ~Qqr/)$DP"B~ZʬBjVkt?xLmBު@]~N$X"43J ݌[RK8R<=5TnFx9@V~dW4bT xbXVOW ou 䀭yC]En+F75;"m,wC&"x `У g.v;V2BVXf(2 R{H` ڻhS'ZD0Mviޜ%!"(KRdU 07Yx89eJ$k3Uϴp? Iԗݞ81iP4s?g9epO)hm} P7V(.4;*21xs3q8}BOJf? ql9! Vԙ] esv<h<>缴}_yDl۸k_+J{/ݲ0$B%(03NF8_m7s%XEAѫ+)sJ33"z?lm,x'3 ^'e-R Pe+2(a!?K0jL fSxG"J)A(ЛllB+ߤ$ pH0e%q6RΘ@1g ۔Mm>Gu_]B|,BX &Xhy՛." #5]gԀ$K[L!H+Kޯ;1w@Is6kZ&wfId0]bʹJj|5gUS…+&za&ukGӇY>b7JG65 2^#X*.vG$}+0&/ äZ Fؓ (c$cs<-%`rG86Sr *L9%>?9a{tݽ? Q:SQ^GNl or @ۣ: C-<X/m^ݿ2.">=܇! q)G=᧳?eŘoOlTr(4faDz5'SBp<vFD)0bFx35al;}1S@aDMÆYY0mapC`zʗ .ߌ2 YR?zn9óǎ2}$ սHNek~FD7ɫ~r3nzmY=Fs(PU<5ί~S0* }bzhi-('WuW~}DVW}K`6 жq{`a/dKQ1A P"0HmVG @vNJ+ʕPT ,<0gL 0g42|O!h`@U\ :'ZW)v@!7劁EjUKd۶BSQ}aw}_UUV@Y+8}Ӻ˪Bia,lh~R!+޹(k"N6/nQ( &Q琛FTϫEmQpȨ^ IeM Ķ/OIiBMΫpxMf5Q*NL8ډ_jvdj ,зb3-ھשb'J혶Yԉ" pbHSO@ 2XgM^o )* AIS ő%SsC,J32kc܉C^KhŨ|,B}a@u lV(6[&ާ( Eν ܌i2(Dzr&l^بJs5̂d X3E޳s7NUumQVR n&ه y՗YߤF7UEwk8eLCVl !::# {X T1dp̶w+`uI7-)HԨM/˘b|s"Fg ss>%b=\^~|L9J]1#7+?Z?W*mR(Bc%)6.F}:o{nwGtqQrm/G? #q5D^31 `b!4+$"rM_ߋ&)n5:O( 'CH>pԞw3B)r8@|ˀ \ָw?(¯O}k(-ivK|C:7]7N7{\ #ZaIҧˌ['YҠf LƤOr{Yh*I{hE5BqxMDI/f6t}~Rס^IQk Hh K \zBq_/V(kthι󸻯,??~sGɓS0gc(xRE6 aH]]zxp zsvQɕ)vm3G:_Q 5H|X+ R>{;WX ݓ|UgGcX p:Զ(|C+rg(R@6ub,UYXlU`?hvi]{ӏxO .:o4(H13\Mut)&!|ֶV}_K^7WEV⟘`3%,uUZٌi[5s/] ߀KP׵ *;podl%zA݊P&A ߴ x+ =O#O JԪjs&Ѽ8e W#˹䟠\FNI5$I/7.I`N 8Q./ 7]8CQ |+ν(_p ^tWrjG~x8'z~eh*$T{td{W3@1)a.ёWS F<!V8/xw^iə$S1Un: ULpaa=8XQ'PtcZW?qv{ caq78 SM?>u8EY'?5JvL@Mr k#~-z$&p{E[uW/R:Wk޼.BE5;I *7^rC{_|]2?wj4>fVBAk.Jt-/k^8|lr`TIF{ )ne$V)pF 2. X]-r0瞹 @@)\ 3_.ֺ_X,VJNZ̨hEY[8?< ??_X.u=x㕴}U?rH|mn^jJ`ȯ+[0CR GWhoރ{`(063nPU7'ZݳNSc'@$I-^n]!V[-qVt>sz-ۂ;عo&_VzBZEMrA>5/~Zo6/?]rB^('ތ(tG\HA8LJ͐ȊO2M`Ybj@?L{ߚJϋ+omF8h%_'q&H4\hY딒&iZ~#ktRyCdiŽ{,@j`f"A# IǑ$ޛBgZ'R 8aڋ1a`֒QsT(-pY8)eM=#fQʒpL FIyN>6DyvJwa/ cΘ4O2g6JV&z)R t߫\ oHpZ1:1k/:ck|zz>g%9PJJ92&Ŏ@}ϛh}6trKlW hSրAX0g29oi2&WYֽ'5 2o\++O~ʪƸmE;ka9bR6+r<|Q8o]Եi4jezxZIdx)軗u{c( c6a~or+U)b@VCdrVt>?}wɽQAksu}'lq//B(}Q\nw±:N:V˪fS)-:|PB(|Rfo>XK~m?|',]h>K/קՆRdkuXC&ƢnQP!(S{(hi:|, +sRhY\IH>˯MD}m3X-g3l>\&<D8Rq:%Vl]OFIe a.aM3vmZ|=u释<]ys>> jc-t8͜qpϜi^NTz iΙzB/ωEL8D)&hF"":QkV3A*ܚ WR^ ;E[F\-3D9cs{nXHI' C"`j.>?L᧟75uy}o@۵Z#94d$7/ g(P\XT9?r&B6TEOw5gw>,w?67BɁr7m.EXsL4圬ҁZ~|sn 哸G}0}^J5ĊYeߕ [N斃fOGCʑ]|"!Jemd^1;6V)EJ K$$z>܃{^  l񧝵Sj]1qF7?J˜,;P `CE*s]D>hZ fzm}zavN;] @>}s~$UɌ"5u/4q{$CʛxD|vF~I 3TU])Pgp\&)?xNdCm[\U XZ.6I꽲&ԥYJil"iַ;o~wk=}pۗp>;-S(%(ab&vv穨κ(V NPBt, qsH4gnn.iH+_f[ﯨ(>lY3p*9'AT333SiNfQ+4" r$5;ޗ9@Rj@%WG絛&>뻶lud:ݻ3SgO[I,?gOH)*jk{I*IUYoN$1`c0$x#^VC/ 8fg%t W׷Oh֐mY7@a)5 Zg1Ĕ.()ݐiyn1/ZtQ@U= Y,_ta)1 ABTl91YVq`RwJ)o_a412$wȿ*]{g)^ګ&q#+W7>&n6zjŲm^hG2%mDmb))pR>bݥU۞Θw)C2R8BZMrda.þ.%G2g;8>H tYi ˎ̖n`zzHRQ\X!wpٕ;7^?P>s}漿_L/ңCHQs@>V~gM1!v]y<*?opSuh+ JDXk[zCSiP2U|s:ǭFW\ffO>ZY,SvO|"H[edJroB%A*Q_%F^ŨVA~3Qff~?dUmtorBg3eL3QDUU~p!H[˽(l>;>|% Urb蔼Z"k 7CR|[ sNֹfm 6IUm7mU^|,ySyp6(ݤcbtht , &T,PZeC()C@)ࢳDՍ.)jSnlˬ:*յF=B$(J? Ϫ;}7_}_zi|F偮7~zI/!ɝ@PnB(*.d總5ҹ<_\8PI)1cS ,A@}JVK\]^ۗ1k5 66EYd.UQ@߽@e@2[ZJb ,pzŝw@].ף‰0o{/c%Ϫ~@thFQtny):e]<9YTć$Hgaydx-ݴ6k#pNF>[nPXLinmy⤫PQ1#<둵'9Uq}\XVCN?.a-tcCvf5"U7BRdzYFx%LDr/:3N:MCF1 '00?%q1eF4*G@L MbfQ|gÑl%։'8wUsxq@c4)&u;3'fz%ӁӨF< c噄!vYhguzjEF/ct<' 'lH>tcߔ~X:p!(g ˥Yٖ1M5B VYpZf*q9g$iKsk_Lv/rCDM #z6s͵E1S уv>%A=rKֽH$.K˿?rdiUEv}/}[k"&]!N@އUYM3x_ ,i,nqu}::OXKc\/IIT&1''2HX@h_6n^P|2y.U |?s ˫<–>S\b}+jU>+鬍>\܉LPclY$yṯ}H{gØDFzvIlz?`3ȥ"xDucp)c,'eS};Q7"?*vcR\"!ʙ.tU=Bdfĺ]US Y.\NHʎrURKQ6ZL˳J!B^poCWu1Wz_xSm| 515^~Uw]1>]lqL#,wH.2i%>sy.G}>Y.NӡY) /B˽;DcRH)ǭImJQsF)xݥnSP} fOc? 1Ľ|pzBs I#e1cZȗe꩹Z[@x5枫¸@$PRvz}zs]{h 5uX$.{L% JQa vd=R4FY;?y\NbkA#bR g87NF϶םQos; %K |(!%1Jh!,ml$)qj,>9^ŗDT^[g:zduc[Jk5)+^Uvmqww{Y$Wנ~J0(K*;f+͆m1DJR +*Yjy rU@ߚeQz뿰 ߌ*fs(T\+}@ZJnT4;tEy{Q:[]Wu3EmWξB(}!`..ĐRi-/}=jV4s,K f섒v R!78>ΙXxg6 R´Mu7S~ !ŬA.n۴ݮ~V۵Y^f~~K)t3jk(glXX ~BWZWpGrrLHqK;%$`]ae}3 e@J/0 ?t i8!¦e4}^^^Ұ՛r־`ЮF*&0#gC]Y ~NjRB\w.zNl6jNqCTU{Ry9!V 'H>=bBnH]R@i~ҩ4' !2չ? 4|svML-`S9q:ϵFp>߼姏(}g%>~@Srɩ}Diqϕ@ u(H #܅ >VU f54 }S3?cGUU!븜lb*>7,+?yxԼP;qa,f␷Q˔%ӗGס0RUJ}#<`u]Sfu%9՝42(L,0<\ N6*kA.Jm{Qbz*)yRH e%f6ILla\fQQ)}"ELP#YJ敐T~ _bFȍ,a-\ĄIkѶ.`>e7FA*WWBUJpJ !!g!XdUvjj/O9tQJt> du?5äQXg .(/Bb!dM^mdUWeOۼmce@u%gsmizS&9rW 3nu[_ >.&ܬ#hʌQ5kiO'=$Hg^?J?dVʴ=wßx ]'Y>}gKiN?B91^9?֘$j4b<9߳e08)9K;Oi$+-J8PÄ6E &%'| ĉ[QdWV %mݤ~eXi@eDnbiXr XM]d7ky}Ehj\{f]#_,(KKo?bNp8¦_׌;M# #km\x }&Vp:J\jd>;ar/L7"a4G7 K, Ȫ5ll侗 Ɉ]<験O])*5};[L:۾D!Y,HQVW[kZm7E j7DJlYcBE]"*UAWU"Ƒ bBu@ae׋h]@>k!Yl-LNj%}): CT,besNP5uH|~H}|uGX;@˅Vև(wWJ[եw;Fش1\$Bf38# H/rr^̑dN}_z,ew1 c>%֥C~KbV͹p[~՘T|/.|YvY}}r'P}`9gl1!TJ?Xg}t > ~|Yi[4'7ʼ2d>T(j%*澝C秳waoNb{1ՅZ٘.j%IF q@!e?0LX/%Lz+*Ker0HYɔ&>W93uFK)en™P, ,>*6gY9%Kb Q>`V\8xZ =rUs\ $SG'! :8 R"?fI"fٞvh2ŔEF63gӻ|HOV8Y!Ax${uTwqsv!8)eI0p.#1M-?#ٲ K|:7t vu $Bڨ25PB!Z(2 Kԙ{VmApu{ʪs%ݵR֘K9͏Ŭ<3_$dĽ3 F?M\Ukw=φ2Ko];f!,ӬrբMt[ 󢨖?{ @x#u9l.bג=( fswkwT1:f_tQk}9ڝi.RI RƬIDATx!Zy"U!βC$(ʜ`ֶ6ԧOd -m{fh)386VmH>B+=yzY*@0A3ihD dܺΫ) wjٶѫmm [DbtzpƸ2Qev XI'M)Pa<ɘj!Oalj~g'JY!$䤫Dh]F%sKbU#<ȜvJ(饐A `[3ų:mou~T^,)%25vcIml>]@FBReau;砼1"fbgTQ[Tx4VQXB [f 6+C,t6S\gJ*o˱!ֻ85[f {hǸsRl&c#ţ&;&%p~sY)?I%ev?.oNC]JY|xdsMLcjZqcSVISB>uG96dgn'Eq:E%YU1Sr߅C>+ ~ &_ef9`%BWʿR=<Qb}}6Er9h0I2<v!Y BgQ$x, e6{| x0P"s[cSX }S~|RQlUG*EAHmXbQO%B(c}76 0r3v mY_"!]J(o_~Yhc̀oju&A9CRUv@/'W-k`)q}38O]oLMH%`(<`to41 YUAD D %3끃.mwr./e^y;@z!Wiͬ< QtR9 oXHY=H0"!wM$; 7x%J@"jfjxsQ/OΥ YTC2v늡W]XԛZ]=OFyb\i@˗u Y"w *^J^)E$(! !Ȣ.ro9?u{*Ϥ~PG%'V[L̖b)䦔>uBp)l>Cd>-г:瀿QO~1ǵp[?ld=]gݬt$x]7WCsh !:}]MBWH!C ?/):9H-A~ۗl 1"}>&?}8<>ZSWYx,L;طE7YȱS;`{i)W5u޽>lBf,f䲚yH,Bֽ\L~+veSF^cI+[YZR4;G! ݌ݫWB.$P>Y\t/( %Q4Uf1(fSWYe9]/,<*gi- ]`ܛah `MsMF)gw6ZS))df1Nj"I"NHe7F.VHħ7{lTJ|8szTTyCJ;L #(y7jiS 'u%WO4+Ȯ_̓$ 0?J]ofmȑ`׌IP)~PbK9<id=I1:D+A⮿hW-O إ<*mkܱ׏+2z@)'(CtCW|YkM{K yIݭ ;hbnۥC|1Q}cR+B:׎BlҠ:׹Mpp۾g@=?mlNtMQ(LL֤d9 vrUc:[U{_B>ӧ;䷔8%Z#߽Kic! &#l6)KHy 4t%Rh!I– Rzߨ|ݗ>`uԔbq%`=q80(M0p~o:lRpB\9-pĜvO9a:8T7^0/kp}Os[>Ea¨Ƨ34/vQiMSpŒOS>E .05&_ݙ07/OQy4Z˯:i}o)9^[s}sxPŧ?m$*(}.Fs9=kz7':9fs`|Raan\B=-Vr*C;Cke܅v{ T;A"cC|KVTM?saJBJ)壙I۔\LR\:YB3Q4]$Fsϒhg[QdyT^U뜖u[0CVB{I T 6RHRe"Mnr>H*nfՅTUnw`EQ|njcX]/n Q19ۘHCK (J]>G'a5|n-U 4*#+APhE%^Ie<%%1bi4`tu-WxX*_ƀτc{J?,}{v|Ke&oNlnFxrv;YhCats,#շeۚqvlvI Ð{0L*H*Psbپ)L}e΍$I$1EQ1<,̒!fLSCOh`CN 5ڧpTBIEUIds~\|ǟnVDiRLUTj SՙP.h殮o,q~?ˇv3{})=;*׀aKiAɛ?}]Eo ݍ[#C]fe{=7~,X#4 zQid,dnvwzC >f}Wv~{ne/ AL1LH(T/3AIUJϿ$7Mrxި]gxcGEay*hB$x;C=֪R = OԚN:h=#G]j||ooF}'"ИJC;~qd ]yNRb69=kTtm40w(Ya3bRi\zÒaEL r1 T^]V).T^3gڻO, o g+,NBz'I22]{1`̲MR޼>_sCzێyy&iyxnDx51Lt4UeY&7l;Y;xmm0>[6 1xR,c _W`A />νf ݮHð\DybiA9i h+GPm,'N9sviYx:.*dQ&oH|U.J)!!]N,Ƨ.MdUo*Qa~nMV\-kXC^uڼsQX{Yz X4;,uUͿ5w_,ݮ?U`61HD b0vP.lso4->#罣`eCEkO MQ.)u>Lh6fT }k@Uawod"69}]1'}a#\a=m0ۄ173m29I2N$rbtΜi4ۻ#8wuqHu $uo^} ~`o΁Vjn!{:d 1}x`h`̾f3rQ@n?27^Cu~s_s Ә4ǚМOfI^(F}8ANӖO_/O'xy,HgjTA@8j}kT_ͽ0F+a-4+ƹ0uE '5BWI̧< {>D";xP)!eY-*kC>A #EmVj!(5o_Ǘ!}"RTB].%QUnQN RBˣ\XyvkUiI(Ex X{mt/d bXFux!n6,d,B&kQkU?% RHCzJiHx'RφY7#v P[.K,.K8t"u@Yr&DAHTܨ bX@ÿ8*!U!Ͳ:MM'DE|6iCz@0vϫB{T\+, gLJ%ꁢe2Q6{Q+`li^ESwm{I I||Z@uv/:YG (Dcz~&3ewRd+,xJp?78G;~YaH}^dBɜ[7J-Y`sY.3㾷uM"4x_  hʌt!> ?44ml ӞDpY 1._|znnSUk`eެ)>xj#ϫ.)dnLFnH *;S𧾿 nm{{Lژ+kl>Vh-PSɝ.S;G%i¹XNz9|{NI8+t{t~&{Zrچ<T{ ׌kϋ.sb wG-F( MOUD{;_5,kaUHR6^,3u}ؼſfZK{r.EbrV3=uͿ5C/z=w}F36m"MsɷZϟ41ZQI $^զP* gTfԥ9XKSnݰ,MKL_OńD>npv̈́p@3 bwrk-F58Ⱥ%ONZ1Y{Gv1 `f~=Jxw Uxz!Lv6OJ}6Ywsz?vnKڙO?˃BQE>u>9?>c@6W3mޡ ոm=rKqa;"}]'ީ7+ޔ' _sֳ]L4 RQZ$v'SJ'RU,<GyF'/fNC;`p},nGxmAA@$Yfxg6Cw((}|t5svۙ3ɝZBTiIfQ46ȞsvOsu+4v8w!mjٷ2R"Iu 堀 F<7yizm1hc.2Nil>w Z)lyI[~W+ٿyZW[`4CK⒵CQ0<а"|(!J4޽+ }J$(e^Ȗ]ZE,F#SعcHcVS>=:4>&m¥RG{O~/Πn99/1>Pjqz8;\BUҪrʈޥ/iS*WYg=swoxY҅?C#H/3 3A\^\>]&lsyJz=)h`pk`w9=7:OJق k]0Djx雪 QD=6KtO=L}Wu5N9We`7ħz xԧvYܑI xq@?mH{׿y%n>NBBeɋ7FSUiyxyJl9)'qˠ0JyPgϧ%%2kI}rvoD]W\ZA)FojbU- 2n?UӀrJP(BzghC.sQ»d軬NA}e.pfXҵ@Y8Ϲ3*@ !|rNvYBl@L)MVJJ(1~q}NjM t'}nZ\к@SeB*WEF/6 Q7FS0^?`4 ƨŠxAhsQ!p_-Ga1(p}Ep 6:'XQ/d|0!}qInjLDhW7>ߪ4e,|.ʟgbEdӇwˏwEۙvw 7"F@"( -m:CU(4BIUI+s};G)=σ?f; ,l 7jGo|Fwƌ|ddzjK'UQ;nh T!y9+T.P2GNowXUYILjvG%B$GMj|?\wpεk HNarm?^/q/5 2Ge:mR䔀LڋŁnz sxFg1\s>{R9G(bO3JORJr }gH17IKdox2d+|Xg=,sgުk!NBD2Ih5.D Uj/݀}RUM,Sk``{o~k%g, Jhre.1װa)3T/3HXn$4,b 6.z*O 2"ap9[=о*zOÖ=ľzҕ~JWZ>VW 6=uu^*(*qvV Y%<]"Bj͹~uGi{OVL*Oj4? 2<S!m=Y]U#wo]o{ ázHͧ3 mMsE^o*jW'P[cC&Sl-WW  avay1aX7y?BLHRcʳhv6 (. >l6XLy/2|+hڕg&]Wx]7zY.CZF(tܩ08*Q5rʦ}L!bG3YY̙m(afyI B ΅v+CgݺTj5ڴ%?)D6SwVgٶf{$H)"4h-__ t]Rxz`QaQ,VJ_+C@"B)cRhM504!20+8nrN+33)0 X^xa+ zoX?Q.}oU/n;PAJ&G+OE7_ nqqP'ÛR%cͩLd1g6z ÏlߜSIS78kq6Zm. 0q~J׺mlN"`'^O'(:>;Ĭ)އo=lbuQ^o_xͦ?%`*q: }۽yȞ6w۝^gn0k]^W;LOqPrq} xf"MYHt1y a~/!e8/ b|\>J4Nh@@DWgx1}ah WN4U|r%|5 (%)!GJJZ*MU={IRX@%n(w>jͲ,Et3p>= 'J!-J9E.}Ϫm+S\i$ ;1/Z)lbb))R4*cKXr2 fmPt1$RcRa`P A=(K0 ?UWmY)."ʵ]U}[λ1BEM`M ]t0t" S:SWXEJk]<3lKooޕE-ggYoi>Z%Ps:ŋ%$ńe2tgn'cOn{j:M+ԍquSA-_ZE߽Z{Fdae֫/8ժݶ_Uե=/ˊ mUUl^yc%^{RX(nZ{-4)I0I)aJiR8@'uv۵*OB~i] 02<ţ(rÀ<ǡ@zPZu@b 6VZ]) $RX4&ħ2+)eU8,u-m~=i,vS5_X aneR ã_\f{z90BK w+S R1Zev)c}:]UV~|(S-)p)] D~*0>DXƮVfqY:Qэ(DY&n w!)yiX#)4fբ&zuYYv S 03Mf"H!ôѴ?@ș!te4 XC1=xd=b} kS=MGϖH6a (Y~_뱼e˴34ҝUm~P-f8xY`aj?} ( !\Qi)zda;#"0lH ffphx(?ʒNP+H"vTny <RA 6DYfn\@L` !b*bQrX7unZZOS!)EIIS@v }ؼPK"tug^-UOnY]6aSVEl cH۝W~@Qd?~bkS5Y*.٢A:! ˫r7~UGշ& ~v>t4lN[<;5ڸ9J׵F+C!`.zQCN,l(L)cȵʺ_Fsޟ3a/J>!0^oǻ(R>|j)1hsYɺBǼ ocb|E}e'|JO;eJ%)F5[kaǒ`G8;}~籺VŜ/NY${PEwRo{R ׺Y~f2ʗ޾?<<Ⱦ{}0rRjq=z>ԠmE7!d|І&UQW@gDL1n|vm|18ttGVe4e?VjRlz=I,׻@,ܹ]~ucLU-Ynq]c}{؄97-@ ?fuR/ Y,3Ęw1OOl0O'䲝.iRkhw(SOg.njrM!F$)"~y~F+.0YH`Fڙ1DMTUq(;ŘoYV=Bo]f鞦WւbjQ6+BT:/LjB A |_?6Q4K oa0wy7=+ĞOsuf9m.BYk`t3ui"P:/bvC4>6')eNv XB6P5Vր J/_iL\'~F_Ĭ1_4_ư\@Lw@Z͢eO B~jf)5>^qeJzJQy  f5?ƥ?l]L>M?`G22}3Rܴ}QTRlpQPf)U^Q| ,#2,-1}}e.Q=8/e g 0GElʶ?9 O12CWvw}^= NQdmhjDFziO7W#4߾ }dW'hr&i|N@sg̩lEְ-~ͤ!ϓdU.!4vG?Už"O}5B fVvhҘL\MJ?_rI.(,@*wKX&GW.sM=UVB]̷F1!17ewN[kѴD(@ɊQ}[DNbpZxoW' +خsٸh rCNUރڧ{+;Bv莜 m6<~?nK]lLMUB}!kYD܈ AU>ucãz˝кdV`'iI=1A,:,]d:e #${ۓ#v:Gw^:KӆTF~{:򟶧i-$rBڋH).MPyŏoUo7X3ii([x&Y:ǜQDxE pnFJf/WsEryd _h-;ϛ.!߹ |7j~xKつ@(`ѰVuVK9~?URBߖ@QbϪRȌ[|J|f?$g e {?RJH A3US I܀)6'uGQJޕvEY0\=[d.!R?qx03=)V @e As ,}~-fvWl~]7?~m6RЫ0=0=Ѡ)Nk_e|[8osІfuT ov'.Ae.FRVCܱk8_/tAYP)4ZZJ[@IamQ/^|Y006 XT6ZkFᄎޢfo7*/Gݥf!v*XA~΍k!LO1SEtA^r"RѹP`vkcsєKIe)vBHkQjƚ0Ո]C0G$?"=k9iJ!leșaNxhO[M!}П +nSm; zyqVdO@! %l㶷8>#;͠@J5/}Nڌٌ"ֱ"{9UNO~E==CG8e:ؿgۭ7{8B 6߮  PTGs)RcQם) ̙Y) ;؂d"W;S>}&Was@;`Nszc(L WDS$4; BjC>mc_w1I 39ʔ+"ڄp37~u Qÿ}7|xE it*M3Ƿ)")fOeb?jQժ.1]#)E)I"$>Md/߭/VZ%BYA$_6\/ns!"0 15d{2uVad,w%Йco,7Օ"Y!Ҁ4#;7B7k,r_(n1/2kJ9) wdD* h8M6^DU2 Sc^CݵTz.Ն}ldEQȊH@@a<6u/a(6Ml[9R)V! 7{.L6@۾`׵ndK/몮3ٵ)~7b"*3V` AV%,Idq4!QHwZ%?5ع2tAJq^_=cYۉR& ¤HQ2fcWK%Q@6 e_03 uJ(}cQj;xcLHp ۜ^Bc^(w7ߘy9XαO/t{ԋ S!dU벷Iǿw6Mu!RDI}Tۡ1@~禲9MD}JfkϬ854XHD $u'Eav v,[X̹}޹c߹j~N"u'rD"* 'iQ=l!t  9dmGNVIP"ƫ=+< S^᣻T.}dOsQ->B蔪܆96E,9`0OzW+* )u؟dl]Ersuʪg2aOd I6q~aʼX90VmSRDdؓNhJ^.#IdnM V8sAhRjdq4jXvDJ~QmxdH(KnaƲ*=^/+V>KA9sz8NYdD!Hin~f?&N3m dfNELu}CMq^S7t Uue^TdQ(*DŞJiˢņ3F[?E'\Ҹ@]R [.6  (:eU:!kmz>) >D<1$019՛Q@!w Ԣ@b/ 8 G$(%T$*E^.RVW,_52E7R,R] {t6E/t6 q3Y>wmnH&'HR/o>i<PYY4el"\pJJ (m^\+j}w_}йe+#/S.Qw;[/~*!ID(휕>w/S:n }ƶosNth,">{L6<IMcYԓ~P5sԫZ۳y_omXR|PiS"7 LQ>* q_p8Z )j!?_0B2=rwoBj9}>ގ_Yle 4-sC}y3CufWw>xᄇ^wi$/̟r6ݦt+6RT33V}UMl afTmY=`mU%cRN~c}E0ju7v6rc 9|q+~ VZxXB?Y;~S^; ڑ6-1i9q(JSL!P r҃E#jHTBݎǶiN>R1-E*RJƈ@@_g-qROTH$nV1T3YBb\XJQש0݉%U 5Z Ĕ! ") 3[j@}Fm\BBPn}^?8>^xMCm *F S¨$TJ$*BЦDܯ&: 8J*j mqD֩{g3*1|u..CL@|9Xnc֍^"}D0|*d*J>㽕%ϘZgg9j/&DK $oBHRbQvfxso30 ߯윿P珎0TR_MgsWxJJ# \qtrt ^}zw.soK'<ӐFYbOtb@=2F[spCMe罙pr'TP"q| .FJƞɼwu-ӜzO?W@RTǘrBSZo)e^_թOG6KDev[hq+&׌䟅ttu a&n\eAMY( &|6w DO 0[Y5뉲e:|E_Y>̷Pk[F][Avhb5B ^Fu/Q+yw[o;t ! %;ė|bf8(_67K5P:g)ѪZE JsJw~}]U d@2W/*.Y.ln^Y,ׄ/mh-.D47w[ɪB zEso;69)˟VDlH їR~9\2q9g!F%ԝhcTcW$5n㐒g4&[3A҈Eށ@AHsOy6cN9zQ=/zJ9= 1jTo{79{?>ߡ]-b=z9ۯvwXt ^U9={'!lfQMhp̘>Hv˙M^e/5D6u`vi6uyͱ(<l:L0Α;\W?GKO+ټT&m^s(7}udOOkӼySH}Tt!AʤWGfNYb}?C1x@鸪c-1g1A:>F !I vI᳡*# 0|:<3"DJ`bCuwYibPjCePfcnE{h{=*b_jV)F4oe&)ϲR h$U YTƴ!ryx6DbB(R2j@=lj 6NIqqqHQ*NH"bdQ u]E͏;ʹ4@=_*kHE3EEDuyYͯ@,ilϰB ~6uQg5Ƽdt.g?ey{-K#wfsf侠L6[o2s^Ѿx\Yotfعl~s=?^lJB-^`wrDBO6 6YaI#g4udޓddQQ ftOf  Dv{Ƙ1Ip>w!vfNlsnlh>B/1?K P5QC%t|emXݕPPJ1D>9Ȟڱa+(%Ģ. {RM( +x@xKd.$d_S1HMy%|'IPFHfe)Lbdc#۩Gx `7WaaR 4ɢ. $.1 G'aiOν G7^Nec856-+HEDR!ZL4\1i-41憙W^ 4a ]yw4%"$H3ӳяJqMnd6c/|*< f рz9+tg~eBҌik)0EL],Ī@(*!$BKjA||oRK\,zn[* SLaJ_p몪j6i3:! Q+*nrbG8?}rRR?u/F lw7ݮju}SMHۅ0ODJJ)I;)@2)jGRG$ ,zY~k\YGL.C9"&ԡ.;L# @zTl$rtI,uu{(A*b(+^o]@@yu~(wYV7_y'~l_vax j':)=Ơ/ T4RUa˵%mOQ=Ni5; LPG&M w"5_ qR"h&$ű/BH#|߬+SaUqi*MHBWh"Z7]e~oOŻ!ԥ:K^;bYw2eG5ښ2 bvꈬbߔI#EyGŶ,+{4tcjkPՀƇIp|D~6 ;sv] l`9FT羦^K :lW%I'@ `æEs}'"^@2nqr_,MLfI1L 6 49_R!q<`غ>{hԒbyG09ef^׏ʸja<=T @+r1YϯpQZ%"QB_o,@'!RLpPJflжCTl^\œ92k U ff!$YK۩1+-yzfwGP Ƹ1"C JL'XA ! P:iS%'tmӰYVS^ؼ}Dc+#/.R7d s6PHjݕ5u\]鸨SϾ s`u(ѥi˓UA,-ps]{_*ۖ$SX{"Mٴ0LE, 'ZR($) jk~hƨ2U\,$c]طC <0Y D ?)?]<Ǣ!IQ ؊2JMLnC?LLݲW}?ѮT("U}bRm?Bj%nR=@ t-lAIؘ0XZڐP9?LTrY6~M5);UQd#8 q=Uc|UDZj OSj~:_\w9TApe}>uFϸ=)gzq]^`o~ߑt~?\7%rȣ4+SfE'y5#ṇU]ڎHc|=9r6e/Ms:`פ'P!;+y1+O+%dcYDZ] !b-%Wz9GmR"JJ!pn:(6iyܠQ(TsԙWJ)ﺮ;>PMY+rdzniJg3SH){q)%v`vO?/7V@1DmX,j[!gXMUٱomY]s1Lʐҷt=~ܮ1ih2JQ2Y֛QPK`\m+yu1»_UU[Y-/_~a#alƜM5/xclɥ7zhS6ix:S: @EDYe}}Jݮ%O?.VD~T4p ΤggwO>/+R6Acn7O^fM#K'9ԲOQ[ DURXBKk7Z! uy g%GHfwXdHWf4tqԪz4 JRIx| .nR:¾|xp%u<,87hݸݱߏED C m!&nB\Ӧpg )j@488ciKH3Vv@>pc[@E1lUl6w6v6/iGljVaݫ ݝӄ?~U9QyhQ o}=`˹r7 ~0Хoҙ_ʨ7ܜ !%Hx|! G%Pz^)|!fnNt6.GF@ۡo_9ceȫҊrm~GH*Uc_C\_sҰ:xRO+K;8e8/e(64-R%]TO7}ݡ>+2d-o5$?f?r'&Cm ma{@`S7U 7ΙbCxh7omK.m,nF)eU1J5.x4T1BQUB&pKޮļIJ) D9|hF< VT$Oݻd^?siHM#H+!RRa6lыBʚOfVRv#US=Ɛ*>do:cWRo6*=\꤫>0:ꖡ@2c864(˳"GbUkn3.V_>Hbrra,D0VJl:ӗPCW vOHq_05 N7MB7ObJd'D.7w0z%q} Cµ@k`t+Q1;2Q9.>kP(d& \ڬv>XS 4 t}WLH) (/_'r/`ޣeRtJ_}./|1S,eF1`L)#qBU=lwue/܍înSmW$D3L!wKKǫ@}a69PKL!}A1+!&RR: +r_\r{*9EKvpΕ<ח ;g+ˋ77WmsR侉vkӇ=btٚ1b9xW^t_Ww@#_Qr4Lv<9*Ͼ!eSq@AB:PC5pVk4D.~NohqZ=~.@|\&#𧖲rB=x_sEaܷ<miMN(LeafQ{> 2g9;)2!ANƨbdbj3 )D$±tܮ/?'ƹ "s`6U%Q%h@\b1g2<[3!r+Kc[ʦn= ^fmWPxldBro Ɠ*?k`Tyk>G# \ r` AD`'ā1)7U$'J|M|YBm2ܴVO-ϻ" a~!6ZyTΑypdaAt'F}!2[?>%1ݶo[gˣP!e;Q7]@Jjx M?xv_ԅ׳^̠~M,>=Pksű큛N0?ZX3- ͇T7Fb+){DEpwkbix s#PUt$ / gҖDl!DRAF ]-?_ g"4 CLZio1[2>Hmf9e@*%BUH%yr֣,Y\S S4/*(ʠp[jt ,Cܣ6x;6F1&!1*{,CwPIhk.N$ On^nK@3VPWTyjPِS?乨&,[â(H22BYmr9 эR:(`')$6-'+^íZ춲ħ,D餀 Y7OJ]W-4(2v1֊ƜD#8kJ{Rf_Q՗M?Җ Dg=JFRL)-P饚ñ[58WWelʅh۝Gɞ-qj nrRɥ8ư9?l^gS>_RJr^^[b6X".c6+9>E#]ύ3e2[Vzó!S&V"D-T'#QENvZz˜PLkڽ#B:[`F]I aq4`][/[GQRBc%lo.滨C;}.\U0g +~b[S7:2Ro.Ƈ_?@#ݛ*:`|8L-4I"ROvO9P{pz[)&%m*똯pwԱ}4Ԯ/iOz&UWíEJӋ3OZӿ[B.3idvsxƍzS>^tfcRJt$IDђ(2.F99o2svugJK:Bx1)%sB'8!AmZh \9 1f+C^^ڪ{U/0̊YBih +l+BtJY32۵bfD*uw'-fz6} HI.9k#]_ƴK#Ƹ)u9P8EQrZE?dR΁ O_T+Uf>DYb, ,wGX,*RL(ſٝd R7CT)+0)%HYƚ|,vK>Lu\4dcrJRi\,S:ksRg1<9d)LIR.ט%VV9h!㡾@drq=cJ/G.ݮ[Uk@ rpU ҳTu?Rf[NNAÜ֖ /_`m<"9yu]-_)m?-.|b9) 9`=Чe>B1 FJSA ?Tx<梮>J<} ª#桃W2&ᐮc:lj5jz}ouKvҗ?wGlo^ ay__=n9hqpg1;\\Ǟ:$񹿹qWNN9AtQ}mf4m.o)-%=ƃڶVH]]'Ettoh/mZK $ 1U0 L+5n343Ns}i?$[aLgcJ18M tTr8g%:h1z' 31JZ$)0jdn\7eƲ hcrV@Ui򅐵I4Ekb0 2˪I ͐6]gS-~1/$PUEX9}(0GAΧݏϐ=1^|u땑Z)W;7@_J7"lyatL S]~6MIGd!>/jA!dP9uU}jLJ[_h9WO䬔j[[9a1<6et8^IFzь>_f(:B3nTR +}/q@KQ9]'cMS"ReqGn0)/9`}s/J^ gV:BUJ/TRT1=4-||Rg]J1))RDc{_ LWjR)lɿbZ3{4)=.?WeXT>L {\+Y!"ȩ[V j3q84tsO>K>E ك-S]osuƥg>y _\pho`չݬױn1\+}ÜDiSE;hrW?W^a~PWy^#c-I_csr\˃>?>ɴ0:1:څz'bfB61:b}dbK\<~4 )g\}+!_ !Vme2t T,ӕVJ| k16FeriSghBbk4<()S~); h6Kma[7H5)C:oCrRR|r_b@p2 &$vd"j}PN$7bѧ\JH! Sd&.#=Xo[>}]9}-X.=g:`+?RG ww 꺆,$p'4 KQT;K!Dׁы\~#6::V-;<3&9%$y3: H]no-hyRmQk}2F=MuCeM)UvnӈPŅ-3٪Z.H foY4unyKB%Iq}UzSЀSe7E}_?Xrӏ%Ak_ZKACﲇgR{ܔFːRzZRPgK4QjH"}=%Q?M}|.P{wxLJ돍|?*:_T<~O1.R"'ݯ=n*1 !0vMNKsBjAlK }EO+?C4@L`}o7_JbS鿮[u5 M]],s}6QJռ_ּ@U"^qqٌ>~ml hrjy}-!'<`iOg2J,teFې 2?˹L<=?o#'〾~ٙGre}eY?x`.>:,B*F/*s&W_g0RwEnJd)1 AhI _쬇1iXeNжE̬5u&R - 9IQPR TJ>$ JKls.L+Xrn*sKZ/aqTi<=UƊ77fL%R>&*9Pﯯ@@.'Yx*mے2V) Þ*$4Q:Jk=)Lw]܏F\Hj=/'7p z/yJf ˒&zSTnooO囅$ĀJk!9&ܢ^ݪm6] 1MS{Wh!@!t:DmY<& 򳠗~mEOa O6 ]blh)a瞣 !_3 Q?@-RSWrx7g ڬzc|;T SBxK@i@q9[!Q>sʥ:L1{<@p ] xL\TU@ϏF2]GϦ́%7M4?#~q\"ݻfb8ά9f+ GǴDY8Ah>Umvq\q,zuiUP"7)[@wR/.v).'W'+/xF.䩐: ,e2Z"f7I$EP|\msRL={&{>TjӹNЂx/,|<# G [7%3])+?Y+]H]!'Z_WP]ZtJ/aeB:_ǟg { L,{)O%Q1B>|} Yo"%W*)NRʔ*\ md=XM&3_>mX.'˕*kF~ ln ~97֎#B#R B>.}]͌>&`ޏ>g46so͗ 2 4ʼv~K|e ԯ"9O1`t@!LR ]i˙ 'jۉ`"!0H`xE BfOt",ur6 F˳8={.x{Z'|AꐂNKi~3*s }v_vG@)R8VIOT3&T<=J{HS)3JBBEov3/?-fۭ'-Dmiw8/nGZTSc>=LGP$AXz7V䪒uv褌.WAO}̥{47kh>K5K?$!ra-j߶9BV1 H1N$g T~Pd.&G6˯{2+HB$kRJ[IYX jDu@]1>܀PYA*$;iu%A3͌3wo%pvkm,W; ^^Fi{oB l>}l5*c\D/}EUQ+یD&uNRTSuuzkي('"ۅdLd|!mTT~vJa-m2;htʚNЧe{ G{aL9|}$uaeߒ!17JBuO9è {E);*`dj zB? .m&̴'",I|Zw@PGۑ}FT''e6uKeopQ?J~-&&gT.Qi&p>E _:]*?lvVr>PBg~s79 ƈhJk}6alsn/SHSI ۹m} NL )d|})l4_v;MSL jpq.)IY`Q)Vu!(5SZ=!`#aWYm0z*7)] AT@LzwowhSQ'K.V-R '/ Y FhR)=]UKl*l |s]>&8KiMITWTrEMOOKY*1ŽT.DAbwF`T@KS*"*ft}+l9wY]a*1X18mV5Ekӹpno ) tƏqh|@mƝw~FFiVď(|L]~.k5]RPn~@`4HĖgD=v,Gvޱxp]׋֭?a!Fnv__\؛ej$LYYOT9{ki7fd"pZE1X/͙(zlgn"JH}UN=Xa}JL6k?\M|wY{ֳM| T/+,v!uah Qb̛JݎhOޮwg iSUwx[|bDu%уYUz7̧< QSKfeеS].{}Jߡr{d]ģᨗwIK\,?ltoEIYO!Z;z?RtpJݬ:͕߸` 3;YƷR 0]T,mX5|[ ylhu+ !zI rns{Ƴ|eU'-""%=-?93tsM Eto{@gL dKs(hr"9g@) hI鱎q aᗆtۚ+TśKwo7:+Bn1rNABzhƢF^#b7 E`K}@7)Ȕ&Zx1zGqwRL/"[ϻ?ou-)wj}*u )l[~VDFN 7t>LJQ)s1wRuIR/5=IKp0|V]{mepiDT^"s#F42$K O~I/'HI.)S/fAz}0PN>bug8ԥ '5\–>V g.֩*|=G$!8mR 1j~nH)RQM\ր*e@t2'ħ my(eδBF K|{(;!!d=ݿqkR=ĊSBB RE8IysVFkuþst@[!c|-acW~?G"Gmn_B ?_ƃSNnMrλd&޹` i[_/BNB?Z<(*7¤DY?V;5!?Br?bin'J+Cu D%{hBzZj=%cei-Vu+7q>h?;T~}ϴ sk:Hiu.BK)YӟMvb9c! eP(2) P-=,FIO1%uL?Ot`>Q16C—*J!T8.R?/kV|&.̾TiܮkIa }MMn )[M [IiōOB|Oߴ3 YJs=ol(%:!@.H"ٺ̿A_h\n?+ g4H}ً!iV $s(i|8)饳JBRuIn߱JqvH%'RcwrD@ ̜+lt{#M.q=Lq|3rܜwӠovh"imx+_Lrpߟ j hG*Zz7\.Z(.{Qìn9B)dwW;Pow/ 2iN>nWgBh'Bekz !G6J" pוfe6#A7[Uc[sh8&dACO%r A zfv-@:Ȯ3񃱢у]\-NZ;w]H)b5yo<*E!:4x֢6xZz{i _*TD6a .8t\()fnYe)FG?9)& u=j8.(e҄!FSYSlNWA{`m,:DN=944pV \ZbRM}M]_bJV1Jw!ՍvѷVpv $v+FA !Zk YռV@Vx>sg SF.Om~n7X3ukctXsdo:\,qyQVROFx%DKcH1,aI YLQ1Dc"Idٶ3BJqjz ކF3JNI`(}3 A-|SJcKZCۉ4ZdI$O(5j,V4Ջ}]'\K1!X(ssI rPtZsBKXۦG,w 0.y.:r*'^Xs1+'⃻Pa%*=e*u$#GξI0 '6)Y#Ѕ(_?\nw#p^wu;n|\J]GTK+mHQf1JVf pVZ`qcM*CfW2$КF?l[,0]cw}fΚOPmIo7?ā#b? ۙEjɞ7^fܙntV=2WB.gvP!,)_;%/.f>{Oi[ w/B5~1MjJT:^^gRY)Dvu6cJ1"$BwO.]5/9gIb mJRcpj 6 d)Ujp'ZJaw;%EMU]G8+Mk~.ͷ?. cHD*JjZE8OL%$i: x׏<r;/cXqRR)g`~e#/۷ -eAV)JRkb:.D9'ljuJ]J1o𫷫nU3oBFJ8?S?J_h F/ajHIߟG0C0nCԔQPmtc 5yM'Q}#%J{ZKw'"g-}DwnT7%6y@ռn3+Mbp )5P0O"Ơ$H9@U& 8ɹ:ZH 4A !7 Q^/fvԷ fjp.z`&LB~@hZm-䯟w/_~xڔ7jmMc˥SJ1N3R糡%D#D 9(-G瀔d/$l%ȡP8EEPEVśܥ$|y2&Ȕ}>7oe/ J}4{br\ycd1d(.i>vۣ, Jt;9SbJ5Ծ\ {w (Ola@p^[#NxYEҪpϩy8VD9u F_/},D{GdbG\0ڥ`{Տ)xݎ%I_6Pf՛{u' EP}lku^A2Œ>sڪ53w\w7q3# xPK$eybOQaĽfAxĔmsw *o7mHy6#{^{81@-xY|fL>s22|_- 2%ˑ\t3w1j8-dMfORB< t8OdJ:OٚOHkJ-bhْ6Z.8rB,D3s cLJqd7*o_O$JĘBp'wi @L)rM^/W'T[oE7ox^kn:Z,Z~=ȊՅ>҃/[fVBHi]\K7n$ +)*L(}].V~mo?6x&J{Py_2Yz ,V+M~TTc(v"ѻ69&P7U eQiJ~# Fo0)Yt.>@ӍPPdgMbY{e^n+bRo2B뺠`sb"/炭㐭fM׶"|pz^V@zl]7D&P2Ƙ.8S,zն]_ಷ¸ V)cyT}/#~?rj=K&J w1 색eN+VQ8`<GB=X`*!C( %Dz[C(cgٚ3`q_| 9 q ^XkE#HVJ h=|%1Ǐ1{ တ_eKO6܍mbuQkB%WbNw{..QuZG1Oscdu"ȬҶ CB"EsG Rw)G´ =eꐽ&|~ +;iPPD[),gVxV3Sgrfo_ܷ+>=rm=.V\<=OJS#7Uh Ƴk{{vy my8ıPTeRS˂/w|8I"?(ą(14 !r9M">,[LYH),a{GcWyWƳfqHH؆{ө ֺEwjj/n77dKV 7Aw5c$ж A~}-ij~. kII)SJ1 H)4 .#Mn b>]w_*@j)Gv]yVtJaSv!I}˩-PUš2ٓLjUg^Q?_u W('Rbnj1Eg<8[D,`Uy BT)=P$4%9?ô9",++ub$A_@{a^iq9=Ƅ1UW R⑔^uvY65Iem =m^w~lX֕npR4o>PJ{q>Avt>7Eww}Z4DTYK (ԑ) B\iLfਮ(هfcBƩIp-w.0[Э{BO 4ƻd}ޟV37~دߣwZ 1ZH\"f뀅޸ygdO9oo|y1?4]$< co'7QH &` ˹i~h+BcO) )_ )>U_v Ip)$H1 u3Q@X:TШƜ־:\4&'Z#@ݕ,}I -M_Y=>rS7 _RstlM%I)=ܗZ 0]h=s-1blCp@*\Ҳv>!RR'9(j &[nBWt-k ^E4*T_4!0zCOYT28ľdGS&0ϾsB⥢+(a':VEUR+n1*(B50}RB [|-yJB Gw>И'bЦ'z?||mެScjcUz)ُ][)Z_琊=]N{g{XMT)&lP=EI%k&Ƴk|<`S GC-*=z~H#ENYšݚ.'tUGlnw(@cG31(b$9Vv.zZv+ťli9)ke-}L+[i& P"K A>ga<)#^ŧƊҴҚ$x3{\!-輨ntnL rqG*uM ޳:;QDZQC\LVIbISD!%'*ƈ/OI-6C90kThM1M{r9JԅhyRy| OHcP9X!DF>FcBI DV|—TRI*>+nxcum7.jmUY%J99~ݜ}xM[7P1/R gjeuΛP2s0RZt0&0cI@0zqw_ޏr 55J1{Ϥ,A4pIB<xsz|Fo4  7g yvi3pn{b^vK[O/Gh%tEXtdate:create2017-01-31T12:59:37+02:00 %tEXtdate:modify2017-01-31T12:59:37+02:00ݱ-IENDB`pyresample-1.8.1/docs/source/_static/images/tb37_multi.png000066400000000000000000007356601324347254000235510ustar00rootroot00000000000000PNG  IHDRW[YsBIT|d pHYsaa?i IDATxw|eſ3B TRUAAE XPWvsY]VT\Y V @JB3cw JI!JLy;{<9b 6lذaÆJZ aÆ 6l8`+6lذaÆJMlذaÆ 6*6aÆ 6lبDʆ 6lذaa+6lذaÆJMlذaÆ 6*6aÆ 6lبD8I,\͛zM6lذaÆ  Kʪ8BZp!GذaÆ 6~gfԨQ5 G#"W-Z4h\s}~^^˖-cĈ߿ V^-?O޽u'2x 6nٳu~6Nq>cڷoOaa!w}7|/fΜ9|'dffҹsgB jl p~MC(8(:Dڭ4݊-o~C<Ι|9]*g4/ǿ|L!6$q8\QQ0Da+ntT 8Q0pE 1\h8AGE@N#D'qҁ8 _^o!--4p@vŷ~(G /0(**:iɊ7п~c < 2^{nu뢪ò8k,[CAq!#ӗa`"8)B9 G |o:̻p&f^ơY8f.w_$sDȎB:*44Ah!"e܀I"xr Z%#7T "F :*")' SF0^< PN9)1N":ne >B()8HrRh;c HaF~aÆ':LdXJt^RpM!>#BŸJ(_#.iC~&MS19uP z`-ftR? DŽPڶmKnݸ[+|}͚5̟?k@Æ /ˣQFGP믿;%qyG?~<-bرsy硪*gQ 葓 | tE\<8M7a̟qK'7p' }yTBzDߟGAg/߸JcXTFhn IY^pY'\гk.Ml" E( #$ftKQ:'@/hJQq4m9'fۡC6l؀ik׎C,,P7+;RM$Tɐ/)qQ/~sdEvWρzd"܌>"0$ SQpnf @qq1֮]˒%K0a1+ѣGw}똎QXv-\r 1+WluV;`$@iEJYuO,.e.ȳQqKX9FIe*K $hиLr!,ʃ8@ 1\I!bI E IKC7Å8qѐ0^K5Iy:xѬA{_Feƌhтe˖c[a)E* U|,ɔYm7~IֳȧDWX|^ vZXFËC(B8ߤʹB2%@W@<4l #zYx3f1{.]ʠAܹ3W^y1P^^Η_~Ϙ1ch޼MNl۶zgyӧ3m48_)B `5*ń xꩧx="RdB05'\DI*pSNy*&@Ǘo2S{woۈmC͜:LN>ݭgPT!cmp[ %@ƈw[eA(K~BxPN EdX*HR%:*%F)#eA(:"GM?gS47pf?gQ#>T0xԳTMP#ȫivǑD$2Gʼ"FEor":tM -'ɥ@HاL.b`i6jNOO/gѢEX`0Hjj1weԨQՋsUSx饗x'ͭM̆r~?C o߾\qgnvEQQu#;;FΫ:{SꎛED"RDQщraK [CR);IϠLBGG!;0`e5w1qDB˖-[oeɒ%4iҤoXXj$NRR+O~DAѠ͏t0R2pA!10?.*4`b~"6*uph"{챣&VEEE0*f͚>eU+^|E"cǎeddd`~-;vdҤI̙3͛7ӡC7nL&MذaCM/F1v9Wr|SPJ)NuRc?&R\#RL/*.bhn?)`sg$F0In_¦slz{uz3BחF\V^Bd4ʅ ؘ&t1%sHvu' O lv͛7F/즓8@Y. C1Dp&J] NM6L:-[гgO~m Vm㨰 3#Qk!<(oS < { SrGTFB:h $uիډc"W[ngƌXUv/cƌ9|g4oޜ;v2j yqL4VGF&l2ƏO=_ʧ~ʹ瞋⬳Ϊep曫 \Çqcr'H x]{Ea)@BR0ĝԽ'ɕ4} 2Ju 2r#n7fmtE7P+LtL$;uTA4щeF0ͻ)":ZE/iPH ?@zݓSo۶-˖-s駟gϞٳJUZ^?Eo@MR-5D"h٬`*[:Òדs9c~vdJ"$(C|cpfafZ=id754$۷͛7SVVf)M 6^`Сܹ7l2|M{,Kb1^z%<O=^{M{رuoFYx1SNEUU.\.WM/E֭iݺusQ,RBGUa܂<)\tK҄⸈Fvcٹ=,oӭWo}gvNj6\,?".%(H4kԙ>xpRIJH#OxyG)eUPFŤQlyϜ~n; 6<ٓx<VZE4EӴ~QPI3`uhR ޚ$J4i)*:.keϪ}\uU)E̛X&̮nU@ H$Kv ڨ}8*rw^NǎYr%ׯ1cPXX駟Λou~ .:O}w_5G>yz̟?-[pM7~zn7YYY'FS{{|AKGf=x #D )-|NȤD $)T.gӊIqF>^NLjbz+(iZؓύ,#S /YNc=V+F[o[cW';֬YÓO>[o֭[4~0eʔj9alԔ ՕrNndp%a "r@|lIi+6U*9z̑2;ĉPQ)%D@O'aQP4W0INJSGQf.8 oV __ Mx8eLBVT+J~r=r N0btؑKҴiӚ^IYfY aPRVj0TA+/ݒd f)U0^b,*메%lyJ? GC~V ~I'(; u+u=O%C膂n`@͎G%D1b4B?dQ\pJpF~Uq,]ßg"Q# w-mgNpU,Bl䙂u]% q;/siؙ%@?&A 1=Vm0Lrb|YQ6N:YCe͜q{l޼]1jc۶m\qvmn[=1n8~bDQ^Z_V àkJ+iP$")}&915#DA|Vΐ8)[+rJ aQk3, '!x#4T|/I aV0p:MJL>05#z}^(Ze#/AyD07qN2)!*o.z_LVT{Vp8ҥ Wfڴi1ݶmXt*/2J*:HFbnFZΝ-4>1U(extuQt4 _3.E0Z{GD:vOzz: r5zh,YBNjx5}9Eq0|p^Kɓ ûTr,9 u 2L'9^MEPDɤ%g{lC4BKhט`+_p$OC1UB 7N48!˙-U{UѻwooN,O>L<.]npf܄$[&A7}|lbqZKH;[X 4$M*&b)7'KFxΒI6j}8pխo߾81a֬Ytڕ_~^NFYY:cƌa…X믿 6*`5J:AI䤧E@!"tJ>0eG&jI]"#LzL83`yZYZFEL#r2vA:+}"*#5O17H%e3ӧ-wFE'O4p)>Hȯ o>^/iii__3/۰0=z&*.OJTcH\Q [ ڴݤ!ıb`V:I\I @*(ۨ56RO۶m߿?˖-ΫS(_4h=XM/b˖-رci۶-=]ZA<cDޡL+]QWP(9OPÉS+@yXǑ$>1$$Jw3e Iy:AR,J%L(&7E [ ^3FC m*T |Ӈ˗s_УG8šC9r$&Mb8=cԷFwۙ9s&z/seѢE@yy9~K41@4rrrٳ'+V`֬Y?X8万JX̵Liii|gD"O<ɜo\>ED詋) Pftɛ ,⡘444J1'/^LӦM۷/<@_';ڴiCvv6f/ q-u7=!:d%J?9qq-'S3^Tuhg/Oy]j=RLR$QI>LJ/&U\}9!CSOstY~=۷Xׯ_5'N,/)..k׮k.暚^##OmH\ o錞ޒBOcl]PU7hˁvumD)W ,K.s۷o;ѣҥ ZU~+;èQؼy3Fl0 uѹsg>cOnk)r\w9V~C# OsvJDt2Me-RhQ%g(#kA Ñc2(NtxqJd'D߮пDDX4C";ABJlآwμy̘1!CpsA5kViɈchY_Pݪ 4)[ Irh!>:}frakt/o~=Xr2`#򠢚U8Nζ`\kac]jΝlܸK._3|p{4hoQik),,d̙1Zn]i>Y1yd*K[>emvTPdOSLR5bFZߴ4AIr`\|,5+9hW3ˀf7Kuքܙ,c `8xD"xMIBjF#xD"?9`5 SnDwR,pGED]$FG $R~_2))QbY69}?wӉ[oѫWjo:E|_q6r^]̚%VJfpkB43 %O&bohU]Hف?HKױkÜZv #΁Qֵ*=Nu ^€'ήF,X@Ϟ=s,/kwޤ2sLncZúuxw8q"^z)tasN2334i)))3ClTrrrh:527䮫D$kz/I(yX8NqCwdW<@cM Yr-2LoE )T"*WFUz72i^naYϱ пJJJh׮͚5#''<)%,()8u"zv;<"Y R.J{`y״z#6M дM:3Ri< /nNx*.x{n0X 9})oSJ*E J@p8'|Ÿc>FӦM9s&ǏgD֮]~X L8\lBZZZM/F%c竝?X"[rj~N.^/_ΠAعs'͛7?63oJ!Csx5. zvd%29{MVP8Ƴ+kP&BkϥA,n{n`S㴿<ؒAZ]9@/%)d9FCkK.% q饗qnFaL>?G?9sK/1zh;{i7p}aԨQviO̘0aFJAƶ,B"yб,Th̍*[LYSr|4'!ATș#X$2IytTxĪh"+ߥ%&כZ]hQZxt1+%31b6mDNX`QdYv?Vyxhh!T5Y)ׯ#S3KǕ@a/hvE'~DgbV\|o،7&Ns hP+L0;l6j*so> u;^dgg3|&NȡC5`ΝDQXMӘ7o";;$Fvv1ꖊ^(7*z&UtnEd[u]!|„/*"H+ɠ$Y}+XIӮ];fϞM>}4ijDC4@+ 9?ռtu49u{xOZ֥jzą윿^Dr?IdDFn].:ߗSqQWP.ruQJ*!"WD%ow8Pʕ^B°k#())7;}Ǽ꫼ >& 0 -[Ɛ!CXr%SN%٨&;_>F5څ@#S$Lo^u*%+IrdlS$I3,+_ bdi1&FLPP̠Qi77( ERbhy9?A ĉF{nlT`tUmcꫯ0 vڅ$ }j h)U׺U5˵ Oc@ë{;;q&W^fx9O&.e|>KJnד )uc7͉ וzFCk䪲|)S()) èUELK͑a;E0d G"!W tT|qI_UL\2;?!8y,'+3=$~!, aQ<23*Œ36mg}6rB mTHZҲ\1NߘO{p^aeђMYOlbڼ0܍H:pNP̠)lT?TLy\wu޽ 2n8_8m4ϟπ*K,OM6at]]v5,Ռz)6m8Ir8܀n~I|*.'(2[HdKC|6P*Q\IfB3*&?n/ŢzQ1/Pn`\A^UtI HJu^oE;k׮~C=DݫuUn/﷨T%HRI$߉F:Ҿo^MPR?+֎ǝ泎Za8s,D$f o!;2|ZQDxچJW~GMlpB^}U Q^=6mji`ѣGAyUhݺ1DCJĬ 3B%If܀N- PL#iw1ZBIb#RItfI[:ae]~l'CN]ofuE/Q\Hþ(~,edPEeiNf(x<ݛ"blڴz* a0{khJ8ieÕDT|yW~gƽOX_!p " a(a׏%Kp)T֡+`ܸqr-L2ӧafΜY%窍X|97x#˗/믿l˶Q{/pto\v#4 KqQy17Ih*l ;{YKekj'gzdOTk1̎-%O2N4Q% kw H/ˈI ,\0D;N-ZTë:>/@d<3s,auX;?A"xpҳ 'qI%`0cHd>2W(VIچJ#Wh"V6msΕu p88ZhQ˲q`ʔ)Gu%y|&:8I;ŭ;W Tc&J L&o2 ʑPHe@md6 2A=^cRݒeIQ&I M(m UωF%8('SwޭoMaa!Wf̙3ubNm 82/Iu:," 1pBY,rZ]H"kU0$DI2qAr<4x yedMj#*,x˳ ֭CWoA.]xG%''gyJU =<ԭ[ӧU+q`ƍlܸ񈟟_\FB9PwXe/*ɨ2* jX~%YHΥ@).%!q&?&IQbd2. /M\D)ѓ<nbRBן W:ҦaըNj,ڴiC,nݺԩSךYx#pqr+yEeA0׷O/fߗܴ6ƬtLٚa{8uhqn}0K" !NڋJ}4h@jj*ZoCD8s:t(nVX~J3̚5YfsKCkOkY3K(RErZ[B ȴ>rYqQɌ(YP1JTdidc$ Mީ+!.םVG*=*kjK+7Q΍4'jܽ{wyvE.]3gNM/7: vhEVf2I\[_G9RÁٷr7zc݋+*QRŕM\8t {*8$_LzgǷQ;P%GL2:p]w1o޼|9 <x裏裏96oиqclxwywdI Wbe'U2oM2'F☄DfDҝ9oeZ2]zX󨰬KO \+%78."x,屎>XarXt5w0&"`ѨURUFHlْ>aÆ1e˛u"}ژ PR:DJ)͊'M h f3'\Ȑu5T6]HnΈ'JV_3,+|ب]rK/1{l9># ¥^_@<sΌ1N'7ndڵ|ڄ5kйsg,YK/kzI6N`L<ɓ'ȌX=N)hma* TT҄Gcʼ*i~&Nr"[<̞=]vCp"b̙3'x зoߚ^aq:uU)0yp9zDN/*`[I$@LTrEH$0fI8UuMdViƩ?]18yH r6GgdJ! rVP~ʖ~7NJHK+CUU> 7V:abn75W4FT 'I"B]YWcVV#qP~0LpOmfy"CkV6f$ope%:zU*٨]\~뮻xuѼysGӦMk.rssk9H:l޼?b ڏxͥSN2m4~硇W^aԩ<ǻ#GgĈY^ IDATDAAڵG}<{=zW_[y뭷p8,_C( NxycEtlС7p~)z+7oDJe殮xBF2(#L$*m;l[^H:[czM״!\& h! 镈V0WU^UyMI?nB~?={c„ \0Sݺu;0REQ(--VԩF5COƑlڴ;P(C=DyG6l3gdРAԭ[ۣiƍnBq8"N$$ k>eyIdJܣGzA(fW9NY j1:ļi̞֓Løߋr+38qnY49?n;||٩(DedKn2f>Y>XYےsHj< Jit7 ) NUztARpdHG1qp{ozI9/f۶mdeeqeУGj]OB4Vp p hG!|Vg,W̹ҩgE)RZ".+uk2y;Ջ3㡯J$J岼lrrب|">oG$+fkZ8wθqӟرc9(,,K.aĉG>Kx衇,<#DZGyy9W^y%xjz96~aXa\y啼|7`0H(" ( z*͚5cϞ=qz k}.33 p (uuM#w7)E ѯ`&Pr!+wPj;nO.~m CY9=N|괪jmP@t$ȖbY"J(K`z%J^dk=H!fƙh|ɍO ZMN;)D&M8t(,,$##nZ)ƪe4!|(p%3B)7?L|!z9-."we]gj TPTu-y֙ȨRE[b{~_q-0d\.?Ϙ0ap[3fL/*TnjɎL  ۺQrFwE#A{. N];=@ՁJ٫_/3C+N~tnIrʠ[^eU9+F@Ū O"P>`i MHG}cvtCyt YYY,^UUYgņ 2e aXt)x^?Yfggְg6H =sLoNca6 l"""" g, Q>Ј`Gpg0ZP‰{{9To)%'ܒl&+[7(FŒ~ e%bl3GPB:R1ф?Vŧ7mMŝwI߾}/Q^z5˹aX!{H3Q<(R;:R-R  ܿhi # 5k I 'v-AԲŘ7 g.Jz@ԾIim5x]=۸[Ⱥvu;S+/0u״0pbjD*O,>)NW'R{uDUjN="?Y_KdohCkjhF̪?gM l EoAqFEb,J{j}ԉ'RQQ˛;w]E1z'AH PIWi;UPA6tI) ϊ9+){Pxkģ ,f;u+!5V Yl%yNLJK.Iω^x+4X_|1}[oms}$ nJ>}=z4iiiĪXt)C a…p TTTгgO<nlĉ<L .E7ӳYV> 4' *8*"[)=g2XܵT{| *WnE'l38.DF'bza#1֘I˼t2TTft6a?mKuDaTUUf.\]wd3CA'aS~N̽h2{G. yH8$tvsK#dQN?6Pߎ'! 17cV,2 ?'Ș7/IEl)%8$KNDRK,4>O{#B=:%%%-"$>}УGDΚ59s}vzΏ=@crYgK/1n8rss$kH-_`מQgٺl9E8݊Ɔ5TQ\"<3bf4Ș_Jh]*[7&"B3{n3嬘ѷvIhqrU__o}VX'|ܹs[z+DI&1|pn;k׮夓N"55Uc_waٲedggsew$ItڵdXp!\r ̓*L h^PiC-iLJӘ3f+R!;}˒q ̉bD+B|n Cڅ]KLcǢ/܉Ll;QZR ;jFrZ'H=5Qѳ35*nr 2$)It?mq.0 U`4:45ȿ䘫)YQ]#jTQpgr̍g᥼79TfCY2$SQ'jh_JN~Pk̙3D"r)\pxM~UU/駟΋/&G*++IOOo߾\~p ̙3T=^#??zS ul'\'(.s*qb{9,2'~`7 X_Q] G"SUZAՎjB >872q^2KTz͈>r2ӛP+[2j(ϟo'ZS%BREU!:9z9Kf?.c<X)nƸZ5!=%fQ]…9ƟN_躄.>qBF dB1rvYhQr~z?|L;#mvqpgP__O0lcҥ ĪŐeٳgk.y @zz:W]uUk`ڴiΔl*XbJ*M("Y~B\~tJcYEeS',f4c'cQ3gx\E1ZIa(#p%?/=>bw˸~jݫpudGz97o{![9% >ڵ{l'9cE?a)a"]. "p쓺e$Y&Xh0w\1zJܜ \fMu{C%7( 1 #ؾӘ~t8XHfΆ&ЄfAs&RӬπG;,XZpݺu/cOZߊobc=$Ǭgܹ̞=?IcTTTPPPo9Ü9se:bO~&M|]aDMVdIQ7rZJn&^}Cnε}"oeOFqZ{x0痠-^yZOtg=Tps'$s] ͉8.IhQ5:Ac;1uknxD48r"a 梨z_WA~_3aKCm6+7n\m駟2sL DϞ=т˯[pIQ+m6"$H &&+X5>f;:L]`c1 Sq3js%[?cAvB<Pȳ&L5#9('0~k^8Q't|B-"* 4BTBL 1gEo1bxQMCO1'EJ2晝8uTcE`k¨TC1۫d4{ke֭<#XիWSUU,tML8rrrr˗/gĈ̟?1w?/\}՜xȲP=4:vƝ"ޯk-r>;+ThN *t`n,i-W;]ZL`CEŻZc\߽p8|ĉ"//,h?DeJrN=)h,춭6<RO_$:R _:)y\\ue.T<.םXVІ S8 ܎#Ju]ka\xᅜtIlٲ%͉s58cxg>vb,X;j{" 1g0[n嫯1o<[{xGxi:<>ΏO3_IV^F¹Z7Rzmo#E%X8Kt5-ۊr{1NK(^":" cKde 2`3872h .2Kд(B4"rfM Ң^_=\351Zd&{c$!D]%LRDLsY!LN"9ё-uB_M͌TRuN;,4Zz5Æ #??;bmFNڮP4''{wI&qoߦcǎ,_STWWaJJJ9s&+V{ΤFE}Or۰Ȇ֗3J$2csY2AX$$| 6s.Ahbh?o eĢ%nL$1p~w5ɖHuc U?Og߾Fçz{M6ѱc6Us$@QnN2/]zߊR:b'0 r$j%nm&N !*Y92mJAsNCEk7yg(ȢIAQeHQvyh6rz)**JJͬ-X1|~_۷/;6wW^RXvTWWp%pWгgOѣ۝hϪ S=-*-Н'pF쨐Hىer%UL5Z5R>}>0^3hGQh4|ƐN(,r'.,vzb?x1cg IDAT{塇:cYx:dHhIZD(/opͤ p Ӿv_,*ɎTt" ]&6^9ÈTX8+U9 ,hx|4)4I&cx%Zh @5vYhrf:3f+/Kk"s;vc=ƤIصkWRS߿/L8իW[wv[#Fd~a2T?ǐ)|A488dJ'C &}M$Xc( =yur6tyn?ESD r6Q  D/2/};M; &UU ̛7. -GAujw+Hr> 5zdMJiexA:OJɭKh?dI'#YLtټvJCK CA9٦\nQp[C%YE^+s9gs^!acIIbNאn}Vզ_hKEEK,a۶m_{[n(B8n6;.۷/ {W:k|q׏;bzeiq\!A^B?a4%mC\:["MZ@Atl*%Jz(.Ԥc>ިRX< Q'[.*%D߹ [ rDK(OncٲeL>ݻwwBt]&T˔唦)Z \.OGʠ"HIW)}e)M#Z%'SrН A\#Q#b:HߍFEbl7摨*ujRYe]3VŅR Sw'wRIn 'D4)%^>MٻwoSеkW{9~p]w1m46n&u,YCroߎ$IwkaxkYt$(e]Ca|hQ&*4sQi\]8ef'H= *ȦLGXq*eJmgDMq-i3aEٿE3ۏ;={̀8餓xgG jBLM}?&?G>fROM/2d_ҽd64鴞'HBg(@dBE!ϊ SM&.IsWAd4K%TF ~N()fMtuWG\$o*..櫯jӶ(.B/_wMUU?xkMp8ĉy衇#|- _Lo6sϒG)[I9VU#2[讛Q8>> +u'N 3قVz#B&U|џ0~+PIVs2MŒInWya"%T# s7[X!B*uD[Q#&xlWtit)x#˧` T(r% 28^m;Ƞ?a):AbDJ6OPMEU36&&+'f,5`)7o"%ۛ4c;4 J$lܸ_P(ێ3n]2y8}Au|A.2^x~_n:Ckxgx衇ذa}{n'V͌%JA|Xv]3J:՗%6e)Az|E dRe*2^&|Bj2ȣ:K)+3[hg=؆W!Wi#@=^:F QQ%4{aJ* N"8M6̨8\b[3gy&;vlsuUW@'\ @،x]^O3s?^@%쑻PJAI AWt$Ҏ05xL{Zҩ$1 dC] נM#s>*0 OnTQ46լئEg}3fcǎo\{,^5k0}8}<q饗n:ȢE8[{xmp 'pFQ>}~(I#c0b OY TpEgFȠ]&@7MYOQb˶QɥJʠL2]ftj>dSI\tRT=d2JqGu|y$pT~vAba[l՜˙HR h'b=kf: ?lMG#c̙TVVrUWvWt.Esլ>K#I:YC NEGyM@К xT!A 72O7bDZڮLuIFTW65TΈhqUb` N\t#e~E٢j>Ddv8lrFٳw%+‚ 8|I&LM,sh"&LU:th+uezG}Dzz:cǎm7lA9`| Rݮҙ.g1U$/Ī)F,ॐtVӡ# NTB\6ZsA`v.qCXNTzop JRCuA;BVC P Ⱥwp?YiFs] v58TzDk ƆbU®A8u1t,k듚ƍIMM[oeʕ|Gu˞r>,5BmLLI:3pՔi 1aI!M!h *h : ..`Y~8(0YѸjxNsݵTF_F12vb;L=/~yyyeԨQy̚5pBlVZ '駟Jl],[#Gx~hL<1>CEQWP@Mju39UDdrʉ)t%]^xCNA: Zza YZq^b* 3D ŝ"D<>0vݖ-f.B< %DFQ8g Fv?CK@XL4~Fy1ca5oaU"@No4K7;{$))tvI~JHD͍ETC\JI\!z)]%tVCp-I{p*n+B=pg0+4dJA8otڿKD|\xᅌ1{{)p}q-0yd;Ja…ӇիWzmϨQXlzj o駟rwꫯ2tvbuꪃdŷ&U#9ƿ6U rp*֓VSYUɋURL1z~:ԗdJ0o'`,~1]OQQ"WDȌ5cEF*af׵WXDZPK382 vbʉaÆ1l0>c|I~_F=jt!^<9(;JeQZ2G a6 ͇ ];nξ w ݳ$*ljI#/ZU1uu~¤'j% Uv n<$(Ұ  n-2s;1NgIEQ'[[ #!(1_7wL3Mv]૶h"|Aw1c dYO?hV$ ~~iҾKOgٲeviXG:ػw/uuuٳףi'On'Vy>UC]dC=0ȎYp+8)q2t-Uvm>X{܎c$&\WїGf Ѕ}Dqb k񜗈L,aPYj:|pvM=9rQeO2oߧ&fF9_z`aPXs(rt :Z@4T'#jÝ߈xP)`h#λرcyh4 '_̬Yk# *DFʅAVXQ2~_'#-,4 $G"8X@׬4{*AxuEBsKJ<`FeV9mbqL?`W\Á/ļ|,]3gzCA4jYUd%cQ##֙B夘6 ~9wu :4xLi D$!<4+pq7{ kNcD̙]3)s;hJ6N tHhޟ\]_u]˩MŢE~#Fweܸq^ͦ;l?2dHX~̈b5D1L܃I`g GA@ =B՘OZq~1= VnP}P̗M dREgN I GD[ kK'eX ڛɌn;~x(y~GmmmnnpUy27帛΃dBAjE|DF ?i,A>"ۢJЅj,c#HRK%YHe6j%/RaN 2@_{CG9:B'iܳ;vțv9ޔxڵL:ɪ\ںu+~!X`:رc0`ofiCelb5Wh衣Q0A>P.U`T ⠔J)$I!B!b^c;s4#\DrY2mT]eREwvГ-Kc5LwvPeH8>"hmtb Rt+'j-[Naa!Wn!}g];N ])Q"u0hH/~c[ɾQJy2{ʱ_O[qѮf_0ͪS?Q  YAQ +#Bуm+e=Is\ބԓEY˙p>Rg{ 7'lʎmߓrѷo_n& _WZ{X ]YP H6+N" "]v7httw΄ $BVzM'|&M8/={k1eʔ&iw!--ѣG|UU;7b_ b$D@v۱m.6#nȐA$O'c8MĸTP":n9]G&S*Qe9 ?a:(#.織q ^H=ԑJͪ2/& ͇Tn66m3folQ7UUUyԭזqZUr_RvK)Ƞ4_ wgs# D+PZA@" ͏fy:Hfp,=⸉C5>Q`7Ad& 0iHѷs@_v>oKϞ=tEEEرUIseܹI[S׏^{.!CУG&;vsA4$Ib֬YӇg}ֺNh)$ T{0<(pA+Y)M'}ԟln v* (1lb%Rb|* rܸS !X\F  {MEщU\q躄G&U7J8k5个HՓDcNn /vJ("qF #3PU_5 >4ox_ q "ll&GX[L":e$^XEhW O&6%I'uhl$TF/DÔ~j _LojfѶgBsf転!3S#Z=U;|/rilRSS[MwtRF'| 'lѣꫯfȑ4۹~t]>cРAddd (گ1IDy q`<%? ̟P  B%ccr+AQ+c{ ]ESqGc1;1=Ra3GPb@Cozk,s:}׿5sncΝdggԄʎrLɪT99S 8tl-5m2Έ eRE6unTux78ؼy3=\#nױw2}p ?AЅ`w a<GBG"`[6bD |8oQ4Fo1(!i7W%A:R&!T b%*st+y뭷̚5HurVjEqJ_'Őϒ?uEd+$ 잏X%MlT\fP݋Z,Bv3aLxr ,tJx8>-j zY'D ?hŶ];!i3R #fD۴Ёr7Yn×o߾uьhuwu_2p`j!ׯ? r$HyA) s"(կ-zv0J"daƯ曩4Ѻl0DF4 FM<3("S;xet1VKwgQ4_K1ɠዔzAb>ַG>ө$ Iyy9_}ϧƅ^YbtjyI-Zo+!!:'$A\Buw>.E 2:9[g^{'.;Dz蘈BBv覜Ղ: }mzD .#g;ƫfK=j;A.OhwGFn6=9i֢<~߰n:jkk;wn3FqѺI`D4IB 5`LwA,2$Y`Gp/Ҁ /7N!da qAձ3%)*l-}"x1֨1GPeeeoЫW/N9nf=߇rp;9QyWm'{W鍫 څQy?f->¤6JI?AB"a26&w񄇈Fݨq#ayp eӮA6ӂAN"\˼q`Ió*H=i_*ED/:23vDfvhZjɒ%,]7|I ; ^z%}^x65++ 0g.RSS\3n8v|$jMX&$`5O=f% ڰ{l""GN)ɖ _"z$3'='H"R%L؜pV .$sNK1]3 ۽ž[ <?gݺux&:+wn`~uu6I۵Q7bY[D5ەRPREOЉ UtT F-`,BP7+3iƋ'EL,O=ALe',⸉ⵈ:RAU]nZA(_( ­;ӿ7~4Uz뭜x≜s9-v^KZZZ]w^z)wcM~իWӻwowoGkuJ2xN}Jy3^;{$ىa?ADEWP@DtJ!A^K/'jRGz4 R;+ѧ"V&M`„ a4_ lf.gLUHI#DE' Mh.F]&בp4H3+$O 4FLKT S OSڮmweE"h ` UHf<(<5bFˆH-MoDKiskS;~8Z7dժU̚5EB\wuL0?m2M{ǼyMzP(Ę1cxG"f$p5m{g_P 6A4 P]AdHQ#'Q$gѯ\[s(Σc쟷'eFvd?"ujω̍]h?cT)vEM I\DQ QPzc;{yp yh X~+d& g2;lLs:mBĮ[&!7(LݔhŸ=ztUmذTWW~(Oʕ+Yng>SO=E"`r-M0v0:\x,>z?Af/ k8\x ;<y!֬cχm;P8i\ބ<8ee:HıgN \5a tQal- `qsPc-8]K- :vK/4Mt] rֳԮЕe$3zM"0"Nf$KqDA]A RwS_ ##ΡiVX@a/]5?<FDM4L&ŬHt9nkZ+IP)A"xM&Hd霻7/zN2լse˖-<-rηzc=͛7SXX"<~-[?bط طov/NhvV5kpRYY]wE߾}4G9^߄+!AnGrS᱇7ۀ8;Lk #7X9&JbĎ$Vh`V@dI r&'nb ەo۝WYOD7Uqq1>?~q)MUWW3n8n&xc~o[n/%Kpwp{w;3uѰaczJKK駟޽;{/L0>}0uTTWWsбcGf=%'71,uh@ NB WYo, wNz6b"̐az;Apy[{s j=M\ko!  y]ZP&ѓGLjY=~ ֯_ϊ+b^+hOO@;)D3'%[#UI&;KSJ6hKν iK0 vb>=LLCaD+ hLA 9'0Au%}WRRG4XsptTɸqptn^z媰3<~ r`YY`%Kp]wmx<,Y… bAݻ={6+W'V5] ]#F}v^|E>lt]Z˗sҩS'{=5kiƈa߲4TM.s2c)s; ϟ}:xG:zF/aڴiu$rXf +V^ 0رzqa]q :u*ƍC4z!N^^1;vqƜ|ɇm5pd;0@%rEHX,g)I$M2m]S#TKtؑ{Z--fD tأjdYN$qHW[@Ul#廒yT( G$ Q)ٔcQ4 t!=CPIKځ۾ƶ!J֐~tR-9V|Ds+<%?Wc;h{/Z= J!C()){lڴQFvZ/_N~?> ڵGycФI/^y8q=#F`ڴiGa:w}iӨ / .`Μ95 b1vE>}>|8z*a9BݳvWCT sqL,  ^> S1IhGHңfTKdY]y2 18pN%m8r8w<"F75:]q 1?nI]!lf.:$u" %LẦHKI׺G͐ƍ2e oYYY,\?'(*󟩮_I&ٓ1cK/vw͛7SRRrRiTVVRVVFӦM2d-[eF,]00`'O{]v׏ѣGSu0 f^:W1OPv @ &y1OM֍&Dj:TTUJ͵Ri=v.&8+!#7p8(+UO~ 5jĭ3ݼ+?8?.p XT=OˣT P*#DI0f 1C-_KR a,JLC+%f2Q@v<,\N篢R.j|>+ῡ;2}wcĈr)횦O^^^ulذ͛g{GB* IDATm$;} ?JN9zukJ w $5LI*SJhŔǒD/zIcIE,ɐҡ%x%s?!77իWwߡ:O?4:aYYX‡44Ƞ%}Y\V JȤ; ]d[=jR !J)"Y){ 4#t*ɤVl!G/%eO8;#4!_yDPEsZKSf>9l#Jf+!1uӭeWg'VB:*##^zbŊn?VVsطocĉsx#GҧO:9b_O?7|!C0vؚ^0 J [ $SȰ.Kjj,ZHS')֫h$v ƱˁeFAjCrp7-Y񊓰=ٿ=7''0^ ٴi۷gܹ'sxGXh͚޵ ?]-Hv{ UӅII)ۊN`sY-'.q#JaKYItɥ :XF#$ZK {`r?q.(U9mÚki6rGTTgYb~|g8_Z79/d=j5j3)//gɕaz>,>[OCU㻄zJ|YS $[ 9U/w]sdff x8sˤI|hV뉕aD=LlAdL*;$zdOx3ƉYZ,#P*E]eT O5YqR5cr[-baE)?Ǹq:H_3V{1>>cJ[x0;.f90Dׁ8j܂H(4rJ`J%F\ޝf ~+p31i,A7Q@')WR2*3$blR-B"Z1(Qvix|aX?u]H(w8ݥX&##Co+**gӦM52<{(naÆѷo_B>(v/7ӦMfРAOsŢxDG뮣gϞ瓕u) B%h]B#aDq!b\؛ƒ7}0:P5 1ȥGX6IKݥ-dKN%:VхbrEx峇rЫhn̄vA43+"]M(jQ4 qxp'*Kbqgz|c exs7Qe0 ^}UF߿￟zX~ȼyx'~rw -&L8JYlڴ Cii)+Voud*N:J$xtM0x& b8HQ;+kUעq 1jIR|cz3l06mDAAݺus;v'2,[J`4z"!& 'l%HÜ(ЉZ^(7+]bB2UN1p:Nf^ahGL)0^*ȰL2+nš_GW J>CU0y['\'p5GZC͛Gqq1W^ye,[yq9b<g}6W&?؅΍? rꩧ-2 7@ff&3gΤISQvRDCU$O%2jҺ(@wb +y-Ced5"9T] #%ffjF6mx>|8O=gϮ}YN=T6l EN:1}vCŋq\4hGvvvW8vn%GG(t`ø"I%TJKLf<$=iWSjIO5eϙ~$O9~ΓHKˤ6@4f͚Ń>SO=E.]e%`t 7L\Yc4L3yN.ArYT N&S)Ao CsR>3G8f@K1]\t8Z %9n&Wg1`mT4L!PC$͞\b(&Oΰ2ԉ]%M3u4M0rsWm@gYCtZ +݂s!3zh6088묳xknqh.Cs7hЀ9;w֊K.W^|<350G6PRj$ \NBa2KeyQit ؤO 9SKx1q-2DNQY$9С:ubL2p8|VbĈ떺lvrsvLBPi=;]7Q|}cmYچҌLT/'^ҍJQtZ^)hYu_råf U _Rk<=i IDATΎ6#`zreFU^xǸ[0 &Nի1bDM,!߳cǎ^!ᢋ.b͚5tڕgy Э[7qyȱ7YE#uc)E0=>ˍ@yV|bm>h4UUKIEL <%d¥W\D'N<_~իk>]ve͚5 r4eDA M gŭ9&Yu](8.b9WMPz%9oKLzփ!;EeHItEyѐh.Ag F F P mK-ߔ,q[D-&He\y^L'!gOA|VN-%vvywԩu jmr̝;O>" /_ݻkrYG/W_}5Pr8Yt)={dgD*b?&I̎a0URqV"+L*iYX`)V0g9Y!ne֔,CʋT|@ fD*v\TXZYQit) > l2:w֭[ ,gϞ,]aÆY2\+J{Q'[AriY>~i>9A;u]DrM۹p iT̈J|"$NdS:N\ew%%1y!M('0˾I,:!IQݠ;5{̘1k_Ӻ|ˉcyyylܸowym#s-ƞ={xYh~;Bq| 8>[|9:t бcc:4 h X0jlϔ$&:&v, &O8apf+|xvytLWLR%_ vP%/v0%>zIIy>idG Mh޼9 qƇ>c|qGqr^BKҷ#+БBQ9Nq|]) U$(]/~dmI!nqu|vA9^¤QEdQFdPA#v'@iTӠ [P`I!Rb⧒t}ed2MMCCדX˃]jGP@ W;wweԩlذ1cpw?چ;wҮ];^{y,pg3`n_\\LV8iԨqXaC$f'VɁIDvu:F e5&[&sk0?ҀLqINJOR9k5ՑtQˍ&w5-O_͛7^`jՊEtsg'ܷnW!c)3J0D&B2RT˄.B)D +͢t1ɘQ9:;}6MٺUKC/@ dX#v4 DgeRN%HPIG6l;(#Nd3C$cQ08kI\r z!z뭃n[Q\>j\}g;rauzMFx'o~SK9*߿?-W^|G?|@֭)**_<@Ij:9$F!yP7/2IɲONOG+AYY]lMkrBu ݺu'gϞ5n棏>W^,Z'Îm<ɲҸ,rɄq3f$^^"Y2JL?"V\Ib',H&›e֝' QQt4R!{gTЀ}b3M)1sZ-"_. ӡ3-T2Y GXx!ddŹ3 <:мy4>|<3'Tx޽裏:t(˖-azjσ>X/E8bjN 6A*a)D*9SUTJfh -??Wܞ))IO\KKF5j$T3JTjfה%C߀ irYd ={O>OZ|9C?KZnUK8A9rym%.DDqOP %s"f(t zIʋ&^mC}b&0< !Bp'J*IȤɪ&}RAmp-Ubhz"g3wa[8ڵkiӦ aԩƥCEQ׭[G߾}yw7a̛7*uXIwy,[.]$H3gΤGqmP.]ĸ2'իf0 $KYPc (d^V.%(o$I%U(kq)$*\:4h6nz)wܹs8p |u[oE.]Xl?wU8$I,I݃@YJ0H>3eGeXIPBC,唓pj:OfT"yq:VuXr%'Ndʕ5c /+Wr駳yf?^V#SYJ1ʲ (*Qə 6QRnZ^|\j\?y%͙3xK.EѾ}{oN߾}kz99tZؽ}5w iLVkE*%"'钰H?vןK߄?^T` ZSdӽ|TC.04{#E;v,#F`߾}oEt%`%)Zl%"*C)Jx I6dSB'PBdPN&q¯HKF1ɜ.Zr{MGAZlxf 68H\iN(\("Raw4"C TheI^=r[IKD_u.4?fѴnCvv6C嫯J0 |I:w#-->}0gΜ駟}|>ZnĉbxFȕTTT$%\E]07^z)'NM;۷/5yѽ{wڷoڵkW^eHeJH) ^(IJ\$J̥4)i`&( q:;UΡ,$a1Zi]v!p(b Ou_&??kײl2ݻw?O>_~`0lA{/~;f޼y̞=\Fܹs9i$nVF馛xᇹ曏?Ht̘1ÁaL4￟L:5 裏e>Sz!vA^wqRg2}f;R 6JE hFgƆQ &c^--H4Ɗ(- itv:}<|3g93\u_uWƸXlĊO?eԨQ[NSO=ť^ʈ#ڵ.>]kW|Dцs\'5ڈHe@Wôuk|.a)1jy+_1")ŲUS5?{mQ__e]$IuY|3O?aÆfX:HUa T&LMm՞FwU :YR D ѻP` nLZ=˴ԢB%{_k(mL)\L &$Ħr'Rogg $F c|Z&DD%`RLe4&t XeIC|ѫW/ƏO2A+j|mQFѧOLˆ#6m~8{NMM ӦMcр8i$.B&M!B>o檫b;6Ֆ-[>|8?03f[nW<6Uf1_Mv8sgqƂ?^Wsq:,.]J$߅gB˴R|UX'RlB$* %LDEx- T,*mQb_m>oU(E ]HAaSL`^  +#tRX5A,^}ه7;6@b$t,4ۂ L/OX-qrI&o6¥{okM`i2&dDYDHB0W*UֲgP2?a*M&Ji,cPKS&z%01,AĠQl=UGcCI?ȵ֭?ȾwU|j#D=|>@7 nzhܸq[t檢w}Z 0޽{3m4ژ0aBR8楗^bKw3شiEʦ>xv?_[2?Tl\?)AѦ"t꣖vX]JSL?ZN?^a^s&qz*ɴ{IVc&>c鰟V_1|-e' !F)OjGbӦMp Hy睷݉,;kQXCO)FWfx\_'b IυXł%:: #" uZSN2}9 }Ǽ^#Te+vaR!I$ӬYqᧁj:Lz w%X<>̒E~K.vfϞ͡cgQ-μy9ru]5\O?I'D&{+nѢE <`;wŋ0SU<;p/yg;w}99sxGy?>@讎,Y6ڵkw}y8vw<sijuoEU txDZPa[W_YYvYx& 0c|8;/.HӣVa]Fai|&]£]-W'OCR`Vpk?HtMiƹ3%%%̘1`AL ·RwL~ةj|W“PU>l~_8 k۷@&2/" ڙ/Geʔ)_'-doll[n̜9`񯢲~I&1vXJKKwYhٲz^HהrJoj䗮VSӻ7_gSȪx5wIlg"֛^!Z ^P'fU/P߇\h Rak5:Z[[}7-:6o*%LVc:3&M © ܫ& p~!W0m/; F&[p*e}?yN:GNn\.G$q=Z`{:˗/;^خ;#r^{-OXeY: ƌÔ)Su_|1cǎzE."nV7XyR{m)Uᑿ`pj9*) ,cy3̱/XXeA ט}ヅ\vڱ!?r3iS*zp=G܋ʨChIGCfbtN )"P(@BAHX{d"PkvjOC%Di 8rY)Kʶ٨fłyZT@Μ_f W!h?ѐ:M I$;D[QI6㣪~MTTT0{lƎoM 㮎Հ8B'Nɓ2e ^zxSS7tE4 IDAT#hhhK.qUyy9lL&C0,KK Æ ۑ\6K6̳rE|2jjjuA{쁮i9j_-_,ˬ^T*(+#TEAU#1 ;c=o{=)2 rw.7JKKyꩧ:u*ƍF S~:]l#7!0~ =wt:; \v,"S{Tc{ihc h]AS^ vCLI'G+P u5` )y͇Q$O]H)zUbJ)ʏݏa(Yƚ"־[OI_Trf-~?2o+-fݘ ;.Ǚ:u*7.2|5+~K ,SVlp ǦX6+I&~Yc{rWVf+DPhbmExEJp;z]^W<^PaT}F2ShShUAv VjOMRiawP97upu,=:FUU555QUóe?d2cU$&&NpCᘰb `СۼnȐ![$ ({'_|Çwkllynt *bX}фQb 4Tmm7uWZkR-pk߼hKh>8~- ²'Q"+<!,qu|[رcs=wcw7n /+7n֭7ꫯpׇըU+46Z|:{>\_<{-U ]`A0BPof/)8n:HYtŴ{6 dtHlap|CXχt+}02b4%;#<3SO;RN3͔b?ΐ4}~ /0jԨ~ves=y̟?iPgIPȚ7ME}d Z)[H6tĜpQ7lڕB./ZF?Y$Gm*DEdDxS4U%dڠy48&)B!Sh}E2L9$j̍lJD:Jy~Jַn'7|MqL8o[ne{:~駌;O>2QGE0',WO>$$}m;^k®ۮCOIGCNkǏ#dʔ)NO=4ӧOEi8z>[ &=A:3n9j$K8I($텦# qh#h,*} \֭cEgKc݂Gwt]6Jv-{He:L)6836cA͔C6v "2ٟX6ʾ7b̙=/s>BU=JTKow}7&Lਣc-hV~ѵkWƌ<稣"2m4{bTaii8#;w.'N .`1p%@țc+ P+'\sG+ڕU?y\! >]gk簾W7CQ =*L&5|X<-%a?tڡ{#! #"A*0# 6X#XΈ sWj؅ņdD+[}Ri.3裏olwꫯK.a…\{~wu&rg΅7?4Ak  +1Vp}8߉Iw_Np+#Y6(*54PL RO1tPIJSdU}$Em~ӕtg=aU]XyQ 4#O5&1L%]@Y(CW =ͳ_eeŌ?W_} .`R?97.&t]QA 铐unC.CQѕ>2RZlݔfC'NY AV溓Zۀh#;pM ^G&H֣ 4* \oCRy|Ɩ7QV3 A+N3,Đ%PJGClv?裙={6%BQ,n$oo<'Inpsq}!2uuuO .(xb䮻opWƎ+0|vpr/8mޔ:bbS"h>0\3.|Xgdz9=;V@ஞdG ӑw wϙ}Ѩ1Eyqf 2HA4J$!N? rYԷeޫqAMg)k1yOKE܈u5(B:t. B+\yOۉ]; y^׍]G V©6K%yP=Q&BYInROJhz,'hg R-ot?gAGAZj( UjD%@5%QD2:Q9F:!ȁ|0k ^(uQlڴ'x . 6pG0qDz鳳/\11,l6ú雷z@|MſÁ'9`ɞ|D[X; FRmP;c,iŨErNQ46qL$rx|n&9( !RhHPJz@G"2)6RD]ʒ7n=Џ7[o[oݮ/r.vgǎ+^>9ƱuMiEo1ۡup" UwH8,bH1P郧q䘲_^?䃺z&I!!`˅V/I/vS.}aHdB)Dԕ/ؓ$TxL95Y ųoox#\I6oz/Hkj v?/wW^A_8[#N4[#J>k+3g}a&ȋ@c \x$n8s8FvV*u-&^`ϣ;Swh6ެ#Etq&Jz|'b7 !CuXntfI&4aVSK54PF>CQ蠕Rhm4o߾=8Yy7hllWՏ:exw2l0{o]ya'X&n&zp': QM8Jt:)1S1?K`mEE1ta=XHޥEl\|Ü/&2* Qϼy={6\svUhNNz\q smOm}#qNKza1~0"[o79kІߝyRZ)RZѱL%)Vg5y/֮t`"уNHĉ9FDt :!؏}Xh---߾ʉDu׷'h;_5\.0ۺ)0>DJhTjmFwn1U-.-E}2f(>d:/hoAxXM I&d^=/1hy"z.{WHN_.BptYfԇƔ}_A'L"کd }[܂V,J%(vef r /)w&c:??$+ZeW?s$j*jvAqHlذd&ˠ{aEv ǛZAq v J{@/\0Eyq4ѣ*Ғ\jYM̝$jODO6_kœY(h뚶RJ%6( bt#NbfL)mlAb5ЙFhbc ͂ѫW/>c8 9FIuu5]v=ǏO>tYrˊDvb0{~ȳ,ArHӆh^QOXOr^.Fv$j,s9rJf8k߇ ,He{­\е[FR0h[hU/n99kꜦ]F8!H#ĉ%KTO*=N6"@ٱ4[VRЉQT4mvGSU(0"Mlp߮+**+w}71K,aÆ L<ɓ'[YU!ʠAӟKjС,_EQx'Ma`$Ib߸m>c/ҷlɁM7P8H4NYg‰c"||Q_!ԲX5|T4;=äN*qG-SЭvWT8A ~^Km -ZGF4N_gg7>oN1)$BMTL 5ub@v4u:t(?ݻwէ׹~] Ab/$yKafo8g|Bw"@',pK%ُŝ|=L Aq-"AVL=ut֛Im**9;,q [~yĴ BON)QDaLg0+8PDcVq DwnP ^WW&Da3{_E"f>M$ds/VMe|>R CH1IccXD=XKY;J3Ɓ|93R8(OŠ2p<՛ߢ7޲|'V__Gͣ>ʭJ"Dcokm,V/%{/7QCwBMT1ӉĈ'F+=Mz҇礠 f:Z>z Y3 aꍮ%(A\QPB XIVыv{Ȕh)V&rPNm8vvP뮻1]ijj⣏>b…D"Nʘ1c˜Y֭Gᡇ_)jt҅{YZuYx;mFhVK]\(1:To5_1d#N (6pGGC?.=ZXqRwYs2^mg ,Kq_YJdSIa.>Sf6ShY})iX_ |>~:=_~n#wb{5Wa;X Ld)eǐzx$܉%KST` .IوUehu(#/< nRa%0q6ɓ**il <4tdv?{~Ch[S4>QHZۚ62l_!7W*: WbP~RmDq޷ם8?~dߩ]`^YZ łĈ"M6{. {z$&xIBgyOI"$A1J0)r7_A%*YƄ˂kN|9 A̢?o+n:}]>l(uuuln YW 2Bc){ڏuϋAikQ{i#8r- 9J7p,Ft#Vؗj~Ahj?>4^]IVSG!UM3G-QsSLI |-+Lq> G[$B?=PN=TN=TV^͜9sYd ֭{#p7r}qWsl2f̘4M֯_4MV~0~;rXmnhVp` ʱ6 3/-вukiu y[. R=ѮF<.  |YXx{CJM¹A,la K:T],k_]0rq8g 3*}>}+sɓ's4!Qjv}n; ?n5p*C0|X^kf:P 4[) 5[Wx-S~fz)BKAEc(s)_mbw:@ riL$p~qʳ޾ۄhHQ+m/xsȑkA-vf/63rynGZ*5´Zdh`-XDŘ@x΀+rG]/V>ж agMH!޹Xlጛ{ 0Mv"oVٞ2r>b4{8_վSd7iL_c̘1<#l\phYo%rQe~^-qƕ%z˗CbP)9gl =XCsPLPh&XG7|x픰b5]B6L-ٮ,%(Kh3td$C K$VV@5l@b6Q҉iEGn!Dmm-*irW3h MmF(⮻̩<8p st+}4iH1 IDATzh@u!2u`%daEc|;)dW)G:/@14SnWYA¢A#M!یVxpH|DJ7^dZ>yǥYuR 鈟\T2.8-^ש`3q/:jkkijj޼wjloZUƎ}eX_8NJ!6p7[a8ʻ^?8d` *"sYPXpmffY{߫3'%l5c*^ F, 9̒`4Dk-a(BNwr pdDhc$b '.1su ށGF'f7(۠E0W.[k[X1\?v]F D KwJ+B#ce  p(E03T%0,%"M e4й A)l'ț yɏE% .EJW|n>r< ;Y؟' ZY8㸧ypwSL;E :>t $:97CHJ IF~HK.5hDEh3A9mǒD><:%lՂMtRӰ$1{l,/27p| ]tN:LdٲeyI2t۶] tI?APnsYNoմϱktA~.R!e&#ؠcɋD.JLHp@x%R $ȒO(96V>D,~B \'xW$/Gn5Na$@6Oޯ`PvDJIv` Xw]jyQ__G믿{챫OgǎXf\[ q /GWA]vI\qokpWtv>Xbah.=T 9/0{EHQ Yg0`kpYOIw oZLG :+H2+..\޴ʭ"F4!҄0r=x;'&E) ⮑0- %LH1QoO>6(+MfielZ&|LHpJE@!hfZ2h$>r49a!AY7wqJ[ V˴@ o9ou(#L +0[_MKz]I͠KB n$m``M|"5.,o*Pe2;+Gג M'6;wLlBG!Ebz<*<*-a6aV4G aF%0ges1,IF0u$0%:(m&; ^ugR^^Ό38ӝm%Kwp5i$rSLV`i>ԃ䔻x X(z;Qp-h՚r8nGS`Qf'o^YJqm|q p1RQA3_ҟ$QID3,0_ڗm4-)C'%klj[D;%tUaSGrbE/etS”DɸжYWCFY/Q`Z>Di z:U&xfjG(q;/kKhD0#!fA4Q%òf)n AAl@quSO?L7GWgJe3mPL; :qbN/8abt Hw.:6 mÔe2(E)!*:]*AL2%&FO&"iMqnw^2aV^UW]Eii)'|2$QRRBMM K.^i㽵=윮iK^& w|Jd, |v-$҄hة^>Geg/|TQ4J ex~ۃjizR!??Gmp8¥:C P/$@ŴSM#Et},l )g#Ya F ~5F?°AF'f )itS%YRf1|d\6|zF.kri^#Vg Kia2ꚱ*2B8&D 5 =Q"@w!'E^ae`#R^JK% E.gID${#< ߽dǎv,Qªxg# 0={~ӫ9зk#J`AX+ p0<'ckwV3@kQ-.ð l%~ v;[RAn+Am*"GADm9`(<%J69w?ۤsA7%׈OE6mp$⼧":U9BFV R'ZJh#h b`cQiUˈj݀ViHPZ4CF]UXEMb %D>Ѹ.Gk^d Vr:rt`cEx[2)XH elkHP^Ჭ1Gk EAT,&@Ʊ[Hgu^i>ʟ*;0D+hر6sj!jS$X.WizF5Uk,T^A p"E=&yZClj:O _"N A'![,HNŜ`X2DA8=f҆a[*JKLjv^{"-+y [Ů B=T$aᧉJbĭKaZBf]ͤ/L<0x[*&xKa@0ӫ(fN% eTZÌkW,3e.~mNiF.]xxy饗rs1̘1.]sq}ѿ~__^z1yd.]ӷ%uufѫHW'!;McX{? BɳM`WZLxY㒄xجUFW"$>h,~iû0HOJmPU|>c=xev8v \űz .XCg|N~4U)ܲa* 1(*zq``ow"óˀepMP30Ԅw-1 /KUOý~R*>g7t VIrE$6&BiT2)iOZrM7 "Ș;ǵj-}C>!:{#! Џ(NzI$@<_=uT[)d y4;IF0- >iCTBL]§l_90@~*'&G|f"& 3OL=őGJj),Qp*a5 #hW~dsn" 6E !ch`* yT*ig3#%f3ӌD-'k(zƾٓ[z~IeYIY$Yo5w!aR؀=kr+Ѕjr4Bb̑@Qe&nq'O3駟F$Fի۷/&LϦu9l0?0k,~i~q뭷SWWGϞ=$Ef2d4MV/|>F*/Xޅe`";BcNdED V$(\x{VɱRh)v'4ҕzJiwՕչ{rT%$!Dј(ؘ`,fM291xX0|1,^`aF  M\]Uǭ[F{|gAOwMuS9=>*B&>VmB~"Ub@+L"(/EsY4MXw](* ^*Cn>pe!2#s6૟i#}Ǩ@UVjuJڊd #m;k'Q8jwx7'ﰁuU_9sOm<. (UJ5<4C2 r6BƕGC'rzWTd 0Ic5%LNT2ij\*}#kP鳍E/ʞ* 4ȑ!M- 73)G¬Mcfl"$F+e" @<%”|6 zU NU \JD*g_ހ .:'9l,"쏁2FQ'Mx% yFڠ # PF< E] F)zu&5@U4\p(##8g }M FeF'ͨ䷑CCP&`Ⱁ.62J=l50,&y5.t cV[eeɐPQ}lʤN HiB5(+09=lV$ Da'xbN;`zm|,_B߼#-϶`P Cf[-W^^  FKk- "j[O(;{DTZ(ys5XJ:x g\ͬ .޺73DOD\ ?x?m*ħ^e 0(P"W4ey%b>8ȐF򾤚ljcPUHv 0pɐf& F A+")$Qke{3J2F|  >rkZe”%O9>d۲P2yID!TR O<50Ly5ڙ+юdXO!Kq\% ,Uu[lLLUZ]|敌C)h`zFk]w)si|ɜ|vaG_~;r ;?ۂ۽TW\d0Hk٥B+(gAVPh*]e oϦPE ƨVJ*{=|t[/w|<|{{U2j Aaʄ)"K1iGYjzh~K0T5%1RA9_%Çfc=ojJ3YK le4xR(SԌF% SA(p| $gEǁ+7o:He!lLBrYpk8bYAR@4y# &O3 ʚAJA|xnjIK}`9E=ل&V& %.&=tOy_0qD/IRтu'aX"תS1 R$ \:_]IJ,}Q.VZ;t:y5/+śҐ@)| n$ANM26RT37S*U67j_)"Byk ԉVm_w}NO=gs~b4\5 xaN7V|̸.4]& K,T1NB )o/QGJK@?*%zZPRY^;>EX ',φ8gv+W@\jtm409=ɀ#"Hak7nvVEgS$GMZfNhaZ駏6a:4v0Ewe2l'NSC8 <-y5({ >n}R*@Q կeFk'(K48yd2z+K.'Afҥtuu1kE[4.W 16ͯO8y,8hHæ,ƐWPJ4bUGI/D{4 &pLЄ'GY @.q7] ֩p ۬E#J =W&L8h _ʫvj& *Iu` V.+q_{ ʝ5k_~9=-aGYw>( .a?ۂ.pUZ`2ATt"2me04 ^"-6!?M@u IsA$`@.ՆT{]+RqmRȵ35w02^#z_u@ FJaqE(E"<3Rއxg|K^P%?詖RMC0l;{t.)ldkFk8 [ipz?{)fl8$|dOFq('#K52V/V+UV%` TJzwS&q9"lqWWp ?9_ c +@Hm*n h.ap1R1=Ҟ#KGSyQQBV5V x :ݑu!C?rB:@&QQ$qZl,ӴFbP[ T)Z/%b+5rd(25+X&B'kk/fn XWq>̈́  #\]v]wݎ n >|{㥗^b˖-qw_⊠ZVRaɒ%<[4={6%>Jox>Ly睷Ln::uiWr,-@ӑA8toCl(;PtrKQS9Qz2So[UQSjPUj[*rG{:C?x뉻(?OB(& Z@~Z} ;m 'XkKI^sNl1?J4_U܇JS߫34:J5KXo@,Q >(?F6_PpYp`"(7=g&l92%AXj k!6mT@[yO$Wꌳ6< ~#ԓ%6ZYLA'@c J'haROO#FT\,Fj.܌A1A%7`>3]j?Ț`)SpEqxb~aVX^>z{ I >YjuQfS4;/y?5܋]&҃h9p7'ai#aJzDjNyV573=O |~*DSxL#JѯTjUɅjV_@ %'gQ$heh9t'~X`P__5\C,/w珯ru200E].B&[oC駟CN'> ^x.lW_X,#< 7^{Ųe˸ f\vez)Zّ#[zcu"`5F?Vg ^q䢝2UB'j(B:obKsX":L!%]w:!v<r/*QNʌua#L<(J<=dd餇Il ҽEzib1v9zM%}=]zFFp ]V&YRMWAC 8X.fpI%-2Xf95^4\X ;n`>:(CX>l$ ` M̑(N P8TS"$TD},ï{pȅsHe*Hkq>߭D L%C:i2xz^\l7|Pmm__VT kzuT9Hr~j?)]@ TQ| uXI!Ȳu]׹KX|97tvDC}}:7xc,Y²ex{c~իW}o~tA q 7p9P_Vҷ \u}x&kf[ؕU/r-Duo&2lklV^},p=pm"28 "z&Ȍ;_%#BZ*Ƌ){ ֏gڡ3epvTvJZOhI2%pCա=^~Wzf,M[xG걼v4C4RVA 7[~'k%O&=h8et3LD*:J(hV [JCK^) 0JdnM V>r 9VW8PkO{r>!A_$+E941lKITӑQPq|{wUr2.{ظu<` 5HDنE<1D#iz'ؔ4#ee5tmJ9{B'ũE4T 6}@d'  %EG 0];Og OqZd\8K)MDu",aAdC%B\KNB>J(])P Ê"\ ^=3B "K98bV՜ 2:܀ CE&Rnܟ<^ԽRMb%յJUZ9TX+dCIK*ј"dT(&[NoC;x+Looo^.rV^͹ ܹs͂ }{nJK2H!-$]`|yQ,غu+=ӦM'Ns=pc6_4̏zmjfJSM .pVB< !ħp~WI㐮2.5.NP^hK; J &*F-V N Bc$GJ!UU,,e3BPzM-N@&s a<`m s=Ig:-ٺs#4^x9Ih(0R(m)幗$T|j6RL~N *\Je^2C'=XTXŮHcV l,2ta]t0|Os$ V0ӟr!c>o*G} i2$!M 0E_!D7`ܜ +`. އÕÅ_o`Bk`.fϮ  jzb!L!jűCtd):n`5ul Ak.h&aT9O~:&~L+4` Z0#(r`#+|5)Ed- Nb9nrl,"lKSWi*Gj8E$RqQ$wsWyF%T4\ݢRG2vgIcՆf9xB \[Yn[:=glw O<u]9sx'9SYb8{߮Ǔki-T4aL+(F,oD vx?R~VNM֠e!~ (y!rU&; lpBPɩ,PթӨJR@AC .[R&U_2jVq"O']:#x'Ɲuqc1iҤS;*W?X ?xski3zWtRcwf6O=2:Y~=]w]vic' M^1csՠuht\,8'&Iq`2aW]Bd2&gԸ#{zFDdZ *IM%/{XE&ՍTGnF2)nL o7Cgsan;3ܿfÏ^:hr9hoxȇX }K1'ͥfR =WLמ?ZQe+ê™Op*KڙDݯeyA@+wuq Z,NnCp̩il$Ϯd4cze.ޞvc2?> }rPoY}DI:b$|zwt.%xl#n Fv>o&aYr{*o&V)S25F?@XҺ3B#n#FIZ BX% j@X<:}aG (EJZਉ[kL <,iPudPq#MхBC"!<l!4~Mgc,TU+p;voL1Mp|A.z->|!UW]Ŕ)ST*wln@$YQ\7Z'AȤiXkxJRFU5\3pX_ФkṘK17P FI(׮Qk.]fBة`Y+I4%8(O%PէRFMlQ22rXLDqT{>J%sRL:saV:ر'zw93={o4* IDAT}$)˟j/yߟԵ^ŋ1@cc# ER#kehhFYrm;G \IA1(#YD 6W#L#µ_695`pUee>-_Jg ?|Bpr1oSpqƦኋVv2&A/IEhn-$<V@ &^@XVֆ2k)3S=VS"!˥sMf'kڧb7c |ɣ֚)CM긄N  ѠU}-0R?(0]eيא acr,VZ/cH@O"ݦ#N=ANҳqPH裍 l!LUp 4H!Es6/UEj7Ttb$*ssýߢT+)PL',c3qk6etyDD)  gcЋM yJе*0ׁ|fΩ]Pt&ۑE"Q?nydI\P""k% !r Qeuȕ.ino *je8*Qűj~l(9j! nɢb9O*Oh܊ SUu@ 19ٛQ厙@㴭*]0^pI'i4q.Byn{ndO$p}06i21J#ԑ!A>u0I8cyY,0J_(,ߊV+ T:" E.H9YDQAL1 aB{17a%3&ЋS` ًZ^d>'C'F7Hm/#QOnOޘɓy}+'OR&ȒdT )I8#f=X (+Lr7S'F|W &9gPJbCp>*yDrbP-r00=]\6pe@"ؘ +)A;, ;M9ߗGQt%2 RP(u~!Ntf&x&mUʺ0E‰VBȨ`4݁-|jI5*ɠJ \Uӣ*1܌SӊS1qbz:AO\V[j.D!ЅW$km%:/^Z-ߟ3gV[Ǐ=-C 8ϾAsUŠ@̗q9)p0׵<ze'm^矫0ֈWjF=TPXA`.P^^qUh&[pi2D)R"Ȑ@0B_1x9L(AA$#{$1].5e& kgcQa?S58ٰaÎ;mgi,_|2珬믿k++49Yr%B~_0mڴgu 'i=иmu=[\N0W&ͱR=*U\c(={ia$S9,E R#%̴M.&a&,D"7_WOD#8!040 [i5f`ZN63 ,B8a$d5 ]&dnP50+`6:3˂t [*.[R9eܶ!=.&|C 9 @.Sԑ4R)D"f! c`إ0bsqU`TLU&e- VmP%㮀" \}T=D5 ! XC &+pl_C(BtB˄k_ؑ{Dqal"L=mAә lR7XI )`ӊv>o|ԣK}5MSu|ku1UcP)zQ&i@ǣ !cR. =t2QPK|M}:60 !”*H8@X.Ҭ N | !"x >>?4Mn6|I{6bm;꯬\z\}uQ,\˗ʶu]SO=GW_M*W^G?QٳgsYgqWcg{e_o \eIэ,aνk&{MS ӣSbfC_9]Q"H2plYlλ@}9pU#4I:;U+ME2>PmHEu?I`5Rs j z|~\ NY uZۅathX)0^wl'Ȩ&fRJdx4wPb9D)S=]b#kd=*1A6Lcɓ&L <~t{SG%D&\G/[Jy8'~ʬ77P9J}r> i`0-Q!\hqo!d{ϗ7 0H *O>^ s>?>q l0"bhbuq ͐x2 씆0YԤa4RmS&iCe%E? ֊#H*`KxN8\&cQPQqC8% Q Qrylv;][jHM(Ufڀ+ՊU.u* 0UWVWJɃA-"$zUHSM̅Th!-}Pre'k$=ъM).y%J]# ,љ.u@QAA=FI%I/j1i09xM$ WCP?um>\,,G)F'J H3F1ct@ l;ĵ"?x`[n U$ fۯl a5!*SN_W@$hedZ rX-#\=hƲeXlٸiԩSo˥^駟NRa=c;3N,Y|; ~m'J 给v2 lb"GNR4HҤ( }// $ q}z:\',=|l*}5,Lc#TF 5 %R 'v+ۚ& eH !2D+hT@Ӫjף;z,>G݌&:9#?FϊxXZUXN(AdUv0p|K{ =l ~+QJw*aY(;hǶ$F;y3,90 &;_w=h#gk]c>u>笽>k=yyyr :xcc$3?>غDCIh oG0UCjk ^f"Eu=] B+pArd>@9AOH"L/I$kb>Kkپ.>sbxbvm7-[ܹs|u][+\=Gm<qssٶ\o9m,esa+0L+I_n3LK$fhhs} 6Er$/{{ zVSxɟ)?uXx-8\O`qbNIHM/* %nULfRFcp ?m#-q#ǒ{;fXY\sȔ}&1A?l+// KXX6T+Խha BhY33Ha-ЂF젿E5b+ۓ;V-&G.zكU_c_r*7- ֒G !M"94\2HSF"w#0*އ1HD-挊J!H'k+`O7LjTsgtlnxŠ*h>h5Bj[_Z\p?YхlFq.!(E$|TIIUt򯬨g(ۤHbt|F4p]p$#c)Ayvs"/G~pS ËJP\%ddX0ZXcak=+ñ+ĭ{xPc`3LBZfΧwߙąhPFV r:ILa գ0fEȖ*=)ddN`#͢gjAPQSC@ 12G.M^'xHs׽ Ksnc6keS=Sth`xsuq7Ya=P:b4Xd^gtї9v\v::O˚7Ȩ5 FPVGa0iX(@Yvfz h8")uqQkPGub%@^}ωY46C8264&`k:S J5)53(G2Y!0_qkˊ71h1*rd4v 﫨 JfX%P(nx*5Yre ߛ%5y{vi Kljϗ|k ? $ +Ui*(xeLUq=5~5|8FKW$ Syi  zME3J"iJm8rݣCs2$=uSȀa8kTc T Y_őS@z$5<'PG N: / Q81.*%dBM胥2atN<}'~D>ÓO>7Yp[}&-QrTzY13F? J4Ȱp._\A>bG'&:qXmu8-BЀ; zZhV(gŗOacocU`H6q 0fC,fF翰>GcQyy.[g^ßEլ}\0h]:{uInXj<1xxCoKY$e"8clRk ƨl杳|9MltI6Y]KMa#~3PcG`*at 4XEfmW.7Q\FcOWX\w\bb"e acuo]QP\ЫXբ , O*-%ະ~f*؁5Le#){izz MQ<4aHi%UL! P#AݍBL,W=x":Pڼ9Ὠi{Ct|mɼHsUnGgoyQ'aa!<* GE3߸xF͔ qÜ0SEN\4 3$WII{ZYQ}9~*:4nƠ(x"[*ïik 9ph?@ |߃JlUݯ#gwç 1fc09hR&aƌ\s5 nGjz~|[;aEગLXOq0"hD&'S2̥ys:qxf As7<p\y^^3|:qܥ'xWk[j"&׮3aj(*c/@JpD~$P"Ͽge0ss D,a: i1&Np|XFRᛘI>e`<3[2㨍HT_7 %ðN5aNe2!0WCx2OAuz&/Gy0L%ӼX0nU5Xv tw>s?+{.Tp9x'/)Z| ]c$9Wmwx|,m1:͉2+Ǖ`p`{^#x#gjdxQ9A|F\C[5Zw"YSDh8ML,t0&TV'85|qSEc J:y 5 J [Uq9H`$r RXonF@V~)KhjlD%G!uL̛ ;ea@8TES\E3m x Tכ9{2oq233oC&“N/_K~܉'zޫ1$J6*b\ISiSCs\nDƎ 7[󌫂hi'ByAxǝ̳t8d)9F W =L2YJhD6bjb2vmsrNycWX5\W_6G[8.**N8A(yDf3߫/hk" 4e\C1Zbu7'm$ϲ' 8Fx?x'8 0 T`"l34 626"5q1&bݴDS&9,QvNh҂W(W~t|hI_;d-0h i)j2N|+qCaG5N5ñ45'K}uRx{0'>?\rII-8X\8{IVX?e% qM:.C0XÛQ~o=M2^;<;0HhZGJ<Ĝf+%Oo\/h|Dnc^'CRbA͌r; YI&k➢hMrP X c z$ &|zx≜x Vk ڷmP8}#:m=`3*ZYonh"~m@ Wh'lL,$'ßqצ'¬XK(yY}4\q1~,X)vcq?H]gT^su953 ζX\|N[1hgPLgq!ޏDA,*gJ V刺֖cM?MQ%IQ8t!I5Ov飓F{&3e2ôdRpdҟᮻd^:~3m~ OS"ዾE,!vmMz^c'c-6&>ϧ%ưf=5i'jmG@RX.  ̤;!?doxi"&pi(y)`acjć</t o?mpꗲ҅4Qm#qC_V3ws-v*T ݰ`lPx0O"N5LEU=D4S/tgQGk@_k:a]EÎ aa 7}E0ّk'( Ñp+0} mJP)%ia4"黊mC' &D$S!I*BE2,:yg}/Y`TsC˅B-[.R`sP $vMR|B7%oz$F5G''v îLǚ1Ao5u3A[a\oی(s*U[:c _%ְHD:q"xt[}MksA.ju2"'uMp۳G5\iC,1ܺ#|yUɌ618dtn`VuR d.s'ᄋɅqN;ԘZRT(06>%5а4\ץ:GáL>:9մ22F6GR(ehNq'lTBFIP B - Q"C-hޛ6SPgg5ixH&I)S2\(]/pukaI&Tmώ] ܣϬ%S.iNaR͜D7Ad\L,vSWaF^vb4_\00\w[ow3پ\T k8Jl ҵ:E Fۭd.iř4 TXNe@/JoK#,yg֪ۯ\w;QcLb\fpND?*)c휑V:=Cp ]I&mվ|vQG1cƌݍ}ŚoZx4}D> I0%=isA0LhFpZ{nBez;+,g&I% Mgmw˞%*kil<Lܵ(Y>Ƿ2aTZ̞;ʊ*Sr _p5S)Nܟnt0]|DsРꟷ0rQP)HBفǿI|125\굢EñkjaXGN%6fb0% 41t}l?U\ϵ6k? gĒW&v6{&IJ 9ƈD"ni:_{r}^wt:y^ +l4Л.J0~wUps&k; H r7Nif4l^5C,\mHMvBKVV#7oDkt0S'p1C YNPA Cɹ)b㪟.x.#eR&K_oI_G~˞ m ad֭If㶹^xSO zd(+:DhL$f&J{M:.Xo˱7kp7-QsS&TE%~@EO|&q}k6Y~et?$UD]_CC%٧/aåsދL&Cm 12&8 {*:L07AKaі$cSg"aJ'EG[?1SF `*D u/Q?/^̲e˘8qVm{.˖-ö7m&7q7` Uc]?+Y?JiI"ȥ=o,H5HM~HP" .xJ1RT)0«WY3e:"?O>dxi'ŸɝJ0&a~W&2_N`u %0MPBA嘤2&Ntb pɎcD卿Lp)`dңUZ&C Z[7'=In^pxnNFgU%AV-Չɱ8IHM `oЯSЋ8JC3t@P=l¶mμg1} !bB_f'5&`in)P'BT|&q6VdIU':[T  B8XO3Iq OE9ɹ*_;^r7_ ?^1\ fvZ1%d$ВUF^ %k(d$X\ zx`OEk%Fc9*aQ&X|k8aM CĤ8[u&a4ؾ5&9|4܏4=eo)pdl#rJBvUAS]Q73%hPC-R1`T$6ոI3{6Ƅ-HF`#$;hgr`|Z&aժU<\x[;[ܖ,Y^{ŋ/Ձ*-Wyѡ!3\e<@b,AJPe$`Լ(nL.>XhbP&E$ 1~vlsCBa<%2 F2J1 L`ȁUHC酞Sprԁ]DL:vL  8 IF}t(\rE Wdav f$ꘚCkj>j)uA[~<3h\u]i9+%meW-P :&>S'Nmb7j<ƺwK|哽u",,`* Lw7-S!$ɐMwɶvY~yW'a5m(gwCGnN=p,'kx}Vک ɲ.F(b H{拏M&10ԍ"&Bu`joH̜>xt}$::\Eۗ=@'` n|6Wn\%͡_k/O7B"XK} (-ah@ /GxXʲ;h̾z [>=8!bzyT7-B XfJ 3&ʸX4FYsݬ!](/݉bxAtY(b0gMc9_VԽ~Z.GG.T „'Z3Uk45c |ͫ""<4F:|3+Mee $pUA];gSȵQi//Hp5o<~iva|ͭݝh[&3/b+7UF $~[ (HH  z7k 3eK4q}%.fߢ8nF0@ô,̂uknG24?'Ur.(݌ץ ] c&C #7܅{̸| BaxC(ؓ)aϓt3GRfD=fM`L/m\T%cVQElP+>/+ED/z6n{ >C8`'7V6m[8LoNa0q9BCXe6F(imD!Cϫ]9I8>e]y.ĺ;oW'*q: 屇c(a,"LNZ`=v?WO`}mXs985FE@%MG+AkȲ5㻝*ؿ`UAՄJQ=4VtǴ> FI J4 4_?e#U2}ɽ.I>?aP0.@GdJ dC-口 :"=WU'&CQϱwFLd5S{nQxm5]R!P-G2rYFx7&E2>>A]l Hh5,9fڿv ?}&ǿn٩m̽p/'2/*I '&-:E0 z*Ӛⵧ $p]p!as1 ׯ&1e)8*C{`-iYjn5oױJ:-16|~!U㩑`jx1jatu;Πf%;Y"YzEfmBt## sØV/a姠 HTQ+ɲ&`<6\'޾ f~Nz BMwϒ̍d|$X3 4q3_ zj>rS nH$c#KSf7^xF\qX#̓dw[s^xFk [pht3QfVR>6Fu蓉5b*LNlJξ_5AH8[ IDATcx(ĩӳz{'gBn( tx _Wvw}lܸo}[[+ж\%4rяxb \ml,&l` 5pݽ,3u(X>(!/䃱y>SQ+*XE1JT8) Iy=HiQm_.ݰxU>lWZN^Li%- 3YOfETpѨKZLkr1=vXgrM QfND$BoAX_\dh).]TcMGI}0_^ګ/?,@-222Fz$b` }vm]1x@ܬp$hu G-<<}18.|_61r6[ז2J1/誠+1 LIIp0]<ĎW2Dl J!:q_#)2-F:hCam@GUU^~ݕ}>@ۢŘ w 2eB e9HPe3(E쎤>K*7%P9|" *8F3xߥy"}C ab4IJ?GEFrv 1jĩ(;uwj\JC&L~[^rldZHz5J"oU5TJ]TLJ|Ƶ߂ U[={??<>{4[RZ#4o^ %i*9Z]c|ST,y6!%6 \{w~!rx˂Lش }&`~WbPA&PS!*c><l~tG(x궬g::ؾd.3J'1>Jj_~K}dv(۵0y#hThF}tQqT$E%$2ꢛ^mT4VEP2uځV>`%q!F@ ]O{x4/C/[$[PO2 !(I #߄dxRYؿ&TfTLKZp,MGL(WPR {?ESFQȹ́ eae֬WLXBXeeÌ*ĩ3P<0%5Ŵ{ځH&yF߶΢G]xᅼ#CV]m;Q1?\Yu\\E,ALFGtq4I"S#M5nfT+K0SXbB v f/,+_ԉeT셋sqt,RT~m=VMmbL'ôi^Y50v( ŴSh*'0a8ۣR'⽎ʄJZKŲŕ= h2?@ PQ+Op%X]D_!(ESe`= f-x \W^GxMF5vmԨXԺMgTHN <71IPS'j2ӹV/ ~<P42CPH ,;1 J[ťއj12i60 tR<yi떠FͤSut#<Gʕ+6ml6K,ےlcpmO VIfEA̤ 9.G lLٱP^O |ɦDU|+Th8r2$u$}IZS"hbyXX*ؤ|>q%N# kƩS(R})N><#€EuVNdTUJ| O!=®7hPAFLuPk+CE#_re ߚ]W^1ӦVGwtPR8)u(*bs}t!ʼAR'0->3*2R褞NA9!}Ϗ~gם6m 'oon+$-=d]QEլ mF<} ɀJTHٳML4ld*1jD/^&^Ό\FMlbv,=P@Cūxm@\WQMjX-U⩚0aH ϷX%HV%s 0C,cp mo!l< 4(3Ä+b믁#`!_d(Qk*!isFv.Č9s -P*&Y5]9LLpK 6i)f(ctVJ,aX!0b38L>k-VMIPV 0R%vY@e3:lw6:  E]?U7F^xkY\d m'?>#۹Xd-WzR>T4ϟ;ьEυMP4L>nt"n Ҳc =* "WIAVP$U# GßheSz XL.e'E23Q2>VƋEXٶqF Ȳ.}(RQxiYY7O_!Z|utpwmg()jj݃NiW: ĪQ#N+Ct;lC/=tӋd2qݴw:}ϯO)YԵpfL90š>Qa+:`zMPX9j97,{bwe՟0@`S9I"#%C!+1?dt(wvׯvP!Io۱QAlEHl a1ɝ+?M}Hٸ 1 (*NS!h &٫:!I xFq`Lhi鳃 }A|dɜN LtFddY)\abR@dhIT7@YO>otwIb'ŧv&AksdBCmSȗ)tݦ^*еMZ bAX'>;|n2.{u(q;x֬.̉Ko?)21I7[HP JV6 2" 8#ʞTɅr u Y.gꤻM y9̛{| y|=?Z{*Pq`~syqJpu)n:W#"suW399y˩T*\qr!r-r!{׾5֭[`K. /ӟ4Gy$w\p[lv_4 O>M7E]>Å^;Q `C"FVAV=ہF#]eFpbů 6:z rjM~==NbgSx-DRK P#C$CKC* [ QXNHnIVue8c% ڷ&MX)=跨+(b{[=Ę!W2yhRHȕkhS>d{`j@ϐk-Gx`6_%QgPNqX~\za]U O}ov)Gmҭ.)@IW-HYKUϲ|E/9I]}<2Nz7G=(eԆf9Er!˄>H-a,?H"MRBX616ܺm`쁭Oa4shCtaf0>_ce(I/?@;X7"%$3!21b[DI"!<)zwT܂c躃j[h.nz[xmV#ITE *$B-ѧp 5؛pUdh&]9u+ + "c)E6j󢺅1钥F?SXmDFO\)VPGx: X->:Y͠ Ugѥ)f뿰,+j+WdӦMv7dpuUW100;#d\zW6l{7==EN?tEQ`ʕض\G?Qv}GΉ'E]ʕ+Ig&okx[nv \uM"/zҞi"IE.3ddhˤK+?ns  ) "Hh(M$FEF%sH]ijdBH~:tP JD o,Jo +aHAfr4/՛能N+{,!0MEd5"d?:XiWUSC| 6D=bLj [v運?49[-\fc:5J&7{ jD'֘koe@dRFE2F/v3XSa)s7LV ҔryĈq ?X۞6M8md_.% 301m彻+xGҤ.1ͷ}$vT:d6<_e̝KMkAU; 4ѓ]C3t+&jR83(=$rH$"$CTx<7 !h" };h OAb4JRf?n?e@Y e}phmRh҂v]6n.~J:8 u/G7a)V1gi6S4\ eΣE&)|D٣͏QX%Mq`8S_Dҋ}VP\_O(:FFt tjMb[,uYoIC߀ VX ܻh6T_jxxk2<ƷTUVj*.2.΁+ gJ@h eų%HLQܪA\ݣLCy2&Lh&K]Xp{ѳRxJ#6 B6.!%شЏhJ, kF; Hqz2\݋TBFKı"K 'G96(WEJ3nQi;2Ŝd[l1GږF[OGJFlC9p ]"O$$L/j)s+~ti$6ibm-cA_dBR$9ky#g 3@H025:6S>Ⱥ_o]` /cEU+bcc/3*wl9SyOෞ ^4H+A&h`A %dٸ2 TZyBFmP3L{=$НJ EdVd+y(k,DhM&D|͒izl? 7Bv t&{- AU u@(ǔ!Dl?)i"TV*cL4 %p+ ..ǔ#0Xұ :6铥t-OBŕ%O]uI:~GI*-MK易|o*$jE,`|@!ٸW܎" yMe6g<ch66mvQ6Cf & E~'M5+ _o3<ÞʣI '2CڣVHBi.eE$ٴTkbqhZS۞{wU퇯!~;* <~7yXf͋`=}hh-tWxG 5N+%C Vk43׶"rd ,)O}Un " O)iúKG8詯 PtTu] mqM"ԊSCmd$0Kx޹HLOYFG DSӿWm0_I%ml1L8'Ut4~BqM [Ÿ=|_ZlN  > {@i\Mi2g 5x,?7Vɗ IDATxZz(E2oa?~vNs7n?,zMtu#h;묳hZ|3 mٲO|\~ {,d2׊&<#;s=+rWZ(%!$@=7<D8,g- |z;ǽ: k ʉCI&M-Z3$` IfIj"Q{TkPf]T.M" JZI-7HXe Fv~ @& ȱ7蒦0y=ڃ&EGe^|FȺ5 &e7q W|xpa6l-~|>I:`zMlb1撧~\cAeCI y]LtS27ISn^Ies/ya1dblqTj\Tl0!I*U!5l~`m@21# 4<FyUlt$Yij,[O&6iPMOҶ$\rr?jA^"էX𒜤$ \%h!9ij!@^0}̌|\I&)$|"Q=%xT,j 7O#Bz2hgH$Tra 4i>kjdYY<6S`ܞwA]܂FKWR1yr[Kf$VJ" ؆B9 Ԧg/@y$Iݡ8SGS-&KxJ=l?]b> .\f!ˆ(%7<̙|,Ut\.I. OQQ?'?-?g9s=vN2Wg~UW]^{Ee8 k/N=Wko}[YhK}~~pSSɠX ȉ?f;AN2( &3iK``Dj0:|cWd~=w>c"c1w%bdxN+yN"E-\0W)Z84IQ&$H%+%0oV)S9D.NNc OihRVf׺.̘&l$Jd49a.@ ͛f(hRx|@feZ譨S&DEa!^CfM&Sj$61^W /9Obhb2"z 3:ä'8+?jd-@kBxq֖{*j.DY'Z($HfkQ!G:xzƀ 1֞K,T[ah)3[Z/ݙ<%*"'cYڂ "TJVӥ\'Mvfw|5S2ӊX?R0! sc>巠ҳ`޾)8N$#F4ؔIy<9Rlў`361.iM"̫DdͰ q}c}(m^J-u2c"7]3sOҷa}ʪt 'QpX-QkY&\_uP>p jS௰_gmzE5`JF(.Je Fk*JoۋUşp 8n\r W~UhO~ޯRyc]|\r%\z|?[nᮻ\.zOӡRNu^:vD"1kߙwߗC*ft?W>I@)p%&i'FFLQEL82NAO:XpR _ @(|(w8~*71!+%E|`C6Yj40COG}="LdOz'q8ꫯꫯc V>(_8ӬX%WtGqwy'===^?+9׿zwn\\.v3nj>QN hn"ĭ4\c&~(1#yUIP#tF<-Dt(XBKB?\pG ܀(О}qOzeO>VN#aJ"^:n 3%e \"%H)dBZ$i@Vv!18nwg*. @QG=GoٝCW8J.A&؛yer`[.(ySuE -Q 7´"Dvp @ǯkS,Q]s3O0inMz4kH(x<кt+xRxO>EGTYq}D,a܊B2[SNl`|xiP\0. `&B\diY61LLQ)QO%1}C>EzΘ(zr1)!gGq?zxI|~d߸7;wOH;0?߭oi!m5  W#Sz|tRmF[%h3YldSQ(~ӳ疯\l/n,ES3.@>ozAKEfejLHYT,D369: B3顲 MQx q侯V!ӟIۍ7ވ(^y1EQp{狷?l6׾5.r̙ç?Yه/8:|r֮]'7͝m'MDE(qB}JG0! 2$$-21԰44CRcIF$يq8=0]\/C-r".—l0"ȷJdF vCI0Ǔ̘4.QNtH7g6`W_;pTi[(R5ڼq,ֱ>&dMRld/)$Oob'Zx(f_XT.Y<_?HשS(S EL0؅&XmsB$].}L3 ^$Y<( =]hpڗQAqXlQ!H׉dQJOQUrx䨢㐠M>#%NjҪeqP|WxFDJH "*o|e];i %cx}̊(?# dмQ]R.- R#kkM:z_e@Ӏ-JdzA%3M6Q죕BGSmz3$  ^ӆoPD( _99;},~rfi 12Y ^H$%>1Z:{o!^K795xg!LJE#yꔞ`S"B#f֧F,!m`EA2S1lӥHME+5tZwz/ccճG1YvM7(_^|MR/ ?|g}6g}Nsff&{}__839cҗDTiH-ccC 7L 5`) @e&&/'A9!g= j$* LDžߒl3e8O _QvDC#EqGz6]ƠN减ULV:n(ZRg ;n|ey9q$h<63eHN#0Յ+}W JiAſF2]xah<~5B)!yT[__ nfm{+b> N0$1EEL V, MH;A!SZ,9Q ?JlDqt3\GqQ=2%Ry@7< vG ](t̔TAED)[L-@,6m<Ȑv\+ێX˓uPْ7~3'BIF`Cqh ٔg τNiLчC:n-24jFWb}\R\|w-HMk0Om-/Q%xd<`/QçbCiayd9Mfᥱ萣@Z+N !|,PggE ,pXש}J?[D C#YfV|fD~,Ʊ5\Oc@1|)bfAXZFb;:۪CxyL*bFJ ~Wc_8n}7"}O~Vry{8D _F?{;dz ˞_H:0D C`i`(#Jɸe@)$-Itšh (fX6)t{P6j&jP[(X< IDAT֍8X9@ #FQ^dQN90ʳ%I0 RD*An`cFCO-QK!T0d_$Od,EL0X.chJ#t(3D>( I"S^nkķN~϶<Μ'ogX?!4svϳsolci}c! ' !'\'i)^%C*IZ4m?AZmr+aJhctZ$/婰&vk&Eqt !KeQܙa]=AJrУ[l@T& jaPݤpZ盇2Clp%&[+^ MJT?{呋IaVF8K+p}? MW.i4) EnH`$\_ 0N:^I%[a073q'+kvul|xn8Wû♳Lrd7Zum}/|]:} Gcζ$ lHlHٌ6X$lcizgkPyS$5ٜKmv-4bfF"4\4d]@?B8$IE]Xn] *c.ՠQtalw8oM$Ol6˂ h4 v/_C>gdDJM|NƟnVN8&&&^hku]w0( zy%b;Ӟʡ5FIC#2Qp+VjIԽj"pc*_9n: fqݷ|)k{诙?qݭi;?:] 5]b$i1qTͧz$ 1HG'dL\HTb#&zn{K?yuYFa dYڤsMZ@P?[1PuIz׷h<^WA ,MqISy:T ulawHϬ9#[9}O[Ou}Wd&6N7D,h:R0V460isԒINB(ːmzpIr~ VVĤKStu҇EЃi {h۰脟?]Z.NKYN7`<4(q`?-9yx_sh;ރ7rT4XW\ի򊚦i{。{l}]qY/ZD$6?Mv΍v6@3es13w,4 NxMȿ}?\~1j6qF|G?tUο2STb61ao`ѡtD,]$Y(dQM52Tɣ!D]Lᯅ驍hf3 "  ]$/L R;g&po+ 0||_=Rʅ Sb0 3L%hijV ,G$Z!AiΩ"&jFg JMQ]"80 VDtC'cuǓlM$i/2вQG:KE*DSRPNLJN1I4eRE >J;E?CL`dzMw3أ%5AD@ -EzōXUcuc6QwٶTHG߉v6H HylYۢM*o 5)2$4tP+ C7IL`",- RҌFRSZ"tld>A =x$O.EFm&e?;_C_ kc9f)pL$HR;աW=Cri>CUUҩWfP71]WaۧXn=,ep`_ %;|{r#NՇuy.x]IK \}U0 !)P2 !\Rt(jJJKb,|~#t)y*F$3heX0L&~e/*M|rT)Pڞ@SV xJsMqբ\j4;HI"uOR&b} /ILɆ$$8lq/"7zldj4 02br=D+$u,Nf5HahjSkf<b Su2!`j'I i &2Gr^Ӯe/:N}OoxRK$ÚkADR.bT"+C,V AIlK#Km1h;Te3+pELi'.Z~挚^zˤ;mmc S#BQIYNZhn. o~rP8ޕ |ZA (WiDY:.@3e922M )#x6Y~Gkh>ƱeY/_g?W^y%O=x<;W+q|_O-HH >|3225\# 9^z?7ܼjN;$2[=ur-oA jI/-Z).S43C'MJ-HANgJF f.eZ=E J%H$LO NJ[fBmE 'q BG396nͱq\k٦u2<&hmdK&iLYFzeC`ŁWMH;u@{l=? 3D v@8018A 3>fx_E\͢pZ:Mܭ&RF!GjtF+ACZ&Yb~|s8q_8vrSY uIw[?2<*LaXUb?ĸuPkm/2iP'$}( hMUOU1yR =F*DP5h%K E2x'AtA]`)pXPf!C5_bet5tܰNS;m;#h`֬Yg?Ya&x +V%D۶m{믿~>kjvyqC:άm#߻[G>gy&7?Cd gZ}pK ^BQEGX B6\ #(:e L%090qJ{~X^O7;1"Ƥ4HyYb*92F`i,X"ݗwUh[3pFd!^X+ b qWJ ?h9c IfJ8&A.n AɇGAUcǬ>g+8g#k۬4TQ2NsiL(Ѭ 1ױ`"6v*AgIU!*INF5K" 7{IizcSeEUxƕsyssM|Hd Ϥ˜_[}(sصPcBdx}҇4iӓPrle,`1b)OUb u$oG -4>6`2@<̘E1kcPE.5畎i{-ˊɌ_YIPg飰khaF _,42&6J,…{ofGYj9k޻o$!M, DQ$dDaaV!ʮ adIٷZSU$A o:Ww:yN~Q_휫]5n/G?7 N;7U{[+8䓙7o{vpv(/pI'q 'pZ_WuY۴\xtMvm|ӟw=+IPlH/ h!F#]1>lʤ`աc鐈)~c%dFjd%K JF5_Q@T8qFhdZLap \F]VSi"!n7ڜݺ:1n\2iih"Rwݭ[Pbĉ\r%\r%u6o @gg'\.n: iUW^᪫sݦ.]UW]rꩧn~L<2P>٠[ORJE!ZTRspUԎ5b)k'afX"I"15n4뤑LBۢnHŊsaa2)IG@OPKt(|GG<ǯN2~h٠\Oa|*VS$B೗20Cm1ȷ&&$*-0)SRɑRx16wW|?ü3 U2q lh敶=))2HV.H4y4ضK4d3C _P^f'9^F3D+yqj@Wy2` aZ.:VtrBGU 3MM 5xaL$vYnVZb%jhhx[q!={6|c=hnn{cѤҔ崒QQm&EMj759KEMS odLHu4AyB = <O݌Q1x2d6)4E_= T,MXY $%1WR,)-ECP$rHN%M֗e$"(RQ++J4@"~15dd"jNQذO:+tֆ$ xIl|ثxл_8h CѢw|+y9 *ޠ: kg&)* Îz8!,W1p((BRylkS| XU5 u$<nϜZ!nxJP>L` @49vabn [p\[g}~,^ӧlwy<p;{8;9c9ӶiN.b.B>OsUWaoU5i${* U:ZD+OϊC[EOa~Ϫ2]4V-T4ERJj?7 )431M9 L`784ĊvB>iX8jx@/^P a3jBMʅ$ j' D˃Q;|R*4!ˍ2͑ 3OEB6f|+mf%&ko?pc%Q l^o5 \nhf3Șlv:6 "-܋S7 ]@2i)Ƴwo0k*⟍`@/# ;H< ~Yw%y/ H\8TV2 |`_W [3)Τ;gh*v:%I`L4VIH`v 4 Aɻ~4(pQݳi21DZldl E[=uړTB2/Oއ"lC?Gh @>ͭ>'۫GҸ{Jo[P[?2[|7DGG^x!&LC}'޾]s9z|g>_]նKH.')? ox7aWir`h)brEQ Uסxv* QkGʞԳ 7IM̑mlǠa4IP D%9!$G9Vg%P2 2)%Ba`'-xRx$~z2yTfNʡCNdtD[7+ʊ5iDktcd,l)ҀhP 5:)LcGIt3M &JsY%ߛ9m׹Eē&_u&)7nF8߅&2w(40bu $MMIVG3,Z Ϥ'9VV@\qha&r($Udb$2ZZ%t!zdv A&JQSO5T$rq/-$yX@P#$tdkH 'J^b#KO`Y0)]_CIf>p?UH2tzNtI/@1mMgIyR#mܺ Oܬ7.q)j 'f&vNP DNKL3m:\ɦRp9⬽MLϯ |_&MZJ:'+ۧ V,%B(-PlV#rv Ĩ1+k"A{Y%%SOi_)B{$(,a!3 IDAT; E͝t.ֺX6n}QB $';ϴX  ˡ¾5˄Oԙ I4 I|3x1g~AL='1g$U2QQd]okf(DRf%}}$G3`g<%?K)%״, ,"|T@K42?2{y d(ҠD( 2 Vw1vя5r"zXi &z|FpD>0@H(X;iZ$ }=fmMR5F-ٳs=w0v8կrag}馛3fvXm]8h(Ԕ d 44]tnbHbGrqhGۛDЌVrCIP7(2dq 'a)ޗqhގC.xj cbX$A0$>$K FvFenVJIJM>]IEl[}W`φPݨ_b.C8!()*Œ]aTM$j/R)mT_GF`|Męvڎܗ856cӟ} 5Mf%;|˘z/Z #O{T*C\R^ /|L­׀:D9* 4 L oĵJUTi!G#R89$!6=%`,$ q*[0Vqnp` t^P ~2!Li`|{\ENc}nwWlI.i6a= ަlӱoG+]bp%7= E!|_|1M$*'"+W7\)?J ܰDNFO ()LCŨU-\'ePShF'*)@F@Ih֕dxߒpSTT2%O< h3#gX(# K~VhB Q-ߓeo%cdN/ٞpm@ Y^b>JP Kj_9R6Ki}:=btw\B02g8+#[k m߇V^!j~h&vO|Use8wdL-A? dDWLY? *фZ&*qEQ?iiM!4~"/~$s%vpCqWsAsb\ylذG}tVp%iMWnjlR1gb_sQ&R#N#yĺ&C%4L:*UsT I dZFHQn 4z&91iJ DY'[lq}(a-a34'n)DgqJM [[&6;Q$R%N#*$F3lW ,QJA XHJhѲtR2k <^×T%4-w*" qF.,Xy89;w.fj͒%Kvyo\.CvwwiwD^7F@ܸ)_T%/W dDAeR9h$GRJ(Ӷt%T\URS~k B={)Sx: ,|U6fƴM\:6XWA[˝֔tйhY x-#j(lbjnɘ<I)hz?b" D &sQ@`F0k%R@KKɇF"QŶ  bv304;t) %*`p6UTN.do(zi$O* H}t_3yYεd/>!j1祷eM̰ yMgIj$cA y.UmOf _}f:)ҀXH'`(ricfyR2[^LuY(ip$cNۑџ_p-%N"&?Z7(&zwUvp[ջc---uYuY,_ pBn&N)e]6ď~#,Yqi#aY(yF$9X" eURN1XhcJ͋a$kЖ/a꒞9a ;z$~7+|[((2i˔[SQ`E*-[/qc`ZQRQQ%E)e!m'NI%ЍdĸZ]ت^w2y`dj Z%NоzD qCuǩR?:SlTLj!ץLZgM2]aW[ؙV'd9 x68EeE]s(>.! *!ؠ!{P2ӔSql!Z-6wJ9P4fYOP!o/I dpt G#t,0:駝#e?HLj_iV m $gh$x=QLRfkcp/bx?_J_4_(4e+S4,R/A5eĞf h \DKe?Ъ2H<8Jbq L5TR R >-5i#ē5̘@Åf=T/kؚzW~XIOIQYwTs$kŔ@ jV}6xCdjy}\-WJRzMGν  Gb {fC8E+ٓ,ԉ3Hb$(?F<B  fA6Z:0erޢY?YRf,+*98%/~ 2GuTH(J\qL><#|[; Je6 ;<̙G>lJ͛_g}nYbWIb1vh]y3py/v}˂wH\:TQ&~:k@,M3  3{)ʈPGl]LjZ5Z%Z$tw(OImԜcFF|}=ok0A'ߒklŢ9@h}!yk8)¡(J2P2 @쐔p-%8L ]kj -{BՃTFt@KxYQ!SsMݠZJ1bcLW`RE&S0f^ |*(jL#q dp`vdF8GXۛϪl*?f%K%YD8H^|˿<InJ~.AM4ar4US CXE?"L0$-%$w#KiQzJD얃iUh\EK rLJYl5Y=oW?>я2}tJ:(4֭ьɓ'sqq/~PMkwWw]8:_|1w{6_>{ncɒ%$ɀwuGov[f?xn=l6ԩSwiqFf͚?h{b.I)nHr,*i 0uLbYɞӎ 4L^~}ڟn & m场꧃"s-iޔLt?L8fN 6ل9%h9I&}AT2^o" _!8pȎ4*Scd6(C(ЀlBB"b%.s›}6;0wwwL&xej#P=Em*R"yJgcpE) `ryX#ח3k) D沕n@ U9f^%:4%CQ1gxfM%;HAtq۶ŘΑ7tr(9?-SrRA:Jȋ*G) _PIR"ߐ"8y yBڣq(!e oZu /a- ǎ)0e.eCl'?R W੮*5z ӡ2>2H<$(['V 6a LJN"$K(ʮ:"!i?Jv,n "q%0Yn'\:&ѹJS$IaZ(av4" j4P EYCʶbU9(reF3Nb `eSX?>&R \̨}#;t{ %b.$-*JmYNfY-[!Du^~eИ1cW^q_*se*vKpuu!p$ ;]7{gf„xkPJ&3+xʋJ2XddhhA0L3YlWꯛ9C(K%@KfT# Mb0>l:w kHOGK/[?ފW T 09Ͼ򪍜(SF0c]N/4%\BbGֵ @HCHkK1SٗЙz]Y6C1TdPߴ ̄C%ODJH>]eޓY˯%}i`U"2RRVgBK/=b/\~4i SJfD]`PgQNqlH98)A]g%Ҥ)UXdR4wJY<$׈p Bv ڤY M͊,'RXTZ8N5au 3|񚳵KCe>R0e/[Kf) mwXn!C1i$~߰^{p\~7r-244%\ӡzBt#A/ި Z/ǧJ$RTHSTXRb:G~uO}{&.J^(yC'RFۋL ;hK̆*yR!茚* |ƩĠHgN?,|g}yһ˄dwQbuxU2 $aATNtZ2[Ͱ= M1R/^u>FŰj8咰jčƯ8G} H&ikF*ܘhD: } P A jėz/./ϣ_DoHkZ{ޱmld,m R/qi.i6* }ees^[bc A&A4%byƕ NX;l`Yi U:)m:)hADC ~Ĵ7 ЮMJ(Te74$|}Ed BYf$,jS`Ayؙ!R xxFWVyK++9쳷fbƍ@K(-6ڒ H!h֮]C=U{^|E=M6100ܩj]w]wŴi88S;v]o{bʂB pgpEN8ŋb fϞ͚5kXhsVO?t.\gfҥ,Yٳg>?pN.[q'`69cr4>9) 9sv?/,̒:_|{f?h#+Ox2b#5cr㖒4i1U90MtCz5(1H.'(ģaO1lb oБ'.JI } fEA/בal(/ĖElk,6.5l]'#Lxl%г ,^מm>ẃg5plX/oxwש]65K^Uf_@m?w{'D|t/z5<4'Wl`Wxۨ^Fg. zYkϭax×/ˍW0> ߪ5 X0aE,^'uK}+OSV9.K^a[|N:U767sݜyaQk*<+6jJ;a 6w\7.*9s K`׳Jw rObXvxx-lX<5Y6{TWgpӬ8b%/ =g~ry6>,} /-⯰o;1X5; -z>^})l^/] |V_{^\,^+/0yv -Zf-OJ+z[Op .+{.%ϞykPuzcƌ駟f_Vfw9O?Ӝp[=<*.G,I@2i7KX &0gpʄdRȭϢE3f r ~:ӦM{mm- }Y>`y:?+\c٦nnnCSXv-/SNj7#`u][F^n;>S'Ivh"3\"nhai/"\d0iSз9T{ ^2mi3u^N89Ș6ò*kx@g^söxub'*cò\P6$K N[ҭ'0) O+;dwPh,0F&BP%{mDM$P@JȘlh0|,%=*GD &2FJ; qP!I" 'A30Xx) RLXݧ4AY}|1}>Yf7`աbb,ܴKSMtL&? V'6xZXJ頟8OFok8586`DzGY *^'Ґ"Gˁ2G ET)YMe+4t4iJ#U)B®"aiW=xQT@u'ZY%j%|[He Ϯ/)>sczhӳYpoQGo0 \ץSbV;S>믿n.Ǝܹs?[_ɓO>9us뭷K/pGn|fܸq$f{||ɻ,Z|9c۴̙3ߴCr8ϫ?m m6+7+Q*yr ;\z1_P1Lv>&7<1p1 B3i! 'oKUԁPRPvxۍE/bm޾ O8cCuoEw=^dNrD. j#Y&ZEpUxwE-@PޗI*AH) J[zFI|B^&&tt&m@_2 96cag"m ɰH!|U$I|:6Lh ,K68뤠ڽ>vNu[&k4^̤L U әH6:جc2HSK#9Z!K3CP!4q5beqib\=KHAOO0)fp7E8P`Ɋ2`([j.Zr\[JB0?3ޮB)Slw9ssٮu^qrl2nVn$R|~C|8cpgk/<4G^2F\MF0{qOpNG,Ԭ.`(I6P ~\LDOYMbUѐʤ)bg,tT :G3trҘ G7!5f'&z> ru4N`V 4Pdf"kGE=tʧs Tu}?_0'u3 ޘSY=-5- 1wSL4i;ڲev+Pu]5{Ƿ78\r ]W_}uOV%[~: jPeQ?c^ÈN[EL ḯ_@L)/7|-R""MTPeFJ.xQ>n*k7rJ}΅/%(Y%zS5ft[M.XџR>f,Fw4YPcP oU2Z)FrDIHQw54ˋv1 &8Yߦxi)0^?GR /0vüEjP1tO n^G~P+dJ5?Z&S&E)bR%Aac?qg!oD5d(.J<-dISD t@FD`o#%D'~&!< KCAQ`>^4?G{;NTTbKtaa @(GKїUtxew[lσn ン=6.\bڴi/ٮuLB<^c֬Y]4\6 `<-z4 ՄP3M< 9A.!NJ«y{:9k"-{HS VrCiYC T ,@إ$:@ L)[hJKXib25<^0m)P%)IPb-B8GԃG.觀5ѨnY@,1u.9DKd%YT{+c`yG,V';h9ݗ?.›;8v jۤ'Rjry%usj+:=BF$"cUhSVP~E`'tv]]ub@i=AJkŋaZŭO)(@]Q.ERٵe]W)(cLpR~| E!m% fe{ly 9caN6vXޖ7T0s;c؛hۣX,ǹ;wPv8km ۶>}:-c\I:Z$MU2"1iq=L^_%K[*K_X2_І~.H vh@L*.д*& +}@eD/K^c5S}Zρ'ZRQT\<.pUD\4D %ق*DCDCivBSd =<#e| gdydB||ܝv0+lxJ:Y!V$ n*%ϱo( t%QaZtCA$- ԩ1uLqŒtgJA))1qvoL:"C$| 8f h!Kj*X %q2uLg%)AL2(0D H0\+fՃ\wr"Y#aw I=Ay&>"ӗd%ڿtPEe]b԰`0@Chq4H<0؛1FtC}Q돿?wv(D>2M I7m#Y\aF F_ 0`JQQ* To067Ԟ{QnT̲K"+6YĤ6TplM0GOP,j4. Im#7o}}s?0 =\.\ܹsO~o}"͉\tIx; ò,:蠭ѽq.rOsꩧ/c6j+2z|KZUȖ\r Kt3 Q4 &cQRv D)AI:pYqL=]b x41D*%&RS??&Vvˣu<{)YGy ԮK 8T-rNjrgUbk $SP*qb^E. $^WU)KőL>FR>3fdm f:$[JU`.k"Jn :+,<ƶ<0M)Lq{P*:(N;4ϟqQG1uTnMsPTxꩧX|98裣k^K1Ԕh#k:1LhXnH`De ra5A%+åb⮍8Y:GӪM⦮&^IJʅۋxX)KzH=7Kh ´}:;W3U0 j׫Zx֪8%V#G T(q@$')q_` ^+@ALPN7-f'KmfA|bG*KJVF i#fo*wv3$ J)cHN!o p/Ƨ}Wb0,u" ,g e䐃W~u;aw0]JH1*ym`}]F@>F|.JoS F- ]L?d5'x| VeVU};˙*T0i h6(*噡J3CE`e 'ٿORԣi ȇ >{4ah`w hKPRz\yb hbO0o^:b6tBm;[og…2 =K3j IDAT#߬ۏkҡvxZꫯM2e ###nn{cW."X4'P`%qquJO[Oίjs)RqN2ĚJC&m=!#ac.b@MjDz U#K9Z9nY-Vn5,HN)isejyٲ˖gm!fD.d?榎9 nR%fD( Tۓ̕Lׇn 6ToPGPm087C#W~Uu}h&+}$$fE1*4T@cދU.ESagrf.!N1u*aɳsIyv'Ϭ}ovyL, ` XĄ`ԯN%8nA~LSzڦH#uǤ?sWQ\2N/.6 IQ>Dh@9:+41L+z@x[񎮸3K| QI~z/`Kݲ*fǒLMJY+T )p" 9ǦVTYw3%KZva|ߑG+ ,bݺuz[ݼ|ӟ~ߥ1n8~{[oexxQ ?i˼fMa8xV' kLc)Ɇ#4 ljd4xr tPvp9wCtvh5#N ݂M|yze #4bh *&0L343ٵe9e݌X`.:8ŗlq#t (P, 4Z*TdR.B2(0PB/Yꮀ!k.- $ (],%-(D^yIC+; ML7Tg|7Zɚc'2CɑK.y(!eaeA1:)bkay2#eCx}Z<R~T1YjgF#̃``TCETnLL*UL7TCUP3m<[RGiPZ F&gaHiߣcz#)KV0+^88̴dŠ oG׳"T*; s'v.66o*c?:|D؜p|DGԴնN;q7?gyf[e⮻W_ݮC=Ĺ>MpA?#0ȼfpns]Q:xj(JZ^&G2Td-- F4VcǏc㧒B7t;ZxəeLh!_&ׂYEɠd[cT!iRJΫb!>fL07OԢ42L/VqY5,@$w(%?nnŊO<`MO}TZO$ӊqOZQ6TRTioDm@oːfsbܸq,[8P ,ؠ][ww7ֵ!UW]]p^[:z*zꛦggΜɘ1cx#p!r% nħDNQ~?)Lٌ2DiR7SL2u"T{te_uܮtRdBD#!J/+sN9PZ1D32t5 P;˲SLsy<|n=ЎtMܤL- ȪIvG@4(PS B-ωn9ogB W>bjV1 K$oS p"H!y}dѢɡ85S2PUFVa'`@3{ >13fnw<'xɓ'IV%xD tC`0^Tt[ !yaRRkؘ-! {* X%CI|~\*[]&:Hu: V: {<\:LZƉ.b5CX3[4e:^v򔨒\b`JCP,SCl< 0X~t^9&8bP%oGl/2t a@}ms $&J[qL:O9TۛŘ @ l@aBA4A_B,d}!{1d1('5Z>\0ɞb o죁`~ :+kɧgNX>JgN~bC5ظXj`|<9 J\b-^kHس'VfԬVV݋ǎI?!r>3aQMEW80vjG` 5QR!IhʨT_>sL0u+.ڽ@oE[` YK($Q ]U1$*%!&W\3N ,|Ҍ6K؜q-Hv4KM9{fѢEs9|<pOE;O7^La%)ɬ ,Ug%4dEKۧ0}ץ4=VWSASRZZA\ۡJ m,kh7TV傷HӼKo@Z駟f}q5^gXO4ra%^ YuX~cd5ijS$̈W#40HAMɒ_/Ӟ: '%fZܞ4!%r蔀ff8_"OF(h 3q}TbGK o 8#>űn:fϞM7ć?m=o|}<裛g=`̘1{{IcBsSXv3P*2Z:(1 y &hcַu@mxK(TUIA|0bBlTcUiy`:I +il%ti'ĕlxw%}dY(P3 -~?~]]Ha4 ]"~x{E+]v|&ku?e`® K0KtFZ+)p,ng kqIR,Y4ߜO4Ux>Xbm:CYHP(9)w(Rh3)AECD4_HVo7mEuyM1 M}l D|n\D?H^ G!iA5W;ZZ#vHpe67pZw~eY} m롼8u]吝m{OpGٙO[n>0pmp=(`}r4&7=Rd*jLbifdF&A6h#P7 8㗜WhT\a(Ҡt$Pw$Ku87&` ^vY8x+MVCr&p1}<R(IR*K*eغ@( ,w׀2b*jTL* ?HN"^?bv/E-4SҸJ6I`!8EL=F]iv+4 0nxmUSi=`4<: Sn:[Gl&B~)ZhGyf&|l8Zlwf,=t0&>43D3yJᩤ 7 )k6'RqKq%ا&oD+xXN0]<9,.1d/D] :O"x7 w_{ollUuYoluԩS9t߮.nk8Cu1,sЀbW{0 X9f d͇ #TSbR8z_{]40B2vtl'A*J) TkCxY¢Kp "4-X̸K4ݭyZrO7=*ӛ1蠗 Y4k4-EeU/J͉]Ү_LDޠ0k>A:h?1[eӠ9pPP3%5)J;EO[P$J!k[bҘL~>966}*3޲%u]ǵ^1ss駳~~U,8eػKZ,sMQ#GZ0:#χh9rH~ b"ES"oa ~5R@% OĚDz*NJޤ2øcBů*hd/1hj`P]cFگ$VՖ 7eKqWnVuػ9g]vy}+y{\/)Fu uCýMAO :=XG^P**^%WDt<9 BmiFimW t>29F4[U%.,E-%8KO>s$À SC!(GEVWKsvrf)ES#ȑi*3y%TXL}PZHK3)a% "XF,*G ߗ((~W2ĄŴ>Kriw_`,JlM\_I+z{K873+tCtL2. a,C4`Q4U]Q'-|}w$+8ݥI$`٩W`,Q]=fR 31#4QǑ1sNّoD~x}zᇹ馛Xho|}ݗy駟??Xhm| 2eʔ {uq׳|rƏg?Y.l{CÛ9sVֿP(_zO vvvrwn־N7-:VͨMk\pi%?_I5AY 00B0C55نJn7d =Nm~H442@A iP7!~Hڱ[m6@i(w6#G_]ipA1&Pbz7`Vӊ\R䳳gm6X,!ŋy87xYYG^Ĭ#.byT^KJoa &js1ii%M(i>rv'{N`7͇0 %1Go^8o*GzFt_͍j#SC򭷼?Xv-^x!o[T*z<#~/C<~_pM7+pn+Nࡇf[dyٲY0 IDATey̘16fΜəgɲe˶Xo榛n7C٪K.fx7o't---o,LЄz%qIU}a|V( s6)mB,? 0 lw,9LHOZψxQ t,_~zH͞ZO@QUyd<$F.4(Q+gj,{HO P`ʲu3cK ip&HkS?00("RoC fV5PEZ=  (Peh$F*ROR@ Il~]R}"fa f% Ӎ2_qz9eln];;migu]]]|K_ڬ<K'8aIC:&34PD94q t~t \Q XI}xM@ 4TPa#4R&GM*guX@bjUd4nfE ݄][!g-$5gt0d"_* -Gn} 2d4U݈;^4!E=b Qm~otttvG0}t,X (_l6}GCj4gf̘… ׾(/+3<+:u7o>;qKgC^s>ísys:V2vXvu뮻R,k`}V@@%gb" Lc9Jʰʼ). /fRJ穧l7dndMv Ez^S<`f<+MZ.ϟN!K 8L'-ISdgPN0LIpoE|~b/0f,3tfl2-%yt1Tg ǩ.n WRj,M-rLTqq d PHe ʣa571T5a Dɉ P,DQhR.AiD?Ur!Iꬒm~Bw/1&pwΖDgg'K.c٢Uvm<\Q-Dgfe"dՅK>e\6nV 0 q?B{4P!a]jBV/l mDIda\ݓ3ӎʴ7 *(V!^ :,>W@1+ELz4O0SN@DN E!zd42B+}충ނ+P^f͊8#`J{衇rwGxjsu̹s!sfOWWK.'? =K.eҤI[оÂ+4k-4M.2m=Tk38c ( M5%ulY7m Bz!V5#唍oZaHb I @*W85#wv|VYxhD YjL3W!b=z4@@`Y˺]W&R_c+.l'F^XFh!g:M= nU6NJ&S |ŒAN@:堾;'JP/iA30rmqH ({XW\;8C9(' KzU6DD+E;y\'s#n"Z#f -} .<8֐ -;g/ޗ;c&-,]UJdF"I,ꈕCtM6MG iK%#{j% (4JbO7yzKӜc&Mmfbwv+6)X$0)C45m:BQ<1sEKSt`[}GM n,_uXt)j5j,Yz]0_xh{2:;;ioo_qf7n3|-ZgyiA4[8#6*"|ۋnٹz"-pCҵ\SZ`a,"\ ύSo߰HST} ?%(v5ix:iL~ZGi .ց8S'귋y}w0|Z`ԃSK/)-v5CX/U(ÍOMoC3PQ#IuZ3}KɌgljvR6ujmlkK3WĂ`=>L\Z8w)D6`ީ$WBiԇ g =ah%TZ2X/M!~"`߫dAm"t *(] \?0駟q9O}ɓ';zՂy0H9̉_Dkx7˘2£+u Mf1 )~'U: /LLMAeQgP6'9ʑIi=>o} {DR:Vmns9T*(@kk!;>FBksy[݂nWۭJ+!??S*e̘1I/c4 HoRC5#ih 0IU%Ҟè`!zuq#KQ~Uj-I9`mW?e n=[XZmFن(_gvR##C?TdO1og<1;&.E)Y%7d BǸ~ ;y _R$PUS#(UCI)b}A>#D*p 6sc%wC(v(g~ 90A,LOZ,CSA@t6+\_./1#.gLĶ\X($W{Gddԅki뾆~dҾ㩓DAZ衃>کb2F: +d7]},a6[m\2sO-̊m *Rz/NO>< -TĚ@D0ZqbE1$좥* dz9ws|ǯqߨm_Uzw2N,ukXObxaDBWPS -x(I1H E`6AMvn)x?s 5yK1 l%?ZG.OltqOsqI3<NҷE&KDb%|0Ita%Æ8pIt^8Xr%'|O~e~:wplcҋyqcXӈm3 0}uc1B#6n$HOV人qZ b+ѐB k\zv{"0& >ɸ>ƅaJ2O2uX"8<׬ZtĮH&OOAww7?Xr%W]u՛kSCI&y۞Rژ={6W]uvwp 7յ/0?').OxI5`z0^/:c^F 0#FaP7R9JՈWbr 4:]!NZQ-e`RAa  Q d 9!)0jKF%ij?G2Yڳ3cݵ ӎ: ECLЍ3@L0Q:Rw*9NТ Lԥ4K%I;RKCa4I08d~c٢[E|[ /dΜ9?gҤI7w}7~;?OG1}he^3zq>ZT(%]%(T\D"vJPIůTH!=bQ~^3h;H$GӏDAD̟Oˁ[(s&IQx&P]k_&ꤣO8~has̟??]|ţ6ml{n=̘1#.ڵkco:٢<l?S8餓x\s9 k% 1n8;8,YHz+eEzFm͔r]l*`s+\k`>%'G56L`)%7 :L|,(G[dY~ZYG;TEϓjYaӨ=\ug3ɬP?ޞ4$%-A_S\Ddek˕MZ~CXs B~M$IDq}jÅh[(Ԇs@i' \CV4 NŊVR& ^ns:%ժU( yoX~:/ ׾]la\nm,jHDF;JOmj@G@{<_ 9Uo&z,Z {# XtKcoGƭ֐9d?ndi)؅Jj+c˙?>_۶G>.?3*Yr%<_}:(2 7|(pu7cwO<;4~aƲeip*/xbl롼0My"pb/m"oH?f'S҅SMCW҆yưXcaG+F,e2qJ4U2IX55֨A]!S&eb ԇb6uSU8'vM.*N[T bQ MZ]IhvtrVU^6^P_H^Cz *?Y5 lj'}m JIOUgg e(@L99`p 0G8bnV,X@oo/t&r 'Ýw?wdv؛^y.yp"[`]gm8^)d)GauabF2P]n ם0f"nĚ)bc Je3D3  $b*^WQB =cGmsoĸkWQGG͓O>9}P{1_LRK/c* Hkmm/ 3=yϛ4MsH cn(O=Ƃ ml+V0j*D7VrjOC͆lnEUހRSaIS -(=("}&r%TpE|^!PAWl"&re8 z&EGN(89!Jl@tXF R!O!]營a=`pя~m0 馛?{~O2ôqO|b1zzbyc-gmTqIJ;_W&5Q`Li<܈mx&>CCDeQO.F7F#ŇYn:"j6|A_m1Rsrs)O+˲~ [{v⧙2NU(e`b%'/Tݎ'2 ;N'^5!I"T}jifELiMA0s>?^trVdnm#<Amڋ~b wy&=\/^LZeٲe\z[]|N\rjm=t:ͽ;EQ(8#~AǺP:0uX%ᢣ{7T+a5~&[Qy&nj\W*$(]}3y:ig|jhoK`(R@TohQ8M88g!n$U 4]ґ~#m㑣kv0];XEA'RY7}M=0WmI-S`ZуBa}r %bO yJXL'Y$09Iw1VqhSRDX*tP=N8-[-)mK㥗^b=j-s{%N-.콗Y?.%1茝7;<.DLR#t9rW=fTaFmנ8,qw4psq(@F㫒l^Ղko~xw2|$،`cWwtalzb{<=Ɍ)/Y~^YL}P'%4i(p 0f$cä(a03 aAQAL * .*( Wk^JPW1"P 9gz:wL``{~뭪S{.q'@*HjEG eB1\}-JEUeRʤ5L -*2BBUUh]| yM(/:a*ƌ^1uN"D'ߝxOȋ0;)5T !>ěY ^wZoIm7ķv)Fed*S͇Y!W­HO1)Zq =^X\P6r?T]PAkv H 0gZ^#V5^w!6hKEEC .J4 FJJ _}Up]wY|yƑ$ lސq2\}U/tܞ6.+.DjՅ_[A4mϟKY5It1dP^femdU)d`6qE e=,$O ql~oiZ_:L>p8|S,_m۞ P[ꚯ IDATYYɈ#ʍfKTLJVq!315L6>dPJ!ܔAıwqj(>QA**2 $|+GҚAG'B: XjEEE'lmrE ~bv!--_ Q3`5q"Z񜉩qG;.O&Gd/>x1*$ >q2 'r ^Wz>tR%6DEgs&ˬ|ID ~> NaH />cg̜9o< 4ǁXv-^Ϧl`ۖR쳗m1B[gu I lc m@2GbYSP[҂6Kъܻ-y^I$VTP*ِ/ /="Ra"*ҙV y]x:"[%$H4Jcoo߾6QA5<Az*uUW]޽{ܡxmP T0ݐWT!Iz\$16lJ0Q=DHvSњBʀW!FB6D Ҩ$bs.C1\I+ YOZu5!Io*#{PN -B;AG4t=ݲ]Q`3jڿ؆*T @L?KH3F{Y%XK 9+5f6 (hFf,) MmrU ᆔA R@l@s3 XpzMqlsAV ;^UPI fB? .J"͓ [2$"Fvp 'zZ/jDsE**Bd#Qa=iҋh5(޳g72X_!jGk~Pfɒ%M=,KXvIKD@oP*~}j 뾇H5.-lp$[8(X5FG g?-K3E ^j"Ե $Տ>?)ǵ@΍(x0%8:(nϯiīATGg~L q^RbaU&"FS^C8fW eZF2@ך ьC4lި~*z4' 4w1:|t^߾o^kZX+#щ _4tB&"x.˺R3h^LMt` 0D(!])4砖C9iq"BSi(# :}*ڷoo1cz:uƛoI^8sz*uiB{W `}&Zݒ03@XHh"г+㰱PCK E Ufٵ̖$AdUO*FNHJiޮ#KT}uo:2%q 8uL:/ SW0Y% Yysj[0x0}$j0V LUoVi}(&@ߗ"S?p 7&' BӖp31)28Pٜj/<8'Q{v?eA`v[!}AQ)\X2`j~aBvjin+dlذ={6؇Ú5k4iRXX]lv5|bݟۖ0= , E$]<qNZ'(Kt! uPĉ~^Vd/P"r= y:Nzꉣ\͙3hт+V0dȐJ;0w\4"鮯AAyDPAh r%8 k4:7ъ=dRJ ;%dQB->ߓjR$RZvMa@;Tw0Ro+݃PD'4Y@.-[pTi[-!+ě^ wzZ1x1#["#kYɭa"ꗰC~iFm,nƌsBu% vm'-bUn&`83+OG (я U "%Jj&V4R' C0l~(WC zq=rvᄂ&I(qBv glGfDFMO ?ACl|. h ,*OKKM"}>/~p曭Ej[O(0G!so!ݻ<&*O5iӦM#++ɓ'6dYu< 0wDvk;ڇK-Ua,iFJEKx \" uPY OEJ_׵wRܙnOoi8rpi\xl۶%Vwy' Ei3^_`-ހ`6LzF^ 4;2У^cP522(%]g5~6ڱ4;i 2eU;I۞vCV_}*b k~b]K>bPǜ.#UCWm=-B8ڪz: Fa[ WԖAz(vcj(!MD49Ѽ8YD!Q\RRF qG^ \IHgoKWr `hF6fU:6j#!vVh]lWC(:Cy==^Y@hן9h)Zc[߸q#-Z>f;mx衇;v,YYYdv튦i'Iq8L2nݺq7t͛73`{=<8"9ؑxttȃiE ݳh zK|@6T@A2.ƒM_~pߡMoh!Nב*F0C̮VA0Tp"(jř ƀޑb˩b=iRE<#>H!2RCҨ{9`=D6LTq*Q%)TRH#=HJ\\rւ?"^“CQ0|2lxztPDu4Ԡ pg^6ab}IRvwfcN{Φ!(^' #pQ+T q" 锳|JdI>ɣAb)`7y@!A)"J;pX84(Dq(vCٺ\Cg' hs9**Ic?  Ø8JcL Ih> fACr(.׿>}У˱%VK,oeܹ [bl۶v5 &Xti͡!pu ڎC;~j!UcONniC!v7[TJJX)Q.!-_q%n%4?XwW?͠/⸠\5\i駟̙3[kNrBnKw $_#(\ e2^Bp\A9준 t ( &W;HIlcMv%ӎNF 5ͫ.lSNSF?5T}>c5XdL6VE.5=6} Gʶ[V8yЖ-FJs3L,H֋ JzRBE&#Qj8?_G^ GU^USSA'Y" ZmAZP 5aСͱ;t z7֭[+Yf5VC"Hw^jjjb۷<)Du$P2e7LCeC7"hXO=saD,;67{Q܄:TZ^6W3?Bwd/b88*r%2qҥK z:ueݺuڵ WU(?t7§ ̔!n$fu\]ƬBsGoH?%׫ )W`r$f,Y 5γOdʟR4}c/U7^MA*IEE5NYP/5% jɆtmaM'TQM PH>Ҥ",{;yUV1]'NaIjBW'w>AM ]r93r9Z|YpHsoAVT< zQ[ !F9nBi.8!'OQ|TeztT 4*z- o-qU~P[/6cx A2Ʋ0w2eJ{jg}O<+7˗/p0|&G}H$x뭷3dfF1Ex"YbV @ ZDń]2 _.YRUKBv&K 5KQZ_Oo ٬[8j)VQ %JD-dDA%١/!2[qi=?q6] ~UɨlmYNm ѪM ?_П/hv)FږE耇}j Jb=IIӕ tHg؈㧊lɢH2)v ™Y' o2*!-RRqW7`שgTa:ktSؤ8)N†AlA >Ȥ rqv $`* Sl.rjB0X[m7dsȤ|yX'PoesmPii)cƌgO=={3`̛7Yf5l= ۉÊo $M IDATIHDV,ˋqR{2J%$?cFžA!aㅏU4Qq1LM،Jμ-޳8"W1\ر8yWORkXv-yyy^rd}?@a" JDDa =QIaVFs S35>ϐQ O˄{y}ͤtҌ"8H\4& &#);CHsOyTB d -G ؉F%A2pd.~w%~o%O;/ {zgjoZ5vg +?o5?;-ƧpK!܄S2*v N"qQ!Hr4/$~RờMz-@ŭՂA}iL?L5G?{FŠ+<*hFjj*| \sMyg6mڵcʕl޼3frF+‚ t cP$\NWhW`6=-R{gU,V""|a+c u} rk#/l3gdԨQdgg#r Mx֭. ǀx~v{N:rh۶-wu{8A/[鿉#OowTpaXd-F{6љtb-a'b j[a@١D!A %0Ќb(O5."tfcbywNyאc;QM2iUTxA<  դp Qvx&t{d4Wir<䖛bvexCG-Kmmz='0j/_Ιg_|Q/Qb…ٓ\N? x饗8묳x9r19zL2Sʐeq{,IHOI%+-+¾,_G1}8sRrzx3oݶk ѐͩqj M怓e0:d*F? @26)^/|۴>6!Xb:TL0S1̾V2u'\:d'WC{]>zh  Y?ӇK.:o>>S-ZԀ3?:uDNNNSOx뭷9pYYY"#%䒶MDLMhfHDkW*FXVZ+C%Rr;VF']P^^i?ܢE>|8=PÇӼys-Z$fs=L2{Э7bv7x#;w>k )۪U+Z~2]#u7^)%v'|5 Jl%6nc˕͘25N#Q/}C;7j\'Uh *I睍C1֏ku;5) 9lvxY 5Q*TbQ}ş:xSRc9U^tx21$ ~l9̫H@Y= RQd .CXHV+FUݐDc"T*gg2`lP,F]0"VgԠ?jߟ>AG1t}h4ʤI9s&v[Zt)Nj"vZFA͛z*W\A~XNm{i[#$P0Yw*aPκ̓ΦQı%IX~Mc~bdq:Z1{D"&MTkI&1{lx\͙3\#P8<Ѷm[c/RAJv;\&Nj qH=,`.1L1S _n‡SH4McP 7ݦC;waÆj*%%%l߾XH0_~:YoR/quqwIĘzTڶլ8no]yQ㷖H$Vߠp*+vmtd}N:>j3grM7/2vX0> ̿7l@k}>77,6nX4DvMAAo6{nCϩ1qD.RyFQQ#GW_SNiž6m%z$˳U%ڠXOugI֐ITB[TzɚB@'V)~ зI',S;HʆVDZ#2l)d{6ֆ/~  ('kf+=hnr1{UKظ8sJ).>mNbS58-s0T}KBN$]ſMaE]hFVdIVa-yg,aIډ!8;^Xד`8RSi7bTB6`+؎nPeϐ8 +&h /湛}>J>tPVZiƻg})>S\._|E+wW_}ŋhv zҦF~n݊=T_q)Ί^K/~sBkőLE"xO,%Iʎj#Y\y\~Δt:Vޓ~\|\tn`ذaiӆ^xR/py,sJ85"+E5V(#U%`)B I042"jbù;15BR*=ld34' l\ύ+;ǝhAI)$$;fvۻ`jUBG^1]|AїA_Y =#CQJpU4HxRqUJvW/r];޸co+腏b86BaI QJ]MjȆG#=E~^U̦s#y-R'p_'Ua8xԪ%i#dKh?ǏyHM9d߾}yw9sYv-={<׿y=/8nJLB~+z*F6mKWUpcb P̰F= 1xt݌,K :McD~nvfΜYgE4gر˜wy[1Dȕ$I|,]S6 >jzGav zJhHx/ q)48w?8\}*H֌砊.$I\dxcPXz1Q4s<}j!%dRWG;jN:Fsb6 ɢv 99mOnɥj0`T[qv!ȸsdtxMh",Zi\C$#u⻙)gѼ&Csjʋl5z2W86_|qSO4*I-Ջ(NfkdʚIy2 H/V4WÆE`#u^={63fHAJ1u$$4N;h(9zj?~WCe|M=z#3qD,YSIb׶EgcV na Kmٰ3==>ۂ~U"a&GRŨܼ.ه)E/-_fžOw&'HVL-f 3љzڱK;{ۢ\o.mYR5l5 t5rQk[UXɚ4, rtx)I۔89U%߹O'.ȓ,KIg៼V0Cs|1i_&޿9+^DZX)`o)/9ylK'W7@jdc-Y]_3^`dP]\Ϟ=y袋ؼysXlݻwgϞ= aԩTWWӯ_?ƏΝ;dGe„ M6,y:]_lXFGMnOp"ǝN2ce]0t"h(aiώ{ O!&,;U:0 l$>B]f/)e?|֯_OAAK,aG?|-[F=e˖#ňFIa/̇~ﶪO?;3o1rJFA-z* I}$[p!$1vغOPgrp8/KCO>90amڴ9f2 q #5AN)Gl,n vY>~J!*I TQUI'~L'wУ(q2@mv K%@q*(5*R\#K@si$$5]QQ6G %R2aϺ3pWF!xz ~b)Y px 3]B*Uja0xxd Pău GJ1+5hd\^VW{mpĝ:ubɒ%L4~q|֭ݛ^z^|EV^e]nppgp8h۶mVZu748\s 3fhB׏߫cS2oy FO(pycO3tQA/_NMMM2žqF-Ӌ9ZhE]ģ>`D"-ZG}T+UmNFF#G믿;dtԩ0Wj䦂( <ɓ'W{M^^^SOÄ5"#Z0Յeՙj+1/S. -JJ!+21 _ Gw ]Tn%N1?%x˒` kbᤘQCUM$sEDND٬4 CO>2 0Gc"ABf{4AN=s܃}mp{n*zz.V ^n€q-^9~xGff&-+#ڵ{eذa 6w̘1]6ظuE8+`֬Yu`صkqHp8֦Ҷu9,XG&6mwh++$IܹVZӥK/^?,t҅~ɓ'[o׿Fzʙb>Hb]A>pyBnT2UAmN(xU6M Hqt`8eQh=:q5KބZN[}6A֖?>08c6Oj#"cb^ߋd _d%%AY EN(UT0 =u1z=/h}:ӧO?e5Pc 5cy摛{ ?p MژٴO$ "ct#dL\Q)dۚ므{g@(7}2lZ WvDžI5ḌPE A"C"k#m'!0E«alI*9!2Q*!!!%*$?[ɑxM2)z, WUX'aхN"%17DNs Ϫɳ$v*h"tl2{NרJ`ĉlڴ ɳ>5Mr1~F1q8s9 >Ѣ`0ȗ_~I'i0늚gr:2`B:_V u-#,gfرI+MӘ2e ̛7Qkw2g;`x`׮]}'DvXbtgxYUW)D#OD" 1cL>&NSij*:udѸA N\e0y֦"j=VAC'3S1PO l\ IIAZDJ5NK (N"8Mh)NjSI)2 pB-J* "'H[mOG@'ØM5Xt, vЌEClcH[0 6o3{WTՀGD1 =@VVt6ͅplܸh4O3f~dggk.vݻ矙5k7|3o.WŎ23f ^5-Uf0n=JUUx㍓*R)uΖC{u۴iÇtIBB ,onݺ̙3*r6&!j%V5fX%%(Rϣse*Hyrb)L1{Fϒ܏,ApI1=NVO5l$E(@h K2KA5L\./ U 誆PIb"N&e,",:5O|%%O4JViOֲۯsGq3aSWpY\pem|Mǡm9/y?0SZlyV?Ks8w(_dz`JRZ$''yfFUՉ`0رc Bw}g=46]d8jxfI6D*m/hgEAXڷǧ€0Nvpj$05OEk&.ϲtݠ&((. ECpݣb-a<d2@ID9@N]o|Ց7Bβ Cdj&FB$ov|amR0_½K^^^z)+V8W^yݻwӼys7nLZZZ:$!c*+ ,B0fn֘xDX12aBԪUcǎUy}4oޜ3gr-Tt8g$6l@ZZF˚]ϋe)b\`9(fL+n yׄtwRkAIl :Ofm] GF@M %1$?X)ݡ&`h믿B =Î;yKϢ"y Vi?;馛x<7o^. *ƍ ~a`{eUQ&SN_be AFF_K+:2Czz:Æ f…z-]}9$DxD-jDOB,?9˃;J骛_gH|`e~D *$UN(qla ۸"iqu4i Amu @w0TOT1aHTBH-5P2ݩ?;>"nҩCz*@gVK^ gQ4IA|c:/']uQ3!=Eqj" v5S\Æ |CRR_5w ` '''-ZTS#==W كDiݺ5/bEr3f Vt(s݂F~i^{5_eFʜ9sѣ-Zp~;P?M`e{in *8p'ipCԫ TAͱSge]`{aPlaGU3XjB JhJMn qP,'U.Z\BTB>0P ADsc* aCTsc6eL ԰m]<}PR'˘%r<ʉ q3=kb,JjE1##/cPZz(^$G݀;jeL&_AɖBī$DB-a|eq%玂7$)%=ץ+l+]ZݣW~B4G]+BE:-х&f.-ܵE!VBǨQݻ7;z>%K矗jW5OY`ǎK.:ڏx'N0xVnPPT9Yy}z}F:k$3;wTM-}_?3=_} .,@kٳgvYd\1cL6R+OBF/\ѡ&OL+t)C{Q?R n7]v#}G*Mb3 8P^E5jr(r!%lBXD,SPU+5~C5AKWYr.,rP7O0<u[6 TCznIRcr !.x d_=4 ^8P;~_]TL\Xhj2DCxaݒcP^+i]sIAʌW46tvG:RޒlFL;&X")Dzf u?؉`0"q3DnwoyIJ㡇bܸq,]?̶m~7k,뮻{ĊBuVj7MK/#GVQB͛7ᄏC95\ei6l({͛w$NVxy$yI#~^ٟMdoNR%1;w.s??c[ƌi̚5#G0f̘زh4?ɤI=zt(!7o^z?>ƍWt( 2xcX}Ί(srsv]`ׯ_i}kN;vdeDv{\ͬ|" ! M-|X$n&&zw{LiCzz@z`AI2$ dWĊ%vmapSwhրxW"; %鑟Qyw*a=VCaOZ<\J%r(`ŗ8S.e.K9MX}fW8;Vu8_0y:Qjՠ֟` lt~P-[yfÄ _~gUUȑ##n馊紱xbx2-w+ eNуݻ3s̲YCÆ 7n;w7߬p 5kdڴi̜9zb[" -^>>L^Œ"TaY+d^}+!PA%?]ï+m'e"._`+%( *:4] \ , c8L]ݥqZ*! ,&q+QTDAO"B(:2c ҝiqRlt >ӄOd6aIQˆٴdnnx/~{{Cl O%]V/˗/r1c `ԩD".]˙?>z*cwyԬYC)s4k֌m۶Ѹq匐N^V*5ʜ\){Gfzg-Z %rx5ӦM3&W& !O2H1i.>/ D<&j>I'q>uZ_2+#djx(jVXN3s%E6H kÞ|;Ɏ7>;f!iެ Z)V$\D*^=;hFPS!b)G1R YA,R,fq)[#M~,)5g:/n_b,N:DI@1f!\}ͺT z4 8S{\DD"Jjj*]tQ48tӧOg̘1Jgc~;iooPIQPP@QQ/Rժئɧ9e,hܹ3/2}QyA*:2(|GL83Y.}: /鴃i 'VorѥK;<UDn&|==z`ر4lؐÇ㏗qKK2{l*:2G0QFԯ_C9#̛7ݻst8gPj'(];v*fϞ͐!C(((Pno뮻˗~P@ [hA8L&QkPq"A(LV1Cf$DRU3 lp)}n1\*5\{+#IIM1^ +@eN7":.obsVa$&0P0I r^a4 K| ]a kRرHiB0`0NMkX.?࢔yY9b Fƍ?~<}-cܹsi߾=z+_+U-^z̘1 [ 믿-[T+'v\~! yt?UVQ^t8b+"qj׮*Fyi׮~d.b.]zz< 7ѪU+^y啲92@݆~<! ֭[INNPݻwgժUtڕRof nt$K::.)&B2Ԏ䐙OBIBj 0h[½`ĵGvEW5 I䓊+,PuwTG5xKI4!hxZ[#nH Ww]K!=.%{Ij9@b[@$^ďt\֩u"5Is,I$.[bgX댘#R^NKtv ^p8|ʯwJ^سgmڔaO>N:1h ׯ?cѣd߾}<˩ ??~ /T._œ9s޽{m޼o؝8C+G2sLhdeQ0馛?~-؂ x#QR#A4eXwP?pEH q  aD\'cPBs eLpFl-yC0Kx}P1dUB.TTUo$ZlŬaTW&KܢCf(9 G0K$R҉^:) ??#\H$BRR)&Ge}Ϊ شi]wWfZBŸq޽;| W^ynĜ9s0Mn;O['Ø1coYlYz}QTU5-TUN۶mO(mUl&pr5K/DKa޼y!Jtu]̜9smBr~ݻYlYyܑƜ9sشi999Nuٓ}6G |-FɱEa TQi(*l͐V c3Pr!rۂkݭLv";$i:~ p||Y*$ IDAT|[=vd8Vl`f{?VFWh+41p߁(Q\;MVrVqDQBvk; 0z8gYYDmOF-0c wyg쮳V\YnJ ֭_=> x$VNJhٲ%~ڥjI4iRe?>c׮],ݻi۶-O>$nڶm{8A_خ];Ah+RW!g {Wѡ |>mڴ9犜} ~H# ChU/ydm`,0O 9At1H~Dq $YPƗI+yl#@Rf}z+o5# Q`yVB*^m+P0VjȶCl.K9pY$t,gTG *]8V4i{.jСDQn6.^}2S'ȑ#۷Ν;3n8VXܮ^M/}*_}~-={FCERn8rYYYݻ(hhҜm4gz63@($Řoz+ZAx&$ir)^>l3%[X$; f#HbIWPvɮqdamQ+6 _L!W{A p"LIi*3XҫKf县_qc0C?ʾyfS9:)xw9x /fҥ%\9zhu `{\tE\ve1]9v+VnݺZÇ!ݻw?冊H$”)Shٲ%}͛7gĉDQ>3 D:u1bK,[ogϞl2[fӟ+ٳg `Ĉ2o޼)>e瞊匱rJ&LpVKg7iMNh߾ >}o߾XFf͚'ND*ńrɭ( ;wS%zA 0 ;vd˖-:t_aÆnnҙձ璏I >XLڠtߋe[;EꒈH) H(%7I vAwgyM`h9HY̬˔0\~.Ⴋ j쁰>ֳ?Xd'f̨k 3ǗTǵ* sS肰BNhڱ?k֭?#*cƌᣏ>G%''+VrJQ֭[ӥK6mUW]Eٻw/]tӧOiӦOx۷3j(~i/_5\CFFyyytЁI&駟r|9s0`wN0,S{`„ '){sJ6,,JQ\,'k*:: s z23;nXdaX>,,)Q,$6Q,}Sx'Hco rf*~RyXY, @Zn࡮z uዟ("FEq#3y`:R& #pt3w(#M9r$[nn'dܹddd0n8-ZDvv6SNeʔ)y睸n֭[Ǻuرc *;;o^{}޽{4h\s ^zرcYf k֬ᮻ￧W^b۶m[uEzz:7xc'9Ҽyj %1J8=\.nF֮][^v6m4V0`0gΜ?IBBBx{Jbذa|>⋳ur:u*r ~ES.xG{8x ǎ+T"(q::>B$SDcvh@7Zyn9FLK"]9X"(hX%CDPvc/qWqj`q cfaL$K&V)H\`.a;VfLf !mvQu>aՃ~kχ C=q))% toO/qy9=N-y:=agD2222={63f̈~m8@ǎ߿?fnq\q}:>\rIFYl2rssy_@6m6lieh+xT;9(..*)lذspyg/k7n)))\?֭[s=0n84M㢋./d̙L0Rq UVqrJ:w|Zڹs'&5ZTT$$$T!NtM7ߠ( /㭴C쩥L>B(ӊMdrA=dmsW#3!@x0X)6/iX(8j!4˾@%>E^J_(n{bs^YCItInFK7r6irP3}i k =C ?ˇ˚*+"m^89Q%N"vܶmO?3jìXvڱpB&M˹;IHHW_e׮]4j/ȣG2}t4M .uִj*Yf]z_=zMb% S/.._W^\|ŧ}gB:wooTE?|*O֭[ǁӧKY|[)l6i҄ݻw(Ν;iذ!`?O|DQ:uĘ1cJOu&Lٳ9tM4gȑgxeF^y֯_ϫz,(((y3>0 rrrPU}/.LDmJE &&*ql+cY\C\RPEi؉ELG.t0k8y($ҹ)v)'Er_pNdp%NdgijjN* 0 RatoXZւvlijfˀ~,;C7U8 w+:|0GM65 /=zиqc>Sjժ{ɓ%RXXHBBoFYp! 6UVne/L~HOO/s#<̖-[ܑ#G]6B|x?6mtF\-:kkeYאDJJJ*0uT Tѡ+RRSٞ]מ!F7I@X:+qm$2RsrL9[I4$c7L"=%Ir?DxL?G"ݻb?F\XVakq'􌻉fMrFk4M,Y-[رcٲe YYY4nܘ`0s=ǭ XzH fKnxIHH(yrr)}45jko.(| SLa…՚XвeKf͚U-)SwUX4GUזΚ ,Sp8̏?H.]~{J;>={裏Vt8eh4ҽx:~v7ij=O n9|؊LAlSL[t- it<& .a, S{7+s#xO8m4t uWNo(nIO)iiP9Tߝ1yӭ\h``V)1?C.L|Swِ \\ N;,]w֭[GFFh'|۷s=Я_?ƍǜ9s+iԨ&LCS=';v,7x#G9]x̚5~;vФIe ==^xOU?NNNoFERF8so8 `ʔ)L6CU [laӦM!F@" YyxO5=;Rw'{vӇQoho,(P1M?-7 hN)+¨B 0U0Tn739f`?@x˅U aeei ,XIȌi=X3h>$HLǾmxW!ĉ36q@ {[. /NI^H"VoF~p2)`ր%i<~dҤID">G'M..\HRR%&NP*}96F#Ghݺ5SL9ÇӵkטFuŒ%K={6/Ncǎ1;r5bnjAR^zU_iގqAhnϫIwR뺎mDbv Q`) ,$SOP@w)^n*BS먄^i!TՈŇN"$9X\?] ( I1QQҨS%;E|{N+Fɮ=Ynz0݂9'q|dISv!iNT8C3"Wiw"&ϲ^pzիW^P`|۷ X>o<ЭX8p`pUU7r5Wt8 !B{A.r"̛Q'DZ磕Dp͕m5b/[u\"U@JHK "B5i誋pU 'kki<$,=V2I$.PO` dbu%$cz@#9wfJ#ߕ"^ޓ wRAe .D'̆Ln(c{E|^QB*1۴iC6mNrs( 6bZj[o{~ٲe 0%Kкu `\}̟?ߘJ5'x(c g=s֝tnn.ԭ["B(Siӆ+WҩS'ps6M?thh35Qq:'E}8~]5KtPdF5!b/D֠NaJ4Q D!QBATqᏄq+h* /Ev]v$PH-hET2aËV݂X(i{">9lo :R._R% vR%EEb.?#^Z<&19z%|вhOO9T4hwnfv#G֭-G^#0d\.*B曘S9UiQ!C,ZkגY-)޽{O*0uWh:fM T(  )zp`._4ťmt~)*:$[H#? 4DZZ-UPh12ŃBhph*#j77J2{d>ێ(q*=ׯαTieXyI$/Qybʙ RԒF$spZD/DJj͓\;;vвeK|M-ZD+:!˗/6:+4ի#G]UiQ! ,;gŴ U҉*h1Lbi0*.R0cbutۧqD&0ԶTOTI FD"xH%Rp%3|tW阪DO[&H!P K(n#S@$^bݤ+j+z^5H/(ij=Z2;ڧ$wN Vɲ$X2vr29Qe..i''V۷o6=t]Gu(ULpBw}Wj߯ʊ`0H6mJ*-*,eԦMϟϵ^[Q!9G޽+uȑc>W[QHFʅǶ++rdrVu֯ŏx L~11{2(\$RN/$R=x"H Hq+"E!.rw&(q, 40$;n,u]'+" \kB"7 ZCEHNIO)w;#%L<4*uߥK۟o;fOeoS3~!kk8 !ͣiӦ,\Ν;Ӯ];͛Wѡ;?|?T"b_|/R5OtNsUZTh=bȑBp,6nXѡ9Gظ7"qxDqaY,:&*@]ߕNs!UCүhIǬq֌⯗(Q[%Zdpt"mq1TJ"h&ϛ'KTqT00Q kn\):>aj& al/,aL T*pGMLM Zj"(ҵxwK51`/$4s!2٩'f2+%Rm8^.um\4/C=tۜC0 OY~} zj:wLVV}HߒW_] tޝm۶ѬYp,XZT(x뭷gݺuo߾)\.JNNK.8aL!X4Lj ЈBM5VQ5 4r~FBK$u:ա(J= =}>EטÍN7!|ObM^"Uwaǫ+>5#x"<0]-"P 0 0$PTED4 IDATG%;,OŮL!a]<gJ1@9G%n'd%O#^>X${`*Ү~z>|TCbݺu=m۞+SNdeeѧO~uv,b *:2;kƂ *:r9rUZT8{ٰak֬6b_|D ABzVeMh2Tْ#/*t\>oSiEm=1RfrQs 6a룳_>]$O/5aCU!"z0bxH j.\O Ɔ@5M~Q'n]n>i8 Jˮ]jEnݪ1q\sϑUm@ӦM 4mѬ޻P4t'Ư-sP:.rw兴^<M7v'`6MY̎fw rai완J,H1$rtHcp >>DI]#׈4RFq`ǒRmSHZ$$RD# VJPEਃD>i qlc@'H1(* 5l;id LUaK4YgRĜm!۠6(  UT"N#J4#I*)i4M7\49ISΕW,\y!fP]JD~~эd2I0$ˑJ~?%K{sqǵN[EEE~tI /~-{ɋ/ҥKy8d2V9+RdžY^B @0YB*%E-/0ԋeٳgw EqE2C=XI'ĨQZu4ygZuC}GѡՠA/k,K,[n;gt&CUc-%pF? T* FcwFF!Tq̺S3H>u bp,Y&Td=KDD93D G\!%ٶ 6a!;PEv–fj™fP">E*"gC9Ԭ (6a4- HHT!h4)%N^0h&Uy{(7wI;Κv]_|1_5_~%]vN={ٳ93X|9CݩYHyL:s=SQ]]SO= 7@0 y$\(:ܫ#4i`|Ӡ( o|=zdonZ_ԢP0gyll!8BrDC0&*At؍J ;`/~~GGq]n:yC=e$EIa2p?/V?5d($La2шeJɹAA$p ёl%)Td IOd$1(Yp a(Mד+80i%vr KH)hQyä-ܹjwV^_^G@Nsq뭷+b޼y3}t2Lu?z,_3nܸVY/dƌy"HygweL8պu8Xv-{fÆ \(:/I(v2{q!xbijض$I} 8{:t(?<> h5g̘1Yht+-[pꩧrOH$tAȲG}ɓ;SN?ti$#}m;]?w}L:C|nݯ5ggA%W<ضjly׏P(m۾zj-^"Ha j=L<B uuh$NFqz}Ť@.ڙ'za ^7bdq7&b)A%+HȮ%RxwGSܱ{9cLuQ TvKq;p{q)/7j13^e#G%PRdLUq86b 5(1_kDZ$v^p|Vf_Z>h^z38+W2cƌv˄ ;v,1sL.v%\ڵk裏Դ ]י8q"_=OsWRVV5\jkN>d c8kknSÒ+IPaÆ1e~߷v*̠A0aL>6f uT2ŕY"Q b&)s1mH8§e#clm`˴FSI MƋr MϏMJ>93;H@ "yrYt=l>c0A4pA  ",T@ΊtI|%W%~( h‘$$դVU' R#%bd gaim5A\JS dT5@[Ktݮ9s_p7xӭ׫W/fΜɴi8S<9r]waÆ.G6nw}ת|MΝˬY|BII \pA{oSÒ+h4ʽ%$Ib}Q2X=F5|B&*YB$!DPߠ)&MW(~ l|h.ѓcY(%X*J F T@ ͍&)[!,#yfeZC>ͼxl?gĭ4A@wȕXhYSS!guP@/VHX @.A@$ RA/mc31S2 ZIrVX-.yW"߫Ђ=|$(,B}}=vZ-[8~ 9Sf}=CDN:k Bu&'JDŽQ"P4Q&aCD,SQ%7T FelzUCX*dU $)"(D9[ X1LY"Q\* =>"lث] 0 ѣGs-^zf𕔔0gON}}}8{'Ǐwޭ^{kUU.cʕL8K*ʕM6v`Q˲~w,s 62M$L256FdϤrի0i"QKwr{zjF_2ٔ7qFA r-\:x]At ۪Qf8ɕW;%kr=N݅ѧ p|2:4qQQ&v;,a*TTRBqB*bhAIG\.Iz II1 uhA"ZCq7"sJ!ᄠ1q$̓Id@b vկ~/خlXz57t3fgԨQ\z饜}lٲ'|/Uٺu+'x"<@-9[ō7i֪@@_]\]|\r%,\?M;eճl}R%&OyAWrO P#T,I#y0Y*gM$aMrSd d G4)b8`Dޕ,TO-yj*" o|p80f\c/_ ܤvQ ƩD~1RDII `BٝT&%F"2:Axc#A\,Uv˴[RjMbG͓j;0qBB&aݺu(—_~ɺu8{[;|If̘\*$ѳgOz`Yr&Lh&YQUOF W$b Ǝ˜9s: m8Ǖ3\Lk#FB[61B $$N$EԠ`Q@=u"*<2Alb$FdŽ y0fh׫\2$9-"<תּYy GTxT*hjna  ;sPQH&{ޣ>oe(zX*G$CAɤӨZHQ2M"BZeQ"u:`@R%btɽ94P$Hi"ȉ8c1|PtƤIXt)_}˖-jՏ/ϧ rUWڶͅ^ȸqx饗v9;",Ce=h@7B 7>QFf;U:!cF"J}TEO Uz"!c"LI'F]dE`'Fb-  ο_#)xy:'Hd-JT$TddDjqB2P [P1I}~sd@&[FF9R9:\d dp= W<~Pd2Ʉ ˹ΎX,… yKwf6YdCee%? Bur;r 9>85$Y1"ǃIԓ\[4np,-D-I&hyФxy߻NUw9T+LԸQRI7o{fSz02N }R)a+ԋ6ѓ94?z52jlZrjY 1Va5bH~j_C>'B?>{.mJ!l8=+˚W?-yTs5U~Ǡi׿%HP XPI`QH pDXH";>G!H !l"\+5yd.cyWmۖ%T XKĩd eTїH#z_܀39B3X.S]VJ0Q5d QDq(XZ("j)%' jAr@ `[Bs$ [SpWR\ܻCTTTt5Ö-[PUW_}7,V\c IDATC(bżL27PwߥW^~dWIJe?~erVZ\#/|`"J-EdkO8AeOo52P)>8DD؄D=4OFb$b$1H!`j@@mq F e}:4xG:4MFYgYgE^^^{oq50ez-.]u]Ooyg[qL&GIt`B#W@~|\m޲- 6VR9d)cw$:)']| e%(;}%[Ig눏eY] Kb뇫ݑ1lDd!ȖP~ʒIxˁk7}OgG X @ŢA!LS%R!"e" ]L,OyAmʊ̎`޼y\s5,Y'xQF~YXt)~Eۼ |ᇌ7K+A^{5kw:%*..fٲeGKR8TmYi|}+H#D8l63Ǥ`"C0 TDIF JEx0&ǿ[2uCx12ybJHb5?ldJAGfwIR8/\aPQ7v:\5B 9Hl?;Gd5|q1"3pXY)vaR~.l70F,k3H*BMw'ۋx+wpvۍvۍ:];vl{opuaY/ǮY3}tRT&Vs[na2ՠ\u-tJrn.ȵ^|_fWmӐǶ-V/'a"(XDH%&T#G,AB(|T;7@{<2td_n%PV@^P\S(ԯ H(KX g#рO43DJw|ԍuʋ.EKwpfJ۶,0h 4yx7QM|Rİq-X5 dO!11F)Oهz e^O01LFyYj-9*++y嗹+YhT;iu(BEE+WqY~1cg}6Xwٶ(++cNRTWW-@rw}=?QFž XE~~~m4ȼ[E ck>t#IR@= 䳑^zu Ie Z*y '~E eN].<ErP1')NKQ]$E a Fߣ;,9-b x(/^MW,OYhPTOrJ񳰚z$۬afQvT]vF_^0OSb`1jcr3e.))ϥnЩŪRC@rB&=DԓG#ER,BH -Ϥrְ+9.L :qndYBd xh+/n޾-!{Ha^/x%TV#ljY1w\iLp).$sPxNM&Oɓ{]Yd i2~x|IN}"IRLL6 qayyy\{~]j>3`o6'Of]w}ߍC'W$q 7ormCxqx簔 u=7`ųXh QJ5y4G d 'NH$T!$b CqI# $lvX;,Ə{?tٳg8K())c„ 0lذfF}}=isqgOZ u]̝;]8k8q"rHߍEWݼ;C* *!L,$4_e7ɒ$N `&B ckpQN IK*&ppлk]zD4.i"UE6 %* hRJ&fPOPϒ8⅌z1,xRh(7Ql$ҧ7cQH" v3՜q}[nMö%EQbY_Hb&OL,{4N3uq^uGuu5v_}w}y]| 3fsΡx<vvvXߟ9sp衇j$InѺ<˲1=ܳ]ʦVʮ!/J#]P9Ȅ2 ll$BD bLfGi7a2I@#Gn[Lb]>|*^u\f áshTSJ0 |PGHw"JrGTQ@o6߸^2SP"/*T)sY K9R) 6)t-oqo#n޵Av :W+OB('qީsi`ȑhF]]f֬Y9t:M߾}^LDpΜ9|tM\y啜xd..7rwpzjѨ袋ׯӦMkmt 4?G|wxy())i=tuy^uR\\̗_~ȑ#8qR_C4[>T+ԎҰ#WABG|dpijQQ2*:qBFY@q !-"}$4f8ιK&b(c!HBBɣ"RB)D' BrF(K^[9 Lj)j[AP" y48D\-ۛ#O)s˒tLRUL Ws ۮ)S0tPz)NJ}}=:~;mz+0 l6ի9묳?>k׮?0nb:Xz5oW]uUTrIׯ}Ŷ.qyW2`vY_u&Óĉeh}t)rPRR¢E8C[;C2n`s{Ȩ2x&j/I#'x$, j)*LTIIQ?bA&"J{^쁧L@^?"K&9F S k!Vm#e@E a=1PM))[H4ـFPH=^5PODD `OxRt/Rݔyb$F]!*aFQO|j=TN `4) 7ײf+xiaaI~ĉ5P(#}896m/eݕ'|]o/kr'3d~p嗳~a]v]vNbF/ogeʕ?96mm3n8F)qTUmӧOg]v%7t7`̘1d2Bm"cژB)j>ΥybԸ)P%Fz ;^ (RG,u(Myks[—!B{ @hߓ(h!ܱ~cw|>cK6ҋ>g)llu%E 5H`G#$FH!Do֓AyvBt4tB^/0%wu~bzOHud նSao.~`! W݌Gl;Fy:uuuD""gfҤIlܸ{]9Sꫯp9ٚj*oo{s=o)=nFQQ=X?mc&Dl6K4ʲ̈#>|xnM6sw[LǪU۹-m.I%I裏n`ر|R +osv8*dN%#!Ӕٔ%D#yl~&++NyBv5=<>=^>v=~0LJZ!20ZA. ~TESfImEIF 4w!FRt)-|JJ,4ҏ(e QR~<ɣ 9,n!z/ILxre$F򟮗q腓zeXm[" `w$IB!z/ѣ5jwy'X_|6l=DZkGh"-Zjolld̘1Gyl67JKK=z4dnvi >Սƫʘ1cu]YpvSNN஻j],XK}}}8^z)={nh=ty?lBG1?o!t ?94"']HjANLt9D|G&lQLRߛ%cG:A aJ[bgWwe_x襈;H_I&R8ud@/a~١00U#IO6+!X(`e^P ?F&M l(CD'D-EX(Ӏ{#=uȐ! 24m.ѣGb .ƌìY_W_}?is9| 8G}g?4e >۶4i< /~;XUU ü{ >nC.tLo6g}6'|r/ ,^kqmht9q{Z.;ܤY|}ԽrhPJG_2 5d#<^nY"#,At$ah{v#VL2N;Ս.\eYf]JN3 GJSǒ0R)앻FO &hRY& 5`QL-#J ńDo9zsא+]%Y ōIJ_璥4GCcomu) cH}XO!Yl4rS+u" Q !t-uk*\4r(RMdfYa8]df2:>t惟mTh(=]ځȁ̙3'|BII s'RZZ_MEEsΥ_ל{L4;ÇoP__ϣ>ʭʽ˂ Xb]t/x9ә1c ,෿-%%% <K.EJ$~}ik֍퇮uQ$ɟM.4MO&wN[7nw,YFmnRӟmh[HvDO=CNig19${suqio˞ДE'DIPIK[G0JɃCy$SG!Yaօ;)%{$+ﭼ!!G<5)(HK>  ZH [sg|b&J)£G' ҧi^)F4y\#w a0Xd 4E'q Cz Ȋ՞b!WGy:5 q 1}΍uHɛ4g,Aȕ#uMޓP[[hg}q FMUUdCvZ RPPݹq%`V\SL1c0qDLλ3a6FbngAee%|ڭe,HoC qwIDv]5[{ӏ /p?}oDoDÌ"TTiNз[(B1Kw.&r>j(6ZXAfH)nn#%Jf hBrj( fQd-g.f]y8 C@ !' FQKHa2dP,! jI9 @yrxR$ *S FBHomh 䀸B^B&bf ']u|4ey*_|EwukSޖ IDAT>#q3a„8q"GuDW`; l0 zyryQ]]Miii{omNE:O?~G waas<˅9I縩㲠66 P㼠NwlsR jv?'IT.~W6AfwV`^4VJA &삊Nxah&#hwUy> QA jPTm U"^E<εbhQ)jAEA9$99Ol+Ffc59{b=Y.2וŅ" L 1|4NQ:ḱ+`p;cz'?{":t~0 [n#GK/핎P(Ą 83'TP45jPh VeeeuQ̞=\HϚ,L$͒fٴosV,MDzB4KTLw2<M8˞J\^4 _cXDgC{BOӄh&F9GHj|)9f(l--94ԛ8I LMiz =$GvD"Y 8Q"d 4A]iLl/q1dSh$,;4QH=4ʬ1qVҘ%VELUNj8ps׷2:J㯿SXX+=a0 +zj?xJKK?~|8yIkk0f=8I:!*+4Rl RP;$ݎK1Nuj`\T-U܎3uAפA h&7I ?+ :0!ԐKI)>-I!`IA"RJiO V5lV+]2L)y"j5^:LGw}A0bMoW [9sWdyyydHAADL&(jsاv4ydܾy3PX(MgjMLRڋRHjNKRHrǟxzz t{A9݉$1d'%4PS+jN2xeʸkXe7/؛TNTѓb=l )&!Z")8nI /*[>UiTu,)=4S{;ճ"M(N2$W2/ #lK!l&#(vPJ%rэQ53T^W˨ȱCiyIjXxq]2]zHĬ\%+KVv4֭[:p`aҥpg3pv!V \s vqFlnάY-sQG='x"+[%;IR5n8^l 6GiܤI"Q; ]0bIV+Ϥ/TRU`Rt$A1G#yOTFkM?18~toiQR2IxH@>99H>#O̴MYh#h\%(A{vLQ .=NC+_p=O#8NTSG.SЏJ-JU(QGE$>K#ʼnAF*]ꞪPR i%HET) )մ$0}t2v@}e,Mii)sGf֭TTTmlld޼yxo|f[`&>W\qE:ѮjGC֮ά烾!C:UfO̒3[H쒣WDS*ZbNnM pܡ$vG˦<[*<3$JIB|u. 6P D(N7^X3~#+_yIzԖ,91@M!8*.Iv`bA \H"]}nICm1O9##ХJ(_I*C45(4QC|0D5QzRR'TW#Z] *"LS_)ʻR&|A Z{/_|oSLf>iwW[neː!Cٱ<_5;wNh{W^ԁ=6[vVSkbay}%KoldpMˮE42:A1rXC|~-ʑ7 t wMI+7)hLMh@GRG!!8i\ԬrN؀ Ќ,a D*F Ң ,&(AIaP~IR@1HR.}NԼ F4AI ;p%Q)b+~$k)"ri"L L4!H`!E>d<,E}Z@u%@.]ʴ'1^$1tgn9&EJdBIIˑ2,g8 lQxk$Ș `)շ8 'F>+_f0[ ?䠑y]5SI'_q^C-R2v´`'7[{28)FQ~bIQL%ZyTE(bqxH|d:KN/gQک^Bv.|>>,^z>oKX~=gر}l{o1q p饗ҩӁgҏm"W_=Guw~aŐD:"Z+W2`v{wH$ܹsȿ+ɂ ޽{shѢ=I\ ,[{?fn[o{n%,"9Buh4.e0Sl(|Tʃ:Ԭ!X$MRp汸;B6nof"'!+|V}=;w7|y>APSN$`$1$eZT%.ET&%xHQ9vI&J"q -Ecdx8DT?1yi"(MO6''M9S@80\/E^|NCA|I_cuFbYcR9ˎB^6'Sig62Р5^GKꫯ'hthlld̘1L<cDzrJ̫YgW]]͊+x饗4Xf 555=7|3#GfĈ{puShvf2Ùx(>%tKQjJ;d8Ȉ"O|.?yYd@oPp8SBwp@i< 7i9NeDBϷSq!I*7A"xi ":TjuAE:qQOMQ% ♒3WS28eeu~2]Pt4ңg05i8Y%KoYr8hbyQ2;]\4n>d8p p.dOW OA [TPjĦAjJ/(Jz6 \Ʋe˸yW۷o{/aꫜq,];{{Xz5q{oaÆ}'I.]J:'fruefy9PL4sl&݁Gc5Q1 L`?tFxzDԣ!%{H"G7 B:\J)^N2*#pxl^ 6J^+hu϶~,*5FL)խ-}pYgtR?pΝ˨QT*ŢEx<{h;wdԩ\~iuMM ˖-K5WCmm-vP1cpIkX&2d夅+&6BjR$JZCf)ѼqVsTRI!7'Hsix3z4%Ĩ`?|v9V-Lũ9w%k>2̶ P1{8Y"Ut`;.B *Z!:=eV5ZeRMRO%:Ay!KXiQ1.l ǹb"Q.'Zk&8'q;e{VճF$Ңa ]JY>/nItSz Ӻ( l,d$_ Aw`Ƅ Y|9kvva̝;SO=E{gaĉ_=zEFL<S~O>Gy 6ށ}ߋ\5I~ !~ ZWz0jXig*(Stw@7NҘd%% ~T^%uRJ gv:':yawg OqWi~%vL 1z8ꇊ"? #~전s#cfHidx rK{/߂H$E]5\75E1l0,XK/i,\+#<.]쥕0,Yz|]9[;6-%bc GCs?K9PFUSSjHJ[WQ&qe)wRRYQE;,L,-ߩϲ&ΉU!;%gMv+=>S*  ${szlT~rԠ Ng7f1VO&0vx:sK˫OǯK]w.f qҹTTU6D:t^VR^E D ʞh'SN`x㍼TWlS7(ʉA ^C !R)`˨\FN㢙0u(adOd*vC6Y*ϥ!׿ܫ N>1߀a̟?SN9qwe} i3fVZ?K8?>'|2/#lsapir衇Jێ_|>/7iҥK|A~v`OM䪙E Їŧ0Γ9Ksa% drgIa$W8IJ4N(ƎXb_7@Tw%q1iϧe)rLQrڗu lVx{ ԩSfɒ%}'I'ŋO~›o駟rI'pBގlZZZ4icƌOnm#4GfTyLMB6E`BS Mdh!I"L%Љ)b$B=Dc Ѣʲ^ ?~a`ETZ<‰_L%gYi&*ǍK/SL-n$$ OLz 44U@$.݈ rr@D̞=`xF*b\|Ŕ`&6E(8#={6gy&˖-cРA̛7#GsGۄ;&2L:&r#)KR저qL3.U>Q$2#}<EEzT њHvIY:PnT1Ȝ țrW+CnNƁA4S8c=@hPwjXݏBka IDATq|4P@M4)QUuG]VkldJB~nvRB-tJcERN#|oN38e˖ѯ_?MƤIW\C{c<L2nݺ}k{:u*~/{ m"WM_T/>b7M*Jpv8Fl6TCn.ޞGV)64nRRP<_Ut|o$LQGe|YPiyLp:TueccË2@mRi'8(1$Y4%$ HHO.҄inQqr .ӛFRׯ+['B;AtBO?6RxPhe~iI?ط1vn}j,jbC-J@wc rv`.dpҝ͔SIS)줄^l F(#`@ xHiR8䖪d%g)nI8IDڥ[LZEL:2e0&2[a#v4#V<鮿$ïU%E!1H0+_Z-zSD=Tbࠒ2<։G$<Az411i:\`5OZEtTA;FzK\T3 ]Mr?oNboѩSI%hhM)*m_et)+yV|MY2l`'F eS(Eq |qɓ'뼝yb1ƎˬYyx<jXz5s?v/R{/M={6s _~aÆrJ ;7&r!@|@*%lv-QuzIh5C)MCRuNJ+uDIVTH+wiޗ@%uR%'֌Ac[RLm_K׃!=J:cn+ Ib(=][Vvqe2xBʖ(~i"5 ]ڕ'*x* (NzWFexyIPL-/ʦA-/ )QG r \Đ$q_S|]dyy],_*תk+DJYE?V2Z$"3 h!H/MD{ٯPPPбOzI޽9rd{/mǬYٳ'9]w3g׿57on}'$ &Nȑ#w9;m* 8IJBJmPϥӯGT/K^EX{FUV/D!=V*{]ĆkE;b=+`">vQnW.I$k}#8gv/Ġ )< -h+u"\!7=NJBqj:REvRvA j(%& J݆~撃ӭJEe@']ن$;)!b0rPʣȚ#J@o*{kԊE=ED>hi\U<]J4M0qDN;eEee%cƌ'. /cg}V_ş'lٳUߺu+PGicE~=&GXҤmw` Yz4Ubu_n>U;+ Zޙc:^'kUu)6IdrU*>6+" T\DMqza`8lJΧ$ IsxnK-(NDyx#xLߩ0"^8xclJAPO>8$jSH=nRiq'%QD=Q@XE9ڨ!s"JI4U tztp$E̦g3rЅNت"N6Ћj:^S x,oYr88{(l>;31cưn::wK/`&=|gh=z0sL&NHUUU;rضmwy'&L/cRQQq@[:Fʮt#J)܂k ;RPZ ׮7^8cqE;YVHW,k@ZD 9,?x8;`ju.6z|S,>y 'BYU2 pYlQfwZʚwjbR_,-<.SvTy<ޚ%ZgԾ9qc')|'l-dI7Il.iVTJ]\NUYN>>'аu`r>q+P]~Vに}UQ J{Lb+qO#45h&Z5ZԖ_G̘1dzvZ0`N'~sذaMΝ9sk.2Fb\y{yƤIBEQON$r[:Fʉ!:)M>D~/ؿ:>K\4!jͅ#N;(O"V]r9znTCB׎Vdʖy&LA tP\f X> )&. @MWQyzȳCwhҳ(&AMqbk"L6d7rۦRT4 9ut>unOFM%ciJTwY+w}7yyyu/2' 2xླྀDq:i כS W t)Q$5D)M䦒sJw` |CSCJҤD=5)l|m2 WW$ƽ`͆WQ Òfٯ$GZչwߥ^'ĒY׳;TRN%Q 'WXq|zpܫ$xSyjCzfF*J! s<;)]&) Be_1kn/%% jwMl|#It67/MNEړAEZ3a"᧖bҕZoqs׷2[,_oNYY`.]p7vl۶3f|]y啬XD">Wݐd?~uǀ_!N3}t.]ۙ3g;wgر՜{a֮]qצiӦԴV1}tK~a655q'SYY-M*@QrG !2tw냋Ma=(8BV?SC(6T-4*#OLZ"jSᳲ&9t9KAcOq?RaSKQ9YPӊGtp~$K.y\&ҵā.oJʉ#D |bD>WQWWǭ/8t:(&r5<9@.hyjQJ{ISsX31 !"H2RArKFz DTR ebQ BR=28G͜/eItkiuW2+hYUO6ze>@xHRH"Qg:Rj(09WMѳk#z eΓGF7iѕ/ edi:WZUUn(#QrL)WwJ$ngW(GQ$yի+eO}Q.b]g'KQmy[L>ӧ2YR)f̘A]]oz+al2nvT&:k,_#<ŋwQ+[oOFw*ۆ)S`wu|ɓYlfދ6[iZfq5!d"k(ᤴYs1Qֶ+׍V*Yfy{͆٦J;U .z]+rh.,uȐi/CC*cΧf5L#JY.10$PpZ|LVr)e.cfq6*4QQ*RZvթHA׍!@ RGf'fH7SngzM?)3PtqIN7O.{u!Lu xUy-<8kk29lٲ ĥ^ou]ڵkq\LD(..gϞ|V8q"~)k׮%/'|o?T>kյu`Ar皳Ku.Co嗟LtI/Nc,O2v妻' Įs$/X'ڳ$U3 BJS%9$J2s:G4`4E]ZIkxa}Blu.N'Z'%J H&$lZ׶dLXĀ9'=m*VUe{@ދZ&(he5VuE3buY `!AA9H]V*[Yl<#6M< phd hyMIΎݛz8 < 6;x׸˸[YbK,aӦMTf+`o̘1q}Rc[`&Ǐ_~7߾f޼y$ ̙ӡx&r'5Mzp.**.C3eW8YN7/@-.G׈R-<iֹZ`}N>u%C9,2(8r'lu#уMb "a_u _¬#F4Ǚb#=u(#h鋆6+ϓO DT2RڔrkH, 4[ϋzV•1jz2\Lu!&vV׳ 6߈o'a1mcT']pn8QSSKhWdY^|Ei\yqL:|bNYr%Çgܸqte}M7u]g}ƢE4i;v0i$;5/2?ck6+-ԛbǐ^U4t)CV;nRYdmN6MI_0 t▘Kg\e3(@URF:mR;s6{`e@i2JKVע::B%{NIR(.}CZZ/N~4SBUR1 `$BwW8)HVu;zA) ɕL zFc M,4SF}DRryFYmIVQԯYC_n |lqw.G&? %xd2&X)|/@Ƃ Xp!'OcL2=;3Gy72eʔ=y^ 2w\~y}tG}?8NO)/۹s'|O=D3G6iI Knȑ23DБ$[-fR2n L\egSoH5G ^dbc]3izsNw#&U(GڢiuR+i>>)dQJ5[.uN*+:Xl+}ݨ/"qB pp"JRFSK9 ,=i Q&L^JC,ju sV 핃dQ> 䒹eHV!N}-UK/I$::ռK:^ $~q ʨ'b믿B j^^Aee%]t6mbʕd2>?`;Š+5k7x#f" Ͼ曙7o.w}n;ˡʍ7E]Ě5k+k~iƍG$?@ȕ :XtcExRLhj8et:(vT]n)IVTiHsKR&60tuvI,ۀſ,8@iQҿЛάd6t9Kjm=+lIm!Db;]tXu1 ZO ; f'^vRˁJq̝f;D؈]Tj"8 &aÐ]><3u vf;&sT"K;"570CT$:{ϠA]ޟ>__%\s=Guuu[~ :C2v;Ld\z'//5kPUU5\âEp:{ŏ/Y<SN%p1̅bٲe|G7| 6mĹȑ#)..fɒ%&M>#64u'Ï rKhND eƇ!Jރo@&*q9.{+2 ulE&$pByl#&kw9G !G !A4֘) iW9[7R*a)dpK(ewfo)[>LὰU(|ĉljAT$g&l@_OYlRM&JWbeeb}NwRQuzIhM& 5 u"H‡2%DU9-#3"t^UnWKqVA&1|6 rXnRrYq/@Ks3UUU\q̘1r^ynv~!=F3gr O<ӦMcǎ 2N: O{g}9sd֯_Oyy9Ç3l0N<`&sY5{%KgL&;v,۶m\:Wo^zq '?_~7#<[ſ x#F_]ު*~QRRB߾}Yf ^FMYY?0. 4Y`w]t'dʕL0sg{}j˖- 2/|/i'\Yr i4O iщئ$6";&1|vxiBg)t:`B_l7/BjhP!!Wܹq|,eM툒A{F{О-#GNmV\T8Sk4mJ++ڕTKe~Bbu]ZTSiH;t3TPa"ϬMϧxG;QW*:Cܤ*ɒ84ҍ-8><$p!@B'J@c%8.IE)W\5qSfT,a՝V7(:V!CL&1M3f)bՁQF1gΜFW/sΡO>/#`{^:/((fټ,X x뭷HR >z>3˛oIUUs̡W^g?Nazȑ#v`DCDUߞCxԪ*Y]~s=zsNOޠn,圴!p,%k lo۬"[ 8t`I4>dr#%@l!nNu_nz"{# 90 _"TZ"W)D6t!88INl!jUS8n8n ɹM]s%HD+r j䲴"]˨C5l:F\Vh|MrYJSs0 o^-#Lu"6C=A>lz|iƖ-[ls1:;i\{sK/QTTڵk9rdiq@,7oUV3#pe}v>>?x`lBEE#Fh5oꫯXp!p@ ƍYnݿ&Cmm-g_no樣⭷\]c9_~{wz3g2`^&U_}&L裏o&Ndn66lAܹs9S3f o6SNeĉm{ss3C7~ w`MMBP=|+*Xu( ӎ&4ʈ6uFR{")Du>rHgA>|8YYY<gfΜ9Ջ.]PZZJzz)ꫯ}ݻwSXXH޽; 4h999Xĺu먬dڴi\$V 8~u]]Պ?涩r-r-x^V^ͤI q,/2k,>&~UV( YYYdffq_6֬YôiӈD",Zz <"/>}p%0sL;C0IT1v|Bh؅Hɷ Wzi1k"b_ (Fn_IbqlɊIx5'bA⦲AKQvQL|wzIf5BX(lAZA*%tl4?OJ{~Nn|8 sN{9֬Y͛1ͨJvv6+WgϞ$''3d?>СCY~=۶mnDhڴϾt2rHRSS0`SLaܹ ޽%K0yd.첟 \iiiTUqƌ1'M? x<8 D"X,j)ȇ~Mo~Cbb"=@U8f 09spnN*J bBAcI Zp9F4C;d6e_;~C Da|.'f 6AE }|_"=NLJ"YH-)L!+UacfRo`&+3ǂ$Q|=ը5Aͨ0JH4濿."aT@˹a(i *+Nn_La ! R'[o^bŏCdD%ҔRITa zI2U4[(&>$ بx{hG y‰ JǼ\'*YyyyhFEEK.SNrPUg}EQ˹K7n:t`ժU~f͚ϊ+3999 0 /LNN]veϞ=9~5\ïkJVSF#<)--e˖r-~fΜi<,ҒP5;'d…̜9w!V^ͪUX,,]9s՝G}>?m۶$ ,Y_~O?T&LĉINNСCs!ٳ9po1M7ի~"~ÿk׮̚5v۶m\)vDEE6ٳgIրsul  4 @*Il!a2ɧ$*񐘓B4i$tjN u 5$ b#A'PzG0.lJMTyZe*+AjpaǏn! $RS_4NԮ?%I4DDJ 6tB1MfEWǠ}=_/GqyM+T/5 j߫8$ O cSo|8 ~ ,ȑ#׏E1jԨZȨeW0p@FŠAXbElii)C @ PUDFYr}vڵkIV&MD- OA4ƎwEӴlܸ=z0yõxiD6;6}_&pvS%FA>4Cl"!w7X 6Sp d`"?&WLۇF*q# A<3Q!)!^oA %'$)Y9i0cHQPaL=lB_0='[UeOSpf*5;XMl={YTB{I}ΓZ7+q}b6]xI`'mLHD*!p7zڄ&5_I~bJ'6OwxQ>ާN'ntرv /pիW3vX`Ȑ! 2flFԩ]t ,8求 K.e|'p-0i$ڵkwk/o~>3?AXl)))ۗ+W`.].zE֭y׎O=F  |wX,zyvp饗g5eSJ%]l2N>YSboJ Jj\Ԑ@-dTrDՂ7G=HzpcW՚BKK3CʿO>5$9f%DD{)Z2'$$_dEl6 p}\8po/YfѵkrNYx1͚51yyW(..o߾,\1cƜiٳ'#GdҥvmТE :v޽;|ws̛7zl/__̶mیࡇ"ruѭ[ur{ٲe k֬W}o X'B*IT,2g /Pw;PLvdtLAU4[# vTl:P3sxru>FL(dTҳWăLe .U8DL&>,qo{ TỲ [(Etc VI F,ޅ$tO *bѥ6pSESpSEkvڊX!A#d2DHЫOEb+۬YN%JȋHR|z<L0%KrJV\СCrrx7ipY~=;vQ̙3ĉ4i:t׽d@78=ꪫbܹteX,XV(//st֍;k}4j.rssU:VpXxAL6@F';>l VГD|hKʜk(S2/0f{'޿UqN:ѝ#*b1HSL,i&*?ކ!zUؕ8'*%\^FH>%f\JG}5A KQ/_N47-bΜ9  L@B0EtfbV+*d:Qb1=bj$1[g^R( aFv$WȪt7FЯ>,Q 4HW5ʐqy/S&VtoЋ( .Gf̘16T7ndڵ$VߘTu%\[HՖ{Im@˞0)Q0[j ?UMt"%[HQ|E-^lxt,S-]<? *ik(9a4!'c֭[GQQ6]Ԡr ΆK% Lc ŘK:ɉɘykXd:vڰfHvu, 2qC(!q,Yk$.FszltB,}zT [{ 8M0ͼ 4aÆ_^x.ֶ>cvI͛9pÇ?էQ ұcG:vĉkvZ, fVZf3gϞ~***馛hݺu>':[1HB]RFW U E>XN?'e2:'_b 7l$S+! wkMKHd9}U*(&x [JU<LvJ_.?WiɠWpt؛Ipcs,ǵ^رc9yѥ-+|a%1;!aFiLA-tl"4CUMsAF*4 J-iTҖiB $]0Irg3DJb6S#׺\yuO< 8up:{Ӈ7;{x曹kv˗/vӯ_Sܹs8q"+W5m4 999~+߽\ DteŢӐ;XMNd?nk a]L#*"0ڧx%(FPB IDAT$K&!ʎ ƙ)æGo!j4!fYð_X0tP"ӴBIH;,(7Î /i'YlemJJH3ti!7 QuEEQmiEn 0*6SDaPC~/+Fԏ D( VjlŚ˲1-Dt֭g%4w@AA_xyꩧ>|wInn.~ZƜ3Z" qa|> G}^{;wi_|1&L`ʔ)` 8P@Y,QH2&}F(hF+rlE%̂iSJ2xD"щpPY +zђF:ۣ95lK6[(q돭)*4Fm.]"$H|׾1if)+aGEŤEioF7K\gY:&2o=X;Aur>͎Wqw;r3!.K?6tS)b`$ ꆾEX$~(Zfb?Č]MK3)Mф>-Z2Tڌ;{4EQTDIDȰPB-f)ytDI5蒜t;, ?ֵiD"dP$4x! TYڰzJzu1WjNc&>mH+5@b.7;3ĸK.%$͛GǎKܹsMؾ};V'%O0e 6m{l\_629BJJʩ_ic˖-L:0ydNii/pQ'rN e+F~t*3a\T>&6p-". aa }b-7OսW8A|+ ϣ@ [G)ڪOҿTIkӦWEPʡ\H\0pH2aEH(TJ*BPxDlʶ?|"b'>"'"҅H! G0[34 c&(4Z$|#HlǼfd_+!^unvRRRX``C>}ݻ7yyy\\v; mgӦMoߞ}qeBwu={AP Ꮥq6駟楗^b߾}\z?ݽKii);wG;5=9ǮBb򎨊Bf-1N_숼Bxqa@ ,o`_`2Sf#2`HZ'2 Rag[DmǏ&H *MLߘ9%Saa,I3 3 fR{.hs  1uTfϞͯ~+͛(|W|g|g}:yyy ǀi}:W_})#p5PXXHFFiXivԙ\Iϡ Vבj/OV q{3%O}[;/%B2iC[Lڻ!P\`B~A$ `CU)9'׬7LxJxkdȇ{CQ5eҵEz 9?tI* l \mɋ/K^ABX9JÁO'ŸC%E ? xְl~TnIqui*??z."Z*$/[Rۧ͛jms,[sO?t}/ٳgs6\zǬ$6c  1rHF)S4-~{1&O|N8?쳼ݻ .wwRXXHxgN*K@)2/"1DBB'b+ٺ]-KRH8䕐1b}J-#!{ e2BD5}_p4WBe&f)5ZmJ&̢ƙ)f}C&Er&|W>CC=f6Zt~KNsHC ^h{./,wMh xB)ZKQ,;ٮJT`!L5.A݆_d`l^lbZSo)' RmAa,ԈO} u_fXeIxRsӻF2͛W+@Æ c۶m{նXtO^^)\ك -Z]wE.]$%%N Mhٲ%?Z۷qFf̘7ވ>222xg=z4yyydgg6:+Y1T' H8Np,+UhN8F ײ㮗yv>M'oÏ8aj<+kJ#*o}djjj(//gǎ<׏w'Gy󉐍 ,`ʕ;m۞~n6h߾=/7|I\e~I#k&fT0ZU-\Ŧ d7*Z=Iu.@nI !" 3+/^0|[wrNӗ/-lYIH}Z,RL#[:SG}[(JJ3cD6H#j_5.$d6NTAzRl8oe$>8ʠle7F1wm+B!8$Ѹ5$P 61a&'|gWOVC"uȍF>y&4Zb-ddrkZI1ڎrrOV?#PYʹ{s:ZTc虸{#k?UX@0qY8hdL&S  2Z5ոM$ՅN;A};i`OUz_Ҫ6iQq?,gݥrGӋϘ>ӎa!j/'V@UnF Nk.JPAa4JR a|9h!F΀f$&IP0l`A7cDh >LDIϔ4f]YRNK% Rk'?u6AUݑΘ[pFxyOd*==]vq3R&N_yߛ6mꫯ&駟ҳgϓ3 `DJJT~;v,[lK.,]m[7o+vR7?rLFӈb9ú`[z(D|8*N"h}bPʆ^|HH:Ek4 +9R< B0&*Mn$FI TPT98@6QTRl^kUgڒ&-"JQ /N0 TÁ? ]r.35lˉ0BஓJ ySsv^E}CӖ/_^((( 99p9|̚5N:/(ŔqWl2?r_|rnFڴinhÇӡC{v܎;tR ƍ޽i;v\ԉ\=IB+>@ +cUPž+dGiruT#'bR5FGHO .A-ۀR "*tUCWACU4r Jpu{,ow%ls~vTTRmY "\'2F(& \* |"ȏݨ>6֘TzQQa {?)]H^ҩS1yR1Ǭbm(^ vGQM<8Wꫯ-ظqVvnaf3z+v?g'Lj3<9r$O'--n8ٸq#=z` <g\9('j-MTM#NLt{?/$cPZ&{&^[0\G菱^>]FȪ iO*8b#Ec&(hP ~"2 ԯjZbFZ6iIɞ+D6gq.MddK*hB/fIV˜# :}u,IgOƄEziV+, &VXPc?*))7| 믿>)^g"nYjwuᰮ=U_|iӦ"zb*޽;WfРAW^?mW`U V%RAk\4QXE n)KDJEI$T柒ޫnLŬ!Z6-_`^Yyo#q#s >dgۭƦG >NƦe :v`QVkx*HLZuzrq*+WށBm[!d¦׸fdf('RJc"X : wթxkMi(?wvBdPz|)3x.O?\Tj 0|tȑ#;v,]t9ͫQD:b1vO DLAɌH]o6l!dU=)AEE/fĉ|dee`oK/8w}ٳݻw=`vmTUUvxi0dx~oLfJ#}TUUTWWK|z!Mlb2ar3*ۄ$ҜAhu;J'{V!}?NɄI(xε\DJ+hi2liac;8[깃J$R61\a#@PMH5Q]ӫ[G{KHNN&9? x2cƌZƗ8p :u?2{l4M_f…dgg}vvzs}zy2 bƍ0ATbolBmGGJ0N3L:?vjHEvh#F KG:>x /=Kr"W&Ԙ%GRk2RGHSa_#-F(pfPJ\%uw%ó*3l4o͂ƂuF*%$&)$ FZ˚p*ƫgSbU>"vu9Kѐ V>ܴ3[{r`?oȑ#4m;|>͛~~-ZDII K,$afΜd:cHDN2dѴ9}JVP/!,dZӌ^(:6v|8 bƫ:QBa:lGfK; -@+È L&(j]ګt3W%}:BC>a E>z**FKɋM;v}} ^v-3f78F͖-[hڴ)oOn /̙3v$4-ěׯs1fDen'@;`c; pSEc pࣀ8RN42,DDIPY؈!mT}C߾}4wyO$9b6^2n"ZvhC *gCۉfR_jӚ6S e$#M]511(+hA ~Z4zK;Úq6s鷺ȏ?M]&|yT.vaG4%:,"~.&O MӘ8q"EEEZU}f.\xJrsN,XO>ܹs),,?$//?^\ygcA-?v.]J&M{Y'mڴaѢEL4޽{ ?*#Pe)J Ltw)F{n+[i?<:{ Q2&1ehǏ/fBT1tw?QB*^c;-bUjb[RD~qDu睚0REQXlH{e˖GQߦ,Fc/4j3mX,Q4$4Z]$q-(−{\.ċMKIqz9.¿zN{aD%͒7SQ},mɟ݋Rsp]h7=$R!޾\r;w./UVf…$$$0rӲA0ꫯnkqw0w\cl#V{믿>m 'JF̓>ȢEpn>}+„ JKKY`SLaܸq&npvNm_B7 5/DXFp ˧k# CP@\TӄdPJBBiF1s!EtaFVyRôVWry}Oud2aZ袋+1L]x!8Q%ɪfTA,"j(ƭ،J`8 Xma{c}_@$[8/J::t֠[LʼnW.ڲNTᎣixy7, d:j78'D|;|c zO:+Wwfݧ_}<?F:6k1f̘3J$s[ojc ݻ7y$%%UBxH!{6gI֭[q\dggcHII9L4oޜŋ3eʔZ>7u\U‡aq4I~+oNdζ>6b'+AR7ETDt_RRHJPZ Ѱ ^r(% 1 d7F?>}ЧO~m:oN۶mO"J<hOOV:ф쥥hff#F=H `k5Қ@!0ա;p N1K5n SīV*p,#"GC_>O&eﭣ=#8S77Ƭync :쿴k=z0k֬nݺuٳ/duAMM @{2b֭[GRRiiihիmBdYf(B߾}ٿ?_?5kЯ_?֭[^i 2dfԩSah6eyNq㙄K}GQnXfONrkdggӯ_S¶mسgÆ cL:kEQ7n\t`ܸqлworm6VX>ȻKϞFqI&̟?{ UU3f]]lN䪌dұLɼbƼܗC*.A$'^jHiT51R/u32/0ܙ4\ 3ۤ(ՋG1vX6m7쵈;<weOΔܮ|hilJ̺&˞ SNdN:Δ'SA)1 yXe]~{XEQ-{Q)$k`ʍ U7NBi +*ViIf!! > pEW;8.,5; ʰog P?.@.(t"$,Or5nRDSs;qę3gXxM\/~!@]#&&^)--eΝv)**bʕfÆ lڴB ,X@^^ƍjܒ 4jXSSD7> /C=4Ǻ466R]]ӧinnfϞ=B\J蛉(![[ؗ]g Fђ=ӷb\.ؐ+"J5Fw( j!UAnaxU̶Ŋb*8*++>}:gwStHbuȱj%u P`v-1*T.?.v[8₮1h`e&mG[T;ܽzOO-@kPEFQoЯe{x&MD^^6"*66OEE˖-#33Rii)---,Ys\.jjj${w͛7c08uuuu曜>}NǼyHLLigA\=3\{GbܞV)rؿ?ٴ@{rW9x`0D-v6r:"&cÄ#>Q*GY $SdFI#:j{5jϟg֬Y7u_4Y]QHi6rɯE@X:J. +E :_#X^\ɩ.e=F%=gwأPZ-W*E~bN!MD̞JPkjR 5jv">> yAߪW^C: rssٷo+V ==`ژimm%''NGaa!vY@~KĹsغu+9999r'O3qDFeϡfC *//'%%x`eR@D˗/n:rssl6ŋihh@P M1l$iB#0Fv/$1BI(Z1/!t(EJ-ĜufL%<.] 믿Nqq1gΜ`0ܴTQeR>JZQWRz5Wn#>Aa*ztz|!m65tGO`$˯$)USS9ԥTQui Uqzu-GWitt"n{vB&ߥ>frss2e ۷ogddd+`2ʢ'w?<+<dddyfNTT̘1/R;v㏓Nj/HGGRlrCq!$Ibʔ)$&&K||Ҭ :i2333f g̙deeɦMʕ+3m4|>߀s]j`_ؽ{7)))=Nnb=吝 Xeee̘1'NqFYn.]lONMM ҏ|3mڴ[20ٳ8NRSSo^0aBQ%I6kn)Ig}`0c|Ɂ>J\566RVVFBB3`v3gQQQ}A/镸@ ˪Z &#ĕ@ A?"ĕ@ A?"ĕ@ A?"ĕ@ A?"ĕ@ A?"ĕ@ A?_7nz0!IENDB`pyresample-1.8.1/docs/source/_static/images/tb37v_bmng.png000066400000000000000000012430261324347254000235170ustar00rootroot00000000000000PNG  IHDRߊsBIT|d pHYsaa?i IDATx˯%Yv[k8GVfUwU?~(a٤) dHsOaFx@C{fۀ`SA6%6[~2>9ZqNVUwWQlnd{ύ{N~Ƿ    AAA_^ <ȃ<ȃAҗ׮w\=xbwl4Ϙf{9g Y軌#)1l:VQŰÆǯmS8boыPP0(q;0ZACDN׸H\**=(.khH]fnTN Iq#EوMDWwH]wCE1 "Y+`Ղ#*I{s_'\wX58fƸ"f*xpq\uPKeKO(UueH\>>yHXX-8*}@IrSp7pItK1G)an e/K L|vENkcc|ݮ9$83hF4rfPfjut˛=>2훾p:yQ\3.ub!*. [$vצVԯϲc 6*{mJ}c,cHQIڜ.o.`&hI}R&gʌ[4g66h|]*9& *C[˽9#ĸ%~敧V Ũ$*?2DU\XW(#}Ӕ3mU+nI|o~#0we7 i|K..2짂+ttg\:$%ǡ#fr(!uǙ&nG#_E|@_:uKd bX:MAG q@3V GPoۊ[+HBvHHGo݀ .,Pu#b3e_˸'ґ/bYxݰApt7T*YC2#"R1Zn(ۂt\r/1m,^5I)Q~ fhM@HaPP289wLs97<"DuH 8a^+.?RO{f q!My\{ŭZjN)C%ѥ|mnK/p9yMc#!Rhb\]}OCw@NF]PMa@P"HK FqtEr͐Hϐy֑sGo:#MIUL CsJ(]q GCfbMځg{8Ha2Veࠞҷejb?kQY=47#cKՄv=Ɖa61+z `|s_[ofj$S4op/iai'օgN抽;9v>鹗]>qv VE_8-}y?]FkZʑyZ6IIm RϨvUs7ί;_~ }] Auikk-QY4@k<P*#n0=;773 f̏@d;cEݸH[">Q+f{T 6'r4eityT,!hNgݓ:8 KqٟݯxV/#>g7ϘϙǀR="pL}`%gXVLۍ c˒YBYφj c܅iFFGl猸OxCFJiNz@K[TN mF1oHU=OSe.ᴱHA\:RE[ENQq3n5C~GIm j tܥ P+oH"&O|[C.hHa.{2-`~] H}zwE躞_7UF ymHР+[W]{wYSw[OoSw_y^Hz>|"~?6CG)DAt/*IIx5L#2x-3+[Ã4ZZd$0pɒ C&*śxr'3 ҀQDrKwv䀗@JT:S6ÎjՊfFu" vjOn;m%9whgԅn.)džN qI ㈗[>|꠹G+4qSHGHj&pCi06W?, c #w)5DoH]fB1aaH5яՉ]0޽qK7lIf_@eۮ霂`d+֢ZS$$2ZT'T)SאܝaZKs[9.Ѧy!qg gv_%Á=is6}GKCklG$gczͺ|LWhpgX9 ҢV<"XN@n~\k.|PݠVy3-n! }ji1sDfs8JZEϞW`5!4݆ӱD^u$s#O;t\+V@4 n/\PI{%f--Ixͳb8+`MoGtQQI"w}pǗt1 b##23c-XjVр6î %mǧ޿ ݮFyYqHҙA_3!c5{}_?]l7_8sx_=PxKOS8F =W>A~iz=sƫ58X5T@q*d E3Wc|o{a4|f6u5" 1W1evןªb>B"?ՈL g|Ъv=0W.ipΘ$ӑ a14+7]p #J]^=P^P #|rtЩ )V$}$S2ILDJI;$ɺ?,HBD4{YQ:G4e4#EqFKD7츽}N}qStOrnBYs^ȶy8VKE,#Y76܇ +w*2"^}xF8Lﳻ|?"V;t1C&ۧinxDA#+ PH9 W Q`- JrCֹs'w.Wވh+mѮ޽ǮF77iZG$ ( BpT>jGv-E?樖 R{$N3֙*t1*H #Ni#4X5ŰCČz6ߴy= Xd~c)-$9Y5)eD8 M#%2[-H*iQ(9>c,''_m+ ,ks~yԠ_} c@O9=aHw~>6G>Ao 2I0sqWO|[a{F{6Gv-8q"-VN9QdZ#* 8$IhΔc9talohl3` .0~:yܾ|[n#\)禎q ԙ*+3N3Ib#&ITIvWeSGJ\bA+G:R7? $*VnP2 3"0F-IdÏ ]5&&(]AëSˑ2#4ra 9i-SԌw)ؽ3xa'؅3GT 9)#B#Z7HqZBgô5cQ84sØ0̝ʏ1OT=Yv? p]߹aATgg{A$_f1߽Ρ19;&-] Le=ݾԀE?j2cUDLMP fs^)'a$dGmnt|J@@jEN*6V61>ƃqm.~xut: -:ރO .uMAWY9kwd~\~2Y .G=RNIcu& 4,@N8%sވ|#6ޅ,F]^WAJ{ _mRYu9F1H@$n͑H{Ek6|m6ctk] sOFSe*sric=)Sz7^z1/.1r+'-9CS Ս$ecxOuk EP%dM!-_t:YBxJ 9 G0x\p;RyJI$(&8 юIe\27Fa{G[R% V)vK9E4)Aݬ$@!r:2Jd[JW~[J$)VrļFh!ҏ4JpRӰ$D贲?3ͅFRcw<O. (of ]f# Y 2VW||>(ꋑ25rOcڌL)'R}#lGD ֖q 9AA6-uP#_I IUja*dЃz2fOa@Q24SDYy ﮸~BAz$t|{ƽ<ӫ01uXXsޚ#Ҫ[e>lj>i DՌ~GR6A海R+q"'LGHah| ]ha3X>b?_-mPyR#= -i= 1=$H4hUyymN'GpHK渶g~:Ab #-GY$:wKY9yy5cS;NysUHvp*r?nFNY sk8M 9 c2n?r}eru}3p58-NxuFܣyu.QRfRR&keW^tm !,KZ+X`MI TsraEjLİ)ձ|EDA(BZ0&;]j,K(ܒx䜃W$$8Z/)eOVm4mbl)|m p QG.:K4 ||ARWke=h~ KzTM]#.x24=fS+cp<eeVĚ%q(g\,6I |P3wT*RѿfaLs-R k%ma=yM?~c- 2MK4q 4ӨgשlZ9i}53G?5H]jI1uge<]:SMt6 !ʨ+{DZ H0O$*3ё7\J]!_k!51Kìi,*`-pڈ])Y{wQIJ9SH J$ IDATYY'^0O%j;(^ >}0!mϜІUүoǿB`F}"3,,j*Ű_3 'rMz| x8A?Z>qб?tCиD4f""\ w >U?OKR9r^+JA QLle75RHe(rNu0р7cdF[Dԑ\0l/dt9Q#^hSg<6:sC&StoF廸d<m$@7:dY~} ]ӑRϱ2RjiRQBsm,AD^i.)qx̵)l-0{ kZ~ s6++,[Ee ,3}V^ݿ>lU>Xz963Ε.JIbE9<<-XPab3 ULn9H,Ҥdu40!`CiCWx_cvv>82 s.4U)I=xE=JꆶuPPOn?sK )ul>A/WsGNDʝ# c-v )R\CMїP7z-אzj4aJ]#]LS;Ǧ#9vxJ,-@G/N?z1/Q'>+QQXrn,p5iK_6ymأ f_V]!7 rW>AGqrce'Qy(/Gsi u\B?\Ҧ4pHiYrb6~FChFb~£tO|)L11Gb:{ vwEI)2̜i:-gCQ<ƃ[tϤDp֚Q>Ֆ:uK|E-鱎t) $S$6Ogڃ74;G]i6>Ď ]ƹLu COHEPR-䄤-ʰ=Ja3׷HR5:V.?=U|6?=!SzԜSpa aԼcIۆ{m՞77vOxO~p6ty -H#\X8'Q#-wZFR=X3}]^qgDVJt% ƻwy']hGJp.4H92(u\ݾxPnC-GgX5қ\W@GgyyfT^2~&6I#.ǵu݊} tiEcĪ Jy뜉B蠭P0޴hkn\ >DZΘl.LH}&)oՆ1'U$,(4%SϹ{m Ae"<Mk-%]?N{.nҲA^7tL+y?߆u92τ߶?:qhV&9%m0S4Yg{?ۻě_wtIq=Ԋ3 Sm] 85hLu'ǵK\Ã.G)ڢD{.xsx߬B^ R'kLԳX"WȐsIʌ> ->Q$7[᭣E^ݢ]ŗC2p!%~ӠVzz%˽Ґh`$mYRP X vP++kcm 8(5UNhShژ޾&)bC $2Pj<+y>a1řj;prAZ@-PZPF|q9iOn邀 +VJ z%Bne{5--OޯwQ a`%ʫT) v"WvKyM)d5\*-[HMr2"dytSWM@ uȸ⟴ .>cSs'4.3 |ߐ7l[Zqe:)c)c>GH3>ד(01| ^W딳GHH_ڌxW¿ӌQg=0m5^q_x-/WƤ3xiB]7V4Qa!XPя%;Q:AFhM^pǖ/" ;ۿVY@0,jJ?}xR[8NFN=g n})[[>[VDԧo?re}|"UHnH*L'(‹Rqx'?wh5 V՝97t"g"`7 z 6<uzq۝<.oDYT!"4}Yj3fRiu[;f;9΢300iĂ3KlD[q0PsS,)ẓ P~mjEb˛H];*?oӦ -v԰r>0Kвv!k%.: 'o ܳ\o"6c)zťP06*6&qv\fDr#Vln+-'It.k'2QꌪpuTXv>.Ġ (Yt[sCr4HvrHzoI9ut(kX)d#[n_Z#cxJеu e.A;5hmzރt:2`Vwq*a,ݍ,vb1! \}zG] JgמKZWxs0sE8].o#9+ܱ?ޡڳF2]D{LL`z{^8@DnYAk Ewl2==Y'{c>pTZEr4[z,!8KtZ[_p9uSDD>;$w#^Zrj xZeg˜O}mnJla2t3qpdۘ+.Fg>ޞq%l5jQ7"͠ٿ|/7[=U4Դ x*z.tC(wߏ*Y^?Ҙ/Ҍ+Px/?2Lg{m}F;}=?emЅtٿΓw,`CzS}ɟw%zHq#t躀W Ĩ՘|F*Pp\_w3G?ϋgO"A<[zDM"`(9o8o}x;WE((o W"W=z :eOS(([rKAsT^n8 YV[7-#i!)JtsX זTLXA4QmBTHy̔I"_1P n`x>ʩ9ZBk yy&J.\>58eه%"Pf7eZnAmL++m6Ȳa}!Z W°/zK(GI7Uyv*p8C8$=bǯ-C߻Ap"(Km8DX4dK:n&tfxt+f7,"r;Ip{Ź;_,YQULLNZ&R#wxQ”Z黎F D꣉Ot 2-?rbLSDKeO[={;COmͰ'[==9:S#ZZm"İ,I^zj%-.m%I2BAejGt9,}^im-gjǓy$Z}8[GB; 篈@+uE)Y r+st4#?6OL}q$fa7B9x~mK,oC>A73K}L'g:9uE< t[Hڶ#d%$z+"J83.ry OR˷rf$G58l&"F* D^=ζf!Fn[i9&'w>UY t (K@ZHN W;"9\ e>5nLqTi\k'\qP+yWy{_۲zc9mUƷ:8p $/H" #($)"pR]{]c1Ɯk>:ke>zﭵ}kEr8~S}$B^-!$/L˕[HM:iZCwC]"FgD-\͛!1FbswL`Bm_kfh5dx)Zl-ޫz*]guZLXBG7DDeCJs F$DHՉM02!e-o;HJF긇lEi@q<-#Ay(0SCbmc&B8ΣdqF$Á<7FimQc0>Aى$m9b ڭ(SFtT5OB„9`{ǧKln+Zۍ+&,0Z6W7}d=6w=\x>s=4y `ޟ¯}ehrkQ#u]le]9 6U-eA =Οa9oޟ%xOQX v[a $vp8,*n _9\,UҀBFi^ͤ^5Ge[ޥA|8$+){4ELC"e$$+I*1Aj163 4LJ26i;,bPŖ&G`v1c#Ym{d 8F=QB jv9!!Fn˩aLJ]7.NsLS$;f̿g7 w9&ۇe ts\ &9L#<.բXZՁq,ή̑ʓ;vEnN^ !QUƚo=N;{5V!~vv8d*P5{sR?<RѮ1V0?᎔:#Zڟ( sm)R\ mMsޭBzdW#bĝ4"ibmGF5QX@- DWaYzi3YoIJZpNgvԉvhgnb"1$G uR%jcq]XAFK6 W/HU`Ƥ6ex5ș"cΓ Fk;L!;Hgʼn%E<2/{|8,.̟x[6odЧCxswZ_@ٓXȼ> fW=m2J+zy4퉩57TZDy(59ꒊ%;dZ[e R ͳ~ *3:P%T˱?>ӼuOBSg6C4Znze\4^Yl{5:#DfT z]E jD.xncd.$\+geq:I BsQuyM[v[ N wH2Ms9G?[M1@~,)A$@ŕ"~K:JΔ7^lϞcfoFD$Kߍa >䥙FB;^P,1"e6<=VȚb3cAcqwnߛ4{H挣lML!u|?Y;2 x}yc1D]5H޸ IDATjQB#om{wUS8_k!zc6 \xwVve^%T&tNLws7-#uz`|#8uQ<Z3~ɡv**_d]y+o|o|?XNg;ԗ_~X,2h.$+% L$_ՠ:Tc{Wʞt2AVf(qEsT=j*̡fcݖu=JHjkTv%dtf-q,9|7m6}f- ace;4TQQ[ mD`J!-$%]d*8xO'zWW$ uzr@:'ed4y&X{*ÿ3јQmͰ/p|˰SۄdU? ?_+?.q+sZ ۽ l1c?Yj}fYRO:@%ζ8r~qG/?v]Mk",[љۍ[-'ӢfyyS|p2t蜰AA3)h74 c]yٳg!'CN{:,IfsT rC ZɣVtrթhTNL@uc+7Z{P*3ڽy,E/)Dy:H uus$HpN& fHt^Fi NrKe:ǢGAvn8: {)f&/Ҫ-69e~XMCsՠQt>;͎$ 13;{.ܘ~/o>HgOsv\5_Bi-2tLGp},(tm_k+:7O=5b>c;&t k2XO͚D!EH}d(Z~{`{ۯ"{GU]j;Z ɢh1nU$Dã-(#,^clV!E\RpC<'բq]T0/iujd, @RAs&5SXzg0M~6Htx\='\.M粞kGf9dE9갟@HgGfNkG_U q =٪#!B\3#XX,IDI!:d@؜Y+i4#R"́sRCtc61$T <.#R;٩YNہ2XeRL SKF~1BJ=mMCj՚ݓ#nwF"k2G6GDbedR]"q'51v"Y.ZICslV2 6 񒵶ĚJ@z.2JL)ujc~ڤT׍co* !%7LCuZ.9/ï;jEoA$g= ^}BTV,$zhe^<7- KNh>263jA):l9Fksv#YlƶMaro¼y^u70طUIGrvp71CPZ i/1!<;Jdڒ_+z;nT6LhG6/ECGEb$_ˁbCȜ(>E`*UG(#i4ou^"Q3NKTy r4jK>b1l:05!]r:TZEČxw̃gD[JZ[Ne݆|#_FX]ߑLBehR#1tbL(n^ԟ+. "D;;7hd<b$oͥ`*4(09sS:?G^-^4B-}>@AUəd;̕b^lx8n8XSpVg+"nnd1a62 K_|UjG V::,.3M`D\B׵|o#֨_/}&?ohT ҝe>JgUsf?%1 %Wl~ĮK(>ZpH_%P=JmMoU u^'E!4z+;B BlCK~O>CX2>[zh7v>hX$n{f~э Z5= VRX5DrNI\Q .:u4'+khTQk{!U$="hHńR]]JA˞57dt u:9Dn$1oMW.Pع $!5<|L 2O݆:>0MH^ ~bMm/&MiDT*CKu&G nӫJ\T'媥-t2{6g &,'_£UyUIK5v[_#h7A]Cfay%,ks7\[w|.WDMНA>`~̏!/x|Ƈ]>ټEEN?74%EW#W?ݎZ9{P@H<!jAߐHijcb{UÇq/1whixGڡ*׶h^i3pjF4Uuی_=-:~DZg#PhmFg6NKʢbyP͑Ά\x$CKx`g z ?aO{A'ٞu4Gu'Λ8\Җ>O>6nEGx 9ޯy52@zb`{1F%z 0RH:Օ"st=9zP64ͦ 't~BZ9!EL%uW-^wުC-"[z:P&X|Du@3cXB)w@hMH ߀T-%ZKLV9ףGb:o[9w^{Z;+i5&r%L5 o=%t'VSɤ^xtDY86kk Py&~g: m;gow!OvA:5jIJ TP5uRJLd6?^aO_e ]b3Ҝؙ; q@#;T3U#䉔t瀵U;fKQXu^kKXBH"m;.esXC3ܡO[mZy B.&аIZ -q/&JM1:! VxNK5kRԪ(ggOXoVLښXwrm6tLsHaHO!IT/=/<7o@x ~իkk{JNylsی=](LÁ댽f08{s4Rx{g_q.|ȔBI-jZ) jl7[q\-;F;ceI.>{H8üC _9.@rtlnʁڽMߦ<|R&vgĐ9H+ԠiR< ؜Lqc]ǂ.5tmOq'MJ& ՕEV63rƞgb`{Rvկu+FVJrKڻьxӊg-:.P^ H<_7PXt%v|5c-Q42g~Hb^G; uz3o(mzj V#~71W1gQ9RkOGkqZ V7kMGVmAh|h" }WS86?! z_ Ut+juIfql+KB+If3L%zgA1 !!hbʞ\́J]쒎H@:ݧt\ g%PFHVJ (bjPu_К/WFx qviˋbM4ՄM+`{2Srbmfk2-ig&טˌ?qk+RG)jQ4/εR$z>1:~8-J̓`w?}ۣ!Q&+y Q9O[؜}%spFTL/MB$(3L&(mlKVᡅϑ`EgG7d_/׾1<g]w38p`K#Aqĕ"胉hjCܑJMpvT 邳DQG\^?ߐ2ocNX-WԾF}ȕXrG)p:vCH)3*k8ѰGSݐG71ݲ(jQ\c |lPu=bhyLδ +Wscڱk:^>c;>mРV`cS[nHG>*Dk:ϜjHɕoi|8FOr}HwX}aZݺ!4:Cބ1kM>!8s9-9ZF$n'$W 1(c08RZрEL a1"dvGhQbM|`!ݟ;vsFI.kRݒ=ؠ%k),j8ݩR{g68O1{A%{$oA"b!_'궳"!JR|+GN5`eiReh}dH݆q0C\TRˀ{B*N R]#44JANg׏v6|y}˧.i˦\}ˁ i 7eQұPgQB e qw ǿ oG T1w^ɧ@+͖_~J͕n6 /#ΐ! zMkaABqqCWs 6c^҅R\&TcnH9vYڵ#<(K`>PSjhZko,8}Ws=)zD.;~G+]"y4WbvS~Þm\^3NgCu]o_ D$5! Dm;ec@xtPaAx|QquqkZmTF͍y; K.u YΟMkjewx_ֽѕ+q\ۓsd~GONW@ !Fr6qcꊕ ɉaA13W"UjĀ+E;gAZ "JMD?P4"݆"]LPJA"ёOK**q Ni0.wbdCCLn`ɴ绺 AGӴ`{Mպ" i{FѢ~CId]K}n>&ƍ; i,G\y˂zZ_!%k>&4nK'ki,ZLDES"[J&w:[H!H#Y5`EЬZ_yng<#,>vO?gyR25w11#:D+"K cs. u̚_#6ĬZ`Q:٢bŋ?.O ˚ĶpqC̦c`ب|T=}i]濷y\ʦB#6 ƛաO#wpۡE!ٳ+o! GeDb%-E{&!LHLj_XZ \IRLqn΅,2UזW}1?趰)ژ۵zu"mJ zo>^C3'ΒuK2,yz?"ʼninkQՠ[AokN|z/eX6S4ek3?MسsĨ1 eVUSJ=QSwx"{^~;7=sJGbߣ8Ϛ`\hZ+_+#䟟qʆ<= u2mX5B[-x~0ͳ5ˌ7JsD? n%޲َTֲ;nKny5/yqk¯Ĺ,=mjmnC97+uQA)lw 6iE[5+)zO;l.}.nR)atZ# H'hN|ʐ/%O9[WLJO&R̈r'q43?U<׽SȀ`r-"). dvu %_Bp={rK*E瞎Z]Gk{ E]4#g1Y{5Og`C"/}Ɖ-L3NYxBs ;שBu6K4aztͧMEƛA7"Yj*Mt},?R`]nn"y)Or+9[JqN2! 7q-X_"fq'hY!m#CXv Ӣ+ֺ>4!`Ί )}!=5qiyVcEA֥V6Oq[%-FXyĞ{]7(PVs-{w0H_J6^CSӌq):B'ȍ5fT)eݚTر=R˞)NL  ʄ=v4T|=\"앃6 X e"4ެ"!X} `uwr>s+Rs4  kW?T%l/AzbRGr.[JJp%Ds<`1Br{dF37(F4X/H*VgV#zz<.@LprYטJ8SOupǨIvo`йBk=fܐ҆RGBŷgbgR7u~)>d)Qh*6RBJx¯+?/w#~X7>tP=Mds3l5B^կ/:PH/uk6/9oMfԔX}n&1Nm-J&Bn!U Ff{5n,jåYZ+0riSFMV F. y@=6 gremW|~qٛQ[&B/u3T-gZmA*][':[;!5cqJ9!'MMv9_- CCO)M7U5yAcXT뚪屛G-uU?:obzggߒ6;q@Bn{H|auBs6Mwh[|I--!۝9Ma8I!B! IV;l|/ n bqG50 u< Ǘd٠@y+άlHn-yHL=\SDl̀06[$Ur]+^v\}nT ޛʖe}Dm^/,)H`7!lÀ%#᱆xGlȰdDM{mF9`}"}/bSzy4׷}:X>vۦ" FO'i31c'wol|c$wXCg[X3+/s0D 3)F8VD YL ,Kd%Ӥ%B6kZՌ(i+JqG$yP/[, XvoȆ^ZBhmF aRH)qkLp^b)F\ [,hWC65nIPm1J3-IKLOZ*rR= q'h#[HLo|A-| J^vX "Ge9 TYOaw{9k }7r"Lac ڏ]@Xc㉶g{u]t ~.'x?DBtz%ڂH"*+0jkW.i#]?"~b\ ~Ժ/$z۽vDĭXx;WDG+*ps&{-ӡp1s: ,&bR7%Id^/ݕ&P3pޒ]E8|uhVH8L). IDAT ĘhܔZRT ڔRF7ծ6 "5GVeO>'|w \pc3r` \QZ<O|Ok܈~h.CјS2͸}B{-o\Ze_𝶠v4}:069[Q0j 1ҏ=ѹ̭\3ᒩ)i)TRNrq[ =ZkG( /$r o œ2O[Kݳ{!k?Xcn /:)kmLנ>Yp\a)i[vqj:n|ҲzeܣRXdEʒvL>|%R%tȐ͜rbxKV xFG_Q$aJ%czQc;BYM5X /b9{OH3V _/XoMݛ:ܾ{p})tX{F. #,LH.h=n ̓2)I矨ԨOLn5kVً:vk=A[e?{4Fut9 ~ YQcO5],T6ӵii G8,Շl{[auzz}|!%^Ǝq&?^#!Q/)J" k6R{Gf(?!L9 1 yORt'K]B%MDgX1L& N֍pgH-[3jƒ$&ȵ&ZR *M3{k;e z'|M{ڳZ+qR ƤellZGo:!#"90`JS;L%ܦ\;iM%cL}/l("Lw~7_d66gܝw츶pΖ %0?:uD:f/ }ΏwUS]wkn@B ?.bT!'p;]g-)sIy71T2YPgӑ$@"ֱtEI/-"fW8ZԤ*ju̙g%2`~z/aJ;}-*. .2ej!58Y9 h% GmVF#- 4-@1xԬu4PG?EnP#hF- @5NZ?-iVBb)$`\<'\qFrPƶVUfUuhBUD9Q]lX8gު&r3#~%Q?IgrekY Xg8k4A)D1ץu׀bK¬mr%$J1^(VrsR$砰;y鱦u;!P~ƈE\q)()(I,il-%{h\K-y0>Ƹw}<(E[ߌj&T "!+;ڔf:f {Hböjc~~dm~~6og; \$j!9HqV05~pwez^܇}‹|ҺԌNpͮ`tKS{B5€ 4ӎ.9)/ ˃eǗRU6wNg9$rVǬdq5f_!3àF )FA؃IbԇkP/#yw|)m]z上@SE_gi;DNx!fՂ7mk ݋VM]0 LK,EƛQmxc4P9Je/ω,V%9OږSc4[3%h>/vE3.V87`PMS݈ faw Zw( 9M&쮸b\sg,tiۖ6(WѪ+sPHjqAq&L;E"jy{)%pRwާ=G\tGZ^<93 n8_f&?ǁ<[~w x,+ }o#.<&2q5~OTny~+U g@7n0 cx1_<2M3@NyaW5LY`{nqR0,ti^h9}xB!ȩR% 9.m,VÂBYV81Z6N }T"YY7fz/&JγF{+Bx\ZNt jKucBЭW$I9(4q 9vQv\@MSR0%V2gF|ӯk߹q/-9\7Z" nKI` Jε:KQE,*2dLu![r)*P b5dz \bw]HVnƟ2:xwiPɷDk r￿z5tTx5yX[e,.C/Jagy9k'l/>E:Jt$S;,,Amsɹ*Lud /_ۈ¿KQ-܇4fԌԾ\D{YqCQuU3 eѺ-~AJ&?C* YN ϣN=<<ݜ`ռ&bꢚbr?T( n ᴯR67=glr gam!bV1A~9zpr8a'FJ"ҷ?7L;7xrf}AE )+ʬh)ʯ9QT }(5* M.#9o~ψw ٮ!I5s,qEa:ݜl0gw{wg %+ G-a8% c Dx)3MqADιJbR()?j֛F0g*47I9԰E\r VE20 2z9W?̽`}IX2~Zw!c}%ҼLZڗZIOգg|g|G%)I)NJt֒=;Q5!U|hZ4ѐ9ms%)mڒf xC܈ugLV̻'ˈ 0m#Zf-sV#7b)3ǝX838l&^Q-6nH[YAAպF{g{sK?vIaZ-z5w[^[ ׭w@L ky!|ҚEj&])W6M e7H ,>>RL/iŽ9b;>a)^Q#:cca#;ďy.G;`k*ƃQW>;_LW {/Mah=FIM1$gԏ_o}{hfyo?b_ =)fw1ps$p"599kwJfzHဳPy61u#a3PCȞ~]K882lTc{Y{7` xj&|l?kٷn=wW;JTe7 a '%#j@!CUQ;Lw\J2DэRݴ5TDN3waRW*+NVWa^vG|E)7Tۼ|Jחήo]k*w/ ÷00y8>"}8b,ɤTRF[䭢[XxďU/DBU?|=)qLtD,D:rƿWjmsτg&qNJ=q$HK[5j[Y!Ч_E^ \_:":  tl;44e 9T^U P|RHկ9a*y$0.//xgw[#0O{Ul$9.fUA4 *QPq< E_1~04iTBRTD&[@(\K3bPFr>%aa+[_w0y%vy TfBeeF\wɑ8 FPێl 8 ~|JV/uW+.C)s8~};r׈@W,ݾz#\1_ps=};nJyE">Q֏Y_>b>\3t3 RskB0n8kr6O3O3n *QzUXH>#K5}"Q-@nTiWy5Su$A*Us,E?O7tsa"œӳ!=}9[r*ė7?GlWO}-;L;B؜\~I'g ݄7*+La8?aဓ<0#(BDcIA䒓J' je?GFǏ@\'ꢘ1G_#w `3,*o۞{A!k1og&Hm_j&VC+=8SHhx~ 1 .UL9ň)o'5` )A'LۙnR6) CYN[(#D(N*>S#RG9O?ʍ^yڃ)Ap%=c}j8O fh;`ēӄ%iFl+./$xMDrDBڎ;!mM`3ע}hS)EY!H?bY) 9")eM[vq6'cH9)#nDq.3<ë?&ȣ~VX㙧>Hܾxda(wmPa8lW_S)N9bI93HLc@r[ U5  k{lű3L)/f!<+) q;RJ/PUk[_m"ܿߠ^~ɦt*,B$1Q_q޾d>X+ aKqЌLݕYDH,m*\ZdV}9fR4G2(,hҰٽϻkȖbNR t[u%ꃭġ"mjgS&ọ,x)*sd3ggOe7El簨]dždE L+9Ǯ.}!o_sd$vHo^2OautiGpa} @v1&p+LׯI5)axؾzEwB#c{|سy-0;EpH'mcs'Zω~bF&"+L(E9L{zawY33hQ-9XH22\pqx3m_PlG翡tŊ:DLA^ xÔ!0 9O%6o^}pT[\=ä-隻?S5`ؐ2rb}s|72٧&G96B{LGDS<ś{\zˇON by3HܒFTV{Œa===kq{mBSX<󢴮Ow׏skY֏Tc t qP#SⰟ%3vQpCDFz5Ĕ5LvyR%)Rnu9Qkc,SE|bǻ,L yӸVf[יH@+Qs LG0alWtsbfrT#o[c*=~!~`>q]@H~{@[T=G)9EL{Œ)IVM:3WUOk=$ްfoS`X?_ɧ?s#snw@s>M՟KLa|O{VgsaW=9+U@0naK: X LwFY]^-ӡ*p}[[aMJksJtcR=k9G8mdf{<=^}|]_c `)eBBo8s.G O-~7w”P̈́,b;d" ނ+pf;N/x 朋⯞է̵6A՝ A7$dg7z|BpEvpC5UR+p{l8AAF43?H{SE${H8:f&zN/#cfSCn&1o΀ĭz TAoǀ}Aߊ@ַ0N- =W% WԝAU: ZѬi]ZG3Ʃű-U 1{FTXO\ÓY#vc?~ ӎp)4cG͚F@N /'HۏĜa0Ot2%A {"D1yJ5 Gtpw#x}.|1&*TȍWs%Bt75Xɇn>8 7?'Fr>ܤcw?b{97%?_J!F ݞ?^@b 5Ƌn>wA ݷ[[tՍgwe`$bKuc)-{6be޿$K0_T`A*%/s{؛ETCh41GN!pqj{O.3}_w_ ):!Mcw8Ly;Qr]6c9~iwhgesi*e2Q$HAq#°Gub߃6/[^+!U\qꇄ 2MӅs IDAT] 8)y=1thl#Ό= .Q'&&U(b2W[_QCO@pyoV /"%Oٽxnj.gd*s{ 1Sp.9=gqПD}G<> sf-i-7,*s`璶{?_7[oW猣] {=-1M#E+9Mt!xt~r>BYEǘ&|riүhiʼE=4 %[ZNy~ڐ{r:LwKcQL?umL sTMP"cI. ə6v3Hp8p3C īw;r*x83UzCvίKu PJ7cTa0ʂX|_>?}>kst0o_wlxœ\z GDymbgghNen yiݜח׼m vfڿČw<&Wio;T}$tkT3sIƦ|<;(F;6Ru:mZ5Qk& :|5,'E"92a .53v$RE%c:=DSz RsprtĈ WCI> O~qgAlb׼V((;6Q_Aӟun?>>wA|->fj[KO'}6xZ QqִbK $>ȟO~*|̇|SlXLO1Oan^>sg/֧3| t yݠݗ~>t|}o;ݢ͎K~w2ΌJE7iDRIy >Rt\Oޣ.t=G>n~ w洴܀VH5%^R_rSL_:S;|kOPn9͢R v*%lYG\ۘ&4}iu@2mcZT-T8bjy5R+éUV4+?5P|Uun#3sim41Zsof~au׭/ 4}1cqc?[8\Lʉ'6G4m)Hq':CG.Q{5$M(3!F\Ԝ}cTo ̘S%w(hfKi}VkmBʢڎ8*ri՘u HzTB\PM@@ ]qu~eϸRUY_^RrւwןCOɚ_Er]Q[Ψog-pa AyK&p-&EQ_<:"G O>G޳C\* ༷I9גp:rwwf.?"B|Fȅ/X=b?d_%eKjɽ$tÒ>hV5{. /ᙨQ;桮̈́ Vz%18|_uNs[' ow]@O<j)\^l{w <뾃jr=VjvPxfͷ6/8P Ĭk-\sr93 ^SwRPrfȿ;7ms <_󖼿y T k#Z9cn,VTgrDI1zSGN]w+R(u-JVcgAMWsȪ ֢GeCATl1_z86l4ȾqT邃3`5)TђD ax-'_|O2L/Y_zʜ~DӇRsd@Ƥ`w/^PV3<|F<:{NBTLl +l^leJ_yz K`[Cv;ӟs:8[,a:n`T3g[F K ZQomyG'" p WϾnE5N~H9ywX6H> .!sNqb 8<)*ZG4)szIֽG6+/oϡCՉ<0s(JJ)y =8u+ck3Q]!0~1JPZSNFTŹo4sQçydL.(BÃ1h-u#YJ%-l=<^n;+=+<(wqEv 3\tX31ӳ̼Of,/ny{y.[tg?}_m՗7%q₵L@bDjG]G/_X@l~ڼÝSd:ڂi4.$Hv ރ $r*Ԓug jȥkq Dt@*Xu)JSDJSKf:Jڳ}ã'h6O)/xbG/pwћ<|p:q-4: -.Y:,4\qoS%_[Sh)୽#PT1rBu+jdqJB!0m fZ;wYUEp.X"L#  ֒+q`=Нk3YN\wksY?rlgj/>Wl=%7OI31Drp1;G\@D!g)5!45Kmã`Aj >Kn]ֆz5.? `/*w኉UX120 fO{|]n1pfFN3:#6Vر8o vzݹ>sa!q}:L"kA 䔈1O:Befz !)uGì7Lk6,X*>XZ,̗(XvB:tK<djWeiumN|o" ٸ/WFڎϡ8j>:y!_]H9\j"ڲ J5^5m۪?/Q+ZX@9kT9ygQ f*TWIs_L)Kpcx6=yNy^1﮹:UuEl󈝙#iP98ǼBwJ;P,M-HXѭ{a{w iDꌈ)`-:ojvyzZݷ)U"EIiK6c~+ *h0ʀ+#5aެؾ3y:s$L0 =e W8':&\mPjF%oes=`Ib*MqM#'W5fSkD`{djރK< OߡΉFulϱW*= :gv΃=|mq6~_9;~j }Q$~{EWX%\cx.#qf&f.<}.%vHsWׄ~M.[3Jw̺Q9TQBHTž:PSƵ7VʸJ; =JiJIxA!Q1l-"tZ@u} }6&3R)mJfn7xG[ZJaT2!:Փ-ܐoByׯ9({CX=_ חwׄၵʳC댖㬓!փ$ͅ~5liFHy{%/gLD,adS)Su⚩䃝/"y3`8O nl6ֱk^ G|2w|6[~?7nx=3@%7.B7Y|[`׾{k֫4n}T_3Ni>NQyv(DP3 LSkh 64'|1uﴀn*ShYIS>PYel&UMB,y2ޖSJ&DO.4v'˱Q\0 q:ěuSmlHD|Z"ޙ` p1pfms5zBikQ0DŠ\*eP y, [ VghV6CWcQh"ِuizz;3bHWt(ՊWK6gھ#axIyO=^,Ys";M,p8=DsZb6JTIQQ}ᡟ 10-qwJ2UP_SR%MӺ9=y8mx1 NpbU+Z ev7RH3oQG<5W8%{."jAפ`֮<Ǥf=2n վ̞VyUx.F !\IUD=,0 4 C)+v8gkի;<}8jFuoEbfTK`?Y/իO??OwX㏺#t 3q=Z镁=Sc{`{Tʕc͏]0?tAٱGLD޷f2?xf-\/z|vFQUbp&U*D/43x`p1LJ%(p߯qUox'9k jsf%Y}i4C&'Wy !t0\;s"0ؘf}S4$XlU1Н7D]$5OhI <9eK.4̫p$:Ԣ: ө12RsnB{JpE-] 5U-ai+M%Y3Mإag%+YEdB$9j-sTmK=.yU}3Z !xR)jL@RdCuI#};V >=!H߾4j{z՚Y,J)TLԷKSǹhS-6Jsc8ZD\N6^j7p"E5Q=ڣњ P~ݬLOkn,V+3 i!aE-Bغg4{FFs?ٿ1w$8&k{k{k%5nMuX VK\JApsX,z8'Z}\MO4~mֆ{CSl֜BBǾPhnm輧 3+9;4>@zLp:|L7h2Ǝ \O.vR{qꍯCB_O­E+mLK^S(vjI 5mjc% ^Xg+o]R{֑9 D OZlD:~gxʧڌ~]tePO ãF{X Hd Hg=UC=~;ea; +-9dNh_7=NIy"b ~g?e?~kΗ7~%Z[T,P{:,O<%C㎮!? =4)YEXNJў0[f$T״$R3::ؖװF4[\KҞRa0?VX#Gj-輳D@]"ٳՕrIϸEtajDˌM!Ok\vT*U8G'FeT,ȵ3)=s6fE:wP%3Z*}q.eZMLhMd6w.ڢa;J ~Oߵ]6yl/%.̀~!~ JLS4 =`3=>1w\I\W3L],:m>a=%19u8m3fSi⏳k}5yn7\)orC1Z&uh'9PX*B6W(*Q(;|~m@=V|4fH328s*醲]Sn;ߞp7odÈC*8_( C{mZWS1m= xPcQ%]bHv],GfMP*c CwAA݆4#eu>oKjÃh02l@UB(n { {i~x}9Aymn<ȭϤhqm1eK3Kw1W´[[škdpEHOf}=y:~ve ܌; =1a IaS5+5˕3 2;X*DĘ%黄 5C!bCzetT^ -/ ؜I3z>cSnжFc;|X'tJzhٕE\p8oKeΦ$ I9KJ*2z=>ր/Q!"y( >? S($iIMS #1,Vmy]ErLc[F q^'BQZWk5Ih%CVL*Qlj0 Ѡн #PmYW5dU=X3))b%Wuڙ>Ogp9; ,KFQͲeybkk.sP~d)ԲcņȎ%{ڹb{j:rSρq)ϟ[ Rv8i"ί෾V~rB3i1N=1 A#LKY*Mϐƴ<#,֍\Ȗ;-"̓*"*9L-ɑۮ_^"ǞlY|~L=NLIƹ/C+3QqzHD,) " q:1&DvŻ#z$H9s$+JK1v*e127y;5:S} @kU zLIho̍ױ`%bDqFqc@auX ~8UbaQ6 CGdf8c(?DŽ "IH&3җKIN xA'0ICGJ*cj=utC~}ԧ]i0̴iOB@aøG5/\׭qF!~Lס訜V(HBsTܕN"gX4du›DHv O&H]Q g O7եK&IP1D&9OIxqճAYp.`wHQMȂB%(՚Rɍj2d/rcyR*8>~&Է(h}UlYbn!rw0ޅeذd; XYabڇchSO'}8PENq46%c{ .=gL>đXdAu ;SX4uƳZ21&B ! z k6Fcbx{j1VL$|;G̖fyDrpTfXۍ@십`̟4ydˍH.VO>[݆}\߀HSqrd-ҹE]S)cT9q8W=WpDƱGFU!_-E{D%bs-2n5!Ep"7zV &g3 q b*٢bW,y:1=] {BBfa:fhP $2[{ jL4}F~2)jb< S`@=9$ JD)*YR&cg!?_"aE; X":?3y)c `bJ%lAasF+t0.|w;}/oq. ҩ3_o~s+b8)]]OŨawjW$c S*D%sq~48QOR>Ex PΜ /_}円S)!8><n䪼EhسmOxc,ٰb+=i&qEg9P{8+4r`X$Z'8EVz~,y\jzv,sr#_{~HSk ۗ),#F3:l[VqJyY*4l FnIsp^QSrƢNkYP=llJ)erc]bgpV.Ҹ,2 N0"ϰ\ &ensdx"q%=M$ ֊T˗) kc<"h[) I;cٕ/?\iD/՛?N"}Ƭd6WjuiOp^v$6AqNtlCjy`O˅0Fi}L^C^C;߻ql qӲeI˞\ʔg8`O QVmKҔfD!s00cÊy 3

!&#-‰;oCBeJ#gquT+|_thPf?U!7o؛A+V<.~VfkI0}7򚓯c#6hHÀ;t bOetGD,!`<|[D LJcG;, >cDKcFHl ;=;iOi5(,Fv#Ś[ '~KSڞ{ܚn?6a [A;!VY&sp4 |=FHDaj x/$Uk?aA{qpmG-~:R.h˚c,kd0X R\ ;E a!}nW_K߭u:њg5 A1lZQ0T@h~_jMo-::[/Vqܢ) pv@5e=OּڣX)zV=J^7c&ZP0ijn@M -EYBƁzzMf30֔uzkuGSWO<}Eĺ ];?h0)5%uȼ-9N0㈮J G{C^/I[˺nDōJ֣!JBu$ fJɳhT(Bec#=Wy~"5C|gwq ?^n~>r?<5h|,?Z'iF{3p~+W29>ܬdz^lEK=:ҕbg$QHYN C"ik!W"6 b[bMb]Q @%+yS`q޹wu~c^{[}?;NҴq4K&mCZB%'@B@)"|JU QPBKҦ)IL8}l>>7ۺ2o|yl8>˔kk:cGDWezѪ[2tI >7PY֢-{?yRyƫ9A[Kr8s ƞb"d[U oʬv6OIJ==OJ zeV@"]\>߇g08R(D,=29! i!i$yHau|n=?G:`8ymU%f4Ub=8-3craF0J\~ ~-麞5~ei V[Ba'7q ,|ν[V*Uܽ;Tu =׼1WYÑ1U()zVY8FlGvKN7D i!B?v O6MSc "[7\OlH1rQU T7G!x5\oM}MD'wi}} x-3v]ҟ*?5=;Ӯq!KvE{MO:6OPt/O~uf^>Jyg 4R'D-KI7٠Ows[K8m1]TUʕHؖm@7D%go& %eJ(Qcl6T%g}BsW%b!f`L! _`|#/<|{7^(m?r6Kx{W̬=S/~Ûǫlu99)ZC oj5[`sPȩQ%_+_1-Br=D%6O/ln;&w7GGw[՜m75"ks}5n t[~=)}ieOQ/RϡO8+S>޾HZnnxTjw5mr&c}UW~|}Z SWuԟD}l&#Bͼ.y"rY/heqږ;ֵqg|s Ym JsĖgR&3ѣ+AyLt5Ur%c "vF+KhˇrܷTrX.%p1M"RD=1)MA*[3Oqs}|8o>C?ҿ7|fx̃_%c+N'w z)NO8%mSѬIVȂ1yS$O;h>d#z&RpkkRp(ri}*"3j4Z~8ן>yif5(5\x]⩴->X8}xA:8x6p]Gffk$ ]G=!nK jA i0U݈$w#V"woSW7m&INXIb"E>¼.Zֻnsw)0P1Tcd{Fϙk~[<@1d)jn?w; IM>>ƻ.d#Qs(ypv#Evν{<|}r&%}Cʦ;%o޸K1jr*EIUW}ү?Oxw蘷seFK3 u6|Y[@gC=%$QJ_m2[ޏx[Kʮ//1us&]`uPc燜_pNE--7ٽlÅ-7oÈsE3GÈ ;޽FьÎZ%6H1r7zB *ϰFQK[ B? 0-mvH6qJƁEkqaNej 0ZVMK:64튴]xļi1.N3v g1 !ŜOOS"85 CILEmq0Ӈ1BXpKHIx{?yi Cv.orrMYhytw3f {yx6.{ C|By9&o==n:EC2N)AM^џ&6vvou`!Fn#g_c؜;}_}\9<}T `$,ӪBRΔUT)$; C DFA(չy6v=?(HԴ;`[R]41L]1b3@s0lX}hnY5G_FQc棿,wnͷ<_W ^/|?GώHL[b,DG@qVRxxsسw'p6 -Y>JJ4-iW{\)@Hb$DL/y]]u.J͜[l}vu(=__`Qsw1OfXZXm;Gm# T0[Ոs9:ZeemhLŶc=,Z9`;}K4m5:%*c\^X-Ѹ4NLX0J,P؍kԼp6o<:~{yS#~B{Vhi c'_|բ}h-4sF <ָqMNNO޳kd#aU:Tn#t-mI$H羱<:9AkFǪyfmGܥjE(kK¶ Tvf|17ypEeGO_,aF*{|!l&y֧ ^ⅉCKM__uLUΎ~guq2}9Y$꾀)>}/'US 55TB9!F8p4_$ѥmSSiE ƿC,w[$Yү)~'"RuM2xP}K::Z&*C;+LDm˯bN,G_Ȭ)o+?Cp)|u/OiW5BiP f)2csӏ)*SOM+U;i%Y4>EL@Ǝ~w #:BtjS|JIv/B5#Jl>LEdf*IaE3GbGzix3f:ӟ"/|Gn?&%G>EahY&$;eKr$<#WYVw?/<dE Dْ0l{Z\]`V1lQ./״i%AeU 0\"0[F7f;lc#a`{HuM:d] \vMˍe+ZNr#+JAš+˔dvyoYђno$f#LW__rN_~.;^gxzb|MS4*9.upɀ('}#ƕQނN] m1DeAT:Q$UG]CDtDL Qښ k8(csZr| u2H g.1 `]76ĘWJ/'HC8(0@:nR$݋f+^}>&94+CW^"`|s7! JW=HBt$12 c$8-X1$R_LS_u,,t)כ x<\#ۍ^K$eY1;!ibGitg8t`>'EnX(!$l.,Xt\ b-Z0Z lkk,fsjUwXe7ER nqɱIx >`m b2Y5&Yt\ s}qGxlUݮ>4L]UKtDr@qGCV#aܜYCmU*bp"&:(ld5C(y"dtew2v>~~eS'e\G7PS3n4Ar#k9~miAЄLX\״&\&g>woӿʣG'd&Cg1^މ'/Mߢ)>g#$Uנw{Rn!]堓$5CST"bt(Rs o3'&M8Ĉ0=ch[AAymUQRl`jyLU+&ٗpʢ+ vEA|yܧ{q S ڶPCUcŒL"Ċ~o|Ye'?/|7hfxwu982=J2TFSLiƢ.&쀅2v :Z_ȹrNHy^S9!䶴 G%%C"ᗝ]L`Uy@bVa}ODtYC gi5Xx1!Y9[/)cdY yKtlAL9\o+kuk4: >A5!$.YU-uˆ5厪c@e J >FDc,H!A +:a$Gk0-ʶ$ɍG e[-VbzB]1%j1`<ʤ: Rҧ!xPr;%A:IfeQxLub̦|;$]Uw]aDz:d<|߇Qjmoǹkysy4BߝZa$D|Cڛ 3:GDPXWlgͱ")(:WJ\{*v@%M]ψ1fu>q4 Q^>?~fԀGN3vTĄ{[Gľ;KIn:fb˽l"*> sza1aDb>!J'ݹŰs,g3Zf GGhڊ:`ْD`I*aZߏ B1pffՂ6 fQBk,t㘝x*?B- q7B:1i4n0: .ycК͚j.S4;Ƿ؜=nh}dn-uI1g;ֳ.[FK!}^p10Ey*Z0(z:f|ǽ],0tPף wO@z_)xO߹>aO/B;/_bo_D@ӷwv$EHg宿grN"DUע5A 2dí2R0u#DSrGI134xRIClf4nC 9"Z)b}$XHP%'t)rΫkzSIVX$mJp88bA".8Py"HqD'I>~Ɓ"a?閏7ytwyP6ItX4cpIcg0dT6vHqs+L{]¤6!YdMT]ʆ_, jqn5C?4)FRDZA跥40vaݗm8wY+?L_pyesaXfu&L>xU4x6")W>*UB|TOL)6?0'-7Jk{94E6$T!1e uN6+y@̌f~mk/TU[DȤ.҈z5GOhtK4!++1})$p$EV)T*9^扒+%iFYl;yAR62I%OTmFchyn՗u|X?XI_qT,, f]4͂ns1Za!ưi0a ]J>m3*]8y/z|L(\qG"Z"h*DBXd4RJuhHWF{_[OQ=)֣/^T/,/q1;ԋ^sYsM*3J=mSӴæ~ֆ( #VW*wX1*g,V+BKBRēLi\e8H'O՛?<~pvJKoB$%;=1ukBJwsJޙ(kn/sJ_#$竕]\K,b2Csx##yGt!t%;A(YbLHcJCAT4"%BSJ$M:fw H]$h1fRrew@E4謎%Ĵ@ҩJ 4e0neokZ[_^{5~1/ h:fhIBFTBI1b(Jnm>nIcQـk9 ol݋>"Eܢ6zFԧ]r/7A&WZ="мT7y(9߹g(3瓟$ܼ|f)B5VuU!"(cܠC¹_1T&Gmry[*0JRǏOQ#]zGc5!.vfDzm*0[YR!FNGMld3231ϧ}z)e?' ~"g[@Ia687R㰟:>D91O~;aA!|x^^.EƇ~݀65]Gs׆j$$s"fƶi+Em28{|іzǪm.ZtDHnxf%7oȝv;yh9Њ!c69yKTLJ3L5Jgqj$ƮEUEw8ױZΈ"Y-.&Օ' DuѣRp6 /ah5 htY@ F]"u~qoAӠe'&"R{2[JNh90<-T1 CcYQ;2gT>5nqX̵Gw9?x=Θ FnřIe-ÜZIfJbHސf͊Xjsv';.rtlyt>?+Q粒!BR#UJޘ'"Fr)pEȸ"HҹV[ciDJ#-SQ~Ki7MF_SIOdc!9 P 4MwR$ߙҊa,8v9$.Wv}O`DrȎs1ߧW|֋/"Jᷗ^'>Iqe \O6eH)F31P/xtvmc3[0Ј:w^s'*PG$[>`T裣^Դ>2OBSYs6̛gK0n+kC{sb̔WoSXfܷ`",u= 9Jxlf'~bJ."$Ĕ[* YD_A)Xӵ5IGlEMT^JkWn{UXXʱ gh1bQmV=?xx{u~t&O*-[cq*P(m/X,VXS1ϸ]U߭APi!{*pu#XyrߥSsq\h^18F"IqjJ YV1DDPr4٢Tdxr4W ;"!A5h[jqwV BFs!)DLS"ʘp3|Ip.7+Umze>gl+?xMIxTT5!ryzr[<<}LԳ]6C1YQi65FG l {u.*7-.x\#DG|7's1W(< +(EX4-Ō膁~$?t$(S 7{O^om->cGHE(,0'P,jq$ږi":MxSrgs}Z:s;9H{ +)>SvݐOBUlΣuCJe4~tEji$JNPtMQfoYk|k4S"BUVM'o9=4\uiauYJ!lI"j63*[A Ѝ! BZTuE=lb;rÕzC3e+嶡 N(p$z2A3(H1ELBF.Fnv3ƁG-..n=~AڒR. !C);t]s&`ZH~C~rVU&&c5qPAL&Zrԝ!(sHxD&c59/NJ TieJ#\9وOﱼ#rzoY*uHr@G9Fnj$v?滿~V-ۮùb8:"<|%ܺEEU7lkZRR"4 leq U IDAT9VA4]C~t󖺶,3T[92X%kIFcsvƬ 1hLEsEn,o;_GlUS~Tz0YӒ.pƘg R dG*~!w>"u#Q4!ĬrɖO.8X.͖#69}W8` C*Z G=6ہYs&be֌C[ݎwڢo:P$*Y0UUHRBkilZSE *.!dIYilVSJB"h$4λ/<ޖA׸%س78c2#,b$;<`%3vYk,dShk@ #78E/0?}[\-J\3p,e#A[KObIhRz[M2T7+uإI8,hjP$YvV"3RݽOML\C{!\Rd8^Ti  5Xa$Pi3_A$'(bJ y*HTe L O;bp~» mʏfhyrᙓcl"(zTJZΙq%~vy*M S!PpVl.{PxMwP'Ls=bŝ/rW4("Lw, yg_xIURO#[fSd]qq[.(r]"˒gPŜ/J#TUYZϠ` moѦ FCOa JBJ2Pҽnm*^LVRILU?~)-Վbv=GSSq)vphZj9Y|K %s^9f ?{?.rS5 aW"m.Q*Ҥ, d\k]Ȅ@3;P*BaW \_$ FOA)\oǻ@=QzJ.^avف!M1=1:?NNvQ("K/젣IqMʴ{Q4"Ӟixʐֆ(5EY%$un'aΦ@T-R%}tsA9C[(}jBkox_??A _Ͼ"/o:W,Æ}(4!(ju;\z:*ھG%7`AzK%( TdSsoSpCD3]lBͧcRis#]%:(v%cD (z%z#DH5:vn! r["̑l7k$₧jf +j S(L޲=  vb(]P 19vԈ@U׼7S\l}nmR =BBbyf RZ,Q-2I<[o]RY=~L ƔlCk3PU`]riA!b M#f"iؑU)p t=Z%H4H9I]zMKvM2%Glry w)3i&3/}lKפ\[]{2K*]5bvu59 /FdTiʎ|ͯ]=mW"ՓS7:9k6ٍr-I >ޭ ^!DS2e#6)9:aHr(#D,0vJߩv}UO}yH(&ޫ.1Aݠ "\*"FԄd:Ƒ]vPd4O &]jH~Ƙ;o K!\xB&yBez0czy~/ѻ)gOtIA+O 8XfP$]Sbl9}L k$)Sv)'m; oֱr{-dhyC)k."MC*ggpEzK[B\ |Ν6i+>CI)MΘr11cxYM\ evtk.ABCrX76I^# "mԗ8.jڻDqD{Pζh,CY 6$嶣 J(u`ws3%P!4 KtN@\%. .k<%)xWLKxU3AhAY4(α$ܳrp|p:V<\nic^{'/#hWK:1GGLeBi(K|6akoߦw۶Z kbdAwyLK]*g`>(Rϕ^(`pL .й=o/9dEɄ 3t,8JK『}mÔ2C3V$͊5͏="6W]!g1#9M&̜hxoQe2ܞ3o&u`U9F$gT1;ifi "cDZ9T|mc"|{u.+Pu?ǥ-D~*7<ai4Al){ɝ.瓣ާfka(#}js!uds$I9!e.eJ ~tKDowL~`P\Vr?i\L~廏 ߯ U(k}uPi<~m+Tx ˋBUFC@PVMB@(b.U !B.bcܵ Gd=i;đϮY E#|{E z# /MZ1Eci M1H97eS_Hw/"e՚Cʪ3.1 ݽ Ӛ,VH!`*EpN=Q$a%='S&Յg4iG`k:lS&5zE3M|t|pKͦoWa@HA(4Ҕܐzzan)TȪcrqI]I mHmFԔ$-NnKe$.}dDJP" EA=];d|lxtODOeLaK3nrJz4!gT[F1Qƣ}}t4} DBnzJ!B(:b(;a'gX늩K72 "Pܤnf]YO] $d<~k^Źq~`wjr!,[Eo('Ga%efm ^s0V ALX,D5f)nh]&OD@:tB@+^${C)E*˭1P[OחGY[78yySAg9xO;7 u m;Tdw~8ء\"b!dP m? U0Ȣ&2A21~U 1Ht=QxȉFbP.R^ Q!JCT7z$v:Yt31Ȋ~ٴ:eQh9[+W} nQԚMk*.*^y ޽V-톦ʒnB( .QBTM.zz`9*5T̃<|-9al-Nc|Ss*B @ Xt-dB],ܯ~f{\/}rF*]@Y`4g\SO_(ţ8?{Ͼ<}v3ahWTe%G< t62 C`TBc* {:>zoct׭Lgm|ʰ]Sp~]r{Q{IYwt7,=%, H2`Hծ}55&S9PZ"?_tŗp2_Fq.G!e1"uRȊQ: b:l_v"Ac̘'0 O6?~[!]j_\G`5}tAD92*d9#-8! PL'5]겉jFVE̐rO;4x'=Lo-RKLYC$ԳCjkkq (db@xT|HjSj6-Jlٖ̃jz988 t񀋅aӟ}pHU}ZR0A uYJ TC:aM] i+ƎHokgCދR@#SP_E -Xi(oSGX\:7Z.r#H!ZHſB qpWq~$Z!ZhduX;Jc@)P @l4]KAR(ɬT%|k_7mzEudUpq@,;8( Q\EOgSKdO~מ<[|{gq`ޔD!PU_<1zz-U=cX ڤmG) f džcd/d tBP75az-+I uQ!+­NJp.xi$ z( / (" N`8=Ugђ͟oQzk?!.׵>?8n)9$I05^] EuF !r6*vXeF_;+針˧ل:g02o-ƹ2 {f&IʺaXf UW(WZ1l (d]ZVA4%ZAHchH,CL1ʪAqw#Q$Wa7 Hu 1}B"|Z~9:B_2)67(G_49>v89uɽ1"oy?UUqx̯2dW&cWYǀ s*q[s㼧*j|_ 1J"":m I] ] rF.%* !!::|4'T Ctir=̰B!DDQ1tA9\|^o%o;1( A4M6w/8֗B{R?c!GQ*fhSrˈjEhfsSr3^ygWOS~;(K mi-vHg>nB~O*.ލo$ R SJL"p./o]L29Ĭ>duG2IYQ`i=b@uHTDP*%yDcww/4lEAiT)ٮzsG4E*h#9:b%@q< +;w-~Fd( k@Aڣ|~s\Gؒ4\z.r$k)g- C,JD8Z E\̲[a vȉr.32BBsAD4,(c ҄KhN=wg/4E5Ԭ%SӰ[ziSad[!lbFWs\,0F19#}ǣ'64)fY ʹw~"7M3ѻvr(}q1n0mRpL3"xW[(`8<:bXn1C d,\^\` ̎~Q} ]x'87P5fFu0tX roJBc M$2Im1t]GiISP7O T4l{>ls]0Go՚2f,f@IDAT&6lyE%x_!s.NO@+>cT%jxEnԭ] 0ѹ]-R-HhZEi(U\2>fMq=]gl0eOHP{/bu=f9w%{HxՌEަN(+Kn$M*U1$:oWz_/R1nzhz:xlAStk @{FO3[ -)1EAS ./VLs^}!RkKg-rՂDaAJ.p9خ4)-#&Eu4$1 +JAĺAI (JE m[.XL:P|zDRpB8_YYb(x3=O~;[G~mo{۷mo~{ʡ~~zmo{o]ꫯo|}S9mo{ɶ̌ʽmo{wj{mo{ۧ}o{Omo;mo{>w{} lmo{g1IENDB`pyresample-1.8.1/docs/source/_static/images/tb37v_ortho.png000066400000000000000000002067341324347254000237330ustar00rootroot00000000000000PNG  IHDRW[YsBIT|d pHYsaa?i IDATxwxSn6]e E 2Q@Ȳ!(?8Q@` QDQQ!P)fI 3eqVXAϞ=ı!̙C=appUbE@[Zb? !BݻٳsX\?, ժUN:~@B!(.BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!# WB!~$J!$\ !B+!B?p%BGB!H•B!IB!#>!ąs\LJJ 'N_;vSNz"ѣVEQ0 FL&bZ fJDDDDD`0[B\,y*'Odܹ'|nwܹEZ`%;;yZ,BCC '""SjUn6ׯOtt4\1 !+!0UUIJJbر]v{n6nxE?''UVQ\96NFFiiiҺuk222?~Ǐ/͒%K2djԨA͚5)[.! K•HUU:ٰa6mb֭]t[FURlY"""|v$''p8PUǃAӡtF0 T^ҥKib`X --;w2|,X]3رc;fr[ ;ivGH J?r\l۶իW믿f_OPPFxvBCCҥ KZjT^ʕ+c4qڵ NGvv6[nD~{Kll,ƍСC̘1÷OvhӦ gf͚5Esragsd OYí yFߎY! {nV\??Lff&BBB|fggk;s-Z},^lN8A~~>{!11?۷1G*,,Ν;,WG.J.MPP  s~o{ӦMi֬M4#77&NH*Uh߾mFFFr-(Qcǎx\`͜9sXv-֭c޽DDDPNV\Yt`M~5~sk`&Ot oM{KѢrq-뗄+!.@RRfɒ%خ]g=] MСl6WN˖-Q۷sm*S /"QQQ 8G{c^~w֯_϶m8tIII:u _]-ݸT=Yn n.ޠ.C]`Y`2hpoMv}Uy}B\M{p%ĿHLL^z>9}u.<3|lْiӦQbnr utJSMAPqDIڰy$aWN99'l}`ޮِP;cԮ<9eDT"%s8Mnn./_~#N&MXz5zf͚+W гg s:lܸիWsQv;v8DFF2gw~Q:V!a6M1;DDԃOގ㨥2C'x&rW]:8n͏w^5x^*gp%nx2{ls}W\I~wt:}W8ILLd߾}8p\N_&88ƍ*UM6TX *`XXn^_ gozE5ؽ{7ݺuf͚.]2ee0XT;P)i>NZL@9@n: nAJ ּ|nB\x `V(eP4=٠)Ȱa=z?3z~'_/dŊ|gڵALL )))833<cylڴIM6oW!9j T"#Fs8l'++K6mz뭷fYMLL,C/FRuʔ)mfR#""Pu̙WxV^ǫ:N5o=zT޽j WUg VK6쩎Y[UQՙꧨbT+TjjjT1RTǂrTG U݁YBuSOW7WT]VY>wWR;QgzW ˫m&Wsss%=W?vmɜ9s3gm۶f]cJJJ\r .\Ljрo-Mx&VGdVB9(]إp G_X ]&uA(p礂ia$VހN=%{^?P"fØ*T2G!/ W?%995j7ڵرclܸJ+XVߏd"66ZjK@@z8ʗ/%^ƿRU~z 6prhܸ1֭Cǧ~z|?йsgRSSQUUidlgaL8 _]vEE7!٩uxfއP  JrT\0:pɌ Pl.#8/񤛹ws0ZI~|ch剄K•O̤~ٳvHXd vݷl6ӺuktBƍ)Urabbb.hq)..+Wҷo_L&_?RbųN/G2q oཔnXkv I~AoD9J0Fի T!6Zym*BJ@Up5O*,el+Bxf',(#G2x`y%J\󉋋cEr- 4nݺɴi矉#66ի_{M6$&&Jy}p۶m4i҄~_ڷgom%MT4q#/ p~IPqzCPd `^bYصP XrwQ⾻\Y V@iY Gk v*wk=ТrƎ˜9sT*<$~IםKrEk<4oWxF މ&MbĈ,Yӿ"""8RhE{h#wz 'Kl T. `m©s6>[Yǚ1%*IxFaGң8p/arȍ=y=RjYַ}vFŷ~KFx뭷ۋ\ q>{p%'N &hVZ1a„b5uׯׯg۶mE矼$$$( #G_yA+>!$ Rl0#'æT0@[K`|YXPv,]K!:k(!eo%$22WzړP@&Zjs%:+x̷~;w3a„+V?L׍_\w\.?|`UT)~7/_~+cvUd-ϡC6lǏGqho/T9І|#%%ѣGRV-ONzs{+qMΦUVEϧElٲ:tN޽Y`=ܹ rAm47FQ f3* P&JRCTK 2 @a=ލU= !h0Jpw?%Ce8yr%/Ԥ'""ӧvZTU;`ذag,-$=W %Kdݺu+W*CUU:vիٹs'QQQgo>ZjEvv6+WFDY6gDLGW JhUٍ@0rЅGy*Ծ C뉲]AU{n}`raxm#)(krT3 sTVa>P -@B[9Ÿ%{yU`G>NRA `ޚWhW *yC[еZC#Pc {ΠԄִd8v{lWX`0Oc*UD\\#33N?p@:{/eyKŴiԩ%J`4lذ>%J@UU̻=vT݉sd)ihI&R 9 g18PU/wBRZ렊6gJO2@Nst mބ0N>6-խ^M7|㏹{. !$\nXweժU4m*Cǎiݺ5˗/QFS^=ڴiCZPU\!2ePXG*[$IS(:# ON6sB6cOr!ʠ+ EUDw*iMo /C0\ Æ 㥗^( '..>}ЬY3~i^z+VUqmaAqլX_4iG}lݺcǒĉSC%;;A1e9rϑÎ hy I=dSb~i UnAvFdFNz'@{C@0Z0JGO T^+7!˂ֳ6V\R,1el6y]X"V^cygm)1ɄvqU4iķl&55|T}.)S+SO=E֭ 222HOO}vLBrrrf FE@м6>A+83 n{{rSXSOV)b \(Q'N\[l[n$%%{ѻwKnK/~Iϕl6/X͚574(`'dΝԨQ^zq)Xj'O$--,ΝK h4IJ[.͚5CL0:GM| &xkW@)y{2>p.{NhV޵whּCH,t@ƍq8 _ڵki&:wL>}ӧզ?{jժXVʔ)CټysTUߧN:l6"##{X|mtޮB"sxbVTT*эB || <3o߾l6BCClE~ pwoIavz@R뤧pj?~-^E+h9q^2R)kg}FӦM:t( 6d+WҥKs /*VxjGѴiSȦMXp!UV6۷Y,RۧOΩSx'^:N7ޠAX7W_eL8ZOoʧp^? _ޠ2PWub)C Vްgr/NLW;vrʔ+W'Npwt롇nݺ<ԫWٳgq5۷ݻ5u3w}T\ &UBB5wעE bbbHHH8#\EGGS~>+A•(vՋe˖/9 IDATJko߾(_$Q@דNcڵ <:u0h Zn͛ٸq#4jԈ4~Gv؁d"((΍|+zRp=CІ,AhWڼchp(:mhN M Ôް~6G}A͚5YdYh!!!,\ &0foٳ bj͛i޼oȑ#}\ WجXN:QlY6lpֱxquYV@ܶm/SNfqcZ2e 4k֌ENN_N΁f1m00lC%*28ǏRp⺷47yNj7`y'Sm;yYv^*U^رcRO( =5k֤{4jԈK^3B8oNgvqx|b^p.]ZdYݻӶm[ʖ-ˉ'9s&<Ǐȣ?) ł ޽;qqq|g2:BZZ*U:z, ޅ}X+PP3  #]EVʍ֫3aW>Q7Py'{ sWzf塅|P_yxꫯؿ_V رcm۶%??K^|6qC~(sނ :1c/3uT >ydFahժ,Y—_~I\\9۽YbG!22wϧK.tԉEIDDDPrϋ;ua-8e+.p̃7Ж1FaK*xLh%ڽAp>w 4©.n~oqQ7_ӤI-[v(Nޞ.tlܸqL0HJNNfȑߟ_MҲeK>Sիǀv=p:gx$\ ڼy3{k׮|'Pr֬YïZx=RݐD!ʅA)^ W۵@ ЍV*`Wy'mx{Ô¹Te DoTZOXN6'W!!"W)S C 7ɓ{z*::UVѲeKҮ[| s5n8g)r_bb"NWխ[wYJp%f֭ˌ3Q3f̠aÆ4nEQP X~z<8ƎƠg.xCZn}FjРeʔsL>DV'!!5kK/4i{{%&&'O2sLV\ɸq㈈Oe_iݺ5|7g)j֬ҥKС:t7}3oa.\Eȏ@0j'SBPJpL*ɜGw, kr 'q\+,xnrzС;<|x$dddd0sL y[׎]-oe˖( ~-~mE־-͞= Y0||t[n%Kdv|t_d1Ⲭ\x4h%K>m۶%##C-,.G:^S *W"{אoTPJc? E [EB=$&MI7_M0lڄ'hW(BkX&p(&tx#@~)?b@].[kI@w~{RzuFqYE@UUr1m4x ʕ+Ǿ}|ϛ7;裏GI*HdӦMk׎ 2c uq8?W^yclM9ұcGodyWXx1r  {sf S%UVUhFY(s1c5jgw=~*U^v,[QFQT)>/&MЦMիIHH 99W,IG s2d`]LUUV\IfhРwf̙l۶/ovMRwSNԽZ h4*hEC|B+@qj=XIyPYHBuG(i;Nn^1$&J8ZGnbӡ;Ize.anW_}{~NfEL zio&Pe¡@=Z`razkXyVUA棄r31 cPHMdM]O7v"C*3y d)Z, QNcѬ[kמuzꑘ^)ᅬfgϞʜ9sQڵ#))/AsK#J>iӦTRwyjUHǎQEQ8q"NXtGѾ}{j֬IZ O>lٲD>_nn.>rժUh)|Cvh(*( `yZ$'=Ѥe#7?4w!ӭxNp2L } nk UJ].ڴiC*Ux뭷z?H&M.i2,,9sf^yYx1fv4H4DNb4^u"-%KСCEJ*,\wȑ#1L('|r=FUUy04nܘf͚@:u|!%%͛߳tR~LG @ O'2vK+,p;PZ8UFT[SQu*@6iA݌ktU 19K䡔CS;`j㲗P:'x r3?p+W7n?ϸqfٲe߿zsG/Ĺɰ॑p%7nzkR\}8n4l6l؀lZx\ !vt'ABB.ŽUfСڍxr͸Q,!9`pUPpUy'ć@p*E㖨ԉH҇OR6~~9MO>l6^|"a;==TV\yY3*UТE vAll,~)_}U7 p%|VZń xiР>+M6YIdd$7m4߇cVP̘1cPUl͛r,?;w^7otᲟg۶mu]8N֬YCzι  F &`p8-rX#2 !2}%ޒbrf6Ǔnĕ3߈1(}@>HdAANw]dy,5'qS~l4""RlMʫʬY8q"^zݻIMM }-|aڵkNj/ȸqXx_^׃p^U2L*HNNgϞ4k֌QF])»LHNNfsa}uqw1Vɓ'~gj׮{ ,Yz.( kfDGGqtmdE[< ލi*]:z7: M^^|# EQqPup@U5z Ayb#lw3߄˥'?ߌ۠mГ 'F̊ׯfԨQ:tH"""pݗMٲe9p+Vlٲ\.FͦMx衇ذaUV$L%=Wt:={_,77UUٺuY/խ[D =z4_r{ԨQzA8̞=ļy믿hٲ%'Nrc]r_0bvO?tAʭFhhGovXCNFgp贅u*ө{yp . Fy-((@@{p9E^EiBXjA;.lj!KtƍǠAxwb;jB SdI|Arss/}!Bz7QHN_g…1)##_{TUfŊlڴ-[ VVWb^#c!9Wݯ"=WXNoT.]Z$XE7{xW8z(9.͛7h.ԩS}tM*S FK}KW >={^T90Sg݄S1tTB 3.{hƌϞ={>}0h 6!.b$npwfϞ=+:jѢEz뭬\sl26m+ʟɐ!C3g~qLsΥe˖(qy Θ1{bb"111ޅJNN&66 p7вeKnz^u.K.PԂI :=W\{nWA*UAUuEUP0|KL(q2 eaRu.:sbQ1(n:e֬Y(Bpp0Æ ?$++2dQQQmSNlٲt֍=l!Zug̣>TUNgOXBwE!"ȸ:2*DAu@AaFY o齫 IB=Ioսj anvڶmniӦ9֢(СqkoB˖-yOZg͈H߾}gp \~/3n3fp뭷м433onٲeK$A|ǎjƫ o&PsQUGyK/qj63 j dY  nX~1FA" H|B mìL"cÂnl5 IDATx1BB6QPPP1bSt>>9ҥK{x<5ba,Y]v1eʔ [GNϟϑ#GxGyW'==7FmٲW^8ne_fѬ[￟ӧ3q:GAQUy1`~9EUU{9y}Qf̘qZcK,8-Μu袋j=Vm̽ٷog,+##;wgW*QT %EP c20 S_h;UDfdUBQ'y$GD,"B4ea,1 v1F^Zlse) 4gyQF1l0Ν}wZ^r%,^Cj*~?ݻw_'dȐ!\qu%t.L*$̙3ӺukO΀Λ7An /pw /пB< ? g&իٹsy•e￟^z3gcBB~anȹsr5לV<~U}.*a%jc c8¨-Uj0RHHnxQÊhH/B.qSF bŏIs¬ʌ".g!**4֭[W'm֬Y$Iv|>>(;r\T'ߪ8 'JKtЁs,]+ʃڵk Ǖ;QU5R]>L:s؁@o7| VEk{ŋ]cǎ?ӝ1-uڴiSkXVZEΝji|T5*Ih a214 T#LHI &Bbŏ-'Ȏ(L1 k 1BX!)†bH"Á3R9JoҞ=q;t:3Z~W;p8?st:dLӉ~]t) -Z`̙[]P 8q">~m.\Hll,7pCEEE*v'FL{=r/u999 6n:_gc[Q?qO1妛nbg$TZH[X,wFǏ[nv_F$@Qۅ$ɨƀ$ȘA$I]BFDLXJhJѸʿ!؍`LJĂ* Cp4FbJф8u~ 'V+#G>}0i$6lwG}Ą صkWsr%%KY 6M2ŋ3gΜ޽m۶1i$L)iu:3W /fΜ9\Yl#FYfdee7ԩ 4EQ:thǙ8q"eeenݚ JOOѴiSZhQ0Fr$hAAÑ%AR!HȘ@!9@ r6RCWee;}эB td7.^̷bP#^*354K\\O=7nȑ#[oE~~>re[aUǪj͙:u*/"ӧOOPTy,?ӂ(ʉXJ;0& Q#?5c` >s[/ptS6:.g4Z+͉4ӘcxsfzqL8C ~.b~st:u`0k,}Y̐!C3 _.\n#Xyϟ3<_̙3:u*&LpG\ѵeAiIYC) XXJ(P+յ"7̨Xq18{wIVz|_RJ >`/t F(~,$PH2ZM&w ]T1~A~c=B::U+O?AXv-}o߾K/ѣ_ѣGp8N:SO=+²e4h:_OXZ>e]V%\ˆ#Noƍvm=M6Ѽy3c0;ٻw/ctؑw}^9]>c>3fΜɕW^y67ofĈ5jݺ5۷;x0Ck7@!M"<(q(ͬSV!/*&eWjȾ4vbăHU$0'2:!" mDT:W/YgutNJ, nܸYQ帣r麒T0)C{سg~C~u~WxwQU˗G]\߳k.z.ry?y0Ls=8p#FOjv;^{-=IYXj{СC5Ĉ|QOV<6D< Bs(X !TcXA,#4![35{QLjpJMiί"&dc"ȥ?ݮԆO?СCyQ_~?)23sʨQT$[0a?8cݺul۶{k4/_~f^|EyG9p@}T 2ж[5SOq7s}ѷo_rrrN67'_sjƊunR9J H("0;p㤌h\$PDC~(//? bb 빚{ğJI("W*cY\r`1N3b$D Eb'`ɔC>xIKRås`SNjJ1qІVҫuM/$~ԹsgG}9[m; ]\ ]\4F#/&??zé3vA~~>m۶h4^17o,'4JڳRG;I&R# FBHH1iI†&ޥ28Iә]HFB@A"L\Eb{=%B`'&l5s2b(D7~ALLeom ?ѝ4WD'Tv2)&/6TqE1qa #ZARa>'<(GI:_ L:OF/ZH/sbZ+E^^k֬aܸqJa2&66VNݻwh4pc=t &0#"c )B&D㢇iXoi"gsN& 7%ĒK AO3 "MHFlxQQc`79FrrfӦMEViWtUŕNBEfy[d; oFUŕN"11_op^zѮ];9j4ةS'ꫯ6)Л-\vZr0rŝL,W3Zh*~I),DtC!,!H)@#V| `CHr5VgtGip… 9z(s̩p3o<8f'o-ZDΩ ;4kŚᡐ7O$PAދ~Oq[Í^(Hは;wcC1#zS@"Y4!+2Rt+94"dєlI) #+͹yu{Q(<| ?0bUİ`9.j.t$ڵI&w(=0cƌߝ S\7}&fpE2yD㢉|iyH xV@zAVa7"; ]RH1A@ٍÊ nV9Fc I QHhIH;ۗ`0K/t:[Oiܸ1Ǐy]:UU0w::gbbb;zg,Y{o9fI&r(' qOD}26 be(T@%Ή%HK\Dņ(=QZqh$#"$*(c65S}FM߾}ˣٳg30p@}Qƍٳyweݻ3|6lA;|sS ̕N2;zCe,Y„ 2dzkHl_LO1qX=owǜVE~(N  * DV[5[* {t Gu4VڅCpa0):(.L(7$\e1Jc)+0˒(S싣Ta] ̚5E="?cDEEOpҾ}{{ Y\Di<8ZߡuB:t`̘1tޝ  B͏1HƇv\Dq$ wL iI#@RЗ=+Jxņh< aDT!_@NB+b+!`_~4h bqQZ@Wy/yNzz:W]uxXv-#G`…lٲI&EAW:Z+ƍyyiԨQ}s̝;֭[3n8:w_>:T, +o~ {g1w).n"Ap!j9Vv8 `R%v) 9)Q#/L)ex]vdYR( A 0dA Ԝ1cpaDQ?wvZjٳfffڬq+s]\4(~?w}7ېx<e˖<\veO|}*.;pJ-Ӣ56* 8 aUNJ%׮38oF qgN h|>ᰄ4 XBB 1xl ?850T.]\ՆQFa2֭1Y|9zmA\ =]Af8ʕ+ aԨQ|嗌;ɓ'Ӧ5.U䑅/},R1X)R8nf@6SVD!X"E NQWceNUDJP&M$c2DBRTTADUYDAEQDB ɈݥSSbbb/w4k(^u^{5>}:`2:TO8]j_ݻILLSNYaÆ [KpS + 1c/F„0г)24c㷼* y`n g,$.wXP|&KZc0(DGH*nwemsh)lc2YX^TU@@AņʍQ:&NΝ;IOO~ --m۶1a|M ӦMCegϮu3kUyDŕNbtر8+3ydzň#GUeP%N)1QLb&4\[4 & 0 )J[2*Q!Kz4i $95مCH EiMk5|NcI+lǃfQ IDATfb 1B)F)()YIWUW]YjUڵkp\&I:Xܰa~;m۶nӴiSFIFFFvwq(w~v(3etӠׯ_}qٹs'7tYYY[N?BAfQG2v< ĵvc4uEvJ"%%3'[7%6,bmsa X~B%dcG7vrfdєR5`l#g,B a-Qgb^ ̚5өS';@^^ `zޕΉWiwϟOAA<:uYf_|"mV+7njp?OmHMMFg]\40{mHȲŋo۷'##mV{M|1SB,*Kmqcքo~2 &A[0@U,j %EMz.5 &K(EI3,1 jEL*""Qhc'֭[ӦM҈fj^xBF9ר9s搔Tiݺ5ӧO"$IW^ -99m6]KpABP]83F͠b@('8TZшȸqS(%4  ̨FuIvسgcƌJ_~ew8CV eeedddѨQ# <' ͆b/fѢE5 / 47n cΙu$..Y5E-kCvf!dvŴa)-ɸ po=yAl$*` z>܃-ym,a!$S$b3x 3AR@"iLuJEE^L,\7M7Ì3p:w};.tN l%_U=Wٰ'NE/t֍ݻӹsg+fϞ͆ ؾ};v=v̘1 :TXp!ƍ#33ftq`С(O?ѻw1<̜9X@,$Ђ=-;JftK I`߄x3XjE~sjw`3i3XX&QRAm~TUx/6$<@L(B~E8 } m0AL8[M:#11 2|JKK_78s,rv 9e/^̜9s޽{?\UW]E=z4 ,ࡇ >^z|sЗu Vm?w(g)SO^UUEU.t]v%##qmqEkU*l|X a@Fƒj?ͻLUM/h아TpYD9AR $C8KpFȚQo,` ]Qa Л- &8722ߛvbt&h׮={?nDzyzL眤fMԩS2e SL/[ G>}Nwd2DϹiPq >7b;:GEZhV0 kBʉW(!&Ϗ4r hˁ D/qy̚3M>DAGE&۲&' ǂ y#"R%fSl:X9hGc6H|gjqAԀꖶ6fge 2-[Ty?==Çsm1fZl|׼tܙGϜ9{rUWB~~> .dL:}:DW: &Mzjϟg.] 8KTrb Q9"rδf h~WImPZ`-HdE0́=d@APC/.I l&ի:dffҲeKĉ;4s # :N§~ ]kVyOdYtČ3Ce7oC=SO=Uť}ZUVQRRj{|x㍵u.t={>`Ĉ/a̙R#"\=@EB@Lp0:(UJS(MPhTq8Qkđ]aڴVQRZcyI8pZ;a$s9ء\BQtLoKM ̨dY%xiӦ Nm۶ɉT 6t˃>4iiii 2CV^ڵk8p) " Lq [ v@W{s Pf ML*DHp4lnˀHf%ǐG'Pd7,%0KFTDI 1N%\¶m۰<+L4O\&'mwk.>3n)Bzz:^{-]tոѩ߹馛عsg}sZB!q_oq>ى "!1Æ.xnji@:%%!2os,hv ?\*U5̘`Gb0Q *$SV.AP'b5fTHɥ#Ob%١wlٲUUyꩧx뭷9*s:s_пvSO=Ŏ;ÄavSO=E]e]^uqӠ$ŋӶm[㊄/>|ꫯ2{lVXAlll5z@.O! D)+LF&|`vt)Gxw*n˻/p@A#+[i*vvWHM܊8+bL\a݈7E9R>)W^y%|őz8`9gn^91b)))Z"<ȶmضmj*4i_kѩQQQ|ݛCiӦZV^Ntt47oviR!xņ;DDH5 elMX4X&>0[KhM |bHpc}p_BYB >9 c|R۹2٩*8 l`Fʉ"ԊnDgNJ+⋱l:tp5j7nIEIUuڝ'ű?,!t:#Ggg3W:5b͚5dffrw8ˀ###F5SQAhJ'`4._4XJ)+SCv|}C\E[Y."wkZQrLU3pXK~*AQQcqAA$18J\Jc{iO"8)#ZkГaÆb Yr%qqqvYb >|26mDyyy=GsPEPj瑚XhQjo3+ .]0{lƏONN5iӦ1k,V\PYU\qI9QPr"[Pd*E$LkAF$RDP"L3BXy3NhDr!e8IvD5+%,(n#`_ɦ)bŇA%Mzw*˗/n~x" PlSOϣ;wrEU#<ٳk9}F(YC9%rK+͕8D F.%P TjEvYLlBATB~p؀(8-4w"QD(&e.>ɻG&e2TceMKI.6&0FA9 "94bڎZP 8Ɗ+XhQĝnt~plS(M\PΣAqS{GyWkҹK/e)С={ pH,XEѨAT4QUh "*%LP6QPWn<9MXqyJGix)re:LjU!(uwHFX1'/Zi8b`sZ <+Wзo_@&͚5,E*pg?`, %,?6cǎc=+=SŕǰaX~=>߹_tԩ {*oJIaB~3+n~*7rԀZhk$p)Kر4܇c e[uR/'Dvnsc_QJBq<aKOX-]`fd+MT$DL3rHnJvvv .33RuV Xh/"۷o-,Iéh\s5'!O0{l&LPkj]\\p 6 dž ;?BڵkW㾅(-L_bG (DvEв.hDԠY0CȊ` #e `1Q Hvns2sڱJr\(pE6[oS 'b$3'-C`0'D8RRRQ|||FgǎX,lڴ^9( Sy$ZjźukR'd֬Yu]̟?֟+ vѺus~ip߾}m۶FU PʍZ=a'Me(*ZPAEZ-M 0+"mLU)O4!%xFS~0V{FPdW8?fi]+Knݘ8q";vn(,X͛7Gl6˺u+dV0K:塜grK.|g޽Ç _ʌ3;OPőgϞ1_~*mjsAret:Yr%={p5j{嫯Q~8쓴$XDTMd" Ql!TLGOmr /ߠ@U ڬGk'&09} lZٛ͆U^\`o u>}p7Wqb7ށ@TU=guNeSSB4uCBB '|'U ,'lGJh42vXf̘aիW}aܸqlڴ/ݻ׬cQ""aAP3:go$V RkEERV\"Z+nKTj"RQ.{2Ǚ;7B2 zL=(O5E#tR-h@ $4Cjyݟu]&aN ٪Qe`,}nA_cb56m_f!2Vzcʗ_~ Yg5i#;z^s=M/29nyٲe 'O/ ;;͛yWXjQR4W+!fa$$I ` ;sU]SY8oW.C+V-O@PV4 YѫluSo+D ͨG,m۶{믿qE;)ɓ'{nټy):1 rjTeT@kq tob٘2e ^ĢE8ꪫހUJvTTɢIB!Y,*Vk V]'0"MD*,R jѨ8\S-P+h6Q(G@B`ɑs6xgls)fx<l2YhQtl^^^.&&kS\dff;sNf̘iGYf wqGbX ٪"b`8hjQHV"bBKq$bI',WTz!!%((FRT( 8D03,^a3j+dff_8?'pǏ믿=S_{6_I׿=01i%  /믿… m/W^\qͺvJH(%K5$$WJ\\5vG٢ `#D?$j+@֐El)  #j#9-܋i8GLLl0Iäo~z藍8o=ohФs4Q\u 7y饗چˌ1o^&&_Lnn.sOmmΝ;y׹۱َ~K5/I$&TJrr1 ejwW->~=$ɕRɯWGuy JR"|u -d缠Y|r !R b*0&Ȝ9s(,,h?vJh}gפuQ">WG:WaONxs@.\_ QsYIbiRzqOo>Νϟg9r$7nle˖? [hr \r |fb̞=wKx IDATSjj*O<{ol2rrraٲe~nvSO=EJJJ1YfbA${9FŤI/ҥKgɔi&>4;H(Xi6dT\Hv(a Z"u$kx]<> 5L)Bpy#?5TaJkaPLB-ftH4?}bsE!I}DB$L45k֘NL}㏓Q?T=aŋ9]ۻw/wy'/"^x!󕖖pBh)ѣ B}r- 8ǩ *UU)--l.fĤnwyP(ą^بybK*\s [lw=67:%^X Rl6Ap--+(*JUU2&lV4MDE*\/MH@|rB,,y(~uZUÚQZ8'Y :x>[oСC1b^{mt tI\V% .<\?~<'Onpu1cF~(KetӏYX)LL!;;~[r׷ڷ;_^zO?lBKATd('QD8 8]q>6{ @ք Aute.rGc e-SPk8zozZ=#<#Hĉ'ɺtRN9fG[M:U^YY֭[+V`˖-,[{'|r󙙙cǎZKk`+1b+W^`ҥ->O<>?_yš0%"$U#ZLDW%w?y'J,X+݁D[X,!lHOf5G}w?2 Bf*q\tEtޝqEV+>0M:7-Qgq]wEqmC$`ohz=1LL+dǎdȑy-2˜9s-rLs4X^fbIw9QI#VNIH _K5f"+hU!%š"l \0գVzEUZ:c+W\q/ӧOg…ܹM6sNujRLb.\]?W;W[y]z:999+S***`ZIMM%IKqi_5bZ/^Laaa{/Ge."~fuFY~=Cꫯ׿5/R\ΫQ%@Џn ݟDlKŻ/D* ((JHhO{Ne+R!=A|Ky7g}Dԝd'Kjn?I%X}V#IDMDqvE NM6Sy$//_6tGG`ݑ7I4ll͍ZkKM8쳹 -~?q:Z^uժUHĔ)Sp뭷2sjb׮]{|ǀniZj&m$Ix^Fuvbƌlڴk}k/""TtͧHɈ(/ۂ?EIB¸,4YB'Bl` crćlQpXTⴠjH aɊ7K[JE8IFJ0gLb>}0~x>~zתׯ_K3i#&Dtҥ̟? &0qC"#GgϞٳuѣ?'''swCJJ ƍ/ 77뮻4y ƌ3+HLLlaQF*555Ob޼yر#&B+.{wٳg?SN9uMx'?Y|9$''DRRݺukϹ;-ޚƏU>D-91vTZQT9"HT*%P)IVx5mv bAAE&lU+5a'!F@%$CHo>7~- nLڂjk׮E$֭[Ǻu]$Y%wy',[%KwQoaSgլZٳgs뭷2ef̘qz]:>ٵk{1oi54 ĕ!@V6qUwd]7dP,PjS) {]!! g|5Nm%JŽ]VɂȜu#b:\piiiϲdB4 V Mi 6zmΜ9l*IIItMtM|Z_|W_}ݻ3}t,Xp1LVVjOrr2ol6z!@oz'Yn˖-k3ay%!|@BT6#!<␺ ]t KN;8}Ob_Yo~2C H`w;{Ѱ)fcڴiA)..>{|]&mCK( 4|<~mTUeѢE͚ˌ\|!u=ݻw7UpOff&{# `n"ѣS+]b]UGXX(E1_NPIVJ(A ςʃRnB-ut68#L8JB-D4zJgڲwT~#PVV}m6~_LZH v$vs=Nj/޽{1U PTTĖ-[+x`!ϡ bdI%ʪ@ Zӛ6#,:.`;d,\ӧϷLZz 66#% jg&N6US\4.`j"ϥ:.\dEDޗ!y2B@mY)i%B<x B@iPdn ,ewwߍi:iV`Z1;˗/oYsesjFDIs9G> !^CD} "#ResO!j %G"1|"+8vSO>4rv\IkD ڛrt\.W^y1o S\3w୷:Yses~ #fpg1Dsѯ7 5Y.D4K7U#[҃S:ӈ3; guVyaa!ݺuc̙"FA]HV @իW3vXO~~~Fy7:9 54ӂ&u)k/G&],GňL=>SyVr!RnDz4"yucR} CL/ t2.0q,fJ3/k(zglٲZI+YMD_{5ϟO(⮻gϞL45kִ]*1ŕI]>/}H1"F!cDKn,Fa|F^?cn ߁;Q=hҩO>hP|I;ʤa#ȑ!:]Ϟ=K{X~=+Wfڵdff2}tZӬU c\COMG#ZGcX(F"ȗzDl7H(H"r4Y){cI3\E$ƍǫyGIOO_~}͚W1YseV5=Bn-m~V^h'{^oB; !l8 FH1,+̔`g㪫>?p{|*֢3\5FJJ ضm7on૯j\fZ01ӂ&:0<="TtcF2u udC2{drE·X0rBJA vU47aigńy/Lڗ={F?c1 6p'qe&AgjaÆ1lذf:3U cMtKzOwaׯJqX;F "S0LF@"B`eh%#-/C-, c pzꌤE?cdҾ45ב҂=zp4ijk⪝ygfXLqe.IԷ_"M]MTX1nnV)ÄaGD,*[#@վ4ȇ-v-Od-\r ;wSOgϞ8BMs92֠3_ZS\3}iAk"Xc[Iuĕ#mJQ$Aэ@9.Bҏ@6 m!\sqavxrY駟\^^`~5WMgb`vP[{|I20n؍{90HQԢB5hq')5s?ZȣMEvJډ7ḁ7x [u[gac67>VMBX,dٳgcȐ!͞B~?^!LBQQQ;$&Hɣ I UBCM#d&iXUU6 B`U Jz;]TYP=oEa5\4s&Xg PWekx:NI3?\.cƌgI3EoGen?1k,z.W^yj*jg'&O̙3)**"#4 :) kK@BB4dYE4&a*I\^dUf CC /NDa%" #ݐTJU MYҐ(qVqK,T&wlF^;3cɒ%ͅ$VBiHi'|+WreƲePg}?Ovilܸ￟'|ٳgktw[u u ڵktM&ÿC y UfԒPN|b*\6{3pHG^ze!W>R/EB{V͗à2&!90k" h{Pitr^otwo5|\I+6@pV 6l`Cvv6SLa֭*K.sϥk׮x< wAee!sʲwzgyWyYbK.eܹf\{KzLqΤPVVvȵt8 ֬Y2$ hj؂svqu!IV[-Oq P4 JzvExV9 D #MB2 -$j5 !Hא!Q3"ƙ]2i; ԩS/&0}ٷos3EEE97B{|p JMD:|)m0a}eŜ}ٸnGrrrtѣѣ^z)߸+ѥKfEL0v/1>>8tSFrrr)ڙT$IjT\M<dž xe&7Onf+lV l`;uxj%SQFEE*U[ h*H" "]EvOdHANF)pmHrĿJED& ,;%BLZH 6T3x8p 8+tN;4踺Ï.]o߾Vŋӭ[z<.-jgV+iii4xOfj8佯w.ksE<$& W6N?Qc".•Nak4ʂDHQA6[NA_DP!O<j  *U)ADT76ÙͨCӴz΃^~Dee%[n夓N:츏>q/2nɰaXjU^E43oޮI$/nOrRNw)h1ЍFaP&0_&iK1AO={IVo/9|,Zŋ3k֬ǔ3n8裏իWzWvZn^*ٳ'of- ~:۶mkU+`ҩ+)#P7wNjsANUZ"82ȰƋ*2=ڵky7Xr%ͣo߾kcN:$HMMrDzMژ҂kK2|&Lĉ]9r$>;G}`0Xo\FF{`ɒ%ڵcǒIQQ+W?$77 -)bCkT\]|̙3W^ysLEX+( e5T5P:TB; 5`G-PMZS/r$ OOG6?_'Z]Րjlv$FYp!| [lSOE$  /Yxgիp'sz7cȤc׮]$I[uջ&IPXXȖ-[$)Vkg}֬YÚ5k(//r1d^}U.첣 [S\$$$gϞFǤ2i$yS\ubj'.)݆A@D" "9CWUSҍj\v?NȨbA%jdPlO>{Ns&Avd͔`GbΝ,^z)>}vZn&ƌî]زe!Aibpc~)z6?\p! )bI߿?v:ɓ'3m47D?{ !~ҏPQ"e!\A<=]QKUV"")'jB:ŤYK^THQu, z;o;k'N?dРAƿJ B0كjBWe$҅ΫFDuu a.ߟ^{u~ Z;TPDbrje>AH, АI= o0M&L}~vlzzzԋDYgsWsWJMb(he6o̊+۳gOrsso۬yMq#F3|8SN%33|V^MQQ^zi^W1СCy;t2bF2i $R-F]GUu0v z#vDJ/~EąwJ& 擩ђ R)%j8;7[X|L2 /_~Lst B M=r:ڎ8&VK9~lriӦ5W1iƒ%K&99ݻwLZT0zzƂC51?""fzỾCPj0U 1b0iҤFߟg}233jy&j|I/B #MUoe#ゑ]i]kೲGjQHd۶mncf8AQnϕq, 2{Vѣ49A3zI_T0R} qU݀LE B8byE;PCD8J^vN()*7ܓA3jՑXn3lݝ[lSNiLb5,-G=k|M3uVI@@Z0R|za{7qQ}!\b HƪU8q" h^~e>Ϥ4M\u1ccMq;?x^n!GIyy9wOlA2Dɉ cW@,UdX&8)F/w©ÆAbEFdKvN A˺j8M!صk7o>1/3~uhP$7A`(~NNN50?&cq ޫW/ pU&-&;5O5rġ9"j Q;UC0MՈut4PDWVȗs]lr=^y饗HLL"~ Jc&1U 2p@?ZaPTˤ RqJc)Dm]|He /r^ Q1zX/B`Y; ]@WՈzFܟ8ܠ!(,,dŊ\z-g;vlgA⪵1U "I~wߖ2iAU}"uU!CO%XR"j.D$j?z*F)Q!D0 :~zOg01v)}e8!9ͨU,9x ^x!sOͽasy`s9ȲgBo~+UU>|x$F9sq8 ^>|8xU&-0] =ȩ!q^ KɑCBQЮa4p*8`I Ɋ1nW 40Rr{Vr1ow˚5kZGYY_|w^iAP7G:&Qӧӿ<L2[駟r2tP,o߾Ff/ 0I޽Y`pl={p6l@4ƍעtD {~iܹsyLQQ#G:|Glذ^z_E-[nK.>`֬Y,^ٳg* O)..>E](/ǂ3zy * OVN!D*í]ap5EF$ԭ">WV RwEDl@ ix^ I,vZ=19&ׯ_#sI'jq6nM7ѣIMMeq999ocĉepBz.\ѣۘ?>+VhMW1̤IPYYYho۶^1Cf u ЩHydEgE L Bilڴ ;i݂x< 8D5aݺuf̘Q34-&a2228묳x7Koe#'UW ֤֔8Y4" tQD.!(/"ڕW8ZN AC!gd8؝$YEYEd -XW-"Xk&1Muuu.e׮] jMbVbd֭tIG۷p';IZZ;v89[ӡ=ƹ˸)..&==޵͛7ӵkW|I,XN+49jR #K*XChe2`_{T oGD [PR' "ň^~ɣI\UȲ8PX;bM~$ S09[ey/~sttqUOVçVմgq]wJKKq8\C%''SZZzs4f*ƹ^%%%1g.\eT)@OED66-R608 aH{kHA+M5Q"Q-BiD]4)w ~G."gyw/Nřbc;uq '0eʔ;f͚ϤѐȩpۚǴG %;2ONgAii){9y]^~{K,ˤ#B#77rrriI&LtjժzWZ$IL2o ̂7 Vb 5kK,駟oU #[*Pw8Ხ u"j\HFA#ڤ`q uAr>ZhQ./%r=z;$#F@$>3]UUz-ZILC퍍kK2|&Lĉ]9r$%%% {=`р(Z!%%q_u]ǀlqLqA9s&+V`?v/_|G}Ok|V,Qy 5)B,IڪZџ[Q&}݆@D>ty=zFX2t: ?H 0ڏPwwOͨUG$11N:s2c ~߱tң\X~=c̙RM3fڵHĺuXn]k$(Bm߾.5.k̘1|Gkwy',[%KwѬ݇0rH W_~9K.eÆ f䂿I"j XHy<{交A,=$؋Vrdi{ T 4,갼hU#:9:ϬV|3LZk{N;%Kt:y|9餓Q\mqs8ƌIϘ3gsiWI[)(( 331CSOeѢE?n&mDBIհ"y4$ɪaa`CZ B8"?-riBTUa4֑G\ HlIG[o[o5k4Y\otRsxYށ6m6+V4x]$,X'|xu&cofzZP)#HG°'^KNً, ZD!'#T6;1rH/-F#hQ*)s<[5=MkYb6iӦLb|:"#LqՁHNN+䩧"n'b?~1o6i9]Qdn{LIehn~ rR`DJ>DNlDTDt*!B񔁈#V-~M} { 꺂>ENèQO86 OsWK3uG:;.0Uo&//z몪 x'ri&PШ!nN r;%DE0}zS=/7 x:t"Z ѐNgl?jԨ6l(t IDAT+d/,$"@Hrh)8娿B"вrEPljRкPUukCeCP{ )=@OH.#R/"k 2H%d*8mڴXٳgv_.Cdh䜫R!ٓZj1{lV^}vJŬY?~<>{U="/#q;WۄYJ'؁ s ڻ=Lq'ŹRJyMH+ R1ʻ΂ \ukAl쵪l;w Zu̞=ڵke2w477P\@\U@J%cƌa͚5moq*99L/r07E$B*ꙉ$j_e# B$1uer;&Y>WHO}| %ɃU&J/zFhS$kvx8~8k׮eر#s"K sF?Æ2w!rUUd2] ,^?_$11Κ5k8p&6m矗œm :???zkn1rPk#\ Y\Up?~</@B̙3ٵkׯ/c ^-D)LW^"p >%8w)*$`Ԩ٥1 P5WР"Tb^ll,?3+V@ROٱcz0}tyƍ9x`(2vXj׮͐!CJ sU*dqUIPռ;||#۷gǎel݅#rʂAN ()ʇuESl7rc#$ီ.u!OE\x̉0UD8\݅8Q곏$'Fpj 0-[̄ С5kdԩ={]K1i$VXΝ;KlOزe f͒d7rUU%w޴mۖѣGr~qwNӦMٿ?6:GUr0GXvH,OsUG[vܼ=A4ibpjU]+ڵcҥ3c ~N}p\s=䔗B+-$(1}t#<R'É{},[*y#E <5r h1F;ƈ@h9Dcq̶mnw3+zjժaLz-~i.\XT4nCXl63~xvJXX S^sS:*U0|prssP(\nY*odn?3f૯bܸq|EW^͌3?fĉL6M~tX(sچbaq>%շR!p$Cߓ-\H֯$v8_Sn 5b3v--?穊 -DPq( Cf48`LBo%'%%1`ߴiDFFr6-\nݺkȌ3,̕^,Zƍӻwo/^|Ϳ9cƌa7Ν;sQx ݻQJJ{1cƔXWj՛0GW0}]}YO.]꫼ڵ[oʨQJ )N4O`q dm"_|8 '|DoLtu#g"fzv:7~0QOV$l C@DБBjqbEO!"  %!x߿?7ofիDK͆ RSS2e M4k׮̚5ի}O#G,:u"<|Xb=É'=z4Ǐ{iӦdmGM+j,Blh~9IX^tO.hB}A|T졫kg # @CsϒJ4IĊ5.T0cąt"9Cu(;h";Z<(p&P^A0`}| yyyꫜ>}gy_~֭[3gZn̈́ 駟ضmR݌je 0ઢNf͚%7Ou9Wkg<U=0{W_}u۹⪒"| =O>f̘;x'ؿܸy_ oA ;NS(T {*xDzq7Tٲ6 ̀$4jE&q?4!?p^W<Q G'Nkq\B!,hp(p@Ć,wɓ0m4  ܹ5jN#!!~zW^>|XxHMM-W2{l>޽{Q*`Lŗsu3nCKjK >|}V\ɒ%Kx<4hЀ#G2hР[36!JL57oC{㩧~Ug"Qx0`!R!ĄB" KZqQ!BaTǃ<ȳbpy\Dj""*@DMӱn:VX`]v{sNJ%ڵʉvG||< .>}'2bڶm[NVTxn66 cƍdffN\\: ҷo[?A"nݺ/2a:vHÆ s1o>CHrFWw3gd֭ 0{^&HHHcǎ|ᇲd[ĵi0#hnKX5‰ ry"T(D%Tu2"- [xJE\vM-$K(n :(P7E/ݎTXT`vM^^m۶ٷ%{kH_)l byD $SY BuNL%x̉tDw y)BJX/5+FHFL89s裏)e˗;w./U3{x'޽{Qҿ-‚7`7<Đ!C2d ٓ={ބQ,BziӘ8q"M6-Q~̝+O:B7,A5߶-qh5 Duj{Ȩ΅hv F\$,@!$H77o"zQBՈ!V3EB(J|#ʛ|ڵkWަ 3gD&LPbjo߾h4/_.?*ѽ,]+yٸq#;w$w{Gz>|8gΜar/ahVrjP5djC&AN4i &QB$CB ){|J}fUwͻV$ϖ/)O?FkB`E%.~qAmV5~ddvdquP(Xr%{桇+1]gnݺӇΝ;sAmu/BN`F)|g"r \pjv(S谑?N q{(A8\~>Aշ1|E$HC ̨DGZlyWOXȈ#ذa| Z*/ddd.FѰzjzAٺuk6mڰn:Zjſ/yuh4(\.,)dB&p!"V˩sgUJP![U'9U+%)l^;^ղ + w}ӥKyJYtyڵDFF}vƎOȔ/[]ҭ[7oNbbb-[ҳgO̙#2n_96ڡh$F6!F̜#?O2 iyU '#ᇅ¸l@TF\("}5 % -5r# &(.FS"ť|z̖ב IDATCheԨQz͛Wަ2W.V۷o/1h4~zuDs2w(4Ṱ–-[SNEO ̇~X1}ۂݣ3N>E)qb@95dJ/@BiG(%|ٝ# \ݐ,y nQٰaƍCrHKK+osaܹ5:uРA=/,d"+ŕ5~ ??.]UMR_2p@W`zPDsopd䒺06t8lZ̧x/hAjp DmVBj]clT& *+Jގ^e%D1,e~"4C*PIh5"#nykg=m+ /2;wرcW= |嗈Ȅ P䠂̝sUdq%sS$&&/0i$z-~aN8A^^ j*tB^իG~:uM8EէE9FxTE~-pZ0rUuiY!6i5NYz엌8j J *]BIJ IHB '8g ?UV|yBllLEfV7[hAW27Zflܸ{`` k׮`0W_0h j5:tKgI\$~"MI3b#;%w TêF\XS{. v$brl P\! I`fF!yUٕ7ofȐ!׏u떷922;R{yxG"+LnعsgGy6mڠT*2e 6mO?e۶mF'~H% A?]XiY$u b߿q~s2ށ߆ۣyDo`O-~b!b¤|4ҬpIPUH)ʀUy7B"}KX,y ǎ#""sedd, )%jڵ=z^.**m۶a0С[l)S@5 :`:Wy lmvB".FrJ ҃چ!6,NrEN H-)Oq$Qk1 πJYyg c9q(mNF AȔ*U bQM6Ebb"$oN5ҥ  ЭIx_F:8ҰRq^ 7囏.$; \4X6! HȘ\j-/#` bDi`ʈ GQJp‡w 7oѴiSZjU&TpdUiŕ-[}>|0,[ (X3gdժUF233yCX>Syn<nH!:%=:_} HPN3:ysz2 PRzp96a3`rE:cH^P9DDs7T [.IթW7 wߕY22sUdq%s[ر#YYYL8o#vAx饗xh޼9v"77HqƼ˷d+ҥK:t}q3U!UD=P4tE=%` K˖;xZqnf" PZ㨑r \pRM+=R/ j к!+l%JԨQܺl63~xvJXX S^5NE>#6mJ@@tЁM6] ,N:t:WΛoy Y\6>}:zɓEu:t:֭[GJJ iӆ :u*SNE.\ҥKKm_ HGy}w+k $ z FQ1; Ì`qϥ݌/?D&'TZBPtDu}؂T%]3 ('AaCo-D崃#!( H?_B{R80;.BEzZfԩl6j֬YfTPn]\effh"N'{f̉'2|pZn͚5kXlZ={^UbԨQ UV?/uO֭[vZZlIΝٺuk J(z@{F-H^@l{BIhTҡtM% 1Iy2`,7 Ow)tL٨(b=C@zd IT) xj*oƍy7j22^Zjm6f̘qq˗/m۶tԉ={n:X|yѸ,OСC>}:{/cǎe,^cǎ݆}kJo̙3%>h4l6 ,@i׭[پ}{Qx4 6gyܹ3Zbڵ%rҥ;)܌+!Vp.q:ۍ)zR (΄C|?ɗj[JS4.RkF:[C-K.j!?+_a{p )LhA$ H*IhAZ_O>tҥ͑ބ (NբjE[v;.1vX(O҂2A||<(pHpp0Gnc>}$~!qqqԫWYfqFyj׮Mݺu|t҅z޽{c0 T4!JVL\,cًػ2 %@Y{Qp$._U(Q,6tdFBT:D*B^YeE聧=V3g$++ٳg)22_B͌5Əȑ#Yt){f1{l x9r ?22P=z˶*)DQfxشiSQ{wԩR˨j&MDϞ=ٳ'Ǐ7dʔ),[L.]DztVb2۷/}jժJƒONW%YO޾t+/.o@V!CȦ'7e@kp8XABM5Ry2 CEDt \D Q%U@!* @D yϠIٳYd}]ƍG|||y##SIynfܭ1tP\.?<>, _֭[ʺʛ#(([VŕLxGE"ŋywXh-I&_0uԢ`xxUcO>g}g}ƒ%KJl ?4!DG| jik4OOLLjGPl&Lpp{Tc Cus\@ qd9B8SKxjI0(7J˦FtJDQ!մR{f)˽3vXBCCyWJĵ iii۬Yŋwdddnky˕sK}LƏϰaØ5kVnݺq}s`۱lE>iѢE]Jx x≢;wjժc޼yZ uӻwoQ($$$PbƤ{lJJAGNo>or򣍨t,: LAA&D8Pu SCιp\=5Bۘq1a3Pua PPI G P sMvу`T2v;Q,ddn 9n.&']SNt:iٲUۚ5kƎ;Zz%aᅲNVV 4%[nZ*sgGp1L”)S޽;&Lm۶W+<HPN!~ATuGcrw#ECi )D6QBh$`MĐGfb 4.4J;T '$0YqFz F`#IZQ r8OhpRNϞb2Uڵ_(,,GzjzALL }-*=Dڵӧ+((_I&L.]طoSNeȐ!ԩSVmAo04k֌ӴiӲKFXp!/BT ""s5mw!4ct6uш8R3d yP.Txp&`,F I(X0 "EiDD%"U 'H |HuVe>7wSH\t5kpLE2'%%RA|Cp|rΜ9Z&!!^xDʈ sY*W-Q1bVӄI22ߊ/TBVV>˗/gdeeqh0!f-( oq"Z㒨?C!( D `C : Vt(!P2QFDZEy[:lE)nTqB#y`BH}z*6l`ݻ9sJFF接dZѣGw^6lJ7=< Xt&דG `1? @ SNJ@^'jJD7Wˈ1ya( ,jsNL6џ`*GH0n8|A4 IIIjŋgeddddϕ@_ ۄ/|@vv6999hZ^>֭[*!b64hk֬a޼y*hl6Ǐ/SFFF濑ŕ Ge$Ch)I<U(~uRԽ|]¾#ĘZD@D@zrHFFNEW2278Ib]Dh23!9`tC0M~' B)qDD WЪ[2 Ŏ5.<(p‰h1`%,0-fDycH kN^ͣ2u{dg]`y9g^d7 !$@ B0 X妦"FL): jQVPmmGX Ar!@6F/gpb^3s&gnsfv;ߗkprJ 'upgxb懽檫c=}s,Yӧq0}uWv+P=gٳI$tMs=sf_qʕd^, Cn&."n:6l#VaVk֬! C*++QIz;sJ:@;l6[+gcVF!JuIE++٩MTd @#=(RHR 5@-CdȒajiaj2)$)1H{i|C6o`2WG' R[[%\W*>O}իWswpWVZ]wʕ+Vo|׮]yJ++i0d{&yXd@&t(m4ֳ{~0;ϳ?彳~N[eFf:H'$2m?ѽ@Ub CTS$Ehc{DPY r|0d͚5tttΝ;ihh3_2gy&'x"J.bV^ͲeXl0N: <> zҥKHCQi/L&J9?|#{`u Y:dRASM1~3'l{hFc49r SI,6rY4پi6@PX^8 IDAT?͝\~=wy'+VV.b.RN;7<yttye/_ɓJDʕ42@_0wf71anħyyg`W"}\{7'ܿy1[rǿ:>N:^ aʠ@)I!K ]T#O]LajFg83Ňi ?x;+.ErI*֯_O__ ƕ4$p40 l:@+gXer l!S5JX+YK v ;qǥ -V`ي%9 7*MٓH5Lb/he$%Z{裁ool*'裏Kweaϟhm7xY2 6ؓLEH2(Q EFDD'3^Q*OnƋC @d)KC]IiG[O?} p2}2ut>w<5?'Y4͛ʻ?8i}Ak SI.2b?3HPzn͛7~of̙3ǰWx-Qۦ6)vcR҄$ kat\!M( %ڧ5͗ D0<퇤?zt=cn^N'j, wC/UpOJ%&L ,`ѢE,]3grYg1a„#J;q%' 2a!#n`^zv?cw؜"x)$ʣh{(@H4!4v_$O?R;sw\OEH9Ku w<}~MF,U_T8N~ ۛ9&y稫;$I2!9#G AL@6ȣT4TTO$WKS"YSTN$hi 0D[Y5_o> Bf) (WW)0r)N>/$鵌+Wg$ѻc6WA/E#SK$:H63H5.*`(*,쬽D+Z4_^TUO wQfJb`\I IDѦ(&k05v+@/oWuUY1 %:kD{vnuD|1vQx63B3 V$IGq%# C:w#N'ڜ^$> -`* 5DN& c`+(DO+ +VD n:PMQ8LVCa\IhH93QtѪ AWD՝"Xt\ ڡ"\LP[=lmV&}J^l[fg X J9eLtӺ$iƕtmU  t .Ee>O[HM. 1HpTi]dm/@P IL+}@HA%V+BS $>ƕt??xg3$Qo)max[-!e SD+n(<^^LJ`sAF(MD1U틾\)r^ IAWb~@TKSʕM-CU@{{DDF5cE D>H1oU ALL: @`\ ),Iґd\I18qa+ˎQNՆx䇃hOU#ѪVV n ^ɜDoeHHO!OH(5&)2m'~t pazƒ1 ~ؚySi nx6 ܬYDJDVǣD+[I(Px6˪ :-8;bGb!לz8$1[Ģ[6;l#2ZWD! $/Ic\IGMqO 0Z&:ULH2?2 9kI:-,ͼ=wæ aG2uLm,M'$)ƕK{jPIaAIW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+IW$I12$Ibd\I$(5FGGظq[~0$)l6{D׸q %K$Ik֭,\H^ {}XjӧO'$(wyL8H^qJ$I $I12$Ibd\I$ȸ$Iq%I#J$)Fƕ$IR+I>(IENDB`pyresample-1.8.1/docs/source/_static/images/tb37v_pc.png000066400000000000000000003303731324347254000231770ustar00rootroot00000000000000PNG  IHDRg isBIT|d pHYsaa?i IDATxwս?Sw=gΡ()5FbƘ$F5z+-7FŚ1** "(J桜^wcHQ>y3kf̞oy.EQDEQDE|!QDEQDECQDEQDE|P$gEQDEQD_ YEQDEQErVDEQDEBQDEQDE|P$gEQDEQD_ YEQDEQ4jjjW^aРABϺOEQDEQħd2͛9)b/WW^gݗ"("(3ܹs5kF{"g0\XΒOo⢠PXE)>}htAN]{U}J,4h'lQDE`6]-,wq(1l^9trZNungO/XWi">x}Vt;Vy'A')=~]y]JTPTMD"ي m$wz*>硇bҥD8#k8ꨣvr]wCat]C'? gqF>U種[o+3=^`0@f(2c+|dб ,]ȚX݅hrb/I3Ic5|h>tPqW[g88Ev9"(Olt*N2Nu܀wн]3>%⻣?WQpUM U;VT4\nc.sdhbH}yoݲQ\bf, #\Ҡ /9YyvEwv|ZyJ/ d.*f) =JUXhd1"B4[4oill?)#G9s0e^yLW_ͭe]}G2O/̙3\y{Er7L0p$M!2NQ|M,H-fd '֯_Ogg^/))᠃*XvRSSS[n#<´iӸ뮻vӦMO><#^z1a„}=*2 5[>* O\I-g*.8HCFőjmSA3;"E"{8hGGFV e{OV| N:px_=o\DU V'sMؚFF3HDU@_:H }Wxм-F'QlIv\:]HoufVȣ)L iL X $UqSgY>6. MIlo3,:/fEL"(c59g+Aκ9b}~aw`/Bij 3<k?Y$­}YvR񿭁Cg$*]viL\]v{$OElyhd WQ*:!A:(tu䵱z&OX5w<R kf{{M*IBX BZ)'Aq9ڄwaޟ{r{AIV:| A2>R|r"L@Ek9J]& gt>U4yMl'='8xQM02g]tW !GUt!@ IG\z$IeeqpyPVVs=G]ω'Ȁhjj⡇ .`ƍ>>qb@Q ͷ,hd|,mTTl@iJ#`(IHǢE#]"#^ ԰I"@bi_AI 6 DT"A54RM#&h#B:0LG1O*"hܶ#)-U2Լz^;a}1$) wo^U6D#, Jo6:!a!r5Tz$A4- h%V'cYfAud<❯#ݱBU>.蟗9ez۠{ƥKe 9Y8v·wݍ\,Zw('4PʖDzp4' [û/{뀽ky'{3fnk+O$裏riOs)msƌyvm?p$C5 ĉ҅CVi#FǷHAt%Ro ␒J`JXJѱwA43NJF##- \?[S&@`UMEfh b3Q` yꠑ"}m,^zS}yL&illL&a{_v]͛7l2 `rzꪫHz.dڵܹӏSSO=YgS_,89*Zr  PƄ@uƓP)$g{ :ʺU'oC˳u[|8}.YĿ 6~0!S KG+ tsOZ/ or|˚Gb|=4q$m9F 7#9yH68&(̪D,y#._M^ZO<4ies\m=hJ晫!hY2 r2%."UUP@%tvZʔ<˘U=Gqq36\CQTl (,Y 0'rIvoꪫ mذq?~.ۍ7W_}.^{bYmY$a I."Ḛ7OoQ+ORó:y-!g&IDpP6Iƕ^Y$. 4aRI PN+!g|MҘu4.N A :J9w3wY)6^~e.\ȶmۨ4M>ct]gvժUrSSSCMM UUU,"͒f `|}^6xwxG뮻ttt͊{ƌvaЯ_?ڂ}ֱlO!C8c #g =Ûo˲+WL&"a&rJ^|EZ[[)))!FI&̜9~q?k#l>d>0dFLmfB.?SO93{LCXcn֭[ ,l7tk֬;~8ptGnsO8)//'.`0H h4J,cǎ8NMi&E|hjABz`JmW3mq"F9 ?icEpj U$aDHctu`dH1II.7TR2cͭNi=IǢ6y$lGII&ZlI Ii$B1:d # Lb &m$H%2iArZmj~og[oye~:/ 0Bdz^yڸYb>s}wM]]}?^za",JQWWG6e=׶m4s,Y뮻K.Ç3w\n4Mcԩ{ܹsݻ7]t^zi@_4H$Xf Gf믿ѣ#H0j( 6 >ZC-SƅpںB;%XN[:(KNr'PnN,_ѳyV5YβK9 &Nf*I&VIlfxv!aEitC &< ? \;&X&dYEA7-c4,UduTI8aWSLՑN#ɋ8 (W=j$FG݃rD6aDPQ$ɵUrKjy09OfiAO.4`k_)!J qY!dtv Hqɸ,_cNs`^ \ uʔ),ZDZDQlI3 z+O>$6mBUUF_E $/"z+k֬H$˜1cK83S԰O2hli)k);$ @ C4Tф#-fʼnH*hµyjىE/FХLqHiHd4"IvL҄IdO-L7K dL@"JQD頔 Z)R:r`SGEKp?[TTTZ d_z5 ,77ޠ=]ZZWmر1h JJJ?~)PmM yb#1uitI "A Zh]XЀI ) 2YQ!@^3E$a ]j*%I !"["D!2x#}}a}5t*%tE4U&Y0Z($+'"\d " \F24Qi7HEX~P~"/x_'2u6h*%o@{ΎfP%rؾ#V>gȘI|2(F;72|pf[$))5tKَKTqbhYCZ\Y L3IJajJs*Έ&#Ғ(9eKώIR'*v*I-KN3}.ExeҪ) #p bhR+_!A?i%_>] )L ™g3XoAn$1 @50S˛'-5:c1d0 ؔH1EzڽrK#F6p3"kYVɳ$C I¾;ӳyDҒ˞F {Y2Is[|d*>>MMM\uUhicǎkG̀]j*3|.]ʶm~@߾}߿?i2ydLdĈ\ve+W?)-K/K. MRfϞ͖-[ӟ[{ZZZOZ;魯vFQGȑ#?S牛܈ŽtP*(멝R6К-7 IDATRS 쳁 rsjEj3lGKhҝFW}Ov:Oހaaɓxw-\R.xpTfX A T2"JNjm C!.Գ6fZXEAu\fQTPBL8Mnb+OV2RR{e!8w$,k6rr/,G%6d #GsD;RSLmqAsl#s u~U9*bՄYp~:+CvtIS"#E 8VF/zH|ryFa>̒ARy9! lMT'I ;M]EKc%vFށVP4%Ӛ8l)0wx{鲞./O=7z^si1hР=VmNii)mmmܹC9_W\~L:P(i\q׳uV:;;D;] #iysHa:Ypr.D3tFF[U3RPpe'L1ez]D]h\YEH]5örkx7f^=fygu<wG~/_|QF1y̚5'x￟o$۫q0DbO2njH$ĉ{g=/UVfB6bfΜѣ-ٳgBBr衇^;&OLkk+=~;;v`Ν׿f{+V`ҥ,] 6`eSdPm ײQ})yfY kB}b+%y21!k؆Ӏ18́4|BE '@G4lb͟#Ea?™:HMsHϠVPPx 稆84/i*#1#9̣9 x(XF\ Mv?A%-y!2L"chQ+HcnܧCp3`(~dTgx)540 FCmV8b)g$6W^;/3J?.v K%x(c -"H$%tRMAX<%7\}W4/bܚ,N!( #Dp(]Rq,g·&-_^gJ6?Y`;>lNO6-Ii%KJ_6N L:(!Ajh':RO/\[**d.j?ITDl::!)+O+ӭXVy9YaÆkQ;Y|9?8/{y) /^zQ]]MUUmmm\.{,v3f`ĉy4O!1j(FA&-[Fss3tgy&gy&F]$1O_ԣOeIyyʧ uyYjK.eժUضO lٲK0N ןp5z,(#T?$y7М7.ʚ6ԅkD]+ٮEZZWDV\0٘CR2n,Fš~4wVO,xp@I *!j@(NƕI0̋:! A&U"|QayT\!R,J 4͟wJeLN'%Y~27w5 nM-- )%:\ >b8wM -TPFg4G|,ݬ&8=%C~z3==җTU?n;E[^ۯn͇a{~-pE&,MP jOi$L Qd^fEjYFHRI@+U>WRrz5\eyA) iؤef*D]ZSehԀA .(XI\<7Ά>LAO `kYd^]>gΜɻヒm~&W\wq$s=L>^xpB֭[G}}=/|8ꨣx饗hoo^c{u^pZ*uyUy~nfjkk9sR5?;/zB;bZWΣdzb ^}U,b0WJT%J= C$BX:ɽ= /ƬtFim(j;>1*+! T[BֈBŨMۨ\BаHU`ʼ 4ϭu&- DuU&2JΒ_v7+XJ 6n(#2>8#5jӧOq0yd;0;0 ٶĉeL&5\CCC@@ @߾}1cF^+(j*ihh 2uT/_κuzA1ܬtP.I4AeI=;MIi&jATYٟi[ㄺ{q myч-Z 6~>P~:_|1(++c_ƍǪUxihh`РAq:֭[y7o٧OmFUU``YeJü[~l߾zE3 .o^z6.F>'_$\ѣGUے?rqW"\ /q?ѣ߿?[Qۃ h9cPՆ*H6+Qa%njEO8 N-8p˯yEa#g3[H$N,c.nPJF'Hڻ,;??ԯy-pUzl[~ F) %\>oD^dJ4mb_S˖3AS:@Ns̫ ¶R:I)aM|q'l iM:i ( !Y]'$&HY ?.NNJh V4pWr40b/E>./a؀t-LLµ$^=6bP :$%i᫠iܟA Uh.(TӈJPpi'F|pQWZhD.Bv6Yut( ogl2N, ӜשI7STLm3ik8ɋL$)؄I2_ش~w~Rرc,3aV^MSSyA f2 3(ַ>c-#GzjJKK93߿?_|}/:4L|uqy1d-k}ŕyVJxNZx<(ǓhcNN >Z lw`&;T̫nÌ9*ұlLG7J8D:RAG.Mk8%Ow͓4 Ԥb" ʚīQ jvRÈg8=gO>@t҉ Ί58w߈; ܑ_q@K;kԪcO&pޕ\2ufdBQT4X&HR/"h$ۊ+NUUHջwojjj`ӦMvs 1M3`=>+KGgsϱxA8$KݐLc5E-+9kܶJ#j#9t FƱ,0"g0 'R:-THzLN NI,4A1^%Aֆ-3S)r$,=lb@/ye|B  1! *kvgZ d,8 x-Jr9*Y*[>"f5~i9bCa„ L8 6k hjj4M~_r-yfu]M7o/D};vpw3o<__~̞=Cri`MƳ>駟KYo~G A̼ap{[m:'̂#p _#m"Z]wq)*iD|;$HdH.ʐ>1%D#h4ZFqL4ա!&<"y,jEF C,Q3W 7m9P GX;%c!ꓰ! N FU¬#v&o x͵\V7p5-qY^e6St4ٸ&}]e .̯֭[ TUUikk4IRr-]zH$B{{;cƌ\ve?۶ygς  'Hss3`ooۨʜ9sO~ܦi8 aÆky(++_*+W{a̘14i~;HÇcZw]]]ADwu]jkkihheСCw˕W^ 't/^yV\:t(7o淿-Gy$s ~.|wT58s0a?ϰms=kCbh8ZZZhll& àrʘ:u*ti,^z6Jڋ'Q$g̻`7.D6M6-`q{:.`d]U0ä(.T &~x5:p[ xP? `}3 HbD6zP& $LA` ruҚU ʂg\UT=#u$[ҥ}.Lmٶm᧟~bǎj644(|RPP@QQ&{Oյp6lH\\\}(?7Ԝ]NrVl"37^Eܮ$P~|)f@-9;S9xtSuAHWpU+١AP]@p:ܥvY&,-nKDڷrw2lws‚IIh280*wymc{1n>#\.AAA&ݻh4hZ"##՜b@prhٲ%ݻwWܫN6jm ~%{￿XfUJ4q4hKHHZ]r0 U>cFyb{9*ԯX#F}_vRa^NNȑ# 6mNII ͛7gq4o^ȑ#9sLes̡m۶4k I˖-aIVrr2g&<<Ɔ p+DEEѫW/zM޽iݺuӧ9}4:uh^JD`00l06mĎ;Q ʭJJJH9\.7G$cx @ǎV=z`Zٹs'7ofǎnի>  PС{"͛swrwPRR'|Çٿ? : ###C%I/ߺ)W>/ӹ/ݦu0gh m>,fcBÙ.@ÃF4L1(5:&hTx! lsaQK$C䂕g(B(d}e 9h6aS4iiMj^}Z}U? ݻW[8|0֭SRΜ9CXXX?w۶m#--Юlz8G7|Cvv6ׯo%??H.]JӦM1jzU(**bȐ!8,&xdVHVhcEGJ@V ǁGX$]aH .@BŪL;'7VL1%6֙)ɖ8t:֭cȐ!~1 FyC-㏎o&%%Eɓd~_III 6[nEW^[nSN\ѢE ֬YCJJ h4rrr2d;vt Qv;}8q"dڵng֭3}tΝ{ᇴ QgÕ>ҰӛoɹshӦ gϞ,;&&gV{,~qJ(9Zjlvv6̘1kOs7ӦMK"_呀ٻw/X,& RDYZZj].l߾nݺo&7nN5nݺhZݻӭ[j!/ismp ϚkFۨ[."Qr>|f͚]u\)WfyWUزe [nEc2*HTLF-[yө~FWYqlXp\̚5}l2 ? KpP̔=XXmذ;vp, ]ve̙C]զMr .\ȢETqO%e.iZq:t(oYYY$&&Ķm-[]wU!"лwoYp*bb >3ZoB® J'Hd+~C6f@ P-nFi$\cS/6C%deh)E ^@|>C8-h[ىGI>M,yP09\Cɽy%}i6 tE*fΜɜ9s]h4Һuk&Mȑ#KNNfĉDFFjeժU2tZ_T~\.z-UEr_ ֭[ҥKYvme 4੧W^%UB(l6:}=PNrrrx뭷^c^n?~nӂ xᇫVxnBB{!<0~w%Kصkaaax^,X7ȸqhԨׯg׮]̝;Zx8~N5=n:F1^($7vhuoF\^Ř}Sp" M1] 8D[*R(2s"Z3eۊA!S [Q\ 鏹P eSS/(u?|e˖1bĈ?mڴWEA,qCǼl2|pZlIqq1'99oFʟx»mΜ9sNfΜرc/*_gْ%KT#m /^ԯ__}QԮ]^z>}6mbڴi޽>pj2}ԩ;wDDsj57NS$K4n (0RCh~\# AhIkFE0 h5N륁)H(Ō_x%|"(cԺi} P5qv$RI4^(դ"h=Ԫ 3ُWgX:׸9̕AyYV7fNQQIIIr =JDDgfĉ*YxE`laC'bRFX \jdΏm*⧈0lNE":l=;\%JV2EQ@=|W+_rҥr[5kƚ5khѢ&΍ݸwrUY t0ZY+kNNN%EFh֬6l>Ǐ9v.'>>qUK7o3g$%%W!t-Z͛+0 5>^x 6P\\LQQOWP)9JKiiJ#!|\9M= 3a#ē` Br&8RM9%!E1&S)8ۀƭCaEo`4Z ̄=' Rkl1Jc6t7aYKxOfRmХ N,́qu+K/+D@RbΜ9|׫W/6oތ0h mۆU(le8466V<#tݻUa3zITe˖1nܸ jJjڷoϾ}.iKAVV?p-!Cj"99۷uV8I&]<7ndРAE>3l޼k?GySA^^^"ӦMcѢE'IIIW'!ю %&eVv)7?oRЀB/1, YD%PM Q3/eD|X^zQ@ $2O Y)6w2> nGT[-9! "ŋذaCwCPNԩC||}O  ֯__Mz~Ncƌ̘1{2sL:~G;(]~0L7;x^k)GiE ܜ6I,8Cv'QD-rpH jnֈ]A8#q39xg"({ U#4_C`hϦsdc+9qZ? -DPh̍iQ>܃52O,4*|deef l N㩧gG}Dpp0zB޽4hNzqdu<_=O= vޝ3gΰh"u I/ƎKzz:V.`YΞ=֭[UbVn sǚ5kXz5~;IIIl6y y7kgϞWWuV{=.]ZiY~~|_СC,]T֭K=뮻TGiӦds/Tg5g222T 34\9F#,YđO$pLX%ϗ8p`h-z&'ZҠz;a(#T~@Jդ(`eEZ\"A2[`J0QJ63 5.ps) %F^^SAz';`Æ FPOѣQ6ۍ^]m~/"^Z7WZTWCk׮je>S{o)))y>bbb5?+p)ؿ?}%** LzFpp0 6ůH`'"`#sİ?F8Y_:v8 * %ta .nX:N $}h>"f,0foVtTJ9#4{-/4 IDATD aٹ>=SS2x`әtP>s@.y{d?|Ka޽ҥKEN'֭c;:`03]x1=zaÆ1a>ĉyG1cFo @!aO>dy$ȑ ^ ?`#t0@6Aح8E?'A|J:WZ0ke F>txį!Hk#\o~q -N%tx'A@Y8D[&ŁR1a[{,I^˕+WҧOG}>ӦM^~o#33#GT}뭷u3*Dry tQ3gΰ}vm۱l$$$_mU%@)j9=z4Vbo߾uvʱc8{l￟?PM9M6aÆD֯GҩS'ڴiw}wQ!""$Pq>;GρI&t )&x 0ͱL>xü#Q|*%H5[N. @&Sx,Z(2֖A["A@@}'qӈ&f\5Q'4(ιk9<ׇfpoQP9/{wsV6j*a~7*, $Κ5kkظq#o"Bbb"]wÆ c3sNvɏ?-\}^ĵk0~xnfի}_i7 AW_-hK.~L:ؾ};5bǎj!Htt4MV h[o@Z3f :Bt,--|+ 1ݷh2](Jm38ގ^ߌ@I`Q/ĈN|hcŠuA3n8zMF\@\V3h,` c v =J^ 4°z1j5.xÈnu+l6۷ogӦM]Ϟ=y衇*r2e /ԩS|//d֭3Ejj*ܹ,XP!Er,X/Buߨ_>]v%<<4ZlI>}*J\P3QCF2k,VXoqAbV^4iR>YH {nd5YZ|R$]ww}h,Wwd|.wR/e\'+f'e'$ +oJ_Y'e$ ?5򣴗LHzNH]9*u$U>i&{$ʕ.,HPatr,d$H KqM"t;wV$## ad-hZuB|oؽ{w6l|gv]lt>6oެ?<<\nvs~~,YD\\\|E?U:tIhԨvmry~_eر5:v֭+|nٲ_^222*,ٳ XV 7e< H_JVIIVDHwKknhUi281~͗B . E8;EE$0Hݙ=-$AJwNϤX<+Yہ!??_qjVΏ?(3gΔxb裏dʔ)R=j޼V WTdggСCIJJcNJVUWӉlV??cH=*~nI4DGGc=&k֬*r/걛!ҡⴢrShũW=gyF4̛7c?chd=h|VdԨQ~:9WA-\P{KzɈ#jްEÞn~Yb@}$κO$}8J&&'eL򤌐%r,AZZ([얆"xNJ約9$4K%]%ARfY!#dt R{R E9/lrPt#FIP'ݻw믿^y9ya޽n_}B yU~Ç^9s\9yҬY3IJJ>}e?"##+ܓ!C~_ڷo/tQN:%""C$66Vj׮-˗/_]xݻDGGW8nddJDDxȀDD$//O%mV[lBn/J_Y'd]C;^*)zR]OרmVhJhLP/_M.lWYT/%9\#S8S*3 8SqDz2$^Jk!s,/+f͚%V Jrrr-_rP}\R"##%**JV^]aYJJʅ w)-:u FQ]+tN,YrA"z>%"/>nY=9+'f>lu\%:ur+DȎ;*?{lߟ?nNS:^/wx-ZOX&|,‚aB! !1BdMGr&/'y^F͓' iCJW^ZwJ=]xIolIGr;})J=19HLyb)ȗ\tgH6-_:q=s<"ђ(ڵdɒ (|>L0A9p@VG_6fx<\Q\\,/|?w{bDDi9"L<}XVy7[oUc{.)zԿj2bIII^SXmŲY:2\^ yJʛOMVi %VNHdۄЫחR6OYDs#>! [»غnӥXrD[,VWGb+`916%A/ROKs%Kޫ>ٳ+EFϟ>sYf,]T^up\'M$~Es8~ze…2{l2e7N&O,͓KJ$""B#~XDDo߮<ի%$$D"##e…ҽ{*矗?ȓO>)xK" rv09{gEȬY.zUVFzb2dĉϛ7OZ>|]eU#g" :|x<@fDDDȤId2IFQ^nVV,]T|wHFYaCx[eP׉2ExW%",(xCl#1͜U'<%+oJg$a,wJ3#d$dt-r|%e Qs%UjIt-C6H[I8q*O?]bΜ9H۶m߽bԩj{1G=i֬ٳG6m$#jպl 2o< O7-rSzzi#ۤxs"|U/ןS~IvMDb'W}h'LN>XBJ%ҕ!*4CR_K}9,}ƒr:ܟ~֬Y#̝;2#SN'JQQџ~n"JC;@TBWUD=".>n_59{EȠAdm۶ o1p@ ۜ9sDʌ3dӦMK/I``L0߇߃RYyfϞ /@ff&K,PIʑ#Gظq#:'O$!! 3Αog!Jin HlPW"lE 3A]O,SLhZÂ"?Z4v,qO%sQ.cDK(/obeyr3eX,ffX<{,~¸/%?oAFxwT P/Gnn.%%%~ѣ/ynglڴIw!j$IAARN^xl٢N^z,X!C~T\.]vtfnxW_яZYb) ,(GPs(bˌ q#}'`r( F#40KyEѸ]l]‚i}|z;~d x*2~"LAVvqvW`٘>}:oݻw7ޠI&f4 ^á\.4 |.ZMXvmbcci׮999|W﵅ 2j(6l_OϞ=o0/Ÿ;AXϕ5bh4,222HHH`̘1Ubcc?~<3f̸5_OL6cǎѾ}{KBB}駟ʇ (AQbE!i@5` \C]0`:Zh(pcJedMAC !F/YMpq^?֎veoXJp82=W^yS裏bۉg̘1$$$&''3i$Umꫯo>uw]/𫉗^zcZ]v%99r Z˗j)--%::Z(Slٲ={VضaÆ4oޜ_nHNNF3rH-[V#맿e4a|") 3ԡpNрlbLj/81!pZ;;h>yhSx8; uJf]]{gb7=sk/AOOWQGKó_Ooa޼y}xhݺ5N駟wތ7aÆ]9h4zĉy),,$<v2~'H>Db+3 p!@ٴPQm(,GiA D3iw ِu. XOID!RT'\8 999̘1%Kƍ+YQL2t_~;ʌ3TbV~}>mvI bsht$/U@s (K 86T=d{k~x p/:Qw}J1aǂ V$RLRŅPJiqem6ˢG0tfgC>3ϰax ==4DP)F$RH82/8E "x(:Qc!@ ԧK(P"-JەPj%) t.R?4Qf'܈E":I(MHkB222/V\qXr%o}en7+V'+?~<*"edb_.\tpoΝ;ҥK<<#`zJ&#fC'9޲e]^=<Ƞ|9P+:?dZB&uD hq8aM,4fA@r :X,31cpi>C>/_N:uWF֭믿n:VZO?{G~b FF|^yFALLe9: 5k*<٠AuYٿ?ڵ^c!.4DK""\nM;)${ܹ37tB&&&b4?>g~e_!^E]21lJ1S n"ǎ7Ft)GZP3gQ#J+ĵ?E`390jMpA8%~у׫J09w%NrV’ۉe֭Dj*z "L<Fã>ʔ)S#HNNnW NIIn|jK㡣flzepY9>ʭJ=6hoFJ!xi5,h %VAPLNNt)oC_ϫ0_GX4n uaGG,ghGx$+Jwk^z̘1'|m۶f p\2|pѣGU5vZnz#FngϞjOsʔ)L2C]ɿ |>?XreⓓFADžcԨQL2zЋNjj*4lǬYhժ?#{/[ljR~ ;v7*?RX'hr AF61& 13Bxꅞv/~F`kAPJ8K,9R 7]!80csIt *6#.6ٮ#p[LsV+F **ُ… eHm۶pB ƍ#..'N+_4:sW[f _|~-&[nwwG@G͈șNzQJaqnkBPB Q38W()`|m_uc}{-i}k>K1xr=(>R@xёFn), xYp0p@l#Ghڴ%Gн{ww;u 6T_KXX| 3 s=ZhQ;w.ջ"+cLO>_̈́ :t(-oeܸqٓ]v1ff̘_>#E~~>ǎ#==]%w䇮XT7kZZjѣGUaL=x'h߾=˖-SK¯!V(:sL!. Fb9ܦ9N!B[wqU^6 E+M3[jiVji2gs6Ḿ( K6q"7<ϙ{]]F3!r&DHT-Nd+rɱUylݲICE.dg"W1޴yhۥS?'7owʕ+ycΝlٲ ҽ{"}L0h6mCoAXZZ~s?H~PPۗ0°+xNN*[d__"8WL$c).?(œ6H53sl퇛`A\&"ÄAVhHq#b(E<q%d\#H0{+Wѝ4i IDATiqQӓӪU" }ѣG;v,W&11={@)S\j5ݺuҥKVZqA WfΝߛ3_ 0<'g~ T !%$(# M&pA-%Yh3VIR3OR,|Bd\p& 1Byؐ#p"xC9ׯӲeKͦ_~rZ66m"((|z=QQQn:z۩[.,ZÇ3mڴW0>~>_Ud0/ᕉd@$$o%3WT<0d{6! 鄣aE PJ*؈2ej./8)a{|ErK,/|,Y[l99EN}SɡA>>t kkkywqssZjQF V^No1֖pwt:g- a-b7កqQ C;dgۑqdop$<+rb3Ir*\bz5.*s &ni)dY34&f\BFF0 \tt4 ~dffW\aƌE*) k>0q~$LOD`l 54 ^A ~[GYAJNGm9*᜖ )*(orϘW[2b&Lطu)fΜڵkd2YYYaaaSWÎ; .вeWՓRdڵn:͛G:uHKKϏ *дiS VWvJaW9+,pÛNj5[G]y s@TYQ )D2 tҴHj ~_D\ J^wR(4)Dd%W)V'r,*<yyyٓ_ZM۶mqvv& Fѭ[7|||?~< z*&* Dm5 GϜ^Uxs3ht;Vd͛IJJzc5|˗/7ҽ/a&h4b-z=ʬY,ғ~INNf޽_NṊȤ&z.S1 iHƚ\dN(0JRjWpV䑁*^'۟sG ( ({3sC_ ?gR3[,s3q+jjU'й"o#Gpuu ˫WҦMz=[n5?X䤕*UxKAISr*/|5R D2 >S7!g=y~!qH9fU/ AJ=币'bCӤf͚ԬYHH uЁ d/x vh4Fcy#Gh޼9]t)6v#LV?ܸ FÄ 0`cхܹ3W^%77 6ФIvi(DEE 7oɓ0avvvSNzlݺ֯ӧFVZ1l0ˎ;СyrJ#p"|90\v,3;ggW \ ǒ[J.S:eL~ЊIm6ӖjNDWVz&s!*Js_xPf(ܩvx ,--9|pPg;!!!>}}e(=0%"w@`1 ɸQht̟pw_ ɟ_3=R¿-v_<' C5RgOySVR%z=o6[l)֚%,,Ddd2*V7n P*&U\^z7߼˗/STGɡB ۷777@ؼysrsscUf6>ԩS͡"44 .0m4~'͛͆ٴi=D xV2n%0-A ZSpdG@YKIHףBx?r-a`mz5,Olș:ToKݙ~>TjsrhSiyٕJ^KMӦMqvv&$$XڒA`` seƌdJqv83S9Js7)a*""A2{oR'WYLE {Q=̟txǛwL* Zrm {?KۛA^^N:rwN .:22_daccÈ#ӧݺudffӽ{'Heȑ#̘1о}{4 rBQ-[hڴiy!6mb͔/_-[RLMf͚L:˗s9ȀpW͛!-[VTz^2eбcGB||<| _}fbĈ 2^:uPB8tM6y渻sM>bZ5Q'nt:2+\JjcT M(L衵A5FQcb]rvjxdhQ8RL&/qpp ==+W2rHj׮Ͷmilݺ͛7ӠA6nȀ6硽hb%G3`0BpJ0!+f!$[, Xb3B@!v"rؘ?!V b.=S yCM6Gwppp7nT5ObΝw\w\\-ٱcD.]… l>}ZB "88X4h@Zj5jQjUQre'8Pl˗/Upqq1/NBq9!̙3BDEE͛ '''qUߊȸcٹsժUZŠAJ...bժUw{Y<ҥKBPWWWѿa4BD !&#k#FF{"UB}=ȎIZ4yFdՄOGR}$1\|kDA'kE+M%֊y* yTW4ѡCBP>}bL4|kNdgg#G777EY~=!{ uϞ=G\rBR Ѷm[Rd\߾}L&+6}q2L_sv m+&V$uHz$R{'G):2t͔HO)#尹"j(Z ЬY3Νu5/[,$ۓfkժݻ1 8;;51wdeeѶm[szysI%ڃNٲef֬Yp8y$ ?: 3h FMLL _~%6m"00:ЩS',YB6mu>SNCҥK]C))),Yϓ+cǎct邍MmU^ڵkb >C\]]X"Ǐ_~,]'OAp a_&ܪlu%nPz MIEVXji EqVHyR- J)Ëpܛ[ᒀC_!hӦ :^OHHcǎ_~EL&Sq;wBnn. 6dҥ4mڴu #,Z$FAjHOOᆪe˖޽Hzkkk8PdON-Hx֔gF׈EafdQqBY?β[y|d]| < RSu]{5RΚ (#p9Z1uTrrr$=z؆ 2vXڶm{W SNqi;ƢEP#h׮ժU{2 QT)ZhADD-g4ٸq#K,a߾}b2P*T^իdžravʌ3`ƌ,^!Cxb&MĴiӘ6m/_B \tƍ3sL.\Xl Peʕtڕw}4 dʕ! ΎCj*>SիGjprrBAjj*jL*a5jD9pvvvԮ] &ٳg$ ˗/hpvv6ѣDGG;sʦ/3f ֖kfb7BYlM4aҥ1Gl߾} ,ԩS3A3{l~'ʨQٳ'+VFlٲ"Q\\_5Hpttdʔ)|L>ӧcmmR?$88KKKcݻl;wҬY3,--=8880o<Νˍ7D.Vi֬}jժEYx1ӧOCf5/Rl* G"}o(kKdFiLDX8ػUu OX~ 1D2c Jf͈$099vѵkWILL}eOgG۷ooيDZ}UPAq>"-ILL$))dٰa[l}XZZҠAIٚ5kXz}bΝodAʕ~:*P#=Z"u1?!=|)G*1A@yH8p ם=ž\"ۓr&Q}o9sX` 5'~$ 6PjUƏϔ)SP(ЪU+ϢEox~W_T*-!CAð6hʸqXf ͣV޲}iܸ1j7d^̙3N:ѤIFI߾}yJQ}RcN&&$# lt3&c<&5 Qsf<Xk;[YYJ Xh#7K/Yl yhڻdX[[wMKKKϟOxxxǎӓ5kҺukzɡCtR*vڙC y~`` PB(6IORR۷o/fmm͏?@bdc*rTJ!y,*-< ڙ '@Iĕ}m8TKv|f uuE&ń ظq#oÇ7{¤߿?{嫯bw,T&==;PF Ο?Ϗ?ȧ~JRq6l[f}pUM4S2m4 t۷ёcǎ.u*%%I:J7^g̕YXW"݈-_[B`wbږ$3@(M9GCi=lmm 6ҥK6)%< ӧcoo22**۷￳a4h3f oHow}ǨQXr%6mK.[|777WEP[f2n88ze D .+RI8]DHI')_9#ddbYHV8,N4lؐ({=ϟϕ+Wؽ{7>&M`Ŋ777VX5ju>(bT߉m۶ѬY3ѣ-Z`Ϟ=t:Zk?bҤIAQ@~^Eڻ!8.$q=BGEhw !X/HXf \+ r"B DBLG1!"Ē|1!^'Og;&I|bb̙_~M6 @HIIYYYbĉ6]h۶ucƌ{(WB l2ѢE m۶~ǼQFsV^]4lI&bΜ9GE믏Z]d~t KCcBB8Ц"ğ1% B,B)DkBڊ[7m8+b+b 6&b\|E'55U^Z 0@EԮ][ݻȸɵkׄBo111֭[ݰay~5D-=c yS; !ɓL&ƍ{}غudbΜ99N׋ 777a2hO7nȡ0\Q&CTLYr%k~,q4nܘ9sp10iYNV#tHa[0)AW^E(agE*#G&~yJǏL 2mdxߋLVV>Hf2ds~hEz"'B[Hh/;6ڵksir9IIIEKx:Z>}Ю];vY_w}M>pVQFܼyГFP _-[ĮPu㢐,TE(=-LuH_2jZyC%:$+IX ! Ib[o˖-[ڵ+o6ׯkbv׮]ٲe 2jѢ ,,O>ÇSV-N> FN:ԫW"lBΝA>Ey p~H}mٲ%cxR&a4]HΜ9C||<2eҥKF]D9`ҥ,XܿYP~}>bϊ"%[HH՚ C/ |VR 'lrm,R#ޥ܌[(!ضmӧO7oݺZ~{qM&OLǎٺu+!ٵk6mF^۷/:u_h4fO9s\2)))L:zM:88V֭o#u:W6'+i0j?ÇSbE&NH\ )? +Q$;C_ 5>K1?QK+R )RvEhYЪU+RRRS G Xd {E#`ܹ >2F@tt4m۶%33N-[fO^sSys0!i(2'Bt4F?*ހ֓`k0cLPs$ArU L` ckÚ5kٳޥW .УGΝ;LJ~ԩSz,^͛3sL4h&ƍӶm[뇇GRSS;w.s!//:u7аa~AkݺurС'f"HSYaԃtG[Fa`RpTكego3W 3`n=䕷KtȿT6Nj\z\|;HJ%K C˖-iٲ%))_EJNCP.3Ř/`D2Թ3 yĬǥ =_n"vAt4Gι~:8q:u<=zu2d?~8p gǎ\v 2e 7nEԩSx>ʖ-?@FTժUc鸻ckk[L/""V* VѣԩM6}i틫, %r[6ldV9(n S9| )!Hl@ 6ɳ:(ɋ~ ܹs1 +W{ߕd۷Mra&MDv[SSb=,roY,rYat%RH IxV [A\9#L-*h~}ʵx>mRT)>PSJx>͛7srss|V5+4K F4,/2BHh7ҽaf $WHZ$P&Hm&MЦM@T.1̞Jr+Jo +WY1[ uB*u.yyVtJd*L) 0Z#_Q!8nȣEcHPӈwޘL&j5: 67{e޽( r9fbtڕ3qW6y A~Ȟ49… |DGGj*Zjueʗ/_ȟ4iEZxxx~_[3g2bʕ+sY,,,V _)¬e$cG%Cz%KjAv@[cp,0{l5kеk{.cggg.QsKsvY~7N\ x*WKB ov`ʶ@"wF)7a㐅6c%YYȰ[z%u UC8{R"33?ɓ'CDG!//7o2ו+W3f 6ҥK 2JŻʕ+͚6%<}BCCyZ*۷ֻS ???mPީa޽)$Z_tɾ}ʕ+|̛7O;zP:>W3`#PIHڙBi g$o( lo!)O@  ٴiӳޝ0}vLQ(+WWWWΟ?ώ;0a?0w8{DfFW#fU.עKBL :t&r=)jW sAV.%%O_3 Gǧ^2v(INg+իM?iҤIO/k׮°0f͚Źspssc%SD׳c8 gӦMЭ[76l`.DA·~ݻ "##4izR+RQu$I& !n|xcp'U Fiܴl:*|8۶mcȑy!!!\x\N=Xnt'ϐ!Cܹ3[lO>!$$g[OUVEſGZg5֭g&>>ɓ'T*jo~N.BN43Ha\H1@+:%$Lu;d`f…\v-[5 ^ KsETTV]v 3ڵkNJ+* y?g [QTfPlݢqxy^l.oS.f!Uzj1?gHa  zڷ 6X?%//___Ǣ}5n8@}w?|po;ƢE5k׮]cƌXYY=zjT*bbb裏/0aBP0~xrssQΝؽ3 A9g[Gpra=nuB^&gH!Mk k =kфou}8|0 ~۷$G(@(czAEu===h%#ȜHW3qB3NiJ7mKd%iHpf6V:t.h)ph^??qqqI&DDD<֮]zVFIҥ4iJZZ=*QYt)7f͚ )eY |7R 6w%RsŢh Ŋ5cO`Vd9WS gŵuM̙k g IDAT{ٳC6Y֮] P-[tdxjZJ2s)Ο?Qn{3<… Vgf͚5?v`43mr`ЇP!+\Cнt{n}rV{cMdHl&xuOhh(={`ǎ'O~3+8Xd`Kl9,Э[7tFAL0e˖ZADDD@DDD8s? ~!#g R)UhS&-UHV[6 zAgo!8|سgP*[n"==M$X)ؐ&(˅`|(xɻѫL-;-wbȑϟ?QOQ~獽Bl) [ի|"$$DܵĉB$1r"ةl)jlZ |좕* {.0[e$dgVÔw7|tݻ9q:t͛Nl6Zvff&G/weܸq2JqGQOEr._LJ8z(_|+wҤIMDG+ |l$X }=;Zեz/Fnp(ߺ`rDZW{+װcǎ*N 9-AdsfaM3Ip ^SO=AFF j}_bX`~'m۶7`ٲeݻ1cPfMƏOjjjU͛7{nGE> ..YfѠA6l@LL _uY2o/Oݱ}if[|I]p4B箭iY ABv@L2>}8w/-++ *Ő!C8aZJOOOXz5.\!s zQ̸2JVdX?Y#Aرӯ_?F#SNeѢE꫎P"Z[9ԩiB*<+\&=UR҅*%]h3R29]pbk6 !8"nBsVi!8awc߿_oy>cVE||Sb4Łŋ? \@hZk???kF#/^,z}od0 bŊ{S)L&1sL!ԩSBiF 2XZB7;AqUY~Q!oDgZ\pl c8-G3_as{" 1!>hL&.]PI$ws{g;rH%fY|bgW999b Xr{Ob˖-%:+M ]n{nRD5$IW_-21 #7ayGnpJT!ORwva!kSk7Ύ yAm\ Q1f5k{RRR1b}3b!QTVUt:RĜ9shE;%ٶm|Ɇ ~IƊzݻ8B+UtOCX,l6WlG)|vDx>FJJJzj!I߿HJJkQ(3J q5Fo O}pMT-Apj?Q&;+eW-By;ShS:5M(2<6WTr;xYYYǏwj~~$IDFF@L:U?~\J*>}8}>SqJ"&&FܼyS '渇7o|)Ռ3ƱqF!Ixg@{ @lqȾrvS0WC^kH.Z ).SSӄ*%]rDUnD WEVNZbUT7-W^)p-[ ׯ/RSx[NXV[o9>},iP#|Dx`9§޽[⋢jժBT ///OCsl*:t $Icǎ-˗ڵk Z-V*f͚%L&K$L&+MH=( FGųXrLF%Fe;ЬQܱŧ(-63! J BF79i{*_wEXXߨQXj.{-Pu{Ϟ=x{{3{lr9_~%7odΝN߇cǒܹs9tcdbʕt|}} &44#G:=? ///C׮]&((QOҶm[VXAff&C ӓӭ[78Ph]8x~-?@A^  @9_ n32 d2+B/40)m)f#n:aaa5 NJBBBߝ̚5M6Qb{zhܸ1N^Z.Ҙ/`pgtYbc_͢Ew7y1g>k׮%))I&Q^=222Xd ;wf׮]tsVXATT@us>`ԩуpˆ}` |kɣ-VΜ'uxtK'1 .c"+dgEnldi+Y xQ%*X:"R4,Lo QNqڵoΝcƌgΜB/6n(6o,СC6gΝP`Lׯ[n;v'N?Å)+8MV&q>3!IRyv!Ă Wܵk""aSb$ƫ7sW Ic Ib\M*AHqzq,zŇue999YT^]y(1sBU|\./_/z%.]*lٲBmZEDDrSF) +g?DK5/Nz ݺuk_ttpww?$I[''' F#FoyL&.}g%LD +hse\Yo yBP&gMzʼn-5,.:"RE+Wᢆ8#[&-USĊsˢF]O,Z?⡡C-ZiРHKKBq NNOO+d m۶b$rE{TJ5:NlR( b &F#\T?VU\/"+:o" ? y XL!ORݕcR\-.GpSo k6^9vyĉB_+WDf̈́r .@s6o܆jժ-[ vm B.6m8.e˖9: 8.8/>}QPsڵS]ۻu&(gy!ǎ˷=>>^H$͛W+.9DŽ{rj#rOJVK&Z AOyx*zIċtHƏdD\"CWY^ih]uwfԬYG2~xrss>}:[fϞ=X,w/^x^yT† HLL>|ءؤ3'Of͚4hЀf͚]zj ++tj׮M@@CXxh4}:`6l .d޽Y<f<@"aF # ǂ *rpMƀ\e!]fBqח3gp^|EuFŊy饗:t( 6trכ7Oo('O61"I}}`];u++C$&&R~G=RJbΜ9lذM61j(\]]ѣc.]Tr8L\Fka@ X;6#|veh$j$F$}Ef|P+2r, PbŒ͠P㇄pi;ƍꫯXh 4`СpQ=JPPk׮RJ0 yfIHHqƌ=.c0$o>th'PB_|Q޽;\rŹN@&,>ϘaU-m@i B`ko^iKYm*Iq{ ЪU+~ɓrqZlɗ_~JrBރ=IlIG7oXm߾}ٿ?+Vtϟ?cǎ^L!ӧg[<5jM4_/\?d 6 JEv_7ۜ={Çc0x rkeeRO:IqZjΒ;'udg)HtgOɛE%dO>ˆ)xkE9.fƍl4p!-:f+$Ѻuk>3 aƌr ڶm˅ hԨ?CU*۷]ϛozjeѢET\ŋ= -vĠ!X7A!`ؾQMJhLά20(m0+Wk׮{si5kƹs_9zh ػwHnn}ϛ8qۙ3gܸqSi.۲e 9*T(R_e#GxLڵyf1Խqsscʔ)dggc08y$w׻wﻶiӆ&܋}RN'OL͑2-%Q[s̚50Gɝ+۷/_ۻw/`۷oڵW^h4֯_#I/5*J*T@ mnY,z^'4aErND3VX0„COʩBP(W:={p+FTȱˆdB..XIӠ㙀X;$IA߾}ٹs'ooo*TÇNÆ ,XYNGfff%++ѣG#I##Q5j$%%a~74h@N;w.zcXZeoIH#u[+%f9XdH fQ&N{O/Ջf͚1{ec:CWy6nHhڴ)w l޼9`+^^Xr9w+l"&}谹5df̘O?M>}1y 88;k:b+VHǎJooo c,^Yfo{0xTNy߿ܵ?oEa&ּ{jՊ}qefUZ{Jdd$}<_+Uę3gBp1x STޓ2J'b ng $sNڴiC۶m-o5,[-[гgOVXԩS+wƜ}KU|YyُԢw,JU\HȰWdH;S:!běQI$ dٗpHhM-:2Q6lFZ $ %FTЌ;QCӓI&jYj\tP%,nܸ3gXtcQF jժſo7n\VGuքZɺuسg=zQO'2k׮0p@ΝKpp0!$&&ɽKܚ$ }dW>L&ؙAi+"G Q4#uF  *+l9+dh~hذ!g_ͷoUVԪU$n=udggl26m̙3ѣo6.\ȧSxfz:… >|8 ұcb]߃r渂(2[[EaDgi\T"aŝ,4mf IDATУń-ȃ @„ <즛p@db@UՄ,Ng$Qקٜ#lKDPc4%Lq# 3JnS&X(Gؒ~*Ca8q"ʕW^AV;j`>'O8S3-s.r˵LWhѧ#HV$QZmD0*l%(bBƍJDXX ɓdRSSYf ݙ{HMMLJ#FFYz5ݺuwug۷o'**QGiӦjI~(fΜI\\4k֌۷7PR;q%=ll D|H#xC-.Q ix;fPǚ)1ڦAǯ\2]h67$t8aϾI (`BI +2PaxPL߸/NJ+Xn?,^O>?g>-8+&Nș3{I`̙$$$PJzɜ9sرc͛7s  ]&y' :5Jʄ.a(\xgE6VAfkFΙ1Kukzۛ[:cի;dS9hoI&޽*e7kex"39NТIs\" #jVԠǍl$lYdC*d3ƃSŝ1.$$FyFd  L9L0 ѡ% wQۓF~Xl$R:t(.]"..7xZjŚ5k0 p1FŔ)S A:=$IhZ֯_lj"113g+ӰaC̙_iUVٳ'OҨQ#dO@@_~!..k׮q .?mF:qv܊IFbB摋;ږl0Nf4}x[6IERwގ/WWW~w͛Ww`߿?_ ~֭BܥX|y.]… ܹsR և~HzJMI 3k &<'8ٵʓ;YdM*qPٚ<"Xj;X )0MZQim ! Q$n/'182J]ŗ>aLyU"##j:tQM^كڽbJ3+WAlْUV9aiMUJ B 2x7iH,-:\ȱDtƴ"wٖzʑDU IAܢ)qˑ}y@  9D_.ǿg 0gϲc{7Ź!!!!%SԪU뮤M2uT>c_^su߿Ȉ#h֬]?eN+z~o)L||<+V@$ƌC`` /RDgxr&u(k`6r,HS+x7i0E 55{FbB5KZq q!5F4/$$xpr$Stb9G'k0駟XlY#Gt9/XvE$ :tŋDFF"y+hN:wP)!}+*|4lEedr ~QL(&jR`I"[dꞍw:~8ʛ>9cRÆ رcz"77ڵk3ydbccD5Q(\|;wod̛7wy`4qFsss[ ȑ#qss#>>>߾2J'dN=~&o&ǎܹs;{ҳgO jw'm4bF-L\\1ר5\%/bB U?)x!Â5&xaѥv0_Hś*ѠH UH,bKh+e\:QunP zH$ɢq%|GRѯ_?ƍGvv6/2k׎ӧөS'nJ``CCƍiݺ5nbРAj5bݺudddPNϟ_x~f̘$ItܹX)\2~~f Xrr4Hng%Cr o4|U)TRޤaQn Fg\2WXd2ÇW^Mƍy2!%M߾}:tޝvڑR"_~ZMpp03f̸kZFRfUbUV߿ _œ2J'O[NBBBXp!XVΝ[H @\WP].-A@q' Wj2 o2q5HƏ[qdJ"6bV#T$sF7x4`Tc&H"%>gMP[&$,QBՕ׳zjQ*Db ٳg/BFر#m۶e˖tڕ[h5+י:u*>,J{2p@8pCd߾}t;'p]f2 A2لJ 5J.Y5IH\5_en̯>7'~~eEΝtt҅3tb)`턇ہү_?:v~::u">>Xegg;ey~饗ucے%K0 }v*R4/_fڴi=XG"[ay=!M9|I27xh08J3ES3 thѠÈ 9V2tԶT`Fxp! a5H@ p' +2dXnr$WCsC\ѣ 5KF}cЬJsA^=·r̰$V^$I(J .]b4lؐ+Vо}:GFaΜ9lْaÆѲeK6nH͹p_|/_&&&6mJNpqqa՜?>3YVT*#GЦMmYYYښjAo&Aw&V ̊"''F ʦ !jI(1Z͛si۶-}n۶-_]5jcj֬I֭Y`m۶t֍g}cǎ`Z|2SN_e֭k6mڄ\.믿G}Dݙ1c}+Ѩɓs͛YnGAп^}UuV>X,BH2bʓ-8N6nxI0׹J |I!?Ȑ ɺ\ 50ϊV~N88Cl0D‹ ~䒅Ў n$r͵^vQI6n$RF(?yOtvXСCL8:0zRSaЯ_??΀hѢUV%::@7oNΝ$<!xF 24#b5$̒^\&&)_.R}.RK_E Y٨$I4hРE~HDHHo6ͣ}$$$ЬY3233z*ua͚5Ӈ3gШB^xl2/7,\I޽;ݻw/ޅ$gÆ c֭ҼysVX-#gSd:V$N!I)ј\A€ =Z¯.EwFz>Y9FYP/KŜ8N^AQd2¡?JwhH\zuVNMٱc\I&xiVZ}:rrZ6xv`e" 9Z:5*= PdqӡLtwI*&5LJL7U[kUԗիWgӦM9>ɓ'3fzܹs`ڵ,Zڵm=oٲe W_xϊ\҉] W_~%k\. ̔#\"8*`@MnF6Dw~%/ZncEvM8z"<[P`DEbFu6]9}Z +Wr1XV6\Ȱ6꒸e%BNN'O(7kQ!%%???Dg`-۷/}1*ꁆY;w+^9r$qd̝;dxZɬȕAi+$r\K.eڵkkƍYn#Υ“'qv%[nuVz)x%K⥗^Wk^qyF47mdT" ^dPIA MQs1};bZY|9$tyϓ$T^{5&LgϞH/RjԨA\Ž;xר]65bСܼyspkgEWfgժUoҥ(JM@LLC~:uC2p@/_XI$K#ꞃknlIJ9Hi()的VCS&Jٸ!Â7iX ;>TT](l޼@.}=ƌ?@JJ-{T~7äI'.qEvJڵYti>˺Kg V$8dQ1ǂ>GdKZl3ŇWz-㉏3{A۶mYh̞=;+o[o]Sj8pf͚Y|9iiiȕ-:t(.\3qn*߷a8q"Ǐ; eKYy{9/^'44~5j;&B93*QƉNEޡā=!B AD:>Ŋ T41$XB l>zfYL&8v-]b0o<-Ziܸ1zbݤ?ՓB|M^}U  I$>}ˇ~۝o% rsseq7x 矗ǦK/Dhh5EfŊ{@q \.\իTΝ_o֭DDDp8XnCDz,(p!PD%.a%T*B`$=fx<BA|K&LVZklێ;aƌ;M J"1ܻwo]z5e˖1j(> hb7n DNNA΋/HŊ裏;v,YDYh 4nݺL>y"7:EڿĈ#8x {eȐ!8pX׺?"`% IDATS&aCCXl[rpR s0F88#HW, %VJ0eʔ")ǂ3J@ 谢1L:dbÂ*eΥJŴiزe ;v_ZͿ_~VJDDSNy|ᇌ7?X.GEyԩW_[n|rVuxxxn &PNx ԩS2dgϞq'Nd <۷K.qF4hiӨZ*ZbYέSd n۶}F!00N:Ov3sLڵkGHH*U0bĈ|ub[_}e(4i҄?PY{B`0]/`Cm b$'ɀӥ*t:}HsN0!syv4ߓ.;|CܹrڵkӦMkSV˗/ϧr8{xо}{-[ƚ5kW^MÇsOթ]65jߧz|7ܗ :3zhf̘Q`KY 0mFfHMMEӑƍi׮酊 !7n=f*U\&)=OjzBec̊'*$o]J\FM's7c X%0.O@E[wiG4oޜ}ۏGF#<z叁'::TʻˠAtC.ޠA$Il6n:9E\x-[8{3fpQ;'|B MHHc˖-4jZ?˹r ˗/' #FPR%:w,'?S|n5!`…\|W^yO?Bv䅂lfڴiT^>;v0n8VXA֭Z\gϞ/. #**.a(} W楎PqV2ӄrP],I4{E[.0(*DEqZD?EUqD4;EcKTDqL4E^<.VOJzjK @tE߰{'.|Gll5kv_:N[NlݺU޽;sss˗5Bϝ?^K"!!X׿p76mG @^޷qF[\J%~b)~u^+o.Zăb)GzZl}bHϋ) &fu1=LLթJ\"5k& ذaz?Bߗ$>#)["O{n|~;tP7m$,X VZ%t:xB&{ÿ͕+WEf Ə/Ng_|EUV]%AI~kHxG}# krr5׶Zr}r o$I>$Ibq{C6r)1hX: 7NI ,hlpx5 ;QBIx:1IIk7 |WERK͛7ł`Gx$IbСs"""6lK,RJ<t֍ 0x`.lԩǎѣ<#mC4p2aqq9sWXh=+W{ 0 8ǡCK/1{lƍG@@ƍ<:W%Dw ~'/( VVZ֝B(0|"/xyRrok U,R1$ׄVgGrr)GL;\(P@ tH!w璞^Sn]f3zn3QB~FEJki,\듔D޽`Ȉ#l&OhqN7"##;vЯ_BŐ<72LbE .8a%}-H+"Oƍٷo5*VG%McA2 *(q")A OU.>drm>Hj$P)hp !p@ 5v $܀ĐVlZ+qlBZ*?cA#[&,,/RbXgy{Ҵ>8͕+P#G@JJ5$5Ɓ%x3k0SE>(q1Eg撣/7J\B!z>m+ϡ4{nyKsذaѯ_?9KNӺukvEPPm*VHrr29۩UUT!99YNJKK#33cǎѠAK1^y}?o"gV寕 ۳,\ :ydMFBBC-Mzz:ڵʕ+ٳHzbݺu$%%]Wfĉ<3d{9YfѸqc~G^u̙S,oA +Zr dGFkJ˛e4zrQdaM w:vիٳgnIb4T~wԪU~mZFQq݅~@|^2ON&(p ܄sJsD]^A$u?hт$jԨABB]t 3BA9r$_}.]"((@9SѣGy7ؿ?8p!N믿_zKzyZ}ueڵG78+_>zkCΝ(Yi -xd|G9}nxxM 5222xǸt۶m+r՚gy!߃ɗxb>ƍiٲ%ǏgС|gEjʌqvP5N48U`:ldh$;j[$K,QcG-=эhժFbԩNrr2+5j(顔(J{7ӕ]DDDPn]"K䥺V 4.< PKD/9zyE.`g!ɄC.\c+ܧiEN3\~E$9qΝ㫯bǎ,^Ν;tܙN:>&##:pYm&?7n'Ns}4|ǎ9rH(SSy 8QaCK&/X !n!-*\5'r0eW^y/^,geޯnyT*G.8w~ޑ\3gQ7 <״oݺ5rJ^a$F0.F,:W!@ !!c2#ߞx=Dd* 58nZR𶔩W̧1t:tgϞܹs8q5k0`SwΝ{u7mĿk[ɔ f{ɓO>|^A1aNʲe/i޼9ݺu=n˛VSv1uT4i'O.Ma_m۶"e˖h )+i]l1Q :qKz1$&&ykJ˗ +W<5;kr^[7 I7oElR>QƑ#GkӲeKz-z5kgȐ!iӆg},>Brnݺڵ+kǏ',,8î]WM}Vy)uYHÉ=(Pވ2Ot h4 S(%']+54mڔ-ZO\\\i%rssӧc%=RhM6:t٪U+~'6o\` #2eJ^U^ E vX`) .BHŀ'J22IųE80b"ShVprF d}<~a|u"ZjL0-[ʞ;V`/x2M&|ofs$$$h4xmϭE0::Ȳ]tFZfX`A+SCgq zќAv4Xq R $o<Ǐl4ظLER!0¸- aB$A:zf]$IV?}4$66|||.PL&j5 7LniҤ ׿#p JHjժuvzVʘqZ@=f q]G:A:.TБ/&ID^rGӦM4io{-N7 \_;˅ X7|~W> $-ȣݭ˗ߝfYL}Jc'*|&8p@BIJڎl<:I#!Ŋ ZE&dX浮fĉt:,XPC-ŕ̝;{dSʘ7o;wdÆ *Stdr(k !Hwh0xI]HvA bl+yl.BIńt#$ j1h!7VN9ucرdeeaCxb&OLHHM4Vք  T_}ԩSݻwߒZ9bx(S1g>#cUW"C'oQD34Qx4+qsDNJ,W鹡C.aQkS*jXߏnGєnxg}GR/ڵ+m۶mv <$Il a莝<@2a lπl8W#:y ZR7ۣMhᅿ˹=v6m/?'ٳ;aXHLRgҤIJ%5kdٲelڴ-[ܳqJyۚEiW29O@'3+PRy35ajZ,qxLI%<:d3ZKyf̝;?zJWֽS:^*gΜa߾}7U\*Vپ}5Yzt6<)tfh$Z`GcoY'T,Q$F\ UItps'\q_ ϳzjڮeN\.֭[w]QҪUrIϟ?+(ּy'!KAdƁ -F=:ųōfhH' AАI& V3'Jvz-[n:~VɓYYYmahZVZrݻe˖+ $/[?Gf}k1hp+c99v4N%K+~l j3O #`֬Yldr ӧOo߾>}O>Dtb;Pv9JrʅJ) #[ L&GE7H:6hN skL&S)퐱iԨ-/$11( IDATyꩧ8qDmr+*qy8@Æ ψSNDGGl26l^떩lz_uCNN‰ T"O6 bD,O (*+Wl6 d>#ڷo_C)L8`F}nܸ1Nb׮]ֱqb3C<cK&f-p&XR:ÅnhI!?e*TBq F+v|z~b|L8HvG}DXX6l&nc0عs'k֬!11 2{ӽy y"Wݴ2iglٲ6 gLYӟCK1")\r+ Pm2%僄: t*i ,!\|0cKp={UVtЁs2x`N>Mrr27n,5"IѣGcƌ p?ǜۗExnѢE۷X-Yۖy}Jy De2 @0%X8jlhiQS(={_3k֬Vݻ7mڴaĈwk石o߾']:?2efgoU $,24p0v}Դ$o-޽<~ha/pQsv3L&fΜIڵ駟X|9{cbbҙV=z4iiil޼ԇd7گJ>7n_yϟիIHHu޽[Y=m)G#rH]Fh#:lٻM@ CfF N JܸqbG+{&+ivIpp011C]tv9s šjԩSI#I| 6>`̘1w3k,Xxqm' 4I?|9.䀷9|jVIZ 4$S.|jzbr5a4!R F\9EǣWҽ{w,YrIԫWuxgrK(Q{\EhS( ׯO?MQf₣ fJk\Nu #v\1K6\ P(!Ӂ 5-yvnJJ޽{֭/__ fիG.]ؼy]3T*z\ ;~ $wS0 \)^jUmUr]Hy|u "n9>8*uYS}:/mq(ۚM2'9RΟ?믿FSņX3TBH!,?nڎV4ҧcş,j'G8njK \$|F?O}]?)9+՜D#T(kb1|Pxl6[IQmM LHHB ^?Aՙ>}:yH'OKȽMJKK㭷b[<#8&MĨQJ|۽L[ NTQdDƁ@A2E]PF*ot5" 'L1bA*3-% Xw~~~~L4u!((P  BpchYHnJ\Zq\CӪFgb=L9IU$f\J$OEZ9E?r<%=Nrr2+W.a>g0jԪU .ȯ߼y36{L8k8k߾u$I-z6@@&d㋤*ۮ`zD6uƀF?' %!J,@~Kx !6l'('xzeѣGtRʏ?x[BvuKi%[˩DtI FaPњ|Zn![pd MV%ܘ(DDD0m4LUVIѥK>̙C@@@IT΢;3el> p±bŊpȍcmۖ+Lg+UXY3-6ި2A~yd*s ո%vԸ3̘0ąNlb'm /:uDtrWB0emƼyje FyGO ̤,fre mw>7 ,\j%j\N Uǂ$ r}q4dhlUNr-TpE IU=?J¬eְ?( -s+K= 2f̘*r߿?3f`ǎ<%=҃KgW _~"K iiihIKK5&OLfnR(bň(GPO=b[nL=f"0ƚ@"? \͈S748xܪj"O!d2ݵ>SRRϘ:u*ӧO/0G۷/ |=!}a|iӦv.H)pFaP KCR;Ěca`!T.hMŭT ~Ai(}H:'l0ErYqt;oԖn+N(O2>iӦ1}tZcٰZt|iڴi{;)Y()c'g"CS?)cEٞѨHT4u9B}rAN:^i Meo,{郴`Nea,r*U7d 0ƍ:fԨQ 0ຆKF)p8(**X%+ eڱuddtN%nтZg''3$\ *'Vs㰫jQ(\?BOF>e=ɓ'9}4>]!`˖- ͛ӫW/z;_t)c̙w{'g+SϤI<Ā-V}OAٳ2e qqqtܙ9=j~KHH*TG6Ё@0,Lla%u)Kojw:u* y$I>hzzzw|_&H;|t:C;Qa2n{uBkk~0 LIMt <фx#0pH3B)l EġH(4jC$c9N[ugEC"_?17x#^{- ?qv>X~?3g6h}Y:ꨱ81GyE@Y*È.J*4(!p= W0L3ls,c)!r-G$yFribWAU|z:kva̘1{wms=<>Q&`l68$/ m8:drB񁐐]sG^棆}fZ4fHy La#}0D__AY=r8Rw|7nT*q|r,Je4|g5ku]{exW|N?׬7ھY؉}.9XjE d3lcŒRC8"|E"f#k%iPT'ML[R6: 6܃TD1YJ?Oh 4b6ywI 3bn(B4:vIMc IDATLc=mg>6ǒ3vi;۶m _^g5wN[ƞ=PJ`#("I*obQ [&1Pi&$5PJRP}4oTLl'D!0d@S1U!P`.-{+5YgghJ{},XG€: lnPQ 1hfb @^=]Ga[:QsCm=V_%O"J+ l۶m2o EQ836mBaT xM+O~d65jnͷZ(k:x040x* V140H+4`[!**oХGJ)Vڟhll4M-Z/_NGG|^z˗#CqERWh3 IP@duyE#@ 5R*bĐAN÷/ 7fcj2@A"c,g {iYt)gtvv|c=+r^7MJ@ … v3gt뮻!\|Ĝ qJ{No#hˀ"oEU裝LK?QӢܗ"CQ 39T8j5B!͛?Η]wDH#W_Mgg>Q:;;Yb]wvGy$r =g( {wH ζC [x(|DƠ9jccyJ`n6@.j'ܔQe맆PajW<o*"ܹwy' 2 tttI }lS8TהA=ȿ&JHQwloN )ΆNWݞ ]v bֱ~cKcc#''>k2qD0l]j15Vܚ?B gBQCaplw JQɠyaP R2-Z^4ATH99SOú^홒2?<?0vN>{|'3`?auMB^_:LLHUU\dq)zFPQ H8=)0A(̘1˲w93SOeҤI{lG%\–-[8[yhmm هZX L ΪaڼZaL4fxkĈNĶ 2)#86PU|_E*泭2-Cr!(M o)󻶽džxk3f0o޼7]O/c`Y6n(`v::Srb E[YzěiV*tW1Je}  " 8(Xthm0}x׻O?W}9˸uuYb?-a[m*!s}Mh Ҳ41+b>%;ȖJaWB$2YG}qy]"gL ζCS}ڴ&t? kT.QTD|x IXdHs$BylT /KoVo4~bqjѱktwwАgyDb YτqBُ`B8WLQnI2 bXC4jx,n$vDH'll!3BK{My9d쉢(\~c6}A.o:TS~ѿYql;4wC*8[`!ȯj&ksB/ӇNXTފ3)[QLæSѓ^PǴ| fL>_|;3 6p1Ǽg0o<x=g/`5/rK,j`&6Ly q^?!S"ݟ [II Y Fxe2,a,2k,|I.\}444ɾ׭[gQEG{f2}_As6v0e7VN `%!o#H0q A:@q6rmI /4˙x(]K7>sr708o-[} /_z9{d.!L{/QE'X Ȓb rLoT&D' Y5CHZmOqV,|Tb" y (VFLb1~>׿r'2c .:;;6m---|gѢEO nR&ECR4D>RҚ0iʠ݈iڴhȱIH"K~\?L.*Ӱ _N;O~~ӟrJ@6*=.]ʙgIss3 ؗL`VL6J M1@øH isֱɼh Lm"1iUDKD2YU.3$4`sO =/޿n]&gG0]d觙x d@ AnQ)m*!6 ƩJp+vPQ$9Z飍4~4C)tDiLh:0~.^{Tot:ͺuL b#`=YC_A" }03x0<ou]_W7>^}U3OxEO~rצO_%gC#CL'84').%764 LAY`9@rH5KflDs[{!TC7\ldF>f=ѱǞ xR& {|uYcz|L&H KZHks)j3k<@H[Et{DdI'h$3B%9(<)Ш72#2LF:03BͨT}RǏyXV&P$ÜRK+~p x{7ɼl2|Q{~=ު"ۼ'tNv):TtD>aB>AdK2&!Œ͒1=0Aq0C*Qb+Ǎ/bf y/Ÿ;زe +V`{0"b# OV!]^w*R@ψV<%R=3V(2ά6pm@S}:CJ@1abFRsO<˖-CCWp8\~?1gu7|3-zbVLDG7}O&C\ Z"/&ugЅ|ZIS|B b`:!b<]VpYvz3{~(as qvp/8uOVBR<)ƕEB ((ru?DAZk }u),S) 0|4 i8x"]w;v|ɾ]̝;N:ٳg+VhØ_:,wseqibLF1@QZFه?"byAKțr("29hT"aQafƫ]Lf#q tԴZ %c7̐w psUW7'|2OO\ ؋xGC^W% %uzBLŮF9ar:g W͍YFҊy-0| -m_~9Ay$F`+CN5 mz.Ow 'gI,N0GqǏϪ>1YnnǞ gik)lE<Y)†.`xx^r c! "1^F*fΛ$L`2 Il~,Ok_r|#I$yDQ4<:Ԁ1ō]iEE 2)R %h͔+}.-iQ @Z )*$hzfy o<_ƃƨ'-b::?>sG@mnn^z~oj*N>5_]s"ݕ "@Zj`*r01@ui*4hJH5 B>EiS>|#z6H(q=Eˣ5g}3l6˃>i60؎kKrSz=\Km^;(,*`k/ 4 P)qH#8dZYK6|q&zJ\pu;hnnfƌ{@v@)ySw4姐g2Q]Bξ7|jtp|F2MCĺڦS#(nk)ï2~WSNu]FFFbhhA0 P(9Cdk#Q}aq.221e|Okdhmgڐ0=$׵ɓ)RQ'3DʔY&jAab#%-N%oh|?bH>/W^y D[P3fP.y9#Fu饗*'ptuugy_WD@F,AW+H#&+T_YJ@A;8bBxFeBX6`VښF8B_ JBCJS_ `+0dɋq"-46޸a5Cx]!^N0` OZz50m* ؆JUtW^QXCVàJQ6Pt5fQlqxb6mXwwCQ6lIp]Glذ49ꨣXd gcC9oyR㡇{@MϕϬu1ViRMykU`)FTfSw۔2yM!,`hZ 肾,'x\gV"[9)cw#9N 3!:iUxgJ WF E/x.(]Dꬄv:^ז9 R!ސñ o3Q6!2A͐PC|hE-D O'p ن >[hѢ}\ƛ7ADYs`R{ݯ.C lQvlT0`F%֜PT20lVgB=RۃUQ^ '% U/ ³r8Ai}J JMt\H\ċ!䡄cD>H T) DZ=-M4ب!^A%a[8" 8I?>J9 2Hk߬ 01g8{3,RKnY`xFstFt1L)Sp+aia4l4vͅ2-d X͗Og(ϖx>ya" /!xs3d'J1\!Iى.1h#kZ^c@@W&FK$Ko뺼;Tw ,/븞F%uBJa#V&OZ ?؊(AqmBRv@n2!хǶR;ف&ܢv*HUvnF ބo0/@`F*],Bǜi-ULAZ_M%ZvUFsv TG 0Lhhr8@YgZ>$T^((4 OG7ol +{$&q#_D^3>8aYƪ@Ey݄۪S#tUԳU a ljf Яu {Du{M6a5\?E v@R7BFZ80x*Dz"H5wgH YwNPE5сU:Xpgi<޶:!ܘԟ_EoB>e?ʩM{WZ5C3^q7VWQ 8`#iAMP|%ջ(ԭ\Ox@ITc3O= &jsᣇfZ(ά-'*W7>a#R7ZrIT΄"cl fi'ܐG7\|BѪPp\]EopВ6PP< "uj?ZlBGL wͽL~ %,i2"*(!\ Uj(WU#QT4ۮY G^)he3 [jB@Anjտ@itd9#28{  Rb> XYbjr(B$AZjl gp"l8MeoTdfF@F7I k66jQu]n# 4%<.7SpP ?ؙ@%v芷P6g' eIY^vJkS2֥5+ mȡD ۚ6 !BEEUҔz0`01fxxq](*BEtTl/*]@ vWȄZ"}da>Liӏh\ze˖y睇-cǒey.rUBЦik܆k97|_ZĠVﭩ o eHVF>O@awMa'!]Mf5A+>(>iT6?%Ο]8%g;EDy?Cp!|W֩42XYh2~.9`sRYt<\O] p0b0PU!Kt+0ƈX.Zء}+13C >*&6:.~H<3[W;0c#d%77|x4B.]{|I^~?381(:8])eۗXrѸ/o0BW4yMz9) K=? 4Bda3-lKF\ⷪx™v]G5vj7ZRkք (BZ}d&U:uf?͙$M@n9J vXްYz'ڔ5CjZTJaZ B;N@t&TJ¯]v%gJ(bI4b3:3NۆC$%xBc;|OCP_0hIV5'Y⥢Ԗ}֒VTxgx'={6ӧOg_9Ø0a^>!2FECr@+R E6#t?1K|`^?צ!' M,>adnh`Jv޹7Z5؊ V%)Hkd(}[n'HwBpUWL& O f@fi^j~GUȶ0BJXCq^BRYy-֦fa(UB-5w )E"@EŪ+gz"BC1kut846X>T|K`07Sɲ{\|e`@,YYguYY{,f0OOEn,`hDjyokAi2PRD)yz @zۦ˿6 ѷNH:&ܐRWLhRhYı  ׋ض\t&Xj+WdhFgg'seܹuQL:;;Æ 8iii/(===lذaEUU.r?r9q4McժUxwq477s7sW*҂8 N9S+Kd…,\Qs7sՅyL:~L>\.ǡJ{{k_̏~#."~L&Ccc#s3@4l欳΢xh}Y:ꨱ8}lqe = 2PM#) "cnn #[ڐuwL L~. C 8 =\ NB΅Ȕ,[62dPpmM~ xIӗo) eYƃrNrYDr1qye^=\ /cC\?_Yt)~;~L#m?_k<>뭉yiE)B A|EY}T[juj3j,jZ2M2 4tlC[x x;!y<)1*ԄCmJo 5- MED-Џ vs7F2~FEa֬Y뺼KKO3w\B3sLZZZ[0oEQ8S9) 088ȃ>H>GQR###̝;R LOP sI's=}iZ[[ikkmڣiXիW/}i,{svf؞r4::W(bj TcW[Z bu$0C* (O~  S^XltjFZiyYɓGҞfK^よbO*|zVnD_Dwz=ի~N2!')bmm+BTR`YJetyr!mmmwl+PUYVȎsdc~m ݜ9PőlPVz}L}jM3"m`LVl*C h-]CۀL'ƭޛqS[ݳjF3}AmYelcYnXo0G@a $pY`8, ccɋly2Ҍ٧Z-iuTթ}Qm:H:ӟ4_~9ԧ~eo~7rAʕ+q(5zA&ܱv\vwaد{ iӄ`WYQ؏X;LP3QeTOAd% ;خET6OȰP/NL(p ]qI001U I HHoB ?'q6;x3k41_p]|%/\s[4?f*ּcxޱ&'Sc吋k!14w0JD{dR)mƶm~!drr38uֱrJ6mě&7pC"nRַM6qF6m:w8vq]vq1կ~q, 41M˲p]O}S,]E ,z^7>}fC G3萳n JEU,h1ݸ9 0 hתr!"M:0-Z"MA*P(RRxC&TNÍ_ TLD&Q! e)F",e_02Ȅ҉ŨvW#/N͑hdp(fVa r1 km /.~LLLm6.G ?!fYe.\{ۏ2"G oοwCzm!"'K>U' eU&8krYBe`pڦc>XB YRJ%0fG1֭~$|R$wQgA } OP[*wF}_r 8 ]a `d:32 !%s7yz!o檫b׮]vmoc:th:z*~فM6NU۱c_Wٹs'wy'5ǜp ٟo|fs[ԅGtšG",Ophz9}yE\ZITO+,鷽+p/_axJXOP7 K&,r{egC KXg?2u#BB1o9QC()r)҅ADA78xIa(b2G>6Y*0G=<&k= 5&)$#Cnq#8xʷ{m##P$tpz`j.!N[/.αO!9dZH ؿ D!:U6:W5 ;RY1S7 xm_]C<3Ncp߷ 'r;fswcrnV2o __|)ld9`aAyx?x"/cƍ7g>/_ι<0vڢ|= }n?`Gx{1.[7<ܱoO?nN;  N_ݵsjܰhj9;՝#oO!OrYgq&~&lX`5{طPb>2<=lvS!C= 8)02U}Xi BL2pIc㒠HX)˹KQ}vJJo5ߛJ:q _җزe ~?D IDAT/b>OWW|^׽u\qկnG?ʇ>!󲗽[oK.q>q(g!"| ?&$76`?uVo`8|ɹ& :DV` Ái =5.:dk`!;Yx׵iP! Z6.'0vv|!&0x]ܥ\P!|x WZXܟ|;H8cv=ϔJsj$Apdĕu W_"J܈!Aǁ B /95urZ!G$~KOHd ETi71Rf#b%M,` sb;'b AddlcbUȱ 1Qۍ&<CFL"MKϒM`G2YT"1(@A p3E2Tݤ"Xx8XTR#AIHD`@lG9fxG.c~~ߞqG8Y{>-zoxxM6q54~:? . _Bs?q.vmtǀ?ټ>ppx=+ gmL@cn_/pN{d Zvm!̬BV3`81Y0#nΠSR2K.ѹiUc$Y cS%K!ڱ7!!;?L8tDvf.5rmo=`RLb07N5`ϗoϟ'Yx7L]`e+ޓyhlŲ Zg8y;z?edc@|n ?1m_ǽuZUqu@PaUUu:"u5^/_Q @J| e/]g%Ws.ao%?s#z'vwga֥6R%ɱ\B?،8XOI3 SR%eכjK 6Qf)M^S aU8@Ra~.6tQ'KyByTe|YuN~RA$3Q'Q#C?Ӥpan Oxp aBa^C(59H!|I\!&=]!f<(| _`y;v`˖z!Z$˲˶mĢ\÷m\|?쐳g\e8'0سw}[{:mK?8WDC`t # BB1I y+rpfܴ yP?JHE τ/gj'bap\ck>1oɡ VU,P`)Y<BdfBy#q3G/WjRίSqy6}yߛhυn'# b-q(]'n? y38n]WR$ `viYzB~Wldö<'04QD)O&-gz U)C%HoyjF(aq v")MXS# hSV袋v q-V{y\x"!gk>>7oEғ+.[y,94-)')6(G"8>99M4vH2dI5Ҙ0Lšov|_VP>'fMg$EK.akxWy!w p #?e1 O9zT` C`e4d[8Wf~z3tt"IX)AH˥SqkIoјΟ[$FN%n`X)lBFH"a`b| a="$2$$ $ɹDIDDDP E_6*Se+T مPq]EC\*aȻn>5==yK.}gDS z׻1s?3h%HJ=@aC>.IXѨjg%OA<Ő3XGcǓ rL28˘bJ޶jw' Pkh3T)NZ0uZь_u79e+Ge n]^|;'w޿ViY(mͣ mPI$|ؙf3ahRXVAܜ]"e,SԠFZ`?oYMs97w]^W>?x֓nK.SO=0} UTB@WWBB07x5H`R!K:yY&U$B _'%]i`RPR:b{KS`%J'4? LT;@d., G͏! ,[8R"CbFiH,_;C`X8j.6!Ncf 1BIhAhԭ$B0%ډiiB:!0U+MA[ud(g~4@bJ7$iħNr?=^OnO[,=[8qkFY}|pI50$4 RlNzPd"6mm/w^,8gCs!U "24gR5iut 2q˨dF^p$$ 3D8R #RQV&Zo7%P?~q{AV:x O~{ ,~{arr/_paIz{{-Ԏ.177'{3}\l6K.[f}\Z ۶, jt:dՃ'ß%I$ <!RfIO QmԬ4>6@l0ˌ{))](h4 e [Uac!ӂDAMzd*B6HbEL\+I( +0+*{vٳƒ/S`1IVne5Ȗ>R&kj(=>F_X;saj]inS0] 4$a^$˸rCWǡr]I:OK-N{q^<Q&K]l3D,Hl|Lz%G)3L$2C>(,ALxSmG"ȵ!],E9j{ʿ XO@+|ɑ#1Qv[u #ګ:YO-G?3;΢ x۷N=RԢ'gAo#ggƏvw&"N:餇w'JB6eu]O6\\ %rO/Ucn9H?)1$Pq G*89[ \0$%L lUxqBwE"Y>er*$d*tM$$jÇV܈3BnáBaaf;N6lx c2 i 04^x!k֬aɒ%G__ߣW|1[*r~62bmz**O?Rl璢aU/*RHVL/ԯhI(Tmgߏ5ue&GڸS1O:),Xv,e408q:J7TzjK}6jq30pvnrG~s@SATԌƢܪQ'IR޽T=@ )|/Es%d@:vl\f,fM%^I T&&j&S"K 2^Z\ )XhcH`7O"k2bvz=  #(EҦVI&R k&xh..82(-X-DUh"NrKaͰmYgHV\,[-'ZӪ.d֍UQvi|'ˑd~Ϥyӛw4~X{kaj*(QS!cx'> ?}a6mOOy;oZti``8b~TshI@ HQ#CrK7<#'ISGdbgS4T?IcK2WjL/e_i1==N %HJH 1 &oJES,$Z. l|d\ZzXeQ/ ^( L8D)$JA,]MsȺtB2FiFY&""Gy$X4jM?Kr4&R[HQHjn6[ &.%Tm U!HHv,dT" =1 mxMEgWS pyc:_}YhM+`,|E\m崍E&dȆ&phgjhX]ͧ6ݟd͊N3x _ 74A}=p !9gV\'_3[ƴB Z\\E@E(L6>ij$p0N6~3(WeI\2qr~E,X82TygF3&ɳbZfaTE?C29TA&KPn:L9)áN"]x$oꗋ"E*鰫0 M45 !k$5 x*\ll? HzdDݨ ^Dz7(KNZ2l*6R@d I*TFËJ"Ao&XG*SP2"h~FqU^!.~HZ-KH@ 2ʼnp@%[hYWjjb PDD@ڴi(])hZk4M+e9lvܵѮu,"}Y:Sc\B=N|5RH,'n81DHUkD.bQ)cVchѾdLtR'̫P"T(D\igƷw;V^T\=ԦTd3$j, J K$fU-UP%jʂ &yKʟVJb< O$ nܩTDA2[#S` $1i|)X*&s&^NPq,PDC Fu(YdJ]ȪAWDd3CVOS >T|x?N2FER(;d_m2*9oo:LH.cfCI`AiE } !t5u?)BJՠ^0vEO+cztXF+YU: Fh*EB2h%giE(4Ҭٶm_":/=yq:ɀёIDAT!ไ9{B + 8 *@HL;Nx؎O6YiHK&%(P%s<,U- 5W[^n1Ai "mBEϴJֲDq$K]u0TREa@=_ E ЏC< X҃$ |l&Ķ||lV ?,dZI^ emj:4Y3b@nŖZL&!iƖqb9pQy|ҥԭyJTd3)p8!]"C Te!D1o-CxiWȣ KF$ud63y'jda`0'Te&KRgLtޫ8YeZ{uZ Xm?7ЮEms%P.+FٰuCs r8Ǹu$-c!2I:.]")j3C}̐RN/mjhuENWĄ}6nS)SV|4$|=Vo_U1EsL;c/TA\ c#H`)hyd:3%?JF)SO*24P.) ja)v " )Y^s Y#q$êcS #O-G6LCbU&E#&|ʫNfdp`6@XM!A0טI`^ -D T*EC:]pu LK -rUElfaDӦ }3G++IC*yCZ)jz)15*,\ 6g!U.BK u=d4@;KBJAMx^ 0 I2Q'ѕ.bl6_+RQڵhΉIiE9jT ]&PW= m `eȂE< Ph;V<[ KT/|-'QKjFiQ04)瑍20*YEw8l Ypkx(tP?1ŒDTDKP" :XEb1lK҉k׺] zmmwe" Z{x|-2M"m:\0mZĩ4c)He)׶,Vj5<01렃rX!gOY?-|ZesRO8tXEhضEР/-X G;h d3]?̶;`rS^]"X-k$PL3>,fx"`PkM#5H4tDvqk9$0 unIA."^a:d+Q]"jmMm -<0[P$Q́KΪy5ehn)GIƯsVU#hFN].;2P箥 V4X} ;BV<)1 *dfkTc5eBڱ^*_GG:$Eiεj'V(jtgȞy Y;$VÍnIld}G擁"g}3ϛeuӎNcE=B`&8H)i۷-{ ulU]kCZl|hrdbʛvo)cZMScEZEK6&!EHQL Ji\T`1Q^\]Mx VB*_!lXȺE\KS1yPL`Xj78-O$Z:] )A% *&X-b [8HpADF3P:kM4iEhtm[!*XYd1b,9‡"1:1_ձD'IMspM}Tumw}$xpݦQNY0pv :x:P~p8:rCΞ"!H%\q QQK7ZF+d=EܞǍs4reTNTXYD4¢ܴ3Uo}|dBV@| "c튊IUmUTͪ bmaDV @J@.ŜdRqҵ\іtn@_ճQmڪZl/"=@1JCQo]ijG{Iϧ=A{=ۚIHԯ?;4Ipzyֵ|W. :x_1u̡;ia֝yhtq |d{Z-^xF37S"+;Cib5*,"Kb%CtGV'G!@`Ą ^fbRdXaF͐>f} ԘH)|K5!~JIPO"i䱤IPͻ5[+iG1v"h~jwTJ` ,l硉TmVfRD&An!"dd(rxۊ)+O\IaGl/CHBy2MvY3G5ǂ =sB twO48;Dnx;f2.xx>蠃PqG3 GE;tAtAOUkfkuQU:gA@qDgA@ u mIENDB`pyresample-1.8.1/docs/source/_static/images/tb37v_quick.png000066400000000000000000005242711324347254000237130ustar00rootroot00000000000000PNG  IHDRW[YsBIT|d pHYsaa?i IDATxgxچ-ɦRB ޻tH,HǃPDT,8*4Qҋ$Jғ͖ǔlQl澮CϾyYe J1ĕAb+"WE! C\!20000000(B򤔔֯_O5lӧB &q~z Vܱ .dС&qUfM >o2diii+Wڻw/=f͢K.|\ifԩ$$$`dYFjڵkҥ {᭷b˖-;2k,-[Fzhܸ1n~Jlr {{믿&..ӧ3h 4iĉy뭷|ܹ O>;w u[p̜9޽{vka .\ԩStЁhڵkGLL Xui&?>Fjþ}lү_?}9r$/_f8NP '|~cǎ7{Of7΄0&YWt0.$,1F@VwR4.Q 7"cWi,% VqI^&8`?pwe˖%?é[.mڴaΜ9x<66Sî][XDDDpY.^xǖrssq:,^_͛ª!Iv#G0x`222? ,ۗ;e˒ͽK:u3f 6gΝ;ٹsø.ZjEÆ R ;}|)S>  Gll,$y9z5kVҥK 0{;$b<]TI%+u0„y.Ԕ蘴yGyaj%f'ב2nIbF}$ZnMՙ4i=z\tƏ CdY6Jňd"00իӶm[l6{urlf] d9eJPe#nd5%!`RpbAD●Ҷ](_ "$edX`50h ܅8 |\eddpe\.G'""ٳgss̙<֭[Yhݺuar;w.̙3ǧ||ƌCVVׯg޼yf8q"4oxj׮MڵFEV+mڴTXe-[`$I2lN:;?ҦMW׸.$$5s剠PYpbƩbI1¬gD$,$~ ~ P%"26@Mߪiug2`4i?iGy46lȢE$1c vJƍy뭷n<&66cDzc~aʗ/nIdYW_eɒ%ȦM8u* *U252~x\jpm<裼;8Kzذa5k$)) oYwO?D˖-y709; uv.빬s,88*VgbM z}3Qʂ `P8 V2UK\peN_EFF3p@?^+WЯ_?^z%&Nȏ?HXX؍G_Bl޼}ҴiSرC%vX '8<;vf͚aZ Au̙3OM ???MF۶m^:#F <<~Xo(Ap~!;v Ƭ'r.iPVsm<'&N/؎!qĥ<5(Y)56/dP3d\(̤~*`%5S_}4i҄۷3x`Vn3{nV^pn)KN8ԩSIJJʕ+gmn>}x7[}ʛ)Sкukz-~v܉a3eqԩSիsfu \.֞Gu/ʭxVvEd6l"sK.%;FJ y+P%[BWyd\N J %"""?Yf,]knÉ'ewީgΜaԩ̞=dΝ;(lܸۡ,[!ܲ-[_|=zPzun7ueʔ)<#F&&1L̘1z .\Sœe'wyDdLjYP=)eˊrD`qcE 0{KP(w&E@S`Ϡ][@izwekN J žI&^P$IUV}ɛBe FJXr%͛7vH>ҥKE:gd̙5(>ڷoO㩧]vX3g~z};oLrr2[nu[*_BT3W=*>W?,k4Qrg+H; H4WCM"Jʁ"(Mʬ>f{N>}rJ@1,Ȳ̬Y8|0-K)7Fjj|r֭[Gxx8^`j0nl6?< 6bŊq3j(,X|uҡC}]FuMSKncyD*]I%+\zsY=,m4b24hǏ_% KrosL&8pk׮%33O6p|qAn*seRg5cHoQ-*GIP^Pwc4kH@itFW4[QU3[(AQR?6Yy8uCSNu]lذ/`tbټ!2.KEbb"˖-cܹ`:wLΝJϞ=ߟӧpBٺuk9ۗA˖-9zh\Q/. *h􂽁2f\'f]F񸻉]L\ U $X6"ʭE6TGSeԏ rV!~`1,a,Q}Μ9|7۷oφ f߾}lٲqqqs=ZUV}Y޽;;w&&&/b'ep <{nv;+Wd8q2ePlY~X,[.aaadff䋤].43]5djYPV;\[KR2Xj o aNaJR3eS?)Mvj32.pK295srJƍDŽ ?85*k:gРA\.Ovf*9#Gz; ?l6C=Ğ={Y&F{uRjUk._L͚5a |ق\˅ ׵,IVNW˂R,h虎l {|U*JC1uQ` («n7HF2')WÇ3d9-[d 0:=L6دweٳ$%%3x;,k`ʔ)VZ!2ӦM\roİdɒ]b4mgr̍j# YV}ZqJT J~ ZoI5IU,MiJk#%{8>*v2-(e,(K  S(2W'$$/Q׏8ԩҥK+N'֭W^,[ƍ۵n%=,L8O>McU ˅'xAիm۶pNŊعs+fyYw5zMĢ*Hu8No pEBmߠqk]?*{4 LJAPo](Z*BA D$l! TS?QEM\]޽{_SxFXjÆ ɓϢE0`.\`F?? 2֭A>|իWv 2{lPzi۶-| `6mDvv _4Y1ʏÕpf*lUmPWl?W"'Y|0 DQjSOfiժ/vh|;)k-j◛M7[qEBQ]T3ZZ/ 4y4䜻¶'U^-'71_%0SsD*! APjHO9]êҖ̺4oQ# nb\ۗ,6o|CA;w`[F}C爋cٲekQ\:ϭ$I$&&"I͚5o{vXE?ܹsAQôi:t(YYY?~#Fo23Xzi7dL>yb'ҙگ F."a?UuV*M>o5o+NP$"6&e_dSK)_Fdxv ݁(Bn7 0;)vF(iAO?īzVc„ Ӈ>޽{Yv-&L00vX֭[ÇILL4ނ#00~S?2bN>M5H`EnM,z9OVP;gc q˩ԶGR@tf+>Y22=a5 `t[֙% 5FE5eg[5Up]UZ#.~vOrt#:'2 ,86jgu|"k @@xޏ%"eCM\ih"N{!}"\5|0Ɵ|lFąI|$})>l\E.SM+<Ȳ̷~KNNuԡ~L&6l J1caO>/BPP]taƍHY|{~r^Vn5Ge}LiRGAܲ&gDNb:@g:zX -,xv~9EК݃J7mOr A52U2os >IN8(f֯_c=j^zl??"vIJJbذa̝;'x!xڵk{;/a2hݺ5W\!""ʕ+KhhOOʲ̪ˉ|G"~jɍPJ)RElC@&:A]2 j]jRw|v=U}ϠIoaWWx\`"QJ#T_=uߤĕ,CgTz:u!Ǝc=[oł 8r:t(k"˗/^cΝ >ۘrʱdznrT7Gn؏T 3p!Ԅ䱬@hri=5qy"ZG0`sX%>ϒ{{AF Ո@6N?&BK 6W;EV 9RT($IF8pFѩS'$I2saΜ9àd>svMtt4麐$c6P7ʑA-(i;E;Adc0 qH;rÿ䗻 2J1Y(OKÐAwʉZJK(q7)2qաCvء7թ 駟ҪU+^}UN:u3ۙ1c0aի{G``C2(%0 J !!!DFFOPPڵg].'elK凬gdIXY#BeAPׁ?4CzT[٭)ܧM jhպ Ү];֬Y{GӦM~al&>>5|+WҼys;ҥKҥC2(̜93gz; RLǎ1L<' ={@sr{DZr#Ls2}E>}:ժUcȑGݺupfͺwO'O?L IL<^x͛7cXM 2.\ ++cǎ1uTsStt4&L@EFɦM$==`T(:u`ʔ)}݄_ҠAV^M.]ڵ+QQQ|T\_~FѴiS@q\駟Ć ҥ n^x֭[O3o<$I>ܹs[HTTCe˖-?ݫdg O$J>EW:4yʐNaǤ:|Nm䱏cr ]2&Ryel!H?mϞ(K֏*tN[W$"##߿ y5 @VVȲ%m۶ѺukL:u0Lz̙3={;OSvmFE*Uꫯg޼y35ke̙b2Ji kֳÆ ӯe<ӧj7ZUV_ҏKLLEy1|pzg=z4W bփ5rHׯϤIZ׃$))&MйsgbPdff3p@^}U,YBBB-Z 22pIdd#vWr$(g].wN:,Y_g}=zp}㏓Q,o O?TŋylXAe[12萳9HE9:# Åo rАx8OaD*ɒDŽDRt2';1۬XqXP옆&<޻=cU"7n-2%,קVZR1ysϱi&<ٳm,QFTRC믿2|pݹfUlYvfY/O:YemRfM~7ڶmݻ tҠARհZDDDqFكF=$p2 c%j&;@r.dcǁ"n$D@pLſʎ?Ʉl@0ٜ!+X0&UAVU'm8!ѶPPJ&ՔTP9.虩qbL"%jO'MfyL8ĮIll4x`}%&%K?_vZN'\p@}UX|9Fn E&^u@iҤ =ׯĉ,^-[R~}o{[0|pʎ;5j6l$YI(4 LR*llB9 1eD%=s|Jv籚⇝p.!"%QF BSzfHzoU%Ѐ>g aWrDN*1 Z*,hj(iN:qFv $DiL&ڵkGfp:%v]OƎkF͚5K7vpšC0͈fƍL8AtauM)_ >C,1ΝJͦ$$$t:ٵkc|gdffHoMU޽{뮻tWkŞo3n:BÌJ$Q9E +,88B /֫%؉ 0N XUcSOMT9*0QSZErrhT*}ŒjaZ0.V_X5ݮDMԢ={6^ukX,ٓcۋz.իWuV (kN䐗'|B5cС{ァNKVjwͅ (W'Oȑ#HĐ!Cرcü%iٲ%| ;vdÆ <ɼlO.;@HRAN,WP}u*jbFDŒcDyR)O_D$,P4dޡ*jK8 |hşY2"ꦢhhMJ4s%2ׯM6TRL_|Nǎ4h?|_#''!CSOac"f3;͆( :!z{M4'qmhrr2.\@$6lW_}|`)"}gΜO>̛7Ç1NIP^Z+&/KL93D<ZU0mT)l9 SJP ̠OirLH| Zצ Npj i721z5mS<]-1 yEșc0+RADʂ.]m۶߿nݺB+1M`` cƌwdddzx"9XcSDv'/IJVg̘1c2XbX̘1%KPBMJll,!!!L<~aeV~DhVn̸~( !=Z$)Gyd1(GISRs\"e%Vؐ& &d XP3X.W[}լ, oKuA#r&T$Bb'_= b\0i$rrrHMMPUi#&&p5kv[Ǐvڬ^iӦݲ#%={hѢW\K.tċ/hkvԮ]a ݺuѣ_rXp!' nuV<߿>?5_M Hj]gil RH6W3Ƅ'vHIM.^Ir "`Ǯ-H8,p?-k4Ī!d"{b'.cS8)@ͨT¤N3SLg{1Yhjժ~}d4 /@IIIB |h֬g'# ٳgSBWFs 2~x7ߔ4߽ζm1b7&(( *PL/G[l66mڄ(=QGJݩ܊@rhyE IDAT7%c…" 7&*sߩ&X˄֝8Jnꄣ^A帨u]uLbd|UO s/ǂx8j*%I"&& &0dڷo \KO=4jԈ?e˖[1c`ي9[dfϞ,q1Xd իWvx>˜9s3gIAfѹsgΜ9Cy'x|Vl6#IH0eXVM>xoh 0{l>Lʕٽ{#-L&c_Dm7p&'Y PV˼M;<;7JEC*UDQVpT讀 D]gkV"6EeYA@ @(!!u?n *d<<ɝ{ߙ!3{sOB TR@n7A96Abƫɱ7mՐ"7vNѨу`$[3b[׫p-k|͕9Ujj*;w&))IE2zǏ`333y̖-[ꫯ5_(7TʠA1cz6,nݺdddi׮sti/Xvq@\82#zEFdR=+[=oI $A+`gGgm?/!S'Q"h!!bċY:HUPw,< "j5U׭ !Cc6޾b~d҇R(%6X^WDQ{E׳hѢ 6-ZrUeu_[o%77W]$yڷo֭[EtrssYd -BЌxy#]%dΝ;n7=eee.FB$Jp@GtC;$9ONp>E[;[iRL8$. 8'>X♮(ڷ Ì<:tύªt԰d0(cI#">̚G: ƀgk&($+(PμbW+FG8k/څJ'WOf˖-,T4n^V9ƎKQQZ⭷dwi߾}+?^yڷoq8k׮B3… Ypa˸Ci&z)9p@t0 $QR^ʈȏW 2RnNm $fUSi2')2hRI]]łGQ ѐxb xFxDBe ?&N9(:P:ӈknD hz1hdKĀJ- 0Kbo*É#^,:EQ9TJn:駟934i7zk:5jҥK:t(O=3gd޽5߁$I^o\$Inkq$QT-"]e}GLL m۶]v_B~]R^ʝ1_`X>?];{\ʽ\S48@F< "pteAZEiR)c9.8>Zb=,˺7$`_aO%;*tZz,0MnV=>ʁg>^BI04r%I< y\-ػwoe]1j(V^ͣ>(<.FrСCy.7FV/%wyGӧOgժUFC% 1uW'@=1QF/OB!HnJEOsQ 5`M PF,:pPȌ&onJoLҟˇX}G/|.rqC{DEQ$;;O>%Kco>3ڴiS6HkF~4pC(*bΜ9ۗ+ln(ƍǸq"]eVZѪU+f3Z"99L"]Zt,ިxmjlEs!pg̋|]X8CGux$]  H:ygLB)q!Ii0DŽ ^ j9* y\IQ x.PNHm7 X+o~3"6 MEDt/^C=Ç7֮]֭[YfMe\pAf̘Aݺu7n;wm۶ZG /馛hٲ% D;%\ԩ?)++c֬Yq]w/ /ㅧYTM-'^%1'[z:mHC@<!xB ( v RGaDG8Jpcŏ>hfbhP Ǩ- HgpJ$ڿy?xc(j#.{^^V^Zz,f3wqX; Җ.]Jrr2`Сdddj* ͛#\aq!֭GZSDĉy'ҥ atoJD;U=g6"yP2V?=)c`Ϸg7{P8t5J@U"2(DB3 h$ Tֽ G6¹CBXT~D|ۆx Y@9V>&:ݸwbZn|@~T~G}bJW<3<4j1m4t:[l2̜97|wG]w6lwlܸ*<(8p`>|xT^!b_nر#iӦ\otI̼-|¯F8J6fGn1u'e@HIki=局 ARu1|P!:":cmpMOT#.lZ'Ȥ8[úW>L0)ǩthT SΦY(G{D z@~C(j.X~q9rQoF s*|4k֌m۶ӻwoMk3`*22ϧM6<C>HԩSY~=? 6tI$UυS7d=Sbkی[3&n^9֤a RѰ?"5ѸWӆ+,xpaŋӤRF6>!]ɤ̯f|pcljO( @&,5F}l6|8TrfpX9OLQqQUKq^䪠Ν;C.]*F|A&NHZZEytЁO>?O޽+~7!Cн{wmFݺu#]RM6iӦHyh4ر#˖-_S!ISl{廏OOPF[T Lـ 9A] Z'm@/=#~ŒH7ƌW h Yīꩀ5{P+W~LC1 0 b߂^g(Z%\<24'98|=:ƙWL9q^z֭[kŕMr/JKK%++ S)2d;vy1R[$t҅r!:XhQK`Z2e .SXXko(ҦfVHw7?;c%k*=f|LQpPN<+<;,Yuׯ#p-N~! qaE\_S)zX4QS=XrI҇C*vB&Bi"jW6k2yN>iӦUjMʦqec1h v;ի^uU\ѣGsJ;oUB$n7?8.]v뮋tYQ\ f͚ŬY"]Fƶmۘ6mfbHR|93t7a΃'90ά܈Z\B$tJJȂs &@ [1 YA# L"pl^Df4+LP]Ub$*Y:$*ݹy~ɪ򳒷x vKb?WE5UJJ ;v"M$I"''z+Wb6N#FM:ux7+бcG9–-[xG"]R_FQ^uddd[,%@8俹cD2I҈>ʑIUEߧY*i`-Y5"uX:6a9N~E@)x4ԇY%J!d"s(24WRS4VsB柪 C ZIطol1m)SD(* G^$%%E&1 r)AЬģ'ɹewޠ *vvv/WY*aB%PD%FDIDHH~ʈ!B$NiRaB ? i( 02~ JԴ+]*`P{:X@ cWE O'֭[镌2q^p DsUTTĭoAƍzwy'wplٲ*`ɒ%tЁ2~m5k钢$ 6aÆE(*_Ol̙3 td?k0q/#'/ 5t$1PČ+E4mAI,n/KЫdz*7kRU wiWYiT9LQe#~X=Z(_F1UEQՈ2rΝٳmVuwM&MذaC 4h~̙3ϯyw;y Ə#]FD=رc:CyImN?Kp Ք@%*~Ǥ,1bqIzn&V827Ԏ|L"WODЖ]he}QHBHUI/ 8zE;:$9E=)Gv* r85v.rta){VJ!ed+5G11^݄<{S2lT@l0E-o.Ds#ȑ#:]rWW5 &MbΝ+T5ʐ$ χd2a۫QD/ DQ;`Yl-Zo߾Uۜ۞CAS/;_8=Q~*jA w|Z柤&\@ . `N9I-(;$|=|6&j3̛7|2HLL$++_~cSu"FENyg:Q,dggФIWEUh4/ҲeKv؁n*$p6oX#/$4ۍ˽,M-k~-dmZJyH.7VʤX bI y4}c tuPĎ7AT,}#^ Au1bמ?+t\9f )%+I={6]tosj<]wő#G/:uj_cǎnݚSү_J?5 <8DQ-8p h4gU߲8֐rCl{{";mĩ$H1(pJr=C/&CE4 &)'#~F'|G;ch/XZ. .l\Dȣ@9;Ы@#+^+kBPG|@*D£oJ;ۧ_%V"B>c6oW_}U-|-Zٳ5k 2338qE'OҵkW^x&NXi獢ft:L&ׯw}G˖-Yd ?#yyyƒM6mpݔҤI`U{x޽{/ziH$ )3In?3&ԛ⑷1hvUޱ (6u"]YMAX`4x)u؉񻑂 BFߜ IDATَ%oJh'YLcw;zc@,yGĎK5a‰@$`Sr\ٶUq}?4KGѵ]JW1gWm*}/F+SNeӦMܹ ^$I7 ))UVqwWBQTDQ>-[pi?}v֬YCzz:.iӦѳgOFœO>$IӇk2gg}Ν;֭&33S@۵V~Xd %%%<߿<~ !11zj*/_N sIɢBtQ:mz*#mRozrIQ;7v>coPj r!IPdcfjL5AlzNmzA=QSqcEl$ʮzBOuah).`P:`VVFay 2[ٹ7t:r-߿gyZ_p7/Ԋʆ 裏|ulƏϺu6a9s? I3f z+gl6SPPI&7I뮻xXl֡ݷoÇpp3bڵkΝ;iڴ)#GV^&M@׮]iРgΜaڵsu :u*C`…|HDQQQ(~O?49ׯgҤID˜N'ӑlVAa:=.l],W3P mlPT 0QDK)AIm f0pP~;4z?P4VaDTDn¨ xf8qCLLx(q9e1脃{[0TXnl>S*'2d/"&LUO<͛9syt2|ΝiذaUѣѵkWFE^Xv-& ׋bx/_Ξ={*Bxnӹsgz Ÿq.gbhHr6b>}:[tؑ\>3V+w}7C ݻ/(.wq+Wd͚5twO)`R7ߎktZ,>{?Nʃr҉)Bwj_˩$G*"Lx r 9,Ňf և xS͜Ҙ\tHXpwp/hĜqaU͚ה]Dn"zvOhnQbС~踄Q坫}q 7?hwy'zO>ZW9s&ӦMc͚5޽Yf;̙3yfUSQl۶ I۶mIKKcѢEnݚӧOsi̙>sZjUuݻJ >Ç2x<|>O=ɓ'tR 3l 7sv̑',5OF4Xb (Q 06(*b;G^Qè}bŊJ!]7ncǎҽ{>_MYXbof=;wҧOի֭[+40$I3gЭ[7֭[b߾}h"֮] :ji1c3fL@c6i߾=Vf1vX~iӟy~=zp]wLAA3i–eePHjjZFݚS=T)CRɌLPJAj@]"NʈXDŷʇAv|p2b!eѪ%/VܘM%۟1mC1)3)Sj+ÞRyV;QL\4ZhfR/ҪU+MK.1j(k֬aoiӦGEFEv8qEK :G$yH& Á u*#G;v, dddC#5522seܹ.h׮F/0i$vڥu|M,X2/I4hЀs+B8iPTAٰ J25=ڽ p u"1yAu< :KVêq3g$/SVVM7ĸq4j\l6ׯgȑ1~ẍ́_t)Fȑ#Gؿ?$1tPƏM7J/-|͸n8z(/y}"}ş5#|JwG\tZH*PΏivtAO/&嶀]ɕ᠘8YD#~rāj#n$mCЂ n?;Pw BUa~E{H;3*ϖ n8HHH#>>׳a_a+ŋS~}t¨QX|rJvQYFB())!))-ZTiî]x^##߮FBhgB@N9VXqaƫtBƣ^ [a4 BАӤcSA V V E1@Ll6n_3s/WBAdvVm h_zV,~7ƪBnރ]2Bә:uf$9_6~x/^̧~z^Gl޼:0`_p\}GZlZl?|Y iáfVdeeE`Ŋ|Ih֬ӧOpG%wS]փeHPTi T)Bر!V5"GRdAL#RF >LZ̄H9(tGTA:A!G8vdy&SI.kQ[&al(v'W1A#~EO&稝ɤNR?X Ds:tC,YO3bA}CDQQFӇFc V (rIW_ڵk2e ֭Cѽ{s~#]FwFRRRHLLԩSߟ_~%JHDLL V|.w$Ĥ#ħtT/uY+'vz ŽDtFN9`M$qoiL)$9I($ctJC"_±Oz4Guyh$TY4:N=͎f0DG1 8+`V([2'XL}Qqms}q1R^z%rss/վ}ywXx1 R|HKKcΜ9C>|8||뒍ڴicǎl!UU$Il2N'<@7o'N@q;9Xa+'0B15jGTL ,VFɴbI\X)!XJ@Lγzg6j= "Ō bw`(V%^MAjFqƭ9\7n̗_~I-!PNzMFA --hwi&8p= s..ZEE*E֭Ynܳg@@#Q$nFz c!]ć9 Jn?ǹʑݏ'vXSF6\,ra( c$2( I a;Ŕ0" %Q7Vn&qh&%(p9xVj(jRFbVB bZKWŢ2[@l2Geꉍk׮Ͽ{lݺu9s&={"< zΑE8zhZjuIV&|Av;<=4o݆u8L`}BG!AS5I!"V$z5w4àf|a/Yu5 UD5G$T+EMD#W'OuKrqΝ{I*$u?AAUV4oޜ@ pK^nݺl6,K{JEj \uUa1b999lٲK|h޼9~Ϻe/')Jb4<9\ :*(oWL?U~ (Ql`r@&taǥtfxt~ P.QU Q{:r;w}MJ8w-HVEՅ^Mi9 Lvc%+n@R(3 Uum”nPĐv•ezgiEUBFQQUII I$I⭷b闼`0вeK4h޽;ڵH@ii)L0QYn999Qz`ذa|G$rZ4o/L^x'x<͸Ӯ];@y{ˠf ryR1W2<GDD ST(mͩZ+F¨[|jgXIO, OŘDI h'TEs%iV* +ja=Ʃ5}DkG( 6-&(EGcW8^UQ8v#Pl߾1cPNWU$IbҤIt~a~?gРA̘1 9صkݻw?_'11 J?>%f&L@LL & ˫ʄ .{k_R4-6jJv JGF0p졔Ǥu P ڥ2%@@#pf%MH?FQ5ke`CH)"A#t~ӄ.[KVI"z:EM/<\Z=|&Jj ㏉]vꫯf5&* :sFAqxX,XaG}yG3g-Z 999e8DEƃ>3g$))KNnxk#.Ӧh _<bƏ>mק z;M$/I97֔p"SBZ,xB nTџ/)CAt $aō?)J'#'CBv).tˌ' Гַ xo\g 2A!er[BtɪubiОDEw/JDB"W6m"''7Gaw}7ܧpPXX$I8- #Gtb+@$ٳ'gf̙L<9ex\JD… IMM$33 QayyiXXw|TKHPƄf|J&TqW[p+do4xm^Ar@yhByU%;I;N-踄8x9EQ/kY}iD2 H"H@=AA'aNK)D܊B@5T^aT|栄@lFm}N#}c{P? Q7xFqQ,ݻw~?cǎn3|UWg婧W_iӦѼysZF7pעYnӦM"&;;;e p k׎\vڅdҺ /:uyL:_~NA,(,m/rT*lg;t )/eWj0dž 9ۅMXəfeD@QH*$ӺdX)H'`c$ hp53RB,1bƋ*k3o&m'*ى:֏O{>ۧDrlBQPcȕwaԨQ"8qm۶~޵֭c唕Ungĉ 4J?Uرcl۶t6lsΗde 33HQ0|p[rssi׮^K:/3h &NlӃl^Jfac Jʑ*dJb˜, @ 21x5*Bʈ$-yWpقIfg ލQTɓ]eXMo IDATThÈ3}W܅U V3S p FkrSXX_ ۤSh-,3&kcN6VS]UrQG-;Р؇LTzEx1N1x1szx|ǕPO)CR7KC+:r47Xx'@=}%mn&G+ԘYYYiӆ /\~#TY~c֭բ툏gƌ 2*ޅwꫯGZ pHQ+!7x#F'Np |>ǏtiDAAC aƌ8Pp\9P8Ռ\? AZ۳w^~m. ̟?GK 0a-Zd 6yiya"ĮuڵʵCZ[>S f%}" 6tQ@MK{:L8Ŭ/vZm8(!N_cR6qQ(%!$t:F1aS5'c2kUA oF67p}؏rQ#۷o!"=z+`eUӉdO?݀Ľiժ/2cƌHyYvmDKƍ (~D Ǝ;dm6bq\L<={p}G&Dr ͉=a#\n6\ wj˯ ʈwQ[4RHB)\iA"DPUW (`?BQZ$@z2qL$I0y̜wRfZꤠCލr1Zd'ZHC] 8ZҪc!Ыb%C+&x(j)I=zrύ[Rco2Q-:zvzʼn'ͽッ]wT:wrO?Ȃ rssY`ƍh4qw/˗ޯTf͢W^={b(\.~g֬Y+B.]ڤ EƍsAu >~XpYz T]u A)hB0t84$|ʑ%´hDMS<*K 56LLίhRkqD:T$1M͗*DTSvJrkw)"Ià,ptV74w\t&lYE,wL.%Xւzi) -/nfxl8quԹ?'X~%WΝw޴k׮*11w}^z0BEFIJJ߉~gҠA,XP=+H~T3fW^)Ww-ܵpG&M8y$ʕ+e˖1l0 U>{9,T*Dk8d5ơx;!لGPB&N˛X)ӄDQXf|[D?\+xL* N s AM>fY(/' VfGH o,"<-9*w5M!sz*ڀz\ժ -oZ-V׀^7rG= bk^^ݺuwy޽ >UVѼysobbbX`=ǎnݺ>S;w&::AʈzSR``ӦM>cx Uw=֗%DHnè(ƛJKP!& )R<q AbhaRgd@S~\;e疧59 !D':ƈ Eކf # K$ Andy#zsRBU gAy9ͪGvg…TP?璂@[8ﭰn7Ӭ]Ч7x;ꏭzԿΝ;GFXrOC۶mygxG|r2x0n8ƍm-xb̙ꫯ|r+WҨQ#Ν;VEQdL3sl]*PW NR&]hU*NJ2}p =܂3mbGױ9<%xeBc %'3U,֖Tbg%z͹*dV &MxZYjUكJ]+'-p( jrU|K"Hf2+UB-ZĪUp8s=tQ}lС1Ĵ̊ 'ND_h[uW_ѣG8Pd\.fΜVeݺukEvNypǨZ*uSL)rУG+,"R.RXǢLrVs#Ubǁ +ljώAu.R:{(!-@'ZB=TO-e/ S|IyL 'LZًn*Q6k ;\AxmV t&\.i )%4hNZ5 ̸,燎Յ]&bҠq6pAֆvJ(81:+\`pyh4֮]Kll,(uC\qeWPVZ?@FF'N$55՟*RL8K`nسg-[n7V/QF+WLCW?GY~=wN::uiٲ%{k׮(EУrkϡx&@orEmsrM>׉:=֝}g{?ÁKX̵UTRMhDNtXe!adbŠ-:YUǁiCgQNE*M(vYMJdQ>KUn-&ןa=O&Un%¡]rIy֮]Kڵ:ujfܹ]{lٲ:m۶[>/11Mή]QwY?Ν;ٹsF:uxǨV/^mFزeҮpXkq11ZgŠ+(%""/]B};Ԩ۫%w˅콧95d&8vkDJ٪c|9# ,CR :$qS@rP!R)WECKTT͗K%yJ{0Fp8e ^cL>6bńKJ&ur̂4]8f}a\PpT[&䬪& =x+ɓTV o~\?AeRE6mT3河d$K.۷ƍzj?{^ϨQҊQF1j(o ^h޼96lࡇbӦMjKi4nܘ}]5rU,F˟I!5JO!]DyzPJ TZɤjHs^9rEȭV0U!\CK8{ǒ{<@?IV d;,E(VLP@91F$qP*["\սC5 ~?KA {~ḰɪUx"?wvYt){7cӇj0`aaae%JLY.]ptºu눍O>|7ge]c] ~Y \Xw*(&J'<,yK%"irL+VJNBcJkR?eNh,Ir &Y%>':%|r ƎH'J\F'85ؼs\F6L$G>:^*􈎣\_K䡇|[I+}(\>Z?>n֯_dm۶~_Ν;Ւݎ={rA[5k( 0*֬Ys=GVVvp4nܘ~<:ā@DQ$??y 02 ^&ѦTҫ*L! UID<+cK (/EKV dQ{*ÉS0H .F*eL/G%ZM /+W3fjruz׸pB!ʕ+ywyooвeKN>MVCEDQ$::AVVT>clݺwy) ׯuDQ*MOuBxaTF\Z$ \h$ !lBqZNT)4x,ȜQ5z ~haTuZ !s6LyBEh"ҩeJ:Dq02eAFYZr Xh G!rDa\}s̡^zL&j֬_bl1B ؿ?׮]SOxիW4i}/=zZbѢE4mڔ8=Jtt4K,Ν;r_>Ǐ'Xxb9z(m۶,_c0BQ,BU@'kwhNRTr &3JƔ֞$v/PS[z=)dnS# lmIk*9c$HC*T[':9GurADPɝ %;¡$R Sma$00&9C6lܹs:[;OIMM7d,^:t@bbzܘ1cx7ԩ6mo!"">}A֐Qӧ=ÇgɼKE "r [lQ 7_~YfYjgϞe˖-?94rH222 CE>jժ,YÇӡCT]{˴k׎#Go{[eqE^z%A`РAlٲ'x$5kf`f?sR-NBE 0c,\dORUZ\0Izhe Y:HvNIR %\#+L>:z_LXu8) -.4UP'`"TCjx ۼM*Ub̘1\pŋzX蘏>BuܙZj1yd:tNǎ1cz\ǎTMOOgҤI6hЀ͛dmN+W'VFuJ,t:Nc4`d2dHc (&b'WժU/T4iBllJBb P,.^ȑ#G2p9zիJ*\~ڑ2.Tq8y$1vXO=HJJ`0vZΝ;ǚ5kڵk;v ~\R ^;ʕ+[[./%WO` T IDAT9Ay Q :3':YפU+OfsN5U&Qm *;[v}K%r75k9=Io&z #@U{+&lU;RH*:@rd䊞w&.2f 8o|!hfϞ=4lPﭷcҥ呖?O2339rzܡC{ YB"##9|_xEb%W׮]cȑmY?=z?ÇӴiSzի֭k֬`߾}%?)%%ůJݺuԮ]͛7ӽ{7l0q\e+EVZEvv67nT1T|;t̊+HHHE<ݻ|lBLL ={dذa1͛vׯ@;tPz)L¤ItMˆ#Z*r̰aî{LV5QDFOF+ "H#\@Hb5 'ZM>o;PObD =Y=\)z+%UjtYDbAsvfz=<Xjbњ1 OU扐([˘O>A5:G_8K0f̘BM6CBTTcժUiF=.==x0oI1Usu6mڤHMt <_0qD{1j׮]Hhxs7Ŀ//_Ι3g ,6q=`:vx?I&ѯ_?ŠawCff&=͚5cذaѫW/n݊br4hv$ڷoς |2:t`͚5rDQ[n/OꧻbccSׯgݺudffl{TZ>t:nݚtMG}hbŊ%u_R 7BӦMcܸq[cYx1={䫯GOQlpp}qVI{yٳg1_-DQd <&VW^QF$$$y/#33%K*4f3[ncǎ|G8qN:ӨQ#bbb|2*T@v޽{ټy3˗/ٳDEEѻwoK6mj7RިQ#5js=Hհݻwcvϲeˈd֭lْ۷̆ HJJbСhӦ ۶mCꫯ2l0}mLLL իWv E3UZ1{lwÆ՚Ӟ @SKX&R> &lʑ#6a]!JJ!E %Vb Lj F;֞!ˀj*\fJjS{*gl)"BBBرZE'OfC*1/;wd8p ^v|9RՂժUuQ^"^2g?t88{r 5c&hqk4iҮV;:D '45 0KP&(Z,zA%ϭ!Jļ+RzvɕO֠S=N>tאTS]uBЋ6^m ɗŸe-N&z\XC8YĈ´4vIu2u^!/o*T &&R\ӂ9:)膘0azɓ'qh֬=yyyѸqc@qӨQ[z^D6m0L*3}!99BnUVԮ]o{5DQwԯ__y#G2dΟ?ϦMx׊p{eL:I&a2Xr%˗/M6DEEcEZx7 U Uvn3Ab_4.]J9tǎ/dlݺVZ_ӹ>]>}:?0(r~ԫ\:Fʹ1+VNJkDI]#$OE1(2 ɓ`T5j4`##:(9JҁD0.$^%GuOS!xV 7n̢E J#Z݂B[jĉL0c2nܸ?<^k.W豝;w~ҥ &E"W-BG7\8p;vqEt:&Ly󈌌,:l6/f„ 7;裏Rr;^'88M6xb^|ŻFp3dggsϑڵkywXxZݻ E~/{n֭KNNf+۵kwfTϟOzz:AAAر~/~F]S|>T ݩRNp%b9`u@vл|4AnL& "*z$+S%{rOQ\)ˊ]˺ԪXJ29(ET]ZfKCiPڎ3h81Q "LD9FZ/B:qJF9'D!࢟=B忷ƍ֭W-: oYtW?ӥKuΝ; =ުU+TB߾}={6.]`ILL,* SIZxx8:ubL0g}DTfGfػw/M6̚59spر;n-]#FjSO=o,_btڕ~ u97of…E@]PPٶmof[0g.^Ȕ)Sh߾=oݺumB1ezj}ѿL n6or:x7W1Ӯ];?0rq*96ɇh &.paٗ@mRKC^@MXMO9J}U%Y1 bRIa˽@L4$J܍hY>)(,Hn\8rdaIM}SW:R7AX%[N74P4q @E,4BF].IIIj/Nʵw} ZvЁ۷_EUB`ۙ:u*˖-̙3h44h?]9sٳgX"C a̘1~ )9+q:9~'9v :f#.. .ܵ $s" `۶m^^k'Oo߾*q:h4oNouƍ3qxꩧxꩧh;FsΤ2|G}ą 8p G|իٶm۟+oRݱ =P4neM>hED|0@Ӈ? Ҙ4c\ER9 B$RUZyZ5OQK)ʻ齭tBK0).AS'=]=>˺< 1J kD. cơՑa#*V%**DU贠[Fbb". B .GjϞ={n8L5b=j̙3%XA1YfPTTK,a˖-\r&MiӦ"[F2e ?Ҏ,dee+еkWfϞ7|D~'MV7>3 9u.\`Ĉ|y .0`yxƍ6l{b0X~=KԩS駟HLLiuaR;gn"M9H]0'tJ.A:d@bs$cN)3ЀMuZjKEJ5IQkPIUy$iRjCZ3c}52^% '@,*HLz~-+o!!!?y?/i%>Vhт~<..;vt:fȐ!%8tk׮yF``Ϟ=lݺ$E͛7w^ٻwo*;YtiNg>mۖ$IIIĉܹu!_~%OװX,|wܪt:ٶm{IJJz |#l< _ڊ$րs9U T"W$h@\1bňkρ-n'݁A4ВY aͨR6@u=aŽAm)*D\iAe"<{gde:^ D+&(G.jܕQb+_k4P~}#nêUh߾=Ǐ/O~_uqQFk), =z-Zdɒ"'J8yQiLڵkd@͚5ٱck׮;uAAA/_ggΝw$bt:ٿm{Ff\tPTI8p }SNbŊ@ŊE뙓ϦMXbk֬}Eʕ+x駋l͢V孷*tʕ+ٳc05k}aĈݏ?XMO;w.7o.Ä*W̲en:v84:/yZM+m@@j_G(!P]'7isM0#-nT hqa͢:'z#N6Sp(ZJP2xםrћ)$L'.>G'5"С^tA:׈Bj1Q.@K[?{?T@н{wO+R"g~gΟ?^xjժTUMg^P+]4Uʕ+`7wޡM6DGG@p%5$ 99+WRfM7ouԨQȯJZի7?Os?ʔdhZ*UD=7nuL<˗/ @ XnG?^g%..N=ƗE .pҥ+Q9}u2_PUv !)Z$ 4Dzd.Vρ,А'[9pQ&%B]+oP%Fa& %Gw%:OiI*O3`WZi#6"I>T>dggSPP!9oyW O?'`ĉԬYfƍW,F رcݻEcƌAEfΜbaر~Gnn.fs/гgO-Z뉢 /"995͛Wk'bbboE'RF /^رc > <<~3}t |fX;i$;w-ƝL|H_n(*-]!V:$E^oA"f@ycVoEv(%t"TRHPHdOVY}S Bd$\Ud7 2>WZQS0b'h !(JA{6Ra9S\# |Ott4~KPڂr\}+ٳ'3fs fΜyϞ=ˠA޽;W\aΜ9lݺUu3dff0tPsѰaC\C=bbMÆ ?>SL_~A_|5k7oOH00p3-[={6_5M6W_%99[H-Q9vO!{z3b%"'~|adyl_s @r7+ s Dv9rvb֬Y+Wŋc6>|8AAA}zj*VȜ9s|z=_Z 5j7ٳ=+#(W*Uȑ#EzMQU[t9Ա!M7Rz\T ct uSTb8K:v R)ktj栙Xpaϒ:4YZY3Txi7+H^`ԨfJ0lɫK0h:].\ 9A  IDATashd .{/nv0L:jժoEN֭[y嗋z"88O?_|U;ЪU+7o~$(Zh nH,YϡC|bի [n TFAŊ}2E֭[ٸq#Ν+˗ڵ+ǏN:+WΧSbVuN:EDD}^zL8 ~zׯO޽~AhӦM9HIIaΜ9DN'NmOPYJYFF3FzRx/z|[@WΥ>GB4VLXT)[bvˈ02&QKbXhTr|-oSZD)B7ČrdỀC\S%MAr3s hPCN#<®]gq]M 6\޽ꫯ.]p̙[>^xe˖5ʧ(ٳe˖ [ ** ]d/'Nl6ӪU+h4u\TR^XV[H۶mR 1{lHhhA"++e˖gg@jߟҬY?'ۭڔ*p|5S [{ D~R5KCK(oh 7x=nVNrcsXI8 m+Y"H'p  H"^,O/J6NLAhpc%@#u2[AUJGcF(9OdN9%h!Ac}zLX1ʮCuN#--ToP~(RYzus IQ@ҥK[n73g$++~2^}U\.W}Q3f .={Һu۲E,YBll,O>wzs7*(Zhȑ#΃>xÿiNGΝܹ3seذa$&&k.4 .ˀ4N_N?qE~Fn}~ B~5j(~RAo7aÆAҺuk6m 3ghժiii3@`Ϟ=?~G+C Ӏz *$Rez,QO0 p v#X 48CYQP>#qK*rX1Q,\hJ"@O5ΓCrKلebPPuUN5)ЮFhT'w4CRA r'02%t"&7'ߡylOA`>}Oqϝ;5k k^m?́쯒G}ŋ /{n/_N֭֊ (2}t Bxxs=z4N:ѭ[7|Or\2Zgnݷ¥K(k*ݻw/kL&*TSyGQo=}i$f蠀(J@At+ES<*"p**'@04 HMٙ뵯ݝ&;|d2)Sj*֯_O۶mgM9s 3gd9KJ.VEG$~FwzKPFO EdA@ R"=$!6ɸad#y8Kedă?zQtæ˅)|jiιhaM6޽Ր%]v!25"''غ~+=zdz{=nq`0бcG7o6۶mz={V, Xp!yyy7PTXx1/.5ԨQ5kt:]6[nv.͛ӱcG M&L8Qhyeȡ>W6HCU=!a4ފzETM C-RWhTU+ x-ct }(1x :*ܹs{ߟ5j YfѮ];;~ȇ~Xb+[nԯ_NJiܸuiժԪU2uGY}6]@;c\A#E(6k¥FT Uru.Pg/# Ȳ& #8=/@MgwP DN##D.A'JӸ+@SB`^]e@XwR@Ƃp2KW(}PbEx ֭[w  e}#F(3ltEBRSS?|W[b6m*كf#''K.?#ۈHwER8B- q'TՍ(Q*HQYAe4|cT3}y uiv}TQ^@8YD\XpcHyRuapZdJUDqkiD}v)ކ^́!`QlWoݺ{k"FAbbbJfӧիWh4N퉏b[G}D X,m۶+?~}J*Vرc1L%z˸nٳgs =Cvv6SNUV[VZJLn݈筷{nNg1_yϟĉiڴ)k׮vL\=F233INNfŬ_g2dȐ8uܙ+VGzjmĉy뭷 [)WQQQ믌9ݻVCe1a رc\2E8kcʔ)ԩSHRSSi߾=ܹ+6-Z{Ѯ];XSvCh K/9sJe +ɓynډA$;7K9GuI%}T 0 H%YxhP4VtZORY/r䋎zFIP~- gӋ:>K4#/ӊ zGG[9Y.pjrj!"P4Yy_@2A".`l0Ty0iJJ'b% _Prys3N,.iGӚoIIIwެ]u0m(Mr5sL@O}駟 p8)IW-O֭ӦMc̙$''pYw+oŌ d`t5*sZu Ȉ8P%!߀Yv#>P ox1-z|~~ Hd O=ݑn. <;b/>~qKD*.q r1DT1/#bТ]MJ!\f\h[dƟҖz> *uGG͐!Cvm\7AN:h˦ON\\ -[,ׯ~t:5QD͙3gf}/\eUT/(\Šsݰ9sӧOS~}FE 0 ԯ_o ** Ҧ@]O|ԩSc=Ʒ~KϞ= Fٰan={2|p>Ξ=ˇ~H_󑞞^b3f;v,ͣVZk۶-l6شi#-- KXXׯEھ+z'NPn]УGrEBCCv,OYf,X@|WpsnH޽Ǘ_|EMgf$&&+J[_|A-8U7ǜT2lHT@qc jI '1@HbH}Y3Dg jr˫f (Xv :$*F'p .N.B6r-^|-qW4`s^B@Ɓ&@ƀ?@ /]N]+Ą ^q""a#`6Fٿ?~!QF1uTfϞҥKlܸ_h)PeyiaWó>իwљ3g?L||<&L(URR٘k{LL : F׮] RK .f͚1yd}YL&5X"ӧOG$%%$/Cjj*yyyj 5yd&O\j/m$%%ѣG>F1f3 ~)M4aǑ|'g"uID„P '(҉"64Sc: 58]̉ 6Vd?A0e@-\rj6 IDATR姀" ZEF30D+ًa]B#sS"*"f\8¬$v& DŽiC?0?~&zxxF"v=ݞӧYh.]qJ UT!336mڔT"?~5jtUAUuz mР.\B ?(N1LdY^`͚5&((yw^ԩĉ(v;ǎS&"[x ŋy%x=s+7n:uBtt4>cǎijTZٳgkeff2uTrss;v,͚5+ŋiܸ1;w,RTAPʕ+Dze8q/QeaߏdbС7]Oַo_222W .,^ڵkӠA?3R;~ib…ԫW Fhc$9DXqc€\qr\",8' C(لqڌ}66aغ.t2LIIQ/N^#U*鲂;LGN k q. J .l,8qa&C X/&dA$׳},-` HX#fܘqaBƏWʭy^25Hyr&V4m=zZҭ[ҞQwa3檥 z.]o>-c Xf 5jꬺvUL͛W`Zde1[:y$??u&_x:w;äI9s&Fj.4lP{]vmڶmȲLժUIHHqƷ:x %v|>&cҤI[tڕ4|8_ut_`y=3f #Gn(ѨQ#xIJJ~,]gv}Ԯ]SjZ<;v;,YB 8}4O?M'2N[ 16F,Ä &pꜥ"Dsҩ@(0QupzA_~9P<3nn$%ZĂND҉~_"T!ZJJU 'G 1,$n|yݻwsm߾5kޒ(#GxWY x"_}͚5O>_*ƍnj3HOO.өsssߨQ/dРA4i҄?Cg˖-$pXҥ OfϞ=%IK.ڵ 銢±cǘ;Nþ}{XbE,'28b^ s86ʿڃ'rd]3Һd ;dzblZcV#!iy i B!QjɈn <.^I(^A8W)Xq`A?ۋѓ 7 F QqG [8x>C>ex #hI2 :gnKBą% YfV? 556mZ,7ڷoOhhh]K ڱ oqCJee e]Aԩ|S 1cТE Ξ=K sZf Э[$=-[l6kvZdYfl޼^8qbbպub'V޽4hӄPU󉎎K.&wI_$]ݻw'11Fi ō͛7ӲeR#V#G,^[%իWӨQ# MfgQ\ LpjaRUÇ_.C{iOJQo(.>%["W gϞBn@ܹs4mڔ{_|Gy:4d;oQ(c24ax|IMtذaWo;9[BFFSL)Vu߶mRj+ BCCYlgϞ^дJ ϧiӦܹS]{ャ\vɘBNN lٲXs=TPi׮+W,tTrWI ^ 81c'່޳[ۇ^!J 8Q),B]qޫMNLKF+< |PoɿH]`B`cI8[00Y<.#1N2V4/8\5@xY%G %5ChJtʊ *#t:}Ë7T/ˈŋ7eT(%rb ,X@LLLQ窸\`Æ iӆI&?жm[mV Jtՙ3gؼyu% ϙ3 0h ڶm ׏O> piEzʼn=zзobt,\+׭[~H eFF?XhQEwЁ]vѬY36mTc_x$I*Ur믗K7nYfڵKɺY;n̊ǣp#'=5fm;)x *1,+N$DSD^S1+Ѩ$7ԂLEI <Ts|[g1SA#{eH~!9Z ) 0E*d@: 8y+]8pk9?%(S=tx k\ j~[).~z?\S)oFqKٰaCQL8Q{E&Muw͟?h߯ZhAbb"VIe\ymƀV$%%֭[2dƍb 2gFʕ+_|Av40u|ƏϠA8r]SRSNL0_Ȇ hٲ%[l)cl޼NuVv[7oUVlܸQnY9۲_cbXy0G^Op:=RH(F e$EShBT`}&D*߾/{*Ύ&=Iؤ\v )^ xm~UOX <$d2{ZMdJDŽIh*:L!` P=R_α{hщÇsĉ9VQbp̙D~3Q+[(T/zqn߾=;vTۛ6m(<3 Џ904TGR@@\hҿI je(2J7JǠX@*`TtKX$IX:%})ye> (+˧Ed7F!+ydJa)nZ*)`]c#pk WTMvDG |Ȳ$:tQF1wҞJ>[; }JNNVZZ@}9 ɬZJӔzyP)Udȑ#ݛ7e< FժUӧ yyy8p+Vhc+W8z(, 9Ei$P",3k֬1u| \Q8p +VҥKlٲAq  @9r{^fKeƏ̙3K2&..m۶ѬY3֮][$cʲ̨Qصk5J 5k,Yqaڵ4k֌m۶wɲLJEZ9AE/*$Iď #P}$").Q}Ki Wz|ՋRE(لD(>˼䚬E迣U\L%Tʶ. P|y9]>>G)d 8&:~Y'T@6_~QޑÀ E}`}^p$$$k^~QqE#x=v6oѣXbIHFF7njҾ}{^|E-ZĚ5k Ѷm[&Ọ>Zԧq]]۳{[R1n8&LiJ'("^Rسg7f͚5RcV}a@{V_j= 1Md3n$D>ǹlV-cJ1r+_ejlIk e6s2h3vk:D^?L`A%atn+gxA3WWq0}d +U^ ĐJ9.K(n"A[zo|:t(6( IElH1|'%|%NGt:l6wuVkժ!''c_^{=nܸbf* jժ{U͛ر#'N,bg߹sg:tÇ DDzcǎȗ_~?N׮] DA򈎎\q]v޽ lٲkժU<ӥNOK{Ee˖ѰaCShb| HN/~ jw[sЇېpd.3ñM(Ģu/MRB&%hS'/` 2\?\Yy/ʚ7dGg$J.M^^mD ~qڷoO||CB1>|^=:C>hV @с k0̸#K2 )`ؐu!q\}ZfQiUN~5\1 7MC@J$w`+"'8 YƘ/UΊ,59{W\^ugIqb@΋@ 6pɡXN>(G)6׈F޽ٻw/n@bPȏ"%%jԨQ\)V>|;wjf 5k,3 wiԋ_$H֭[_eʕJTԭ[K/rBŋ|^,#26l7@1l0v؁ܹs\.FMw^~G(G*\xqÛɓ'۷/˖-+4q4o.P4W )PJ1(NxdKb JKh~u=K!d+2"~tzeŠ?">t4g%D !䫯[׸| +V uWi⤹K>RL_H9$^!D<&=Ps3)dƇ>pnbċ~dНIk[F#G񹓰~5k:b(4 EǫZ&.~,ˌ=ZSX?3eʔR9vhh(Ceԩ4hР@ڭ"&&ѣGyؾ}{OsAon,lݺ_|ٳgZ!++}QjU:ĩS_ewy7|AfԫWM6Qzu:w̏??NÆ ٵkUTaĈZ\ΝiӦ Ӈs!\,$0o"LJf6VD+?w*ِIqK:<>#n>XN>]S-̘10uTvMVVz=&L`\t~zŋn<@1z,YW_}ќ4}֭K\\3涄veY֤E7n]6O?4^zm۶!-[~ t+Wgy^zaٸx"={$%%۷ѣ5j-ϭ"%%W_}%Kh,?u l F1A5]+Ul~ӄnW`T%Q!=S`> É7;6 ʀ9 [Sb2G!F,! Aj&! IDAT Ӊ2ʯ 39 dF#:$+5;+pTlB]9}: 4p{1`, SL)Pl6mڴa߾}L&ʗ/OXXNG}b(SVC /~,s*O=()KFӯtz~$"K"~ &IdLDJT|1LGyEE]@:@a, ;v(8,XKEN:i&h޼9?\2Æ +5bYre,Yȑ#5-[裏r8q"ϧUV\n۩Y&ͣG,XDNJ_gdeeItt4˗/gʔ)pyFɒ%KT#",r>8 {b2hݺ5 6q.]JΝl58TB@LL K.F8pxDQdժUE$&&cM%VUK䫛%tzQ/yf3N{. GVsVY't㓕8cX!&@LT5~Ofw(e H.FdLJ&<dCT(- R#dr ^Z- aT9{нN )2Rz\4 $rw=Fl ӈ4)]GV|T9rHSKBú#D: f\Q'LET,Wd|jjPk t5A?AJ1G"ܞ硲+9 \"d] 1xD+k><ʈ Xq(^:*g2}?m۶ѤIҞJA J{ \JKw-[IJJO>= ;v{4FŞ={?/rCgy3fhތ7f^رcZ{.]W/S) 233ٿ? ?B!Q-ݦ|vBCmyF?fCFU@ӟι*qI*)Nd/V3ۉc"Fɤ:nDT( +ϳ%(2F~dJQge(dKP2g9dI/ ~$DDgС`92!z8$Zz<@||w'l6p«FK\"W[.y+lRNĆ ٳ'R+Vdܹdee}vN>ͬYXh+W~?&Zt:zA||<۷obо}{ot4{Oll,M4ȑ#={P{^z>}͛7kw:ԚzFŖ-[nz̙3Yj:Cmqܛ/a>| .x~:EJA,Uȿ@XBy)'i ^ PDXߑYu ND$-Eb9Ey.bwq6}}fuJTJIܺCB r':&TDBr e3gqٳ0^c~_׻ـf+PJ2-KHs V 7#%D`q OcŰta)G8lCҀJ]JEC"dHˍ:wwm.ٿ|K vbj©`(..O>t(53fL8n,Ozz:Ċ'tYyO̙3iժ6tLR͛ygݻ7;vcǎݛgy|ƪE>(̌ZSs1P+$55p-0bĈoO?۩S'-[lG1Yx1FK.!%%{ӷo_/^LQQvb߾}ƍnjVkJg$1bϬYׯ_K/ľ}駟N#ڞ \ L&!x\~&ȒW9<$?LLXc3Ir21cgIAGSV'8ctT'.욷_upc+:( 4c/ -8sYb(ItRٸQ*ar`xWЙ%Zl50? ;?/cܞl)G1ą/xK^X´~S+PJO|'̟??aÇg3Woyyy;w}M.]Xj 5kVi=z4wy'_~%=ӧOgȑU>N:Ѿ}{L¯bbm6Le]FǎYdIj=j (--ꫯt(5u]Q%I?k%%%̘1y|rӧOEauxXjǏSN$''ӻwo>S*p!l/N\\deeU<,N!|̙3F%z7իW8p 'vUizU3;%CnO5Pɬ"3^nBU ȊUQ|(1~4rC5|xrb)sPMĭۃqb.a"a?X:6!o 2!!јd 7|ShxLUBZ,1F+w%cd @)1IJ'|)# Q+^p 8 r08^0zuGMJwZ]veç45W*VbĈtܙo/3}橧b֬Y'<^~~>SNgԩtܙL|S6ٓ; >3عs'k֬a͚5ڵb>3ZnwM=f:ABYY6S矱̹DӦM:u*j%3t3kժK,dРAygILLo_I&̞=~{2w\ @ Nx1c?/a#F`;E/HwOy~g>E>f75H0 xa*蚄́^ɋ$/!'ۄaJbQlo(/= atEo2S<;nqfAzF`[HR= ϧ[n[.ҡT5qfD)V-[{kÇ[n[|9^&!C:-IKKcݼpУG}]vMճ֧[4cbbxwW_}0jGyӯ_?iѢ#Gl>=ӟX`wq=XRر+VW__STTsL:]Ҷmv[,Y¨Q*kdeeѧO3vт:e>L;w.;vd$ISN:-(fT762VB-DY͉A*xV|& jT@ͳRۄb /v@p#* ٮK)Ơf/2:j );Z9.:t"iJe8r~om*Ch "[+@^nY@!'MX?~biKÎ躄MpXO9\8VN^ig| ./5ERRR[f+q2UxtaÆo&6lu"lݺmVZߠAԩ/~7(xΜ9ڧZl)ތ5]vzHRctޝK/W^y%ҡT *s!33<͛G>}ٳY9g>}9s&#G$))ƍb VX1tԉѣGsM7qW=o?/{'F3EQp8k׎NJNXbE{]).-f U*~O*fQpOU&dOyOA?"AuYF+dZdFiNP|ێGmžWb#vYu q=Bc%XR|uVD\*s+e^ѷX$@b{bю$X޽i)`2k]3PU`2jEU@#LoȑJ3cƌ?j:11?vhABB;v`v디83 ²L#J~ -@o # KMkr1^ 5>`E\c(}: 6b`6X,ls2bڴi׏MRN~>k"2۷oGӴ.G 4i҄|q;VXů p0\T* n@S𴈧v[±xX%TOlZXQHzT;N[9ϱ@2RRmC:y h$ß8H|نyX.gx4NM8EV: X)k!$Hncw&MGOm-f&WdS1-Og~;.*߯ڄ?p F:u*˖-h ,P*72|P+틋O}ɓ'3m4OC=T/_|}q Kqq1NDrr2^ǃfmAA;v]ve͚5p{_~xuj׏.j. .駟֍B9222&ꫯ5jNIW\q{^K裏bZOglO\{|gUrw(~WXqQK 0ʃ›J!. R ov'^ŏc 2878/E$RF ~406Qn6'f%nT\jB%$Ä~]X<˃ /L>ԀvG8|XH6 0]RآbdPf@'V!v=_WPm%;ezȺN\N\qi"UtmۖL \oߞ5kpرseLヒtjE=M5>S'OXƍW_~@ pB ooEիWj͕yyyrkVV^{-7|3W>24vX^z%ο?qq$Qd*kDm2y&Ō 8qq{Ut]K.ۗQFѦѱڣGl6ͫD͛W1мysKzzʕ++:x ^xjq^cuvUVI&-[àAx8p`V믿μyX` 3摹҂ adqc HNӃE (ȦYbqQr,@ X#J~Mğm5k2$Q/!Ջ Q{u)z1^1-<$2l_v8:Fg7beBS&U8 )4?NF3E}I8|.$c;Rn$kpBg}j6֭ˎ;N8U\@CFl dffҽ{wnJ<`T94iB&MNZZ;w=11%%%q7~z&Oiժ)cm۶-9]vW^,[L2dȐjw5_شiSԒV\y:&~i͛7|àA$M6?G:3,nn , zq8^ma&.CM UNB t4UA EM^ Bd)Jja)]DÚ^N\Y K*9`?Ahv`*0_ +3ԣ0qW懚%9*$BVB.^Z,P#%$Gi*u=$J}*NA҈=R IDATЄBZZާt,X@bbbjlٲ+VlneQq.g%U W'tҥHY|y$IzXf͚Ō3HII'<δЩS'>n6ڴiݻ{ȸ\nhErrrTNsؾ};]v.3g8CϞ=;w. t8Q]ҵkW.\H 8>Ѧsˤ:Ɠ<83겡jیeC1OWح82aQGS28)-ë!*vnl~I!^3`9XG<)ovdn -J|Nq}+Vq6"Ux *@! 89%TfZ6GCBr5j-[䦛n͎0~rrr\A39v?و ~OyW1b{?δ&ߵMӸ˙4iYm?xgPjˎ;ݻ7>"qØ/fu^{ӹsgJVWCxX=' L+A^A6Lĥ;0$sUm\~j|Ixߘ1cF5p 1bK.&> Sժ%W$1}tф+~E:cŊ㏓AnXjV~cټl۶oÇw֭i߾=r sO"1C%77Vp8|h1wwnv@sp WwZ$1.'tb!I:* bʜ%Pfy1ABǎ`I~fłz%F]vzˈ+ƌ:#Bg`=Y~ͼ}Gط|iU1SPd3d^ɽ]X1LX(&c="$ҸYGO4 ))v SAEJ޸aҤIgN|111x֭[ٳi׮>O>d/rumݵyGupK^  A.N1\b,1`-XIhDL%8K)vɅT `&d|X`C ҈tDr!c #Z+&Floqq2GbBV BeІBby!j7)@K ݘhy N^Br̥*hԴz3G/|ʡ̙3HuP1Uy-?~.+bbb*F[n K{. xgx(,,dҤIx㍤rJ7n̕W^%>>ŋך Yv-n_)gyŞ$h o#{ d0Hrd 2q7Jn̎ Z@<-aO(@$O2> 7V/mf1C1 H.EAEBlxס^3c[ MaO'hIHSw1'ЁaJ* DBdj(䅮 Ih0W此4l[O{!>>Z&hтӧG:?rEJhѢjxjm̼*y]VܹMӢMXd2waZ+>8Nƌd[nLR&4$ (+JDǂo %o _S}/Jnf@AG8wq(&C[H^lwy|ռG9ngC&#R|.wh $Q-=l)ق{% pӰagV+_(//m۶qUZEڀ۷3qDbkK.p;r[l2xjg[rx.Cnsfq}Ѳe 47(OLwM #|3 kxp;v{1HzC!|݌Aı@ב`CDO~E* yl ӆ"/[ 6 3:D˜.+> 3~;wdɑ%j:1hD656JzIH@`$LSP ++?FVK(ZtuENL~$Dd<Fȅ*~Ɣ$C>R0CO?fÏ {;ym"{z-Qm ̺&4$/o3e _bLFvQB)Y2S6.ɣJ$|X%5ӵ'-ϯ^7`>&шE@jCR.2/Tv?ޫbm@II eee%p OLjj*M<\Ʋ}HQcHtZj x\elv툏cr;ȑ#+P=NI6Q氟v 8BbSgKKhz7Qfa1d*ÜR2TREz}ܹs'3f`СQiy}]ᄄD}q wb\{Q+\\nZb߾}0lذji3֭˄ 3g||cƌag1ʪaܸq\wu#jQPPJCd%&1:1hrt6 *܅c5`d`"B.`UE%@#[hj_+U1S>9Z\ώ$s4IƂXJ(X[;e`"@%tմe R9gס\g,]Ehd :٘@߱Сo.#7> @Q4iyfJٳ'QIjOf'R}COD[Yl\YV7ot(5BBB={%FNqqq~a^u_pp饗QFw /8H /.T wM6B&LgY06$snBYxl760!(0JN =W Y)׫:K/v2Ӎď$ )W%Q$#.GI)\4lebυ~:13̽m2"F-byeB [naw_x֭?نo#M~.p^֭[3o޼ԫWɓ'G}>>Vٳgs7ٳ#>x~b/hцu/fظQHS%OB-4Qfma_1&sŬk>ٌQnXHJJPޯ&.\M2{HR#dffrJnPjEcǎjعs'&Z\d ,rMO+Z/lU A8aKƓ)p6C:jXeѶ]<C .9 Op[3!%1NFтFU3kx4J]rC9vH+˞Y⩰l(lj/n76f7.|1\fYɏt:߂8?=F53jn][ I|z 3^N,sB%իm۶t5<@>}"ie˖<#$$$T{ߜjcO>s%_3):k 7,#݁;WAy\:804QBbph1 Fu UOW Iiy(]м&dŏI(H"8l822:2R.#Q`fKFËCGp'SH9~ʘl!Yu ۂis7zwcywJ^zH5PXFc=СCiӦ=yINg5:ÇG°ajɡQFg!~cܹdddD:Z ]ٵ0m8؈2ZU% `^M %I\! +(x 6b e:` c%,F!SdԀ͢`2kM3Z"KjʠUgERi9ri :~#B1@r8)GBCCACb&WX+w]4kyu]OM0f"FTAX=5Wg楗^+`Ȑ! 0>yY }';vlè1ƌ믿0N #G䡇Ѿ\y^+"\:9ix1S= [pQRתW*k0ס8&]*⦛n깭^{mԚKG Bsu%(šC5k$1rHRRR0`YYYu2s5{ hĚ5kV0*0srrr*ĉ$6l|$uC4yO  !N,!6`1n 8dHMDV)y]S8cZ1ga|5A6B%,EG6>Lf]PL*&%,V&LAlvbV4d46"r) 2ȥ H&Km#YsOr^y|ͨ5i0awヒt(Qm`81b#F`۶m̛7{>F1x`LRFͬ 0jL~HqZXjUi֚ 7Q"F=Fɡ  -#(VE #2n#R02]9y*, N | !aElVXd]LA$V&QQcF >5dx'tLPQ`6"%J8)'?fv hbibȐ!|g &MߎtQapde,Ozz:Dz5kB4}YtB:uX,4i҄Gyw̙j Fzz:SL9_?ρXh1mڴ$Wi"9p@C14MG￯Gr5m4<`тm)YvTbWoq!E07|B.4VB<0 '{ CR2cvd͐*wEɨ `@"PȪ\P {9%YIKE$rS OpH˗/?-:47Vîì]6aDN,oرcꫯxwqtҥbbڴidddkj*x ϟu]tiӦ1zhNKz!Oȑ#OZwy衇8p 6q˲?j /0N ,SVVVҦ}SU~~>$.0} Қ0c(JwZ_RA wZI@LOdI]H9:]7xkq b֙0lzy,&#I`b%A$Ȣʘ/hkAh5> , 3x1Y0HƏI[;Rvm55æMׯ_T| 4(ҡD NWꫯ[֭L>.]p8ؿ%k&Mps=ƳyԩL:Ν;0aGuUR.\oڵklӇ!Cеk4e{aőF8x W_}5?SC1_i2jZn]Ÿ ~:"tSgD)<{68'jZlٲsBz"kz 2ҶCPO IDAT Ajy 8~~?f̟?oz\yި+B֭vtnnnANN6VXQt֍}]h% _礆? &"0JdDK!QJ 5l?I1#4نADQ,4!Pv*| wV'MheR~Q$=8G^ QGߋЇ^U|X`'lQƌi٨&: l>~S{eذaQ+]b#Pb*ٰa)+_}@,4h@:uU/xؼy3?##F?q^F:^z̝;7Zj7|S}srrhذa%KpС[JouR W&# b^nY$.dFda:kA}JQX/ 2rGxo)$vP1^ ;[&Z7T}=!!?O<g>m۶r9$\.DZق#Gv3~nsƍGǎ+ZILLVgY\NJJ Ϗt(5ڵke9ȠJo޼ɚ5khܸYjزe K.tQnɺɒ(n W"[ ~.'4FdDyQu8^a]fŽ!^Vz%a1!t&ދ,/#Y(&5 IbŇvz겉zW5Jx\@!A+'%ͨ{moD<w+Woֽ<]nݚkҢEsz3޽{uXU[=&Ny饗С )((gϞH… T VpfFY-1[mBzz::HMM;<᷊aƍ|$&&RXXXk2EO?tCu4O=C[9P6*|?l;APWl/nԸ pK52~.:rle(B'LDyRkODe":Ɖ!p?\᧮njfm6@IŇ9(fWqcGFŇ*~̘hujJ#''~uV}sͺ~woUW]uN}&cDzk׮1y vֹ 'OfڴiL>Bnf:ʕ+iڴiדzx<l6[ ر`ׯÆ K.&8t]{ZGm%\j=Ƶ͛7g̘1џ -[`Ŋzرcq8L<9ҡD s8&너( ٞp( Ad{F S+Q !8J}]dЄ]dBeJ-)츪MfMQ%U1 zʂG="iU E2 ^MX~lݺoΚ5kNq<ݻw'))霟LYfBPS1m_\i8'OXƍwm ڵ+cŊ\r%m#m޼+b}^^''^ `7oСC{IIIjʘ7o> `y۷/˖-c׮]Ջ{tRNf̘QQ[6lՋ׳vZzEIIi' ==nl^ӟc=v߫u]w 4瞫9Dnرԯ_I&ՊX|y֟ T}7pcA³Y$L/a)J}e:gB0g@Σs.c{^P -}x>z8X v^-ރw}80v) Sz]nLk7ex)FjQ%}[meg?cfw"ګ"w׿)ueXm4嫷 |yQRRСC9z(SLaҤI{1l1z̘1;3Kw^zŮ]Xl}/Ow^zvZ֯_O^;Nj/Hbb"͚5;k81sLFĉ{u&cѿoyq&< 'Of„ L8b͗_~Y){tƼy*7o$ѧOS^… 3~x4iB^XxriL&YYYgKtԉ{HRcԭ[O?F䏐Hll,g9e˖<Ñ#byz|kA3IvBO n"3%p\ATBq%FsKbd!buG14XZؿb04ToZ-=(of,X h~32;z4VKx6 CX=XP{hDubXذa _?(**駟oX l4h*kO^ 33ݻs뭷?TZn7r 6mbҤI|JٳxL09s0af̘ɓ>|xf_6i҄L_|A~/ӧ 6'd5~$ 6n_O?4tui .䪫"===T999|G :֔Ǫ\6lmVeMCΝIKKcg9㮻"'D:su;f3k<) 7+_+-!4DG2tB$JKd7hVP<c@t,Yu%*Җc GxQ]0#%u as](PTq#Ϸpi^1#D>&<ݙڠ('׏nݺns6QVVƲe˸R~æMٳϵ4 x9ڥKΛ$ UU&==INݽ[oUi̙35k٤0dƏ*2?C"zse \ 0sF%&33޽{G-Zz5 *ӪU~? b9}>>Ú@JHo$tQB$ȇ]Wm~?Yn ȏ4I]+W ?!*ѐ*șDž {6ЉEuA‡=A;X|;%&Y vfG (ro|FN])#wQi%=! B EAATłmW"ueuXb} Q'@z&xəPS& s>9ss$3u_wЅόٲ9?F7Ç#b( 111 e4W4Wg:t 9iӦMqSL ku!)){w{w͛7ox:uޑ+NGyyyM  @ĆF~:RPUU;$ZIfBvlXNڝ'K}2#*s{tT/+pcj,}8DV-ңyavJB%ΓbI?- `P|\3wG0\?~ ¦A'gt;eqc y@Wz\LW_hdҥ*~A~߳n:.F~}_swV窩 . ._MS,PYfE`0vzz#|}YN8Qs:uDeeer}^`A{E@9G~_ V]|NfdGn|ѲC'y$/5!DV'`#ZWe@"uAۆ6 =4e/t|9t ?(f+Ȗ^U!PA#Pf\^ogP\qe g`n5.QǓѣGkt|͑#G "ro|lhs6dffָ#B'oԇtmQZZA^?SJJJj|chJ3&Oʕ+#FQ.ۊ2}Bg{dYB6ILJC|(3Igz7?xgf\ SNi*Dbco$9S2`V4$oer_(A+UEE1QtчC UWЮǏQ*^Ӻqu޵*QpSF4>oAEEED___ D:BMD#1\Wزe 7xcèڴiÊ+jTѻwov]+6m`2صk׹n$z-[V \4!@~mQ4w$#UCOٟBgn9 M9Q`\bA LAJlyNeVP-A~Ħƨ30TbS4aS+|C Vz46rssy뭷p:> bϞ=|# 5WΤkyW"FPRRBVX|yC3Oi m%dFdyzA4J-EǂjӇ2S_r%L0Ĩ}JJJڬ[ ;w.o67t,\ŋy饗۷/k֬a֬Y5Kr5l0Zh{yQSF>}뮻x#J1`sIp:lٲ={2bĈF0LEWf .wJbR.HR|.7Ь|,x_~>foBLCS;!]hL~: ͥ9x+SRrgd+{ߖڌBB CQUA:~=^ŇFPQx@Ky%ػ^7|3Wftܙy`С\ve>nZMna'`X1U.RFͬY|.b;{6m6-a|^6m͚5;1ݻw租~GуѣG7Rt5q|75>oO+F8I` 'eƃyW<ޅDp \IM7CnDJ8l]@Z TyPrmHb V Lq>DJAUt~Qԅ:KСTjO׻ABQ,Xm0`Z⢋.ߟ>}Թ}&2e ۶m)knGE:A}MD[_L(~+|M@),,tud߿?{91 wߥFv8x |g\uU| ̥"v DI0*|4$ Mdz)Mv ʌpS4 _:SЁRu.KzC0pҒnTeA3eAC^R@bޏN3hr+<$m;h޼yX, VbŊlܸ 60sLN'5hѣG3pY1?1*4%kh"->W@ qqqTVVRDͬ%͛W5<~:a -bĈ%1p@@6|+ݺut(Ɵ%ȃ$Sn KyV0<ДG :w:dĎDƃo9(z[AJ̓?˴YpE0H9uY>@?6 1< a2Zf EݎeC }t(ttUѢŬC:^CUUoq\ѣyXf ?f.ACZZ jVh7o ̙sJ#\~~>uyIf̘_|0ꌅ Fy zLvv6͚5cݺug5fL>-+.[ݒ"DHvIR•0!UDJT͊!AL:KNF6CWZt&V<ɁӒ4ʎs^XRK:PMV*nA=ܓ2Cj֭[novptMlْ_=bܸq< z5\6R~-:(EnN)kO6j֮][g"D-q |ͳfM2~HQ/XV}ݳV)ϪNJJ 'Nb nfҸXlYk?6mĄ 8tP^'\|sŦc0$9Fj&Az$ђḋ*642 P^)@H^ڼ?\x/*=VV"UUL ȔAcCP.#v;2I^B*4yB2')ݻoIJJ:wV_KK,ᡇjk4$VZ]wuCpc>%::H_y '&&%ڽ{7jԎg8q7oZ^z霎 bƍg|~! Zjټy3ӧOgnݺÇѣQd*u1轘n<8 r h2[S&ZJ : %>?$#=Q*R)& H #ohht0R4#ETrƍ"T' BeN)%Щ3R%/%_ `@ezOuOߺu+ӦM {cħ~/ /@>u3&)***XlYj*++p>7T|\jժF&fͪ|x%jQFqQbcc#J0rH6n>2fFyb֭}\f;ƌæMرc=mڴi.>Ė-[>|x  ܳEtKNvNj%tXФMIj*Ѫk^ mMgI#/ G_[C 詇@_4}Q| ،?E8X}%]s@_>h|U^yI ڥ%hFvu=W+Ƀ t{ŨO?~<ՄŁ0aFSxm̙39|p_!PPPO?́"JT|\5Krˈ#fpEѣG,XpN'^zѬY3LBAAA֯_޽{y7__~4,~+))i2p\\IIIM:fK&:: IDATڷVo2a5 ;:Uۃo%1"tRm-pz!ʅ@ ǜG@E,0 kp]@\>&X2%p]HETip4 D.j*gڂTT.m$$$+(N_2iw!̓&MbѢEg%^o|Z +` ~@6m(--K/t(Qf +aZ1 M>p&3x`RRR"JBVzhdŊ9rK.}_rsͨQ}/..fҥ{65ǧ?߻>/F%e8rAjd8` >.- .IVL@A ؟(:K [RB@"Pt:U#%"HChCIy~ktT=@~V<%PrZ)1TP"zVqIfYez>W_}7{6[omk5Ǝ{:ù2WURR}Y z=/"eee^7n^{-N󬦆z+$;;\~ȨQN){シ{$''Z\x 3n8rrr٥aG1t>9g vľDr QAɟrqCvW6O1`bv \qsf*RͅTNI=M$6 D@dO*L/}6@>l^&f`IUNU@ (/K] g!N f}u˅i,YCQYYo퍁2s"G::cĉ^ >>FNm۶`lڴnz~a4SQQShÍkիWӶmNMrvkxrK0d6O+!G N!98;7%]B5Ze}{2b{bU ͱ܌^p Knr`gCd^^2;W 7[0`N4o+B,fr/x$Nr4hBvYm 5R!Q Fu̮Q6j̙3rck'2lذF"٭[74ʵ~;cǎtQu 9rJƏOv0L$&&cn_Nll,=g(ѩS', ڵ'yKi,tЁ={D}e]vLǽG}DyyyXq&$$$P\\̱cz'BBl > D.-pbË ,^O!@^TXh!{MțL(IWrw"j̓[vp_z/DABx.gf!LCY ʔB [@KbI/uTơ[|0UQtw ֱ;v4Ȱ;wvZ&MO{'G\{3&aD+hαcǘ:u*_5-t2tPVZUuΝ;2d>?zݻw3hРSfr>33+Vpw3gΜ:u߿I&ѡCfҤIg$u5yhz-9Pꄝ;wrM7ѫW/tp? >k>^{/~1cm3jrAvIN}9Yr5C0l$ْKthOV8Ȯ-//#GdFU΅@ ]wEff&=X=JJJ8p ;j"Ю];"FԡϟOjjj}W^y%۷gΜ9 :RVe˖@߾}Сsέ PXXO?ͤIF <ˌ3kw?2d< ⢋.w}>UVѻw6s5i$VX0ꌋ.&V#F8 ps?Ӷm[Zlυq裏65^YUSL"?Ӎrb'ôx-, \v#cɘnndǏ=((K&A(FY{pK&%.ӂ?HD0<`-X Q2S Gd 2V ^BbPLh+B/ep{-##ܰ^hk֬agm zAQQQ_!p8ٳ'K,t(Q\L@x!vر*XlG"V *C_Wվ/̈́ 9aTUO?s$''{+VCV~sh?6+VP+|P9g ~AA>8Xh-jGWsT/|wmUrX$#6C%-W@q^ 0Z\X,~T)ƃ={DiA'DeDbIX0(D q\I CC8 WNR6;/"Ad )5Z.DmeIw7x4ɧJz;sMC XV΅bz!/_ֵOÇv~PFf36m ;yfv @NN.=Nnн{w[5Cέ=y_zz:)))/5cӦM̞=͛W۟ٳٸqc yK\.>Yg5uڵ}E:zY{nj͆ jnGᑷp{K V3܀b_F=D!:[#*x(C6ҖAj u". TF–=^ZLUIbX!!y'\%^t_ARb"(ꡚP|L`u Y'+_^ڍ3`rW.;`Ϟ=l۶HuJn5GNgUIZ餤$TUBQXXl>m611j >>3>VYy8461m4ֵׯ_OFF9Jnh7k قWIء7X8޺a3;@GCC +NRl> 5$+$N uLh$I_ ɠ$w[*R޻@-l~f4aɎ@Y& uWc0_U4o,Vpa5ADzK:`a… _XXȓO>Iqq13fhp-믿UW]hZ#J!pU?.~\ifΜ|g 'Ə… Nyl…?N랷JQfϞjGt8u† =z46mEPU=zpu3τu 6п$$$0w\.\ ˺/};Ka j?ŏ>(s%:쭸H#@2$@!zbb*(MWndJh곢Uae0K*FF=Σr$K'+ <8!*m?TԓU s!T-{ d).&?Κ5kNr^lذnJF)umڴjT4oo/ܑ, <~$gz̉מuٳg30g(Jdn7.{"w.]Zs߾}>}:fܸqχ~ȡC|ֵ΄\覉Vvsn3P3gҡC`z"'''ln4 jHnCRq%Pv4M\ cP<d9KZ8I/*9jNUń_0#_$Ym8 l.(FT^;)[D9GR$:@K x$hzGd^pt\x \5G$4TI'wnDVlT 5 [|}7z!|>rK!;Oxxg>lzV+P^^VBSpu;w?s"੧b̘13g`kaҥ@QUz96aCZ0'@0(C AO֡y$?'P KR$dLHcqrв_U`=sA9U.fc+ /l׮'b̸1Xs̕)2=È@Yyya%c7(Qr/4_ xA=ͮA Srn,JOiP_Mi/֓~ySytJkG[n|u:rѿٴiSu׿cǎUm0a]vJݻwG:Ԁ zjF$ K/;M_5 j'NХK2e ͚5c֬Ya[.x6l_d߾}\~L2/ځ"C@ b! H@rf"Ȋ$T2Dx_nK+%ͨ)V)R(#6|0#R +XqT`7:hi?$8>#hA" QL, L ͧA`< XfMGRІ86&;B<15e̐T9vE|H[\Y.2bccϸUJsĐowp %%:PVV])))X"jl6?8'OG9eTct2x`EjOJJ"//orRϿO4:O:Z#xFIL)ȖKGN"+D3O%NC z#0Ï#`@&*(|Rxl>E/V3\Xsa[ohw쮚  SމCH>PHL,Z C2 GIHIz:KSAelٲp}1avMvvv#96ô 7o^b/rrrXd ?Pj_~ѣGG: <(!CHII9qu}o}[}1x`=\pϏzrp2c ƌ6o|ռyXh)'##oVŅ,::8f p#6IB4CQ| P= B;xFŋjrb ËlL) 1H1FK <Phו&e**b~-ű2R׋A@Ow ؜2KfZ|=d };C.lMơ IDATXbSN:7x#?0_StGaa!{ZPeΜ9Hi*X,\x8p 3=3g䢋.jkËDFtL:FM'N믏tajeaJm4޽;۶m ۚ5Ayy9W\qz)CDUUQ=,k GG0#U>bL>.؋h )U99xRl'I{:* c9v%m8L&*;ĊicUd,[&VA= C5+XGxR.>+ +R!,{nk rYfUn1ԄX7\ GbϞ=tؑoCF::AQ?sWDtP>9={믿6«ʜ9s駟2e)qZ] TzHDq5AB\ U݂ˤP݈܋# Ahh+W鳤T\vf O A;j.nAı *b՗á}pp6A1 h#th,˽þ6'k># M\jqiɀqGN- p5ov?ӳgϰ}.]QFEuֿf0.[>s:Ç6\Ecp2W;vhX YYY;M>Xf _"FpW}v̙w( Z,((`ȑL>o;?1zR4(mj郖^*+־ _As< CJ EKKo݈F@#hi{Vs@SCey nLJrb d (:L7I"l+LʂXܸ@X0X 3πȲI.t8L#<8S)`Ձ@@<) `hD0(X&eQtLopb5o<uN1L2cj9p:ZPK̛7vڡ'7>4}ܹ'P4 ¹,QZ5kpᆊ߿?֭t(_^*т]viӦ|%++1 ҵkWz='O؎I| THB~ n n .L1.6D/McfBXrRC6iD.BB~1w3Ы~zX}C1TO~G=MAtXA^#~2=bCÑPz6J-LF &H "j϶);->V'駟iӦo>, a_l0 ߿høq?~TvՋҦ1Czk^MQg}F>}*Œ%K7o#Gl7ۆBLL mڴ9+-? NǮ]&ҳg\9rQF; ?7T2ntv/UXDj׋ N zк'L|69O R ɒI1l{JI0bO~bY2[x6;ΌuB|_ȦIsui ٜXe\2  1(䂹 )g6;n==sN{V򡚗իî l߾m6{?NZZZ>72bĈHR'z Pj`cVÇoXsZb%pB233Z NҥKҥKy}гgO~G<-ZD.]p:q;Įά <۶qI IcW28~5}7CK1Ac҉k%J(eae^xӔ;0[:(ҴWL4I599X m*JM\|vLG`ڷ5Y)r9r*#v; _JdhϮ\JE˪~ H;+i w Hd )h A჏4?\Ԛ2X/mۖ+WeD޽{o6 Fn8cǎ*#hD~~>CnZVmڴiSDll,>(L0!;ws,_C8ʝx]&)m\<%3'aۿa.xnh{VA`:eVGE3(5 @i>$Y8|D/jOWb_ۃk*ypO RN+=,t?͖JM3 %o`}Nn z'g&ѸS:v;Ð!CVEE}0`>.Fo`),,dܹQmBYXXϢ( [nt8qejq4T< b"FбcGGm`6ꪫ[XlY8p Ǐgɒ% 6믿$ YXv-^[_/^L.]((([oěޑGktaCE ^JWӊ#"F-9… HA J1-GioCۉO.@ƔTIL|1 i;@gAb^Ss b1!a|w!z^$2;</?Jw_EAkau`0祛H阈'6*I-9L S.K0=BoB +Lɒ ЌJH8E$_jW'PB"$PB"E}Y8 Rj_EwvAp0\w;X#1Gt~zKԽG;m,ɏ]/ w!BTbAeБT5Q8B#\~Dړ.rmT^̕Ѝ XZ%j' Jѝ`iC- ˫g}FnjOR<#uTUĉ8HR'0yd233:ϬZխ[ҷo_lBAAzjp`޽ݛ˗3xHSgѷo_m6_S'غu+W^yeٺu+/W^j2m4瞪~)cƌSNU9+桷F>t|Ŭ?‚xKltlÊJQIeFNQ?$Š??+N29H<#( Ă[6Q"Dv]u~0!wu>=]5EQ،Xt.TcʼnqJ1(>u8XО@Ih |(?JͿlAdUzA<d> n ɑd4OjnUVѯ_?v{*} 1ӧOgavo(//gȑ!p:X,ضmZ"))oc7kh[k 3"kSCYYY| K]v̜96mD:z!##\GaܹL8\z=^ ''o{,,XMkO7< b \ʷ\dC"J̔OSjX If.# ҕf7E$rK8N '2^࿨ b˰aoU5s4' x YXcƁIpa @$I `;Cs _u`(P<%D)Ov +D̩/5`ƖwwXvbbb5kV-"ϧ^zlْÇ3sL&NhsիW3o޼L:ƍ:`NJұbGVpaŎ(J.Fx_!U+_!EbTƧ3A 'W  `2c$j_Cl:tx͛7ȭeYٿ?ƍ<}Æ {a˖-o X,޹ 2/Zٓ1c:B]=υk$ڠM#B$RF:!H W0vjdǻ+-Kz"V~>%J!b@ByY'j&{3SzD1Ă2 "`$t^86CWS3Sn{_({7ߡ1o3I|||駟Xpa}ͧhŊINNEvܒ%Kh׮Ncڵt,Y$%&&kkwv3ydFM͚5FU"+l|W8qӧ:|!..gyeҮ]@W >-[0a.]Z`W۷oM6ܹ p9JDtWF'!E›ȸ{gJwdߣ#t>9Hc0 " I\l8A _t/0nJsx95c֟If K)o_7T{eo$mj@!Nal~?ͫY,]%p󊋛cǂ=|;':Q$K%UnLO{˨(6s'=J.ưDFxcbdƔ/ wvѦ[0uډ bP %¡m'T=j8h0q-ؿ_ u)kKpU1mq/{RW\p cތM@zDd2.&rrJb%4&M9z30'kCBNOCZQ2YJ9!^m<׮GB$\D;Z[>=رmr4iPO8+WҩSBe2ydv;۷ot(Bff& W^ t(yny̞=py% &0vX>3z`$''3jԨqǏX-J,I9qDČΜ9Cڵٴi_6F,dffy}q,Zu:BuW믩P};v4jԈ?~`[LJ| . r2Tޙ^rz$RĖM `3r T=+1^Mꗹ)ړ6md}_9rt~|gϝ;Y|V^]u׮]ƍ]dddШQgut|g6ngݺu9z,&&&b6ogXb$&&/? Or̚5U/*ҥ QQQ,^8С JW (2m4|A_~]~z:>q IDATw 9T_ tt^tA%9jibM ): JdJl{c~9*PzDb:G_m{8w؉kwaoX>{t?~bުimG!&5)h>HJ>ڛ{"\[b{*=IمBaE+̟[p|nޛ<2D<K- JDJpBR@!A@<>ڨ{T>"s;iҤ }]vȑ#~7w\N8=ʕ+1L٫Q ^x*TѣJQdI0 ɼyfL7zw7|^z &ЩS'\.K.G\nݺwy"W:^zqС~kE C )+0XÇs y"^϶m(VvUV]Gy#G>7vL.ΧQJCb=%%PEwA/$gA Ƶ/qc 瑥h<gy48DN}FFEdO}L*9A:o6 ^}xxB^T!lG6\/߆ʃZ͆62I%+vDFDrĭ?N9k"&85o,"4 '{>ed(4l X1{_Sij.H\$(ȖϷs9r{wue `Y9r .$11/:SQq\tؑ~@Jb)-<+Wfʔ)1" zz,]4С9p # /dAJ_vCfHN'OIII4j(q yLmذ#GT$Kkݺuرc5dffҶm[&Np‚@DD+> ׯUoFLL +V^mVa6zߩ1@p%C)nj$<=Tq`Ht{`,OV G;NӡIƐ)T)Jd^ yAI L5]5A!:-t>vlbSl11r-<0.U ƂD 6n-\'hBvY]U9%tG@_f5!ͪA@j8B2P2mjoAʡy.JAhk%(Ȗg2S^=֭[G߾}9vX3/$&&'ORz6mʵkr-_b=zȑ#<_s# )ZWu9=˘@GdL#X$ܞ6,ncq(~Q9ې]6˚eG^|٦zƩ} 꼙`ŃIX4 6%#`|OlPI5ϾyÎ5g$bA845bd6-D ЙU4%CKƉ B`yߗ. BCNٳ'ǎbŊX~j}Q6ob5}t6mڄre7_r%֭cϞ=wjtҾ}{FQdZlذ L?3=?۸ *B8pM;vbxjP(7\0gdYgLw gϞMvڌ15kٔ?YfDFF~.\駟&tl[jᓕ@>H(Ɗ鰷)HZF@/,7X.q1U!jfFK+A@oyL%Qw?T>A5-9}{ Ck DR Mr(Y٩+{e@oH!Q"HvpOuZ &؝6$ɨ,(Q2TQ(%Do|eo dT;L5j`Ŋ<4m^SV-}] X8Ç߿?FDΝ1Lldf3#<<rHĸqx',Qܴi-PEw2/qF233IOOĉYP4e˖o߾̙3Dǎq:,Y;v(+Vɓ'K/A9tӦMc`Gիޢ D>}xh߾}A ((P ?8DDDd/v(ږS?Zr2TboedL9mO;zґ|9TNU 9It˭:F'(3쓟 r&DݜRv? ZYQ<%SWnGW_ᰂKtQ%ji+ل eKGӦMdɒ%С /^'䣏>Zj:?n22e SLFȑ#hFlNg(BVZOfff &L?$sMl!GLL ÇGeD17Ze>`$ҾE0T}6=W#jBA B7 I)ɪJNDܦfl2Rja~KղVxj4P$;ޠWlݖʊT7F JI!]Zv`; װD/* C)ZD@:xy\J9uf yI0 ߟ~7Lt҅e˖W&qqqvsɚ5k L29sf͚p  Э[7:wBe.r+&Pu2 $/_'$Ǩ'`cWxld4 ytJJ w2lV '(Ԩ]l 쏅'3ս:@)y[K’1,7.&9yW d2B+e4qe KP2aj2%U ų̉'p\|ٙ&MEu눉w|r੧b׮] b3ЧO@gdeeq= n=|f@Yս{wnC=䏘:Zjܹs8p sŽeR|yҰroX0`DQSNԮ]U_G?ɰ^Z{͖k„ 6PLsz o ꫯfx5peA@^)%%~k&oC<;7WG+ުTKN2] "`DˤW="^@')JFD($'o5b9j&J,h 'aR:X"9I6gwP3{ HDSYT>Z!dz$qhtz 1DtIu S 4?ӱcG?~G8V\IժUX"|Oiؽ{7VH3gҸq­]OskRpGJJ Ŋn")) `tpbŊqQ*UTd2 7cb>l I7!z|Y[6UNt AU*/GfY' # zVFNPUv|( AY#Ȏ7kfLkr굗]5Yh̞[53Ւ1{KW+'_%  GDOFhP*N=I҃F gx^$ŋ%C=D2d ܹsl۶1czΌ fϞ͠A۷oD3eƎp~ZWF۷kTO_*~!Wڵ]vE **{H7oEʕ=z4/^dڵ/e@HͦmG 1uݠ fB`cxwwGm264QVɂ)EXeCTv5eYD')Z-Ac1q-Jh@0=\&YDAzzmǹJQ讖GegbaVjZjJzSi3 |j.}(P;V<:D<6aA2l s:,<\Cرm̶m6lX\DU,˅*[fqĉ;jPпl6˖- t(y믿εkט;wnC{5&6m˗/ԩSO'a)SLC ڴiCjjj=,xbyoq-`1/1B*pZxwBil (u%׶)<&ǃKoDzn &t y9Y34iW>ȩD,6n Z<'Ֆ>1u}+kMib'zD,I#g] rW$ G *!!wa̘1 6{ʌst֍ѣGf}]4[ڂ]8p`?/^hd\~#W]vzEGn3`fΜСC_н{wn޼ɓy g;,$']#2,nݥ<޼6>:M{{, 0 k) ksZFԶ_&K@w m$dxn]lĂ`F/4fju x[}b6ٸq_X,ݻoѣGwTR|7lٲ1cШQ# ¼y ŹB _sEʕW^C3ݻ7<8Pw2?~RѠAj֬):BBB5JիWYh'O t(,ȲLbe"0c!l[g$/ ۧI'y0M400-KnO6Fk hʭT6]Ɩ ndōEpYH 2F^TAGKԬN3>3 ϮVz53tB@ ¥M%?Zl޲LIol5Zlh=Op55W_\ф+H8=!(2bZn}GJhf߾}+oŦMݻ7gw_AAeV^MժU_E$yذaj*'wʂUQ_k6YfHfMRN"#=wzDYP|l?&o3e9D%^8>z LŔ5wL%jm- Z-BL$.@%^jCɅiGr " :Lآnǘ*JZ+D5uinU(yKڴ%Gե^k48L&KM~x-si6~xxRBcaΰaØ8q"7odɒcĉڵk9}4&M1=;wfvɓlذσڶmK޽>|xC3N>_͐!Cʝ?+\ïgH&Mٳ9];Cj c̙oweﳱ~ 8uN__Fk 9Wi} U0HL$0;! 8*m'1{_=$fL- C0)í7ČfYW K6Q,5 ',G|Uv#]B͕q[qLmUe܃%F^}WlD&2U\5̅#55NDž |2e˖sRpɿ,ɲԩS4h>,k׮-jǎԮ]Ca6 C6m^zC>o]J "P['k2Fo 2>(k?t8~C-سgݺuc۶m:$3g!~Sgf1-s U66 fl' ]ZCpWx)chրy9z5UuMzr6=Jg!(?fzD^h'0] &م`$jCS2 p $ɐcpwq >yrur[DT+Ts0/3 }u1 BK;w{߿~/X$I?ƍf?vygYx13f_,&Ihݺ5| f IDAT5 t8~ņ x t(y,׏޽{F\~'WӧO'##i{UVQ|@wTPUR$1$T!, kd|z!UgukJ+ ChhT v L |#o/Hi5M[ %t"V(J$2q9^RXijJ-iӵz/bz%N-5koXy 7.ϝZ"Bd#z3J<*UjΝTAҥKO?t3ٹsgny\@rM4e˖?z̜9^@7+W˗~zVk.3PYR,@жQ5B&֖/*9PIַI3lQ!# b;0%5ヽe.&eQ`8u2IuV M&LAȲNй5'+}>V*H MH]}THJ4HVΨ,HV:S*TeYF$>CVZE׮]9Vll,,3k,\.}'N`ӦMf,sV8hΜ9CTTTC"##ѣGѲOsk7o*U**L&S,3o<ʗ/PrpK銅5KS h5BnٛUM^eW 6 RЈUrl!~&v9Jrjά'Dm]K=.vۅ.Tai`=d`! Ŕ$V:]w,|eOȑE&Gҥ izcS]=/ R3VjL7sLtp* wBEtBv2e Ǐ/pm \.\.Ѱa=fno͋/>W\K.,[d{nɕ+W9sf1sh5 mݺ5};w,FK/_!k֬a:t_$DQS5?4b!k `t ඁ&2d-l (%U$f4$%2 fhQvpD{w_4(d4ptS@e,.BO90](㒍da%1 .BLL V\-(r ,JT͗_FJ+,A|&ħxC}PԼN+TΈ*=vYhW@{JĪUxx> &qsCPA͚5PBC{:tPrF)A`ҥ޽ ={6:t ###С4nܘ]vc_<`*DҔd7! 4ݫ ND`IeԒ+UVO'uq0n C`{p! 29){$l)z1M&亇$ҫ0S<$`@BD3riM Ew|$RJPl5&Y-f -fKn(c3Xce Cs'dY&55Ǐ3tPDŽ СCS$֬YCݺua̙lْŋcJ.͂ ؾ}{pطo͛7ٳE܊D.^ˋON_YfCT?m(QNǴin;v3{lԩj%$$&Mo߾?6m+VbPfM}^?.CwɓxСC4;@ӦMٶmZ+|,sHJ~AO2aB:Fɣom4rebtJ<.(UzufLJ:uz.e@4ED!r!ÐYT;ܚdߘl鼓N:Q~}.\@˖-y}(S '99/˗x ,;W^+ށ*>3vJrrrC_N^o6HHH`…nz pE'(ҳgO^}U͛Ynzn;l0x Fɖ-[ٳ'?|YQ`&:͛ӳgB:-"""|2m۶/,C Ю];^z%mݻ w%33kgE%7e(I2р0Md 3A/JJsd[Ţk{_x5<p\AHIIaر3~ew~((!,ˬ__~#GЮ];C-4jԈFKFFÇ'<<IR2x}:˗/ѣX,ßƍ2gB%ΝKPlD5kxfi_tjYK Y/epu8mR]MZ,hX*nն5g-6"L ABBFXEE `z΍W(٪x he-."| m?D7>1Jxmeު%DVLZ*Thb֬YҠARHKKcɒ%7Yٻwo+Yټy3͚5K.X,oΝ;XiW5jԸ2Y߿?'NW+*UPF@oرsĉ@7Ssu'tqqqԮ]I&hv,]4Ǐ'[:u< ~aAAvXpaC)L&<+)9+)3*ٕgd n `S/*֐].fEV sZ2Pi7H-=sxoY ^v+Ӑ΂xV`H% (Bx %vk^G%*, U}Z'^Hst:C j?a5j(@ɎT^#]$27n ))zdƎɓ'1Lwlzʕ\s۶m<tN֭[hӦM^ǤI֭ݺu7sqco}so7((T(V(-[0w܂<]App0w_,Խ NС/ăYIJM")50UوSo¡nAt\)Ш>(ժUcС4i҄տ#-- I8q"Z"<<[tK.ѷo_ʖ-ˊ+r<̂ h׮ׯ9[}x<6n޽{y衇n0hݺ5 6,իST=Nt:>T̐BN-%1m-ӻRIJnd%Y+)֯iH 95UQUfS@O4jWCP JWWëkiPOܝlmO_|o[ne߾}HӦMygIHH1VE?'|СCiذ!-Zȶ*e N>MRصk111{@VroRF vMڵy7qݬ_>}PdI }ڴiCVV6ltѯ?xG˖-iӦ fۼ*dYfĉ\|+VMq@믿2nܸ@o/|‹#ly2FFF쭭~a._mv*33˕=W Q-AXbEsmPbBԩùs|Wo˲LJz*CSI!$&G Mh{24*VuE%%RxPJ>]Y"{fQg9jM@Y%2t2tO9N fRV*1p&D^Gv,jz ejxDUD+W;P˼=^d6W4k֌Ç3|bcc/7n:t~LAVZ4jԈSNѮ];uFVVX3fPf}:#F@/cN' 5O͛|GlݺOK.ѧO:t@tt4GaلC1x`y=ѣG߿?{m۶?gy'|fƏO:uhyxT?w-=$aEYDĊZi)Wb]QQQZֺԶjuA [UpD!{&ǽߙ dHyd=wrg9yϰa<r̷z˗tvc„ 7ӡ|oٓL=vUU9Yz5wN>.y;찤sA$Ν< @38;\h̕y睇孷j%[ o&_~9#F{Ep7r)//ZΚy/Y8^R%+x?s< x;fN|g )cL&3me.<(rc)icn'/ BS8Hû].=%r3 z辤2a+Pd$`0Ȑ!C3g;w] 3f Pu?OXŨQ)ƒ~!B4`J:uP'xuf,Xp8¾n:o7dر̚5~iV\ɼy0`'Of֬Y(±oSO=ŝwyP%{? 9cXr%G}wZhڵaһvMZ`YgEMM >$lJ6g了s5*6RO P7#{x]΂[v 7X)}({)2SbN;9Y ␇8'Jz"&g zIa*ѡ!~bbF*#>x9=IdZziOqS؇п*пsW=A=tYbز87,zm?#zf-/+Vp׳rJj***x饗X~=})mUU~;O<Я_? @?{իyFUU$K2%s73n8F  qG_:فy O?N#QYl+Vhjƍ]s9{ߚ]Gk^ضm%oٲ%Xn3f`ٲeΐ!C[xapw={ЫW/ M=Ϻyj ͛7ǙBm P(i8eʔLbؾ};,c6f đP1@@$@|IuM6\[oTs(! dU4 2$:e.$T&q7Bk%l!&y6uE"#&2ZK%'J|>U"3%e8dEp/סw H0c4|Z0eҚI2Ynvѭϰf׮] 4n]2ayg9ꨣxꩧoKNN~; u{]Yhݻwo{sgFĿo={6eeeXٳf yGٲe }Z ޏ=V#3VPYYɮ]EDvv6W\q'tRCiQt҅ݱ ?IuN>"h$Hq<ԓK9]fA0,dxdE!9A˧̂{N' a. VlՏ(RJ{,%=eVZ_|A<;`͚5,_# ba;z|XB!.m̘1իW/bu\DZMs0}t,b۶mٳ5n\s5,Z{IE6't]x:<3ӸoB,I@@DAr}Й> =* %L ?NO%JhDCBB޻2ZBNj㤏sK]$A1A14V';}frp\WYcum> f:^[+6sms!åq…wQWW# 1k,{=֮]/~ 8|IfϞΐ!C8餓0M/<9FN^`Dy IDAT̜9>{~]z_ Lb>۶25kO>$۷ooO>˖-㗿eFzX<ʊz^1 7Ug!c!cÇ?)x߯éS{SA hHH6~T0ٴQe!Oa AO'͊*i?4PPIt(y*!Ou8D. ISߩ{ a)".ԇh Jf\sNKOv H*oyj?bYsEUU~_ y%H.?D:1uTˀɓq?I&1h zQ.֮]w#_?8 -0u(U2d,ez<8p7,܁Laʔ)a3>`С,^XX>K3fpme:fF+ lgh8Z˗cǎv%߿? .dԨQضWeqT]M`(*&*㡎\ɡlh!Uxǖ#SC44xd˾ qRa='=ϹZ..u1'${$w=Btb: HEL„~Khi %] ~{3; ټy3~8seٲeY xv=1bSL /t8͌o"+M61p@^}U~e*faFccox*Fa82*,$l7e#{Mg EG.F ze %a & :* ^{5ƎҥKcРAցmWU!"m3|vӬeEƼ$I?){/^hvر|O>$ӡ| {Y_T>v2Ge6XnKH ׋5q==>Gy*?@'[P1?t4t,dK\2Ѩv!*\+ -aXB%PT~ /8N6J~zD<[AX8 8mᷥaad̶x4b)`IM5Qi7!}p=K{\hNKr@ion++ȥҁV֭[O~w?Ygg}Z {/+V`֬YƾfL8?ӡ:eI_SNfSVVF޽3mSZͩSHi(oOhl,( w^[z,Qr9lS>8.N}j@ŏ8BwSx'יI(cv_QR@* -A1d݉%sLc &a2aIll`2Xc Eq3“>*vuS.L/ И 6+n /-L$go(*=d=W_}~Ӂm-D%t %j#<<؅5x ;h#[6)a$tMƖ$SU\ch*q Tt9 ,YR$d 3 R 8|2RBe@4gtwa*<=P"ouPQQq@weuV 7nמ2d ,`̘1,_aÆe G4eѢE̛7˲}6̚5w}:LD%W.2>vsqԖe}³oB1]Mw;Gq;y*'N'd,ꗮSsqnIQJˀ)_/ψ#[$a* %#ԍAFu5h" =W7 a!8-[֪kEgϑ OvM?5_2 <T/Zc8|Cd$bl$t4xH7g=/KfdDMR4 J' =f'$(~"jKBe-eҔЊ V$&P̧6;'BZo9AK@ v19֌T^Ra'Re@J)%2]b W›~A :u*SNNvsN^|E֭[_aXd '|2-j[\z|gX-_EQxcp W& qEtq׮]9ܹs6kuY*qux$\ a%I>ĺQ7Z9#"8^ȕ^$d{Ҹxew?QDᣆbHv'ZȄȦ!JBh~!EA_Nj}EXN`4i1gxC2to߰-72f )++;2߈#Xx1F?n([p!Cp}5ї=aG̾^XxYP4Mʨim#b ̙ýbn^ܴ-vea6^&w'UTěX9ܱ9dM8 ζNQ:]4a_V#GGqo"m9v7'׿L ( (yٹs'x2"۶m|Aڶk>b?$x _$a*lG|EY3c|LLCl$<>ʼnmۋYiԐO 䰛Rvхc"=+t-"4t<Г[.Tp2v2< !~hl qIX'@c#G*6ʋS.TQR)J7,R#uĻO$t̽a2྘4i&Mjcu` /0`Yhgy晬YlY@ h dԜCWFAw>#El= _Ķm&O̘1cxᇿq"( 5| Ic$3J1Up$q TWnj%:э;2707;-*i6M)[:0P@@VOA"R&%^7 G>xH%z1BR0)6IZ\(c9*#'n"Y}x1 x CLT]{}XL7I!ƣ؎{8 cU#$^LcU_z!^ߟU=7po_~%3glcy䑼L0kү_f=~s!1k,n&~d:fEmm-?8W]u`ihhg? ,h5V SNbƌ(wޙp pBuƍC17,ܽg/A XjpOrLAzŏ$326:*/Kι'3`uw錔9Y&AX䶆KpU Q:dl$_ O7qʚ{e /qEG7G 6~"b*z#j;e#K6>$d O-An$,#J-KhD6 h'P-Y\Q(>l/@u$&M(tTb PdtECx&+Y^'@xh q3j-7xMӸ۸K[,[3n8֮]K=x8qb}~z}Y?vgQ|r|A&Objyl۶]R^^"?:2W\tԩսZ={dʕJo9!;|$.^Tۄؘnj_풗xRgdnɖ#Ҩ,1 ' B0@Cu߄62 Jmõ]P09)D7Wа'9y˱z x)l+MBHHy*"6>3l:Jld!`)2X $ dF5,8q4kFR0dJ{w˫ ;D]0@6ai?#DYTI6ETSC{(% (~N$q6EAJe! :_t`$`F)˅B -izYYJ(mx){VoS'gd]o!鲔MSul"r_]<7:zu]7Aj^XN8c9R_/mٳ's+d5 BD"-ZD~~~hIr-NYY<7tSƉ_|{nN綌\M4SN9BLlwe‘#G~c檼b+/˜HviCQKAxDD% $`"yU=^$KNI}:]tcǞ(gVK-G{e$"hfT{2jٍXʒMdY,M7ą^[o$yPTT{klfРAL2C=qF"66l/nwpГ++WcC4Mڵn`us6yBnN:Q(*t='ŏO%Nm_F`1mk&j4GGsgiIvSb"OB.Gw;'ft~ I^0Ί'Oֻv 6ӑgĂ94˞b=,ʧ(9٭R)QGqG RNvӅ R1|FP&RvbloBG؄AꋂTQYvPNϽ?UU߄3~k..y衇9s&$MիcSSS ';e90 nF,YҢ"mfVuYPꫯk>cmMl&xr\JL1{Qr'u/m8S4dBDMZ1hn!V\u!1Ɩ!c㪳h$OZzT9DĐ]Mrz;s gtJ[>0@f'HbRc &zN8 & *),M" R1ɥR:5٨WНTS"^絎s kkաmbtMC 66{bhoL _M/8!)͛ XѣGg:B^^seL2E:UUo߾tُ֭}04MN>d&LUW]բkɲ$o߸mm\)–-[8xJG˲m[Vvױ2luG@kdn8ÏvF {HEFi$ PIuԒG,Q52^,4 ߥisڧFL\xl@C n8ܗ`r$&!8{Z xrh4-OW-U6ilHlxq J5Rgr{15 4(]B# Q"H#Ut" ֠sՓ?޾kd|J<$1;QC"9'D6亦$*s2QPKx}1vyJis(ǟx'}zѻ>|N3A|92e ^{-\rI ywy6mZ8Ξ={ZTi3{lnVx<@[@9r$~;֭c޼y²,+M=G"Lt<즔"0777VR'@$Ys]؝r`1Rf$ Tf=owxx'>4&L*yQG.:a&Y)qe SCSÛ.Bg%ds 䳈ԑ˱|a1%go 1 ƝOdqyc (9 (~L:QIuX(Ji$1D' !㏚`0(PjT4olDCԃRsg:̟?K.BTUG#ӡ5:Mʕ+ /a?(Š+xZ\ud m|s746  xa`pK 47 F/U?ldwEP'Tz6D[܈^ QU%z,|j $g1l6)\@3%>յU X?A۹'2]QG~B@<'g-h#\kR~|.kv3xI4Hy$D:YB1Q(?Q j$ȲQ"6RL,% ˣ`mAy- tx>7|k;^t)x]y晜y晭Ql_hs#ssT65S9}V%Np**溨 ҒpLdb% !6_n8CsTfR-dbnKl$&]w.į$y/A0H!L^~(TA'璧TJt+Ie/i웱ڷPr$p7ї (lBI. :8 h~fc#%VÞ02,_PE,<$(RvS@mR b' *3P6A, ,4jjS?OIqX<;6Ñdrذa 6ٳg3zV7n{=VZŌ3{O>O?'x]wYgȑ#3gNQl_hs G}Çsie:T l ܁A'vI.> R o2S$ ñTO?H_nQ6 숲MK팮E# ^b2M dp]ԝp]$ɓ}ɖ간˕ V⧎J%z*ɧ\X`j($#-)=Y%.Zׇ9?KRQ;lNS$YFQv-n5bR,4\Jw+ L6%KЯ_?dY Vj*>+opBL^mJFw$ٳ'[nEe6l@[=۶܎aY{^h$-CnHҖ(QIa&RN"BvO Zk3K%?JwVߵ%xd+Q i'F LxГo_'c!A /Od̴87!L71ɧXnc!zr@G%D=邎J9I]윇Kh;19t v3vuQG6;8tjt4:˻(UcL 6KՔkًClK.r) 2H$3f4M^z%ʸ㶻w_nnhkޣ W m\dee1e~V,Pe{ܝ@$@r}N! 1Kr&:$ \b"CÞ9i0RMvI}r216Pa (Iq≠DBv;$!z3kȘx݃Q)n|v2g%2OZ22M'R)$I'[ 22:6:9rMM#}={g,dJĎs!=^#1c ,F'--r B̡ n0*.r{2f$TL8FM4G-AJ%UD<&::klk}އ`T֒?xwT`=v=fF"L9 1:p ]JRjut+Wصk3f`<..曱mzop(?3}tƏO^^^#myu]~-hp~߁G1у<8.\"kضm۬۶=X\:#IB<.|~bdruMV|;,ҭ ?\1 I&#9mPOåjj4TSKvӍhtf7 # 5!u<7C^PC/PH[*ɧ{~c騯 5knLV:DOV'Mi@T@B b۸ . ¶==FK\2#<̜9k:|;t 3<|i4?%\ ri@C¤f#A4tIەc5Mf!g6q @cx DpOퟏ:!у.>M洇@,TG%TЙ]RLĩ% SK> 7^Q0;"L9]8 "i W}KB/'E RLl8]tr&M/;Ƭ a-ҕHB~B6;j)Ct-/N:kݻwpB9$I"777! ̜9۶{hllq72zvQVVƊ+2R,SҧOV_-6}GCC7xcm橯[fm4Ũ;IAD%<)\0QhtE$=DmQG=,ωNJJ ,"h?yy?Xb[+BJ5MfC?1>l+Qל Hc;0=REqɒ\ROd00>iLAddRx;/p}76"kjMzj_2[2jbz,g$vT[Sz0 W.AQv7nƍt͂F֬YCcc#C g;L2wuPE>M'섐 Q,H3ZSJm0 x 'vY⇿b{Q~0Z EM* ǃ yr58 %c"h(qQC;)dǃKA.FA#I@hv&T#6'|ɩD a5BCJK%XYF˽LX̸rq>-oCmUձqFJiioL%W_}5W_}u M4oC !--s뭷Ҁ~=|̘1~;K:䨭>;l.(//g„ >:?C#-(qUWqWl2 СC^_gyZ +aAA 6ʤb+)m*r`ANV)n.ө(,Dq‰ MzT64\{m+| fD%*]ai a6E$MT*FqT54t`tQQJ+jT!>іIj,)VvrQ߲1uy/ٱcw}~#.J~ΝKvv6&_2a.E9j۝5kx׸kv7۷ӣG^{55?EQ2eJR¡QC@o >s=Skk*Pw|eE^3!QcGń ٌ!4 n>WI B"#7 ?ơx8 !iYǐƦzCz<$J^Dr8!(זhߏ|AkٕƁgq_5A ;w橧_~n7Gx_|y衇{9xX~=sd (++cĉ4Au.y晰^Mq+9eg +83j)()iy59 KhIۃDYwzRR@Ea([].niD׶P>eɟ|5d$r)yT~Z(V*ŋ#dI$ $A>9qhJ<$J+&x\|HLzkX8$Vb ݷ"h`Gń# &322srrx'##w}k? EQ.~גzDlܸu1x`zA߾}4i-[$0bFpԛV&6mb„ ̜9kdu{EUU*N8#/MuV%C\ݛS?X,d"ƨaxbLTR9w Z#06aK˂=)=^Ə=cC=*Y H Y?HkX4DQarPH3E0"Za#䚯q& IDAT܆[ր۰C+ڰlePN9lp(W P+!A"X64]D' G1LA 5F – KzsĖ^b$1龯GhOaRYOk5Z sW~znJ]]M53g\sa=nYYf{2zhz-fϞ /Axh۶-.w} UU ÔzmM&'pD#ż/x饗;v6mbҤI?nݺ%e )l63rH|Iϲm9rU*8*0$&MAB䟠:yDUHdX|E==.~;13Zrv*(1qlgfa߱ԐE)- $#*r#Cw@,b;YTDu %JE-N^m)! a%[=4" Jń~. AْMZTH{ ոnF+1nG>&5xݰK݂G?tj%//ç~yGΝhٲ%:>(^x!ӦM# oRYYyPײ/.\… #6m`s̜9,rrr|3[( {l])礓N"//殻\|#vJ-x~Rmhhh=zޤ_0, g}6rY80w\ E]DZZZR>?8))^uJ4%u&mXg=Oߓ{NIh' $IuB`2(2ωW-3&AJ t$I"n\vF9 ͖.Ӏhi(B<ԂTU%Xu1CI(6zI{#KW~-Z"*-ml h~ҤIcդa60`VO?**?2j(F9kd7dʔ),Yj̲eɡ}[Bl6~;noZ:tƍQΝ;R\\aڴix|7 |\s5gq7rUWqw:4hw& IJǘ5kw}7| /DŽ Ü}\r%/{aF-Dqi'V"E+{fTtv!-UD`TBD`%@><²A.!њB9q`6Z~ sOJ|c.7-famZwٳ/_EX,.b oϱX,d͚5 <Çӯ_?xwٳ{ga̙0zh<]ww ॗ^b8<h#F g6 -)4?any޽{ؿfcyTQ= ;;+Wr&m> >/i)~(|7tI\ٍW}.GyxQ4B8L&K\LŝHg@bEl#*ҫ4ux⦆,ac`2M^,}d{'?g˫.,NA섄+|TQM6^ {7 (hqPfn|c% ^%F|a'$thw+N -kF."$,)(Yfz[j#X% q3xe/(ZҤUZWHrx~:cLQv;٬XN:( VwޔRZZJϞ=ٲe vQSS>)4nvz-6oތ8h ٓÇsmlwy\ې\yl۶e˖5gy&_~e8bMK+ z̻wՐDA$(Wq gh J?.e*³J> h9 SQAB l;ʄF!LAA4cNjT1u|l&U(hıDì;PE6ƾޅ[rhJoK KGI.k)~LFh9 fLQH3_=011%)uWR.+Ah o- v-Ue]+ٱQ./d3Q^>m4MƻKQQ$~iZ,#ׯg޽L0K.+9ihhvE 2e ht/8ĸ 1bt8#\5 KY 1.ZAќ=o84w9iF<@ ='-aʠʔNuōAfcM'5K"y+f!VEmg1 "HY)95'k&4 _.U<.^9i{f!p={1} $H/\NY0{EbBC= `դoV>1B(Sz-Jh*H3YCDRꝴU\95✈Q> ۷o믿O?$ǸhhhG31cL>{%KZd /t˖뮻.ɫIp W C\YřG(K$V6q5H%C锷; .֬t̆+^cj j f^a<@:6G-\D MQpccTLx'L!fLBHE">٢`N~.t~4'x:0mڴÒ v3f YjgAMMM Vz̙3'E~'hMPUUU^OAŘf 7 :)a)"FȞPDbvCfKKVɡ,jɤ4|FбleSæv)8=V[-,Žђo4ͨnɠVU#Y5 {&SF\0#㿾tk\HߊtQM>VU:B!$T`1AQJ 6щRZD~25*QvB8⦁41])Ezdhެb,jɡV{p@7@wrzQXƎرc!B!|r֮]!##{̘1x<w /pXs())3jrw&u-|D"of[`A'>3*n&^ $31 5j=iF=Gܭ&ElT_c?踉>=8&ZzzUJ'S1%:2 ѻޮɊZ}y/iYCF }K;;!Y OAF1*ȓGɓV!ƄɤL}5}˩#퉘솵D 3!송Kh"X9=]LzILA r8)EV$\cI|0 f&<^B 555Ջ{z+)#{\r%IEQ233L YYYA(Vu/HF\is?䁝2(~wS3P6" "m d{ʅlj%@! nGL۩1a A\bJA'1NyԐELDĸi04EQCrgoydB ){i6:{Ȧ 7 ~VNOZl֝~^`'L3\LҋV9!fn3&P<?.15JԍRu~=ȡ|vц )'% %|=' (El1InfN ~7of^F +W$33/N:)^n7|3&bfΜyX*z+uuu̙3z… 9S}E ͢rx{DXUTAfU#1ml) fxܣ*1EYNĂa~8a9rp@859vAdC:גA>23rԠ.T9kHvK~ >1)'Ɇ PC&Qa d \NA2# Q&g,H65E.LGSs:&ƽ R.bB:2D* i;vBпP2Y3szQ;k(čEepW#CJӁ6+WOfܹ<^xi\8bDϱ'tv+ҐTꞤ-Йd[mCu }E٥J&TA"/,E5购%Wf#;## |AAĆ 5k=KnbNz_u:uĒ%Kshrjilذ,*C&_(_\ bJ pQf<d⁽FdL Y3?Qʺhx=9e!+a24DхUdE5^8 J id}^ J~^TSK&4Ox%͆ 1|S>.|(A"» Ӻ;!lg_O$%U _RM˫BQⓗ^,> hYY-&&#"QzbD$ DæcLda~ zJ7.+I@40k֬weܸq7I2uT –-[LkF… X,M^c4W\4\}wtSi*Kυְ4t fTGeL4L ݘfhT1^KpYģE(^O 9d_rήm/0aACCJ+W&2F-Tt,}{S]ŔQ'`Ͱ1gE'9 4J>~Ӆ!ůItsb!B5ԒIቹԒg>v6: ;pX!hXPT↢3 h`5l2BDVz.n\7U(++KR8;v,%%% 8ه'_s5lٲnݺsW]={'`66.\'ܤ+Wr饗6KX GՔ)S7o}9 X,FC@FŒ,n^F&FKA"q)4lĵHSMеYQQJA[,&TB'FQ6 M2MP0IvⓇ*eҡ {сb(3u393X['&TIAǍA-DG)pA>QKD[[+h0J@/VYdm 0 }[|&޷h#J!zܘ5Zo6!W3̚JB,-.$#=5 [1yd/!߀ P\\L߾}GQfO$:v믿Ynm>,+V`ٲeͶzaa\Mz]AA `Շhe)J4\UTT0h ^xFT5c~QҫSa@dZAwKuI#礀7tҌOa'G{Q&MT]bsYRuYLTbd[xy+iwFpj^Y=f4< r@ ꌩEi r lF vBx# N#!ڜNTt#T.1N|Fn;;?ZL^0uaG^}T%#sqL5/# 7tpd?QF5zSqWn:?x{= W]]ҥKygi7n:_#p'rgեpФOe~~>| _=UUU?z^44MM:u XAC-oƠŌalH)I֤(ȱv ҧI:[*9lbsAQqQD+FP4ؔƚeK*n7SExa'*rJ,MSA>1,dWN*sRzuυ+$aA>8F5QM6d4=PVI0 Y>lw) 6RRa_Ҕ4Y)(f|呆={6Lcڵqx^+d/7{/UV} >`0xD}Gfzu@GQ-ZW¡DuO5e0~=bT4hh ZYK,lNm&19Xͳ IDATp#y!_B~]Vg]' /锓jٌ-aưDcGxni$Ҁ6Bؐ.a1OJqbƵ.&ABEEPҘ'e9KMLY~CU4Q-hEt']| S8@u]^B H$¨Q ;5jQү_?/^L^X`~Hh" OQQYoʕ+1cO?MUVVQ& ߵ,*fu 9[cE^D'}ZOH !;E(ĨX #U'F E6-đ3Nа4 \hW `j1Ǽ=w{?䡆t(p~Vgv`[hszfL4;ǎbL6+Yb5즐cB L?11Lelg z4|xt+i馁hn)70O&(۟S~agET} "~99qK!lە9)bu`XXEC SdHE"Zhz~,X3]g)Ȏv4E7 'O-ŨaB%,LFӅ4|6!l8 O66obU-MYJA }h.9~ Mk%~3k,kN;d/)i8sXl't17o9s㏹袋ʦ;/>{?CϧR"4\p#&m~F ҶD8M#<DЈț$ؤX 4\ZiPǿ8 `&1S#SEqg+b#Al9;2&&4@VG%A6M7J%&hE R_] n0/# 3ͨDbMû 9;BCÁ}QzR^[ur6R_48}ЇAx', HaDPoԑa4DK8-݄JPM NF+RZR[]]Ud,|ιvI$ᾏt:9(--M 63f̘%ne֯_Onnnlѽ{w&Nɓ={Ϧiƍu֌?~ۯ^{)ruI䪌2pb&F5YYx,v="y]2H 6ʒtSt Ko:6pRIb@](h8b'dhŢBoͧ(peFOV"3&#euMKqa"F%(hdSE؅v,zH(`_m"F#Hmz2P')DȢL0RM~0vvӚZ2 ҖiLEESMTB#m…#&m4JETLxƠ$sN9'mT}5.mbZL#UHf'NE4x蹊8hG$d3P54TfILa!3ePFG&T-;ȣAcڰԒR.F b̮;g&~@Qf3~;0LoOn ,L6 ٌd"ѺukyX|9w}7>#Gdǎ^! 2n8zjy:ѤʕdШ`9lCTojtFyi 7\CR,*9&&+SF>~LL6ta!JTLY\lB&@%ʠ4l _[hA)!lqz/ QznM㲴md=(t8ϵ^˩'|W_}Ń>b:D8E B!VZ۷//Ru`Ϟ=1~#F0tPN?txW>|xr`Ν̙3+**X,,[ø7|7btySz"nlmpSHPqb˲bc6Gf|[-7rl'$&+sHNJ[3}'em`) /& 8h3CXROhAvRЮI(]X^ 㦁TzTV֧ p`턈`\RկaudPN>AAZ XLjȧЍqPBa#ޛ=\u-sr8q"9k֬b+0`. .wMJ.B!l6}ᤓNW_eǎ${iG4Mcƌ\~|w?r^/**W_eܸq׏-[&g]4icƌٯQ(///LMh4J %'RckK[wR9w +6k$T$)j}ɕ2v _6%)G"hf Z;Q$d<2ʼn?2cS1 EQQrCW^UԐh_tݵ}PU֭[}$/Ce͚5̘1N:(JX5eeeyX֟>~aZ>}:7x];vs}v@'xIBLo|YհF{j 7~ڝ.Hh DH:7n J4ʌaMi.jF^UaKVR^r-ctrnLH<$Wb2}q:EMD,V"FVB gDiaկГǖAtt 6²M5\TS20[s N;[Zs]^EQhѢ;v ##|l۶ χ9h=[n^QM_Bqq1Æ cȑX#99 p}1n8֭[GAA/n߲eKOĉ2dHl/ZzW^y?d̘1,]wm{BTR8ƆTD ij ?z9K nѨ5&}2%1w/(%GsX$H#_S3$CyIJ4ۄOc﴿I;^hLga!au +XrZP"L:-};5Ud6S $.Ѐ𽒤WV漤SC6^EM0 հʠaX&B%=P /9*999X,~a~m^/EEE̚5X,iI ?رc;vlqb͚5|hFFFNl&M(++7dŊ%V7x#k׮% (GNkmO>dnfLI+IĨ%3WS5Y8Gl1)*J4λg=tJVrv2OAtqhWZU,UBC- sQ5sR1aUbt͙FIŒMϘhqFDقb!z77)SpWbp`|w,[gAK4ia^a D*Wi"No/ 7QHK/ɝح'/|法hNV4qwqh"4`IIT,p7H2d/kIK㩏o-&TdqTN UT@'K@:꺩,$&4aQQ!aFy5i lɤhj(I#(n+kE=X,㡎  $w}MNjn^ssv8x㍴nݚnݺ1dl6]tgNʚDl޼͛7'{GJJJ5k3w\zO6m# ٺu+eeeM&Vr ~-eee<y*^FHMvva\] M"W%ka.QLNYb\ %dܧnyD]T,İR!\HJ<^G:f!/C`Rʰ^^f?+:8쪢v^A]{9faMmى(.|j!'|hn<$^FzT+:2bBJ$EÌz6inBիw}7`"L5Oӓf UU7o{?fܸqx^/^< lذO<-[d@'|‹/;Hl&NH,c?̓>իJIwfcJ^|OxE5G$;ϑ}y66 (\FYIg2R$c ¸@KS)(7 ´ߴ'aT$ۡHt׏_1Bڂڳ|u |pUV,Č,F+U?j4|{)Qi+r,8/ȧ\(-b*6B0B"w=,-7Ovp:Et2uTK @Q0aSNM%>>d/a֭|~ ou]ǎ;pݸ\d/Gmm-tuHqX|96m:mիW/ґH%Kvú'ADLh "٣=M#i^U ,7Kw镡I]1$I?xKS2iOwkW!#V ץd|H$5OZY'BN;vg"mfWk6jne!4fYXP+-ykˮ!q!-裤M)?(Ǣb '?R%=1[ 7l;,¶EGsp>}ӧ{EQ:t(O>$]`3SO=7;|>|W\q?8 ,`ڵYT bܹ :ٳ[~u)4ѣGӵkWn喟fɒ%3gΜfQO!9hJ'y3՘D?+Pn'DNlK·9#ݨĝTQoUT'UВPYG&5V[^]8{q:@J'FTo%ʵIH8l% œcg#EsewθLEӒ^١%`sRv:JKO giUًVN_~:vKm7"8& F9xPPi:d}b/I ֯_O4%''{+V+oeee^B1g233x<\s5k׎x4E}^QUUݻ7&L8vz뭬XŋswcswW_glU_gڵ 0w{GN؄ù N}\)f꒓z竬:a-hЏeBJ1Loi7Tg_+e# 0svX#,VFJ~AZ)7CP]CnyM/LcdI-;]RKBH%lIlIBJde/|`=?2wJ22fp˸s><nvx([nMJضmzرc^n;|p.\X̕=RSS7nNbҥ5Q5: 9pC FG* ?ѣG/p&LpK/0rHN>ͰaØ:u?/YI&(\) IDATZ8Q:6:s{R),~WbYB:d.> 悡Kl RRIDN&;ӗJ50u=Npa iiĊC(b"R]?^!e;צRNdu?jH߈٩QL91G:BPxRa\>!=ߟQ\" 3OИJ/g f̘ŋ4iуT~7֬YCJA<++ ^x|||>}:ǏҥKӇ}ӣL4mI9X`֭k׮iӦȯWz9BA/2f֮]KVoW5_+";v`ĈtKn"M]SP0,5fI*t_},@#򱚈!!D >U%N|=4]kLrn%$SL=vU$%u0U.O㵣КISНe%]ۀ=vٴԠlg2Tȡ'zl@'kx()'S ^ljÈ9$ۅ+OpT"$Ug >p`"p4G~T w+sEJ;v, ΦO>|g4k֌/'5]-ngΝԭ[͛7K/B:u0L WeN' ,`Ϟ=:tXʗ/Ve˖hтG}_ O?ԩS;vl.(If͚L4PǛffΜɌ3(U| {.A_i׮-AȕMl)]Ҥ,vFTI2ғWUH<ۄ\;MfTFXpcTέ8gv@nY䞺7F<*. Tj=M"jU`щNթ1'Os>unI/SPTz,9lI%ZQ/A2pY{ pظsrN-:cцj=QjUV Ho^Ν;Yn.&L 33 r VZ)n`Æ \I!" 駟O.]С_5[f… /Pܥ$''+PF x jԨFٳyӵv;:/p8\-"111\˗Os]ѣGĘ1c8q"=iӆ{zPfI`:P$y;Mv<@0㋈ 0`WRɄ_rʄǸ宑 .ꆛ*=s \IB~.4Z2 E-B|BeԨ9VՈ3 ț4{q!xZU1Z5PS5|'Zߏ\zd6B*+@*hE,.UkUT\̳a>~cnҥzܹ3 PZ5p8}*U o˗r<#|G{ԪU#FPB񛺎m۶tؑӧ??NXXW^%::pΝ^WGx~!kr Fɯ?ζmۨRʿ^7>> h" PB3(D d=`* nIJ6&q(RonjW`_] N*db‚N6țZ\jNJI 3摗j&4hᔅ%I67=EU)JD J`uLD)cO;r'䇭*Pi*;ESԛpGzxjl߾>}p OwU%۶mٳY?BnرcYjoߞ={Pvm`|q~>3:vHLL5Ώ;~ܳgOfΜY۽{"=z]vжm[z)222ضm{eh4=88;Ҹqcڴiùsx'[. l޼7JHH ""uѧOU/PDT"3.+$"`D.jWI)vxܲH[fFlc^euN)Kb{)?utT= b!TwuNtX1;{zDAA,2B)V!R+ߗKM:ˈ .4ԟYR:6ZRD"r^yF.U@oխFqDDDVqjxСC֭om۶eTX3gвeb'N:(ޱ`JJ >>>\p3w\^~eǟIRRiiiTR'Nx߽>lB\\qΝ;ݛ۳i&~~mƏOƍu@֭T}|ĉ9r5jd2?FI&M?~<CosyT–-[С?8;vW_aly 4wy֋;"WZ(+Ä?X1T L=RF^ɍ&(?Mr%ѳCeG+zbF9-ʕD-˅ CϭC~ħ`O~_I(V3t@튙]|O.0ǂZNe` ӫQA9C1ڬU3~śCBر#;vѣXVY&lڴ#FǛoIrr2}˗/FԫW^K,){"!!D5kɓW^w}|7TX{rU^~e{9-[V+9scO(U `fnСCٳ'[n/W^e̙L6۷ӬYjeA|+W۹s':.+V>f \}z6mJ˖-i֬oil d^uQH+Io;K[#m9ѫ|BFΒL8lQŒMz)GFUE/Z\0"&ԉNޔ^컫qf4c뗞aKzX;rg PI5A*=ŢAA#P~J$b҈@{݉pԭ|'=NMנ%ȮD餖Ҩ[9W營D/^ @*Uh׮FJ*'Mİa(UQQQ/h{ٲe߿<:u˗ R}3شiUXjLJ}Gʕ2e }!-->}pq,X7|C\\?@&M(S '0`'Od2a٨XKn(Um۶eԨQ̛7k| 2-ZyO:ŢEXd h4)S'|O>]ݸ8iѢ˅^ʕ+Lx DQd1i$|||{QvyǨ]6_| ŽBil&;Ft8M'; 򶠲1tO%th1aE STY흆`y8-]8ΈC&JI |L ʪ)|}ų[CZQht.؇)3Q6 =GjcĪBQre@o= K.eРAƍQfcϞ=lٲ-[I7fܸqtڕ0bccq4iD(ٳ,ZT~aVXAttt:iРvj<}ԩFbŊmۖEz:uի+T:XCRJ75p@rssٴiw‹ ?|0 6Clp\:FbˆҤ#?p%K'kU"!ȝ+YN-w2 }1j%qS$pu6l )TM X!x;FU\S/w$ݕ5kJJnPHY+IxT/o@N*cF͜9sx֭[ٳ'999өS':uDv H&Md͚5׼ngݺu,Z_P СC+ۧ&|grEvEJJ ~-۷gҪU+bbbYn;vYf4oޜ*Ut{Gdd$nl6sQrss_n'Znͮ]8tPrEF:Wb77Z-8':xg2HU!hRHY{\21`S-,8)#Q9wΜ EMZQTW0h%,{'˕jժTTXBCC'q/n߮APpމ^8ȑ#Fyghڴ)3f̠nݺ#ٌ9c7\3033iӦxbRRRhժ˖-G7Ѹqcx5/44J*QfM^u4h@HH?3>kf…|wDFFa6mɓ' 5i$n7O?4gĉ|ݨQ8pwOq:^{("|I(I D&ɄS+d)ƀ ܕ`T(tK>UcRhFQĆi#,E8-Or>0Ξ=K||z_oW_1dJ5S͂ bt|G}y`|}}9~`0z*2h4ԯ_5kt: Vn7 LݺuogQ(reGC{7|H&\Xe#4Bq'`hN%E QѬ_Drc竴|QM nq$3ƈ@Ʉ١RHgGSl Ot-\;&)Ye*%"P5>T.{U *f=^'..Vw0p.Nʕ+i߾=]taر|'̙3oL?3/^_~|DEE]W}1ڵkQFh4j֬I͚52dHvލ^/[Xt:}Q4if#77z^4 %hXD]$2QQFd ҤBG\>,/f,C-ۅVݪ !H"FB ,cޤ"0Kd>6|L{U'QR%N̓o:U/+iD.HWKpZpi(r9jժŪUbw/T\pbċۅtZlɓ'ٳ'VRSNN?'Oܻ̙3IMM-cժU 2\@]njժͷ ^ABu\hpz(Pip7%X D 'zH^; -CjΩ)$<63 B$Q_ǦOe~LAO.9 Ɔ <Ԓ.9ɢB< _I[hQ2ס@7LH rkcn PJ+:w̧~JŊyn|^=PbJ3ƋۋPl¼yx7T򔗗G:ux饗xtJn7gf޼ytرD+~FY\(cP(Jj ‹A!'M:ה !,q'?,DH$FșzH4PvU}LX Hl$/>Ð0>ts%.N+<Ө[z9vV6d3R;4 E}΅łk=s=uX"@iSqD.o7,A۷/(CZh߾=)))+W?ߋ;f*(TP3gYyxw4im۶-@DQj|Qbb"iii9'q=T\AӦM9tk׮o߾>χ~ȬY8s :M2h FUU{q/7{pwA~>ib$_R C@T;\db*w`4I'l`gI?IZߎ͉"8)b _0pv> ?} `G `ί?&<&K;:8dҧR>D)BPln5X:ѩ(+>(F9-:C(C2>X84w|DH/5F%2 "4yd':d dBIG/=EE0'[L0`Kң0)(h)UEқVDǣALRBAt: ?Ϗ{cǎu(yXh-*2( 8h6mʅ V5_׶m[yV+IIIdT-,"yX)(7> IDATNpX emGس4bZ'VHƧfpǀ=v&zP%$`d<NG.`^TT>|sБgp+oL?$$ݻÇX,^{ ֭+? RfMZnMڵ ȩSHIIuX靁&NȈ#1bnA0xѣGhРoF/IIIw /"uֽfW?00W^y]Nhhh1TŝB+O'qRm <ݲo'`ÄLH>UaHrG:z/<~l_ |py$VdYL jtdۍbFS%j=]5T"o]䇥 b A>\K_\K |:)]1hn@ǎq:l۶ QYYw9O8|ryBCC믱ҲeKZhABB111šhi.?Zj{nڴiCn8 /@&M:tG1}t.\/2Ԯ]ɓ'3|Xw2  O7JzDP@;\I⾧#A:.[.D`0a=L+ |٫Kf)nfn)"nG}%YAofD#ԨN[݁"BǏ3p@V^MJ8/ ]p87ngge…ٵkvbڴiӵkWʗ/믿NBB5k,KDQdΜ9$$$pСǜXp߸P)+j \%}eT(zI`ѣh4ΝˬY%hڴiqHGy4vIod>sl6[QXaZIII!))w}:41ȧ~Joa^M($rIyq!'e[P_'pEs!)O)8H+ ':\QEH"{fa dO,ѝba*KhTS4wc##▮UB~TyD4sE72]0ï.aMk~h4c1j(ڷo_y_]%pUN8ڵkoXڵky狰’ eW^}voڻNEXnv;ѣ1yO?%::؛4FƂKbR#k.J֞&`AS2;Gf|";zVaWW%e޿ ہ|]2G.AdO:Z]6Y5%^IԲ7P]PmRN@!="fm#{, ʖ-K޽LJ:Ć J/J G~ Sap~{[NiԨ'O7d…7Ml6 $_e[jпQWeAǂR4*4˶NrJו2qT$R/dc.^ f5PiyQS:cGǁz SF^0 T!+uܣ}clj%^Wu a͚5=۷ӵkWիw݈_K me8p gܸqEUZĖ-[8<z8N5jyU9x +VgEՖ,̜9,}]:ݭ֮\2˗/'E / {:]q ,wy]r7I`qҐC0$c Qg=KTjȲGvJ w|1cĎ*Rv_].z#gS#HQ5cH^Ɣk`73㣏>_%..FrJl6u@B\&wٳ|%(uV, {aƍ VXAڵӹ=Jƍ~+tT#ڢ ٳ'gϞN:`t/ P߭r,bgo)-.0bC #&N"K^\D2" >*5B7cW zVxRy. 5@@H2~:ĥW֣%|B'cϘhXD݀iѢogH杊S7$BBBnxwAf̘)SUVWWE$]t믿歷޺e 63PjU6lPQ&**9sܶ֬YuѥK>L n۵((TJ,wjJ(+BD'Y,U#P.ˏ #y>P5 =VBrAdAU+8&3I&uUhra1yl)W~s.kdM*)OݽQo6m`4С}fѡCWyXd K,)2HNNaoeXnݻzrI_~:ɑ#G۷/:?+Q1cO=;vdw%r vݻO?9r O?{QPΕBB@e3)Rdž#6I&}@Hrb:ˇr~-S\hUBBuc>L"͆! g<" E;U.qE>ڴi@bb"ZPbbb81, UV%.NV%""xBBB0a| HMM-r{n-[Ƈ~Ȳe˨Tx\\bŊc;v]vԪUm۶5*--vYj=JŢ9r$VغnTnӧ\rwmۖӰaC6o\xqQ(r%u oI80`M,ljVҎ]'>|Y, )F '2\<$#Zd":yٳJqP)#F4߾0۶mKXX&L7޸w z=> ~~~رA|r*T@VVW\vikkZcƌa˖-жm[DQT=5x111tܙf͚e˖;""۶mСC9s1cpq>sV\ Pl$\rۗٳgp8[_ ̩S R]\x衇k׮^y=B+աMp`Įv81b%o9sa͟^nG&pGUOX0O"W  G}PPn<ɓ ),uMzc7c%>>F'?# .dƍL0úhذ!tޝ˗HΝyEWww%zA=n˵4 ;vDQti(ҮkE=h׮7n“U8zh/^LӦM|2k.1q=cƌ!11UVw)$66*UРA AڥK9BԋŅ T]/,JsӉ䥚 *mU:9Փڨil+5TP%> rQ:aF@$ 4 " ?alꖏ.nTa)&'7 ϿPoL`` Ƣh˻.]hDQd޼yo>ZlɁ 00`1pz?T"""ba…LZۭngÆ 4mڔM6kѱcG~g ԪUN:ҷo;J&Lի9s _~eqsS]6k֬O>?~UqV"!!( 7ara6lH'*y}}0i_H?E#TNnbUT+A[VRificЍ '@!KÌ"|dž@̍2ٵQEB$D(vZF)_:GVVWc8q}qIxrv… DEEhԨ5?h˗Сeʔa֬YVԵ{1uTrss(ݻwrVgϞu]ٳg`ݺu׍JKKgСhтCy +p8ɱ9 foAndeuFj?S-6x% v 55#~Ïr(C>XH $ѠťZ, ݒT-L7o΋/Hrضmmڴ~+ bȐ!7+WIzݻBE+E#"C իlٲ… ܹe˖i- /_/d„ ,YGҭ[7bccՌ;?c חw"Vʊ+T3yduvyQ\}xA gN1x. H* n-> 3CT1'Z5XD ?47Cz<+ u|PS)Gv I]FߔNS%ˇzUaQFlݺ:unCYr%cǎ%55MA={G7s2rH֬YCtt5_;0sLK,)E~ƍIVعs'?~~~wdU,}<]?l6ӷo_y7oQš5k4hxff&/W_%--ҥKӺukv\a(w|5#;MN "+il5^BY܏<١]+{XO.eB8IjXNt$A*i¸JҀ?*T gBNJX$>p۷gر^"FUV1tP~78q"|.)Sp.Dܹs;wH~ƌëJE.]J=JEQY|9>, pAbcc]6W^nݺܑ P% ϟLJ)588$V YQFq{Du!ċ;7Qu"Df eɖ*kDj d<*iC:"@rh 80`'@s?鄒EZ\"0X,呒Bd2a0p\| ˅ 4m_3Yf/,]˹-4h:uB'i׮mP(r6LX?-Ҟ?!jqd0D'Ʉ &js.0&yhń ޑؕgAϴ0￧,|}}پ};}닥{ 0HJJBղrJt<ԫW)Spҥ{~aݺuEvǹaΝ |ҥK.z˗/s1:vHÆ i׮3gΤgϞVˊۍɓ'Ӷm[ZhQUBB,l2Z*CIBٲeYho6={ދۃB32&KP~?#87, H'z1a"qT p @d #Y96Y_r_ܗ @{wB 6^a/ B׫wӦMd[^=.\@DD?OfÆ _ٳ={-;_bbjk.6mW_}E ʪU߿m%&&2rHݻ7N9sK/a2裏Jdʭ"OOO/J$8N~'f͚EFF}$&&rqvumz(wLAk2QNn8W/摔i$ Qlp!r%_̲Ao֪Ơ6ڝO2$  ,vRWnݚ'xŋ3p@233=/#G[nw}|w4i҄u1x`A`ʔ)|gwc"99[r=zI͚5rqU=ʠA7n\M6IsŢFVuԉӧټy3qqq >ϣh׮ժU+ZJ"F-_IDAT@^z% s=iz=8-->B>P 1 R3˘30! HqDDH1:P 4qdȊ_]э+Nv+KN3(XPa8^yŠ7g9af#miJjex͜!@DD}}}ǒ%K1ŅulقL0ϟ ۄ}36?5RK@@;Gh4Z[[ZdffP((**"88__Ϯ-Ncc#"==TN:Ecc#+Wߟ3fP__?hP(\UTTHHH6 BlK={FZZWWWBG>ɕ +J3~ƃx, 'p1?1w;h„ :~V$LD̸` kj%h7ߎ ^ayyyӃFӓ*fp&&77]va 00K.~zl6{%99Z,vċ#..n_WWdž Xbg펦m:&&>>JJJr>UUUTVVbZYp!G'NٶmcqΝ}6JwwakXv-lܸac$hhh… z\]{z/^ØLaP|OʹZc5Q8mtƃs5Ծ_~fנ>pLj300Ցަfq,Dxq~eZ&,,.GL>,^xAjj*j$IKKcݨj8qp/IHHG05k0 \|ˮz3kުwCee%TTTɣGr ,[ŗ0|""">sUWWHqq1?oFZ|hd2Μ9#9W'- Ϙ>{&6`ы9yd(Q*z;3ytP1gfSl8aa<Sw, V*ϣV9wׯ_'==]wG FC[[nBRKNNdee1uT6mDMM sqˊʝꏗ/_rQnNzoo/fBR/ꪪ*붶6gzgX, E`,|"Y>gX, E`,|"Y>gX, E`,|"Y>gX, E`,|"Y>gX, E`J~fiϞ=evfSXY8xﯨ(fɓ. Ō VZr}I{E`Ol.?P۶m5qDoW,XI5i$%%%iС6lrMRRyuυ <~SϞ=UJ(66VÆ ӹsܶ=qF{G 6l6,Xm]_~zX+$$Du]wݥ~mEx}yձcGUTI!!!Yt<=^6M>m͛'xBqqqPHHׯ?1˲ 0alB}or<m߾}zu뭷VZ VJt-h̙oss^vL2 WͳѣGhk<iii׿v)**JAAAVN-Z(N8Q-[TrmjΜ9֭[*ͦ}zO?Tm۶5\2eʨN:ٳVXC-p}-G(Z.eYz%I/^TZZfΜŋkz\o3ƸFڼy*Tॊ ƅ ߪCL 6߮pm޼Y_f͚c't3<7|SQQQzuyM6M;wo{,}o߾|PǏWJԥKUTIiiiꫯ_h„ ن?xm(e C,26mҥKlfΝE_X1q}˲ݻ]J۽{,?OkӦs*;AfYf9gff=z˲̈#\ns1?cǎc~,X~Ν;q/bMhhh\6e~m /`,2/^x1Wؼy,T^ݤ_7Gu>33 0Xen\?~,L07f̘a-Z|ӦMB Ʋ,zju .4eW^y%ٿ0j2iiin/=~acYyg\6e\ߓǛk׺-_x 4..]j,2111v2&88ڵ+}+&((y }ufΝܡC\9ZjpqLy},)ciԨ,L>m݊+LMժUM``2<ٿ۶iii0k6bŊAG1Gqnw 3rHӶm[s5ט@Sreswe˖e[RR9x߿Z)SN:e dLPPiذCf2_ 5+V4=zS`qׯmweƍ`SjUCԼy 7`ʔ)cM.]̦Mlb^Szuh"##M߾}֭[]Y,c${cYi۶ۺ;v˲L͚5sf+Nvizټys_G6m<ͰaLÆ MrLٲeMtt뮻̚5kr|xIJJ#03ey~?n,2~m믿LHH)_9u˺L<_1… 3e=gӷo__:dC{Ʋ,3qD :Xe>WZe믿n-Zm`Yj,t+WΔ/_>W0eoBBBL*UL߾};}aMǎMXX9^fM'OkX3f}v &a(6233%ɭG}~Xeʔwܡ5jh֭5k,XBQQQe˖:un6SΝӎ;'Txx> /ڴiΝ;bŊڵk+}7u뭷yqx*_#GhڴiJNNO?G}T'Oԝwީ .hڴiի-[4aƌ;wuv_| jٲeW^CmݺխiԧO)SFzRյtRp j֬YpHMMUtiuE 4o?X_}ϟ-[J]viܸqS.]$Iqqqڗ1FӦMӎ; ]v.ͺ.\(IJNNv[WV-h۶mڱcj׮c΍[j˖-U*Uĉu[˗wY7}tٳg5gm۶MʕSVԴi\tyM4I6M=P% w^hɒ%ի4o<;VK,O?>W_鮻zkVV_}W駟ܚ ezؽ{UNw}:r>SuEw6߿*VJ]tq9dQrrRSSu 7[oݫEiŊJHH+V_~Y&Lݻ]FGG_ձՕǭ[jܸq:}U֭[nݺ6mu-~ӂ tխ[W u~Ŋ:wY;>… UV->S||u֩Fkʔ)[4x\= ʲ,zzrYWz?fƍZjZb:ʕ+ԩS֭[CF^ׯ*TN7t*Tkbٲez7Ժuk=C?]owyo^WV\\cǎ^b [NL²dcL2e̟\e`ׯo,X|;5n8cY7n>Μ9cΞ='\8޽TVz߲,裏,w’aׯol6\M:Xeׯo233wڕo撒<~K]jUW;f̘n6cY7o^盗_~ټ 6&!!lڴ)Wx/_dOWzaΜ9s}|'Ʋ,ӱc\0bcYӧOox*Wl\iwn,2?/nÇ˲L<IJ,ꫯl˲̭-=$+9:q℩Z37ovYO=܎qe˖&%%6*U2|mycYy'=7j(cYy]gƲ,ӪU+a~7SLSzu!9ٵk 2e˖u|)'2ejժ{'MHHx =]a1ƘTS^=SR%Cdbپ}7UT1˺޽{{{xߚ5k5K{םviù‚|!8 f^~e3dӫW/g;ۊ;͝;uw|sѬ˖-t!##gVZv.nf322L:u>t'|Gn\]]xd(ڵkekT\eYNeÆ ykXsyi.cYyoܸь9lܸќ>}9r̛7yntM.+c2e{g>l8`Fa\>`}Ʋ,3`u>T$Wb1?¾ݻ}D/-!!!X֭k= F`A01|+W_}UÇg} M8Qwv˗/uy|ذan?233uVIҝwީeSϞ=~˶KgϞRppsw}W<Y^= 6MUVUXXKsHkhӦ2gݺu֟]w2Gcǎ9ϒ<8ʲ㸯mz\hvjSN^U^=3f233sz( >\:}֮];gmv~~zG3ʈ͚5K͚5SHH5k,jڿHKKŋüƖ-[ԹsgeddhҤIj鼯UjԨݻw;\W֭%uiLTTJ5jxM:U[ѣ|r]x1q%}8pOna 6Գ> :&ر-ZZjiҥ5ks{_~Y>"""TZ5 (ͦ;#};h=!!!Ӕ)SovG/P2eQcUlYujٲ233zlE86oެ$?~\ӦMuȹ\N1<k;7𤤤h׮]zt7rJIIљ3gr}_)ѠA[mڴѼysJs+޲, RvojϞ=JKKӇ~w><_IaO>cǪ]v;wʔ)/}mծ]z=e;aU˥IO?QFrʺxkxzӧ{'|qPEFFԩS{O5]VgϞUll䚎+>l6㝷Yf$WBBBԢE eff ռgǹv[@^XP,4mT=ݫz˹믗1&ǑV秄=soѾKm۶aÆ_233=D^X<~Ie+L.ԩSZn]91"sEj*W*U\1o<رCiiiYUGS삈$,ʶ9$|͒>7nle̙:|nfM/amV'OԌ3ԹsO;w^EGG;Υt-YDeʹ}ԩSG/^P7}=zwt-hΜ9 m/*I.#u2x<'WInWpp.]SNlNe}?rz`-\Ps[9c.\P_ɓs|?k߾1'Ν+I.Ϻw|qnݺzս{wKO5:tHș{nݻʕSݺu{(a7uya߾}ySl޼za1ϟw鸽f|Ʋ,ӫW/XS|yo>LK/9\x[0sDOk/%l.Ǝ[`yi~(aAAAf.<8OZQ~ΝGz;|C#<.##4lX<_c{\yn:V\iʕ+g},;_*>>XefΜ?,ԫWc'sci׮]#9&""„5UT322Ln::uDDDb r u-xGn^'^sqr;w۷-߷o 0UVQӻIs4>,vm.#fgժU;FtϜ9XenFsi#G ˲ɓ]n#˲O?1Z壷cLΝ]X믿LLL p{Ν;g:ud,2=PK9Fw[hhBBBr^<,Zj.1o1e2eʸMM@@\`1W%,yv<]{7]XرTXNaAhܸq9rx կ__}~5jHɊŋg-YDUVuv4i>tM]*V۷k֬Y SO=5`%$$[n ҥKi&u٥3iA0tX;ԵkWuUuѺu4o|mt=:!СCٳg;@h޼bbb4zh1HիW/uQ5kԩSb _^z嗽]"ӧkССjԨGTZZ7o% K>|:sL&5{lue¶kVm۶̙3Tcei;Sk׮_?^OVJJV\ob{$JJJҲe;O>Q@@^z%-^8OE>,о}{mذASLqF[n9rʕ+-[Az4`?z7uY p%ۧӧOgϞݻ,Xg}V&MrNuIRxxeѱcNJnK>dffܹs6ls>֭[+00P)))=;Át(^RzuU^ek|жmԱcGɒY;w$=zGeYNt]wuڿW~r,l[:u($$D6lp[/(&&&+5e5hРFhر.T9>9>+Mt@`ɇݻ7|f͚9ϙ3G(???uY3fȑ##ٳG .O?}4h@ sQXXxρxρ7|nvTbbV^W_}U;w֍7(IzWԢE ~zuY :TUTU`J;F ˧>L)))ԩS'4hOܦ~ZhԣG_ӏ?X櫘8Qڵ]y| 5|KHH*iF~飏迗r ‚J+-KCLqлwooPxρxρ}ڵkռysYu2۵K[z!iʔV BqLKh-#=haW&a(PvI)-+J 8tڧ+ ĥC,;yA`AX*H H+V=zޮQ YE -t@~pn6lNv%(,(v)^JPXP(5BCnOjRJMv%(,(4Y3A`Aۥ?v%(,(4Y"T5 E`A ,? .]+]JPXP] # U|H0*((+X:: ,(tvct萷+@qC`A۳~z?5*Uh#YX? ]ZRv%(N,(v_ҦMޮ E$ DrRFc@XPdx"ƍɓޮEnVv%(.,(2Rt@XPdl6)1~,= #JPXPv!iNoW"fa  TJRݺEng0En~Y:wەXiѢElV\ܮ_~iذDŬwÇW۶m]5j!!!Zp۲ҪiS)88{2UQ˖-s۔&Rt$*\̀mJ+#\{LPtRmΞ=ի_QQQz't1/T;vioW_F| SJJ45JIII3gnIR\\ոqcIYz--X@VRhh7kHJ]x.^8qBM4QDD~a3fGz뭷SO_v7o5k(!!0Kc5}#] @+ WX P tmq]*44TW=1%%Eaaa.z޽{XbYc%ԩS5uTeǏR5% X:c233xcǎ-in %DPyRqWNرc5kvӧOٳgu})nΜ6nv%U|Osjժ+--McƌѡC4i$IݻuO>]1ZxƍƍQxW撟_Vfͼ] |%6mO?TN:pjJ_ TJ5JTFFSOiȐ!z{I*S&k+Gv5E| |NZRX,KJL ,Qv{LoWo"'ɓޮD`Oj"iJ7 |RRFt(,YL  |Vb_yx >n%ljoWo!g5h +G0Ҍ'lI`(,i $v% |Zbt{+7X~, t"U"ծM`(,yL PzXv知] %-Z$gʕ.ۮ]V7|ʕ++{ڹs*/vi:oWÇm۶.5j͛}:{VZiݺuTRQ\,5k&e5 st@@` 111jٲe͞=[e˖$5o\111=zFQTkRBBV`y)oWD`r0==]gVݝaEZmV3g,K :Nc) @*TPrr.]\}v;wNM6u]&Mm6]p(-vi׮I$PzX!,,L)))h"7N{URR;Iґ#G$In1Fǎ+Һ3=wjw@ѢK>)..oQ]vU&M4x`r-^dWjvޮER@*TnMΟ?IѣGݶ=z,RŊsϔ,ݻz]p5BX/:uN^d!˲TNhÆ n(000;v bnO)#Cv5ڵkռys/UTrЇ;vLfR||Ν;kƌ:us={h…֭-viiFoW|{TV-%$$(<<\iii3f:I&9{WԢE ~zGVREO?x:fja5@\aɇMo<:_Tƍl2kι]h"G߿իT) K> ҂bfB{ҁbnϺb+@a#ILov%(l;-[f @G`APXP,9d#Xۥ륳g] Œ.Kkz& &MtKuXJ: -:|[vҾ}ޮbn:Px,("#5hPXPяd#Xۥի] Śݞ5/x 9YxP2XPHqqc(,( ,%Ş.m*9JP,(H\:P,(ԑ""hPXPYVUF (y,(Kf+@A"Dۥdz: Dh2iXJ J  ,% %N`(i,(1v_ӧ] %Fbb(aW{ JFP$~~YXJ JG{c] %.w+@A DILM0jU):PRXP0$@A`) ~l6ʕ+粼_~ln? 6R%.]+?Jp]@Io>=3ɓ'ևh…nP8~}0(,`j۶4}t~~~j'"'J&aWiʔ)Zd}]l&n9 GPO?r<1BnwYU^]O}fϞ]JJ۷oxC~z,Բ۳~J;{%N:\O>VǏK.\ I:qzҵkW*555(,,eY޽ջw8fͬI$W 7uTM:e3"egvRڵsܦK.1cu*WN}'n׮]͛k͚5JHH(K.]Sv%43] K>T^] .eYe1B/ּyTRlo?}t={V_}Q[j%&JÇK@~X!((Hmڴq[>~xu֒ݻw{U>}Tvmcxb7N7փ>Xԥ*v_ҦM?K,K TJ5JTFFSOiȐ!v_ȮNٲX'K?~ƏXX /VT+TVP<1q$J4=khcOhvqt+@~XP%&JHVy%ZlT|V??h6[U @D`Aggc] nvv%+ J-~, !īTI[PXP*8x!Tۥus] Rn.^~ە /,(6iPXP*H͛X J :?vg+@nXPjYSS[rRF k,  X JDi*)=ە 7,(Uv_] rRysϏfaJ2RfRng0R'1QڼY:vەJ,(uH\:pe:11RŊc(,(u, $  J%G{c] rB`AdguOKv% R˖Yi,(¤X #Ԣ=#Բۥ 3g] C`AeKҚ5ޮ!jH Y/#,(vir&Ujvtޮ{tIjժ|^ޖ{ )*ʻ]²m6=jذXaÆz駕2%իK5kJޮ+,}Y}g\n&}ݪT$Z~LcǪG3fjԨQxJl`UV4k,uQ~~~Է~~[ 4_}zvk׮s=T]v=zjժ}`Ґ!҅ R`JlٳgkܹԩSaEl6nV}73gNo>=3eY.6oެ$?GJ IDAT}[UV:|peKezRbKRRRoӺu|kj۶:t sCUHHfϞduUsѡC4z|+>^ Y/*J٣yȑ#Wu?SLђ%Kﺅt͞=[ݻwWٲe˯ZmV3gμ}`g:RXWtWzԩS'hƍ߃*%%E#FPdd۷ܹsjڴۺ&Mh۶mpBes2c 5h_|Q͚5̙3UfMk{L 6Ԁ]g \xݞ;5U6bQff$iҥljӦ:ZשS'TժUuqIr6:q!I:z}=zTebŊ'%%Eaaa.z޽{^\YZRY, NS,s|F)vښ5kڷoO?T-[THH$9O>?SG8WŊեK} /Q`;V y cYcKkתy^(ez4i$?~\}sݲeԨQ<_յpB9W11b/^yRJSΝ5c 99R؞={pB=s(vIT}"<޽X?~߷3 cq3,h+d}Er(#%÷ߔ&’S1(3&ٮwc6v݇v}߷>k/J7V߾}p[W@)eW7o˗z. RN4zh%''^4n,gTi Ia>}O>;9=l6[+}݊ըQԫW/yxxM66mZ8 sjX|<Q0%͛7OW 4ƍ3gh\ q#EJklaW֬Ys]VsO.&3`=cqңG[ժUĉٳ={V&NիW^޽4vΝ: $^2a 0@ӧO״i4aIR|$I)))$ooo_#FP@@Ei(4 CںUj4p"I*Uٳ5e}ڲeI#^5o\'ϗ5"Eiai%1Qns39.,i *m۪m۶VG {イ%1q=]܎ hK\)+R^QXH3fTqJbK{IKV'ponW/~I:UjV=`P"I'KuJ}J{Z}Eaٴi.]cԾ}{)SFŋ-LGyx?EpknQX^|E韏9R_~6m˗kԩ#?ԑ&L֭.S- ˾}԰aCI?+Wjʔ)Zr&N>pd#GJRXVp/nQX//^\m6%%%k׮ 5o$ wŏRO<=3gF:\Xa͚IӦIG[yEao5gZnqcisKV-8'WŊ:LdT95e8'(,O=ycͤM ۺUzu8'6rH Hs*W,͖ijV1ͦ_5[gرz'tqZJÆ ŋ5j(IRxxx۴i@KsСC]Z|q@F.[XUHofeTP!:/ڵ$?^TRݻ[~ ;<<\Ŋp,44T , "-u Uju"ъp̙3q-.[X ^{>na~*EEY oQX'о4`4loV;ITL 8b̩aKguAaHǎRRDtirp23fH IO>0(,)^\3GZVZ48Ν~C#GN{(,9SbjpmI(aN [FZ48.]KzYQ< f͒ zaPX'+jmuEa\@nRh3X PXѬdIe(͟oI,;Ba\DNGҒ%W'&JJE6 "O>QcǮ(~gau9' @ZVjQ)YҼF e8+FXӰH{J*]du"죰.&1QZXY{:@PXr9ukir> "Z`=R|Tԫ4c npqqYv7H;JÆIRJ%np_7*UիW4@PX7SK6ZD7FaLN_5~DGaPFb|̋L[ kMUln{\ԪrՉ2nD iFKgOsA>#:k,(EGK*I>k^$;@v4urw ,X!]+H'NX; vbb6=޿DQXaǎر*UB W͚5ӢE2)RDŋWϞ=u Rqcȍ6l6p_l8{*VW^yE֭ӂ ~iٳG-[˗tREEEi߾}jѢN0jUsjդ-UNܑ0 iӦuAIR޽p’CZjД)S|5lP۶mS ,?d_?:-g\3]`%xZzz^V$bŊjժVr>8 //C!C#TSww0 Zt6lؠٳgK߯/^znݺڸq.]$OOϼ 6]zus!k&FXAҥKkС6m $I:y$DD2 COӼ:TZLcSN\;V[nڵkkذazW=͛~2=f;v*T *Hڵk'I?~}QJNe+SNfx7|p+V,ñPD| ۚ65=nxjQ#S`hEGGg8vҸ K [o_U 4~LܹSժU3gVj]HҒ%RNVYR9m0堘˗OUV:w+V()))C)&&F=z0)3a< u*͙cu"jaɆ'xB>>> Rҥu -]T~F>,22RAAAԩFd -~@(THZ\ zJJL&O6wSlh̙֬͛3*\ׯ GI?VllF^zCmڴѴiK 3/* an{%(`u2(,[:Aڸqc& .U('9"\)do bCgI;wJ͛KZ83 ׼XrԤ`u"(,rwj)_^~i:gDakJbcVΝsN @6?aX 8 v <<74=5\?wiu2(,&)U X!X 82Sҧ;5o.Չ#sΙՉD͚eH-Z.עg^Di< >X\qDi@sp?rRҴiRtRT%2p?f3-+ .5n,yyIQVpgL P""_o7oVI))VVp(fIYZ*^\:TjTڱd #m}TԱWRҙ3RFsI[% puYI[ -_.+gN:uu, Cz7i<%U*u #I@^p_76n,6mj֔yGJMˤ /QX8MOڽ[Mz 󢒻w[  T9Ul&1{^.^:INukQ)Sku*S(,^ҤIZJZ2w;ydNQXZ?zKZBQCZP2 좰p)v"֭mJ[ dK,֬32e?V'u 4x4v԰ou*p(,\4mu)5kfgNnmJ~+͘!͟o._E82 /4tO^]~: [XQci2sX͚ҬYRJ(,ܖ&inܿ!5i"mnu2Ho)}t$!?ou2@aiTJH^z,0kKkZ Fa/-%U&u(#pOBժҧJ/md.m)5d \&+#u.=t oPX&|}(ifq~}ixs>]EZI?`qyU^=)&T6 ܆;ҥ֭'Nk@6Ԫ%ř ?HQCz OLӈ K6mڴIW˫[nJHHp^XXv{[Z,J KwK!!;H EjRp%1pjVpVsџծ][O&MhÆ jժU^^^fW^GKʔ?n- .M$=j() 8 K6p]v뮻/g(,ӽޛ{פޒ||9s(+dS²ڲ"IުY>ay żu-/;'] u(5h t p.tY%$$v'''_Py>}ڢr[b9,6x\s%"B~XڰAJI8(N)a9hJNNرcӏկ__S$)66V3fЦMw۪rA5+]Ewߕڵʗ[ժQ1’CƏŋkƌ L?CM6jӦ&M hϞ=;wkˊdepeٹSڲEI=[.eKiya-}9[7ϼ@RZV' QXiղlZ~֯_>ͦO;hС3f WpSŋK~0͛'Mfq8&ְ8 ;KO>1˺uRR^fy~s`=~NSSZZ7xU+sIE 8eѣ{/0K˫'m+-Y"]huJ.f7}W k-k^%!Ab0PX.l"˓OJ+VH JɓVPXU.򊹦esˈCSRsϗ~D~܀ԡlt䈹e^XJرf.-`+LRRxwI]Joi.?,1?dVV̅5 )Mj,+GJKEJwKꙻu(MJYX*mh'}9$կ/=y,9wBad`Rlt}K#-Zd/.`T\5+…'Hb])S$OOiDsҥљ(߬~Waucj}@yڵ[x7ߘ6n,1Gg[zֲ.b Iz7xf!1u9}l>Sp:u U>5lƎ5?EaA,(aV:w6KÆV'˞/""%g5?nL,`u꘻PXp0KRd9RlSU<ߗv4G^zIzyb+ukP!SpD,φM6^U|yuM MHHPHH)ŋgϞ:p mqzT@=**E,0vY>H:y5[7iFs$,/o!$QXaΜ9:t"""n:͚5KǏW&M~ޞ={ԲeK]|YK.UTTۧ-Zĉ>#*- 0ˬY?K{\dVTs?Xt8a!u]wN:ڸq$wފUpaIҡCTZ5EDDhʔ)Y>~BB6lm۶Adc|sD"_R\Կ^=wK3isHEcG󂜥KVz g3]Π֭[ѣڽ{._E*,,L2׮];8p@{q jnfy۲żfPY^:t07$3_r琳g*!!Akז$߿_/^Tz2[n]/tR^iRR|92T4ctRٲҀҲe5l Kpf~~dtĕe}'=}rVҴih GaǏŋ5c Za^lW]1gKLZRժ3HI/Z@vq;ɓ'_O?~WtԩL_s)l6/^bŊe8HTI4ȼ%'K11溗O>1JڴbEDGG+:::ñ3gXƵDFFƏ˗/Gr}bbٓ@ a_~)Hu^heӦ戍;q3]`JX6M4)\[V$C;w֊+~СCQ=2.nfxM'50a\*-\hyv}` (,0}tj׮:t 4p:ukʕر4|p X1wos$?o5׹ԯԨtԺ9"0׿hby?lXÒ Wf~ l6HnjԨQի<<<ԦMM6-} nn|Rdt@ZizS+-*li./\8gutΆ5,X%?""y))]H>z8g 5~]Z\) v{?_,]p?O|oҥs}W*_^P\82 U sYѢ9-5ܶVϏ?JSَ1i \bH}OVӧ[ZrnNyi#Df˗͵:fΝ?0N㓹\[l ʹҸ.%i%.ׁl(d\ϥKH̵ߤmۤ?5%JܸԔ//,xk8עύ~s|eE"Oϛ?׋ifYo.N5Je=,XrWy8QX\D^,(Ujޮ…+eRg;s6I@ZTI 1/d eŝQX\#*$Unޮܹ뗚={̩iO=eš/ ,QTyV4q̍aq_vWzJWִ$&Z ValJap/apa(,âpXaQX8, Ea(,âpXaQX8, Ea(,âpXaQX8, Ea(,âpXaQX)))I#Gԃ>RJn+222yaaanjղ 5\(,t ;Խ{wIf\///g-Y$/6EGG[Xz=(,ӧO+&&F ͗/ uQRdsx{`=’ ød’/UPAmu,yXկ__S$)66V3fЦMw㢰 iFիΝC^kwޝpgΜQBB1x{`=9{r9bݻ[~mlٲ۷o'6lhu{`=XzԨQCVpj ﯭ[ѣy 9ߟr(,Xlմi_nrG֭[ܹsQ˖-$uQǏW߾}#J*2 Cqqq5kԩ{ó\$$*WJ2rRl68p@Eգ>۷رcJIIQ@@w1cƨH"V‘"))I*W%KX˭lڴIW˫[nN+;wv;y/TTD *THիWK/du,uVuUe˖j֬I&)99h.'))I#Gԃ>RJn+222s"Exٳ8lj]ϭ>}BBBUy={֢KѣG-X@&LPEGG[m̙3GRDD֭[YfjҤbbbv9#FlٲlVq/V˖-UxqZnFeu,sN5o\fϞ5k֨O>8qBCCrN8wyGw.IYfϞ=jٲ._K***JS-tĉRn=p&Lʕ+kZnqۺtE+#/ܚ5k f|?Fr匔cǎe:d)S {ԩѭ[7#,,(\qÇ ooocVGq[cƌ1l6 ǟ|IfgΜ(;qaٌL=Cqܹc4<==QFeLv %%8uT-[fl6c…ya\REC=_Y~~~M8|… _7Loܹp#**X$'q˗OVr ˗zjS N?^bEjJ+W̫.znW3 $vk.լYSv{Ʒnݺag*!!Ak׶:8v5e-[8n?~'կ__Wҥ5hРۑ RJiРA:pΝ;իWeuD~]xQt_ݺu/ҥK$͛%Uxq.~7sߏ?ZjeZҨQV*///۹sUfy qF~>r#н{w%%%iٲe{*W7nlQ23i$EFFj?~q܊bbb~Q۶mU`Ar\ֳgOIڵk3_f$ڲe͛2eH05kN/?`u<#k.5nX]tѽޫ *^+:++K9r|}}5jԨ(ݮgn+222 &nkΝz衇㣒%KjذaJIIݻնm[-ZT+Wӳ6lUP!lR;vt֭[եKK 4ҥK36nƍ8pJ*%ooo]tСC۷J. VZze+S߯knng9gќ9sTzu,XPk֒%Kn9ojjN5j`*]#Gd~ׯW6mTX1y{{VZ2em~.\Ј#TreyyyWAAA_էO+WN T2e>[͞6%?Wf^uoV;wVɒ%奻K/զM-ZT޺v[~%iɒ%jڴ ."E]v^k%-ZTƍӆ {7M,{V``V\{L3gO?]K.裏Ժuk=s3}1cw}Ws-[_9shժU_~,=*X-Z˗#5k>L/>hĈ2d$aÆoTL5o\񊏏W2enZJo^z%-[L*URhh/_~Ky ѣGm۶O4i$_^͚5ɓ'ӿwU$Isիf( 6Loõa-\P=N:~N}vkW 4Й3gϹ6MGU~Էo_[NkahB֌3~z7NǏO?'..N[ֹsh)RD;wև~xK/GyDuҥKܹsjѢv}ٳ} pb3l6m6ҥKF*Uu~fX6͈f<{ tIDATL_4l61cƌ 6裏ҏ]|3z~,&&ưlaXJJQn]B Ǯ:t0xRRo<Æaky.#Qvڷo~,_|ZjӨBCC3|^bE5kL111_~E{UhhRSSu[uQݻ7co޼YkVF2 aڼy-=NVڴiRJnջwo/o7e85ku9 49nkܸ֬Y^tjժ:uf̘۷+55oڴ)%J(88۷O}QyzzfyeK J?nկ_?>|X5׾6lPJJ*P%J@aR hܸq|r}Za=kzez>l7}- /13e=z3I)X$s]C{wqP01|GŲ" [HVH MFH-7Q$1EA Z&"2 B"J$ZE׳ԌO!p1\s^syGӧOacSSSJMM$I[o߾EQPP:ڭSSSúǂ^c{ ZoǏ[0`%^W@@@@?ֽ{t̯֍7$uouuuE{{${MII3]x۷o+''1.'aR[[[7rb_ǏUVV&I*,,T~~^xM6-8NL~jxx8dG.KK:4׉b?_>/*++%I!CCCzR%''իϵ:p^~߿|jiiQqq|+**=VSwww]URR;w;;;^eee)??שֲe4>>1_Y,'aW:6oެi[n~4enݲ'OZFFy<۾}=<###~[jn[f~~zTYZZn+**y1v 2gn֮]k}}}!~]p v[zz:t>|6VVVfXbbŋCDf۲e\<|>;u̘9rĊqKJJ7ڥKlvv6>xڵVX?=z*++qzVZZj!s~ܽ{***,99<Zmm Ɣ K04+Ucc._o˱@ܢ`0q E nQ[, E nQ[, E nQ[, E nQ[, pe_{IENDB`pyresample-1.8.1/docs/source/_static/images/uncert_conc_nh.png000066400000000000000000005717441324347254000245500ustar00rootroot00000000000000PNG  IHDRUdsBIT|d pHYsaa?i IDATxwTgK"P VXbh%FclcEa1$56T"`GE[~PQ#*0;NEFH$D"|$D"HJH$D")RQ%H$DRJ"H$HED"H$I*D"H$ UD"H$@]ժU^QdH$䓗OSN033;$YTyxx+,D"He8p1$΢:;vN::0I 8666Xp',%8,_;={ O{ۗfcdd$=ʙ3gRTIOjW^g3<< .9IrŊtss#I>|bF~{r޽bx`^|$M61,,xa^rÆ cJJ ?tK+##<`HH۶mː#tpp`pp;ϯI B*???;v2o~ /Р%Rdj8j(H!::$|rΛ7j\x1#""8b>}III9m0&&FP(x &&&lݺ5AزeK?^z V.weN{QVI4߿?P(޺իB///*aޫ"+mRIww׶}6x7OQxx8;wHD^Ϟ=֭[t.^ӧO'I2++KGѣ1>ݻwye*J֪U[l۷iaa>~nݒ b*!!\dQDCkkk>xikk5kּ+)٧իCyr.#bذaQ_p'KxsDEEQFbǒ w sss39r$f̘+++t\.Q } 9߿ 7|+++̚5 M jvbnH;w.m4Ct_OSU|pK̘1zzzݻ7M={RJSsҥ ~lٲbGd( $%%!11͚5ñc`ffjժARyTRE۷o`"'WʕQrewww >'N<-[|* ?7nQJiFXEfɒ%hܸ1.^-[ ([$Tݾ}W^{n :–-[ :c ===4i000^ Yff&[Ɣ)S`ccqơRJܹ3֭[MM|O:`oogϞvʂRu5kր$Ď[5nhݺ5'NЩT*;w7n܀f̘CF ;C)M͏}a۶m_yf/_D͉|}} bG)j5/\h^LNN'ݻ'v}{111 u <"##pB @OOOi.B@OOO&$$P[[ׯg\\ĎV"M<'O;F PPpȑlѢI~.]O>b(pjE޺Nsss9sF*JS|rܹsׯ_133l2 8T# ooolذÆ CŎT$&&?3.]\~nB͚5!?AR%Vʕ1{l!C4bŊ8p `̙PTDPPZn-vpBXXX`߾}hϞ=T*U%$k4jV¨Qrʽ'0~ \֯_s?@zz[I#˗/ ZV ccR9gS(ѴiS;v 'OFdd$233ann.+`'O@?#0s|3vX[~~~hذa!'|wTwqqJWAdϞ{ lڴ iiiP,Ɉ%WAСC_46oތM""" 4y~,n(vRC[[}AժUѻwo;vرcAb,5\\\h8;;#))IHm…Xf 6oޜ BL%) m۶lgbҤIP $ѵkWT\D=ĎT*ĉ'OB d(_K1cƈ*_< Xr%LLLp5m7n@͚5ISS͛7T*T*KĽ$݊)M S仨PgϞ1zb?'ԩM(J<~VVVh׮fΜcǢO>(S ʔ)#vROSUd2Y^_˸8N::t(J%ҥо}{!88M4ѤIc BTE">h5i$\t yKfG2dVZ-[JKX|T*L>:t^)SfffbGdL:SN;'\r=z4r9իWŎWrK.Y&n! ---hiiI'fTr N: &۬,L>&Lŋaee%vKV#** 5jݻ1f 2[>I֭;'[nHkvvvذa!J .-]'N3gйsB9d$%K@Ra֬Yzdx{{cذaAŊ Q||}: ##JZ@.cXbz'NKR:v(vGyAƍh߾=.^(VZUV5kq֭^1555otaq_vMRD62 022/;w… RJ^P(P^=,]cǎÇa`` v,Iqvv1$@WWUVE1{lԫWs޽{ŎV9;;cΜ9 ^7F1iҤL()-UKU>V?U-VW\1{l7N4wŋc,]M6|2;-[SNI<}HMME@@@_dX 666ܹsi&ڣ0tPT*xzzG[t)!I&aܸqhժѨQ#̙3z;ZRLtK, BBB`bbƢgϞm%bRK.jՂJm#""PhTppp6l؀?§`ؿ1$LCC9J%Zj{{{\v W\;Z3qD;wr'O|vj׮ ]]]=JJє3c T*t ڵôi^ǎƆ 0fPxIBBгgO|Ӄر$E(wAÇDRfAS\x GZZZppp -['O6=Eddd^K1%%PoʥvڡiӦP(y^)(THBRa1bK32/v p!\v  ;R2uT\v ╅`ooB#FPRҔ\ӦMB@۶mѫW/… طo,vb$z:u`0`4I'lbGDCCP*:t(lmmuV|嗰;r9jԨe˖]tA||<Lʕ+QR”\իZnry{$B.]e˖BJĎ&є)S0ecHDTre,^Xx1:B!(7nrʨTU;;;ԩS5ˋ<ɓ燝;wqqq2dH琔|%*fϞ( 6L*((000ȑ#Ŏ$)&2$ pm_~pر" =u0ydddd QQQ 2 )))HNNԇJJ\Z>s :;wFJJرD-Z prr;;v,Ǝ+v I1add t NNNݻ?z&M`h۶-\z5>|tLBs!ԩS{ƃ={9%Sjڽ{76mo@u 4?7Pz_>J%Ď%)fG98]?͛V+Ht5#k"+W`׮]ĉmڴA:up=|嗈DݡB&aĈPGmܹGGG8p}`ʕ8|0kiz;޵iRTĉV_o͚5 a\\HѺukvUbÃbǐcϞ=czz:7oǏ$Uj='f>˗iccC3w`` ׭[GRZjԩ\rӧ;uc}ٱc(xWnWLHH͛7y=(.ᅭ+민E,WXZcuŦMDJY4쌛7ob۶mؽ{ؑ$ŜԯJ,--T*QF XZZ"00[' ޒ٭M|˄ׯq9`ѢE066ۦF=z4455QV-`۶mhҤ lmm4K.-K>>>ҥ ;zr\. mWWW>P/ 5kUV)fϞ '''DGGZSabb`- [IL4 r 7266~:"`fP[}6HÆ BCkʕ+kΜ9_+WBCCd///|嗸~z"orJڵkHMMEN>|OȻl~f}?NSSSnݺ3gPWWwܡ |x3$ .LJJ#^|;wfjj*/_ݻ$+O$IL͛7ڵk@\$ݺu#I6i҄K,a\\۴ik׮ߟcǎejj*]#G$˜\Oe)])rbd01:C|$CvwנG˩P(zjc ,9skfpp0O={ӧzm<<Agٯ_?vڵ_{%Om" *ʕ~*TҥKѻwo¢S(\xz+)$J8P*HKKáCУGܼyV‰'0l0<}ϟ'''L>7nDf`bb===T*T^C捠ںu+7o333?/^@.]PbE~_jUT>"##qyhhh`ݸ|2䄆 bÆ ʕ+Q^=رcǎRJBժUyr%%&xO. d <>aQ<1P X`֭[333l۶ ۶mCPP~gt֭2ƹ>jժT-ZRJa:7ڶm v7773gPreԩS`yW%Fƍ|PpΝ-XLKK;=)J$wX$iiiEӧdL^S}]# IDATx'O$IFDD055r׏A`FFIw9m4޺u^^^Pcbb8m4ZZZ$nje˖$>̨z8L~O $FGH Z^%t_> I'B:^CSSSrѢELOO? 6k֌=..zzzÇsʔ)lѢÇwI W~yj54i1 RUˢ*22{?8;wdjjjpB.\J/^;RRRè(2Tll, 9R$)VEUBB;t7n11 SLL J%,X G*$y)^$iccI&199M4+WsQP...tqq5Ë/;wB?~z 6mO<Y jKsI)~"3I|V9$y(!">Fy 11ZGTEoyȑ7o&nڴ*r4VZg.*yU*Z 1mmmk.899! j*ct4j#FٳŎ#ɡV*UѣGիsaܸqزe ,--addʈ*U<[zz`nnL{vڼ+Vr!((kɓ'ajj ///L8Q k*}`@ ܦ mRs@hph\Y=j򆯜W-==5Mtt4_KKK&._[@rr2`ԨQPB4oooT\'N@*JY3^^^vSCC.s|GRPp;'-S֭[f* sҥŋ+,<{,uVQ:'O&=Q7ZR)]5#QD $*D:$Jʷ(MMSՙė$Z|u wVT~`w׮L}‹/8yBYf8p ̙;vˌ߱ZXn]`Vضm[̌UVe͚5yŏz~ Sz)-U jՂ;w7oAv;vĎIJHH.\x1___T^ZZZ>}q˰a۷o9ɻ/ >ΐdhҤ 5k -[իWѷom.H!%: ^g&x] =*"!nDvk* f50fEo\29bXnr9&MgggDGG#88/OOW ФI>}Ueff_>ׯw޽{1h ԭ[ݻ7&L#Fعs'6l؀VZ}lii ԪU ׯ_GӦM?xR]UWaW;vx5a8, ; ;'ѣGfRRm6>xSLa|| ޽{w^c,={/^i``t_h&4ԄD|1;OX#܋#6k3o@DPLLvJe/GIHc+:3r~9q8W^MB/sgrhh`@Θ1̞;wԩS yp477'ʕ+y‚˗ٳg~zxeEQ__G:{,ǧ@2| GY/?Ƣ&}}}ieeS.Y wlݺ5IݽaLL1 Ebb"Irȑ0aظqczxxPR}2 A.ж@ؓD5+l:rڡ-/@k옚:'⾴ᑕ/{ağ$\H !Є.`jcw9udV162e /_L044y3f=z`=ĎQ$bbbs׮]cZZ+& k. t=)и?!Ht!ўDOe_) {@ ~ k/r ::2`S30z)'⏙+90M di8d0Gтw1#ڨ!/͉@ nǁo+ps[^d,_<W> }Iϰ0FFFzV]]] 7oΛŅcΝټysnݚX^JHHѣGb}ڵ466.0RQUVTM: 6u gA`BB޽ˡCJz;wrڴi͚5ݻR%v"I(r…$-Z䵈@& hucNajMfyi>ȩgVi:guG*o?Reff&o޼96n'O/O8w_bb"/^L333d2:88?ŋs޼yl֬544*U~~AAA<<;t@y짟~bV d5*yڳgR +>>>T˒#qrOzjƲSNR?|J%55vBȑ#iooOAɓb_|)ԩNa$ʫC%%Sj@MW.5 >s`T͛ cQmdUY6稀tݔ2kIm=9{.ϱgkhPi6¸,3&qi0L;>>UTƍIGGGjkkѣluʊhllrqРA_󞟓'O;t7Ç7n+z*>\ })ҢϏ ѣG}v1d2޹s=p@֫WO%yyyGT_~z#Kiii%E̙3LIIWZt- LOW3=]-xL @4x bDxN @2L B0;A4XL?Ee0qwެVV`M>O2a'G]d`v ;+ObXm$~|U3S;8ؗ@l'#HJjLGWfpp+#uاOjjj} wɪU˖-KSSpo=oُK.5j ;uUV}#$**00rX/s*zeXXrR@O?Ӽv5TSuVnݺUŖZӧɍ7Ԕɢ 0>^E 0+×{n|H S9EV:!2$#R_kREݻw-]t2صl6񇉠,@yXqOM#ĨD@b@^ R>JNNfzB7|C ߨj~WР ~z9sr7o󇅅~#]̟?JEUS$xիWǩSо}8[.1`ܻwvvvu)S ##u?3fg;ȑ#bG+dO)y\.Gǎݺu! ѠAId"F5c@ |U[ cAmt6~a>Sa[Bhm )8jsw){F큻ڀt7 &XᆋpHTB|?/ԩ߸̍v --- 0J|e\R 333ԭ[tRlٲ{ex>|/^ŋ {Ri{{73gbcce˖f͚~Ћ*Rm...}֧Oܻwػw/>ƩS;v@$;v{>>ɓ'ĉbG+Q֯_/v}A)S`kkk׮( ׯa8DGzV &U̹]Ȟ\ P &뢳w/ϘTa a&vk\:i9S@: mHH`$9,;ʼΝ;'N|vpss& _~pttD29{,d2d2={Fa033Clllޱj5:t[nhӦ Zlhii!-- |lҡP*ŋZGvvvػw/{hVVVޗ$֬YSSS޽S^=O}}} >#F(ւ`ʔ)e˖ywE6mPJ/^:FQ<|87n…4\Dv Tnī &BF+$s4: De #Hrئ%Bw<3h*)/ىyY`@r*a2f xA> s#{ܺР,(WG оgydL4YlZn oooƍcϞ=k֬c{?R0k,x)  YZZR%Fll,]n]lܸ2 )))D||FKol9# ,WK3]0إrִ9 _!Ym-M$ QD9Usʲ͙?~,H 5H,"LXu+ϰЖwRuBH^<{lNʕ+W/ ё˗/'RWWFbJ^{NNN}t>y׮]>RGP~7BSEFFŋo"̙={PTnuֱ{$ ҺFy۽{8x`jjjԔZ433 vzv[lT Kuܙ...~PXZbtt4NJMMMZZZ˛Q]CC4ի[h *y OUxx8?~ZnIUR%l޼sE޽affwIE2KOOѿX[[^zPT:tJ1cƈXv\\\pTZ˖-CQF mΟ?,?~۷akk} `ذȾt{Ku/_施Ȑ݋C@%ܟrv7d9 Ⱦֆ @ Beւ1x'~ KxF CHA/;HEDY/eOω;0O }3rn?}Mp1;!eJ QzqWԵGBGK띿eaa &`„ x9LLL%K`ذa;v+cЭ[:͛XXX@D^lܸ={o?O>1j(ϰömJc-,]vD׮]ŎVI^uuL6 ϟG͚5m6 8طoM6>^,X6661bڴiR@lޜqbr|yz)rKsY Nxi:n@7Pe)9u x939z# LF{>'}&ݸ#^v|)nKU9_hmHs [AK]&E[bWgpwwDŽ Pnݼ077Grr24i &`̙YRhQŋ$FU.̰n:,[ &HB,[ @@@)L:pQ$ iOΟ?ZjBϛ ?#T*HB.#<<.]8z4 M6Ȯ6:Bn"9~yܟsGn@ F" b`Tл dN` )j4AP|D %Jsx~/u#wc ܁nʽ-Hct#/gr4XCVsL&C߾}ѳgOwسg7oBmmw$)1d|5:4j~~~hذ[Z1ʔ)Sj 1b ammNjXS*h߾=k 2ϟ?/q#AKP^Օ+Wpt 666'ODΝ_;v,԰/@.R@dW*3OHmʝ)Wnq[hi ʝzA|q kd&2 4LC/r Yy\ IDATsL)rsjOQ[eJ)w )_Ke{Fv\H;D:@ &~86)=+gϞٻ({f7J!@.E"~@  Z<ŋB).qn3Y<@BH<NJҢh !z>Fl5* Pm'nTɔZ^o* xj ms%x]gt "JqMs*)嗊l?íK;r\rLN6TV+)C3dsEKgY+~$]5j@=ߡ|@."WHUJJ -ZB >n8t:̛7{ѣ3fL>Gn 33 ş~k(uB]vH5köm͛?Fĉ^If`hܿݻ 1GH @kl e\eXz*tࢮG}J:,C;ʱk8鐴W!c4 50"QJ0$@%~>KZD :lN!V!H 3M*T;X~ _l*J%xv̛7+V@ll,ƍ!}@.IթSХKǎ')ݸA``v5 $ƠK=!:rlFvU1Rɯg"{֟B0ȶQRG0uw)&̿LygMB2T@6y2MOSb0_WJĐ&OgHb3\e ܬTpӗ$~CYjPdE=z|/7&UժUØ1c TW\1c`|2Ξ=k( ~#G⧟~ĉacc;ٳg{ر۷UvA}?:?#GFtH0bZ#5Bb. @ hJJ xJ)fBv}rl [ImU0B`jua6+]Z]7ZB3fb2kӎ Sz QbPӓTABh&*d0||jğle]E܈mRKDdd$.]˗/# >>>ϭw-L4 |ry:-^TĠAЦMB=-$J. Jܻ ={{3MEܸq1VZwXQFaǎBlx۷o#::qqq-p+ sO%O:D)U*H:'<^$K@>P- D?Bw5R.fp^'C@lQ\a(XΫ^Sz*cLUQYj"uL%N& C5$0x(Ċ$;^FB Pvm,Y#GҥK?֭[x"jժZ {.atk`?~g> vvvpuu1q455qzT1w\`Ȑ!SskT "$OMB_sDoz|$sN4hk׮3hQjǺ%< o 3$JW))gд&^JQy8`$0'D^WT5 27ė*gLÕ͑yRJRϸz(@dѹVn*twq-ReN)IU.`H\ L,82΄Jxɓ'cŊXf ,x_m۶aHKKx ;w]vEf scغukL~QG7r hѢ/^lX׷o|(wЦMi&5ѣѣʗ/GG7u|ر[DԪ3ZK%]g;x^HRQRpHUxbw){VB`ho V&D?Jn_uW ùc~Lf/QȞhGWs%ms@tj@VJG% j(ЖR\٫Xx1Mٳg?EbŊѿlذe˖ŨQ^mW!CuVA*pWVnݺѣGc†,hVxݻWhftJ*X|9,XP(ޓ1<ׯC>>>Xxqx[rGFykO"$$>|.>8vLRSHl%Ƹ\RT*E2NL`H@,R&pTV_|d23A*f:# %'~+wf@DR䶀.fJ [[QA*Je!^IdIݲ I5П,wj8iQNrՐlIӁ + ȹգG0b1/¬YׯqС\!GѡCi&5~HUxx8j֬%Kb0xyyo$tRbĉEHH/^3f`֭h۶m 8q:ud8}4J(sdZX?(W\՝<ϟ$f~/0G6DvJɗ)مO-{* ْMeCb# 00W#*HVEՑ}`>Pƥ~ѷ:gi>Xbɇ{kY!R:H)*+V S殩)MLavr#O:TB Gw}ՑZ R J>'ŧ6*O$sьh HGCl߾* SLn݊#G#+MLLдiSTR%Oy*^777޽вh#33 66111R{qF 6 }Y~GnPjU4i ,Sh&aL2%Cx#oFQF ?֭[};jժ=V'Kj0}:eux?bl(RO^T44&e{@-@EnvXY mС>f5z@Rd5!k\2 I2ɋ3 A'(I V}?+*ڻ.zT)4d x<[kwB]>@eGDEgR/غu+ZjGGng={gϞ3ЬY3ԯ_ĠArz `*]Æ CDDmV\u:Ǝ1c-I̜9(W\Çj TVV4iƍX[[iӦظq#)ӧֿ)Sh4uȵ:eˢsXp!҈sE߾$c)-$Ga& xTb,Qꬌ}4qqNL i` H:j0Mݫd.y o$d SX> G@$x* ]!F|k(_;y:Ÿ]055)\m^NNN(fg pS[ù=̊]ebˆՈ 7l  /Dž |)-(';Z} 0}kة2s`h-N ;V\ih4۷/v~:UZz\Ν;#""C+U˗756c׮]رc Q!;X;vD!B"Ti&\p.\0[l7n?ڜ3gKlll7ƍ7k, Dp78yD!:?7T'㫿٩@sDc)؛ȼWpX.qo V1EO/k"G+ 3BU[ ?R R*:@]T '-DS5mQnRFĶ+;z*>E]p6p -lpps;o<0gΜݿܾUbCX[,|b8n%JS*3sepk࣪@܋Rݾ};j+Yn< C䧞tWdeQ[L`*TL0iii8v[[-[%K(VvINo3/=M6A,_Þ={^]бhѢܽ@pϏu\}Sj 1ZHW,yC%xS)&J" I!\St٦QdJ9^z]m7E`n4Ho :?Xg%4T\Z@R< Çq+^/ƬYp 1".AmLܿ7p$+HAvx\ijdPZ p w],PB+w^4k쥩dԬY/%K0^TiZ`ƍɸo&L(իjժV{???ԨQ['TR.]=zÇSNZB17H^ +V04(_reI`p;~E#* FQ}ʕ\glXOx aÆtpssXT*jժOOOtONw;,\5VŬY`ee/a֭=z4A@why%K: 55{FxL%wHPw:'G:@H Ҥ<){2vFWC*FbI )aDHL! f$&?RR\ 9, N6!)WWfz$UPYNH_|8Cy Z[Ytn۶iii>֜8q"oܸA333:wΝ;wK.Ԕ|IE7n09v':Vt*cjsL2$Lࡼ'!$D#$LHX!aKܘTeȄ vN`- ,&\ {ͿK)G JQĝKik:n #U%Ʀ)_0%9s&O>իWΎ/<ݣ5>QͰqvTxDcEpquר/Yz)mŬ{͛7Q6:ka+ X/Vi\>uTZXX0""°.99z>wN+\'5U$鉩Snݺ3? 33͚5C=/&~ IDAT׎n:bܹȀ{dt: ::uB /wXeChh(K.B  6D*UHԯ_< J*xٽzs΅ 9 "QDdN({Yh8" Yp766NJ=c[cO ;'SffYʋm4K| =/]X ZvjW[nΰX|+!TmhySPI;s6c/ޘ0qqFܿ17EPPzA^ZFA̺!6STprv=`j P;8fvJj֬͛7f͚YvAAAصk'®U[Cem իz+/ñ%gа5vKD| lBVpyq 322^^^|!wIOOOo 4 IV\FbRRpxT_@ܵkakϞ=ر#I/dVHJq:חaaa\z59f„ UVp;QM7cJjvhhFaV\̞3֗*$E&*@2"U产rJ0qRS|EH˄*cipA'pK, tLm$pXFwX&=6@N vjQyRL~]%J`tӯ ܹÌ nܸ1aW(nEѷ"k gޠgeQoONNsssNfG^~sԫW/3...c{f͚EJݻwBM>ӧ[>M0|޾}IIIoZZEQiӸnݺ<`@׳bŊڵaO&$$֭Xwfffcr-[Q,(2%%(rܻw/o޼I<}47l@OOOfeeqܰaI2((o4vpp0ʹ9poݺPvԉ~~~ VVV5jN}˚4u#O:$Ye+HE!UaF*E&br%H%QDMH4'QD)y)5ZB̓,yY!os$eSK "%L  333 ̇믿~-%|411ݻw_i?%&19O؂Z6~j4t۝;wzKիW(Ԥjܹl۶[KW6XlY9Gղ^z8qbFV0qFxPѣGIHJ?fff@'''~w>>Ynݺ1 @I:)Ҹr4Ck„ /x"6ބJyŲm'%|\QE 4@+JtY~RE)y} :dH5T#H'т\8n U')[E`E)y ՗J2sNڌ+OQgXvLu7gNKjŠ5C <=z5j`tt3 Mbb"׮]QFqʔ)2~5jڗa_Q)Zڷoٲ|aaaܰaEQy+V|1*ٳ;UP+ %t\lu:]%T ~WHV].]Z>ieeeHc,Z(wɖ-[ɉ=z?ŋU*=<ɋ,XgK._~a σO>y8Rvm ˗/Ddd$嗧f?PLK9s ?66ڨQ#o*(455-P1qqq,V 5 ˗/oyOggg6liaÆޞ)һwoRرc={^tfff 9s&heeƍ{Eǩj <ضm[`߾}L+WKf٣G~W:t( d8vvv k֬I&̌{~yp"=Wnmi6tDqaN&(JQ$'P#R-*cbK @ T$*Bb I&1W$FG7\ke 5X-+UKdj-(Y)\$J'P=pW4eWvڙZŦ>mǻZЫs!ɉ<|0 R?rTO>q_8m4I9۵'Fq׮]9m4-ZxU^lٲ;v,?w}QHU`` ߡ*FFF>3OF۷3$$ YtiV\^˖- UT3ghkkF-R4=zh֫W(]]]٢Ew;2k֬\3t\`YD ݻ/^/ݻwgvؤI֮]+WBզM={AAAtrr2\̪Vʆ R2..ΠF˷)4! {c*Ɲw p\#+VA2RTBMi^TP/(af7҈ZbHL!1G&ZH UPER2(+SklYBAt΅]V%Ȣ?eFEQ33lyfȠ ٳ3f0ʢ( [?M<</T^ԩS,Vo߾ͳgSWARR׮]k?|riӦ #LZwFpd\ƴGDDDU $Ra֩S BBBheeE'''zyyw8Zj.]YYYl۶-׮]˻w/xjVˆ .&TTlҤ lp߽{8e)S&&&8q;< fϞ=٨Q#+WVVVZI9DE! V8)e\U+_Y 'DHuND {=aGX$J!TF**3ٓ=E"mYYSjŏ:4IՓHLLq311gϞ~qqq\.>^ LHHeYq. 4`ѢEF\? ^_g@#55)))077S۔/_-ZM>Dvx9I\zʕC~PtiL>=G.[ v¾} TXsQը[.<==F_'Oɓ'ѧO^:WۃڴiHKKCFF\\\mDD6oތ /_-w1cƠjժyߌ3h"4l˔A 9(KBp( 3H^0 @gGP,äM'mB\Lq*0FR:i` iQ 3LJD!%bP&:YEc4zrY% 7⭁tkH-j `О{q+T@Z(Z5ct˕zB͚5aggK.h?''' <hԨظq#6n܈ɓ'cҤI\$L4 suԘGxd$  jtΜ9h̘1 I|7ʼn'Zw/c]yɔu"dzXbyݝ}N={o۷s=wYYY,[,;̌[l hZɉ@??nf͚ڵk9nܸ7j6#Fp޽ܲe -,,_r 111fV(ի_~W^(LLLUتU+T*k׮ܲe 冷yT:88D6XjHH5JVgW(׀(T~[VGTNT;uO^ ƄGtl^&Ҍ6ji?q^D-$J鶏IXЕRUBNkisTkI,$q6)jqg?h+hG>VV|:PB#x'VMR_hj-d'PY{;wNӧ9}ttW.)PpϞ=lѢcEHHH'lct4ڟ|:v=Z_2E1]~c?(UJn=zƍիW~z?}˕+gb yz)}yqܴi͛7~`Vhɉ9A~ی͛7 N7offf NGQIkkkN2m.]ʩS2++ݻw$M':wǎ˞={֖XX1S6oޜ+V`||[mҥo?`-" $~%bꮧdȩ+ro3rTdH pEMLL{bv4L_]ٱ{C0Q򘂲JzYMbE5 GEbe&QDSFwTXZ\IfRyLXO&!B a!{&,s.0`Y O.S]X.޷kѻsjc[ne"E^ya&22 Z5FJ5]狉ղeT޽v8HUC{ĄvvvTׯt xl۶-b ;wIII7nc?ʕ{L@Q#c $n۶$~ɜ9sJ^Aq9sf\r5b͚5 )337ΝkxE<+Flo.Q}RCXO):1tefcNW"J2a9EH}?+gO#_O-ϊf|F ;Tv~% U->#&ZLr,Mej SGlA cHN+]C ڰ9@J :()5>]I&[8`% tϩTDaƍh4sc8gXK޽{7xɴ!!-S?G ).\3fPVsɒ%4F;wvjHUC'O‚]veZZ}||Xreiӆ^^^\|9Ϟ=\99))_ Ċ+?NZMoo[`޿-vMN}n޼I++.Yj/_ӧBWW׷2sO:>}坚~ )ErVYzTڊarUKrRMJEWZa!u(t\H{r4T9K{R&ܞ UP z&/ef՗ݢ1%ӔIV%cB8!:!C&V̞i%0hND.O$LԬEmØ]L&G`34g94|͹iӦn|r/^<_ -(oUmY;4="kZ~QFWҒHU*___ٱEo43H>r…/mjMΨClܸK'*'v)))X"<ۮuOٵkW6k֌$jPœܹ36mJOumHeOK",a"jѾNyR[9rqL:k~$C `&t,D",3}YyD85HU6İmlSOZQƍJOrrI&ƱjIFZ*SL&UTdߑhMM@dW&kŞaΉ39@'ƢLt2eMy!+W|hɒX*!۱qgW~7ā{l 3#^:Y)))/y.\HQ.~ޞv6?7!OoTTԩ… cԯ_{kHU*u+@СCO&"{MKKK~Wܼy+ *_PŷDQ_|aP~G8.\ 4=a̘1,UU> IDAT[YHKKcZZVjhǓlѢZi>~զ%؀ca<XIũ{@&.$d&COYvXڇ-{զYӣx)VV ,M;w.k޼39VX+Vpٴ0Lrt֍X҂fW&n5-[X['yEq}};[]DTXb!6&5ƮEc%#cbI% *QDKew y2{33g=\\Js7Y~Z}GY7%M&'lg"˻iW:5wzST,-777:j/m5}ie!gl{w.L"J0@M|95E:Hgl:\Ѫ:&z6$*2Zf4FD\S4(/ g2ҁl| vcV ū(^X~=ه\z5EQ,qRJbJ8l0ysMnݺ_~ɚ5k>}_Wvm96nHA^{?T9r$GɧORn޼Yo]r9ҥ$ToNqow9d9(o2Tta0]i|ܛy߼#.˝;w̌ 8Ɔ=>/M4֏h;n?ŮDg*5~T]{kT)X:)z)\UӲ^͒^.ofEˆLIHR9/4KJiu8.ͣA@U]حŰܖ/^֖ׯoH$̌ fddPEΙ3G{\?P(أGn۶M'' ehkkKLFwww5UԪU(HجY3^~x)9 JU#JUҥ)9vX,=zDD;wdwё*T;wt2fA9<-,,t:t% t:nQseVVvvv+uѣGׯ/po ~ٷo_.\Gy燊˗s$s/y!IM3gZ(4I _/cǎ#J%UI3w8,Y"۰yts#qQ$D:=z>\5l͵byyJMO db&1 KHℊF/)y֒ TԤ\P-DJ6h y/{Oq ƌDEx8I_~ahhN(rT}zJ*_~yooVy/@T޽{`ժUyeYΒFr x%q{}3o2؀(J/5V $fdJGkIЗxF_" ql"Qq&jJ~|@I9JL8e]&lǕ@&%%rZZ׼|}}Ad[-P*\d ޽iPgϞ=oK>*U%|+UE!ke- EHHH`-hdd/_dݺu ]ٻw/r^| ™3ghW\9{jwYJO?T$r]xsainn^(Qu?cjǎݻ7e2̸lٲ<ܹ3iffF ZYYR^m%QXDFFrLHHSݿcrHOεw_}Uo/#lf_z>xNf~5qP$XBM}íA`*hE1$FScM%Y'XB{͍|0 [ 0((PSűaÆ022B˖-Vuԁv܉>}|e۶m8<֮] ???aꫯ`gg%Koffx{{lW\A&M`aa-Zয়~5k7@"O>ӧ|}}ǣ^zhѢǨZ*: &lٲEj.]BZ JwKqDʖ-M6AE?Xf f/ۈOw^_V*H WD^ 42R:'AZ*T@LR af0xq/P: h40 G )/`@U)8u錀փd@ovB00 ҥKŌ3TZh6K.Epp0p14i2 sŢES9 >W^}{Btt4W *:RU(֖Z ƨ^z%Jb +WӧOGdd$VZUO^$BQhs>}Yf͛1p"mT*hXr% Exn߾ x"7n kkk$&&F8z($I˙Ag 0S[mqqqʗ/8;;k-[.\IR)~7Ԯ]| FǏ#,, QQQ?~Y߱ KKK@rPvm#~N{zۖw5YPj_Ef/FHP.AU (ѣ 1ATDZR>qW ޥ@ܹHHW"=TֈCi$F߶!<*ٹBhh(qixyyܺGŐ!C0a7͛7G1|pZ 7~h߾=''"#ł.}Yj5ÙSqFJRvҥ]ݹs .,ʛشi;MQ˯qqqc`` [n---ٺu%`ff&ۊ2Xjj*H0`Ҵؼys8gΝ;y%޽{tuu󜧤0,,#G[-b۷oa(UJs[2<+#/jEXɡ ).eځU@MuEcnڔfhh'L-2c|3|ǏOTʭ[rٲe\d^ʪDFF2::kϝMTT5kM7l0)ײGv,Qy)fdd1KpB9s(H ͛J7mذA]Mjǫܸqn:&qȑs*8j dg`z`[pZkwbTJΟw$UTajhnn5jp̙~z?T>xgΜ۹pBm`k֭[-5X|ll,wͲe"ϐs%lkL&ʕ+WRqÆ 5jի5rHm˗/{VX1G9 R,8lذ<^k ԩS'8Hݻ7͛Wds懀K\\ v9>11իWgƍ˞'N ^zj$9h#?*U$R5uTN6{TymҒqqqIxEoZBIrYXZ5zxxp477'Ջ\h^VXAgg7F:P"VZz[J,1Ν;jժoDFFjF:uhC YƏcBkΜ9ܸq^}2իWYLh*9rJIj*a_~Zgggsj,hc?*U$R_lLٯr8qձc8tP.]˗R[nر|Hxzzرc/s:sL))) Er7a„s @[[[֨QZb^8z\Q{˗/yaVyY4ZV^eʔQu߿666}cwORik~n  ~`y'vI''*˴iӊl۶})4HOOgJi&YzTM:m[dN4m۶-AY8'|B333ZYY[n|(w2[A^.\s.* |Edd:uԄQO}zܻw/wA???ܹFbɯ=zW^ÇyAڵ+W{rʕ9s&?3`Ϟ=ykYrX,-- -ZĆ Primm?/_fTTkkEQ!Kyԩ|ŞpƌZ+j#f̘AVPxϞ=nZ_<gΝܹsgA#Ajj*CCC٪U+>yǙ={6OCɊZ}`ffַ0(J fE [jšCRLssslْGA777/_>É ի/];bQ_߿9^W9_δ#ID٩S'֫WOcj366~2ߛ~( >~uv~Fׯ_˕+G޽VQ9S|v)UGFFϝ;Dž Ӵ~$j:UR숋pРAʶ칺EE޺u'N۹dΟ?lѢ\ ѩ#پ}{ļ^E.ZDY^%%%*T?oQtNϞ=٪UB8(U?ܜclbccߨTٓvvv9Yi``)S+nj!BqF< \JD Xn]*Uu᧟~ÇsԨQ޽vIPmQl۶`1### .'7P*rTlРMի9b6m4@ .dժU h2 gڞ>}c۷o333 .dTTn?bȫ)8Fȝ;wgbΝ;5G`:88… gΜ99rdzEE\pA'DqPfܞ6;JULLkL6YYJAѣ ~: ` oQ^˔)Sr_vm8qׯ_ݻwѽ{w=k׮ŪU~XZZn؋] IDATصk!i,'ND"3ݻ)?# ސ &L_b9.]#F@ZZ6l'r￿>W>}Э[7i͛7sŢE+W`РAprrB-t"wI&&&9M>شiV^J*_~۷/*Uyr9OΝ;믿Fƍ1e88XC`6/ҁva0sv~I1姰] CA쌽{ϟ;!R+4&Mϟc֬Y  QN޽͛7׷(:G@~ƸuVPrepGob8wD97nĆ 0sL[B P(@ݺuÏ [J={6jX `T" %H .R>U?cHXL/8o `*r*$>C;aӠU( ('D͎eS JoU) ͛A" ϟΞ=VZWBF"`ƍpuu ,n...عs AWZׯ'OONЩS|WRccÆ E=uUS)tكv!44vvv 0ŋqFO>y 4&I5ogך֐ڢ`tԐ JldaPwWUCs8pd!ԉ~bi&Q)952¦sƍ x)Ep?ssӦMu󃧧D-4icǎa޼yJ#r^,X G2NQ9(yظq#֭['O0Uq9AֲwY B]g d )@>C!|kKjjjHy6ZCkq֭[b9pttDjjTj 8'[~у.]A(Tмyst ~gϞJ1v7.?N7`ҥVHݻx90l0ܿ[7. `h?`W~hᗯoFko`װȄ[ij jģPVMslTp c~OódH@+ed0sAme',_!>jOMq08x# *T2 111ؿiӦؾ};5jS/~ɓ'U$pmlKU^JC___ܻwׯ/i K^^^PQ*O*~Xz͠~ծh۪*w9r$`kk~_~%0TXE)))3f LNiӦA7M|\{7<.]2Yrr2V\ sssTVMO_10qȋ?fBҥL&C۶mヵk"$$)077͛7aood[!,X+W",, ry~Ԓwto߆w I$%%Ν;%ǒFxMpڴiPTF۶m1yBdpe-[6mڠaÆq ={D֭!r<ת]"uF0dP\M6a pxe0!2P'P "@DiDÖpIP QjHa,Ƣ0+c~;wMjz<2|( Gqo*avOOrlٳxaW5j7n CCC~=&M???\x7v*Ux㣐|ET38vXQMYhٳ oq ZHlذ }~nܸ1 K.(J;v .\%<<</ΰ_}' DH @#C pHH^ 2fdᨉ~cerd PC C*aV@$0)a"t5%$SjUE,R) ˇ^(QB*UGlllQMWt֭`*Xp!/_L2kP(hٲ%zAD䇳gB888?ƌnݺA :41Dgdhr[R P) J$*Y]W5LN1Q q0TP*.H Ld @M@KfX2- D0k>)dfHM{O+Ԃpzx>r5Rn=F=ɀP@z#aaa%KpMdffȲ=x`@V6mL0 ,(рwŊ+0xRd@G Eb2e /TR(+T6l؀㫯ҷ(Fzz:Fk̷=z@֭uZ箸uЄpuuł O?M4ג@<D#AGP@5#D JkOQJ;!%P=v8R' GB҈"B4!B< $$^B" aB;e lI0R!@cM!R95v@rD>e0h, < ۈBͮ]PF `qh:I&hٲ%l٢)'سgx @BtИ򕀐E%etj,J!@!G&* +$^Fpinx~)7!Q,_cǎ}ܻw]v͛QbEL4 z1<==?7憰0zIF*ʕ++52) d)t2""k֬)zF5kq,o_5 e| 4:t@RR,,, e@P͛[. #F`ԩp9;w<}J̞?.&J`e)dJXؼA&_!FeH&H5 "B ?0-_Hxig` wëh~α`(Ri\ $YЬ$WI))2A$PABT0F:dPACH BaLȑ҈A9DQ , e{.%gϞ B޽h.d ?>133éSoQ R " ׶ѹs /99+Wƌ30|pt &&&011Q*ذafϞ \e˖噧+ ؔhQYC%J?CE0 VH"PJ " #ca $I* Ɇ.S1 ^4 {HB%S`MֆAdƄD i:rC!0DdB(a+u"Lx ,?9XBiK{F&uʖ-ŋcÆ  \./1Gŧ~\ӦM/8p055ŢEеkWڢzkˉGFvp}lcDӑt N}2 JN)wpE(cA 5PIpfpNƏ! C*af p)=S(< T4֨(\ Rn+8U 31H !g& JHj@ i?i-@$P?p1 tWFP*Hxbf͚ꀋ/}8rkY[[cժUJ* }I&ѣƍ˗cΝd8rׯ+WOرC!A8nO<)y 忼Z \EAAA8qN8[nA.X^B; (b,%TO7֭[W/PT)m"m_[nHKKCsUVj֬$Xhn"$%s1GCP# e:J 4t8x2x3A Ȅ0@3TG0̑  !bs9!arkh~7!FQ6K_9g;g;gBh%H1J̄eZ ԉP'ARC"Y~TJ!P"&\E@{_`? akdsTp(ݻ %95jԀ+.\3g/_~7|-M3hРDZqF_>SN._] ͛7>}t\rO<˗/ (ǜ9sf[!H xxx !!AӧѳgOX[[N:С:t耺uݻw?^cRu…o\.ӧ?HSNN[)#F@EԨQ6mҋ %66jӦMömpuH$Q( IDATt:uӧOѣG+WN)>557J%zƱI%Th-\B*ALBrxҫ𒞁'PPP q!A ̐c G2 WBmF4" 83wYZ'fi(5QX^Jz/KB #հzy*Rad 0B*:㶴&XV+Yk+  lx 1X 1;_:5kݻ KݳgϢUV8s 4i־ kkb}6ϟP >wjԨQӧL&A&e˖7o^a˗/G J2ʕ+e"11QߢQ[1ڵk@6m!C`˖-8|0>-[`Ȑ!GvФI\zǣ_`` ??|၎;b̙$Pqc7o?AŋၳgϾq(ٴiudTPAorѣ\ǏcѢEEa`` ;wƮ]r,ԫWo?[x.$P`%a T02[sRA$X H%X iHTXC Q^ uqqHx8~=)J _ 4fX@O!ƒ&1@c D@ R#$ָw\G= F@P1ȀC*\x;EhX 9Ч%ڏ UԖz5jSNEߑΙ3gЪU|7c ̝;Makk]vM6y1fΜ;vhTժUþ}I/j׮ DRA& ..AAAt+$qmԪU+_׮]Z2 U&?^d/FFF8p ƌ5jopp0VXwxTgzz#AzRU"*"MTP*x`C`"K* MһJh)2qfL(I {y$3콧ygwӧcnzBTUeҤIԬYԿw(+ ?iӦ%/Ξ=KZ4i{k/:uAi&N1ibl>%֣XfCʆ˞ J X Aw0 (q98*l 8^9D1߅"0F[(I?y o_鍗X$ɗBu\̜9ӫjР>hqVGeǎ7P] F D5jƍohgڵk͚5{kϳ}]A͉'xw}2e WiӦ˥VѣG9sMGyFmۖ5k֔.֛M`̎;1b۶mCUU6mѣi޼UcwͰaHLL`0駟^Wz(ɭs[4UJ3\.s4$W_}g}rMݛ .PN.\x[ˣaÆ :[Hpp0˖-+@ $}CZE'ap$N6ܸѓGDB *By228Cq2aDGPb*%6:Ǩ;L R},Y*s߁CtQ@> RVnH32p _g\h,QMh@%ʐ z_19t8.eB&UW83:9=EZKYjC>iӦ8[z^nK,nݺ޽HU:tzl ٮ];9¬Yشi0}tmƲw^o|;a6?Ol)꿝;wҺukgf֬Yvڶm =z(> n 0m4OZju[]鳲Xj+W$33ܖHUbbboKs1 '={aÆW_Qlْuٳy'8tP";&MD֭fԯ_˗ӡCbFRUĢ@y5-o7n$ 2XP{ tM2< .q!T8f9 R#|&7ZDJ\upSWS)Nb3g6)Y2tu JE.k@m7DrgE,:;EGZX$M7/~fP H(I+4nUU3f e{#=znݺpbi_xbB5Gt#:H",É;8R2maH7eפ,X׸cߦMΜ9`UV1"SNy"_qA"&Ru%6oތbaȐ! 8~.]cǎԩ~!-Z(J$̙СC9uTGUŠr\);x 111$%%aۯ)Wk׮v( }o;1$%%n{̝;Pk+࣏>jå C }w]vCUU^}UիW;wf׮]4i҄5kЮ]*NbӦMl޼M6q)@k]|y~m}bmˣ*$^N3!C'ZqJwFXpDž"*BeQmqa8] #$ @qPH>q$I@DL_ZP+͋pXPuDsQSD^P12fN݉)KlЇTVpq Vs r tN(XK||<*UܹsʃmƌtڕÇY {-∎f{=>tŠ+8x kp&0 lܸRK4ioQ:Uh'N,`#T^=ƌoA^^&L(tADCr nZQ8=J&MJz+ JmqƬYGy-[x@#3ǎ͛7s9$I~tܙpevyۺ,3XJ #LL{=zdOH z&p'jLeD8JkZ*́ :&26gfJ|6 ܞeOQ'{n' bH!\1T\ZӧC;TT9.x5Y a̙ȲLiӦ &LF𷫯)ȑ#Xr%Ԯ]z{箫- ֯_,Z{իӻwoo~kziΆq]4h/wAeFٳg{9;v{|DDD0~xt¨Q\Wx(vR^SqdddjժFb޽oߞkҠANѮ];lBVXr%IIIl޼͛7^QFу֭[ӲeK$\222ͫ*9["C*GT,FH0ǎ7"!GA#nر`.  v"bA6BR rYdɆFpP`P{ I"秈4@y.42>$RB."Yy@ 䤐a!YGCy2*_TH z/v gP H'yz#C!^Ӂ^gT\tS]rbcco8HJJ".. $Ib͚5oߞٴiSw"5kF֭/Kz+Ƅ HII)mC1hKzz@-x7O3arL$I*u``ذat֍_ԬY/^zq1;ԬYb#UǏ{5Gnn.5jO>W^)bcc߿ dKZl͛ٿ7ŬYҥKUUܹ3,_k3`$P4-Ts0 7 ĊC,# ybO.PѡbJ>A81!L0„[5D>@<7zz~ K=/#OB.||dI4ݎo>o:@^W".A@c=ĢQFՂD!TN|Z.bg8JvhPcܯ sͶy;?0f_y$_~/ڷoO>=* S"m6>|8cƌ)5Zʿ$I1Jk1x໛P/}3Æ cȐ!?~*U?Zjժ:T^XUVecȐ!̜9'Rn"]l_W\ɨQJ6 ٳgӥKJaҥ\ѣGz@V^:yxjҥ9r3g?.#O]]O k,vHRF\p0=|,80Ruj!r.r.ae"Ȥ 7'B0DA9R(K*denjrzv0-8 R%*LtSf4 z#<x.:Ȕ)SϮ".YYY|ODGGܤE@ZZ/UUС@Ϟ 88'O̙3 0"}7~`%"!##Ԓ_f?o:t#GdŊ[>ƍSF ;j(V+:ub,Y;RlY^"ݕ˗/ӿʗ/ODD:u"33Sb MFƍٱcG(R믿ҦMR+$7y'Ҏ'O_4nǂ ѣwV|ݻ_>/iXdl23Ro.Jϐ&L:Ӆޥh=:Tlr6B!+ݍѮ`p]23f; w'JըiD**6݈=&rq ȂtHasaP rO<@NQ5ho NAQ"+T*/biYnyZrges$A_IP;}]TEFM5O?QU՝ ? 2Yl6l`ĉ|dffr;מԇe||U# рCgBFHXd$+ F"ɀ"7)MdC;U,6tNQq (!c@CsZLU@EO,`h nGh]t~ _*=G~<3ztjsl.B6X vZ1Z,4W1I:ؾwl|8bo߾ru݄͛ӬY3ʵQ BիaÆ^QFVXٳQ￟N3{'S "J T74${(HvJ9I #`Hxt o D}l<Y4iy ?ZbQwg<\),ª2n8ONA 8G/[Ν;ӬY3V\Yl^ IDATy$1o<7oeλ[.ĆN JzG1Q'O4;ԬYM6j"GRvm֮]{m\,3hРRm7'Oo_ߴ$$$0c qz[m (Zc]JyT!"brRzN}Qmp X @EЪ­F02"8h4Qq'.BS$nsH HAuk.N:-mSU$x\x"%/aHj|&Ahx^SK;&v([AbF#l\aGmzȌngܹDFFUvCepUN:uVZhA6mZ@qqq:J%зo_N8={{Kz;BǎYz5gϞ;{S݀ÇkrJ_xVGIU*UiѢEqDi&^}"_M8<ΝcxvAѹsgx V5bذa7tAl6dYh4Ktt43g$""˗odx#nYq(<́<3vb*\&A z:d1z،Y#lA'', @#2STL: ΅$lT!lԣTz$AL0ogѫς/$nϞ!,"IB7_!h+^V4Rj<GHC\.ǏztBŊ%jtDF׋wa+7Yq m㾸 X|ٯƔL9R)K:Ѥ{=]D]*_ANV`IB4tciąNH K] h*G)`eE0We.'Ӎjov+Ԝ]I'U)paPdtBՅ1W-A#M"%p)_&~cM"bNAEHNQ)]n"P$ Ah F '?g'{vw3DsBaA(tZp:Ϻ1kDi\bMBj g<kiZO nYv nj\Cj`2aQ:%--EUƈ#ׯ k6ӧ/E"UwرEĐaÆ \o{s)F'8r<5⭷r~kҧO/$-=iRçhVF5NM:Ql,Pc]+ Fk">Q$gr^sH* .cFb1?UtQ"is^VAU{pmP̊T$Oq]n}C<[ 牕CԡػH#%c Eɐ.׉.x:"`> \W26nŋ1|'FHUŊK\~~>[Tjʀuʔ)^1͇+44[gFc=h߼:vʕ+iٲesI2YݓSr4R7T8Q%",²m*g;@N3൞H >=yDHX7ֈ x(_C?+ֺzLjp? \t,_:F f̊B9@])) aݎgxo^0=:R`!r6UD`Q 0;T_ύϮAk\Mgዊ ̡.N@AԊƦɺO/%U[bV/,ӧO,X֭[SNtJFW^TF ;(,_GR5IPfM|P)>CN-k7"U/"]vg„ maVJ}] p$Ф*77{V̩J˖-y'7n\Io8x _}Uw^oZ* 6d A:져D"aB>JE8Kv{"PsMOժy7yRNeC`B;x1j}p%TNA(h|4R!6^R!rS *bQ]g'DD蜄 \Dt잵ТcHԜ }T&R~A(]yD:L Ho>!Rxff {4) % //#%q}>>iRjNELh! V(ʌO1N V|fB{W]~~+n`|"fB߰y'2I$#iz]U9fw~^PΕ6'[A:b%t CEsJ$BZs:rfN"U{>rHLRK2iP''X:;#(S .{>|5jp3PUO{#3gμk4T=3<#̝;6m=zu٦NWAN碢|(5j,߿Wo5jԸ͢ФsΔ+We˖ZP݂ 6lP8nԯ_iӦy}FA׮]_~׌СCTVGɓTXY߽$f*˒Pj+J+C@*o}B\ `F\7:UaÂaB2@R@A_&D"\|)GF,LLl#]RT7?_QGE.Haʝ_辄LdC=A#S!,AE=:BHԐrϯك8fd|# G:m~Fvq= P z!$Cy.F4'ښv1\] 1QJXywj]veΝ$$$v/`)))|w׌?x4ń{>}0k,֭[Ǻuh׮+VsǚAakh`IoHp\ӇzIt{Uy,\={{nYjqqqkb?_~;vM2qD V$77&Cy^|/Smyqg(qQ+ـlp+*xw5R)IZ W|H]!XOc$Ј8bdD#R">$BD!GD~t ݒ7Vc ADL T 78F sfD FiL$ԅW.ѦbN$Igg).|xrѐiQ=Wכ2p"<Q4ÁK)Jƍ$H-jL4sqknctfD}x4||, zFѯ_?ݺu+T>#8RIzEuG%]qך =M 8\`Ga6A7\`0pmJ-ZDrn7bbŊqEN:U t~hժ:{੧*ԛ822:{1|p ==_z}?`4H4oxBK woUeKZ(@Z?+CˆPY1H~njIXT;zU*aVX f|"&"BW%1B hTS SE,H~ku~Ӈ4 _$cWi—F=;bgm_ _[AEDDXCX)JD^ FdlipfY |SPl~ #?3M_j4ņ8|;->|o/EC hVلsiUډ\2ULKrCQmf͚_W_}m۶yfDٲe֭ &n[ox=m5H-,N>ǣ%qQpZ1:ȦH^e3bĪtm8̙E .RRRx1cF0ͼ+ :E[BHUBB/_e݂oDfϞ][)2FU.'=z 44&NdFrx>TQsj8}d;!'T'0͸+.0a9;?C;&%B(O~v$l8$YkakoAOCnضwWe/:%!O)_%Ȗ0& PTߓط '=nBn.ȗo2gg7a)RW9Dx n}g$*p7iU֑m ŅKX*qFX "[`V\R0 O16p3# {#n8A= M0. *I\ *~[CN\x -.qq^lCc*ZG^f MIX~==?3dƌ`ݺuL]4U~]qR8..[*oHOʢ_O x^"Vnn@ʗ/OLL v%ڵT7_ѸGH;Cdd$zq **ꖽbJ.)Sp9}٫>9rufڶm뽾rʴoߞZS8q"ڵcڴiTX{;w.{6`{;F=.?B㛬rP˅<8tj5,ur-sJ:ǩabH!+* ::=n#KB%ض&돁ADu T"'9–4[˿OR o'ƒɌj.s "KBs%"HB8/=I=h9 >?'GE<|)KJ?1oZp|)K3i 4LEAav{&8M5[MݴU}z ];ʼn)Tҝń(2\ςto8H/IgybpDܾ幖Ing_xν@֬YCvزe7۵kWz=*wѣ #88~ấ \AȚDF!,a=1-fP-@R>[N#{8zb_8sLĔ{)(sY .\ӧew޽*(PZV+m۶W^%bƌ+lܸ[J*L>>Pqbb"qqqjՊ/2aС:fɈ\.*^R ?Fx;HA7_]$3BWCM?@-06sY#XSTb9O8٘p"!ARq%̵>R8>;|*Z4 lkgA?hM1CW^z< "'S!L2.+ƅjP:$leB` *\9X8{:C.>uAFhٲUnǏ>+_({w rJXloߞqt7^K&2+#=NdkQ%YO'©?e;ﰳp}(C<ޯ(J'55kX7pђފOnT9NFP:ieٳ'/^Wq!*Pt__$R"FL.14)l9r{ґi{: U4@4Bك1N?{ؖނܕQp޳nlRd-T{MG\GuELK=RHl2磳:`em '2ȧrE'q$^T:H y^7of„ En~a׮]$''+$m;Ѥ\x_z uBhގ85m2KN_vo6T=/cv}&,| ]#4a"BP E ⣏>K:@&M0`,xߘTj*lW{̌-ZĀ8||>#wg5аaC*W` 22'z:t<'+yWy77ndīo۶.c&&o;_~/e$s#Inc*S*~X:v. kؐ_O!KL!q-?OFd~}b"i? ǫIZC:qc 2eƢEٳgޏ;hΞ=[[P /_Dl߾f͚]w\͚59|Ml摘Hʺ;B4i¸qJDQNJ=Jz+7Ix駙;w./c@@M4!55/Kˈ#iӦ 7n-,SoUUa0?iqcã(镄JB轃`HQEQAAEA"* bAEEH$@I n1f'C$kdwgd繟t?ɷRjuWJəPHG9a&ܒ 3:Biv^?TL%~ 1ܾ:<F+,cX@nO-w)1A;^D %T!ӽB%Qy*yDȂJ(Յ܊JS\@$/ȓҁ/YV>{q=Dee؎9i&w[';!M%䠁W{yhT&2=[c~'دf fHVsuNOडG$Ҩsf3ǹ'Ī%IB$uѣ/nM$I9~jYC`D$c7Oz=~ɽezt˜>0i@S0/;UVnݺZI@ߟ/aE2DMV&ePo???:w\֭+讀W&L >>5kкu f|Jdn2?yuVi_={6۷g,_^zѩS'Zƽ˂ ޽;6mp`Dj7PMݦVY+K<A7_Ů6k&~[cfv3LD\= t `0Aߚũ)CZ3C@ t.4N&|~M>@ow 6|s"("V&!)ѷG%WgQU!xr`X0G͊alskAB D:Y>9TD͔Tڸ쿱WlRy!ݚts(ԩZ}pw\ [p"cgv5bڅ߷Qއ|\du`ŊԫWf/JLL$11sׯ';;S2tD޽{OԩeREnUV]ESHJJ"//=zTR* Fzz:={O?`0p=Tv̘1dddrJ|ލ(E9^n((eu:0euolſNϵŤlȤEX""};{̅]C/t\nE1`ƅ#*}+Y1d|'䔂"R0TG9}՞b$y*gY/wV۲QSsw%9N[S` li+o7C݅w:JX'q"V Jx^/Bb:{!v!WC Z{/ҭ^Rc/_q_ncQP`=p H;L8R]m'WMg7IS^[V]w+VoYZz"..kVR$ ȍel&'1>FIz!c E~Bj2l0.\X}'7œ9sj5\jŋ1 IXx ^[gbȑ̛7Vkp8篿Cl۶BBVZҮ[ތV=\6|Ǔҩ_NX-|*9! d #^l8\e|ڙ-V@Yh4a4) lj "DM!7r ~f~-_oCw@Ec*qBg|mzw:m'PIT.PͅRhW HU"(P% +ZQ`r' v@^6L[@K%[l,ˇU~1H?i簮 BQ{a\ue9"0ҩt7~E]U17Cq1gx<ʇ.CQI.: Ϯȿl kOdzT">>*Ju/ D@P/\?Z}HB`o :GoISNm͂ V+L*VXA^vbbb0LԫWcWSU1vX,XpI\=;wdʔ)uklƍ*5 <]zK6iU<.;cNY@4аD5"kVC1dxٜ)a!Y$)vCȒ"x1bM t(CT@ʸ^s=,O;F׿nɉY9 )>'VԜoX""H%DzKۧHy _MhDlO0^X.$ g7p= yk?@Z=FSVB ew5Rt @߾}ϸ;ڼv;V2΃d2ѵO?}س E `Ec6ioAnn.nF oر#e0W>pj׮۷UVj%4{l֮]˶m.+IVҾ}{HDDy<RlذVBO^3DM bL>.]pرr͓/ g1k社lY)7)e_RɌcvA1+!"܎1]JqZ?'?l=ɶ\0p3lhBFzT}!>&4V ^{lB,CЩo!f%0hR b>ΛTpböf;X:$xD\+5Rjo)8Bq`a1WܒzеidP'6%;G +agH,$sl>Éo߾:""" &ÓO>Y9V^{֭[*B Y˾@jփڻw/mڴa\uUջJB$z){)tTgTBxb"### aDi:괹z{'Rxy|{ܓ$9D>"o4a_=IݠLBm9Do J  HH *k I¶z (@"e2`@,^=Z+-(Lx(bID.V'&}%63,;h0#dmؓ_~\}={2IO`E_Ӆ?p@A]G%l1ϜXqUX~ROUʼ666뮻SOU3fPPP@^^aaaս IϽ)KV&`*mnf]+/DΝٴiSXٸq#z.2Yx1#FTWQdYDÆ /PIRu-+=dYf˖-; lڴ Pg9])2| 8}CBl)c* ˺yr(z,YmbFzi Ѵ†}ӟh>_S38X5,6F"" q<~<dhW1k,L')q}oEfnIF 2zѻ0)F|4O,̔- Xu'.|yǒ Q‡KkDŽKH1 UeMx~T{jsaڡL% F3É};k-s\p+;~,ۆq-Z649xf¨o"jLrs/kh̊EʉRZqhdx<$$$0i$&O\˹ xws8H eXp! uv] WdKtdvJ-*4+t޽BWGeݺu__ֹ*0R{F/dڵk AiӦaZ޽;}Ted48~|כ ^BȊ£15mFq4r_}A(O'N'^ &0yZG@u>}z^HժU˻`ɓ{}$&&( ׯgΜ9jժ‘BQƌs^$I=sVi RSS˹&4nܸSlڴ6[.rIP z_=n)%ѨXqhd [BDUD^ԸM \Ԓ,Sm("[uXH7M;AMDSs*)6w)" ."V5< U;hՁQ\d>}-cJrLL~~j+QE Cekʡ۴rj[QEG=3;HjFqHp^7|ת9sK/U/^Jĉ/{)fiӦJCh.U'00L!!!DEE1k,n6nV+{16o|]gϞ;èQغu+<#̛77xJV8RˬY4Iu_b0v^JpͷstL=zס#WAv弹܊o<EA~y/ٰ_*Hljȉ t:pQ< rӹp[Dy`sM2?u}x a  xOɈǯǂ L`1S7x ^o»n7'OqTrIξ">Gjy.%f͚E1fz뭲ҥ FE]B*=AM@FFFlY;w.^8$;r\z IDAT[&r(t[:E7V']"5];*5nR>?8N'BKL|cNA0!e&@[@`YOׅ|#8 ¥ޮwDiJG"Zܠl3+J)uChh]h"͛ǎ;jUQ̅Annn9K."B'O>?+SU7|Ȃ 4n?>9֭[iV]iȲ̬YjeN]ŋs̙^Ea l rsĀwn:p7Gbkѣ}mw@'"5ԡ{R|ò6i>kِ _.AkV7%tGDEGZBOo'_B` w#j˜B0!2/A%- 0_^(Q! n@\)jE;Kqrcrw:ēz>.?(p\Wk]4W6nG!,_IЮ@|ʠM6 2]+ȝ3sL~Z}o6l_ Wz_I\꿚VLMMQxJу[nJT'6l@LL iiiս*c1t*|ӻQrwS؆t!rz)>KV [n* ͋]< xH||<<b}J-nh4PD` 7 `S)eEK=KIȲ0>@2XzIs?Co;.闆z7tqV czͺs©^wOgbTr4j 7vv1(R՝ѻt£>O?T1j"""hܸ1EEEս*e˖L2skNwҸ>}0uTo^;w2m4n*[anyZcȑV_Urrrjsg }$rT䨦n :[rC`ylnFެ.Jទ9f,5f/;F0Φ#ʇxl?(9F1 4<1WէOA7_9*ѥT7LM|>>ڡvQ׃\;D!ѩȏBt3LHݍQ,AN8rx94͓Hks~zwu}@=wmLX!w㋆Y5R@ 6<#,0Tyn8ߋMN$`졮5V( axT6AI'-?e1? IJ{;Ex^z>Ttԉ rٺ"hԨCٳ53bP=*_m‹/oF.]hٲ%111s\tRP#sx;vlv:ݻ76l(lٲ1>B\\,~o,tzBfvO,X׍g!FZت88p,L;,t4[]xxk,v$Ҫ򜟊d|8}%,(a"ʣӬ؈zCgk[>v2PvCƄJ ]D$7ˆh ۳!q s QQ͆܈tFxns^VFMI+^i$̡C!>mpzM[Dtĵ*+s᳄$M8ԧ/,md17Ʌˆ/Z}H@ngufA~ؑR5UO;1h$h@ksK1RIYmgߔHFqUnذazB% k3̙3{^#xMjY~ܹz RRR`ܹb. 3u4{エk׮ŵrQn]Ν=ϯ( wu˖-+3톨;W4lgC28PLz:t(&M"))ۻ7屑!5Ώ,nei'%h`hv@Ounzz?ۢFqZj"s>SL;jC!vQw0R[H|FՒ6 &|}gҵcL(15¨xV ;M^\z ^}"zEӎ/+>QR*] +%pil]^sc{9pbEqK*ڃjA09񨄪1'$)Xe$Ia(?%=>QԚIR4<|w^>a„Z+jGaMWPNnRpԩ:??V=3f̠SN2,,_sjQ@h8Ӿ!i0Ǐ"v %POmCII >Ep5YV>=M*z "S)j}ãos}SH&<7,7PIt7PZFZ‎aq5E(DBP"yfAKID}YViB _O8'H ?/]8Ɖ QADAY=*U~*$5$T-_.T׀L40;u4L{o2U!h[Ԉeea^Ɓv'/;~>څV)x=n~cu= Gڶm˪USNHGU~~~<7k/}ķQaRx%qEw}ë{)UFrr2[F[mW_}՛vf #f $$o 7(zD!HUHTΧ俑]9<ΤgFpU; e ]ilPwu=ὧð+\w!*5BCrQ#`3AB8)hӢ0–ϧIh$kWW|Y+GKf{wx=b U; ]gY3 u- , r|^ &"JPU<m@(Hf?iծAQā}!:n\~S‹(#"P(亅O2ߙpTAb޽;ݺuĉT xfϞ]kIUZZsaذa5.mB<ԩSIHH` ¤6˔)S{)U3<D+Wѣ$kq6U?,0,{Imb쵷&I&̘1q]r;xia)d}! Tmmw E%U 2c -P'Iz(FL+ln k9W|  ͥy?!~zRyi*Or৔_~E1k,^|E233kelӵ pגUhk4BPs믿cnݺ=e+EIU˨$Hqqq4|'W2иqc7n\US+} vr($poq0%a0x/KLH-phJ[(<`( _@!'oajY; ^ꛣ8X8 V-\3 n]!!_˅* GodX`b#Qjɭ*!*yTyӹVm>VtKjE+zp=a(O~xzy}ez ;a!!QFڃNs7fpZ'०Ҋ✵3(F+NB( ,(zQ8L*Ar6#&XC O!8@Y 4GGpb_)!6z`KgV&wu;wbECM]xY|y$&$CѱcGFU˩U1ୀ_BmP}.QwQaQiM6R͇ŋKe?g}ȥ> 33W^y*YXhr!k?w+WR~}Aq%tJzig'uCS7(D<$<~'OUc`[ڡK.?]Ы%xd(ϥ]ϕ h>OSØ}0*("InU$ItAa)BQ85(҉@MǶsE|A y*s "(BK&-5W&<_:._ZUDyB"Ӷ䀏YJ#.X Ӻ>%)H% /FyX\&|Ӡ3Ӷ#`Dܻ]4Wy)Gz\OKP0Z] b)8 [7V~F>J[zq8WRZynx0VxMHMMr]5Mjjjƭp6~;1!PNpf. /?틘#D2n'NO>a̘1:N<3ZߋQ+זj?țozy2f/:&B\.n"eJI&()4!\wvʰ Ų6X PE!c_6 W GM͆mc aQR^(ei."ذaC Ջ^zz/s oqћ`ťܗܧ&aÆtvM׮]^ +EQ:uM)_aPwH&*`IQ̟~׍ɆjuЭ[JW]*^'qpX >+>52 oό+}ax JTA7"5Ξ=.BmA:Ԉ%s泪Zexy`CvN^|VTdsp G _6BE~5e!4|k`f" jͪCqbX8 dE_ 3fTu҅~R%;Z- XV$+TeddШQ#V^ 7p^;:D⥃F~!()cgI3O3{FO>a^G'))g}eMD礞,l% EE:ـ"HH2z;̡x7|ƒGPݞ&*4[Uc$0rG͸iwd'ATJa;]׳zl qhuA4͔G&QFfR U$ @jyc)LMӭ݆/',DjQ @Dص aq8Ҕzt$hQ=QSyZEEe$4w$Hd'4n\SHR!@=wA0HP^bό3*|\Mȑ#)kw[o?RU T\SU{z8~G"##t,l4k֬IH&/v ]CH\4Iky Lnm~`ʀʠiӦ."EEX",ԋ9drQL@z\k EQ8ʲRR=fhF [nqޑ_Hhdɇ QCaK-ǽ^ ]Z?%XQfC7MVEObٮ|[ ##QP^w$~O)$|@Hq_.*i??mvTR%N̊u݈4Viѭ8| :ﺫb@9VbMBnj 8(I'>Rʚ!9=A~6* k֬as4IB 7=e,hkN-ZtMwɮ]{UaFCRފK 3f`ƌenݺ]t#=[1ϒRzMll,]p ^oO`0'@ (:< ZC9dd:]K\xErxGT,c RBUXC(1hXSC&M+@ %ŀ ItaaC,X{ N]F[/(DB@ %kT QN\04B$ 45԰C#W7}*t'JJ}JrDV|mlɢ`jSe|zN!.Uz$I0*n_H׉uDmUtnA9PE߅V4ŋY9>fXh$**Ʊ0-f~ 9 rL.J% x:2P GLz?^7ZC$I_~9~'27V w ^A G%ONII `͚5 23gJRt:ڵ+}Æ]%O>:歷2%#EN]2~$X0֒J{AFFm}؏~/ KLMo8 rdfKEf@A^uڏW(aqw=m7xgăIrYÎ\F&Qm_&ZHEnpU>@!= f"'䜁g 1WQ(ŢUVe)T.55 7Pn$mq! B?|=F|)K?TQ2PSw Ll_n *}ÿh+"#!25Z uM.&b w $ߦ6mņ lܙGX>=N}4e ht-3NOO'../nBDݛ{~k N IDATؽ{w50.T \~«/n{nё^9H:dF_;o~s'^ <f^^Р.4p&X%x0UAf (g]' ~ڧn>=Qx1n̈́/ap1dFUDdB ^= _]ހr2@ 5)Nӷ  Rl|."BjTfi(.*9P0#M”!j ҷZ"]jA`%f0ߋɬDQ fYO8HjJ}ljs-qF(rC]:UӢhH>am(1/q/yYӱx_ᠧKc?qKb[rtЊ[d *)_#GHJJU$Ax\c%(A;JmD$,dki-)2AZ=} h?״hMӐk?X#'OIɤ+i kwAF5zv|ą `/ ɍNl|ຶ8x DaLfBqbÅb?J x,[5urR.TTEqe]f/6Q 'kvNx5b'y<%@͎g.U[ۘmkzgu}LJG4hjE:/[*)5CC'5.]f&!Y5R)ِ( 1K&d>=mboLk pT}y#FL^E+rO'O`L%&L6$Iu +9W̵f]k ?xW0`@ܵkW,R>?TP̙C~ӧ_56CqԩuGiܸ1?56mڰm۶bmp8tڕիWsذa˸;΅|9Gy}Ս[4$HQe… ͽqTU{$܏3TsHЋL}̼0ƌbՍ3ک[őgoA~(]-2R\FdCA֤rOb!'Nθj5Z3^x߿o7o%/ɓK48q:U^'99AO0eʔ۵kWdQFaZYd 6SI&3i$&LpGqf$&&fڷolL>;v\=~CLرciذ!Q8WS!Iӡ'.Jcذa<裗7CR`i 2339LdX I*2EgfHї 86zq08qaƣDGA'w#%$8fPܘEvH҉fF0w\%|:2/F>ll?zaQU|.6\V.j={R29#"dCNLxK me2;H63niGN|0ÞZ;cL@;}| s7 'RJ*9ED!Sg3^QsY> {[8A>aMF.V 4*#\Ĉɢ !@! &RHJ5"2S th=cҥLts,.+GFՎQF1uhCP'뢡f*B^n|wYyN^K &F$+7ۄ1I|]D[]P(mNS+˒wP9 %$ǃ|(Rm^ڵkU;vcǎE AT_nQQQٳ]{n"##{8q">|Iؾ^z,_]l`811ڵkc0$ o0p*=ʕ+ǒ%K4.9"##پ}ʁIeC3η9c8-2u 0LH6w:QAXpa183}tLIefP}0j< n~tYva"'( 3I'x8JenVt;N,).|$D*#R$VGF!0KT!  WZE4z&o@\(Qۏqet}Qdlu=:o9=gt@1pЀ9DjW/i@qxCd5B@r"*|3nU[8Ǿ|r񈮔"2g DVVV,[,ƍB _:XFEʕTJL2(5k L~4;t?_Et?Nfz?5YF8ƅ8be^hl20JiNK>6\X% pa!O/U >]t@Sz! yօ?u$@N{!M,U` A!f1'1zg9`ߙ *lBKL P!ȩg9JՖLr \IqImlDIGKE|]ndi'C|uBa74ceCIo!`$dtܹt֍իWӢE ʖ-wՋ&Mo6ᄏf܂IHHlOοNDEEpy;)gff}ff&$QT:,X7nvѲeKxw/i2S̀o 3E$ kmzxEw;恔OBm9tꪏQMMZ64SULZ 2 +u*4Z1LDݻm7tP^v2 2c$/gI/ƙ,HXTF|GH!T>> @ɀtQsPxA^$^KsAW%O/VtS, 'IiY*Utu}}ĥoDf8Xir]{؄P P+KW|/_ ʼn4߶N6v|Oi%>RWPB=ر_sT?,4i҄iӦ… K5jr̤\eٳ'۷磏>SС=J&\ sg_6l_u%IZjXVvq;w,"WjUZj*$IUVpCqƱnݺ^!TȩocB:|Ht j֛E:YWESY vH%\.Շ 2@PnԜX`0[`A {> _M%le»P~탻C$f&8BCCٺu+ÇgΜ9 :4-$Ib%:Kʎ;۷ﵞ%EJJ iiiMYzuKSNt҅cǢ( 7|37ofرtڵP̘14k֌.]0rBbUV OۘzܐXC)=5+$T<̶ "#ݶ_܄亰c+ua;4~prѠjux[M'3H +|Vȟ[ Ooep: hd'.:ԂA wTtɧc`B6n:6p4RE"^\XNXO{SOn4 io;u!p'N`xX2__Ӻ!n-`:7JEdF7 ~_(\m*On7s., j{MKH#w{72To<_. )\L:aT̝ڨ|*NģOD* ܵIy(ç 끯gC'#3n)RyM*]RE L `ԃ0M/YcPom*f~ZZJ~ sQOGj.wl2~zq'A"rҺԁnK\*c"_޽{To r8t'NCĵ(S J"+K8e_ r &O|]U/.W3/((zz?kܸ1˗/9^JL0zn eˉT[b?+Wf66mv`Y%SQ^tKjH/@:P}ȷ7l+1*$ّz_u4 y;1=><i 􊄲tqsC7mUqݗ}oDF(4~:uE3<گ7iʒ-p+ò`~h³;i8 fW{DX 0frhZքN}?wϱ IDAT#RdG(ߩ;YwS! [CK48L504BX7+EBD]J'l~NNחQT1]t4"WtPm,Au>,N@-<*!`s RV&Pn!{G 2yZR ,vv|O?ҥKѣGQQ\?edYf޽ロc2f̘+="1eʔ HV^KUܹsٺu+'NS)Q\[ 2NL2M]Rx%:s:w]Zh֬ݻwB3qqq<JNb v/Yg,)wf5,;]2 շ;> Q}c afXys ~ +,teL𿰺X+NҶ&,OG8{#9r+j{?{DQar4 -`pkUNl'dF"*m*TNZ8 Ér$ӠA:3o<ĔG-]6K!R}d-BvYdda< pANA*{Ṑz.vJ ohRtտ-jLcCUz^# L]} V78T]c>̒fWOH]]x9-&,Y"[kـ,Pl;!╏O?:uн{wjժE5h׮]hD PzQkN̋ƟɛoKl[%;;Xխfdff|Qb[DEE}NuKs]*UU2|8~Y_4ݵk5#Zccv-U4~ I#7X?ו!܀\-Ty2nxSN5:@eP#W}Q'a1ePÔ,ǿNeH-ҙ`1n$aeTU%D~.&_ð ]P4 ?97 ݫv''o3_gKq&=,=!aGbxh N"DBcf8yLo襷<MQ9V50\^"U t^^i "nqxT3_TA Yk3 ks,Ԇs֕ᓹD=+fD2\~]NaڵE|.T),o7%@Q{FM1E[[u@bN9r$&L`ĉqۗnݺ]֌Q4e[st 6LaE/_D-ZPvk=7*Qtb0\\w*A w/e~mNAmc{ls:TUeرWݜHx 0]wMȗ5|3ktW\'I7ؗ>+5l2p-x1[ʑsMO0FHUv5#M.k"H s:WeT8 *)8 zFS*F#@ ֥܃P?? X>0y޴n.;Fx| GҶu`W: @&!j$Vq7"SMu(*ZvM@jktz=Gǎ9u#GdҤIԨQou҅~ѣGbŊY#<<޽{hErM7~F3fϞͣ>čT;vǎ+$oݺYd3d/&;Px=))n=܁޻9?UM7r<G=3E!44?\yz$ J̤>: گt7{UxirNꞇCPE戡 ag'`GY  V+?IKҗ)P i/ -g"1:ȑqD!xYuF 5J 8H;Tr$[Q6ArPmx~ZNӲ`!11[U>}Xp l3ڪ5=N_x~^qzC%EU AHސv3W,RHr`ȚO'AF߯M`}mlpjgl. xB/Ȋ1 ywF[ o 8&qˡs f| ]ECDܣ_wދ3xFt12h|Vs8zQVm h^T*$@Qɂ?8 Xt~`0r9cIe˖aXes},/3m4L„ i玐V^]b yyyx<|:W+h/PTݛu>~xW^dBz\%ݻYv-۷o'!!TΝ[H;v,Ǐ`޼y$''ݻYr% x^M:t(ӧOrѭ[7Uzw4adz!8K/` rsݺu#""su W8zp ,w3GAP r?@ 2>!d^B< rSE}2PWCnXq 9@ٽ>ڧ?%O,zc}ʐ=3O>j|t|[f%wEq_-x38 A§u0m9;]8!!-w}ȄC)EnLUJK`Ov3,;< = LVm;DNiTP)/ѣԁY6@lH{6¤^ݨ-HNNFUUe ~ W2Xa;Q@t:Q4txlB%*H9]rk;{*6TUoW^ e˳}Kt̚5niӦ!I \ݻw@rr2`JܹsIMM%!!۷vZxɓy':m4^o#!!yg9~8#Gb:t=>޽{k׮+zqt֍nݺ_sUqCTo) :uЫW/z_|>Zt\Z!IT@uR02LuIqëy;/ѾÛBPv߹k7AUˊhmD3_K A) ^ï;YrC!HaxT.786nH3Cf!5*wbTd!$ "$ EQUF7=Wp=/\Db_ӻ]Ue? BlZJ\`2,B7ЄX5@pXi K#IRW>[8px1dN'{=ʗү_->?~l.7ʔ)CRRbRQà 7../s|DGGz֭[iҤ mڴaݺu>kk}x9{ {8;n 7,߅;Sd[EQHJJ"66w^/ʞ +~C~i3ʡP`Ɨe³-Xr"y )!]IP):KW Pp--c(!z`x3dKXG1k[+ 3MU1~E: Up8  jVpʐk(xeLZw[*I/9x0l/8ڀ'-Cy7%ZNAFt%=ϱ$Jw9FQߜ! )+ާm/lsmB ,lTI]-Ɇ뛁2||@N7R֋nT4Al(=B*Aպ`PʇPk'T8͑7E!Ո޽{m6wE˪Zh]nZEzz:Ǐ'$>>ZOc˖-㏌7;V-[и%*8_8q/_5~Mz3g((((|][jEye̵ᙗ{9!?@Y8&m 3I_Żډw;HBsQY" FJnn(1E%])IgN;HN o)_=-: `r;M` /rHuX.iH9Qؽf¸PMS8n6pyu(n. j%+E|^Ge90.2TLC$l~){@26{zxк24}\.we9`4M;{ymBj2$WǮ<-w@f/ðZ׺@T |}>G.jSy(jծlN١ O# FL: LdM߿?#K}91l0, 4lMYHC}b2 '8 G[_ΗزlzX^YD>ICN0;Ap"?.*O|̐HʏaWFUvLnsz} [!0f(2B3AyfK G4> "Two(X= : YC5!(_*C0:<@߄^B:Ra]R5,c{u*P&HBQZ}35٪@m@* D-uU fMJ6NSyʲP_Վ]`HRg7x3g( '''͛7_6d˖-=k{Ga֬YԨQZOc…|G,_GH q1>b,|22PaG=G(g}OIL"u}VE`]<ȯ/ oF-/|gϞ̟?8b> c GqR /NgΤ]F8h+@Uƀ%0D٣ֻ:Cw p@+,vp?0=6sm)$Lr;po0j ;ү!k/|affkt?`0};lT{^ӫri]Ճ,;n끱л3sl!K~Ee.L"2WV GqhWBS6 6Cv#QzCUB"|>L:^z7^zד*RKCߺL IDATaCvqc]X,ԭ[PwS\ ]|KI Zj~3.,*g[۷s<>~X)/>7pʡ}||^cIGjPOi*n!!÷0wbVvv(e>]?!PҺ[L‚1( ]`4~Ny!_J+i,\ !x$d,{E&TŁo[j<|'է<͖UDkڿ,O ey=^?ȘwNzvIF>Z.Ż6(~K,xaTi|+ͷM`{4qGa_*<!;gB{)f#Uq j5ؚdc5!MkK=iѴ>WلΓ>l-9*AX5_ԅ#u^8CHh6y)CBA4g'$U[ Xٴ%A3\ 7St˨D PRy׼-!ҳj5 EQ3gwynw∲exPUӪU+, &X@lu֔*Uf{mr̘1Y]nvm|Wz%&nTNy뭷8qD{gAUUqJE uBhYC5ع=~'PEy=~(|IUk VJ a UФS$WuMsQ.;wJ%6>j%3嬠M7`'-L\'-T ?| ("6e#?6awx[^lHlw %e ?`A8\t*Ķ7g7ȫRˣƱ~W>Sd<$t8UD[d37oFƪTk}9 K/\<,'[)[,q!QCQ_U_ ׂC5h .wiI QԮF/"2Vn-+IBZA*W÷Jǝﶼ!#55K82Z,*66w} J.n… yGQ]7KzoJB'TB&]X>(TBG@R)5"B $@dwe?f7!s]{ewfvg6;gr=2ᣏ>",,qhT9QQQd2K-8p 2]p!ѴiS^|eA9'@|E"W7|V8 CXm5MxfM/U%Фg*c@1Ξ{GCg%b-pF$Gb=d q3ŊR4QFjՊӧQaV t) I7C{tUD@z,nX 5R)ťVCsU/GϡMops-!}.u+;-gWݕ8{(pspm¸y2_Jx֔B"xu,h|(4#ػ^slJI Co:n)YgB5wsEb՜o`>< CZQ2&W=oK>n5kLR :7ᣄc՞F i#u4 ǮPfM @nݹQm )'|o}/N6_,@p͵`!χgH0k )\I7 mmc:G_=)QNҕ k8d;  RV4N J_*y*eϷ_M teFPYbyJF?]oЦMT*ս7~jE6l &88S|y2@?)Vg۵ŝaORw "22777o[/ܕ+W~Lf|0z=:#TnNnd kP-ҏ ?!]F;t =ܠS',urm @̤DV d*׸qckӦ?K5~mpzܠ~QCk# /`jHA'GכtGd@VrJ"+N4 p׃1nLH`zɢb -Kqf[4ˊB%#tx[4Fq\+G`Q\Nm&9 ^r&PԙoQ];ۦpUUذa4Ɠ)"<\#Rv(;5L˳U OQxMB o9_RIlWRa͚5۷XƏmf 2+gs$a]^r gA,&{rs(`~ ^QɽvlBIzq͐3Tj$Yz[:Q fce=hu\6",@Q;4t:L0HʕJ.9#ސˀDTy*V(! i[GwM3riT*ļ˸ДI|i˹lzˇTb| 3@~Ww ǰIR}ʘ`>~_>}{'ӧO'//q4TNIIaȑ̜9ng0'-- t”)SzhdŊݻ -ZDʕٸq#j"44o̤ŶM P%w:cHv+egT\&ßEk9%uSg8QeGXG ތA' 3mxfqY[Kw;՝g $ rp%״2@=]:wHpk$b.S*g2t! $Ac]9[$@LsFJ3ε\qDCʛNKӱ>L e;NhHstш.͚%y鋎:+J4%#2ze'syj`0WÖfw9'c"mơT8֑;>dFMNoБW@o{> 6<w">To@m_Ⱥz3#Z*}W? eh#11>rg^N'H:$l?rAbY)U4C&"=U cYwV%33|z}q033]C۶mٱc DEE{Rd6##UVh~DGG? `ΝT{߾}Rj=hoMj4h]SԨ!fݻyk.9ФEC:eHaR0`U%P4ko:hM}.tFĂ9>q|cg7^\PS8e/ Nۛv={8`ƬVrh~US56TRg7qCưe4d55/uy\pNO5p/tdo%QF\cwc r L!TQT"u UFrv_+Nrt_6g'cACgaT̸`grM2!eOoĺ y򷤪Am L1IeU#FT*6m?QFw}w}J(**b۶mL><==7nf,]ZlɅ 3g?7::VK.]PʄӤIƝf朿9f˖-Ce-yI ]P]vES-[0sLիWlr@PPPkH!S `Ga\у9M Bbox7nOex7w2d vL [݉X›:B硗J@yA oOs`Ҭ=G1eʔ9 42 *D"QM[6ol69^('EHϳUѝv' ?^ʑEHBF|0k  d(/\pQN^;Qކl]]ޙHnAG>YBL^Qp\cZ$1O|1zCpmħ4~con^*_#7̜Ia xbQL[+<=2a푆?E>>|WM^L r5ȇfEK?((D _)1Q!~r*&41Հm:~Jrk4ti 3W8yڊ% aWKO< -f~< bry`:&+85nL(eTPѝ+xyyѦMۖ :wٲe -ZmG+Fŋ|]t᭷޺o!sѬY3ҤYxcE޽{3x`7oi.nHOO'559s0gΜֻӥK:N,wm|1ͷˎ 'T5wSA.w"<އĶn2BM_TvmmkJIed--80KjqR%jd̝;/ih嘳 p&|A W.)FJ]␲y( 9:dg*Ȧ,QdKn}14D~c-gqS@Uhuޣz 4cM/!- (Zw)l%+&c> E R@6 VX)cסV gj&ʫcLHGrTYZ:¯o0SiT_\̑آ[9%lI .I#}OqĒ%KXp!O\ j֭DFF+Wdڵl߾Gk ٌB/NJd޽{K-_b+VN:;v"#$x ٳԵE3g믿}vh 7{ p;:rHˇKE.\*~_^5sOF"){plW?#ǡ !FmB+(=PTTDBBTy:Y0戔%pUK(R$ )嗇v IvB*H)4`;FBT;U8#"c"@ ;Qđ̵Tԅ?H'.B%bԱSh R1*8_‡4TƼW}oYQSHTǓ8̅뭅 Iښ63odX t)x(72뚼mm 'Xpu8Z4Q'M hH )ٗ):/Rb Nca 3m`^xiUwxxsPz?03jP{+J^4⎘0a/G@Rd޽{7;wիWj Hjw3;Fz_W,ZCr .]Dʕx Z͎;7aH*j5QiWү_?Khh((믿`jԨoQǬYY&:t(^￳`= T9 >uNJ-!z禗oHfM;Ĺ +~7awLIIvKΟѠAPϫ4x.l?Bt dT7@IrP%*(XDC`сY0_V&N Sʳ(kUt_7$0" 8A "0^ǩ.;'ڪf጑8 vr#ε չT$ .$5 IDAT*pHx_s슍p2Uŕ+T.\ȶm%nm*ky2C!׾*9D$ZD)#*eb_E%E0TRfRu!u/4}NKvX8@׮]ڶmKFFڵ+sA?:| AMә9"DѷREՖ[E]tz֧j_D_>sΥcǎ lZ$CadyQb龟`uXKdHBkda [?( [ɄYZfˁ+ޘ~`HǾ( b7/Orϒh gc>&k D\C3Hpq%"2vgȰgLGk5v悮2ǵ\q@Z_zٰD Mj^}] i9;;)CWڈl)߆ՍoMPJЦp+rX;ފ.`F붂)ؕ^ ^:ybX$nT"^äg$kMHr| pUCx GPWl>:LD[CWHKKڵkhP{^x4裏Al6BCC8q"G>٨R cǎcf1i$N ̙3yw*p8"v>>> 8oo{o/+g,_˗vssǺ|U*[noe˖-ENݻwy z7hаȱ RJ+mtj)Ah{3z:tMK(\O)=C@Ǜ"H FJ򆎔V(ȡ$gĚL !sk*S(Ljj7PxR4$jq?4On`G6 ,`С?AӠya><1(#7PxTr#%*G]QS:p# m:J4,#\u4ݻ1i"f~E*W magd|B}09L GҠ&S{N ; oߞ޽{?:3d,Y›oɩSpr nRl6V^k#H~n,((`ũhw8pvvfС_[QIL&w{汑*D]1Cl6 Be2SL)ha9EժqR̀ ~`1fS9#\zA=ndkJ$\%XH!8GQЀ 4#e/jϧ~Ll%\3[هfADF..d&4x'x[NETxonW{ J;]2xW noAjB- Ng\0L1S}䲈ukݔcdF'C:yav6/v[X5TT2%oCޛ^UK+>Q!Zoұ|}>C.]ľn e״ a1G׍@d4_ٳg.\x\N8ALL +WFT"/HHH`޼yL6n$}N<^~ڵkƒLJJ k^@EBBB2dnzxwZRtܙǏRI$Tfb˖-qo< C'.\͛wܻw/e{JZ!-&flhDd_I;rBT=[W׉/"|7kEǏݭ>#y4c\t愿+*i8Rpt$ES"`pID (!PT)({[(.tGrpd?L6Rq[PؖCO OaDwB'h#tE*ICYHHʞA}݊;*X,_qx^?cߴY`l62$Gu a<,\TQps&+V?t He0cb`B&EhV%j>XL<)b 쉍f>PN,?-~"N>>~oѫW߆ɓ'ӧO'PDD(//QFzp`TT111;vx/Bǎ;)Ss5N:hNXpaGSNHn gitƐ!C.ΰg,ljѣGvGRyf~)mV8}MP Y葓v  C kzٯ=aIa>oct8N-+M I*{FKRNגrrBQe /!"$$CV3%QB$bH9HDA˛E Z?AQk *#֠hrlL)HSX #7͍$yJ=Lh0J 0L[^$i@Ϟ= ĉӧj5ǁGY8ܵYf|e*QfA@/J1.n*az6 Э>DδRq- 70'dӨkӁ111Ԯ]kz*N\/pTaAX=!6\ !4I LH} rHi;3`#/般8nK؟!1 WиA9jpiNE:$;upC 2,\cJ@ .4jP*T2"6`saJQJzV,xwow, sC.F}I՛|2K.-~ 9yp?! J0 b2GWe!NVJR:Nt* qM{="vR:CTXvm.]JÆ%5U*=VAT80f|:-[%*}ao۶- 6dh???`Z'((N>ŋY|9]ve鄇?>EQ$33_\LZ={6wᆱ͛79r$3fۛ/tH OBRR1M6%$$Yfq~;b&NGxo=}e_ƣ,TɹV%++L} Rerul\tzJ_2W0"An(?Y Np!2 ,}{_K.rUMF|-h,8!I[U#URlCI 9:H7< UP8ȁҾ0`0()Nsp]xZF1Q@(;LHEGRRbp?8ق4E6n, ٝl" XȲl=xj`ת/yHU ٫=QdUWӹ~hThoVV; Gt JD䔤MJxB{U fp*%33 5wމ&tmڼ{Dиq;Z*U*'//WWWlBΝٴiVTLIKK#55^{+W֭[U=ݻYnAt:ĉ:t(;w,DQdܸq̞=ƍEjXj̝;cb69ul63`RRRrJ$nݺ0o<233*۲eK<<<x&BCCFERimQqg&Mx5o>. }U*ئ2UĨOQ^=r3MJT9sR)0xA"T(f q47np'l232dCX) KC}4Hό4.H+YQaހj(:҃Вۑ&XsIEqdkNpdA AvTk}Lǵ%;;?Ea~t){$hHNjjW#jD̏,\< ZS~BU# syVkc߿ߔVmC߲ׯ ҩl`sOr|dUJJJ73ԑhEv6"hٳ=w35?bs^@1r/^ÇG봄zY) &M_i&Ν;ۋ2d)))|,[M7&gϢj1eWVVscƌL:S2i$;K.^Hll,4jԈiӦT*YhSLatЁѣGGʕĉ,^g}'rh4ў,kdffrfO ,ȑ' &L`ǎjՊ0HLLŋT^I&iet]G8-*/ tް7.:9Zb^**AWN7<.o PoѲeRE+VP}@2Xv3lh6 ̍&y.rzV.EA"%LRP[ZM&ẤOF_DtJJ| #92{P | @RϹ>|ba+)z{TNHxGiWxUA]Aޞ\& <[ƌN[Bof&\Dwj](tb-P>|[.Æ FÄ Xj%+̰&ys:2Ȟfu$J$rD"(e]3~c*XVz⫯ Ht/̺uddd0`jժŌ38x NNN0tP;w]vfHǎS{(@.s4 Zt)[0}tzks=Rd2!ɸpk֬cǎӇ w}W}Ծ}{Ù5kfNӦM߿?/CL w}Wjy^^^x`Ϛ-ơC?>?W\LJ)S0r2kT,P"YU`%=X?68he7~&twG@:ԴFUd& Nֻ>!ɊuSnhqש\r>JNB~w)R}L~@k6eutHRȈdv(|;"T Ʈ7!@x[vA YAe|ѽPǥA}kڼбwkČ619>xZ%7%9i;y`\΂iWMUh FTj,YTexC7j)ZV-9u>>>L6 gߛP 4©!p JnUJwU8UR #VmLPH0*O$$nb;:u+t:ԩSK2`{n?l0Hݺu3g[nE:t9z(  5 ? 0xڞ7ofR8Rh"Zly[@:uaٲeFׯO:u(((`ݺuZ^z 777^~e,YB^^W[nTV`V+sNz+m۶}ix XVڵk/R,,,۷VF3ׯjkL„ Ju>(L,&Ong3u3۷́+XF]Uzx#筘if+@PqAVB{Xg0ydN<?PLpN`s|x~V|qs֞R)@p3LNҶH#/A?CNd Q>r.D ۩9{r2w\a5?v? Ra7l$<3$R`?ĞcT,P/Eg,H,$@ Bҩ*ЂROe|@BarNv-{=bbbxgJ-2^F9]GDCi  &]CN'ک.9>?ԭBCCٶm |g^jꫯ/sI>̡C8|0 oΝ;ꫯXr ˊyE^XpE5jyWpuu-^T*y뭷Jm1b#FZj( 6l… gl޼ݻsr9+WdĉL0;ҷo_;X?bBl2 =zM.iA&MlS"-b=yMmhp mF S?7K ;v7_'n62*aq39<+-l[kSD{|y5kּ&')O8(ڱ /b> \s L"IHd*u LƜn/B&kW@Ep@gO& {م;у \ܠE ,_SRϓ;P*k* ft=}R>6wGL#!>˥Tj bX 5J`7\?Qێx YhtW0q Reyǵ߈iA4]Kנ;meѴE)~ IDATb񄇇QɸUHQ[;,)`y(ఊKu+܌1^>-B5D hݺ5k׮w$RhР 4`ذatЁ}=T'EEE;v,ZF@k /0l0˪Uh֬}ѣŮ]XjSNEEwڵk߿?yyy 4իWS^=zK->>c믿pvv~j aQ\gv^j%6{F5ػFc&&K%Q51b{@#bEQeYVQ1w>;s}̙PZ5tԩAt-OIlݺ۷oGDD[/^ Çj "z{{-Yp|Ul*W΄& -Qlvoʺjg'm~\>#{/DQӧOI[M'o}D|)$!2 1 c_R&T$DBJH$첈Y2 8Oωd*,M2a:&ޕZL.MvU}6EDT\#p]wHB:;ҩI% i@gpp}0a+l܆`T@9<#ho%łQ-E杶1ӟ)36~|O]@T0g'p@!'L1!!dxN k. ]YMB> _/{97Rk,qqq\hEQdVVVڸx"u)S0%EKRٙ...rQl 2Fo{Μ9433c\\Ir@V[v=z&MPN8ٲe6m[ߧ/IjZ3`d`` J%^( Q@=z4IUVԩX%ܹMAAAַJ{g1pl-ϟOAXjUՋQ Pv &U7~k[rM`M8?qv)[wb'mAqN>q+ZJ6/`IᭇjKUȕkʂ Gnޔ;~գ 7l`T{ bXX0`}||nJLOO/t-)k֬a . jWEN:8yduI/6`Ŋf BJJ #"">DFFO<ϟGT)ϜyRBEyT+WF2z *M>}<dt?:b5(/UwREZTDx 6Z5鴹9'UYYYܳg_|IRqinN\yJ=O:gy>қ9лX OSTYE ҽ-cǎQ=z 44/q4ϟG@@z@ٳǨ~h<{ wڵkL/J*HMMETT能O>m>|}}`&MBFĉfݺuCbrGfҧӂ;v̙3ی$94꼋ր jBxx΋uo$EQŋ"z]BTXrB_'qT{r7gˌNƩ[Si"@Ս+F?kj|kҶZkveMh!(7mSxSy`.,;v,sTBFVmU~Wk$Seu(~SPM6~fD,7%<8uT*"1ǝ(ܹs'U*UvdXX7nDa]>0b"$u,Z$ZJaҖD nq'%ptM*1ZKoR@Eaǒ,Yݣ?W^MJ˗/׏SJ?6 /_d>}رr\ 16 GתU+VZ#WH\Ν;omwO8AR턆rl}f͚$_M?~h熝;w9cO HKK+nS#y#SWˋ׮]3j*BNwFɦ@K7[zD\cɆij"0kYWfɤ\l]]ܢY^ƺӯ5ލ/999G(~9^&buu+(Awp%8)8EcD6\.P ^Bߕ{͠IjshP #1Q|l+X%?㗃uۇ𾫋7#Uw*&{ld`֌xI?wRCqD)q.k)?XDԩ/Y7,u$SUI4&ѝķҔ,fL? Xbղ ?&F8c7ϲNҬ q Tjժ\dʎyn:ǵ_zi4>}޼z*IΝ;_U$s._Lܺu UVJ?nJF1cՕ(0.[,϶w֭[Ν;W_}U˗k-Zf <}(jv҅.]*nS+W?BD.gkAPZ5(Q ŅRZ\IUٲesXyex*mܷ%K&4X|EAAugˆO !6³gػwoŢ(ٳ:pjKVb"`܁L>y2701Ű7K2)(_nn2q+eXhт/^sџ5~ &xL)pDBʧӲ( ӗUjSpbS9 I"V/oJ)ݮT!8XFb0H I$XCb$FhH^K'_GvbJj,gWS.B1Pw-ZAAAo qΝLKK/ K,#:Ğ={֖[nexx~׮]ѓׯr|[/˘Y& 㻎;B {[ AFFOK.:uUVܱcpر}DQE==И=|z,/ZXP얥m Z2L_d֯_,nϥeK%~ OggXFa= :DNV$M Hw#p!Eַk7/MqŹ?AYdmA/(FVdMp] 5ة=FakPIj$Gb#"j 約$ڐpBnJӟ>^iJPB%?eYi{L֭[-z>+,{n{ĉGlѢqFF۷Ͼ}Ù͛7޽{7w7uܼyCA[lcQ9bd2رmUV2N/UV%N0!n2jqSًcܹsOv̻~Te@@Gm۶1 W_}EA8{l~wޥ56mÇsݬV]]]3+7 &U&&&jdCEjWdhjkκ>RdcZr0+Ք~Y~}U_0f,!E-P xEUlޕHm6~[>Hz[NI.Jcmף07a&.BVY (~ـ-^M_}~XN?9[$N8,R8p^C\!qDG锅X VݯiB ;ͳ,U֊}A:wa~ܴiSYiii@sss;Hl|ƍO]~Ih}H:tP1az*ÐZ &.T},WIܜ#G|kmhǖ/^pʔ)_>˩SEVX}%}%&N*%U<>hlL?}\fMdIa={#Ҭ'KbLj)V#diD}қhMj\ ,b3a愷I[ً wj.(vn;S^bmeG%+IjB:eK:&Mnۿ%\܄LX4hD~ܹK<}rC"j  |wRQCOA̻l͛THZ͸8T(\r%IiŬ \j[&NHLVl!**UTa˖-Yre @OOOfrbŊ,]AQrX Q.>íYA`Ze0rG[CLd:V,Q}.\ȱm…lذaP8sFqFؼy~J67ddd觊Tm ".3gh1g$O[NA( .]v kܹs)cbbv|sծ$~]IUFƢVeʟ9t\vHJOq_4`+ VK;;;Μ9*J̝;*Tx Çޅt29h(UT.nW(>1\ctRR!n*ݿt` H14I޿q=ǔ p_&IkJ*q5q c"i;xψ]:+ EZP %I[y"Q[K [E'WS*!։FO={~gvA?}t˲ehccS3336mڔ_}UO777nذAoGҥϏF{\nnn aaa9}vOJLfddpɒ%={̷z S"k׮@WWV+~oYQB000PcY}3DEEǧI ̻/oOUdd$xa92L>I;g֬YC''k ݻ7oW1d8çN#7/|;N P?̻w 5d㋼/cZxH7nBCC!:m$i*33zaeee4އDEEa~w^M!}ȑulٲBW\9[n?tP]GFF/^ɓ1~xL8۷o+JqF^c!>>t-}BRRRPXx1^|Y TD IDATAHHzpqq1Yh ~*rwwGZgaʕ>|8N/^V{{{$-[6meʔ)o0 |]K9ʡO#܈A[CX{" F ]> (LMM1k֬\|L`j"x(? (H)Չ9MH}&.7j@z",@@S3`F2V~e=} &$BtLՀ戉עT@CLon$0Gl [D ēزxb>H QuEDl݀PvNx>4Hb߾}yfXf SNpuu5iaĈ8q3WhQ:u@Ç(_<~nBŊ Jf(ʔ)ȑ#$\y!_ףcǎQF d>;vhq´ 5B3g|?dɒpuuYJ5dfHJғ$B@<`ff$@ՅUj"4 xMjSd~n>4j {T {Ǿ? wO{/%\u=OVvn=2`TY4~.bAo $n=$C"DrͶ `uULx17o33i $D)dBTcǎرcHoigϞnܸ"!)) ܹ3>s<|UVErr2o/Ν;GGGT\9 1cx1/^\ ~l `\8|0vڅѣG-{{{*U jժd(6m(]4|}}߫T*$$$_~)r otX:E߷aӧOC.|P(ر#vޝE*22OF׮] }(cРAX|9[ٳg ĸq yo˖-433w(x1TRvٿk] hZWc#)I(ޘ#ZTg܌jSxIQrXG~LiфG.h7-?,,I̓}L~.(^};f?rQI6m^(1559UV,DZ(whr>Fy[A`.nj?_ {O$p%ӈ."mdt,g^(>Nt¯5kg͚U,ٳggyA\n4h@Qy)} n~b`4^q۶mB\#FԔXn6[ݽaÆܹsXF\% Ehh(/^۷W=~e˖a e˨T*`PƃgC!!r=:Ƕcǎo޼Yd,YZ``ƍB+x^T|1U}̻,~wLСC9qDرcϞ=)B{*fպZÆ ο^^s/Rnذ@77FMKk9KWvI̚5ݻw }XP3bVzΜoqKkCʖ$5dks#*GTfX@5>{@ )8++K:M%]QgGP 3a[.`.(N7=e׵RO3t$p#V[w j~!x@xh9,';'UŁTޞn$"O<ɩS$5j>}PEZYYqs6mp߿]t'xM022gcՋÆ ӧV@Arm ~}NQ"==.]… ÇT*?$'MD"H&&ijZo=l'qs{ȿYQubH"aDie#Ж@iktjk0 BhJ赬4/ͬ^cggg4Yfqd6mheeJϩVzj044{ӧOY^=*UGw}d}JsZD rZa_Vݭ[/bcc, 'S3$W7 rf+ t4}M(LYADSg?%M IE*~ӂu@S~oJSo jN7L *v!j59ƃ7/e۶myY&$$!Uj SFeӉ?Eb%&$LIݏ&?ZБ:O9$gr} :8c/\bETj]vRS>H(A~ܹsac! U6x1Λ7m>}Z\?3EQ^ѠA?waff&vZ.Z5) IAEv= m ,evY|9U*/]n يqa4eaӦM?T"12E˗m92#&U=*23[`Ɋ96m(ٙ'O. 1-=@SfUOP@3sFy*7LIT'aBN _!Diݣ T6amil;ϯqqq~Ӄɚ.M$m|z#䗥()+'$[ES&Da)"G4 ΤJPu'Q\C Uoj-&R !Jy&/$.'Son҄¥={6Xl*VP.sFisٲeMa̞= /^qj*:xaҹ2d̙3yX47o۷o_`],???5Ӻuk<}4xY?.\ Gvue d[nN[]v EQŋߪ/>>?h𡑚Cwˆ۷ѣ?RK.,Tկ_/mIǏ9zbC j|jho-P.2ya&L(Y@@`%DrX%в ӴDO H$*ITNEk=)fntrA3X;"}Ub>/]3˿%9у,[,=yc9 I?󲧩BΊfgݬ>M2$XD /r@Qj]YNWKL!1S%+)\0Rp֭3g1Na!"njCAr5((&Nk:7rʱuzFkpڲ{źCVϯ@ ̙3ioo㈌{/00mڴajjj}3sL(Q"ǵzrr2۷ocrʽ3Qxx8 >Pb .Pק%@[hڏTM "602Ex\=zvvvj72Q ѣxuDat_b6VqW`.:\D( ooo_Ϟ=+~ 8i6C|K% tHMtO8D@Rϟ\яHD'hYH Z]AGtq7 x!Sifp[v$%T-$ I\TPȑUT̀<)1 sHx% ` `:2J.%Ulኚ ת ʮ@=o<z*20|,[ +W_mv-ZE幟~w?~{űcpy1e;Xn]K aaa(yWx hڴ)j׮/_ѣG7ƞ={ "Z- kkkZ СCѣGaiiݻwz۷`_;NϟCѠM67772[n6668t`Bxx8<<>>k׮!$$K.Ett4v*UQF8{,l{{{iӦa/wB_\ÇN:$QVAPzu?Xz{tRtN???Cc н{կWQv  ([[P ///8p m*P8wNޅ_tq[P^)(ӹ3V- [>jXFKat@1(`xf0xwb=x 4N]'@u< @ & XۀH0kÇ?p@\p!ߊB~_.]jժ!""}9S#AP= \*gΜ~@XXX|> FRPusWe"Q B"#3=}0(!5Իa)Mn\Ae^An%FP Mp&0w G 33w$tca ^@RxTn4Hrp䥁/J]:xd=Qq<}Y%*++ H&'믿лwoW_k+bҤI5k9;K(SLI,^ {qڵ gΜa`jj `޽x>Mƍ1fRYdƀ^=z…  ݻ?从 4i.]RWOOS\=T?3zаaC̜91:O<~>}K.C={DŊ߹OʕAj!OÔ)S7nYf᯿36oތ͛7cРA5jz+V 3gy^AƍIէ~ >k, 0p`?̙3˗/Gll,LLL𡑕k {a(p Ė"R|!1HsoL7" SHuxZ<.H'L$ i*/ fAr!6uu=֕hcx5: xx& %J}N8q@r@``]%;;4K.qU"55ǏGZ '''?~8uTޅѴiS8qzjYh4>e.,1VATM6Os|xb,\ј5kLLLlٲBUF`` -Zd"^.\-+ 0}t;-[D d\rEB/^ [[ByJ,HC_LաC0w^ħg&Mj*766{ > :ݻwh PZ+w+D`G?=#-s P'Y#k_E=© IDAT!P+ @̔ xhM@"^s:$]?b-D4Y6*D]Rlr%O%k7||/ED "lO~pm A;;)) ڵPpaL۷}-[͚5bbbЪU+lYmڴAJJ ?p˗/?Z/? 5j\\\ Zb>VuĄ H*U`Æ OWo>L4 Zm>b\zgΜu* 1bVXAL29r$z5j"C!999?$T ^^te R&j:9aɒ% -J nnn+۔\!`U>QںNG;zG{Uߤ$${ BG) zDEႀtK/B^B/ EJ f3IhuVfew&3<{.߹Xlpz0D @2(!!$](!#H 4 p% B W/ Ix1 'C\$F@b(<@m7GL1+ ;cGѠ?`Aj>Kû\ju /@T+11^` 6L2|W^ejr ֭.\/Ғ{/Y|9˗/VߪUC*U_>;v(!@eRl,X l̐!Cn0l0n޼;T.]bŊƦYZZrΝ;G@@3f̠aÆyP;5˩+diР֥ ᘛ#BtYaeٳgt#G,hS^FVQM]7y"hChp]z0tD9>uXUNc=Eap0PQh^14'Rԝƿ *bFc/h4|oHy+Crk;Nm՚BpnV7n5?%uT5 R*=ɤ2J n%9:84}Uw+*GL|5d:GA-Y7_eCh}n[>!}>lEAIGDSJfA׮]к܃[h[si-fΦrfe4w; U*m U\g|&[yMU1PL>=[cfuqqa/ViƵԭA?wۼo #|ɵ\=;[eV=e쉨UtZDQ2\777Ν;v&D00K%u {v TgIMWU&JeTg(YJTUtUS!ա`_M lEk,b,]N}DO:vԚ Psܼy={qtuPP>KTF]vL:nݺ1mڴl'Tg"Eݎ6mrJڷoO@@ ";v>׿̈(8q"SE_ݻۛ#>{TLjѢEL2{t!]vtg`n6C9$..R8Iex\aqo(̓( K@TX5_~%e$1獵?@O ῗBU+ R -g "W4'cp4Ʊb`VJ]naa5e3`QlˆG1bs*Uח>֭[хVGM- zqǏgȐ!y2~xƏ'cnk׮jʤ~%)Y+߸qڶm:pssc߾} ѻwo_^3NСCٺukAbK */X1c0o<ڵk\չuVCrdq_@{܊q݈ߛoX2#Kv\{g2x#XofHtC<'vʕ+3sh4lUdPiY+ @d8$r8`#8 Ύ<["F=08ML.kFv4Q:H%ovr6qir{:sh4Ӽysn޼IӦM?ѣK.-_gرy6_߾}۷oo~4oޜ?ڵkspQ,--iѢE>XPs˞3}]q}} ڔl‚0tЂ6ȅD8ƍG)Qfff/ 833O)ر 988qT5iКp86r Ms.u N!J֩ûǼu8*G Nȋ`U5kdfOL)Z6ϟ0*T`ɦmm -C0s!QY *;ɤRNJYcpl08`Tr-IRylk3vߓ0oupX>3M25Օ'W_k7nܠdɒ;;;fϞŋ)_|:tؑ۷m۶L;Gq居p֬YME_wډŴiX`A{I\ȩ gٲehZ桗}ظqc]\```ːmA)KK 5 ́vn; |5)ےe .zp..S3bwѣGt: [OOr;\,1>*ASEQ,%鞋Z5om>.O0ԥ8nAS ( z~4U*08\v`5)kľz܀xK,eIߔp{lٲ\׫*sN<111kΔѹsgF? Oah"&L֭aaaVWcǎ_䓥?ҧOEOQ|yNs$Z"OBwGS^%&=j7oL⢑[H-$Xw 6$GrmTIsI/oq7N܅$ kKܜxo_h~|D#X\LbT;IjTtYR&&&&RL,,,P#G4\ WWWN: .`Ք(Q'Of_I_2  .ƍ T˲.bh+S%KB}ȇ2gNF(( "G 8%pZG[J"33=bl#p^];4<4^/Rv.V2h '&C "Q:]X%-Ӣ,˿A+"s7SSReL :3ɡ(ɓbO p E{ DZ0T5757#mPPo4"Sq$>>m"EѣG< FDDIklٲ?~;v`kkKqtt>#**9]Ν;ٹsgW-ZDSgq lll]64nܘu_|Arr2VVV\zA\\ *Lx!gΜɳHVK ѱ6Ϸ 6mD5033ï̽:ujMZbذa]Ҿ}{qrrbʕxlCRAjժ_RGРԈHߵkKon۷oώ;5n*FZ<=,۫@iHqYlp,-jg7{~ohH>gCRxTV0Ibex&?(vl ªaG⭊2H4'ox'_9ыjDI2ަbϤ3yjSџS&-f é!0"(mc08Sɤ2TDR7d`r,̠6XGmp᧩T.jEYb5kQ$.\@9tP*E'ЪU+}CW_}VELxx8:%ӦMCӡܸq#_H ʷ 111;wm2rLٳ`׮]˝(SY5@-ͤG[aNh,BSb5oqQByVEf$)K2z+edm""t5o1Yc5}N_ṉZ+I`ƶҌ{8Ens VBUP[l^<;wNg&8w@{=9qD]|ymdÇ*U6]t:Wdذaԭ[Wڶm++ RRR$>>^._\Ц*.^([l}.._,={W+9U/u%mݳgxzzEH>}S<==%!!A߿/-[Eɾ}d޽w߉ԭ[ה[pvvիWի)[f[9,?: Jr Z~f IDATP|3xw3giή["PՕݺ,ֿHbRB@cR̊bQmVW3ڼh}`t5 j%V%LzMs V? BjhOfks@1Z1;[y7 REA-AcVXå ^O ]*dz TӣGoN׮]YsNlmm9|0W^嫯ʒP={L9]vڃ#F0m7BD?>*T_~믿ΒlZzjzUhҤ .\ ,,3fЫW\ӧOy뭷3gݻw/hsr[neͦ`iiYxk=KefxOOO<==h4ܻwGGGJ,ɬY ASreF̈́ 3h֬s̡o߾")))4o<{gueSvPo+Boca'"1V osmxiٲ899Ɏ;\mۖkeܸqÂ6%W2j9s&ö*(_pfbii)2c YvL>]\]]J|}}5n8U""ț].ۃf"`<,E(*B%)$p]mn] uH""rRBE Z,v.@A/֜/{xÇ>bVtCG$UR1%N1w@ ? Lmt/Ox8dq g6J& 6knr2zDW[rtGbee%yFȡCQnܸaX6m9RA3gk{}a@rrxyye=*NU B(z9U"jժF1իWϑ_nc!|HZAQ h5)8%3rw -:d%Dk2Y?m޼ܵ7 H|CUm5>/H*ř0yXR)\731o*hҰ.HaHO3SМv5Lgc|5oAavrVRH]H!}"؀ nQ.?ejI,#"E2֭gϞ\vիg_v`iiIFQ .K.ϩt:1i$BBBe <.]н{w|}}x"`($ZD<Я_?FVcǎ/HPjUDSn]zE^[sa`'''OV5kիWC޽N:Zdϟɓ|WmJ}vhHNNcԨQ…ꞥ̴{СCܹí[ DԨQ#gfueS4^J f E4K$'g}׮bko.u]4r r}L3Wg4] =}ZDDf6M̭̅E&"\99#UEc\ɮR5ѽGpX?!aF52U̒^2;ld^iĠ9 S,^1Ms\B&"%W?\a?$v(((Hdڵ# *Ȓ%K$66֔D&nnn,ׯ_J*E0`5DD믿66r|gqĉB|ybff&*U2sdϞ=ҽ{wqttMk*)))r )򀓓TVM4i"˘1cdԩxbYb 0@MaܱcǾ Kڵ^/;w^ OO</Ir2Ŋ傡JJFTr D ĬUwzu2J _S?/Zbv{F>r*|=~9ݹ#'P>[X4( Dqq1f1O3TqN%& c@Q5 ́߫ʓghǼ^V50$Ag-˗/W^ܸq *dkёk׮QH+N:ŹsLwO>%))-[o>֭Kٰaf`رM6xE7Z-SNٳbԀ)͍Zj?p z=GN'LUTa˖-t-S$%%GuVVZ… IHHƍsm\]]9z(ׯRJ4k֌G<$.]Dnؿ?۷/hsr:o/99B͚5 z}X*ȼTT&Bf םzZ633MvW » ٦EE7(b/?qh+J1H tjPUq PMog828ޡh w_B'%<#9NН?a} +SqH >jqd_t6cp~#U3xjPR0T8Yϓ>3~!hl6&AenAվ>|8m۶%>>1cШQ#BBBˋ޽{zjlll6&Z-$&&Һu?{.SLUV/<߰aC\\\HNNdɒűk׮tb=2=~=,С:tVZd9|2 6 a@WWW>#wNӦM9z([رcXEDDP^=Lmvzk_Jj׮ƍ3Qn LBz+m5M>sTk($[= *W1F #3>O(24Vubס!+ _lg/c)bzÝ +4ʕ#BE埵@]"x%)X Ĉ_C)G[8%gձgϞEHz$Znp9Nf_?C0(vON2^xlX1gPGBSgف^d z.]:K} nnnq.\`)_ Q5\xҽ(ѭ1( %%t/*3nˑ_Ӷtif/Y#is)] ہߢp'kg=tϓ08= GG1#>gNjc9>h?m?+JX;7s)VĹa(VMƍٻwo$O:55| 4 {AmJ( ^^^3&Zg t y8p`ϑ']l5 6ue;&\ Wk vp!wUhtb$ S{Ӱ;ec9KZm&nJ&dUMK=H%s@2)zzp5x[_Ь4`6g Ocͷ>la@\"R2:TjO}R ,ӆ \)> 9Б pUheU,0_ΏZs\-K ߿@$㫠h_>gΜaܹ̚5 N:ٲe jڼ2=K8p(h3^թ7իg֬Y?~333:v숯 *Ν;su޽KժU3ӴiSOΝ|r hݺ5 6I&6o~!$$OOOORC~~~ 4W)YG{ݐrnnn$''3w, ~]-~ۋ,ll)BSX$GdJְѬ{ǎu7­*7jkp:aU숂 $JV b^m|# . ,(.cGqxn(ㆿ?/f'h<ۇIٳn20PV1*R)رECM`WۦuT]oc(bTY*(j vcbbٵkLl)7,~f7jԈѣG3l0.]JӦMٵkzL2(Q޽{SBLu +V`Ŋm ׮]clذ֯_g͚5k׎%JBZ*((9iSN\x:u}4ggg^x?~|tԯ_ТE6%P%2:^_~ Oiq9<==5jwbb S`FMo`\_F,=\/2 ]=07uڎ^I0rE˕当g%+Gx'As p`Mil6+J\=#D&ܧ||-wn@Se\hÆTGm>fkR|fM81e? z8CS*|jN*R*KRg.NS%Q<+G(e~RҴNNtRPኢ "|PsزZT]vX[[3`:w̮]r ժU˲=yI&0yOOl^:nnn :4lSvMNVR{ ؾ};{ϏZj剝1I&D>ctBYK)(l Ãe˖Qlق6}GӤd؈/e4$|DRhť܂s7cw ˢJsyCTxtTmF@<1DcpXB1LEzǶuu[Тswo>;p;`9Qߦ/P_`ĩ++;;<~0s1oe8J[O]05]g2;1TÁ3҇-0 ):$$$|rۗC%"̞={o>vؑÇiР]vEՁ~gݻ76lDEE8*bxxxhhݺ57.Sc)RhdEӦm۶e̞֭=?<_*ߟ3fЪU+J(M;2ʷ{z聟+W ygΜ!:::O/ Xʕ+L#L֭[޽:5LdRieHV(}}>oV`SB#Oq,`p$TC}&T#Mb6Ą9B5Oj5Z2^ NY19שۻ>x̹ )b"VSCpi%XU"Tu5T R 1Ib1ƶVfYl4XwFah4!̞=mr̙L?|^}]1j"Nf1qg0P/#>FuFFEK@E,&)ilBxj;O/xMw%IFne96`=? \3ڹ[`;>FA]UV?c<|}wPj CA98_/Ni{di|(?7ze$iҤ̚5+2sL2gYz888.]7nȰaLܹ#HNޟ}ȨQ@GvZ~QQQ2x`9sl߾]jժ%O>|֧OӧOͧ%$$DVZj*gggo s{dҹsg@T"#G}ۥxRhQ3gN_" @bcceʕq$kբх'Oγ"ݻw W\VBLg „ă ˼3.]d*9ёe˖%ݻ䄇666lݺ-[ЪU<ݔR aaa8p>?ÀpssˋS&MP|^ѣޮR!杝D/BH,϶m{4C6DlR /;Lu/qX s#+p32W' ?z⡡O [UȲuD Y?r'k$+Fd:)bwh=:&pȸ]5w 'l^#E`Zad6 lC58!08Wf4=_-42q|cQ^zmZV_pΞ=+G:iҥvZ)^4iD,--:u 2a{6 IDATooo F#7n .Ȑ!C$::Z>}%000t.2h 9~ݻW4ӧĉRjtkBBB,LnVZݻ_H IIIqFSG,C e˖e=zH-^t(r 0@ó=F`3qx?S%TtasM6j`vLV@,(axz_^'$&6IC\_֭޽{aK͛7i=uؑ}{eoӿe._LZ8w+Wy<ʸᱵۛ˗/cggg}۷a4oޜ-[JҥkvԄٻw/ ]vƆ-[Hhh(]t!,, ggr[RiMXapqqŋ\x___:wLپ};SFRre|||3f-ZrJze{ʕ+_ń ޽I+3HHH͛Yu^2dw-r`_?&f#ߘ*oooRDDDHT"(F4"XY*PR"TDHwJ43 B}tdT}tMxWF_ T焑9edT뜠/-ؕvJIJ\!e*Q^~t#닃 yEuu]7 E@bEEc5v'kbF&j.vaoQADPiRgǝ3s;]_gfn9ܙfu֦ZP"Q ѫ^P!yK& XmNm8vP4XRutpSB}ֿ-lmmX`YtE 1ydk 3f:NfQ ۛ3gΈ{ ^/jԨ!͛'^*q!}vѶm[*#m&P"}w:NDFFd*.]$.^(RSSErr)))",,L8qB!Ν;ۅBk׊ .@8qB\RTREÇ{|GE" @:t赵IťK ;o>/^l\rJ#""BܻwO믯|θqDDlll!7#..N_>)xqsGjWh{Eٺ|ӓVZ/ 2I]z4m/ݤ>3M8+,ܠ^Ft:/tgψC}"/AJ5 'YaIQK }$jWX Ȧ==%4e[k'7 TKf|3CCs0Dr~-!JDsDP[EPFQ.ULsG' " Q  Q?B33l?",(t @pEh4c,2ON2{?” ߋ6"n_P!Ju0)CCSGk?aQeDm6l% w e^CjnaZxp7<4'EԪhV^Tm۶⧟~z/  _sHLL֕qoRSSB0+6m$۷7nQQQb֭"::ZDDD!R /\]]C|fBBBFK6~/f͚LѣG͛bΜ9=fٲeZgعz^9RL6-C7NΝ;4#**rGjۯжp͛78t/FW+ZdJ"88Ν;}zQ&R#1Rޣ+#W`n/Ph{'6ԃUm;b1 ,%^ @AE抈(= (ƤAP5-`*$}d҅UVɐ!Crl z㞍;wo>֬YCǎhذ!AAA9;5*J,I,ZܫmTSMrX ֐сqvċ0ߗ:=ߋ mպ$4 Y䋚:/J^ArG@gaV0Pa$1pFkX=!%VbxL$Jp.c19&bJQ]`cv)| W \ҞStivaJ899 N#..KKK,,,t;vŅEAF̝;ט"Nܹ/:7t.]JΝ֭cǎEo7o1l05kSi_?of֬YbŊ\p-[f N?ĉ+>>P*/ǏߞvY>N!6oތS^zWd{jwvW!jϕQZ+IpdJ?SUC@皟MΉU@%`]$Jp#{Ey0n܃ QX$Nɦ9Ko5&3S ԟx/u?:ͨa.g1zIڵٰa_S>jT\={Ծw:L>=\`!!J ի?|PNC0rH<==WWW\]])TyRlÆ cۗ?ۈCr-ٓ~ƏO?ѣϩQKu֬[T޽{ͬ=2BZjEݺu߲B72'Hڎjc7F4~p8< ͂H: V5L3DV@`IN %!>ɞ"-=XX%'1 l}p6niL2v2VhѢїرc92F2.]d\Q*TM_?6cvȗ/˗/tɁhݺu;qGUfzK.4mA*j>m!w1Z@`Q2kuO &6)ň΋4 d8A.>"*Ip?R䪹HHO)`!ӡYϟƐytK6u TmޅwO^'ApcdyBɲTHI$Cx2\'IPQ=Sjr&QݻӨ4t: F9p@6mJ۶m goՍnݺ=JG9.^-ϟϴfӦM/_CΝYb "99RJexB3r2.TOXh6lC)R̄s;r,&_T.- 8% @iɯ\6@]CJqE[KUT/9\ H80"FI=B/!ݩ6;'Nx ڔalѣGnvvvF[VF[  [O5eZn͙3g5jׯ_g 6={O;hh4.]^zew 0ڛ1cưrJ-[ƤI2Tۥa|c+%&&uT }~:ʒVW\1>unŋ_)R gԩL:(~,,,'44!7Ƒ#Ghݺ57ժUԾ###:t(:uzOM4aʕxzzRl c?ĉxޞٳg3{LUnE.iT ,`j*7IF5\K!F pNWPB!\PC!T -]_OTŁܾ¹c{M-AVΊhRoɘQ/kT%i 6H¤@m.U DdxOADD 6琔Dݺu_k_F8{,>vfы7! aذa3zh"##ٵk+Vё#G_ҧO)V?>gϞ=%Kص,]KfX˗/r^BfNC=!&&NcҤI:ubŊѠA֯_J}:t6m{.pFCRR i |]CfF͚52dƍ=.22u1{l"##34իWݻ7[nP?_Aǔsكݧϥ H١{>iՔ]VoYՀVF†"!6g)a)X|FLyXߛSny`++ AQjb%!jk7ђ*}?ҫ2 x6mJyZ(^86m"""RJ}tZ/RJ .WWW֯_OժUYj3:a7?zj"#2IL-f%޽{e3gd=>_n9>SΝ;?Y裏1;w͍'бcG֮]><~ybeeErrSE_cǎ姟~bرoT*555[4}SNbŊt7^OVԩ#FDZqi׮C}~/!INd=$l4e MlQ8 (Ť1WAɪ=B\EpNc(+KÓ|(a,G3]䃶qfEA/~d9Zn5f'e lPj"+dZYQ)08V/2ˁ%Kgߧ\r1@Rhܸ1ǎRqfYf^VK…TT5;vQF׏VZѼys\]]8q"Cr 2WWWnݺF˖-2i5N:ŹsrUTRpxk׮6S7̱cȗ/[nޞʕ+ӳgOjժ+.\xGQFTV-[dZD[[7b͛7__\lccÚ5k{._~S?3gΰw^vZ-,,ؾ};|MF]u »إ3\?%l0V}t>+EBPWrJqdB .CǑJ4I1ɸ} #עų?ߐ՜P*Y LJ$J% Mj,lSQ,jn]g~"umEGGӪU+K6L/Z-C AG1k֬L;СCVZExx8666_s)6lnnnܹgg}DDDcǎ옺;Yn+-K׮]G}D޼y;ӧOOD}6dx{{~z FDD3q]taљ^I`ر]v1o޼l[\B.\Ȇ (Vcǎ%""dƌC۶mi޼9...Z4#5jDrrѳƻH W<6F|_8N}@)Be\Vc/M`RQY%?7&nH}QN4f`SPed$LMiZO*IؠV-~ ̛7///:tK?ё#G0|p/^̶m۲dBǎNUTVZ9"X.KjҤIrsscƌ,_,x5.\ȇ-5 +++~ÍùpAAA4'''5j4n/_3G|WTR;4 Z={0h Ξ=LUڵ+oߦO>̙3ŋӢE ܹi.=rTr0g ; @|nl\'ړZ"b @zh8h`G!UE -<$q\n/;t?=^HIF$aL ?_-}zh0XRFyJ\9H-i%T`}Hlxst-k̙4iRGEEѮ];%_5T5{ezRR^en#..xɓwܹL7dK" VZgϞ $*ɉVZ=_>DݩS֭///*WTeT{\vJoϳxbVZ}-;={ҥKL._LVرcG*"E0c ;v,W\TT)}߽{k.2aO<1< F#,sr:Pm N?MjN!]CRFҒ#@ղ{nZlxcDWJ-8W;Kb%EeX{{W۲e6lW^o߾yu֥nݺ_oߞK.eJ>aaa3uTZnÇ_ɓ˗Ge UM ^o)???ԩc)YWWW7nJ;99aaa^7K3sNؼy3?ʪ |||5k[]v;w *бcG<mۖ;vPLZhay߿?ڵ~Sp,9iݠ g>}2Pر#Gɾ^gݺut ZF퍳3'Ofɒ%|lٲ!}?իf?~lbSNINNfʔ)\oiӦFsĴih֬Y⚞Bйst.R⬡\)y, h,Dw@XH6!dUj.5eXAy4Bc~L Snp Ϊw3n^ ] !>|\ l#R6 +mii_% VêU۷/W^W^i/8GQZ5?~Ltt4+n\޽ooo5kƱcnjs.]ի\rWr ,--Y`}nܨh. ))iӦѣGwk2K*ERYӮ];mF…ܹ3 Çf)K777ڵkGϞ=i֬_} ogϞ9"~裏&!!!Kj"> 4@fDnÇ={6Fu;>H>c %G@be.Iay QgA3:nv1xV؉-дݏ}Sa49g_ 5%(Ia|CJcl0YǫMyh1]}Vaƍ4l@|||XhŋΛpvvf4hЀfDf@aiiIÆ )Y$vvvt҅:0|k$Xw eu$U:0ieZ0) 8iL"%HivZhDah˴ԝ`À@l- Si m$mZ` :* dZ|^&N,FvJa 6йsg\b۱`?~^g޼y5 ggg:t@ʕȢ <6mѣL;""G~&O̠Aڵk|g9 !-ʖOe+^B`O`H`WER QhU7C44ҪY<+RD#CSm8T4<#Ci|gh5D $`!JuPCꠀ 8,3v0D8j~V̟@zqiĶmr ?^DGGٳg S1b1bD/)Qdt'zyZJbŊVZQx{{ {{{!Zq?7ÇC믙߼yĕ+W2w7m4~A!Dhhȗ/ԩSfL3C rJ#Ց*PlL;@z5SI )S2{'dJcI1 s=Q-ঀO@+R30/&c'(X8E@k`&pND"`Roe2*]8gԪUgҶmoU#ŋJ*h4Nk~6L>ӧgZw5kw5RsԬYÇ>;tܹsgu_{ СCtޝ UVȑ#龎k߾=+11 m۶~NQF1~xƏ(%seڵlڴ ǏH  .'#ד*"؃J ]I"%-ץ@\"5z*/2(*bԦIעs eP`СDLj{Y9Y5LʥGi% ?eKi||q16m޳7۷իL4@߭IA;m111T\cǎ1i$4 fڴiߚ5kr՗zP͟?WWW:wLjp ~:˗5jT2o< Ʒ~ĉuܙӿ6lH|XtiJ<ȃؼysry7 vZ *-U7Z*.m9P纩 գڡŋgŻF$$$B7}/^L&M8q|K>{,-[`l۶{RhQ"""7n'Cאʔ)S޽{)RB0yd%}҃/W_1l0&OVMѰ`-jf_%>>;wfvXXhZB `0$)xIjRV7n@M(GZԝVAPn|(Q,X ̟`@(T=AyhdTΊur>իDZchРoXp!SN%00RJqҥY?Ph ԩSjܿD^lL)"={%GBzj\r:tFQxq|}}IMMeȐ!9rzB%ѧOdŊt9r6mbWWW>W?~% [-TܹÚ5kXreoRVHy=MiU)#? VSI$ Jƴ$QSzZaJX`a0(`4!ПRftwGwQo5/N͚5M6-[ӧWy/SNt)߾}_~ŬXZ鷗ɉ2ecmll(S W^}q[n?v-ZP\9dɒ%XXXp̺7Ea޼yp֭?uT]RSSYj;w~ȑ#9{,ʕKx2ep̙l/.oވ]aBAxx18DVnJ]kJF HhTmu`t%5l6l$MF, uKcU}ȗmK<6 Tҥvgy7ŋ7pILLdߟ ѿ߿ŋ@llqرc3$I͚5_)RPR%HULL ӦMcĈ8;;_|V  IDATe„ |^zeJyǏe~jIMM[nfݻGHHq1KZBJ(YV󱯾ҫ: (mn&٨>_|u$yPc[. 8'଀Tza  #_EfDŽX~}NoRRRDxxvĖ-[۷ŵkrzj+W4amYY%**J?"!!?^,YD"E@L>]!ĕ+WDBD*UDDDDm͛Ejj8w:u(P@K= -޽{=&%%E899#F___QD gϞ'>>^t]TZU|||гgOp8:uJoHHN "BPP+dee)mꐧZ*HJ $ BӔ녃%S ʒxӅެBB|. o"lTXTڃ/>]O>HIIH$R÷e 9Gy&nܸ^z!336...pqq)w{>_zl{%.\P5kbڵHMMźu된 @!C }Y SSS4l@ik;Xf )v!/?XBUaϰѣGqU055cƌr\t D6 "Becڵ`VBǎ59rj#+VBWݗb+%+y͑+ \Jx_*īR@YȻؒ6d¯Ya#ضmwaz ۷Gddd~_6:u*ѣ1`(5[W1DEZZzGG + >\.'lmmo{֯_/V(*`ܸqh޼9fϞ ""o˱cʌ;{1D"._\V\ 6[nN$+|sssSb0x5\]]1x`p8{ >|c*]ɪ,FTǠsglD?hX!DT4ީLX-*XeSi1tgJˑ#b!yM-B+g;ll"[^||<&L,p*uŋCvv6qa<{)(;;;ٕ}jjlꥰg }-\t 'BCC1p@ 33DQvv66oތ>}p. 0h޼9O^> /_P2_|, ի`XXn]\.˖-a֭:#==]cCLUim]qN ?劅K o29 bT`I=I^ |Kwa*9Vʐx!Y(R? fرM 4U-(|3f 0k,mpBx{{atZٳ8{BǬZJvyϟ"^pQ`ƍÈ#@hhhmغu+:uu%KvZ1*ٳgѽ{w@mll,ԩ!C%4 l6022)-gbb={hJ:ǃD@.\d Vʼn$wW}D%5M" {%bD\|歒 yL蹹￑' ֡~e&L={"•+Wp- :x ݻJY NB)@閕K|wزe bccAD~:7n.]VǏuuuU7o`۶mΖTaĈ8gΜB r7n6Ç/\&"lܸ'OČ3@D:thqB:fҴ W! .gd(T$qU|z2$BH(?U(5,$QyOtJO:'m/_) Kp*CuΝ;HKKlu лwo@V䄬,=Bhh(V\\xBy:88X, :Gvv6\.>ׯ,]W\J7 `ԨQޤ7nanݺS,"Ɏ;P^=,YtGdٴ---qAD"|ظqcVŭ[0k֬Jy^~|x{{4ԍ7*e+Fg UfvssÑ G.]P`wm#-- >|ÇqAlxyyvÆ 066VK0ѬY3jԨ&MȦՁ6TXfĂxp#JƟB 9jTK=UBȧQ(, M+\YKA ; +?h9((B{w޿eĈ`qEر#ׯƍ˦JADΝ;B i .(|affVdH$~a*СC077/H2 X,߿_n?W}ao߾PHՒ&,ݞ$uXk$sH2Ц/y߄H\ӘMzҚǤGŐ,TYо3KDidsjJummm\]]̙3J_rpB355x"""iҥ4tP:u]vΝ;G ~֬YC翫 _f׮](ruuGeׯАWbFрhҥ4o<|2q\su҅ƍG"+… ֖"##eŖiӦe@t j7 e@ j ,Y{ ^K%PY kʴjBީ&MO^b 3 P;jfgga,^7oVX:4wwwWMݾ}H;v@OO'hhݺ5pp۷AD'eƍSBT'|>lll`*ӳXH̚5KV]vW#GDnnRʂ@ PL_aD"u:-u~iT{OQ,:D  C&}LbK^,a-iK,L$ P'TU,"b3D" Qu"URF ""p8pU:G~~> B+TԔZlI .~Ņ&MT4e ۷o~߾}ᆪ5k(doI˥SһwחnZecO>BCCk޼9޽͛7Bu!###5jݺuC?~Tx\Zj5i҄UVt 5jT>=}vES:*s4jHt~z7 "V""|?B-"4SG$WEzfSQaŢ"S,"bm 5!=5nZ&,ɓ'WƑ:Ihh(oߞ!277' Y&m߾zYq[l]v%oooڴiS7)OOOJII˗yoBڵ#"">Ob9::bQF ̤d_~v(,,m۶UnCz!0aլYv,ZnM[ 0f˗4|p޽;OdbbBdbb"ۊ/hʕHu%Zh 4R'##,YB'NR}(˕U܏Y8@5@, PU}t 5P,%y8 hj {*^cz2\.WU˿ "'\]]f4nl6>,9s`Μ93==O>xq+WSL)Lddd(45k`ii1iii077TBmǨW4"xFF޽{77Ū@~ :t@˖-ѨQ#Ԯ][M:Eݮ];^Z)c޼y033+3_T%D"*ZYj@"L7US"jJTN*ʹ.*AD}.qU rccCE ݻHHHP:JfժUhР>>> T۬$_KW^E6mb0`ԪU D6m &&HÇM6HLLģG@DprrRȊ-+ªU`dd*)((˗+zBuJI$"%%x5^xwa011ի+GsllٲE WtR(ׯx<^UؤRAH&$@bQe&RJT ɫ>@,U$%*> af&B@{y5rrr0v/n&s%_}AϞ=k`„ e .ve˖!00عyS.\Xna5vXOa;333ADĦՑm۶̬B)+z ۶mSX{Rj2 ޽{F#%DQnQաC*lR9 3]z1 Cd 䀌d Pu4駤䍴4i{9a%jP@@@%"4Eݻh^ VF1FҠt!IPIA$'Ю±2D)GԺ5OVp-ZϩqԵkWZ~MoN:K4n8![[[Zz54k,2e M8߿/wŋi*^t DS} ,>k׮)8<둴QyAɓ'ѤI`ѢEjMX!^UZ«a``Ǐܸ$(>ג-Q" D KT F6Z=Y1TA$!-- ~~~խ"1ydvZj|Eڵ1"磻 %%EevJ=UWȊרQC{0`o߾H\֭[ajj {5O냈pae®,|>O< |xŜ7n\߳g@De D>}@D>|xkT񂪐] ؿ?|YWa-SHDقhz!S+$Fi?!%S˚!!!6mB!Ο?e:JF:M&ݾ+v׮]`و*ޱcp1BCCƢN:ӧ܍Tjm۶F};wR}۷gϞ J]WPP޽{˾un 8q֯_|>+WDVVV+srrЦM7n]o1sLlի, ''7Iщ*y6l؀iӦ0u 1 G=K%L |V^AU$`Z-5a___=zzzEo>4jvvvcoo{{{ "lENФI"1.o&ԨQH2aU*""-¼ymNF iӦϟ?/R4FBB>?fƍIݡÇcѢE޽;0{2;x d Ha̙r߅"C(u|_;wI<uU8E$a߾}Xn]m˝Paܺu  fc֬Y}^>>>*%222ТE kap&M~ @lJ*AME>,xVXQD\gggI&puuUeUCpp0jժ??"D;w1j&#D˖ĝ/AdxXqPFF"L @e*)pqqApp0>|///]nRDشifϞ.]`ɲ߄ PnR:066.kggWb#SBK.᧟~Iٰ;rrrz)PaÆ¢WTTH%Kd+///}: 00UڇRD@ @pp0uaj;g ѦM>66% D@ dKWh^T/aٲe֭AXX81h ^ҌSNE>}0zR={=Ghٲ%BBBpرr B޽]vڵkDSrr26 O<ɓ!pС*6k׮y/==D'OEpvvۑmbժU6ID"b„ %щ*C) ?i44zZ$"&(B"b%J\ʦ}ǫp\b… Deeذa틖-[k׮Ebb"bbbٳgr9{FU$fll KKԪU /^9Zj%˫oooYOk׮kdd5j`ɒ%HJJRUIXXobХKGRƎ+11B*6UAJJ ֮],_\ VÒ%Kd}ᕅ\.cƌ)2m\vmt+V^GӧHOOχM3._ WoA Ty"99ƍ+wQz>T&n߾Ν;k}C¢"%AǕ+Wu,*HNNFTT޽ SSS~Zţ`ȑ2AYׯgsD"z)A4#|WJ$ݻX`^uf͚r7oUW5  Bhh(uP5sL ݺuxJ7oEB!FM6nƍu'vvvVNTi*UٳRoLLL ,ಉA@@X,&99۷o0mRسg,er1P믿.hƏ_b|ԬY?v7o.['ÇXblmmM88OSRq=zJl;w.j׮]⃑@ )SS 7oVU@ aJ\Y:Q}IlڱcUt;Fmڴ /mDD:t/^А!CӓjBzX,oߞZjE4n8Syfte޽;M>+:rHSRRnݺeADD'O.^AAX,266Lz}?@@.\sΑ/RTTM:RSS͍8hтhڵDM4ӽ{I&HwSNJ#;;;:u*8q(22ƏOu֥?;vN_}U~{?~Jm%"}#X" Bbba+WFI{ֺjxx8]|.\@6G)KuUV)"??>\}U ?ٽ}8w-x):ut9rʞUA@@Zl ===8pv /R{BƂ dO B?^("ʛ dꑟMYfA Ҹ0a0vXm۶ܹs/+DMDr]E">|`lٲl6^g̘:u^zɥQ"""*Տ* ǩSamm+? UHHܹS iд'1gΜJ%,ΝEr͢EdANaŞ'NDzf"08q"4hP$f033عs?)Oesq۷jo;w.u1UZH*@GOOO#//^BPPR˃@ qp %@ݩS'_aÆtRcǎr7n,;UV ѫWbe}W022a׮]߿?jժUWL8}4FaxbH, àv5jl%Sd}mr}ܻwDT4xp"ӪF^^ "B~}0Xz5ƌ۷#88XVgϞ):v(7- 4#)) u)2Xz l6ݺu+ELL ]dH=֭ӨÛ7o `ee͛7ǏXlZay{uS_ "rOccc1w\|d߷oӕU8pz!UTNTijUnݒeЮ[ׯ_0xA9@TT߿6;$ٱc0ydx 6az*n݊O* 777XZZH\|W;;;t޽>RRR".Fa%~p8:t蠐UIjj*>ٳgyׯ_<.G *%557`jj=D"e˖V033SiWav"Bzгgb*NTijUF7{lyܴ={6lllU%vmA:{U燐ܼySc4x<:t "tr!,YRǎ֭[?v "DEEٳgrG>Hq<zzz۷o1oDTRU˗F011LK9|0z|>|U2]ڵke˖8|Rf:Qe]T]%sΝP(ċ/T>VyCXX,X[&p1YΦMa8;;}ø{nDqƕח;ڵkr\AcǪc@ ӧO0 ֬Y]vA$iܒʐ"Zʕ+annccc,\H 8CBB={Ƭo& IDAT~Ndd$ 㣲1].4BT{{{ܾ}[%BOOOcKǜ8q:uBvvNXS?3n݊Dۈ;w4, zzzrwJgϞ~-P(Ľ{(K4iff1c+We"Gʕ+ "pwwR{+`ddT$\DDD`Ȑ!hӦ Zhƍ~Y&LLLfaddGGWiO4 |z}||R"w}`ʕ "1B' U?N>?*oe" +4n6GG!RSSyf$&&b033@ UqF7o.xb.\H,DEE! X.&<\./1zh`ȑ7n֭ "%f̘˗/+=.4e ~w3 àM68p\.=zv/aU ] [VZqN:sss4oprrʕ+n:l޼nnn, W^U䌪 ғ.YDC*}w@D2e.J Q/*\.{1Ǐ+?U#//O>UH#dTTx<޽ӑ )((ĉbb/_:u\```6]l"Fǎၴ4Ǐ|}HOO7n @to>H%B} 5jlllm6رصkOOO8p^^^qQyH>HS#<xm&9r$M6;w.x<N VrVv(t T >HLLL ^Z~1zh$$$ȥȑ#憐_H`r+=gϞ-.''_,NTi'񉗙yUy\\LMMli*ՖOKG刍e3;w.\]]"7|}}ѰaCXz5\.кuk5 Çѯ_?p8c`gg'/::DT$X$\0Ǐeg͚Ǐ .\)pl߾xO5 PKKK+߇͚5P$,_z*T&ׯ_[nӧOehڵӧ, %&L#::=5j"q_桼r 222PPPa[Yv4RTM4Pl@ϪB$aXhBT ggg#<<+V@AAv؁Ç#%%_> ۣ07793g{d|X/>~{#<<|"ݻw:.//dvtt4&N(7rq 899k׮'REr|}^\OO5jԀNTi+qLIrr2ʽ".11kVke#S7nDϞ=u ++ )))8r޾},X)))3gԩS kkk 22D___o>8244ĸq`eepttMAL6 ǏGNNV^-c݃@ @~~Mh i+W(5k@__!!! #GOZ(p]0 PI||<:t W<{n999|2N<Çcضmf͚UZF*@\I&J{n|Q# 5GB.]R9:47nЪU+8::999 6l WWWp8o^W~HW>N8}Vh|H˗Ʀڦw}6O<)P(ļy uu(Ƌ*@ŽҥKK<`eeݻwWuUٳgfUEvGln 6ώ;7nD>}d52eYnLLL*Ta͚5+w? `„ pvvFAAAY'O@$%IOOGΝhWbI 044ϟ%''yÃ)88f͚ QFQ`` jՊƌCwUI:Ԍ% 4֭K߿ϟEFFM/_/\PN*(( @P>9B?IH(Re˖pF_֭]zNAAAr1 CAO>QFJچV*"ѣGShh(egg 䐛]xj׮f+[[[&.K(;;[frssΝ;#&MPLL u҅VZEϞ=AQ^hjX"?zM:>--iر?>66K>>>DcǎиȰa(00ڶmKgΜϧORxx8BZGY,Ms?۷m۶Eff&mۆj.EQ}`o޼f͚:Ȓ|r8r\a͚5jXGeʂ*ԩSaaa!+Tѣ!ɓ/zӧׯ_cɒ%}F$^ִOiӦQ@@ѦMڵkM]<==iN#.nt(իW ӽ{K.w^z%jՊhڴi4l0ի|x\ᡦOC^JFY/^H jذam)66 )//[nb*cV?SHHYYYѕ+Wݻw: n*eee5͜9ShM6%"gϒl͛0bСvZ""i޽? =z/B{#..JmQqΝ;G:u&M(tYn߾M 3fvܸqח]VY$۷4x`uC[)˕iG=z`âEhBFFF:\YfuCxΝKsUu:3fPFhѢE]{o߾ԧOJKK3g˗/_~!6e]$ѳgĄ)!!:t l0 C3gΤG͙36mJgΜSBBMԡeh tz)q8Sҍ7חfϞM"HVj,~g255wQxx8D" Si:d…riԨQTNܹ39::҅ %:wL;wKuTVZ%&&RDDM:8@-Z~n޼Iyyy4p@(++ѣGˉ))[btJ;,,L[,%+S6ydz5q8ڷoZӡqܹRK%9r |n*C_-j"~DGGСCwwRyzz~HII"фxO0Haaa_r\ĉɓt>|8x*RaX4qDt}W4b:}ҡM6%{{{򢘘"wwwq?wXHbCDTE%bXE#DDE` +J(];OHeY<3sav{=bّ]*e4w\{.7N4 --Ξ=KDDBBH( nݚH"ڲi…DD$}Hr#MMMڵGם7oQii)޽4.i:M6ȑ#tU l(**7o"!!aaaҖLLL`aaQ򰰰?NHH?I BPWWGVl2lܸD{{{QDGGCNNW^mmvvvСlmm!#033͛ݮ]Э[7IHY=UG@/_jcjbԨQG&###***JDEE:Dgrtt$@@Җ,X@ׯ_ϟW\YYNJ+NGK,-t)QQQdhhHgϦaÆQ||N< "ƒ*)333رÉ'D0޽;.\Xrkkk 4裓qQ*,,Ǐ}ƋTTcݺubȀALLm,_K.ϯ1 K󢨨hى'+NٳJ {f=z%%%4iw^)m￱sNىOWWD#Fڵkؾ};TTTפ˄.]T˗/C^^GnV/ܹ3a``'v kdfc-[~Wpaj rm 88qqq̔@OR(((`ݢfϞٳgKQUøpQQQU999ZtM ,ZD5k4kΝ1l0(**dW*"ȑ#q <7oFaa!\Zj%^v ;vD^*!!!x Żw>Cxx8n*+`M,L;-Z$ayy9!pfm.$$$aQrXjÇ cѵkW̛73 m۶0k֬f;7,,R)x{{޽{xPaԩصkDM};v5ZՅT3322={Ht?[nĮ5TR7U `޽bK.A^^ 'n½{!C=~͔˗/*=* 7n2M@@\.ƌQӧO֭[RX~=`bb*똛н{wDEE_\v ***:t(rrrk{aa7n\}=<|8]z83аTTTHOOR.E]rc`ˤH/@ S!vJtt4:w,.uYaXXX`ƍ(((@@@@"j>+X|98\. Jz1bccf߿ɓ+,sssXXX`ʔ)xbSBQQ׮]磰N3@D A=@D2eش|@ ۷o+Wѣ_tRBNN(++Cqq1+M˗/G޽%:`cc\O@ӧOTR1U7oXo\ %%%BDDT" À̙3rHMME||͛}!**α(^ ""5,hŏ>`ooЫW/on:0p@>544aKoFDDh=sss̜9;w0ֽ{0tPU1ڵLMMn:Qeo***عs'p^><==*6/^T?bJhrSU1\2"''x!kAZZ6fΜ a-mY}\ .… RR>cǎԄ#tuu!//"B֭1ts#99Y߿?Ū>}:жmjcjի0`LoooT2/jjj())!5k,C(⯿!>>^,ǶzjC`` ߿jB}\.\2 2~8pD$렠 hii5 _,q¬=TyzzܼY)...~7iKi?Dܺu [F\\\D,gϞXxqRRR"=FQ!\\\wbǎE׮]띠4..֭>}*nHOO|s_CUU>|8Zn]P]z?c9@^^ǏBCCz8 ia,ZO>Ń>mE:o6JoM$%%!55(--~;mXS%{4x hN0 /^4y̖FNNa`gg'J\&B;wN "i&?G_ЩS'3!iiiAqʮfj")) ;vD=p899o޼S;< ن r"-[=zi݊~~~Ϫ$:) Iʕ+ѥK'l ӳQYS%{4ھ}; a0dX[[K[J̙38{,޼y Җ$?=ADPRR%b.ϟ?"BZZZ6|T1vX׷Nzp8sjjjZrIDATAԵkJQ~v5 ѣGiѣGi4t:oGDJ͘1&OLޤE~СC:>}͛7nxx8%$$ٳɓrJz۷/^Lv"%%:[EEZjEDDԳgOxݸqINjaח\\\HWWZn}꒟RAA 9;;ԩP댫+eddН;wBmKWWW@+W6mڐ%H\WS߿?^|Y/ō3 >K%rQA `ȑ$vZ +V ::['0fA]] Uz$\.աKKK̘1K.֭[qa#22`jg5f/22&L@>}0m4lݺׯ_vxƍСӠaNPKKKtԩJo[]T WP__ӧOGϞ=ֻ;v@QQƄĻwaJÝXXܹ#hkk+ׯ_?888 00_~hZBv_BSSG߾}ADXdI|\\\Lh رcG{*\=UxTTT)V7|ʢ`_l z%$$?~ڵk'mY-|Zh999Qnn.ɓ'IEEEĵkht! 0OoV߽{WmRQQy{{J- "KKK(***""޽{!P($WWW277?ڷoߠfgg>ihh/(::TUU[n^z5͙3hРAu.> "ե~QPPPV*PDKo߾:IOO۷oׯiŊUZtB<JJJx<ԩSXڷoO+W$Q\\L4m49r$-\P `֭[z)))ѣG4p&Phjs]>z&&&Zڵ ݻwK͛7aeerdddH[N%44ާؾ}; nwpp@ǎ="-- =BHH9m۶U߹s'vYGV/ cǎ_~aDb?XfFDD   #FUR,_PTTŋrj*`aaqaɰٳzSd݆2dzo0 _ai&>B6665f^AQQ\gϲJh۷oܼJO?$.m|>qĉ{͉Gaa!VZ4gj*iF2!Ə/m"|>ܹDyyy >iеcĉUz}&&&`zzz8r޾}e˖AII ؼy3 OP]N@̝;3f̀ &LcbС4hׯ_oyaxU4ƍkLŊ-y.\P%9*0033ԩSdǏcڴi(..^z,KNm3!??jjj)֭[8t|>:w͛7QQQ`M2ҖXp!.\Xн{fwN+HII޽{aee%z֭~yb.ڵkccc888`aG"1ϯ_O?. 555L2D{{jSPP3g`L[E wB)3gúpm,[ +þaii OOO+yyy{.JiT?Gڵki?FFF\]]믿J['@ @pp0={3g΀7n4:8`9V^-m)ޗ 9p@ !66VChh(~ghjjJXZZbΝxEU$J=pkl޼pttĮ]`ddTkOIrr2E&ٳge_޽{7T CSS3g9i.8;;o߾QTTcǎ1j- OOO\~eee?~9D]gΜ))-\7oޔϟ7z=x<Eoв0HLL7F.+Zd .^={֢ߊzzC5Q4XxkI7oZZZkeeӧ@&#*999044Ē%KбJh |}}abb"/ٸq#d6'WKa8<ѯ_?"--If>|ٔ:O2ĢE  e 77.]ի[L: Y'&&NNN5k/sΜ9ՕH !,, aaa]^^^ҥ &MBLLصaԩ " \.b1<7o0XzhRԩS˗HOOfffxq0 WQ۳g#FS1eY?g}==2 \o^^^Md<{ ()).E밦Jh:w\.+~~ҽ57:w'OLrX> 99χ:|}}!C 11/}W`1WXn:t̞=[bEp׭[=z&\|5jTeee(//ҥKqm\zD\vJH@ ڶm+:Prrrbxbjj/QQQ.ߺu+HR(Hp0qG-"##addl$''sP_lmm1pJZ=mqܹ*>~k׮0U1?%Eowj xx)푟aҥKP/s "‰'$%T7ŋCYYJJJ矑"QӦMC޽7n@EE/_ollcǎ)((6455\QEFj``%%%޽{}<1NNN-" sťc*))'O'"==vvvضmKo"..iiiY~RPPMMMJt8N‡x{{,"'O{-^z% z3f ֭[\p\\t Ϟ=޽{QRRR @DjBVVVjrPUUڵk,p]e F%;22qqqHOO>"""˸xbt$%%cǎp3s]`;w+#IH$D"Hފ$D"H*2H$D"yR1%H$DbJ"H$HŔD"H$;)D"H$w SD"H$@U! vvv/LD"|CL8b*  *,D"H/Ď!,sN4lLnnnppp… >{~Chh(/_xڊI=zSN駟`ffÇm۶9s&4ic̙Fjj*>c >o޼-KJѣGѶm[<~˖-ݻzjСCXb֭=z 22-̒pBСC;兟~ dߺucǎ>%_ڵk;wRVرcڅcjj*CCCѣWn>dRR9YfQTIj5/_G1<{9Y.C.d2888`ٲe000EL3g֭[HII\ dff֡Cʕ+x"H"''GXe֭Cxx8|ر'Ď(yCo3#ك#Fnݺ_>S* . ++ ÇG:u`bb"vښ5k`ccggg|W@߾}ѠAܹs1iXt)O>9I/)?y$իlmme˖!55ΝM~zT*l۶ GDDLMMŎU朝1zh=z[FHH4cEu644w7mTW ˿)[4&BAZMу$ٻwoΝ;d]^^Ď!Ǐɓ$I'''zxx0??&Lx$%/>>W ܽ{7U*ؑ\aa!h``w4fx)9s&ѯ_?̘1}AK+r9wo[lؑ> B֭q1* .ǥF"޽{#F9`eevCaĈ8x N8-[|"kkk?W^Ő!CPF tAXefɒ%hѢ.\-[R$oLݸq/_ wwwDEEA[[)NXXѲeKX[[Pz-eoSN~T^ݺu롥}(åC__fffprr£GРABTBSS=zڵkAb}hwE1dԩT*={W^fΜ ???ԩS bǓWu][7cٱc܂yfZXXT9mTXX0 @(=Z3%%k֬srrxFFFOscx 3""999Ie!//<~+b-Z8gffrʕe 䍊(ezznʄ_Ê))) . bGzc .ڵky.k׮JR^2߶mx2cȑ>N>ɓ'q@1+++߿z;{!,, 8|0&M$8qd;{iܸqbGxoYXX/IZ &&& AǎqUԭ[W:1xGZZZUqu(J( 3.I<{ ޸Rڥxb044ӧo>;t4l^^^҇{ P*wlmmѩS'̚5 ߿?*Wʕ+'*}2x,ezz:V\ J{I;ܹ3]XlC˖-Ŏ.\R ///g{yɓqE/mQcСXz5>iw JOOO|g˗1uTLiӦaڴib`TZcǎ+|HKK#._,v MCC޽;֭XbدhHB[[R!x߄.]'Obĉ媋8q".\[[[#UXjɨS|}}1n8 :ZZZhԨ>Hׯ;G$t ظq#vZC-`Æ HII3/_NX/Xp!RRRLz>}:O9s?sY6RkǏ#""loiܹѣj֬͛7cǎ(I3 [lS,,,PZ5Ysڸ~:VE-\bbb0p@>~~~ׯ"""Koo߾P(3f \]]rJQ,^صksy1P8x bcc1s2ϐ 8::BWWW*P`` AݻK/~7#H ߿MMM7ϟ͛7qmԯ__0~M:::tLMMcԬY}YPը]67kOReDll,ܹS`ooToYf_QD`` b߾}E@@Zj%vQz9s&Hb˖-HKK{IDEEm۶2e JIdee!;;]t,X ݥRAr#H^A&Zj Ǐ}?>/L???d2\X`AvJ ZLEiiiHII)yX1eӳyL<gϞExx8,W ;5d2>T^ Æ t3+<R tttJKNBnJ I z1-hIK,J?XApp0 TVD>Q 777t дiSI԰a۷o9M|8̙ ܿfhkɓK0+W=S=C{.]+W`y&/^;wbҥhժ=3o<#HJX*U0m4Çall\DEE̝;x0fee?dSg9L;;;X[[ߕΟ?GBTRV\ɸud|嗰;rizL&Ν;1i$/ԩ222=C1i$޽xka4i?~|)&TTgYfA 8M6}t~~~ âE0eʔ{{>* gΜAhh4{nҥnd2~kh̙֬}\\2>3,Y^^^>}+|mspvvFRsǏPlܸ -{!طo'v I)D͡T*Ѯ];899!$$.];Z3i$={8qK_РAaرePRT3gBRGԩf̘;wDpp06n܈qIdff"00}A͡ZjKR/t| .@Pl mmm8;; ˖-Ã1DRRRqϞ1%HzNKK :uBVP(;BIT*l߾FB^^~WiPxx8Ŏ!;燐ݻbG*WM(߱cP(0j(J* 3܌3P(бcG8<݋!C >}aÆ?>kir؆ Ď &͡T*Zja֭Oaoo/vhkkzbGhԩ:u1$"ŋQPPŋ B^ +++T^vvvpttDÆ ѬY3,_L2׮]î]t :sH* 3fϞd 6LB>|8 1zh#I i sq 0}tDGGرcezIaʔ)ǎ; ,,3D#%ycKGV͛7;ugϞKTB۶makkwUHrbǐFFFԄ \]]QPP__w^qM\v -[ٳѱcG$'' fܹs$qEL:))) 6D~d޽T۔_*Tϔ/Ν;(ZSiӦ?~\Ԯ]M4Rر$L޽G9!.Y3+WPVÃ[JzFyrOԭ[ڵK355ٳꊔRSJJ LLL%$ſƿɓ??? M(Wرc$`o`pbtWPA-x<|yL6l h+++\rc͙3ӧOGbb"VZMM@|駸rJfժU Ann.\\\ު=UՖqpp04i„ɓ'455֭[K1Y;ux9+_ P.$ϟ?hfggsaPPu\._={$Ivڕ=IR&q !pժU400 I4=z IlْK,azz:;tà ALHH`NNNY$RVX7 5{A#[Ѐ۔؁'78r忿pȑ\|9 ׬YCEQZ57|Sj5jԨ$%%ܹsԄ/лwo⣏>ƍUVqعs'<<|X}0t8z(޽;N8֓jhh8rZlY+b*++ _~%~g:t蝏7x`Ƣ~J eJKKI2ZZZ0779j5455hҤ 틹s"::ٳ'֭ ,XxAyR,Y>}zemm]|iӧG\\>cXXX`r """0x`|=z4Q^=iDplm~وv_#k)YdTlkfrv |e`Pf 9 HOZA^7֐cW_}ƍcΝ;cڵؼy3Fp4mڭZ*r9ƎaÆ;.bJVCWWD?`jժ"** /c4\f͚aԨQ={q$Q C5}"668{,~lٲ666022z5j\.;B AF Xn]qo]jPjUܿ 4'`jj@L4I8- +W@E m[4kUfx($UDc~KDdux!2䛵Gy.h6Gr1644^,RRRpؠVZ022z祥xrrrZZZgI1fJ7۷ÇZȑ#T(ܷo?~,v;vnʵkRPK.eRR/^̴4RӧO3''[n#A;LBhGoj@J͘OXYI=19S|̙g n]+sߙD%']'S+a\Ml#{c_`Z4^ɾ?ϱSN2cٺukqΜ9ܹs'V?cZ~5"k׎;vXfM֭[.\xח,TGG;vxc4f(Ŕ\.g׮]gϞRk,R^Xjkk\FF={cǎVZ,((wߑ$P brww1ԍ7r׮]LOOL&Ν;K" ۴͹OfR*cjתTuyx _2_I>)hG $&>$Ih}JX%u'LB4M`jj*ONCCCL___Ο?C a۶mYZ -CCCvԉJ1??;wdDD !6jԈ:::\jpԨQ\x1̙C;;;8D^H 9CbjΝ?L3<8111 fvv6m6FGGsԩ{yo B>}O>ihhH\ 6_;^sjcya/+G{~1܂G~W^Vs8=w[ge뤳l[ep$u#nuY\ٟOX?:b潢.9 \f  >Men>ԝ~UyҰR%r̙LKK{e\޼y;MF +~<55ϧ9Ȉ.]*~<##ִӧaxaE}9IT!j1%+=ď_( eM֖o-LJQ׏۷'I:t载u?55b(YYY$ѣGsĉ,,,d-@J\ |˥C憟0pk;Pcܲ5?[j]ӺCuenA1VNr@~"1SB{ CKN'OxOSLqujh|OW&4 he:yʋs{.'z{{׮]˘~ӣ>njׯ}TReʊ5kdhh(MMM_?66آE ۗC+jAHAB))R1UqVLݸqwJnD<|6m0''^:Hr9Nʠ ĄLLL,i}֫W/Ke"55Ç۷CGGG彰$?_}Mǖ"8(]ïVe14; E~%6m60 1] I %y&Q"Z^!dZDzVJBq6͈f׈f$Lȏ I}uAVsN֨Qĭ[tl\^^;t@4iRiggG:88 سgOnڴˎr/t2e 5kF ɉ/T%VKTQTAA(B8[,kѢEttt zCΝ;ɓ'\n\y/ŋbѣGyE޸qGӧ&@@m-}?r&O\?/ؘUD.[#+ {s4OUxQv¤KUT,H'N EʴAOO$Fa3GTV&$Zux#](*]TݦM~եcYYY\x1(͛SSSC )n۷9otǏ5kFi|H^%77>>>T(=z4(33Q=MƙXK"4*w lY>/m_~nmG[H>%%d2~'z ^2;Eb\&14tl]6 /&0P+9͊Z{WZo~߳gϰn:?P}ݻƀgϞ>o1x`{8s 5jB%K...HOOi)))HLLɓ'q >}{ammmi 6|%^UmDeBAխe.޳=zs%Ją Rvޝ;R1f3FB||<}||(4i9s搤(;gJ݂fWavUf{!4ܓKurɩUIn%5RSF!u $6]ZӰRc hUǿE-F=}ͷpo¤:CL"JK_f3A$ 'WZ͉JESH=odkb FFF2''(J4m:uDKKK<δeZZVŋmzz:W:ůGTՋwy3Uqz1P(ӧb\.ݻj'NܹsLKK{&,kfbb"7o͛@XZ/L'''ǗI!! 9*?v٧M66rp(76>kflu-.u9ݳXtmDzŝu6XCb}͸_T /dvIۺ!SbSB!WQdAJ' kv]bR2 t +_:Yn+b#Y; z\.g&MbŊWnRNLƞ={r׮]E?EÇYjUnݺ/RشiSd26mڔǏ>} YYYܹ3_/8J2Ihjjbprr*ͦJ#ك#Gm۶}}Ibڵ055o)| ** NNN􄁁FQF*ﳩS-[&rCCCnnn[nCQOڵkcԨQ%Ѹij!G06(Qi@:&F⑦-WF; ǣՐeB=䪍@ [X{6,]I,_~YY8t6 E#@`HPUSn*x#(̫Uhd @Kkc \Q!*Sgsv{ٲeh߾=SSS+ZhݻwcȐ!с  ޽{`kk{5k|27"""`jj  zzz3\2Μ9D̛7sΕSZL\gϞÇUfóJ7|mۢJ*رc_ڵkaoo@WWCgQre8|07<۱;B|X['jԨ6mx ˗cԩR;GIް5J]Lz'#.6 ,q1 !ȷ3DV) 1 T@r 403`dX72#q5#.desg{l~杅@ r0/&8\4lButd@ jhYn@@# !RI%BІ}m 6б(y'm*@td@H%Op{ Ũ9wn<\ <; *"'/C@uIEQ(괢rm#pV$ P,Ð2< xyyŋ ,e}5kĄ p%cɒ%HMMaaa>}gff gφs%9vuuŝ;wPXX+Ws_򉟔I&aݺupqq)&ʌ;\\\-[o}q7o֭CSSSӆ pI=zׯG.]`ff&vJ޽G9Itm,]{쁱1J%4it=:wf͚aǎxeE~OUuE seܮ+$AS!3 Fr@O_:+&ʠ_YEhSrt" A9PбH qB:ܺ |n\$4z)V Я y,p*p=~]_Oq+ @ Go L\ħso 45Ο?LO?&L Pc5ekĊ+rJXYYaРAسgASɓ'ӧxt=S*Tbb"ݻq2Wzul޼sE~^'xTTIzMr˗/aooƍCR֥Tɛ7nʥxyy?@͚5l2uAǎ_^sΡǏq ԪU_QAQ| 1k$ ͐fm4X⡁ .dwĝF&@oU;KiQ@*p1O`U;rS52R?-Hr#f!p1i Vvu&Cǟ5+]]]X5j:tA*J aCy +MG,?c<舂y,,PBװN#Vm%XB&#[*n E.BʑoT%P00T j_ԋ2qt]#%`c㣨?f; P )R^A (="EE^&(H#%TA  ! g-DŽ( -@gٙ;ݝ9s߃Ts 5ќ IDAT;f F8}n0 !^ӖR ςAH: s3)5g*..̙3gpvv.j:ɓV_bp=Fg}_|#Fзo2U'_ eÇ9}4;wpbccYh]t>cǎԮNcVu~fSUlo$NjH|͝1VVKm"; f3: *b|EƭM:tj my2_}o;(Z*`_C7HA}>@`b? 5hB{#=Ul@-Lz קk\ FrNRȢx{h ++R{ܹ3w歷TTT}BQjԘ1c l{jŀUV0v[o- 2e ݻwA8;;?֎Jhh({w T]b0gK8.]~mge OIFV.6uHQݱ ;jq4Qg$" a2QqH,y qp} yl3`FykzR`LV8¸."d"/!.Umzh=`.yphG;vv|&`$07֘UGׁ|Նd`-,zLh΀*c,h{[!nNd>fFÆ ݻ7...emJRqrrr;w.111uqa25kyyy\x{2z2ᠰt^ҥK0`|AYZPϞ=ؒǥK ɉm۶vZbcci׮ YrJ뎧[v0vz1 )u}Qm P@QMpu">& u'ryrmIMAYpl&:Oϡ G^j` S苧r`$xo4dYaPlN0ԴRY 3ؿ=5Cm&p ؀+tp8 4.BL푻A_n ~`R`qqhQnx<+WYfxbRSS7n\Y{ңG8pď2"Fd={eժU :UqgCAAwʕ+OKV^]&(_wt"WĖ{^N-{O &3qu(jXX['J6Χ"nkStZ VKdh-jU1LTi?A~KNHйQ+\gHݯ\bo5D׆h%!ʀ\3[ i RJa: yG%:VE.toP=T;0Ls :91Sc 6@ FG%,Ҟb$>>$D&& =;SgяT;?'""%K>zhʉ'8rHI?4FĉqppxH=$̘1C~z{E! 0V_Įjw.D4; ݹLU*,NT/y-_B⮟10 7P$zpBekr]S`]4C)/~mUZO)G%mȲe_%b3Qդ9  s/P>P} xzB**&( UMDxA_LBYC_ȭ`>:_~9Jϗ)_ .Ibb"Ǐĉ\t4i$-ZD޽HY wLSNNjժh4>5pvAPP?fbԪUK.MڬRcԨQ_[~/kJ¹sHNN&--%55cǎQnX._|[RjB||.h0wzPa9L\Z[aȳ%TMjV;K']Qz(vnLn31רJ!v[Y:NS<P ZgGZzIUg9joc ?40jo5:Q3-R vBCѫdpփO5o [8`V_ m` u`٠-v l1{%Q X~m vAM0U ߪܳdd"((7 Cp0m4 n+ݠ( )))?NǀK;Oܵ3e41͏b ֯_ϊ+n9}uر?s)>de_2i$bbb8zcE}yK.\X֦ |IYP|%j;/=zBBBۋK~ߨo:KZ iXrTSӏ4 ,HL1.XrtHv>nE(HãG띩ρjB WwI0|)p ^yZ;]%T8 ʆg\:W[[ fH1yM{ٓM 69 \\ LTgJ ]üD*:(h dBjD_PEwwcԨQhтƍȑ#Yp![nٳ4jڹ\pwww/ D62p0+4f4J$+^ ` DA\6M|? [y G}ŋyׯ6tPoNIMMeɒ%t_ʕ+̙32e QQQOf=j-8yrɒu3goooɹ$G=zL&YrL2-+[.^(fYF!&M*ksJ :xZX,6YbX(5FfΜYjuƭy522\ژK뜝bC<,Wd֖̔y\=),ѭ6J˂=LNyƠ.U(3$퀰TX~\k#·"0Q !|G'Y&aQpB,NhtT$Vz(&E Qs"BtQU1f͂ςDJZEo&,8& {Z]WW8KYaJDIWaI]l~`w@p5 6 yA,[zY}q>s 3f̸eqƉꫯQ;wBffڵKfpr=SgϞ7, 4~(**h4V%""/>634^JݺuYhsy,ڵSNa23f ̛78{|ػw//111DFF4^j7K4M;BEaϲV!)lR^l"+,;[! kMllESLm`"\:??Bx8d׈5 EN)5Pީہ^QK0U!wl+ցr`o\/ XrP!Vpy`Us0ētHƧ5Cƿ,S:* [ X fCN1b#F`̘1,k1}t/_K=FٙvѵkW:ut1|O({ș#00?Ar &L@DXp!L8;=0op\tTLWww7Xz,~mgjҥL6k>v*&c2zh;VNĉMbydzƌɓ'ٽ{7/^|4hݺ5Z*Q 44{{{ڴisLGG]a$&&b0J֕׿~9  8VaCc6+GM6q^^JJgI{Qzr$j0lB ZNz,& xcYU*.! ⣠C[U,Yv5]xŬ}6nϾ ,·?US4;$ԜIU_*whYB#Ԁ@<8r$^U8h+ptrr}\}qvn+..n8;JՈw-'553gfَ^Xc _먃 6.C5Ҏz lEa\gZNHHСC,Y䮾/cƌalܸGҬY3ׯW݌$qT5J7ظq#ݺu/m`XX,}Uhh(t֍ (cHZcǎqرu| ZVZ,/VZ%wo6~)O&!!bUr M>L"RY="2lJ8w4!h!1u$ ս?XS*Tց/U`̇F8Q v/$n+1 .q>99MRxߵ l0]BЦ@/@:Lb !ZU)7C 8:A3l/Ž}`)ɹ ͚uŻZKqGGW hADDvxx87Y Çy~e/8th KqtnDNAwYN÷Ƴ` ah`aajKUh)p1U*Tuvݺuh;_lllJAFظq#͚5+Pܶ3OΝ-eҥKiݺ5.\Խpjر8;;?=T&~Ѿ}{,XPD3gҵkW ( ylUWZU&|BHHkRef[0AiZeI)sD.We:ՙQ4  $@u=XKϽU%ϨM*A@A] h m vEժ3(GzmlZB7y ׂ$$m;Ք/X)͛EzMxz:{t[nn.;vDQlխmSTT_~S8_ X??uH2CZd9 x@v 1Av8߄$: U7%8Op\µ!t1$%%qIzIƍ`8sT\\L0 L>WHOEgg燪*''ѣGm6o#Ν;9s _}m۶%!!.]T֦7%:8p`[rwۓWu&Zu !8g1{:p@k>j8mG^c?zZhLDgՀa7hx[38$Y%AFH a#YA=,pBX ,20ҥK/н !`5t[4pJ ?\4 ǰjQR]ʗٲaC?4_2|N8{w2z$i f_/>&88ƍӦMDz ;;:o]hE:SzJ d<˿HV./ǵ#>؋@9` o0! (>E ע\o*F~k4 .¾iNBu_#Cj]۰`'ZR~( PtP >q@ASÇRv ү_R;t EQn[:9'pj k`0H_ 3_WQhAD=ϓ߂@7+*p }פ& ~zZ-={c2 ҵkWqqqJ*Ցz£=':~T?~ψ_} V٠{6T>͠R+"z;;;8R-" ^ϐ!Cl!80:f C^:L3M!Th ,!_S|>SL4gDVq|TP֭[#O{Q=S 6;k|ᇘL&vJkŋ9s 橧/:V̙3 `luvHH++^&+W䩧b>|e˖ѠA;'FrQrN} b>DUB+`2{UNꏡ8H \8ux)l+:E~}Wc@o!P =Hh\j4R}:p:^י>h:BpNAhjO 1>w|nx^xAMq}99ؙ@ZZQnM ݻU֊5 18ѤiӝuV`NǦ@ jaPp@o9^ vXb57C~~ K\rOx8So߾͹NGi֬mܹsٿ?=zxlUoDFFFɐQdd$'NdѴnݺM{ \St:ƏONhٲ%/ "BXX2y.wp7ڢX6:mGWᩉC5c9M$CN%"W+`c_\T?6{O@Z47Q0)L gJ*σ9D bwjP)h4}APFc4 ma/8 X&) ҚWRJ˻ K2rHΟ?K$}HOxĀO-%[SǛ+WLiS~FFNs"#; VwLל64l?_`[4@@\yҥ:';;EɠAZZOx5Δ'|BӦ7|(,,m۶ݛ^l̜9t^1L <ݻSfM>쳲6Ը6իz9~85kDQZlIݺu"11͛NLJtlf̙(r[1_f\,8}B(~64s_ـHhqPsҀrl5^daaR_Q?庰/ ǫԙGd}0^@v8SEZp rR #W@7lZ]8 A՗Aiq> 2jgxƌʕ+|uzOJTT{FQ[K &Dhjתck;ХzjKfEEEaF6o>Nco[o^۷/}ĉ 1ǏGdX J}6oQ5ãnLc0'^?[pIɓ*Pb6{`6ǏK^^=eXbHPP 4H,K)XhQPP *T~[~'wTGNNر>Y߿_%11Q$22R6l bXߖ-ZH:udԨQ%^Zv)ݻW>c\tI#""NNN2sL +ʉ'd׮]ү_?1gٺu$%%dz nXdhd[h4KVnN~#ai谬dz誗5]ee±IR |na]D&"|.B]ʉ0^Z""|#|*'y´Du]^>$Q 2MnSwDxVp4OsPqҦr1!BOlDDܾ $X7YiKE}(U&ZS(ʗ/E*BMWGPmW9R#o)v K C ԔlD(_ 8vEQ<ݽf1̒W .x~ 6N=\})ɹ9G?TRE39ʕ+o{'Q(8e,uVKRR=s;ʼn q+*Un͘>}h4ٴi#}'X;Sw?\fsYr̞=[Ν;'YYYwo^^X,2e,[>Xh`6OzYnذa"%/^,6m:u ۷'[,b?Pl"gΜ@:$+V)**uɊ+DD$**J h:;wٳgիҽ{w ZQFСCEDd޽W fͺeϿr5Mĵ}C*,ҎҴm-,d,1,m;ŲC\wߥ3eԏ?.v+vO2Y_E& .9¤(Sqr>",4vT՞"E!u`]ЏEQ$44TDDv].z\Jj[CIoΖH߿]|[Nt:\pfSjj%'v!ArrnmذAqqq`_>|ҷoGOvfΜ);w~`MVVW_}uFi֬L8>ZhrJ%V&M$"^׫7b77ywryRw\,E $Z.]`0Ȋ+$%%t&lذ~eZy ,2}tzK.]T4fffdddij낢#\[VZ%_^._j,#J^>$7$Y/6OM|4U"EIk E"ց,u(/Huq%8nS|'\)v*' v˅Dž{ʉcBx[^(lHlH.mDi 67֖8%߫w^iذ$''Б̔~AF%'O.qw1n;,AORR%ILLXYbX,5k@mF>}J~ScLL&od2=5+rmu9_gYp#y=*vvv%efС)6lۋ[>\h_"##jժҤIޤ$44T$99Ycǎk.پ}8::J\\-m۶yF@rssޓJ*I```I֭F#Mo&Iv-N6bȺr ,H~SZ9$uw*Y*]bqH"b\DL^D-gQ")B*넾B]Su͙$,v^S{>"|lf mWA]Ke( JcAS'dҔ|ٵkO3um9sHLL >-ZHxxڵKzꩿsmiܸ("'N(Ѓ$11Q>31׭"9/JzCwQr֧~Z{'#cL#eߑ&+V z 5j('.Ҳeg 2D^E@'"}dƌ%E˰aJ02m4bgg'Z^xA,+"FwoFTTtYy%99Y zRjUywke%Ir 2i$ү_cZ 6Fʫ{v~v~vRʩq{?'u|y(-R bq:PYh!x /C")v r 5uCzEXdÄB궺"7E.`*TQF0Ph/.oU:v Mƌ#wn^4L0A|Mj>q<Xdʔ)bXoCLI6ƍKsʔ))@LS|}}eر/>r*\{$**-[IʕڜR͍?={u/^3f̠I&edAFF;w|l޼|deeQn].\H.]TUm^ոqc0tP ;v EQpvvF3aEapo3f l믿f„ euV}ʕ|W瓗GJJJ>˖-#11ʕ+xb $44PիիWquuEQ:mZ}]ooL5b 42TL2ȬD^IvFE'ssf傆|{0Wt7HkV 8 *5-@pk戚dP !)D@`m?Ú`l*7W'7ug|zj^|Ebbb8s gΜaϞ=ٳPŊ"-QXXxg__stؑ)S0e2e ݻw& RDD@Dزe6N= jzjժ1qDlmm&++끪 TX-[f͚ʙ2Ltܙ3o޼6Ti8/wnP TUT)pܪQ3L/L~YddddHLLI^^3fx{{mΝ;oYׁERPP &M#GO?- (9FQf̘! 6챔0 GԮ][:t۴X,2}g7կ?{ET#؍|nlX (&^{PDAQU((`=SΜ-kk. ʖOEXF}Ym2"Xx\TŔ. I40 ShGL #S%] ed:5Dېh{]Pn1LG sD h>1&%$ZQ0iR4'8>*iO=Ksssߟo߾Ν;mڴ >ɮ"$$FFF(H8-!WWhaa399T|1bˋ 6d||M)rBCCMcccN8Q(Zj.]|l۶-wGyGgddI&ʛb17o}aJWWoyRJJ={giȍN2={dӦMikkKmmmELMy.>U}7d֔[hgo-Q5?=Spc}= )Fp3bٛ܋l"|AE-)]FDؿ0ޖ'AB?^Q`zFT:e(-6;IxhrкX&o /A"a( V'1?ЪFu"~7qqq>}:9¸8khnٲ%WQկ_O.Q266ƬjOh T:::̌/^ Yz_)%1SrHHHF 5]\b0rJT^?~ Iܾ}0`hѢ|myf:t'N@5`bbUbyn#HШQ#ԨQFFFHMMڵk۷o/6B6mIIIHIIIz {ݻq {駟Pf"oذa4iJФIuSuXEO˛g놔bD p&A}`_ky /@o#P;P;`jhb C;30j(v!y1m;@HP9mH@K dh\W8@j@:^Е( _5ӑ=#'뀤>zx$Ab:l2uU(zzA__ׯ_vPzu4mh?0w\̙3ĵ+244Ĝ9sǷri_ME {|t/##ׯ_˗ŋ'I >n¥KPBOWTVQ*d޺u;=<<|mƌ477n' *sΜ?>=ʑ#G2 +ƆF'O}ڬAFFMLLhll5j&''m444ɓJk]~AlEW^ IDATPGVoMqړHIޛD͕(n"uX%XX#aLBDuzm|b}EA,/5"Dn ;6bcK)v1PET79nTPZ_m/-_uCӭH}$# WdA@5^g Rx/d2qѢEdȪGK붪Z2}X^tInס8N4EU$H]-*=ڿ?{{e[۷os׮]1c;wL[[[e42t?ĉAqŊܲe 'Np޽6m[jE##l鿽z7o>lp޿_Y}޽LKKh/!)n0iiiyri&Ο?޽;\R$|wSNoSNeϞ=G477E"ɘbmӦMDv#'r'9ټ{gzozFM6PbU_|MJVz|)uPL9MPk߬"4=5DJjJ4z)Vb+Q"}1eA*b3$ʓ͗횑P[MT_x.+ĕ!qY"mE4*PjvlUK']x_ÇH$ ߿ +оFMv3_VV~'W$''|%sv;>l͛ aaa?ǎH$ʵW1Uz(41u1JRS"pҥ 씅bŊl۶-'NHOOO|-Oikk^h!!!AAAyB8|0e2Gw}jkkh/P"ƍchh(˖-[,hp(`ח}I4kT<)wWdihIXF9hxaNKX R\ULeMu!@U2Z0xCد'% aX=ŋwe~1kI, ]xI'I4r|(ٜD̢ d(# ѠBbX^&7Kˏ{IY~]B'0H#")ņDk Qd!' .]vII={Ζ-[XbE6-.jٗ!2Q޽w^ߌ ;8a„|ȠVMg[nQ__...铕oq͚5mNRY=8:Yf%U@s[v-ZdFEմ7:u~K޽o6/eRrSVwbjx`k)&e 9Lg|&!h|0_K׃ ~z.q%mS5}{MS {9՗Nh^$4WF-m#!N$ n$7eyc&$$|Lxx8׬YCA<~N՜:u˗`I}#wu׭[GX̎;*KYyor}*=|z1˖-[% BBBhbb³gxMӇZZZwK /mN>MA*A`YfqȐ!LMMիW Cexxx~VVV~HJJbRRk֬l r9]\\(4H]8pYi>6lI0z19Zʔ51%d>5S~'|vʉ^F^ ߼I/kժX9sϞ=#I(GhW%,bj'i\}ww"G.<0FK8yJTM3eJb s?Xg`(Qһ@v޵GTydBdHp")G]Ao@D$}TLQOO;vg7o<:::(fQ P$zKE'\RLUg2!w"$\ỊYp߽i5mG;qppa(˹cetR!aԄ@Y*EM#ǯDF' !JQS/}8C<"F0*-7^b|JE{(BӋx$RZyD̬9!]K>/g˖-.pܵk׸qF P L&[nYfgy$ׯkԨmٿnڴ)C_Zlٲl[nH$~UL>ILEFFޞVVVz._<)ϟ?ƍ١CecϞ={[_A`hh(>YP\wSCC#GٳgYlYzzzRGG...y&&&ܲe'~#F255nnns~SH6hЀz*LϟkF[~HLL;E''bM/+ 6/gϞ%^~,+ׯ_H֭A]iiiO<)uu\\\j3(9M Q>2)n&Ѱ'aQhS$Ή7X@GEEq֭3f". 4!$}/9eYF$twKLB ;A1ga,j="xUjq %t&a80WSI plܸ]:ˋ;w,1 A߿VVV;r$H_ --FFFի)Ҭn...@OC˗xbȈo.qyd uTNT_N\ΣGJʩ" &%%);׮]}(C(sԨA`DDDڐ'OɓI۶m#eP*d|ߘAL&P&غh9Lw {~HLLd.]xaΟN|,l6ªQ6BdH’:eVfSvINh&* 6 v7D B,ؾ 7y5/4!$dՒ^bJ}?()C"=#$C8xLOq>cbbXbEnܸgϞܹsg$UxTGG+V!CzjP*~k 6P,iӦXǏUL-ʖ-K5557N%7OR,˫P@KKKZXX)}~./_~p=JX~k׮ޞɓ'N8p ---fΚ5+TO֭[0`y?L]k׮% ɓ'OH*j\x1EI'99>ߌ7VLOOg|| Sy7 *DW}BBRTB7$QM"IGSZDPl.SԦrQL>!y(е g_DBm;1!yVQJ"\q4orϟ+ЬYcǎC m%tZYYM6\t)O333JRofӦM{r}}}iiiIB&*JST6 ͛7]#?x5k֤ʳd2^$czz:_.j FTJٳ'[f trr"6lذX{Ri ,f͚cΎk֬@e˖۷o+3BtGŋZ*]Fv ߋSj{a!kdBGP(_ђD85EQNCP?3^8Q3Dv~!^BlC@"6n3>>+WV ۷߿ MW*$ȕ+W2 #!&&zRf$B~*JSNNNaO,_͛7/͛SSSSe߾}:uٿ?T9\x }ʕ&y)Ƃ Ů+W͍գ^dلݻٷo_JRrGNhmmM]]]0@{GQ366OfXXB8x,l=8| *[\lA\&:D$&hL#&7 W09ݗ)tVVo DWQƗhET"N;!Aa@nrKzEZ&:: 6KɠAMddd0##@a- ӓڬR xL`^|Ibܹ3ͩM{{{.X _޼yAĄtttS*Ĕ7=<GK 000jvÇS͍8p#)vq_vώ;i1_~E\,+xÆ H$l~˗/e˸dvڕsyتU+/_͚5+uي \իsĈ !43RL C 'DD#*Ĕ;qԋWAyEm $0V4u‰ OBk нD4ITh(H=E&,;wXV"AYfꬁ*aFh``-͍.\Pf*_w544Xn]߿/^y(J٥KnJZZZˋΝc׮]V|SVQ(d3f pŖ2{l[Xݻ]@ŋ]8l0G2(( C^NPD3͛7yA|@9y$Yvժe2hiig jkkk׮:WǘolӦMf|@"@]܍pT噒|9SSS}uVJ$vڵQ?tww//J^l۶ W YDEEgtt4}||x-:;;m۶ |2gFFˊnXRRV͸299Yx ͚5pBzyyի -mmm?zѣG]veZ)S8b;>ipZ^5;e֩2%$mUg(QSIe||<=JCCC?6رcD%0uSY5zG… 'R"pǎ\z5W\'ገMY~M6U>|8heecz#`gִ <mܹ{):4559zhEr4+d}X 1jN"Ѝ޻rǑ3&g]VLVl߾=,YRo@$$$|J[YS~RX5i҄VvQSQ tsXhggGH&L5jTD^S0/JJHHPIѣG/Ha4;wM/*v>wfffcTT{WSS׮]~VVV2d߾}˗g;G % f޽)٪U+)SIIIyfL@kkknٲ9n۷Wgjj$PxެYO&Mbbb"e2922iiBًi*z}WzѢE^ISç IDATc޽;roьdss|9sb;^nDEEΎ|utth``:=6662e \}LKK)SrMݷ#VISǘ1ժU+fm޼"Gӎ_~"W^U.`5Xxo3)Qb*< KrO_x1?D޺u+?ScD"zlѢ{ͱc[v-?~\bNj \Nooo2FFFʘ/^Zj,W\qǍgϔ=L6L2e&M|m'~~~ttt7o8%+F%kԮ]"mԔ >eiqܽ{7}||1cư^zʀGϞ=ٻwoFFFرc @//B=}4| gN>X$+ÇYbE{777=HETTA(fʼn@ȋ ܕ0!  ƢE(kժ(y ,ɓ'IA 6d:ugϞ^ȏX'LCpp?۶m#[]vlH$bjղ:Tʚ5krtwwɓ'ƙ3gdnܸvvvܸq#o߾9lb1>9nŊ$^ 6mP,sʔ)yjՒI&۷*"Yj=Rӓn]ҹz*'LP$ ܓ䫘0E-RK|g8k,ԕNJ}}}맼jhhijjݺu#|X ^"ݻ}9rÇgfxq޿?Lu* Eܹs)>qqq9r$oΣGf;oק|dddpҥTWWgjro+ӧOÃ΢Eؿ9$''رcዺ6=z/ޠ%ALy|2V'?$''sΝUBB9o޼lb`[nO:UToT>>HOO/c{CPZ+ WVZPT>^¨/v2j(=nyt˚ɀtʲst .q9uqqAHHUS(hhhի Q)| UXBPs TaBs,\7nT)EI믰Epp0 &PhkkCCC+Vaw!`s@[HtNh,ʼEe( |Fu<~\x\ fQ< ) 8rq_󰶶ݻw1k,t͛7ѣGUmZ gggL:Uզ ".]B^RjRUXBPWSS#,,,TqBÇh۶-:.]ڜ"'((SLvٳg$L###̚5K&xpٳj*}Ν{m.Q? Z\73w.x+H[@#@VE FO߉wDwCT Tyyb` w G5/^B,/_#ѢE YĈblݺ Ei055U.D044sa, "##b lݺQQQhٲ%/^Y$:p>Yv y` an?jؤ2& kNO.Yq}au ~;3ܖÅ3hԨ prr?͚5SޤIpvvTej7ԩSXx1Ν;uuuU,]+VTFg*?)uVl޼(K,Kp/^@`ј3gƏ,СCakkC ƍ1tP9UV/@^E)h֬w˾yx{{C&7n\D" ???5 Vʷ"z !!!>|8?~YsrK$ 0,[w"acD{K{HnCddQЮYL kOǩ1jX,[vL#E9@lnUx ~Q_b1Ny$EP}bb:NAp!?[RR1cF7ivBF2S%888ٳgKUS(X_aFСCKlr/qgnƆcǎ6rݻw"8*/_$8p u޾}˫W$͛3fPÃ].=>tՒtME;zfh9hX!4^4<ͲNS wD $DZj_ ~D~X__E~u&,(KCI˿~9x"ѣq|m3gP&ӧEljei'$F8 E>F4hE"Q#뚗`^hmmM---Z[[sERs(V1YlY$$$|a X~=`oojsPb\t eʔvbG͚5! [pU@ƍA@dd$0qD}d$@=(ʍ[B,cС\/sssTP/^bSDTTTqHС6o )pwwڵk+W5uToEϞ= H+K.ď?ݻC$aذa݇ _Ie1 ]8ց~ܩoymd8@v ad0-s,s:K|):~“Ieѫ+ \n^jz0n~GnGCvf#$$ʕ+q]ddd|'{СPWW\.DeN5i/^O?K쾀[C$dI@*u+x-8-[~}ӧ E mQQ,bjڴipE'M|i`ȑ^z.hhhgϞpvvFrr2ixx8;Çc011.]ӧ7|}݇OzM#*QH-i{c`,]"m/KWSx 6oM# B(źA1%m:2$X` xaVi¡~!k\D4\s/?C A@@0a6ll׮yU]y/r{oQ'nT+wJ-kfeVVfj+GʅDQS{{~(r>?p>eeу3f0u3QPP6mnnn msˠAtTjV9P})Nq߾}TTT㨩aڴi0>EŔJKK_P/Drssa޽{ߟǏ3lذzwߥ;2}tyzP*o899ʂ eƌlذ{d^{'J˜V[07xsKbBAYTA J kKq* 4Ipk;] s  TA1:Zes=@6 XWbƎZkE!qĴrIb9ҐV]DR |Ҥ9d&pL}dÑH$888{a֯_\)ť-n\@aaawFWQQҥK;HڤFU&? vO֭[166fOeRd\vÇceeT_p TSOL6\dYGY IDAT-]@ .4Q@Q,TVA"2>@MUy;N1s(/{xPb鞉DLR-%\ь暔c<ۅ$J|pLuDZcuMcǎ1zh߿ϸq* sΧE"矓رcٴiSul,(Jڴi̙3?/6-ڶm˜9s熔'iݻ۷ywj[̙3ٻw/v}Ȳe۷oZhW\o߾>|f͚G=uŔz\ۍYx1K,ihsR5jVzc͟?"<<s}7EEEd2֮]ի֭[#Hn#FO?ݝ۷Kj೟!0#n#Bð$+T%5<0(P,,(Iѥ$"U{ TAJ.T쁾!B)==7FshPUF{I,4 u$k0-D+0E+e^䁝5B"Ak-;R5)dX#URP|o̭VX`׏k2m4%:̡CIRoP(!==?)d2[lǐ1 ._~aĉMoIs#<ںu+3fxb̘1;vm6Əh/^ >=zUV1g֮]˶mؾ}{)>mmm.\]CBB]]]2||}}}V Iqq1͚5?d֬Y1MMG|زe | jjj[_leU|LiDCgҌp2,)P֨!$lIdqǨ+10ElR',HU[(T lj jkIJ03Z ݳ-fwPx}A%KvZ/+ nݺEJJ )))ǓCJJ vvv[CCúܾ}8vɔ)S^9lo>AAAL:OOOZj<_\ٳ;>q~+R;v`5׋000۔0tP:te˞*[ݟᶱɓٸqc'nܸADD;w|\s%77777-[ٳ_O˱cشi'Od͚5cc:(444c5CR]ԩSiٲ%]3dȐ}nnܸA9yc3g)--}D| !0a˱{ɓpСGVj$ {e;}=3 ^z>>'{]cǎRӧOg׮]ccc3ݶm[]@7d2<<jZzVB[5=d*^2/ME51fP"{gt)\Y~ _oR:#+׍'bSt}\=8JML<Μ׳bi=|\]]qrrڵkۨVݻ7ׯ_W^vo˖-#''iӦo߾غu+ӓ`lmm?~<7n͛;7nЭ[7kx㍺c?.\HRRfff齔~Y|DDDвeّJdff2j(N:U:$J۶mC[[Ο(JJ#я'N@"m6mH{{{{Z %Kg포rEEEaoo}7ROu\c#77?]BT#==][6U,\P|bڴiG 4H$%%#G {^۷oăoR)rrJ!ݣ qdq;MR,j&W~}_I_tYa~%ETfDL( [W99uC;*D1A bW̫ԅ"'H_=oⒺUX'^EB+^VbY0)N!N5)oۆb!3/rmad.ƌ_.{%~2qZG3ͷ})xgN:+V=<>dzb IJJٙQFW_addիׯӵk׿#Ir_9i|섍F div.1AbᜌS*z_NhB[eJBa vC)`z:5DC 6$6jRyK~J%>Y1tf4$(1*eDhCY[MHDŽ5PP2zCӺBTt |<BRW'͆㾡Aܖ,I:\ 2"-4;j)I$psscƍtڕ/mҿ^O\~A?vAjjj]1OOO.]ٽ{7 ,`Ŝ;wHؽ{7'NsΜ;wɓ'sƍT֌7͛77t*Ûζe=n54ӦMcҥc-((`J|R^t xF_Mnnnݾ!F֖͛779`ccæM>|88;;1sssϏK.qF޽9rmڴkkkkKQQ#ξFFFt ={>v+WUAkf䀗F y^qfcNvnGB k41 uc *&sW eJ@7#J(OJ$0e)UC^1 X:G)f';d@ ,$})FTHr &%Q/oToZB5*^i퇉JI̎BiW }Q"l)P0&P[ѝi}E!r {ecۖrE-u-TSSc( .^D"G? ɓ'Gl޼Aսu'JLٳg9ws%::I&eΜ9C1cF}r9$&&Һu6ӧgϞmZIWUy2rm;v0{NJ 9sƍ_D/j'LфH$̙3\Ц< &KVػw/Fzacΰa !00]r:g6j*00!{bmҒK5=п_ ݂^ҍbkr_EB@ c *}hl:bC& [mHB>ʐUi|Xߦ2SƞP Jhˋ$ 5Y5ykEs:srg5ҋM1ZLku˰Nd8ލYO5rmR*6T(rQ!$G:4A*!WQ%]jDa!NÙz7a+GUTT8}4JKrA^hϣGKppc2b9GDD?&M\NDD+V`3iҤgaeeEHHM`L&ʊ{k6DטyBT```/żyxVYh| m̞={2daaaM6ѽ{wLLLX~=mڴĉ 8^"ƄEӻy*dDY0GST[eOeӺ(VoGgkPjN^4FHxtސOTfF5Nõ9O5u|T@jzTJԱrO%1ˊ4- 'Nݖ(M$H4U?$< gQQ W?9:&h7I X%gr'9e}oqDZ4,2M;nOӨV ET)2`tQ WWu#_1)^|MڵkUV;{HF?\/e֭[W'hT*eĉ53ggZl;w4"33ggg6nؤrqϟ_ߨi|P#r;ĹG>SSS~!`̘1wކ6^IJJ"66ITc=z4mۖcǎ=S!,XB#{eܸq( !͔ϊ)4|T+4/ë2~_NnͿ#3*ȫr \t!,䠩 `.]uƃ&K$7UES8I;)pR9g0zY%cU3cOAt nqŐ_ *jhнz[(˫nBuwz MA-A=nIAjq{3uHUBJ V$h`!_%i1}i2R 9I,O`+^XKk Q `B]ZPTǝO2NHb6v;IWXޕ^ר`Q*k$*r/v, ܥ>ѣҥK9=!!nr<+%%yĞeeQW :Q>k׮MVTI$ǂ HHHhVŋJr<==i#ɞv~nn.+W|,L!s̡u޽y*|}}}6۷ٳ !HHHߟIHHj#,,,Xd cƌ9BnIa—{Ku-)Q+ U@ a=IWbt0'c8)6fz9krTPSڢjUU9֩\2gۡHc)h,5SqRjji'\CХAr1<~%]Uu8O6~KOn--&s+A:NP+/tF21>>r%9X$Qnftov]B S?&I~ t]$PGqq1ؐ3%ݹs'#G$<*+kwz a׮]( ڴiC=ذaS/SSS7o {W^^ѾYbN"33WWWzꅋK}.^BɦIh֬&Lƍ_6m?"3 Իή._:>}ͨWBBBܹsm۶yfǕ+WԩS@@@ɸq޽;ݺu#??DBqq1*ibR3fY<000cPF*J=0͇.7T`LZ'x]R- 3oڧAG ={RpݸLމ&%$XtTŰ7sl>!~kk&]"T&ܡBr߭9^zK ϝI T k֊ ׼qͯ'E]k;<s 'ǐ>>h/_N=j 7ڪ3q,6TqT1I*: ҷ%P@SL5J TlđmI6BS6wy@퇛u1nHJˠe8ID咢6zghIuy9ӛkk%pʪ6bLJ ixT74$hbf5xdWʥ$+mѐ5z]D]^Uj@$FR*t,t~?(23LՆX$OgxQ#0O# #nؐnvڹ$T6REF \`dEz ur8'b8?:#r&@]'p[,#&&?r?x)YYYu߯[~AqԩgE[[xqrr 11_#~+-U)$'Ȥnqݸ#=T^Q9ۦh!8^6S|ed֦ ʥ]yqX%ΎPPPWUPg}\^ٳo4hG__^G҇>6l؀==+3f OFWWիW?Wc`޽hhhT*F&ǰdJ%%%%gۛ^Ĕ/F"044M3駟[o59_|E9`۶mۗO>/(J eWMd݊BN d1Yj.".@'7kzL_R%Z?ܔDl>8>|\zFPGF&cQUe\!r 66£8KhF(&R#U\R -B4ڐYid~0ZQ%'FHhv65iygyU=VcT -X֋xEcQ;_r.-#oGXX[^OWk͆yIݟtANY:i~&XdaXA L]qw6#:BY54>B+e)AZ 9^h8ӧC"GfNKa^sj4#w櫮VPTƽx&{ZmYێxp[됕VsǏK2?i'#((C=Rɸq8x /f(&-444xאO٘ҥ ^^^| mG1uV\ɍ7ښɓ'?6~ʕ+iժ;|}}׷^S$<B`ffΝ;Þgggnڤ>˫My!|tؑ={|rضmwͭB!P"@ 7|]oL+hAQB)-Гf[|LU?NQd\ ]*mQyd.7ڵ)>M ,͐ : 瀩yC0T~|~}yLC4c@XHұ/Oan&8!an&iX;U^\REp#nw)MS1ɴ j8S;lW8%)+i1* gnZc]oW\FU]"r֒Tx2\aA 'qӸ)!!J/j֪QXEBO.qFO^E|{F FT1<;g2axm89pF6ip0n7=˓}s 2=F5f׊>5kְ}vfΜ8)ggGV$~W|}}ԩSN"pt;S/}6wK~-^KKˆ6'1O?1ydƎݻ&66'6%$$/33gzpwwѣG#HBD"ZTTB=H\]]9w\ϗ7( ͛פx}[ڜYlܹW^yٳgו0a_|Wn%C o'\셐Hܙ4 3$ x}i5^uῑxÆX@J5)| #A o)ǬtLb4,jPER03PDA מK<TP"JHaG"ēWaĭݐ 0JS)-F~.#jG`VќŪ`BЏxnŪ2L3>]J1c9TtiR &oǩ6^;eDޤoEVV@`Smglx;9љ?W;B}5$ ?suT(! t؄Q 0Œ!b_-_ PU­k._'2llWnQb,%x $< pEE##@Pxb8yyyCAA:s%,,Ç~n_}4mL ob\N• 9{4+mO\yj8Gܧ5ѸPc<#N~ZA$*Q~{W$|F"Ka6{@)^8ƭPT`BI!1Tȸ]^eC4 KY*Ǟ+&rU9|`胓Ắ+A"M]bwՇ9F޺;D#!֙ob6"OlF}inwN'bq7@UYr%P&q!7ՄP֫,%m4VM.өT#R;zd{8;GZm@GE:Λ).VJj R(KBLaɝ;㊥K6",nݦkj(qfĈSA6ė鳴kk믿ЩS'6g`` S ={r]K-HKKҒ>$~Ƕ}֮] ʕ+y7x>m۶annf<35ޭzS/aaa2b0 >ѣ6Tee%_|MvȈLŋ~ę^A=z43gάh׮ZZZ|g|Bxx8*** :Ç*Yllzǂ)8PAba-":G=ZN܇Udոxʸ{]B\l ӊlfہ<܋ʪq<̚5ݻw7@z+--e̘1,YΝ;sM-[Fhh(/_c ӦMcȑ 0}ݟz xN1%HLLlc2uT k֬!**/Q;w&00zS.\ ##ۇK.ȑ#8;;s} [nQ^!ro;~fH(uKS'޽Kn(OcP@*UG) vU)#QaW=( (.Ъ;l iM0jB|j FT1:-bbrT q8}H2஖e ڐiݹ\݋->XC6% tbu9]ּ-1IxQ #hVi^&78!/@ds?7ѱ.f #n ՝ȑnCfU쉚*3/(;iaJ5jjakQos:s8jxqRM( !9GhdyGUm}LʤOzBz  B ]z ^D `^"ҤI+%C I {h+^\><rY{~K䖩 .ҫWͺsy $cA"`@gw -]騸N T+,HJG4l̪괨b$j%ٴ+c./dg(wD:\(Bg#u%_an-!|`5:vd-`p|5֘Pjjj37n?#yyyYT.*>u߷Mߟ7}=l:}VORTRQQh:S)Jk{+܆^GR|v>} J?>׮^{ƍtޝxC+'h" ~4hjj`0 H) ?7|]v=,YҮsMHHHoЖܿN83zʺr~3pذPD}%5W04H(L(-!AQᎦtqFLiIQ?; &kƬmX4Ls^j J I5EPdpĩJ[kjl. Ft#\|p/+"};*t^'Kj*p DĦF5M7x1=}B$ET1vN?jsE6Z0iiFڠcy|D9 4`Fv2^8W`TFQUU0NsAD;J-1QHBN0aWD<\xK4bеe0h03U!sKyoA `Bq82ޕ m79'R9\V!>]6*klQI1{)hڵk6m}Qt:LHKKk@HRt:"ξ/011yThmm}lqi)ԔoI* wnƆ,o;JSrr.]ʇ~X,mYբ騯c?hcǎoq_Δ Ý?455gϞ@ss3j_}U{kqqђ7ysDD}7NV4Tim69ό I[S p Ck\x5Cqю7pr?DGP`Q5S{j%VPV) J ̜G`WUM–` zkS;`,os ҰmĄ"s[{}Kq iE7i6WFBAYͨ"<,;1vISp6cOL[5ޜ5-f]+1 sz)…l9hZ9PHGyvZ(+vDzEK%^Va0.VM;$!hp]Í@r2$j Xj6FmŖ*ʎ 1f=s,nPUF nu={mJB/w@ET-JDT^O|cHERQQe˰Ncƌp-P` $$.]z>Lzz:eeeu|3c y睇m={_M3> AR1o޼;ʗXYY1|VZmv5V{vJ%ӧOl3 =>asߤ駟V4sϞ=[z&Mz1VVVKӿ8S666 *X?dmpNbNڡ& eٮ4+PD9T HWA@[wr^r IDAT1$C2.@M;ax@be~h,%٠d̥U΀ބB+U~6,8F &>e )>IpQ U&tUe˷8i"V`٭2;By6 'H fT~Qq6&Fsyb&L`>}9i҇f ^,F@L<=a#v>5w`PbHG,7s2w %WOsvd4cT(g?g ((EiBu=JrRyѕBGU:"y:co!MQ#A/c7"׉d7aڊdJpBsTইqúR56$w c~aK{_^nNZN]6@keHznOFF֜dJ#Gի]$%%SLa1^z1wP'|Xs:t(7n_|G-ȑ#`N>}1ihh`\֭[TWWckk=[ٙڵk/555lta 6ijjw޼l'OdҤIL>0ϟ+Vx }Z[[IϞ=ou? W_ww]]7[ JF,Go&7şձ5ْ :4 usa T?lB:f |&هՑJ,L`Z(Tηca7*݁5ɩDnK@wMD` ሿE\.Cr ]=Dَ$B÷L6 >~QGxub?ٓsFJ99rs)[07rYۓHL QbFk Ls1ɳԯA-CA NJF`^»_G(ѳT1E(#AÙB JWip^[ˁqoHt!; gIOi`&m0#^hţ86HIIa ۶WZ:~Gd^4 >ݻI&q + RRR;vl öm_3p@v_UG w4B}1},zKHIIiW$x+SdĈ;zùr #GlVzgضm999baaqǀp Z=ٳ^{c|L0{vFcH:t\~_K &gٴiS.Ӓ%K7nݧׯ_˫tKtt4999xbsW1 Lsx'T#JPq +-W څOtD!-,?7 ,fg"lbS#".b_^I\9\oST 9 " f;qǃB+,C`00 ;U;C$LChRdV>F|l&f;#"%GOG&ofa?7N|ΥΖ=8Ov;]YײS5J}  X4֛l_6_@67W,aVZDx-rf g¹S>{{`X*`ޥHS|1MH0g;Ђh>߄rN(+ecA0' wnNBzW. m5xQ@ N]ȴ; PT;V: 0w;`es+dx hM'$$MEEN︺v3eƌ|7ɿm۶mʯ< ={b 6nȊ+pvvW^aٲezz |=z)SK/#%%%l߾)S`jjz{rz=111&(˪s@0c xX>8޽{INN&));];oz+HL$xwMqhͽi0#(giE"jowhMc~ve_h_1Ky\6%*>d2".`P1K̇+i5C'!kQQ_mB e`[؍AHҔf+4HH/|Kr%LeNL˛ĥ "ϻ!P(Z,15tMuBoCOoZ*_o3pƪˋxI`wAxv/g!WIf^6_208ObQJ`W"X-NhH ixH3}O!q%^TOA'9x)& q{L/I=Wy7,<٪ce_ ǁX`ںN: /sn5N/9e:,K+̿z&ѡsq3knZbgNƟs%;xqܕ iqCEgV?LMe=tb{„?\t;( }&LXӧ=yժUZ[fĉtR齒KWrl"o-m0s@e@q"hY]aQ4FFF̙3W^y}y6W^e׮]I ̙3)SsLy{{S__ױ0 k֬!>>۷?lSD, Fp8ydr9eeelذTڞ}/˥gbmLq&h*!g28}Mbz{urMÞ603SЅJ͑D )Os)&-eˏT<9S3(\+)Σ5\:ل.qBg¼Yjp8eQd.'+'a8˙P=A.ǫ Q^OqfSm~ ԕ k0.ɨ2bҸی&]d)d`Ҁ[Q1..؝$t[EpDq۶ebU졥+f!d_sK$ohqsc#it7Eny:f\CLF]*ʿ c#\[^ʕR(p#soʏQ ]~Zm%dzʥ\AkAbGjҊǔ =6SUVS9XDQ|eFu% XTs8 :7dZS}C8u8*VrBVPGA%[_Mɉ@؝k УǯJo2w K@@ll,̝;[ 'OM C Dϫ_@Z^j;V~Gqwk &qpp@G0fff$&&RVV8SB"w¢h+z kkk^}{abccsZ/FW_}EQQ'N͛7ܹ3Ǐg?*+\0`SN}ئ)[neΜ9>} .:y;8Rx8>>777"##)--e 6ȁ8wr7g剠йS)ɱ}1}"zs: G(+hNUX+G VQYk>‹EќC:  3v6-%7)Joͮt!͓g?H`O#}PIu SuCGnޜޛf?L-gy#Zi12&ݛxL uBCe':\kJ 8Ǎ4&#uPj!iRh(FZ)hu\UkL]5eU蛌SSs=-tB :-1vɏ}{ӽ<94"kj_=8֋Qh[ܥZjt*j)%9$KC5Ř(2*|Hku>K&1RԅQ#E.c_#fO]rJ%zӾZwyvjNj0auYΔ3{h4MdXe?e]8ܟc2)XX(XXd2 'Oʊ"""~PO>yl'Dpp0111=zs>v̡C'YS1-IsL[Pi?mƃ 8L^a yG@ًKuj17u>w̙3)//uֱf)mmXOuu}z޵3VYbbcށC1eJKK@#44ӧ}v?ɼyX,uСxzzf.\Hvv6111?fcc1~v.Y̟ b|NNg #S' -UȬ nd耒$SHl=% @Wf_f@&0H|@PX%3JD*\22Ƿva[\mI1ލf/t\L`ur&!h@ƙaGu,ɔSc.C4=*~#J^Yنt#8$ Zczo-Zpm*PB:v0%*5Z+؏2فNӿLBO^RJhj4熶.h6Ap@q6Yȵ`\MrD&Fkb()p%vpƾQ!e4)s_Bn@g:@k| f#6FygoI*|9F[ѻ<%+cDd<ۛ1t*r! 1hx#5iOBf,Lֶ"?ٳ_g} w?j$&&RPP@)@ѣ'W_ӒgiΠA^VqSiiZZ/0ci% ߽lˆ˄s賁`hVatt4~,x﹬șĉ,^c0 {v{7ۇ df X56u>sxH$_dϞ=aeeEZZϽW\|RquOSyoV.4ˎNG zK|8pзܭWiPmm[nDDWDcht}+ {5e)|8 Qҳu,Uٿ"Hʧ]%i89M^rG|24񿕃Enuܤ#T!v3ƲA`JnB4Ip+3W~ t@ojGb|Y1+7_ㅨ gH:ovxszJ°הf&qk)iA8g5i[X? H;)ɄH!gv  \uSw݆S<[r˭% VDk ӍԶZC)#5rR-)UA(;t8)ڣ ?m :[҈Mb 1὎6kj |,? JD'räݝ"V#u`MA0x E*=Ө f2pz[>̧Cb5kTUU=cs?S[[{o@#0~|]NQAc;Ac+1 h❃Px߭baa};g>lS1o߾\t … \?ٜMJJ"44HΞ=Kff&N^z?ɓ'ߵW^aL<[RTTL&Cףcumm-...,Zdjkk&0 ltgCN \؎F1|p^+r)<#BԂ~4+d$uz-t=}LeMDb?1秠dmw>8ud&^)fʡ^z|B3#mF^ב4t;5ߎqA"L[Xw}>1EL1qRiOw wӊB @h`_D3qC D%2M 5XsAwmdljEBHϊY4n%xk89[|1C|&e 0?PU8nʂl$1Xs+3QƱwM`GLn}YtZ&4¼Nb IDAT Dt#[R-bV8 cT3K5R) O/vXMF"$,ޝEi{?aeS8H(/ѠCW9A7K/q=` zk4ڍ[hv+)T<W{nii͍9s<0GٳgÉ'ZIL܋V"0(;z7׶,_ׅ GBBoLJCSOJbbb/φ<[@cc#fff$l겳=z}w0aʕqƌի f0`c겕ӧOgÆ ٓϣRcQȿU.1q`Mh¢!+ $F\wQwhsm"F4QsLu\\ޝ}xbQf5H@HϏA(`m !F-L7aRx_=M\7i6^Od_^#.b@7ͥ ԩ-|m@"G7zģySSs%VՈZŸhKob?v| Hg˻>.D } ML9>m$'0m Ԗr|WF@t";~gc8j<s`MQgyZUA'g:\~/.Sy#h!5WB^4#WG!xh\ƀ5ٟ QQ B#?o/zF=\nW'!-^XK-(ue͚'+Ɉ!,, Əމ'>,E,s*O;w-J  .0^M2زу(y;?<.ݻWWG#h,]gϢV122"22+Vгg{n)Jň#Xvc2Mmmc5 cccJJJ`ǎ 4iӦٹsqF@t(\_`00{!jU}8}\H U8\SZ PMנ t0 sxi ė˺IX}X B߹ɕ, P>Aa+ ^?N7:׸dmJ70McJN.3?^ZL̮}ӠNB(U47:022b̙ӧ>ㄅ~)۔)iX9'O2:DTTGZp/_r7fϞMNx)BT*$%%1o<Xr%2ٟtk' }[kxv`>1﫥'-<8 a_JϮwXc;Z}FZ!t3{C͕Ы+t돑vEll[RW%^G*"un->q>zF+'?͘d٧)Sκ:rU:Bklİt\ ,׾ML2=uk ԪPJ12oĘW 1ΜLh8u *kL.GRXƙNhj2TC(>]o0}hpY}ٕHԷi#6cGaޙ 8dH5l5VbHWb3<ԓt+!Yͱ5ov)Y6 Xw'K :S&E)\BjTOew;OQPH=0zu @`.Fk,N-s-c !zTЩG Vx')awe|I!q{Zɂ nBQgnvv+?:j= ...h4vL~!uuuݙX9;a ̛7bat6dTw@c[ 6N?$h"8umJJxb\rOm?z(ɼ[8wgΜA"0f9rȟޫvo@+h?֠o x4Yr ήm0jZs0 .0vƦi31`4T@y"=5#؎k_~bޘ;'9x /8$c,tG-p*A§¼[lɱ耫/sH=E[,^GQ+%-Nt(BnTͲغhWHԄfTYز3I{kF:,bD`mUDFP Y,IvT\əফ rr8:T@҉p 3=9oL}-\-@;K0l/9yFlTʤ>Qt0>E屷QjQގ[xWq/5sKQ"QڟJzУ<[#iƥGrj8WC| .bO9V$9sHQ,tlbC/] Ŝ2lHWryO<^Otk5FdHn?IO =:E@! foOA"iN\~wBÆ cڵI&8T9ی! 2$dΥ[]7aF<ۮъ VFHORVV^?͗WrܜE1mڴ{n Ξ=X:S ,[쑈Ο?9111,[ݻu[Q?_ CF~vGAVQ sf0cJ(me'jx'Օ~ ąٽ(sQcj L\iˆ%`(,$ˍKrBw ci­TW2q iT7"Vk(ux?h|V_`b-Ү ~^фrԗLPv7g2s$Q#"2bج QuZ*(F%gr GG?l".REG8ks$h'$Bq2<̕`#V"*knft&I桜7ͦj$4vѯQ ӸNըD8hb](j@T%@Ž\9`h䃕z^x 222x駱gwu ,ё >ls~. l)x÷ -;Srz;-a?ggg[D"3+ܕ3`,Xpϝ=L֭[ի)++/sΡT*Q(̛7g}S+ :dvnp6h f:Iw5>[φ3Hj4 &}h WC{\pi`pZ/0z Dƪ8ٰ}&ƥ]8߀]"8kD?il jBa]e5y$C!"-zvgO,͕m^hnjKWD9RCq7(\/L "+Ixpji𰠪ΆSH[l [ed;8?ނ _U5r7|}E'iu rԶ Df&)WЃc\l({ZoxyVfIqB{PȍԜT@D'fPP v'3P_@h|*$$ \]]jMVXXXL<7l"kWzQC-k^XKj;Wz:IFIN+Y:i]k4d޶JNua xN5l=CQM]B`[W: ]tj0' L%D`:;Kڏ$hB芍$*)NR2V%gacmLGk\TYs*5Ux)lV7w'{BD)]}$C‘NEggJH4"M ?dcދ|+} Qt'<[|)_[IZ$VXagLVS)wEؓL|s!4 1W@u\DgScyY-tTjyM93 XٰZ&ϧ.Kà- *)ahdoϹD]Yo!7>-LΝ۷/fzeTVVR^^w#زs^&9)nJ,d38w˖-{JdffÐ!Cptt$??]v!011a1cF~$gjMFRz.]D>})|ɓ'hILOVXz{H3`eN-a0 齀@eIg'p-O 7 BU PI0ĶsO.Bm: ?.]ʉ3b.%p-&3/MOo=?b֙A+g`aOcUYTѸi,/N{kѥ͓P7 ö3+f\ׁ~h%hڐ Z`C$lLKyaV<{ /aeLXF.فw'Ҿo" ߡモV^`<2 &~G8=3tm&Qh$x5da!C_^LEpR2u577c[?Bn3N g HiP)u W.`⋚nT! \)5 Iqܕ58ԗj rjp'؟r03-p(g4 KMK ա ̮gQ;g6;CDx/歋_AyG?9PVmLS8*p3ǃla>?QWÒō'dTG`٫7ΙYnV4$NN-;eE9L%j ) n0ɰ=1W)Z[pxè5WM0co?oat;~ L/MU {!;믿N\\|hcHS@,?̙3973gNsy0?:}4]vbbbhݺC߳g˗/'..N'#hg*;;ȧg#Gyyy&Ν;\nW_ixY5sڵ+Z߻}+س*x[ ׀'C7t/e( 1<k5[\gؘ&m9"F<*E3 hE_Ki{;%M \cxY@U?KEw&2X\H"l;VO~ޛoIJ1OK}k* )~I$WlzӶi4R)Wu$fJ}ylSJ9:{ kbLnFW"d%-O.d,O$:sH$v7դL=صABОw:#IAf6"v$zu5r4z  R9  fT(ku;[~!#ZmƊӧhvX uxJ;OLZ碋~G4rkU6RcgFue$~ 85#W1A*%őmj-ܿ`usjZr[N$Za޷U!f '܏ֱ8<3rjA\r©-oމP]t2 X%uAK SM6`\A3nF|ʊ׳f_ޤ] ʚٺu+zIX̙3SN=Y#CF)WF.?F_O,] >iS+vsBbÁ (hᄧ}G b۷oO^P ޓX1xzZaf&E,ń)sRij/ZH@aWfDđWqф<6Pډ Uz0jr:EΘiJ$ީHj ;R_ P &uϽ+n;{۞#.|݁©b0 XkIf;U1wwz@ nH r8vcA?"'R3bv8_4j J`73F5=\FC U zd?EQ!nԴ(2S]aNr(qQT)*,%_RHĔXᗚI#[t3X 2e.ϱn0ncn_Gvl 1"ZIΊ{"N<ѝ);# Cq= :c'/l=^TJ`01#v{{/4th>/bǾ6l#VΜ9Cǎd޽X[[SWWMyd۹"~0m4$ J޽{s…sYرcbܘ3gSu5:2վ}{opYFիW%t4r5֬Y@擦BEVVd*Ah\h͠6 龗/_[|駠̂ pR8cʔ)^LiK?t9gpKQ^^6޷BZޟNِFMX@bVoS#5&*J \nϡuӃ€^%D/qW]!5xIfx\ٚ.W@KKbnsu+#J7!/}Fg'۾gސkv6EIT[qNCٛw*QWL܂38އnuI&/y D2)ϰc@ψnhrNSiИ0.ֽDvV"l[ v1Z\p/C܀4HA q'nć}{eSPc Dc '[.qX_p%dT{p7!ԧӡZ HZA\.H[y _h$U pBcP{ 49ܤHkݺ5=z<:O 666Q]]T7͛V}OjId]+z KKK^u:w ))),]<[ˣ^{>`?ŋa͏4ڙh^&Ods`ԛJKK{F;QĈQ@`;;>78$C:thNX؃ݓ%%%Ջ_:;*wckۑ飦~h TA>KC{*m + }Y-~t?\M:-%jQ⳽빶EĮZjDm !/t.b'栠je.X:W"SvZqg=P^wf}ALE t-Ů{3Vw ι@ڒ@#Ъ,D/q]OK*sE{#3?%#uru9=eG0v:T_CG3zDڱnG-j ](/ʩATpoSP=;'Z&t.+mR.4vƸsR~cRn^(eAVD`Xď;l=WqS/tu7x:u%W05 RÜ4cI0.h\z&R`l4cy'(FG@g|!lpr4d}j WdIǾ6~f̘{JG!""uQTTd)NQQSum g1狑Í_M=7oN5oߞʬY֙TWWm6F@tt4\ <F;SOhZOޤwN޽ 6m={Щ|zB4hHaǰ |>fX֖x&N4Flư/}'/n¹ڔ*/_#z]KߦE4!@U}9z2/:IΡЋJ+4%R~ `zL4o=!m\ᠦ!a7ϏR-2)nu^ Fmk)N|8!!!|Oڔ&NF\ G *JW_}Z˺f{fʕ5-g*88ߴ_矧y|7OڔǢGGG>jb09r$?o< Ѐ%C[pcNk`Jc`0xt >z ___:2nd:vm8(ϐ"ӄJ: \@(yn3?:|كI7uh4JOj[JXJY :)]+OH7v\DG rޯ-'|&m5#Y4CN8ԙT/_XL9'`ڷ]aCEޛcT`Һnէ~=.JPh"Dmt;0=7 wδ*b/_PM0hpB?SxLLLꫯ={6I~ h!w땗o>Zh?2l0=5j8H$"2 #eQ[[z,--Q*^4ڙ277FO߿ &z*ںSɴ(lzaɌB:5rv<7K t<]q0r3@b7ш$ ؼVlΚȨv߱0k'~m ءU4uM@K=3#ȕ,Dt*ǫU2n@;A H%L*{R&PZN $ds,'e{rq!x{&0f!6h :"tlЛz 4!ifnRD o@Y I=aaq& ܁[A`1ˌ݊(>^ ^ m B8Voj Ȧ|aFiπ;A|QC*&8cVIIq_1?z;wTTm۶%33;SB'bŊ&Lj*Ǝ_G?N$B'~xtU'^?zhhٲ%֤l2ٴi&MĦMHOO06~xKNJII AAA?~/)Sq 4lY/`gZD%QeְqsX/BѪ,GwSb©]u!e[ꄙE>yG@װem5ty#6svWhYzUu5 ^ »eN~ )(O^.H8A/ %#;r^$yz:cn/cO%qG#Nft ;ZHU9iPfk_3Vh a)XYdO 2` k̨JJ .ե6\y lkI 6 N c3hN}Y=B&j9vX6@o@w`xi 6TTu{ڂ'ypDH!c+^~P8=tR-ZDAAAlDB^^^ htIЉLEʙ cYر#[lUVףZb;ܹsYheeex{{dɒGp%>d2MFAAoc;Tv G_~4隅'm}IHN: 5.q؛{'w  ٰa_jh0pfM}Aϖ<ͥ1qPvępZNV741flGyHbD7{_Q>&q|TyտFp݃(éqTG1pc2!"& 7Jr]s/:LIV'z^A{;,*絗3v9M+E*-Pȡ p*32,K>jImID=[SȠRʼʋ8TH-DĢPne9TFfۅ7UG.Tr0d1ӀoQA7^T'AFكZ-i֭˦PyJBaǛO|߯9ȿMa4Xz5;vh@ _UVs=BtPYf=0dظq#7n׭Xv-k׮}Gaa!NNNBD"UU5DGGg=ڍ2{HCt:=gfs悞39\+; dɒZ]$_g?n*fmdeUk.5(%nrPoB& N#Yϑ^ݨ7C)@Ǟq˨MͶػZՃ{+Q߹^XiͱlViv*u0lj*,-euh+'K T\POeTX@7pb#uOJeʰךfn2n:F`kQܬjK]MЁ 1QIr*%ʃ,'ʕJN&dH^xGn^OahJ :)@n;&&܏`;XS4 *rq&\ѹ(mk7وu\@ ʬ5 JѠpR* 囖ٕlIA VB3n8Pcܦ/_@9p0G6tNX@iB[bVCU%U,ѧ Q·z* h; RT"̆sQ]H@PT4\QeݡE- ='w 22%EdHU !`]XHRjA+6Y%X-&+3ǃGɘaQ֖м~ L2:?6az\ Q3&Lj5RKҵ_e5+ ߦjkP#D(p-WK%wh@z2kqg(I!05߄۶m]jxaQ }|!5O^K $:ۋbo0zѫsDE{2U>x뒨w=LZsպ{.T^UĕJʨW#iv?Hi37y0Z:cP"=ʘʄWTG;u`YAgxjI:X-Yyq111mYzbCuxz(rH/Φ:&`a b Fm d{;䣒"R''ǃzT_B0tWÛT҉B1(0ʞ H Sģqf>l+2reGSabc)$(R9appδ͏(JyHnF4cp^ AuAF)pΌ: As9w8i1ҁV:}kdКTPu0f&l@dee665ؓOI=7>y|=«:e[WA@U%Yr M\ wS{RO͠!cBBh<6@cסtS}w?~<;̙,;IJơ_NNzfPC`g81͛;xb*`ʕ M$,/iH@ ies)UDTr5}I{+/r6؛WiAw)(m#LHRtCu9J:nZB  y4ڸ\ڡuEъDhсj1՘ᏋK:^Y\JꄕP_Iݝ$Fᛟe[4pGO!;Qȗq,. \8Z!. 8 y) LLk(#4v%č 7Iۙz]U8>̛g؃rzBR$ڙzLVSnEI p@ G9՘Vrz^]OvyRb,+1w.Ƽ? 7?&X.lYHO p8o*dSz=,AwPX2KF K@E'ޔ;ZOj}1^;.Rq7ڠ/cPqsx^too⛱HC7# ^Pg1k%{4OQr}|JL4 WWW,X )dK65tߙz_3G-#"" w^*++:YgJ.xbw:#Ҝ¸;q{mĔx^酾"!GnӇf^t^рt,,WR]9s`04Pi[H'Bl>΍T*P@  Xft0`>ˤdd zf4WVåլXN8}8O@1_B\ʫq<-{oeg3ֳI:d + Lij舧Ȇ;Z" "8gH\%+Q]~it_fs LB`DŽkCFuN^A+p *fU>iS{7i vn-ѽ2Em‘cE䁩ZCCTW[pew'=k2Y0XGf7{F +UU ܂2h[viP"b ]z(gp03O;otULԮg:F 3}$e|#W΀wl ޚlXlo ,FB8tǏ$#:nݺW_pc `V/^=h} U~(ɛB^+VeѢ461149Z>}765YS_ggg{K>t1 s3Cd! Ah)K?:,+he_[tF`OZADdBNy>LX'W.9F"~SsfI5 -pȳ+a Yǚ~! ʹ̈DLuK\R EAX)Uxܑ$^}: h/8}O`dS$"js}c;>kDd2` Tyr,xWyQ͂̏qt዆Ǹ4h`ܹlsĹeP_Ju;4o} 2rԿۄИډvKrɟBB.\QF= ਸ਼3"JKqlH 7qfCo,վ'\1~x.QR7mR9Fjsc,{Ɋ` z f*#RI u8))(}^1oP+ʧhyhVm'7o GqxŋNYK}Qg):]^^۷ogرu_ ==GG{]APz+~ﯿ2ߠh~oK~iƏOmt[qr`0DvR/P}huI@6^x\ ?BzX񇇇aÆE"tB!%\7ظ\'kA-V2z6܏@PtЄjb( FE0< hWXPjٙ|(QDVR02. %t~D*qpzJª@fVs8Z)htvD:Nɡ{c{v>K$KJn2m.vUNͅxU:([*39xq% ̑BZ|i{]I +&GJs RVVXe ̞aV^-X;#R::\(7h*!{(qĩB2ڇRbKzQG5 LwRa"|h3TL]J'NREK#   M ެ}"%El_O[Aěk֘z 8#GieIy'0z*8t0,#$n{zIꖅ<:fe|O Z|!CIm{ý>1 UZ^ JpU$11={MٱaT*:7dĉ:$S4_jj*7%#++}Z-~"[2~|}}Y?H9u$$6BfFIQQ AU0 ":1(""{@+8zǔ@ [nn.. oہk,*`U ~>r*øɬޚâz[X²u-H2Tq4IyhʛLęHؘh턓hpP6n-H>Od=/fʶv{;V-Y_t6nׁTU v4⦯Bo4-Pi6wPl4**;FC#O!"T{2d 5rJKjkl9'Bڎ|@Zjq g"h%EmT_^w= PrY &*pg$& vg mE-z{bWEɑ N+ګwXI :wƗF?NtMCԆr#T ^p,NHvfM *gcXմPC1֨, 0^/pȃԷ놬I}LjY$`^oI:J4xmȝ]7aaalڴsف1|'<-ڳgjxRCvyK[onr c2c 0׸RV5&Z3-5vFҮ]$ÆZo6R?tĽMZ˙7'USeЇ s էscMF'jv\d.d*NFo=vH۷I gm/2%4XSiBc wTAm2ve@!؃9PP'Cf FԦ Pz봘mԪl?.cT?4LJ .RL= :Mŕ y1>?RRȅNݯd[YkM.\"xBn0j=΃93Mgo VҪ"XőSBb}.GjzeƶQ>lra,S6&Ji!(d'ent9Be`Av ;he݇ ?khRMe7n4X; >++ y_ƭz@%j)BӦ'l_Bj*$נ*ߋR/آA P@:t$}d_ʿZL}>3l(nKKUTŖjja"",U& B'""\Sٽ̙3̜96v}9#~W,:ok"f͚ǺuVL&#((kk>ߖL={Lff- Q0كuFzN_xl6SV8|qH6V!P݀$gURdc|g]"8˸5%qxE -%PPLǃ DtT YQب)BmMbNЛíH^qqb},$r4- iDGڏ -]M J('߰jT0\+{^7p Or Ϧaa΄}EԩS1c}_uVo͛u(w|rw_%ngI<==o Γ?ߒL3c ,YBN`ғ1zsϟz}LF}Y{]Rm0|ݠF?Yt=Yİa=V}}=%ИHenq;q=w7ٶyɠC; /AQ-cZ K`0>TzQeU>h4ڮs*':a@Dڹ͏%М\~hk8HBjk9!@~Q[Xwlc{v1H02U|?Tsxa) !:nGl0u\/=.p5( A"Qf&vƺlE&{NaTԍ[ * YZ{gi~C3F+@1=v(KDFʨ]M6`1^tr-Cú I07yi߇XhZÎ Q^Jaܗ:{6Obv<${3Y"@q_ r}cAc׾NxZ1 +1()H A&!"xA6rinn#`oVncjFw쉮ENZb^+V7𬨤FΫord }G |G:J甄Q$(B.F=vzNmnL&.A)D3Y굮m];>Ď<V b^a3l\qz?YҷE#I R.lCIghZD {Dr IDAT-=B:^ghSetgmt$2)`lIb]$葲U ?ISMB9Y,9Kx\0I Ɂ[[M񻮳ۅd۱9#Fܷd_~.@wj*nNJJ/G:dˋ{0qTV<ւ)X+󰵑wWU4iuL} FރgU%%~8!3"V+Zqnn,FAkW62'K(5Rm? ɋ|-Ks;!6$VK,?'6:Q0W#xT) ]pA(&,"ĝղ%ѺG⎯V+L`Qϳ^8"ϝp`i19W&" A$Yާ Lq5{0!Df[<-j%w%`~SHzU xGVPKmd>G8S\1 .XA‹L"eR[@{):+(+*PLD$I(25OoXgi3qѪ+V\ɅC\YK30&agb:&gZ.8 =8A36&n_\Ʀ)6FahDpCw4"IU)G\ʺY^ A43e*8HkhN38MgbB,lc(9,AkylNIcyoڤ"&<)śpTDGw#:gĕ&-l F.u@/ 0p"*b3SlL.fĽDv(!F Uje恰< oML]lY &N0M>;䏡"a3DSqhHw ZLK6Ci&ӌg)w'YʆQC^Kk}.ɏॄ @$g?F}/af͚ECC}ۯӓ~{]ՕECog п f͚B7?z(?HOOGc=Ƽyn[+0x`6oތL&/ &&}1sLy;?ߒL2o<pvv&66wVT$vJ[g;LELWnnϭ3xo΀Fk}3euӴTɹ! tr9 jaR>tlESt:pVtk./txo4I+mi(iz1χŽfqp/< Jo ;`~ ƠIje֘{̧6wanALnFef8wNT! ^x-mѰ 4pyTKo?EKQ֪q oB!Ypm9ҍ/ᥞKG쉮J1{XO\DmF*]7_EN:{n!dd~+.Z2ҡ-"@}\2 Cf c9PjIcYKX) aĚ&'%j-{}2_0&_Ʊ ,|(!Ό0%*:ّArQ&jHT:PpF蹵t%8uM̘Hwr0abFZ-[ne̛7G}ݎbbbxhkkoɔRdذa 5#Gݖ3?H󕕕y[VdСۗ/BAbb"< 7nվV\y|6l?d?GD@A,͕)ر]HLu`d̒*q?EWRb.Pr Bq9cL.vpfR2Gsx'ҡ:t_[NYfbʥ$fܔvɦ[?#6&ǟѾ;8G@l|Uh\Tu}X^{!L5B{3"?liĪU7!Yݕ^b/j GBu!JKNTݸX֝{׼ߢk<+ t/^OJp$̃oD-tuBUQy-B:WrcHݟǥ,дY}B0H 8>}-(͠Es,AIzD8 @qL =.COs&OI-3v%jt2Xٝ'Cyzx{K]P`Z&B {P($&&+WVILL˴> EQ__׽1n8Ê+u(w}㏳x{}t3 <{{{m7XYYw^r˵߯_?Y~mDH$n~󻚑-oɓ'IKKס"z#۶]7(DgAŠ/"s TvPB@{#߹h4{@VÛљ&=^odߡ4 QWHˍR_8vGcLFhw dԞ8/7埈T>xe댃'Ah!b\N*>P^EP?9_h5Bz6*$M?zP*L]FG|Z:k.BO=|Lf%JU3}GFIhgŬ6/Z͕D,gLD7?EitlTq餋f5~va{E GȌF?pki 7.)"աG*aUe^H'3-YY83<8o^ ?Si B9νU szщf#GH<=q|)nDJɛn< 𧐇sEyJ]lWi@ _8dP=F!y+ q} ۋ@,Bޜ ʗiBDF#q)(4-PoK0Dab52rEy+]\aW9 sH®]8wÇ'++L&`Y)+PHjj* 6%K.O>Yj}Rf˖-P 5BItx˶z1j5O>$O?4nnn466QX,F+gyvyݻ7Bŋ3eʔ*/I,8Ćm9|A?믿N׮]=zᯣJC׮)-ۋ{6R(o zƌm`R $] L-6 Qt8{?8/]*g(e=sS:LוO7zJIX b?6QM\9LΕ(`Bxq:Q.č^=!G%sX2nHұwcKeuDOQWZL8U c1:Ap0--n(Z1 9-X5o3Zj6s|]){LM7)Y^yP(l6Sx͉qO>MZd0e˿,<OaD?k`BL9lQL` ىg8Sq˃wî{g"!9dT@(`HH+ba%(}^ G#wavPUy*e+DկԖN"e@g&یV"W_J}$8^" ]k}-˙$=*TOvE 졪&cD}=:j3cw{҈m8-WHp3= 4 MM 1Vɧ]Q,-(5-VdKxo4^KDrE~'!?^\ٿ?f[nƷk(,,`_}#a6DL 4A0seܹc?~Rc6Yt)'N/^d2ݒ=w޿z읮>-8KJ}b%=Gc$&&I6j=3G}3A c54`gWhtJЕfYP8 RL Ԫ|/df|I,Ey?XDBB=0`_ IDAT/>{8l=~5^}R-NϙBG-~;xPQ~l=⎥)+66j4-kmf\pIwnBDޝhu\bR>`I1nw-Ϯca5}WbsVءcҥRQ:rhsȗLa8zeK{&ڮ՗u5!( AxA^!:EՉnUcxS`yx3}s{!4=K#*!j3_!w2b8,*hyG|{i܍׀drg`)W.7 08y uW i28 .1LtSkAPئr;1? 4ʥ <M-@ RT-,…  ԣq^+UVϯmW˗/3d_؛͛7i&ëڔ/ѱ`jDcƌaΝ$%%=VO4i{f񘘘pY[:wLzܮt0Gwرcyprr"''{m6BCC?LXsmI v)mjܸ13gάjcc1NF}0`:-85i$wI()A{@)#[AmFAT%#5jF)\A]sDc)%h4/~8GmZc ?b:JpȊo4iXsH@:v|E8"/Edɽ)T@1Q:@V|;EĆߐ_r18bfRAʜF#rjbO-hB7`޹'6;ѰK+)jeC&+ߖb+j6߼Iƶ(.>d;8,Mq"2i%rIL&d,]zkv"'K 3j5`iWogt+B[MV}'tR5ud ^Dp5q(@ڡ̜#seGk5:;;3-Zbm鍋koVZEΝxޱcoNC"ߘڶmiҤke͍cbj7Y ԬY^zUo 4ٛyO2OK:!-Ml„ |rƍ\.ۛ/iӦ=|1ÇgُbΜ9T*L‰?o3w Y-M}|Ng]vUJEԭcCN;6 tA5@K\ 4w@[vN7n@VA)F`"mC@}_CR]PD"1ˑC_#6BwnFFOAQ5RS ~h:*-ӆx!cK^HڸhXFuQ.j< o6J^ҷr:w}nXwC|s06a[bIhA’|(.4l㾪̺-R9ͻq),\`XAΥwʧwat/:I[)yuiCSnEzxs$T@'"Rjuf CtFZN'D%'^5#R@u̠8Uj2 Rl.KوI!-aY*xhoUPlk0Q^):OCޛN:1k,k.]Jn2d}eck2dZjMC8991m4^|ժU{͛Sv6۟@pp0{̘ǙVZwI#ԬiGޑިd]8}}-iA_՟z= ,RDenz/H:V#C8Zjk!>Ђ6ksy$͘^)[[@j"k:r\\IBEAQ35",(fl'tC(a֣FNs쮓ʠCd;:r%07S]0?TQsndeq7/VX[qCH+\Iqu(I-,m9:ش+ 1ϲ$L&$f;/bf>OS =M\\:@hb;+~Pz+&νLѺht> =JxGDZj>@jL1BsE+$ >6)_W%-m{X&hFCIKK9L A㾤kg>ts9TJ Y"2cˢ)hd[ evmpURnv$+g/UI"W*q-i|?l`h,ٸNu17A҈}?cؐmԲ>KwH-QrB&"/6q(8x(6XF#[ر˴ 0ŠA = A~4Zx9BwsuS*.s)P:r~{kbn+I:Gb%v|^o'*3l*qD^JgjJ 6fT#@J |A""1.V :|aI.gv䶻;7oHww~LWEƈ#8e˖Z?ԨQ3pW>߫'Ǐ߿My!tԩJyoI@v2UwycnnСCA&gϟСC_x7Ι%|}0=UJ$W kA)t[i3C5C?38bp2ρ0,<~"7P`̄ 4r5MR(Vym#AWFY٬tz=:;Wp%Tͨ`Vc3N=Bcs/8qbk&VǼu}Dѩ'6qtWY2@GQ-׫[KIVֵ[@%my-GIEMaJ:T}ں N3˹G5۸Y%BzKat Wn%`Y"Rnي1L0ZZBE<yЫ˗/'11)S0ebcMʶm߾Ͻ(.\ݻw &773|p,Xŋ:t($33`8{,h4֯_)SqFJ%}aTo\]B\ P4FJۣRt>}`mmpW3L;X>b-jmL(k'@ ׂr= | hg402<$R !b=^G׮}tbM1uO/U@PvDZ%}q8ltuqܼZpLӕgТ :mkcl,Ԑ\9͂,c|Q}OH53K[c~f*8 u![KzMGqew%D]O7~re%2m_Ӏp8bw֟gΚ{=p?k6ܧLS˱izvIΝY~=`Ξ=KTTdffrO/f=|pOnn.ܽ{ .0tPFի8q"`~z4K#88Rƍ:u*̚51eʔW+W2h "##_zUӧ}aÆ \uT5qz놥%gϞ%443g2|pfΜ9^qC(H٣u]dY㶰7rho{*#T2MI7%5O),BE(0߁w鸓U]Pg~|8!|± h޼9N!BGw[Zaӯ72-I?YلuZ˷_}z4".HSZ$_r.] އ;L =¸̜~,|,XЖPk >>LYf 111/}^gt孭泳cmۖcǎU9...9r_~My+FgsMYUB Э[7ur?#y-7nL6mxK0tA(COD |E5m>i΄N#-- GG^mz-vAAƆNP"~dX]O%V-H ]`,-j0"N~@q8"O'7I(5p.kFb_6Ƕߺ/pd,nYO`ĞkŨrlL͜KP\-䯤̺]LE䙚?JihAKsR}%.\6^HSG4$0flUKR<$>O$]_Vss96"#1h ܹCll+%%i*xb&NH^"""*^xxFDDP%ss3Ϲ7Vo޸ʕ(*-1`bYNE[Efք9S]vѫW/5jZ ؾW `<ȃQ-UЈZ(:'##W?T s"ǐ>ԕe _ʠ*08Zlnc#1HII7AW~Jd,h`_W*l j2gd@tFF\!?$4=J::Zʿ>Cȏ!TD@ӯ4ggsVA2h; L9/_+h"fl_PKڲ{\|d q-ZÙcf͙!d%+h݁\5bcvbdJFMD3z$sgGX,`dwŒܞ=pHJc0DբїPREzh= ۞xc0Bb 3cJ2;[^3f,槤TW'Xx*rRם_/w #.,Fz#GJӦMe˖/rO> &аaW6ϫ\.ɓ :lyeȹ i1j?G_>d-Zмys>177g֬YBBCC~:֭{qET* AڌF߿UUL7t Km7~k0}+nABvk+Æ"~We\mJý3 J桭܀ĖoîXU"ֆ.! 0@ `@# -k: na^0.CoLc!pt";B1>=uiM@Sj-  hi UGB%w=XQdusio/ .^1愗3=GI 1x' Ŵ)'"wMcgb[*Q  B&28&n6@JU r7 ac\|pdW5{(H,zlT.!%Iz=fb|xt*`ozJXZ1nt,L .WKL -er)–ȭ^ Pj-R} SxǁG@wKI-W4$4dl 9$ 2q077eoڴ+V< |ʊn޼)[[["""}FΝ;YfUq֬Yӧ룹/M/-.),驨PVk𸢢Jt.IMKE5 v3xvIc>%'壇g33?}U`ێV~g@Z ~FAz+ ~΄@`LY wsA>qa$UHi̳!" U$B! |[HT^Bήd lwmO[i:41 jfmF Uv$u:{+^LQ2qV ~7Db@;R,8++CTL(E{(mj9ΗI`-짍@P! ڛa{im7EXafL<8@,a\ƮUO\VHVWT*5$ފ-0.0~HЯW.]s)UjWNwCLuG:PՐb޵ kDv(D*/,wke tdFz<8۔ IDATKn{ҹ@ίz~jgݺulzW_=ٳ|2TVV9}:R?^^RCڴ;JJJ W$\6z*+uTVQ(4z} 2t:=ZF1gͺk0=A 4'ލ,]&&&ů1&@s D_ƠS@>З,rm&d܁|9mm$(?_~CtnTuPYGHټ+YČAфMङ/tnv4C* u3's=f5qpw!Ν<ֻq94CgҺlsy$7O:69hG@+(8a'vf^c0ߏa( OEl :#1JLC([TL7)uiMF7oҜ_a|GO~3;*!ؘgºTsy+.OcVL[@nΫpmBY%zji6"Mk)=H7ݝӰh|J}LTsOATHj^Ւpel7!N92k!>4hHd޽tZF׳xbZj8SR֭[cccxyyiӦ*kOѹsg6#Գ^o*gjʕU^^^ܹs«tzr*1u܂ Q]xSU{6gP8tHoM-yHL{U{Ut &P;T={={ANa@DƩĆki}-C̠v<ْI 4poF%还*S_A8S,_wwHnlR|8zϴ{:ΣÝ#Թ&ZY!v;?tO'--QF٩xNً &rfQ-t:!G[?eoMℰ~ 9C-0$2i$ry]v1aT*_ghԨ7oGU=zc|͛7g̘14k 3f# ;S =95nCA+t`/n䧙ᓥt -hof&j :[ mE#;CӹB-( R%P*bV$O"S&LE˫ '*lfHPЁiP‰80ۗ;b8({@c TQ9P-_C":bÿYZ¢d""8w.rX hJzrzƅ cn@ }H {nlqklb؈ X*R^ -[6aɒH Jz3>’Mv$<<z.C;VpkzCELm)u-惡MCe.%S_Pm4bluZIp귷Bp&##.Nhߞ={DFYFr44k̩Xٞe:Ǔ}8lwCt,rzw0#J@Ԉĸe2D?jr&ōsmt~i|qrva? }W;v,]tGH LLLˑ;tW^<==@@PP 7g~S hԨ[䄭mU@ԛ[nӦM#220>O/Lް~DФ'䷀I+42nA >zȺNA0u0i,]ޞbe/]8'A 9Lnfi8ipFl˧>yҥkuh}N2P6:@e4;D5G P2(;HUȣA d (01 *0PgaX@_߮xMD䩠PaH*)IS3E( C$2\(112ڒ">D|FYHsU&T};RÏJ$ cZ!liB]R2cVE|s6d:tf֬;ǎ>Q.YӛCpp Zf,`Cx8²0{:nà ݖ]=bqvl'#p_ @"%!saq 3Lf8@,ӹ2mH(`Ұ.ąOaÆ՜;w,,Ed]s1em&-*Dtd0WleB?mү2b'yg+8)9sйsgdgEz='OScŅ&MJB_oΖ-[ȨjS^_~%\|My+{j7U" 9t( =k>a -5p}¡73A4\GWKAU|5 g{`% NEPAuWX (= FkbfӜ4i'O'/س'SIK^ @=Vj54׮ t=|C  |R|R(vRj}H㋑}Qj6JJ{c1nKjj@T;YҮB;{t*-W4i4a. Hp[iۛ@TJs k>>!q\㔕)ٽ.wezSwېmlߦni4J zrlr)7[?s' Db;hq1"(PϾ pv7\'Wc bY2vt"l PtϞ}p4f,Mòv#--Dĺu+9}4-[dw3w_2NJ@鏳wW!bm=PV+"dw=]L'W?R)1FT$mJ26L3 [#z*Uf_9SJÇ?v,,,ŏexw ۄ0o<***p7SLٳUm cѢEl޼xk[lA(baa\1rH033e˖;woyܹWd#SI ]l1տg N'\Ie i`AhXK$FShTЬ-Y a:( VOK,yatVM8B"758G@[i\אkR/C$ʲ:41߄E#A4 mrc㖑Af'td9sߴ#.Lb1 x ]sK*NOTj)~6&y@F ]9.h@l<;CBwb'_'&"L)J΢B1k?>2)$UakqJJ< %Pr>y=׏`m%$!ZĜ],t !!;; 5};?Q,ޚͿ&h-Š V*TD> {ZGN>İ,>&N:=D=/W1ܑ6~+FI1חӶ9bjs0r0Mq30!SR]\Aps{;9)/൵3 (//챃+ׯaaatڕ'O̖-[5kܹ M4!$$77 gΜA*$K.Fڵ}]3Ɍ3puu+J:vHii)Wёkҭ[7Μ9C۶mksdyt/LղѦ$.+ԆPySj ,.ᗻP:JLȼ `bT6B"cePB=kSIHȅ;@",-;v-=]TQQArr+ @,- 2VP)XDml vM` ȁBkpVBzKPހb(8cZÖ&aL_8FXQкز.$0nn7&fdRF7vܺi®5KkS|d\]^OZ uR2Z-^Cwe y,X} S1-;k+hbkDV ogrٶwQV E.~Rd3KtSh+Aw0v_Cq*J%N R=V$W! l8 Yb~^Nb$U  r9hۃd=rDHq6FK¡C( #F1ɅxYUF-ls?uV G`anM <=_o7ӦM#==V vvv8p J֖"T*,Z///O8q"ӧOg֭ұcGXlϞ EHH&&&۷My!\-[>W0aAAAX[[nJTT׮]{k߾= 4_ׯ_yz=}}mK, 8q"k֬y5'^ؙrvoHvOdt$hO@VBTP> Q')Pc$8")ܸ\@ZAf.7LH=-$TV9u|!ٻw/ z=ăt5 sAq! eـW$!ɠ#0(+N-lEf2:fn&M?x_P: WOaaHKvs7TJeE֍4eJ9g*nҿx3E+,mNzY:z'>XHɽy$f\gk8L\CZwkXrelpUu7Br!Dfz t۾,,ƨp4 _ |W^,XA]\۔hMW&Q*Q=|.`@cє^{+7`Ӂ|$&&Z=e$XiI׮5:u+WdCȏts6b'd'b?o'U"((*a֭ܺuBd22BJ%&Mbƌ\vZZZe֬Y@ @VӸqޡec/9FH$uXXS wҥKDGG3gΜ̡C{$6ls!;;g7c^b6l`ĉ9عs'֭ۛӧ?M$ j͵gF=)+NL)2TѺujp':aZj=T*#"#E|{$ҎP9XܧQCn_7{G l 'jh׼y^I3'Ё: B  )s zԥI2%ȏHGpUx?;\5 UOGۃҟd4K\.ũi]+މ7Jď2/vՎhԁ_bˤdaTĭJ* lc0KqaęmpHgs`zzۍy}| ~YWf`δ[56nݠ1\4k vП,߳nRkp89\ eس)M"X1#qpǝ9J؎7W&ܡdNhk^ τpBpWX\ B™SiЩ cbʍcΔ%ii4qS|HlV!!(l>~sI!WIM{/ylp Yd駟eyRR?<6l`…ԭ[mݍڡ6#GxԩSTéU/5,;vK6$^|Et14/;0tPrȑiOZnY^T)8)25qDwΨQ7TsIJX,L8FTԩ6/8\c(9A9p}QqqN+PK J<,6UǏG߶ݻw}͔0^T`lwHԖV~ :8:C,$|Si₨!OYS-K@J S4eTA7q^HՑ}EjZꬩ%Z5l1)5.*\.ע[1r.7ɾ"-CE Vͧ~$(~" _U9k pbmli_r?{Y5zTEEsAUNر(\ఎ4hi)jE+KzmRBI4w1IY,Zݢ?>kiKUƽcmN`igU2Y%.?U- Xn֎eU:e-q}* @۔[ ]WSNO?}jѢ/_~mϟ?ڵklٲHNNO?e˖}P\۾+}zZxS+ҴMͯf{ڢEDuO[VtrM6d2iƌ:&77;޻˖-jT?#,; z>v/ʓ{A9X")Sn*gys}';85Sۑ#]7z cҽ{wvͱc(Tf͍e˖cLKPۛq;VYgf…ٳo33ԩS]P|ᑋNް7zmL!Vıؓ$-- w{X"ׯϔAjf„րf%BJsXKoz, FZ jX MYH0GـGe(>G` ϵ›y-F2pNR)54ۺTrR6pnpxC/ ?Ok3b»kǰlmS>(<sX07&ʫ4$iA&~ VX SIe( B/-Kmھ<,KR[[p_ - 6S"0j}p"sW`@/{קHч>1E5X,I VgϞ(Pqr[ϟɓSؠI&;ܴ}*U1b0ad~ "UHN:EN0{[n饸(ؼy3rɓ~xtޝ={LLL 111Eccc*Htt-˯/ Ա4hЀ}cǎڵ>gy&SE1ͅ!}=OS!) l`^B ;/⌟0#s⸸8)… Nq%XH-1p% JgV|<k:.o|pm,GQBL5sNB ,\\_%f"oUwXܩ=׌yr!*Xj"KPUΥi< C,:_Vel\'[W[*uή -4h/8+u.Ë &F~^u0HSNz^(7o%4;&X.^j[6J\OOLՆ#M<"C]_y2yZ*<qĮ=>"6̂` M!g-?gHq,6Cg`zӵ>uNHBA=sC<j(1+\:ݎ*%$kR|8 "$xwZpwD /_&""ɬGذaC)²eXv-qqq̘1ŋoi $91Z(\0{&K,s:|gkCr;f.>Yfh4½۝ԯ\¥K>|xF&l@@3f !!ڷo*U{޲|>cdɒ:BJ(UO?4%K|X, ~nVӊgy =jiX:ÕŃ#q[1Qk| x:35[-Y LȁyzՁ7:/ 8Pe6R($yO<1xBexBj]݄O3s%6{u/"{_߯ ? if].jDh*jUR6ZҊK$7e&cPk:<ƐtB@VywS"V["wy b}jd/ɻ1rJ +`[~-ݻw~f`Z$OOӇk)y=(ϞYRC`'䄖6^ T @w"0c8FAR=1xx345ƎϏSBPx{vU[p̜֎JrfKnؽRyk̝ LWj,aNuRO#.ŴYTML/F{zeW1\?ު1T+Zqq|Dj7Iܠ䵞i9n\w{2yϝ%2%ȦY_7؃^ukdb̘-6wȺ{jT|k8 a{8: yN)%\UC^i8y7T G`Pp6KX8{~?&*7QrGLi"- qNY|$-|o >E uO9vk֮'g΄oF6HϞeZSv,}Xf ~J޽[RP!\]]1|ّ\l<H׽c iŌ"OABzu{3 ݵczV)pCx W] .ޗXMT^䊈d_|#)F1ÜɕjOQ!_FŰuE<#(֙jpfI.p1o+?gYΝɔ2/MrLZ>3ewĩl -n[i|N\Ys%b1 Fǐm<$tr!,Pr;= `w2:|E & y|[]aN8*xNW! {S\F;]|ߧu7or-7жm=L&8 \>wq@3nyi/E6m2Ӷm'Hq]\\. 6u'Nd֭yiŊ4i$#nۛ8Ȝ9sĘ1cnzIݾ};M6͈oرcڵ+͛7fȤg~Яz_t:q:7iYVVZE޽ѣdjԨq;)νTPH K{v;$ p%[$((w4hס_IT \[-]@ŗ16P?\1N@0Ff%An:1!qxp2Dò{ ^'9䆰x;bpVx,f[\(ټ.R*56zΥlY_xze)pܳsȻ(gnp~IJXޒ;xB6D~}ޜ̛  e{H ڈ {P6L ò <;Y0OOOfc(p_`rUPx/\)ӹlJP--A|/>65]0*C:@9_+j$7ՍQ1gAQϟ'wܷG!!>hU}.q(7|CHH 408*+Wr!>;V3 }!44VZ=p-[ח޽{?JgϞeѢEٳٳgs%,X@\p88C֬Yoޘ1cy ݪSX1;v,}nڴiEJJ +mڴ VZe~o?N}gfŔ)S2e=6u?{i'MgtnwqKpY!][$Dd(l3mSezMٷ0UΝp 믙vcqi< :Syæv޳ l}Pdĉh-o#r:o|.^tdD³'\ $|bE~%r8d +<L%&&*11͝{@y!!x$$1BDWEpAL %)>QC%= Jc> 25JЉ e1ΦO)_]i+踼 TRTh}uE2\nRzYpB"{{{o&@\c^uhnmUV{lr3+lM uJ^'Fm^i(qU}'ހJU@Vl6EUVUz뭷tСڷozJ%mt a9V^`i(Sȗ۬xx?~ S<0uTɓ'3_x"""5k~#;`. ?$ԃ7w[( NkZNz>dC,Jo۵]6 "yl!||\Xoɜ8q-ZdQ&f0ɓ'ӤI܌V}t_TTחUri6mʨQ֭}oCBB 4`˖-.]P)))8pwww;ի1>!C0p@H5k=Gϟʕ+_رc0`ǏqƼ{=zB ݻ?~<իWhѢO\_aXr 6#S?'g ۷_c;,L\DRR̙3f͚=:{63٪M$&F8y[±ưX` -p5~( 1JNBN|fcݺuԫWN:u;qcKRǂ3 uB)8ՁSY 3c)N|{CHZ~c1Դ7씋e[3G2!.ĉur(l7G1dt)OG! On=Y~:JKb/^̉bNe/rc:i4O{ &MPlG&jbal6I&a3m6 UVkԨQWWWRRR0>|iӦѤIڶm˷~KLL fx5jԈE2l0tߟjժѾ}{ZnHã@tt4;wf֬Y7-xA7B l۶q3]33=pww'00G/^0m%-n@` splA>8B&G'fג@<8ɔf63tO SY bO΄S6H- GJIyZ8lW%\z'&wՄP*3Ul8v D^8La07ivRE[ Ly IDAT[>ǀss-rQK۷xnX%vf,\.w!E '2 vf>Gc8Ծ %MV<\!?9ŝ!QÃ'NPlY&M+r{Aǎ)WÇgѢEL&7n̔)S &)#=oߟ~=O*L&]t!88yyN'V=Scǎ^z-[[2ydPe˖%!!_~֭[Gv0aqqq4oޜŋ;wnIIIlذ+W/P->,+Vx)RK7ogW^={3fꫴk׎={e6o̖-[2+Wdܸq㏏qȑdɒ6m0f̘LU\3fСCF璫+:ui{OOO~m~m/ c̘1-ZW^y ТE >b_~ۗ&MK/sǚ_gɓ'D˖-o}jժw)n4+r[|/ڶm믿NRR-Z {\+W:WP ʕ+ߴib!|c\@8eUJm9cNecE uTbvk 4Cii(6g}7-KKs >TCu%jg5PhuLMD(}YٰٵlNtx16=D9Q?MP5~]GrF>AV Z| IOW4i'^zluzXo$IGS^fd>-YrTeU5!4)=o _=TQGiMc\MPMKvT5\\LZ5CǟEؔת,@Q|z_! wjei@$5kN;w:t4B>q'Q'[m$צ{J(\~u7OE Q.INO$:;! 7Qšc'(q>}eH4jHޏ$IâEԺuJ /\"_4zh=pNSSNrέkfpv-[v]6MڵձcGL&}ɓG*TPrr0kޟ۷DoÇ5${mY&ߔl^[=&l6?pߙ&SJe Υ(N4jB%:lY4%s"]yc@H{N[>}l>x;w.t:*o .>S"W:6Y"G:*C`YHƪ?\L?djDtMSE*~&mi/DfE?硚Yn1S:qʩUkNNX[f!7`d([z5k]35Uy!]^T7͊ࡸ | rZ&< z/3?5#sΪ\ʭd ˸G7n;Dhlg%>o }(N^h!C֢"c}#TيKy{:.]JNS))MԢE }'dg͚U9r中տW\oGAd2&N(ࡳxN<5kd2W^]5j>[g\_ɐx^XرcԩSAt: @ݻw$կ__=?nˣŋܒ}I SW+=UO<2e=ۃ⡤K $&\ i֬ھ<^rq) }!#'#L |h2gڰa$)66Y~cœWXz =}:<$E?k Y6 "(/{ 2(%_w" ())"I<$'J5t:^=#Daz{25MbvcxBCU5 > ooo)$$DNN:ʕ+U&Mz>.رC ֑#Gy;vT3>O6M@RݮJVUw}zw3կ̐_ӧN&L @SN}h}]oA\\N>(UVˏ۔“@\#{6?Q=FtJޗGZymvEoM6i_ "CA}^4bT]KUJt:u~0GїNc$C|Jڦy5*ZQ6o-fW6!ج ( w̜9SV6)w7Wu}CZ4D e<4DS{)[.Õ}wڣaTZ ,X @Ol٪LǴ]Wm4U)*+ u(%QxȾF7USvC[2N^hL[҄[QMQrԠAZr:Zvڵk'77sT`AuY;vW?yj>߫ /ٳg?/_^͛7W_}U*Tx~L&{JLLTٲeU@¿F_ς TH;g)׿)>W^KU4uJ;wMɷz5Qcl|?{u;1\>MU;E:3+"yP>=B{iמS kժ=zX?g(yb \@'룯Qx?͟_+W_q>++*өYfezM2E111jٲ_ _y7To>$$EC|`lfM&xY.EܝLu6Yzϕ肞cȑ:t-Zq)55ѣGgE S^_~YgΜo&_^tiƲD4}ȑZ:x-:+WJ2~;ָq_o>c>bŊGf0k֬{NoSxK7snK7?dj̙2LjڴƎ+ɔaU~;dn4a LYE3½M_NѬyںVv6wo[6,ErGF$_NS;wF*D!~Y]SAa+RriK ϚFYޕ+ꭖZ+W(Q#HѾAyީ2 R#-czoj{5G+|+ u4%K4{͚'Ѻt>=Q; >$Om1b*bRxCF00CL*}LKo#SӃ˿ rg ӣ'S *QFSRkJz_[ nWMn׹sTT)m۶MtA%''gL-[дi~.^9rP5{ljѢE6mvz쩐2gQw˖-ՠA>?9j׮MoNS֝҂%JH4쉉I҂Eg`IV:qkZ袦ϼOB2?ͨFBzo\-}U/nݺڴi=z~yٸr:.4Un].Ŗ extTrqY$JKﹿŁe{^};Oa`#x$)Ds(chQ 7մ? d6/Q~?s+&yN?,7Z jÏLA2b]ny=rf͚D{aȑ Gޙt9LJQKž^Z>(JREVR%Tڷwj-b'X'3s+CH$L~>̽ٴI:t dz}ooo;wnwN8!eʔ~˖-yYJ*IϞ=S֪U+)YU~5j RjUiԨXB8plڴIbbbdȐ!dHP^=iժ)SFʔ)c2eTll=ZN>$ҤI9|p7Ly/|y6;Sk WҵɓҼysGGG򒐐L=ܬ\Rڷo/ŋGGG)^tY._l9988֭jFԞ={6Sȴ3UjU}v)"w+tTBBBe޳RUVpKe֬#V9HsD7ʔwȬ6me2mqs3Ҿ}L'ţ8x#jb>Yp+4,o*#+ϖaö t+T'Z% ֐y q^:@(Qhr_s]hQ0if^[BݟB\g_B=Bkӆym4)ON:8O$%%Ijd?EAЫV@d OOOͿG@4h#Vh4ٳg%**Jvy_zUbcceVsRFT[Ss)իFiذa}E>}V+VVrDՊsˈ_@ 3gX5p?/nJR@^,۷/UDž*%ݻwK>}dҥ{nٰatI47v[ҪU+Y`ݻW,Y"e˖WWW9{EexљZl*TȢ'ΔNKS3%EQRYev% f^WeʔY>`X`RE:YwD&dI|3|ԡ^NƘW`T&M/zA3Qp.ܓ(ٵ7sK/2OR(1@< q0UQU(/Q9KE n bD @NxA3VaYtʼnnN-.kJkt^1qDٳgO[FQN8!ҫW/sptzܿ_CǏ  }EQ$44Tliƍ///pŋDDUƏ/ri(  UBiݺtMfϞ-O5b0dҸ*5ҬY4۸x˗瘭))zqs{i9#Zj%u3og뻞igRJL(+7~`\LYжzv3+.=1sBoUJ_/ҫZ/YDZ+5Ξ=':P_iBhՠs6xIIHH7ߜl!oV)ǏM30#} ܆ zUy`Ap/[B_n wWuE, ؄  q|D'"o8!?T[JJƌɼzuF$''KÆ eĉ>ɓRti|DDD({H͙z^lbR||e(Ǐ-R (7oUlپ}K1g[nYYjlܸݻe7ߘcW.-JS*>^Bvtt戍/2h 勿[nXniӦl|mܨ X$7H=Sgjqd-ܙjѢ(Q"KJӦM-:ѣbgg'UTQ4|ҢE qpprEԌ3^R)._ BbFve-a2gΜ\ER$ܻwOV^ {!^t&LS K{]7޽GmKoK{)b\7m J絨P]:,*¯* NVg*BEEPԀtϧQu >})ma]w_?O&j dYJ2L,%K?׬Y#TR%]I&V7gΜEQk׮2t,1o<)X+,ݻ~ӧJLL{(>J?)̟??Uɕ{svv޽{ˉ'^Ǝ;X;~4-f/ رì_%!!Aߟ$HI^NVHSgjqd-ؙRE ܿ_~g3gZlիWḛsN NUFTRk.zL;SAAA뛩ɤH{2}?Jp hKvkdǎlYE3ghnqĉtt>J[ZBaoUP$@JKeQuTT'^^y/veρg3"FIԙTA(4]+N֨Q%χj IDAT꒰Zui.0Z&Ʃ^DU70UT]kQ%"~ǮKΔ]a|P b΍FmV&Lvv)ϟ;wJ.]3w#GJbbJfͤUVҶm[i߾tI3m-_̙#5k֔SٳȺu벽)w6=l"^ZZnm^XD*%00P~QfSu%%˞vZs4iԬY3mIQ$O<6/^lܬ험h^Sgjqd-ؙZl`u늇G~#/_[dZjY􄒘Q_-4o Rg4m7ۅ2O|u50L!~mL0AJ,kxxVqWǶj5C{5[rh激' nCLM%kgS/<j\P$ )N*zSXZ8Q PugԔgQO_WH 28oƈ`8zʴ_Kruqƙޭիe˖eUO.nnn1uppuJNr<+C̟?lYXrlܸj73gD*/]F"[}u$))IeԩhCs#wUELr~v,'1rرlerjBѣgX&ʕ+3p@Ro.jzX'C[o޼)Ǐ͛7K߾}EZ&a2>N'֭iZ D;;udsRA^WfbcWG|~@r8w2E\X +WM&$$tqSE:w.'T[%ԉ Δfh~4;Szdٲi:ʱ,ʌM#2 ~wBͿ٩"&x%4:#8 ~zia@4G(sI P :~V4>L} 7"cRiQw` xT_+j)ȇ~(ǏJ{/#~~~2o̼8CR-P!phz)Nhӥךo'ӴEoO]Wt>Ax}jo}'֏J"'4N=!;@p fy=WpjIKb>. +1G=s0ߵNY]=$H%ƍc̙̟?#Gfpuuʕ+t֍;ҵkW֭[GZ9r$K.k׮9Zl۶PvmExԭ[zxxqFf̘A\\\ڲUVkrψ#0jݝ}O?O?ĤIj-opppl ˖-3_۷o꽀v"ڵk9uTۘ3g[hѢ2-SӇ? 2`sRmze;p8C%Tp)e@ݢPBm.9ў hȥg t3i3BDxh4im-t 8#݋?'O9jÓ'OM6hтp^ubbbOQ@)S&G0`'NL2%[m*UWR@pvv6mV9}43gdl޼g-OOO . YlSfYhԨQzrr2=b̘19nCNhؿOKHHH`ƌbnҲeK4h9RYصk666k#"ՋE1w\ufyGO4h>>>\|]v|rv˗fYnۢe_UD[4gzo0O-Qbb/ʪinތ /G0qpt*UBD1qtn%hT b;ןK*.T!͈dY%a^oۅ6{%..NS/%8 DBǂBdaoEΗdwpͭYzCE|>f-Mm(^e \:;;VƎ'ߝ{JӦMٰa+VLΞ=+͓QEvidih4.]*ƊǼXZTm{͚5M69r?JŊӔ,/^)Sn^~J޽^2U #bcc:~Y!,,OSuVԩS9n0ut2… {{\zСwg^r\X+oS_ի|b ٽ{\R:t FnޯGbkkJh䣏>ÇˡC[Fٱ/ҥK"gʕ+2,] PkډT灃wdxK;vk.WqҶ28p$$$!oܪǭk$"96<6Q˴x(D ѣ2eN51~n3SOuw~1L-E(+B[z?u*0^T26& #AE˜{wkIVE1;SyA\\ԨQC<==̙3fE;vW_}%""jՒ.](";wN֭+W^uI۶mer)\ܼySƍ'""ұcGݻ &ؾk/Ne%'+$$$ȡCdҤ}boo/Æ Çlذ"""h4J%CV ^ly|CBBr$}С>Rƍ˗&Xvʏ[.[IG)2SK9rDYhQ;S I J:u[t:xzzJ_rlw.Z6$LEզ2H-:… ҁ{7E=EΔra$66۶H,+F 矯,PE %1`Zoձs-8I}qR0[/6EOL ~ظ*Ezg^zچwR7c {K7Y>.aܓUmD(fAgx,lBB ܧų1vXM!ZS\)sPwT~M24 9T@#hǻE yD~mٻw۠*ʙrߛ W^V{EQdƌ֌) boo/;w̕>E///u<{I˖-cT z^n*}]صkF%.>>>t0BBBR~9w$%%ʕ+eܹ2ydUɓ'OuHvR[oҥKeO?Irr:t(㋺S%R/"һZٲ̱h"ٸqcw\X*o3_%KTZռ?J*U?[Y;S׮]˒ dw@Payf!UT-AQ#Gx_%::QLx6d:7MYո~z!0#RpzO|%gʩVTh[Lӹe\̸q?̳)$ݻwL>=SKƍ[[[9x 4Hf͚%z@6o,"gݳgOdϞ=VR;i޼yuV\i4nzttڵKv-{ˁdu76ە+WqרQC7o%"mZ[*U2,t(L2cӺEEEӧ-ZXr8ٴiS~qqq1ʎgvh޼?8Sc %mLtZLojYqFСCH4.]!$ekÃ]X??s,cJX8NZBfM 6j^h&g#1ڞ΍`ƫ ;KO ر `$!B\t} wB2"O`pᯃ-o( xc x0EB]Z Omlh]q.Lupy=ƀŲ<&ŋhr|ȱc%""X:vȦM̯(Q]vR?.]ڼƍm{^1c 7o+Om6n܈(y*R2_>dΝQF֋3S7nܐ O$sFK2o o7ZGzDEE F { &%x$}FQB!fcPPnPP(rAhtFH4FM 8o6~g2wcUx*k{%6N:mՙ+PaPPڿ[PnYj3B- %E".;LwS%ĹP7 =ta#ey'L m۶W/<׫u5WZ%7oN1BZl)VS'&L;f9{ӦMիWEDUZJL&F[+V,^qt HPP U#r(M41>)KO[[TaYll̞=\lqd5}e8aaБd/u\kBy Wo\OKu+Q VluF+ 'Bc ("c:h+z [q-CaП0[=V ǕPwv 7& 6%(lTgCէC^Q($#aW5Z >;x"5ۍdNl͇] fi ˗jժZ{@_._~ڷe˖4oޜ3mڴT[hj׮Um #F`ҥ,Z[||ʕ8z(aaar]}]ʖ-KZػw/+(_f{ ϟGD_lllؼy3UVT1UFoa"?fϞ]mzBCCi۶-NNNܹs+WhR w܈]vo111TR%KXٺqrr"00ggw rP^۷o6m2qw8p +;ҦU3Ģm phQ7>&}=9Ƀ;*vNv. < ^1Fm5xrmH]0[ =:8vdܡpxڻC'|KhPM<KZd (ZJS [BO- 7`lB0)!Mq+B 7v9fT qU=j>Ėm7X<=۶mc˖-ll~ȁ,VNK|BCC)W7nܠiӦlٲʕ+aÇb5jܽ{۷o2t OOO9wǏgڵL0z( 7odϞ=VQ"**wn,kZ>L@@YLJREN>ͤIh߾=>>>b2([,/^ŅÇ[oԩX=z7|4idϏ5kp-z/Z_{kײdn޼Ib3GV'Z,ZnݥB 4jȢ4 }TO>ml|Q\ٳe˒}YJad|p = ?'Y/P(\mO|e˖YN:ѩSLزe Zzr޽TC~/fʔ)7΢cmOHH?3vvvf=zdZpYviLӓ'OBjqk֬!11H)PHJ. .0uT@T˔)Cɒ%||jɅcooҥKeZ$&&s Am۶ݻ[DF)릮+HDDܹs'W!sK.I~2U\1ؾ}T@pY 6~,=.v$8#حbEH'㶪B,v[Jv  < E&du*\ tLi*!vrCH Bxa.3yYz]Eh"¨q(1l$tx+TMpj lQ 6}E;ydVZEbb/^\)SUZj%ZEQdСj⅀WJ,i5۬رcs$S`0H\\믿ck:uJ)"gϞMws -ƍfUпqse IDATsƍ ח JLLL^/k׮5V拘OmŋK=r$663S'''VZΝ;y7uk1eݻצK5hT'ƟCPwX 4 B(U쫁m1HX=UU@bCP)6O{{ 6쀫h;| C@&`_@0us5 ǀZlY^ - .Y+rİ`kzxYQwp+X3c@ h߾=>.'qppȑ#ԭ[˗/sE=l0 f1ÇcccÍ7j@@@JaԨQ?QFYc~/aÆngرt:|||Xx1=zPpazc{+lށ#bRB(Zg0 BW.5{i4[>萹q ZjyE8V^mvVٶm j:NNNW@4ٳ$::qpp!UbooO&MPBקLB…w/{.ǎct/_HfK&MܹsݎGd2QdI\]]IHH!)@O0eʔ7IGkh畁'$$Hlڴ5k瑘:u0k, f A~W^k.ceYs)?LAAbX@ɠOAp8 MgS?;R€+ ZX Ap2\̽~&iP/d t\ a)-@M\Hhx`":˵g3Gr'i4%pͣiY 9fk5k%ڬ].]Hz\2ݳ8&U[c̙C&Me۶m\zFBDO5jTڙ1c"”)SR." 2Pgʖ-{KSk2|p5j{^-9ž={8pUӧ3f̠G/^}ҡC*Vc6mCCCywYfpLL>|;JoۻSNrDnǍ7SS4 .QɯQ} !0$  6Ép;e$WR ]5H+f[أQVe!>к:ėWÎdhRz\?O-'h 46$mwxSG'l]ap񅞝paU:yb6n׬+q?'=2"I.f|a1c*U7̨̜,[֭[sqNRE ,`Y:D8p@*TڵkR_ "EPH%k7oGӫW/_r;"B>}pޑ8y$ .Nc֭=zp&NHJȓڶmUoV2j3J~f 777\]]SU,X">E6n@f%K9r'OO?kSD{skS |9@Tsn$6DK|ڮ8'ryQpiwB%0Pv$dh7{a Łɐ 7JAC AjUa_ؠԮbAB3zD35t##Jul ':-phݺ5@EMhzzz FEEQ`4b۶me=OBغu+7ff;;FBQtBr:^q֯_F`<|>}0|4? e_>M6лwoziUg' wz$sL9Ce޼yTX|w2L}̘1 *78k=Ƕп(mΚѬivvߡ3f ɔgbFm}jhFھ̝;W~}Eأ `_>1pWUU`FAcp.N(P7];8:U:mTg@b"l>+x߶Hj`A]t_:[~J񽿀MX;*EL=U+JF̙3o0oOzܾ}P˛d;=7 n dݙ 8x ?SV\r.]:ӿ۷xb>4F#իWgÆ ,ZPI/H0L\\ 6gq2[njݥe_aÆ1qDig]v8880k,/=}B>|teޡh4|h4w~Dpm|}])Zԍw+¨_8+"* Pbza(Mn `[*v ϫů1rwS#B A`zr6_Hp7x "4T=X K̎@σE]:iP:q6II K.]vfݻwϜ]em\򬮠S.\jmըQ5jX`ȑL&ZnMZҭ嗔Ă O裏ҝ!Xx16l`РA/^ݻ9)U9N@@;v:Rn"00M6ѤI6'5)cGWWW&Og~8p  x-ulƼ``V!>I7bQOͭVP6RY5Ŏ`UIl n$}`8T~9AŠSH2}ǰwD?PQ ({Cyf.N4ΰ_āmIl]kPKaO1-ą3lwdȈu3׮ӳgOME,X@ٲeQ%x~ ,, FC۶mO5R2zhF#mWVZT\4ٹs'Æ ҥK\jٶmtԉjϹ_XM>" Apuue̙TV-My+LرnݺQT)M68qbsFV|ۤI>lq"#!D6o{,8-k[*‡ %B2a cv ]nj-EL&E%sEȑ#9luQE3bEshV fD[#8|/mj _& ~",k {a:ZxQpO|D"BDxAGZ'a"x !DBC":ܗ*Qb/JNgk[[wh#3fj _.&I/_곾qDGG˂ rSG5ߣGu傽1qD8qb_CKڵeҤIE `W(*TH⋜650 phZٷOU@_d899 !kaҤIr!IHHdǎ{Yi3sx O*(rܹ6# ɓ'^pW+Ud5OִRpҨQLc0bŊ2h W^)FMZf YY*8^pڹ6P"X_bi9Nz P{HsanF~Q|93q|4Xh>>>9bIG 6A n6h=p}  |')* R*٪ӀK.R_btPç& Z-4B\>ec_غ٩pGsqj> M6Y|vLOavE5pL6={/X~}AU4]bE_bС$&&RF Yp!W\wf׮]t:j̼~~"%vE*ׯ_>cڴiymJ֭[W 1Si_)S@wFL8hƍG-2ű|ׯ|?W^-_ؿ4-M_ Nvc0ze2\B.՜ۑUІDD^Nj)[[[[ 8p{ j_O 3fW88RX1FO JGӯz=!` 6#A⠍;\Ӑa' 7?!*?AyTc8D@@2.yFTg^ б)4WGgs?诗ա<>??T棏>bСTQ_mAAA1'DΝ<9sάY1cၟ_,8::ҴiSBCCiݺuh׮]TV-,Ç?yf9?~<:OFJTf'OpĉL ;wdzzlRs,;S:%NQ{j|- DV&){4m_V/;G14t:-M4uF}?k?{4GW]FǷy4_|T{Eɲ_na4ٴiS{`='hso#'mx7:B`بmV- jy"mkk6P.!BIN&F>N˖og2}XX~-EaÆ̛7z3Ε+WReиqc$B-0`@|m0sLFIiݺ5<`NorjHGаv>dgΠϰ0r5߄ycãI!J ;H =A"UPUAMޔ!ZB' }f\J*~'S{=9YgwPD)nnբE>hdž _Y0pm `; &p LZ%NCisH. YU^sA`_Ū)0(%(WyUXEY&< bNOXa|~}{[cқ-[FHH,_РAs9Axx8ǎEՋM6jn>.]вe˧ڋs;VZEHH'OTRۜ!>>O?nGl(l!?Sf͚eL L0ӧO7s;;- dv+,Apqi =&%HOs@tʇSm*(U[BEȑk`8Nli:q"?kמ֯;b8UW/Fy-"~Kb1W8~kvzdVDDɓ5p~NOvO+I> !%k6IxQM$\EWp\"j/#Ei c̿j[)>k1Y!],JTqUC_'%\Kx߷OA_}NOC졫WGwlҥKxŋJLLG}d 2~HKKS޽hl/"""l7oެRJٞϙ3v1;v4 99Y+W^LL4iҤ?XZnStQ;v|f)4{mFG)((I6ODz2ofСCe04zLm;ZU|y*%%%k,`0dyFȔdK*w"6Ȯh:\%ѣ}wJJJ׋fȾ&jVUjϿjϿckQFFI$={]=z͗X >~K|NLhS!!ct<3MQpwJbQ˖NθgzX3ECӢ^"_pR2hk,q}Zfh/H+1&Vnm}ŏdjħV9dȝ6=|ջwo 6LE+W**]ŋw_v޽o۶M ҡCUV#CqT,Zo5nX{趭^>K>}Zŋƍ04i.^k׬}۷oW>}[o)**J԰aCEƞtlܸQ+W|f.^?\ׯ_ܦ … Aj+V;s[oÇgɆgJ~}\3**JSLQJr+2uE^X|!ȮBUר,RHܫoO5 d*T+T'^0͚KR"ǩZ~4i2SLfedʚPllEG'AA7$Dݯ[OK [h,^qEtZGBsE`J~+MaVqJLU1VoDYIM25YU*~zE[ᦷhjw-]=i&Y,]tuu.yD,Y5V\Y 63| >,76lؠUdɒڸqc/~ "Sk{%5UMP*和]2t[krT.~joꝋ˳D>5{'4z?|hD!F; 0#,7e&;"Uƾp. LuŢIv ?g˱N†wk&vMBa,ݼI8οR W1$B2Y<+1"2/"bՒzGﳎS 6C"D2daET8|[5=MRyz7mssyfۭ̙3]NRe2 UXQ p%9ӧU|yߟӂt[{1yd˗'SZ3koqd0 IDATeKرC۷oD޽eoo֨Q#UX1O׻n:\)Ţ$(*%UՋ[{Niz|#0(h2[WJYﭘ߼[1kQrۏZ/~Lf>X&=D2k>y_ܹG$B{Ӫ, 䕯mde}NV ARqE:ɉ?'9N8no(tF1buiīm2|O2q9,cU1"0[[XXz5kbdH݄bUT)M>=Gsg6|}}eoo/!C؇ef!K|o|O Ν+???]t)Ӿ͛737n<<<4m4լYS]vݲe;TԟD\pA'O|h SNU@@)FLL"T^QSڸqcL2{)јv>ǏW…s||J8: i%'g|.|mhcbzw;$s’)Q4~/B5 ٳ`l'v;Al7y+df03o^h?p9p'$n .|,qN?M*O 9|gHM L@^ibzAW<l2F*. xŤN5!8iH-EA t#nzŀW7pjH=yunM8 ̭kddD!d;q|Mec"r9rw'Gc޽{i޼9k֬Yf:`0I=hذ!xxxxf?c@9qQF1|p[`x l'8q&Mп, X("##oׯ5gϞHIL0ooo:wQFj*)y:u0hР\>n9r}2cƌf>4ׯTSN9"7~~{8pݻwѸ@n"bQňb g$>H3hw^=f\l]x]/ɬVZAc9c߈IQ6tWIp"& J f%];~bbRS32(Kgp#ogmfrUvOND;H5X[e~ Er[DO7$<.P$0A'Eİ "Dm1SZ>AמGjҤ9edL&ٳ'7fճg\|rz$ݺx=u/_~ cVa2K۷988RJjҤ ? HOOWRR=I … zoաC> +*)l*_=W\{ bud^Y5D%gNY΍ ϔfºT ħ6>tCA+s/iڴ)ǏM+SgΜ.]v2uJ |}mZ;!(q us5c,Y;R>Laqa+(H@Ab *{8VZ]pPl}f/p=ƆP4Z8L%n\\0Xu5o˳>|Vj,9hdɒ%sAdSb :tXر.ḁKҫW\ۛx뭷4icA}EeĈ{~vvvoߞN:QNKdd$_~%;vbbbY&Ǐ'$$q?Y`ib?q5Kg~p9sל)TPsuA ]bގTgiEYCt(iӗ*/48 ѵ>P:Qr;TR%ȉ'С ݻG]:uWހsK w•uY a1R6* HLLY`[UBuX0*lV!F`0X[HGbNud i@~<; FjSplUس'3e1Y>%aU{CX`ϧL2}:-zbW?͛ '",X5jn:ʔ)yxN''':uD͚5)y Ĉ#ضmcn[l۶ *k׮mJpLf) S%J.\8OOyD 5P%<:2ڟG.Q&m.{QH^μȿӮ www~\]]v-1ǥ_ڶmg}K]7rJ"woP2^P| puc~^_]%gp{DZ a e*CQ6_U01O&5 (? >c8x |.@\;a#i8tĀ]~uhKGnS =w*,nn~ydԩStޝ%KPBo0dVX)^8ǏDmFÃӧO=/2իWgOD]>UmܹsYt)֭#44ϓzWsQT)/^ٳ1bDX,$%%=+K.D|wiӆh]W槟~b?nso&zzk׮Ͳe˞{3f*dWc{ț|7D%΢_O#Cr?Sy}R*&+CJe e ={d22LQ3v8;Zkf'~ҥK +ij֤bj^\v=li- |t9=Đ7Ass lg$z@TA׀4XrĦ]*-E8u=>&PD \4G𯅃g:Hmbs*7n{^7_ 八kb̙tЁ#Gy~n@5)S &MM6/^~&)SsU\\\5k+mڴ!$$;v X& xk ]tr2-Z#v,Y'Npyϟπ5jM4ۺu+Ǐ'**h[1TT;ұcG*Ut7WaÆ; ^x/_N˖-^d{a˖-Oty7 ?HKK?wh_Çyp{Al̂{E?sPh/m,_DkӪJKϹfӒ%KNr-̿ηq!;v( ~ߐ+ћ Of޲ˮA?5P{%^Ho DA Dqw'E@Uqp#^E]1I"hp'8,J]Rp~k qa ,x~?8Q242~g\EDDM3f9Ell-Q H +Gx6L2{Z:7oζ@rrի'ѨŋtZbBBBh+=.]u1lJ*:uUVzWjȑ4uTu]^^^TT) 4H˶p|3gf8O,Y"ٜ'» ;={̚ިQƍf͚̽0ּ_M}ޔ2ңe/s#i2YdOYYvqp? *k֫W_*< wL{~Z3$**EZ:9; kzP'1":Y.a&~L}dD-ol*{z[DAfG,jUd"KvsLz&o/L/F=t=&gSLQLLLm2LzUzufEFFBk&j6m={hȑ믿t9=Z>>>K.c̙m-7w'&gE QBBf̘2e]ݻw׋/hx fPiժUӧ ( {Gռy4j([&_v}vZ~Cؕ#44Td٠ (QB|6%HOOV&AZ3kO&z2224i$*THFQݺuXyNL+Q׺(-ì S˲XLOߚre+ue_0$}s*ƨTAx p!YjGyx>#EV Y9O&@/3%KXfy]>"e&IZԽ%o`?Ex\th*_E"_(&N(|W[̋ w(kQ$^^iewL񉕨1^;Ȕt'>}0_|Y{b= *>>^ݻwW=ܹ6Ǐ/777IspZ Or9cǎ PÆ IjS&/Xyyy8;EOTwVZz5w\Iֺa(LGVQ###CIIIOH+WiD)֋̚EΝҥK`0yHgyN$iw+PdٳOt=Ƣ׾Skr5ф7%{i܊{j5 s@ gغ.A ̅ kyX6zUrJ31L[2AT}B>?*|6t1wq5ӐևK@ lY }] 9Azl!%`!`6HN''-Z  $-rPKX*XS[] ,m 6 o*UprH\\\Ν;SjmJ`XXln9X/U2wAի d֬Y䜼CI'vٞ}2sk8\ȘHZ0-@ݺx} 9X,f|9r Mk?*σdWC"-`fjPe U> K67o" w0L isy}; ,~#qv  @l"$@ -V})/4r~/u_ZX$\ EpH!  e*7LqJX3\8^'jx1ac' w8K@Y$&&rBRSSm`J*ܹ'2vXٶmfb…r####a-Y5kMɒkzԭ[իWӺuG*l25jDjըS#Qի̟?ѣGg$ГCѻwg=N<:Sуի7|HAK#7ٴi'NwֱQg%6&%9j,OꢙlԘ$ H={qi'VSį3Kd! =gpS^&q8Fh6A6HJ  &ԬZceZi%x:B|1)_wma|8 7sa(R ܮywCypoUlp 0sCpJa^4j^el^U 8{Cgɤ:_;7&#:ê SmkU;[o||<&L'yشi;wGQ5j 11Sn];:v1L4nܘ;vda/#S‘#G%~ƬY>חf͚mLEDD%q?lْP*Vŋi߾4Tר{V^ԩ>uy?aR ϟq}<YEٲeIKKE|xzzrСϩC%Swf;e4h`xJdt<)"OQ2i{Ď=!x.$/i= XW'ifH+ 2ؗp( Zp1 "l!8PZ;¼K>)0CeL+1HVlcXZa>vɜT3w@4[.ɗNCB#`&$ ek$=%ly*Y<\R£a?]z4s )EqkaGt./ t)L*CJi7.]9u]g 0aZlɾ}mXMXeR1͚5ɉݻӺuk.]ʁ(UTyX6lX&= ϟ-AAAӧOǦn}uΝ;g#S8;;gUxb:w̡C(W\)))[|OeǍ^yڴiHZj/B"E9pSlժUZuzg7`00s:0`YǛXXȟNOsg=)مه~&*1vk+P:RJ| 2ր{C=9 6/ N?QnKJz`g&fZԪeU$K% 0< .Xl )I7ꦅǍ`(d& nPK&HS๦T8Vc 7p +.I/5q$:jG6ɠZ8ĒƷHMh3߇d~7 C‚y dժUQo… jՊ/_qrr2cƌa˖-˗ھ};=z… ̜9/"K'bcc?>۷oh4ҨQ#ϟ3ߐG>lX,o%ڤIO۶ms\K/đ#GXl˗/g۶mX,>ٍl߾=D̙3'o%\x;wfӆ{/_M5)Qc?~G3QfyM0qD,YR&)ӾE=6%m*z\eeתM IDAT` z-ݻíB73 QY3>(|[p/\$ Jx% (iGfTx8X tzr3^{m cuj'Q~CCpBe kMZ~_t*vZ3RFyR7Fʭj uV/x5X&iU7_m2vWƩرcg%%%ei_n7o\ ׽{wرc*\ sŢŋxrrrRլY3խ[Wڵ6mRzz=:wƍ:u۵kӧ+66Vj2jذ.] "٬kתZjwevړ˗7TbM!!!Wj׮+Wd{YfYgΜK5}teKi5k֬mFa2m۶?|( &$$Wf+Cf˞ŋgTBy\㑐觟~ &,hrZǡ)xEW%ت o-[['OFw(˭&#)֪]bmdjDU*ox.]* |9w'EC}o,YISa|i_9CA-bb("FZDSobD񕘜h%U SD3ب0y5J%f|ᚓNTV5X#ToHMMU:u4v,˘1clsk?aSȾ۷OǎS߾}mԩS6-[*,,y._>@Ke0ﯺu꥗^;CZj 3f(..^Ν;xb+WN111|'×^zI/#l6իJNNVrСCʟ?mk?H6DDD~P֭m_߿VZu_mŋG?~|_3g(!!AӦMˋe(55U˗| Ç?n3˗[u8 2S󾶞={Vjܸ^u  6,˶=Zvvvzzj?4i&MK .觟~&t'_|ڱMN}3s+3X.KŗEDg ʢ'['WJ9a*:_Z+E'[ۻEX>JPʞ牡fsUKE Y˸8% CΟHҰaD}`%OAۅd*Y.U8"& p񦬭g&yE31M$zFܖ&JN "SN%W~sL Q5W5(N/UѠN9+NWڰa<˃? ЪU԰aCiFF֭[m}Μ9ƍjժw^]v7D5?3999XbZhQϟ?իW_~ѧ~={iӦ*S:tYfH>oge|tFf{;N]/%wXHXR8G#+Y*n uGp ipe | |9\m ,.u0 eTU#P( Ii=aú`,ǟKק"^^atXV@U 8<ΗDD%A~8r !,70(] *kiűJ+\P|0T $paR\8,.xt''QÂIN}3n -YvB|H*u' *Uʕ+.d NLLd$%%$ZhUxСWݺu[n5h+WݻwSD ʔ)իg{ 7nd0nѣW 4ڵk.\8n7uɒ%ٶ522///ʕ+1bm۶ٙ εkhӦ ϟ;x9syݺud߾}%44PvA֭ aqʔ)s^fdd~nzK6m;wζ= 2VVǙ>}:qqq-Q`֬Y>}mNqß>λ`&k"RGCaӦM3|Fӧ{ >MMlܸQ$ƦyUI8u?KM2Vr[?^U3aڌ\$^խ / ;gꉪS ZχͶ*#En.|(yPT;'j].kYG{gp;*^_hV8v@\^rq>al*JIVh%- }Qh|7kE7b[nYw0N}6YD[(G{U1^1S\F۝Qٙҟjr`ʟۯuF& t׼imwrޯ\\\T`AwxSf:v/⎵+7nfj׮}W7|3߷{њ5kdXTzu}:zmذA˖-S6md2zj-]TճwyfEEE)==V2LJOOו+W˗/kǎ+Vhٲe;jΜ9:pرCӧOWJ7ڎ ڶm͛ĉڰaCcrChnnݺ;믶9r$Ov.^ɓ'gO>DJHHd$&&ދ͓x'3Fp>ϔ<==ɓ'kÆ OdooyGL˖-m{KlGrJRB1C$s,L+\#M: ކ]? /q>ʔ/w8[2AI ;AC4^)t" )8]~M_ G%Aص&ٝWhS{fժXR>0yuP5zE9 L`j=-cUKm1P$T2iR6P};6q9\Xv=-*َ$1Z6Gaʕ >8NJjj*['''J*)]4uԡ{O(P?Gk׮x{{߷$>̐!Ch۶]5|2`Ȯ]hڴiZ3LzQ(/^oFY㥪eWE4 am0V =\x -z˜>7iJK3xfqߡ_g0E߄[T^T>(JKG߄ ku\qSo+.QLr'i*\0,55 3>&k!f+z~K^YfUjӦFyf(P@EܹsJMMOk H ˗?SW\ٳgUjUUZU'OTtt/ڵk:q$=C`m @~]pAAJ}/͞=;O玉ѩS7ܷԩS計`>mX,z5f̘\'йsȲ#:: R,3UpaFM^ZA ,V%/kf@pm^fʶX$Nv{ \g'c:fo>ITOHN4a= :Y 6׷ ?@"Lυe] \_n?a~KJ#`oF7āN8Ԩ NO0k;phcã>NI!!zHTE.RKQī "M "RU{BIH%$ # I}y29s̞3gkƩƔ/g`45.\re%LC ΝaIiz6dx&lߕpee(Uˆ>˝~JW:4l[4Z#w v>GJMwcc*&7峯>F>}Xp!Fj5jxyyqi222pppaz`pӧs߾}{;/*g|\|˿vONŊ7ooo&O͛7ӓ &p|tvvfٲe̝;~=uz*={/("^I&YAnRhh( ȏ=+V !!!OQ"SO/ ڢE%^Jk։K;tcVP^K{l9;:gR^*> _<\z!p&]Q8` 3G'&%)#~(pP؎R0LxQ}#a#Mm8 lC"DSðs?ĸqbbb O OFI0, |e[s][I*F(Uiu+?񽿰:Iя&ڐ@Y/ @qX"}Z&d' Ƙdz>3gPti6osqrr2;RFt}Z-jӵkW>+8;;H@fϞٳ ?wyQ]d =zW^;I)3|Nfɓ'y&ӧO7o߹s'*Tٳl2-j;vݻsȑ

dȽ{?#?^/_6O3xwAl޼FCZ^HJG>` gr_Y| ; 0-Una#[8K4ȔԐc${i]}M=hRTZltb̆`Uo]Q`4s̉:|XLP߅kn ASF0,ڂ,MѓSukc!Cy0}z6qĔ?ߘ*C8f,_:C m]kT3˂0;*O[0)1 N܁ 1ǨMس QQŰJ*?0h vepM֭[gL2UHddd)" 8___fΜY +++,YB ٲe wgk>}X`&!!˳c͛ǠAL)I1bV1 $U3ֻSPJոɦH<8!k %cE={3+5nCVpow_L>_(XUWp YM@]-AiѠU ,kCrPIZ[p2mp6c:@VndgPۖ;%}cЪa#z29QP=@_u.wp,PMXnϚ6!c?guCTB q=TC:u6lS;SR%mrVN:uj`kZjtԩwT*>#ʗ/ҥKquuwww<<<^XY|9.;w|쏐"Æ #<.鄩6j]U ([~ڑ;.-!67!y)e?fAV,WC)ovI6+h:t3h=^/ %?](F)Dېt !X~s(@ l) tիs%r`ܣ! QTꔀ~84Wza*{@x*+%R; ǭ!jia- ˤR%R+S]u7k᣾KX8d̫-=6iT*~WvX++WɓEGC `ܹҞNc7l؀h4v5ڶmK۶2z*+W.?z#F?FRp%sdZ?cŅ3GP`** __'8t"ق5/ĉ:$-<_dGɋdbJސ/G.P oA׺%*0&@H _a ex"Ե#XՇ ` hg:`rċ\X%).ND/@XNc@Cڇ"-C- \gM,85 ʄc\?TB!&A[J2 %ŪQ'i0R+8%qԱ6[v*$p/;ՕMvZ~7lmiO777/_ݻw9}T!RzuW^`Yf͚L6ߜ'p9VJ 8s {嫯*nP߿[og$/X^ϻヒĒ%Kaԩxxx(9M0l0Zj/\Lf2 IDAT$,xΔʞAA~ڋ G%QN?tP"+QQQ?ޜW<<H Y- qV }jU-oFHVRAr3N½ʰ&,i|2 `FsoiӦmۖX&M􏺁֭[׼B' ޽{ry222Xt)&UVgg֭;yɓnݚ۷ӢE O>oƵk3fL!29w6669s&߾ʯJPPUTy~уe˖1dt:yT(\iB'G`_rKN4TlSa~<:niL會%Ǖu}͛c h"Մ.9; 6*BO[Uրj }B\lY'IyTO<ݻOT+dwC?l. ah< :P\/Bb*VЇ܉9h-ؔel*BkbC ;4&TC u ڃFmMGp5.^oћg}F~ر#W^壏>}KLL ~~~-[իWTJ#,3դYXJT̩TZw2eq,Nm`60j&`: oRr dvpG3VRpBJ['̄@ `9 uxN T!8XLّՉ=Z@e?C/d˔GjL> ~ɄL0AfO~cK))}VMTOewjSBET?T[JSJԩ}… ѯ_?Ɲ;wPT̚5Kzjժ$''Welmml/7oJ4mذsKM<֭[s Fŕ+W1bÇO>deek׮T*T*Ko߾Y>~8 [3f~'~&NvX~)_VX7x-H8jԨΝ;1b0+M4aŊ+W.϶&L= 2g&$Ao)q*Imz4R{WÌ:W A#L sa9pdp| isa{=`0@נY<|3 a @3"Or2X0]o!: +/{¨*-|5Fcߔs3`d/ 3^^WiZj;?̝x\%q!lZL9,>FOŋ69eo֭[iӦ_4̙3g8uھt(?̙3III!$$ƍ3l0-[ڵkԩK,lٲԪU kkk@ɥXx1Æ 3o+hT4_6m|2 4`>q.]2~k0`W\aϞ=/dŋ ܹslذoo82eL7Z&66hD䥻f߾}nݚ< 6nݺ=S&M駟(_>>_*? ǎ@&O';K@͵fbaaH`Ϟ=jMj4___Ǐ?}Iɒ%%,,왏5L2u'ֻ|HOO3f'Nk qss?8mϝ;Wڵkg;Oh ) EB]Vp 2&%k5 3(+xBPvWs cYZՀb鐲!>/Am8]Jց^@ _REj!|%D T֠m *wdPb&ӣy N)> kT[Mi׊?^77v_-zA9 :;@jSe.%wжHvV ߵdEe+kԝ T8jsohذ!uyZ >>>6 ]vѻwomСC)W̞=z~"##YtyϏ'͛\2yݻz.H[׮)KHˆx.z%7… V޲e -Z$RSSso48q"ǎϏ z꧲gڴiC͚5zs)}T*|GYr%Æ {!5j>O?̙'HHH`ժU̜9:t}K.ѯ_?֯_';EB) }%P*Zy=,0@WJ9+žH 4ApM7 ,;@J\ 4p*h  koNY}JS)|H>wa?YF/9W6m-dݠVCRK &*9CHiz++@>XX 6 yG䭘R4ܛQ ߌ(t 6MSS;o`̙Ԯ]e2r|瀀ƏOƍ9p M5k?FDfy,*Vի͹3]vQF 8VZѼys/6l*U>ݝ|p~s1N> QZ*WlV$\+WbccyC8p֯_*UO>ԪU wwwΞ=?5jDpp0{Elmmy)V31o<ufee/۷yw.Y'N}v|rCZͦM#SOC;Sv*&׳D$XGA%yKD@ #KɊ8c\>rjPNAD}b{}NS"I`_I ,+`RS88$kF#ڵcfEѥKVXAll,VVV };ƫ8;;?Zc\UEdJ1,Zgg.u_r%ڵ׮_SN}nIԯ_7o{nfΜIHHWf=V?+22k׮ѳgO>|W;v,~!.-[0gΜ[[\9.\ڵkcرš3f m۶y渺i1Hrr25Bә5z3emerjQ(Õ[ځUUi Nap,Ly,0Fp 0G◡/*eoK vVXdBT(}W"ПC8X@tOiH F=E `ɽ h .pvz2jAM@D8 cjv1p`] gɎD\-䙄FkħMwu U@EGqJeFYrX*_Q̙CժUdذa/dٷo#F`lܸ񅴓_tռ{Qrejժ={ JAS&Mlӓo1t˗9{#6662j(,,,?~1 g%--M/^,EV˝;wEvIVD狽Tdmƍ'''zqR~\i:udʕh̫SRR?;w~ə3grzΖQFӧ%,,VNF֭L4@{ZΟ?/*J6lPHLL & <8_lFFFʑ#GPߟs!S<^W_MwBϙBCfP{[\ t*(8zQ 8f0?S *BS3fPը8VΒנH'8s6(]Ey8T.*zg9Ye u V&[B¢,kA;^yUoV?}՛;aJ{ vgP1)!0 1GIR߅2! $Mu(Ӑ 4`_`T`GU[]QNsš# Rrop)TWp<[g: V`ge8V0kbA ;^1>r$E5tl/4Н_RkSbbbx(V:_0* VK4 [ne˖ڏ'q}IOO… xyyQ^g@XСCտ W^):99tNNN鵓'Ojժ(Qhs_X|9{sά]@7nl~xzz>sh޼9D-1c`0h߾=!!!=+j֬… K~-t|7O+_:v(hO&g!ԗ :2q$-c B9"T/E.B9Y`T:sLJ %N w wS/XmT;%AB{9m9KZ=\ZҎcP&Us kB_ڥ y97O"|#d 25ED[J' Lg~_LaRJ%U{ddqvv>OER#Ehٸq4h@̙3lcÆ D4 z֭[r֭fh4Jɒ%͟H->\ݟ: (jkr̘1ҿ򒄄h42~xYf 12p@m۶{(ڵ{*fcbsӦMȺuDDqؼeСdƍb iԨ'OŋZ~d\bbb_~OOOi۶ydI&DliРsU++_}Ǽeڴirm_gM.*ڥ0_Q@hm, дGԊ` 2(]C= 8W|(sZVW;T;J)S~BC;/H{p{(o&} Qu w "lnLY5: IDATMOP&+U`ig"bRnM(Kƞai~ta]KC4 @*^h4jVX˥K۷ #88{V%22GG 4lݺ5kƁ㳲\t/r%]Ve"@En:,,,gBvv6~!M65OA߿;w}h֬ŋgӧ@W= k׎233_H'ѰaC4MKA9s&F*rc/E"!8:Us=]4-^Eɓ_b`D}ȎnS:jW*eS΁EN;3}LqPTr';R7(zOh4j_NNXhy3[naÆ <8e777BCCjꫴhтRJakkKϞ=ҥ s%>>W_}3grXhJɑDFF111;P>0Ǝܹsqss+>y{{c -]tlٲ-["w3gZoZj=z ^tt4&L`СTXP׭[[o\OjѺukZn?IPݻwgܸql۶ OOO  cƌӹ6664oޜ4׋}eO~ %n߾MFyfF% s(U[TP!OVrzhPlPAz`=YpIZOSo((!9iJnTI&`WIZ|'Sz@P :"G&BRI/&J?d)BdEaFPJ0C7SbmXHSҹL}#R58xGJ%=e̒wGx@~4tw[HuqSsΉN5k8wzIzz=z2*NNN2bswFFszޫW/qss{$ART)ws2yd*Uȅ Ε%DVK>}Ef*eʔo6mggg%<<<϶Ν+:t_]ݛ?6l(:t(͙zy(|5kzdQu||pPg&2iK`Udq̂q _ Y:~Z*M?In;PˉzWR{PD6u `%Jy +e&jGX-G|[ D*ݛ%@Oѝٍ_õ{VM4]PLĹlڴUrUs1ޗFqF#͚5cڴi/E}ٳ={v]x14lЬJJdɒOL4hҲeHHH`Ȑ!e_2zhٵk|=z`ܹ޽{L&̙èQpvvK.TT,fСCiӦ j;..';&MbȐ!re:wl. ^؈-*RLMM&'+ WW`9Qp1 |%b5 .) V L ,fsD:M1z7L1Dcx" ='JU$L5Nقz"(jYy"YvGJOMk"0 J#u,MǖRGV\ͱ峨1Rk򫴔ƍ~|41m2\Kb2b4eƍ2~/3gHJJ̜9S:u$T9r92_mFRJzn{lծ]b dٲeN||ԪUK%$$DǬs/$%%̛7/_͙3G.^믿@Ə/"t-?'vrBGa)Δȭ!8EvW>YBCB A;_(%S&H1YђzX1MFN)@Ղ,D-|`#Q8SE\*]a5s:a/| BB+V0'Z.oy'Ry9=\\Z~~0U4\"k`0IhhrBo&h4W_}U`e<)o#M;v|n=z5jHff_׫W/gnR|yqwwSNIdd 4HziR\~yO2o}2nܸ\ۗ/_K#99P_.;v,t pp FbMZ#O: MσBPJ`gIB+BkQ"LڥbBlj`.冇Ɉ#t)4#h V[."TFR>B_*^P#*T-E(ߒ?uB$aIT9BmψݦT?&TWeOr]inZ/7S]"GoNg}ɤ8TtΟ?/r!uV)loRRRQ<==eĉRD_?w>ȴio9SSS% @j׮L%T\"~~~o.w7g}&:t@ T`eB w,Z蹎߽{?~\C6{ldя1LұcG)^ ,x]vɡC 'Qt|QXF8PcEp|HnyCj ˪jb)e@W΂eC ئm`4 d@ygh`JL*MupP @<΀_y(]J>j&[e k\}.{ |ޮ[tL&Eo")wg[:wPƑc¾}9d*UDTTl;0LVJezfzɘ1cܹ3XZZnիU|ŋӤI9B Shٲ%ŋgƍl߾___eO֭[GNtEwww&OLNsO}0i$ͥws{1|p&MH.Jbo>|.{͛GFFG//7/͝FVQ+ %@!P@ * hKm? h1qwU u5^j+Dڂ *и(6tg ,b<@1sDyʂG0ރ{awRp?~3! cŠl︓}_)g眎{2:dGz//R@8݀N}@%-CwP^=8@Æ ht GGG.\ȔcC> WTXkHc,][슽{bCl (X a1JgYkr=e=3gOɒ%uj~t2l0fΜ6_HyPԩ6>>>o,ӨQ#+*aÆq Dll,K,|$''S\9֯_:~~~9s]vnݺwÃB ʠ~kkk*W!wyR(>d˖-lذϧAq@'^b[K BF&kiwlt*PG*1z^f蔆04U@aRг b .J#ZIPL|́ jSCJPF4 8 h|.RM $62c* 4ǧ|pͽ:[tM6رcԭ[}Y>*++zzzhGGGfϞksK.t?x fJ{=T*UN9Kիo,Oҥ}kٳMRfM4heʔΝ;zjΩa -ŋi׮c3gO?addNzR*M6ѭ[*5 ///K2e޺ryJ.{OO'O,=GKK7`Z![ ;1郋-e5'1`R*!,) T3[TBr&p5 QjÍxeA}#( 1AJ(A.:T% \׏"FTmD'-h8eFTSf#^:ybŊe8P!!!ٳ8p  ?FuO8U055%>>> rTZ. :(3A&02n ?|Na6[@Wg@ `]:u=b&5jMpr_k(05[mתiRm@KRO:h VFTذӂ9sM~nz>M#5*Ubݴn} sŋ̙3]gxhGvڅ5nݺ]jU8X+/P\9j֬Ƀ8s %J`͜PV-BBB044dԨQ$$$p1;FÆ s$c_~`޽Y*•+W% HƏ噣Օqrrzm#FPX1._̥K DWW'+Wח&MPP!N8YHf.]燳3;vM6pi&OL>}r$JLL SN}eTll,*=zHjRR?ѣGTOxF>ƛ}[3Vp `)秂|ayPqpw2 s)]]0v܅)1"O' )g$ *T˚ "d0)]smE/BYWjHb;.]:򧋎666M2e5j;w$00/⒫IbǎŋիWs5%Jo4qo۷o!,_M6666xzzO}vT6hӦ gϞA8p+W`nnc9srQHWѡI&̙3'㘶kMHHӧ8::d0`e|ƍǏ3?< ,G888ɳzz F9ӍAY"JýZ: H--:C|yփDp%nmǫPEc{| 7@u¶01t+j %1X'$~@ >,$!"؆G%03aR 7CrJ{%ju ΝfĉP̜9CT*Y`޽77rQ=T^^zn:Tyin +X`;vpԫW O.]8y$"BDD,]#G`kk!Ҿ}{lpmquu񿱛>>>ܘ1c2}aW=t˗Ņ`@s|,]qѣG7n#TV-˗qssT>Lu| NVf}{ajw@y .h8;@ :BtiJσ}NcUB 4(̠<9uaPBp1Hq'O/<2v8m"S;~5&9LX>Xd ~x:v 4 .|}}}100֭[ 0cǎѡC9rǏffkײv,+W={6sΥO>1=z䆙;tPZnӧ^:Æ w$$$LF8z(VVVliӦk~*DEEl2;|}}>u9Gv022bӦM,9+.\년摑ٓ͛SlYLMM6m'>>w hbZhi011ɱq)S1coh[MDj:y)(-ԩZRIw$v@: y;@ I!_sm FN6цH+Q^^h, Z+= u vN8lB+\jVʥ+rtNߍ=UTʕ+$%%Ѽys"##sZN+V ҩS'۷o\r߿9˜1cXf ^^^ԩSqƱsΌv}||>|8"+* B'5jT/|3`jO(dh_ D%Nu(VD` `؃XBxiD b!&BAn6A7JvN`WJqo4Up IDATEbgUQ9n8^LbS-.|}}fQ((JLK4 ϗv؁x{{gW?FFFْGpvv~YfI\~}K.ٙ1cƠC׮]̌f]SSS/^́hժT\9GF:AAAL2={燭mƹFӤI.]}^YYfk׎T6mDLL ZjST):wLÆ }6zBP0x`\\\ҥ /^DTұcGܨ[.۷)S̴iӨSʕȜO>̛"n`$~(T" Mh [R[Ղey(ξ2"LI& AyQcAPaUU&rh7 f 3ÄJ_5 0Dӷ޲@ǜw7F__e4MKG,]ehLQQ]B]jqTXQݻ͹s_~Vm۶&""֭`ގL;%22R֭+#FxvU*lReذa""oHٲe֭[K.RdI4hEגּyf)Ykw:^xQפIDKKK?r/M` [nÇZ___?4mT2۷Kjj<~X*'N՝9E^y#8S""))iR2ҙ+l(X4 =K0%N#X"X DZɂBAg`PdY^Д+PM44"X-OZ3R)Ӥظ{LvL~4Eȗbs7Q^RE x[n+_ٳ'n: ȣG$88g}ЩS'ԩSGDDQ""h"YbE>~߿_RSS\VX!>>>_Ç%&&/O85k4lPٵkW/jZJ,)6>]&?T*IJJzcBׯUB!ӦM{oCbbL0A3gI}]R%Q*%Ͷ쐗޿;3%yh:8YM-`|SP"h8SD"gMK "8=ӡoaJ0-0\_K&gb*R6>Y"}29Sjq*p,cdʡ1"mvVIٺW^̥ϛHNN$:Hjj 8Pʗ//""#G-[ZW:9ݻe٪3y䌗΍7dСKʦM$""B-Z$...VK.ҪU+Yzdن9s UTwFcǎ+++Q*N^FVݻf͚zׯ_l;bmm-͚5Ό3FdѢEb``D=322e˖}tUy9:Sfi`LhFy<ƙ)BT̔3M'3EX)PT5Bif bW:SgtG*Eg[nMb~4JǞmi2(qYt{YwL94FWח-ȘlOHHqIRRҕ'˅ DD[nl2yrA9~4o\ҥKri,Wl;vxhgllٳGV^-""ՓٳgK``rWWWILL|'۷mۖUOΝ+qqqǼxRѧΆ UVT*ʱٵkdKvƌDSҤe˖1cw ͛7O~[_F^{~| Ш1(@1(@ Lh*[p a*Hs A`zE@y͓0ROu;-JJ!YeHt5iB4 R i3 ~KKl %3}tݻ#bggGZشi ƆSNQfM044Ȉ ?PR%ƎK\\M4ŋܾ}ɓ'ȵk2ty@iv]4h}%>>$nݺEJJ O<ٳF&UTdB@__SNo>@#XR%퉊⫯"99%%% ?0vX,׿x"u᧟~L2]ZM…ڵkٶ)/#"$%%Qpa-Bxm۶֭[/^[fNƍQ\~=:::ܹU2h VZ)^8 f̘1tЁ˗~^3v 擇yW=0t^Ht\I`"MK_MaMNf9V{tس)GBaBÚ6D Bg)bf ? d}%Rc/^Kkrֻ !giκ2m;q.OĽqCV˺uDTʱc20QT)"";w+WHXXtY_.;;;ILL!CԨQC[QTȪUdƍ>#sSSSرhBDD4i"+V'Of?|:u*KKdd{iQDƍf5122zɍ7K.4nX ,٥;vԫWOT*Ue100Z'''޽{]ŋi6ӧrʇI۶m^zhJ!?G>YgJD$(A-}' }Â^Z .~HQ):)IlBS㿉P~:Jt( }1(7FG1ܛ U/Rm} Eh&7Ƚ9vS144KX|<(ʌ{$88XٱcL>]=z$qqqrEILL ge>Ǐ@v!...RDڑ,QQQ;ڶmܺu+3 ,==LΝWWwbkDFFǏ5kh<8xcӧ :t(Q"[qrjZ<<k n4q(tBfGP\u4k:(҄pB0щړ?;x| ZͶm۲oF_>+ղ_JBGZZZMBÇs}ϟk___Yr+2d 11SNJ.]HOOea޽dč ŋgوG)ƛ'LU!5ܝ>H Ы mF$!= c2Ev2U'!4zWW{;3`1#c, GP%-xO20{NyV)gȈ+W0j(ƌٳs|>-ZĢE]ޞRJe|߶mKg5WXAxx8ϧ}4m{{{5k… qss=* ~^hkkgΧDZZÇgѢETX%KjEa׮]L0:.3TZJl͎jP]7|W}/pR3`6v hv8Jv@:I} @GG@So*M:Z*y**&.CJ¹z-LM5zzzT*s!O(AAA/Q EGGGFI&M^ݝ=z0ӧOܹÉ'7n\~7nܘz믿fWL}$&&ү_?9y$syo}J+gJ,ҥKy~~~cmmmڴ4lؐOf&OLbŸz*eʔai˗YxgyO=>;Ό:QQ L¸\ !p _ں PIT<x AJЩ\+> z^ /\\Uʧ.?_y*VZ333ͱ`޼yԩSeZjlٲ3g|Vjĉ/k۶-JecW :ubĈHALMM!,,B eN^')) ۷oʗ/m(X t S(899ď?ZFKKk׮ѲeKj֬I֭122ʐ yyw///&MDHH lٲ5رc޽;{TRK.s9HNN&))$RRR^ن!!!2g&Oc>{w~KB ܹ37ncǎo5͞޽{п~Gf֬YԮ]VJժUߪOKKK>̡C Օ/[[[7oK_^ׯ|򄆆rݳPNeÇ?x.RٳTXPDH=‚vvvٳׯs]$99t '00___VZѡC*Ucy&K,a) I;E&M$%%%rZ->RlL&%fA@r^# FhWY/+8{ kt~Q" a3}"}x!'EQP-kwǼd١27l4PU@q?=!A=Ϻ/;wmR>ؿoҰaCShrInޘn(111G_ɒ%K~2a~ }'$$H޽3tEDd޼yȑ#sҤIl#@ ܹsD""ޜC/7nܐsz_ 4EVARlُB8_g*eH"""(Zhxu BAr6#\ N5ACf`h ZPQ#ypD  :bmBKSJ}+lJ}н{wΜ9ѣ=zt'"YիP(r իWhѢ65 :ŋ3|%rJeƿ?766tn߾zzzT\CZFoooLqo,#zM׮]/s#",a>'[1SÇ:U0m"To.wV݀):+w1| t.A<{듊V0"91 WnŰLvP90gu=0⬡P(044_SN\x1C:Oݺu3bGj5<ƆӧO_qI<==dxzzf|SnqAGnݸ|2˗ҥKY`K_AAA?~˗Ve ֬YZ@RRUTaܹ̘1˗t?^ϟ9.|2uTDzWdMǎclPJJ GKik!!!e8Q E ZZDxE nhb'-$Gly$IstWH_/6TU'Ȫ>F*;G֭+j9]8 _~g166L[j%Z5'Ro>FIRd˖-/d۵kaÆL>k-Jv^xTRF;$%%ERիÇ9[98+(J9|̘1ۊÇKRRRYTJbDWWWFArUV:t(?f*DΝ]]]xb>jW+, q]բj)*QTRbZv8IJieĦ%V52^S?C6)gϞyɇ6 **Jz%TVM_Y611QdС/ \s[nH.ljj*aaaܤbŊ/ϙ3G% [i˰aDGGGYnݠ>0JR.]$FFFrҥk7,,L+&DGGXYaҲewvΞ=+rLǯ\"޽_. 6@ZlB;F)o\C(zހAW+ESej`[qF[NsR;4x:$|,_ 繁VVVXZZRfM *޽{3mƺuN:111/;vǎ5;--5cbb2uܙ]vammMժU8\ݻ Xb*U*[iˑ#G2riԨQFiWTҡCrue7]v1}lOKKcTXr-[rѶm[8vXwTxx8jժr!ֹrTHXV IDATy2imgJ[[~1gܰ郠P((eІ P &Ԋ>`hqKbzZ㜦/9Ǔ߆Qg9J˗ 3/B \Hv?)ccpIڶmKHH&&`j*f̘A(Q =zG暝w|FGGgKJJM6f D۷//PRׯ_gРA۷Z ͛ё֭[Ӹ7gϞݻԬY9[OD2d.\[n|jܽ{۷ogݲJ@@K.ڵkpĄ7om6ꫯpuue֭,X2eʰuV͛͛7sjX91SNcǎڔ|˛^5!SNͲfL^!1Q-a+c"BϖI!R-ևBEgR*yCisqt^U wAˏ 3g% iii2j(2dȇ6&--M/.ϴgϞ -W>>Kj9~|W 8/OѣG&}e[;S"Ir,0c@WbQ-w06T b'QEA?/K:q2P T c&H=doPG-roq$>-9˗/ Jbbl۶s?nݚQ !Cn 4iL4)KJJPb d,E@)"]vKV2))I'|,.\Ν;|7Ȓ%Kr|ݻw%888W6x?~\bŊbgg's'L:UgFhhڵkߪ[nM[n}fT᝜h)Ul޼9WPjH-ņ"| ỵbq(?ju& .+WB!XZZJ=^]sN}}}Yh1BX'00P߻wOT"f͚'''jl۶MeС+TRe˖JYEV̙3eԩ/=b lCRԩS%&&sTᝢ3-,,APpqޥBA09H-jzDڠIYrb]9RipNf {}0㊺vJZjժ 2|haaadgڷo_2?3_5uaذaDGGsYN>:::Y&S1c1SƾNVO=… /|جXXz5G},X WUV,X'N̓8vXx$ RRDD2Ŕoҍ ̛7Fh>o/^X %444';8]-z;SDo-ADqhmVIˈb褸Mtη7HkrX]R^?"ϧKGw}*r-#_5̙3eРA*pBQ1Э[7)PkgqN*/ԩt)WQlY1bhRdH֭V&..Nlmme…I+QTҢE 177aȱcrVeر3Tr]C_.QQQ3Syl{ ˘ei^s;C!To fS1s 9VDZ/eu[Ɇ)φ tAOO1ć?P(~h>:i֬cǎeҥ\zT BGG~cׯݠ}ETiӦLǻvJ׮]su,۷HKK#""uYlիWgԩꫯpwwݝݻw|(~~~rur劤dۦM1_+8;;gn۷O̤L2-"-[EDRZ;VBCCebff&'OUs۷o۷ٳRV6s s}yJ%\2GɱyxxHe„ BVKtt<|P=zr3SysDD;&ׯ_duFŰۈV!_}XweRYC(OajٳGJ9R~m{'))I>}qOIڵEPK/_?X"ȤdDD/9s-[V֭[,Rn]@   B!*UsΉHHH3FLLL@%Wm-bccEVCD>  $%Jxe񢧧'r111)[l)SHϞ=vR@ A@ZZԨQCׯ/k׮d#"p;;|g*ΔFsRJr̙w6c#$4Ln<).2F֒[v{ ( NԫXh,\PdcbĈ4kLƏ/s---=z+빹Iʕ3{ѣGCtuuf͚Q^R7㘯D4 ###SIBB >>lIJeF%UM,f;ɔ2m^e{kr9)P<|P]Z}Oy*W,-ZXkѢKgjl۶M)"r]9p@f͚I^:0m4ӓYfIZZ9rD9<+,--Vݛ\xxIݳ1!!!Om1c̚5Kd֬Y (Mlْt:u ݻwiӦI^N:RPLԪUKzuXT$ ,VQ,VUQX[`ZnW0;X?b+`"b( )1̜,!1u]\x}fΜ>s֭[ӧO&$''cPWWǸqlX,F^f͚B7mOOOX033+sENLRS`*S4㑔$ D1)`vӓADp11m9?o氱0u{*1kf44/ӧÇ/(@DرcG@xZl pMb "y4yѣGY<'TC*_.ѣQF?oa#=/ BOO_͒ammzi&DDnݺ?~֭[CCCCf)D___,XިSTlGhh("""Pz2{dM5VײeK|:u^z8s >}*S֭[QFn'ammlق{|1 6ۻ\pbJuoϟ?/|mc /SU4IIIرc=V\hXCq*[ "3mѳgr=ѬY36!{n|VB۶mvS111 :R|0`W^b\l3gjժU H$¤Ip2\[nrC$aȐ!%fX'Tԙ* 555ڵkܹժ~ijժ}6Kj׮ѠA$cBݺux< %%%ѣ)&&FUiӦ͛7s4m4jР[8N:ĉ%G:::W "]FW\!>Д)S(%%\\\HKKА֯_OԸqJ[Q @@~~~Ըqc &777x"999dkkKSLϳuh̘1TN￉aڵkM<4hPdݻ˼QLL cb1#a\^KKRtMv988(Y=UYe @JˋHTM۷Õ+Wldzg`ff4:uJnoײ˗h޼9q߿?FU:XDalPb1ƌz%JH$455xyyy?m9 <3g΄H$ɓ'0 D~ ś pev?D@"Oڵk BQ^b>Ub޼yr7** N} `ŊxI}v+$c}7n(7bi)ċ]~PGwY6mТE | aaaxQlll }PfR`ƥK`eeadɒBeaԪU Çg3/^ͷڵk "*u:YZBL8DCZ agJ...RH7oހa2?7? Ϟ=csbJubJUOٳgH$>*Cvv6qmOU6a׬Y{|KqBAD8uT剉=444U~w077۷c|5Ew >իWT5|KKKۘ4iw3,Evv6^|5jZ2֖ܰaBm۶EΝe^˗/֭TR#455q ?-- 4(S5qy===9 {{{899a8y$ܹ`ܹs1'TN8z!11QjcV{ Ȋ@wwwT^9998u<΅.\(MJJ ܹgggڲ#mjjjptt,/… " `mڴQCOOO% 1}tH$3 (^3۷/qO . ` "t:::PSSy,[HH5j_~?fK$;v boߖys777+EMÿիWǔ)Sl2L6 ڵ+Qjb&L`8SBTRRv aʕ m0LDy)p4s΅P(Ĝ9s;ِUyQ,Z B6mժU%,XӧOL:Dsssxv|a <FFFty-{Evv6߿EO 0D޽{y?avZ`ǎ ˗~455Ԯ]4< :uTv|>?~ӧOquܺuĸGNL S_ PH˙~lի cl͛7hڴ)BCCqyL8bXG)"6m +++,YDddd1"5Q~ڊN tRtRظqRMɗFNN޼yHCCClݺ XbB0uhs 0rBEK?}9s //O!Uݑ&ج8|0v"JsSBԽ{؊ƺ}6Gv/_Çx(N>'ȏ'ڼy3Y oool۶ Ϟ=+T...W";w.qd$''5lC-7CAKK Dvڕfy#//fBfׯ_+ڼrS %JJJ -[UBOO6m* H͛#::ZavƢjժ2]vPn]t֭ة)Ab ͚5 ;w%((􅢙5kZlCuFW ] "?q])  qQmD: :.]O>m۶aȑU>|(vϟ 1bduj@\^^^xK}JU5j;U$/ҰrJTV prrbyǏRǎ?lLKVZh޼9?.ձ+'T)Xl\溯\X !&&^‚ l?ӧO64iv/W׷H3["ѣKڲA}p֭B1 Bd}Z"30 u֡_~~a޽H$J_ADprrRXz5W,ZHP(D||%K`̘11b444kkk=u^z>}:n޼)҈e;L<666`ZÇc{AAv۷oADXfLsET^͚5zjlܸ[n 'O.1ZZZ8wTƓ5ɘ?>rrr3d:rD"a1% ݻwݻw6m㑘X77nx<^›7ovl6455Vl "ڷoWWWٳ "888ɓ'2/׻ CLL S?~jjjȀ'Ο?J%wQ~3cCCCr B̛7D eibms̑mRXbTzrj,+>Ė-[ d666Z*[SʏR) U2w dgg+u? ttthS8ʀH$B@@>GiiiprrYwwwJ+Z>}"0|pl۷oǮ]{nݻqa;v 'NΞ=[Ç "NBݻwؾ};dmm hժ̙P)S 44rJTV<==Y+:Q>|9ZnC"88rҤ ۻR$&&bĈ/TƢF K|% =zܜ5kVкuk4 'S@W̛7cbb'YYPC)G[}|Μ9عs'AD8s |||P~}իXv-|>~WZhÇcС0`z --rֶвhQ l'OgΜC!!!~5˗/Ď;O)S!Q^=Ku@ԨQM6PU/_@ `E*`R_~N:Çx+֯_=zDիcСCǏ (?z$\0 o߲91(6nܸBCBZZL8D"A߾}xbbaPHZ صkdT^իx<LMMѧOT^8uf̘ {1zV'N@BB8 puuń @D;w.޽{cǎahh?~DV/h.=w\>|GALL\,\u֕\(:uBzzz}6tttd^Q]^[rrr0a|1nܸBӥ|>w܁%kܹxa]mFjժACCS*Ҋ) ?f$)) epKLLDZV@-[[n @rr2p)}߿ǂ 3g`С3f`ʔ)HIIAF쌨(|||";+TѣGN5L:ΝCVV֮]ˊ0???D"Q 2޺u렡rSN!77|}}0LBIbccѮ]B=BZZ^ __R_pM\pǏoߎ3grbJEPj1kܸq !!!A)(˂ǏcΝŸqㆢP"ܹ" レ,b 2 Ν;SSSlY)d7n\NJ-[VK$\-[a˴ܿDOX,ƼyE?9ʎҋ) U˗xAnnnrN\|jjj2¡$$$@MM -Z@٠X;;;lٲ=z`{ɳGٸq#tuu+r0 zMya0vXlذWU>} D7oMZZ:t eEeCT*UЋ/ٳTd+effRXX͜9SʗÇSpp0 *$S^=߿?թSŋ@QQQl2Bڊ6j׮M$*<ƩSLJGߟb1RIKKUV:u"ooo:t(Z0 9::ٳg4|pYɡ*""1bEDDPff&mڴQVVשVZ R~mۖ233瓖Pffzq=z>~H;v5kϩdaaACUիdiiI5jԨHvvv4pn'ի={ήBUE Bo'\ гg(22h!=וoׯؾ};"""~xwtYׯ۷ǁayǎ̙3Ѯ];8BCCm|>Vu)bʐMMMTx)SFlKx!FHO.]^~KJQ0Yٞ%2NJ/_W^?CneuVyWIR`ڵԲeK'???ر#8p_211![[[:u* 2,,,(//_^h WWWruuUpoooDdmm]_N&ggg_~dffҧOJ*CԩS'x1]9r$!yyyѻw8GPՕ222QF4c E4i҄._LF>|f͚)0J1x`Z~=uޝ8;y$Shh(R׮]iԨQdiiYhQq\BfffԸqrO֭S߾}i%n;zh Cnݪ?$H۷4`Eġj|ulnFP]b֭Dŋjň6[̑C5f*;;;+" ٢eC޽AD055ŋxNMM""",X,-݋hdff*ŽSٞ%R|HxbРH \E4!yxx zzz4p@jժlْ=Ɯ9shΜ92C>}:5lؐ/^LE^zQ=(55<==QFK$z9Rbb"SvXO04c gٳI&IϧxEȡ"ziii˧LBw!5kI$ZL4l0{.P~gϞAgΜ'O҈# Glh߾}nWjUXoc&NH_&---rwwW}*\Wfܴi\RjKSNaԨQa=z?DŸh=z'Ndx<߿C|>R 9χ;ڵk"bw###ذӂ> ۶m/w pQ/iݻwa``d9YVexr L1 C+(9^~ܸqtCP(ǣqэ7AdeeE.]RYI&dooOǎ?҇htzj=F-GK9.M:=zDC a bccŋDDt#DB$HHOOTBԥKؖBg&"k׮ //ؘ6lXӦM w^9Yȡ|Om)RoܸǏ/WOwb̙H$\CƤIy6XXXO>%!7o`֬Y?gU"رc044-Z׃0f^NNBBBwŶѣGVZJGؼys۳g5jtYVjժN:x䉢M*b͛7G6m#H$xzzS6mBBBcǎ˃_,X"1f̘k׮aBa˖-2=~eh޼9֮][qvڅ-[Q%gJuP:10 ,Y7JeАT!++ [lAvv6\]]+΂C8::J*'rssu ֭`SNh׮O[nkl8s O>-$z]v!//۷ӧb0hܸ1fϞ]zkkk& )wA$ĉR`l۶}NLJ%6l؀5kHu=!!nnn`aaaRGfXp!D"QE9llڴ}^]wi=tɠAдi"=?~f8q9991b԰~Y[93޽GfD^z޽{ضm.7o@DqFo޼ uuuO^\333Qn]lذAn۶ ;v@ S҈)ae_=zZZZ?Uje`^^^x@RRJBhhh`޽2{{{+Ъqe;w.kR,c޼y "XBL\t /mmmyu"">>>ԩ6oތ,yF@KK*wj׮f͚j(!p-dddH}|@?RNLJ!6l؀y///bxzz*VYx A.]0ydE?"!bD"6liӦaauV&NټEbǎx1޾} )777@$aϞ=2UϞ=Cڵ1tP@xxx^>zzz LHH.'?ѣ̮5NL S `R7n܀:7WN|}}csΜOIy&ЃlՅTCWW_~->Dɖ 8w|}}6m-vZEٳ'7FPP,--kwеkW">>{ϟ?/vltC Mp4[&RZa4qD>}:XB.2d ^233r\UGԥKԤIWݻwm7ۗ455)44]ʥNJyyyn:k;v,ݺu}r%)00Zn]EԤ` ڙ|OmJb={6me%$$uU\a}둙  E: Xx1x<455aeeXeicŊpwwG@@1rB1IDݻgϞӧFW z ^>q޽BD"pYx<_ "x{{I& "5Jj|X,Ɨ/_;wĉ jjj3f rssѭ[Bxb28bccakk4GXsIyT͛7J7XYY!00P" @$… DLL ^~EӲw^hjjlmmakk@(033ôipA9pqqA׮]AD5iЂ?333?cƌ-ADh֬vY#** :t`idd(0 333,\B~~~ dٳ'&LuJuڵ+Ԋ5jXf IbРAݻa`` }}}\yyyx=ڷooٴiƏ/STryˊT 0ϟ?D@%0hݺ5&Lah~:ƍN:Zve\|YAծ]ƘLMMsNEҼ{E*UQ$liڴ),XPh٧O' ի×ѣGصkLMMѰar5jW^ItA]]ܵ⠯;{RJ!!u]̚5L233CbܹuVEOЧOXXXiVa̛7<Ν_BSSO>-u߂_|%!8::B(8eÆ ;wn'T)@ `G#550=z4[VAYMVV.]$i+@dD"~d̙@ƢN:߿cccѦMԬY=E066.MOIDEEvhҤ :smqZl2#`hhXH["h"4iҤL4Tvss%IDe*7"KA2/Ysj'rbJuڶm͕/at֊6… x"ѪU+xB&Ʌ<\~cƌ.:::8|LD'~ZjDeׯ8p Zssx<^Bzz:,--+WT0`@999X|9Zn )`deeiӧ V ػw/^`ll6mڀ+>|Xa[#22HLL,̯lذWSF9ʺi!|>\[[BcGN""FV6ߧOM)<<9"ey0 ]pRSSuִrJ>|8رLBO&200 _~?@222 ZCDD-[yʊۛWGk׮kR׮]˼>ݾ}/9r$رLLLׅȑ#:͛Ӄʴm@@y̙3tRz%}044F& aff௿… ?ѣ‹/zCSIDAT|-,,ګ4ߋ/0l04o'ܿipԪU ͛7tD"PN"޵mK?/ƎMbs׮].gZZիWSN`дfA="BZZZYvvvl]˖-1~x\rg5j~066F۶mѢE 2C @DpwwXbNNNvRSSV2lذv*%R~x@. ر#YZZLo&_~dbO z mڴN:E5jPY?_~yܹs)--̙3h*Ľ{_~t4iRa~JIIIߗ/_ Eƨ^:eggӎ;{yѵkĄ @!!!DDD믿9uؑ$ \zIϟ5kV)))dffFFFFI+($$QF‚iʔ)ԥK[b iӆ]~5 SSSjٲ%]v,,,HKKժU-8jѢE[Ϗiɒ%E/[4h@rrr('' B)ǯԬY.]JNNN瓮.Իwo={-/hƌԨQ2yRRR(**tB/_:J =˗/aaa={qRѢ }Z60gϞEQF x<Znɓ' -hkkcĉptt0fG0 oΜ9Sax3ͻ믿;x[`hhK.=$6l؀cǎ}ZH$077ǰa8ϔP.1[ >%^ɈŞ={nyTQavZ9s?~į`M˗/Y&&NhSgpRaX\ Ǐ "ԭ[&Lٳg+m[ =3f]vlʪUW^Xl\@Pŋc Rl2444ЧO 2#GĘ1c`oo˗W( 33ά(sΘ4iRc0ظqB{D[[+";;wŋ91"T(={,y:p dFhD" p<>`²e`aa 2 e˖Zj6BcС6E$ÇprrB۶mADPWWG쌰 ] /^ڵk1|"^"Aqq|-yfdee/P\M+W`ԩ믿`kkaÆaڵ+~w߿_υa\r?fȐ!<,(T#gnڴ /_.RԔa666l>UBb*88'|>{3qY$|4|ő#G Pn]l޼|>AAAJ'FKKKE={6fϞ]Νƍ+gZO~XYYS5̙3qڵ2'F֭ƏӧӋDnݺ(:9s@SS5jcƌ)8pƎ[HϘ1r2a3, ~~~Xh)WE|UE$apvv\IOOǣGSDL]~jԨùcK#!!b+W?ES!具o… "DGGǧ0_|rE ǡCʼ72J:ܺu χ1ۢfؽ{7޿_~N:~ 7oFRR&O={K.DGGcɬ8z-.>>ǠAz\ӧO1&L DYpttD-H$Bvv6N<=z#77CE~ ĔP)1#F %% 0Xbn PEӑ6\0a{3={6\(@]]]YU`رc MMMWb߾} f+tɓ'>nA]bڵŊ'r_`Sر#LLLƎ J2PURSSann"9NLSс+,,,@ekj0 L|XZZhٲ%bbb+ ӣG)MKԙÇ!C̦ 1ӦMYtxzzf*z?}K,a31VZO۷ǒ%Kp9DEEȑ#022bwE%BP4j+իWWI=cƌ>}$S;OE>OaڴiG:u @~|\A}npI $$ԸLnHMMEZZ[ťgv:::dddx)u"ܹs\L:D''b)''ѣGc֭ X|e%33pqqĔ Q.1u xb/oٱcڶmSeeX gggǏmw3޿Yiiič7[߿999%Q_|DTɅj9;;CSSXj>|<)))Eڢo߾_x qM\zBvDEEv9r$z}}}\v_rrr0aѧOڵkW$j׮]R;<ͅT8zh͚5 M6-p_l̬T ̉)໽‚֭[GGQKۅ)00ƎKTVRYf EEEɓ' @]9l={ҋ/hӦMG[nڱc]xZhAmڴ۷yyy)t[nΝ;l2?~]=ii&8p ы/ÇFmٲFMmڴK722"""mmJH>}?իںc~ :s ܹɉ?Nqqqԭ[72e EEEQǎI&R=,H$Mx%ѡ,ھ};G,ӁYYYԬY3v}ǎߟtuuz> 11RSSA^%A#G_R@@YXXR]1AǏ=p)7n(}65i҄ttteOP(h0`թSGpwGp;SSSSSSSIܽv]FIENDB`pyresample-1.8.1/docs/source/_static/images/uncert_stddev_nh.png000066400000000000000000006111151324347254000251020ustar00rootroot00000000000000PNG  IHDRM xsBIT|d pHYsaa?i IDATxy\M׽l-AȖƾ5% #kLLSXjB"M*ET*inu2sy>=Խgy[}p8lp8é p8 p8 p8 p8 p8 p8 d?@ff&вeK())F&p{x5uuupP ӧO,pL6ThjժU022҆ӦMlll>a=qE`HJJ>ۑ8_)11^ A@]]ӧ֭[.]֭C^^222?aD|˖-[D"JKKqu)))صkΞ=#$$سgڵkQF!** PPP̜accPBFF8JJJ-4i<J:tNNNsXFFٙ$ yxx|nz%eddPHH%&&~v,**RSSڵk~zDlGTD"@JLLpҥ ylllHCCCNNNDDs*))a3G;wΝ;v'"" GGGJNN&N4g*((oߒ@ `91)&&hv$EFF1v٬,RWW'V 8UQ),,<<nݚΝܹsѮ];tΝlurssaaamۢQFlG8pzzz066////7;va͕ɱvrCCC[)))3f ]v!##ӫ\S!qIlݺhҤ ۱j1.\ׯ|sj'|9R0V1qԩdffrP($DBgΜQFm޼Ɨ}KII[nQҒiٲeU:Sh0 ={b1ۑj]ii)oߞ)66s;Mn:())aXv-Ǝ͛WO5'F رcPTTd;wC("//055ѲeKbW΃ҢE Ӳs粜] puuܹsqܼyǎ-Xt)=z3gE0`۱jΝ;ѳgOرc000@NN7nv4'|՘HҥKpqqٳ3رc՝QꄆBII &&&Յ "[JJJ߿?VZ,Y͛7Lj#`ooYY*OGxx81Ѿ}{$&&cǎ(--H$ FPZZvzgϞE1sLxzzƉbܻw=:֭[777ml|ZQkN0G%MM:5'̗ %vzO")==8@򔟟Ov;Q]}v?8''K PFFwxN }Q3}6RVVGȠdlJMM%b`jгgۛrrrH^^(++={v:ʊ؎Q'жmH(… O>DD|sَT˰={"""ڵ.ϮzzzlGqFY"n{iPZZmրC,#55qqq߿?ۑ tuuqرc!MRGD_ {ؿ?-Z|4mEFF<==tj \p=\|"P~!$$:::PSSs&q>PׯW^RSSQRR nL]5˗[_+~*cii {{{[n5SUnkk X\ 5jOOO8::%??C6m0 W0U ({Q8z(zꅔtuQژ̌<&L?NNNPUUŰa`ii "Bvv61 [[[ ==c;q*LO?`*רṓ'O~[K.żywbʕ_ Dڸtƌvz!44pwwNJ+7oBKK <lG/^vzKSS'Na߾}hԨ1p@|#YYYn>>>x1D"D"QPPP_܅L>U.j***{..\]3lmm7j KcРAX~=,--1a4l 6d;bǍiy<rcVV ###̞="ϟqx… 011a;H$-'j/rJ_~'NDff& v:CCC#GDv e ANNrrr\T|ӌ_BQQu/_.URX[[c󃾾>ۑ,D4m...Xx1f͚YYYtԉx%{{{#|FHMMŠA`hhÇ#&&LBFtc_َszV:M֬Y۷ogm*7n@DD ٽ͛1j(ѣ8p ZlK,fg6;uuuB^^D+WlǫpiL>n۷oَ=ESS͚5 z:McA"Zx'Oƕ+W%Uݯ͛7?><SSShii0sLqU\{ܜ$X` )) nnn?~<"""so_`ܸq Xhͱw^Vر1118}4{jhkkkH$\rXn]gχ& L_ 6mAvv6Fv,G\xC\\dddxbܿOaΝعs'18Qi?tܹdtgϞX,AҦy搗+]VŸq0aVJºu@D8v233hүADx+++ "Bnn.0l09s۶m #8ЬY3nܸc֭ ' x<w^`۶m5܉D"7;jgff"==1qttamm]coV\{!<<066^됭[SE<Ç͛7P(Ĝ9s`mm͝T,b1Pvyyٟ<==q1F.M@م;wX,Ɔ u œ9s```f͚Ul̟?֘6m ڵ+8_jΜ9SN%*W^ŋEhh(4h~tҭb^[^^^޷1(OXb8~uv28C!>>qiii>&Nb`ذa޽;8_~Uf``Px<C^^7g <7Cvv64iR-ݳgΟ?‰} 6l"ڵkckkkL2Ք)((χ ك1cӓXj0l0#pQŇK.!33=uC~Я_?lذkV'T?Ξ555~#O bq婠 Btvvvϡv,N518@QQ:::hӦ 6n܈Ν;c8wѤ6m>΁гgOiӦ\STbӂ вe/8Çظq#,Y}'O`ǎpvvzEEEglvN5kܸ1V^ "ׯB<{L/b`pttīWann.~g>T~ǤTe˖խ< ߿ׯa4nܸ]iiix)dee485@ pS<Xb/ 4_XbΞ= >Ty=tXti &H;4UX~=ɓѵkNPl߾VVV~D]W1~FHH7}@=gggvNd޽;6mڄqƱM4lCΝ;akk4j?رcr?4U066F sٔz ؼu՛7o`ll>|W\M=p.\v N A= Я_?o`;Ybݻ>7o~r ;v"~ZLȑVun:b5  ڵk߻AAA8|0/^;=z􀒒Znv,N-`ܹsYN© 8x `ƌx5  ̱BNNưŮ]իoHMMԩ#TAVV B^  +o8TqW0!"b:u GQQN8( Gxx818,prrѪU+ƲI^ ] ۷P(YLȑ6uTaڵ 8p ƍeeeܿϟ̙3َ'5cǎn݊)Sp}؎a 444 0{lnǏǐ!CЪU+㱎m۶صk݋#G";;&Lǃ69Rt*cܸq߿?455ѪU+ua"ٳg! 1rHrrrh޼98,ZjVZv c`ǎpssP(d,GA[[͛7G˖-ahh###twiŋ탻;qpGF(,,s(XL!!!b H$wAJHH,ұ?#弼ˋ)HzM7n ""XB" JST|?ӣuQ^^^dooO"e˖4|p@M6 &… XÃx<EFFwD"z1]tZ%:Q4Q׮]);;dee69rվB3gS\\>'QLL İ#h֬YSz9:=00m7##W^t޽>~JJJ OԷo_@;w CH$EXZZ)oא_0h׮55O.פIlܸHOOV.ѨQ##))rj)D+W pr>JMM NNN8uj1$CXX ZAl(Vm8aΜ9 pssSi&Yo޼} ##e V^c@`b_?N=򹪊J7((tBU^۷ԤI:~x &}w!EEEzI|H/aH )&&h֭ #FPaa!޽FMDD?oDDѣLˋGDD4}t5jΝ;)++ @NTXXHtU""JNN~J8a[vdK&&D1i@>yy͛7vMB8@ãrnڴPǎ)>>ٳ*60]}N4~Z:MGj;MD---iӦU^OKK vvv?~<[)k^ZZ0n8ݻ۷X"EEEpssØ1cc߿3g^~ ___̛7氶Ƒ#G`jjFAII bmڴAII `ٕg ?~{:.]waȑh֬`ԩU\["EPVVFjj*|}}!## ֭> CCC۷;w3,--! ΓbEEb "QPR@6"Ȇ,_^m햘;W-Z!''۶m=qI0T\\LDe@H ڵk)""|||HKK222hڵGDD/]v;}Tp!l% 8qLZe IDAT'/ hLFNpI hۮԤIjРm߾ӏ?HTRRRHIIT~;ZC۷'%%%;wnz7o$a(00+Hm4$}hJMM۷oi;O7ƆlllH$ѻw؎Ƞ45kĐ#PII mܸ,X@DDgΜpH$H}DAAADDqF:z(:wPΝ͛7e9'!!hr? @Y8M!Koa-%i!G,fRjjYh`%KPV(<<T~Z$ ի!+TM9994tPzQm3..ŋն͚A"mF۶mc;#*Τu8p hʕO&&&@o޼{P(d3.ڒ-޽{G_I(҂ K.DT6*aũa\JHȥѣ/=p pYg>V_~%sINmJ/`'O>4uTzG3www@$)<|===n_deeA~~>`ѢEҪ+%(++#((СC窪ڨtŋO#::dddݽ-]FB.\@)))lU|j=~8:tWWW=?F׮]kl__իW0a1e|rrr ''cҥ˗/ 999M65qȜ9sNb9)**bȐ!s<&&&hРѮ];899o߾ ĉ;]Q]01qi v<l@x xr!0I4+ FdShN L~?B۷2m89 Wݻw|>+Wޗ{***011۷!+[UII .].]K.;w3f@N //c?>Zj>}F~yCxx8:t耇W^ߴ=N񹪪+]ggO ޽#KKK*..gϞ <'ORLL Z^ʹ~9:w1Eii)ݽ{޽{GN"@'N`;Tpv~Cz7L`OD$s:S"dS%["X)^!,;SG{ҁH(Rff& MM"B֭ғ'OիW ?##nJTUU) l%MMM{.988۾};)++Y޽K($$Zo\IZ41 C -\ڷ_a6a(44)::ߛW^U^aԿ""ruugddPFF1jDnn.-\/_NԳgO"Xcn~{@[#w |pҠ>$x%BdvR+v=E[] )'B A_@K":AaAuGơ>>n`h͚5Զm[ YF2FܧϪ{? MtY$uUOoOOOݻ7~f@ ЪUߟQFDo޼y>3f 3"##,,,(::Μ9CTTTab1MWnݺR0U>1 Cwޭ1 C999S={67ae ;}4]!SSSrqq!XLlGUaaanhh(Q>}*;o޼a3V),Ӿ}"S//pX6QKh؝b֭[+(PQ,瓯oYře 1 odhh]t7CoҡCh֬Y!Oy=x~:=x"##+;޽\YB H'%\*?4w@A}Z\'TR0޽P-C.1a&! 1eIJyro ˉ!މ.AQN_vMNhJ7]b̧LeII =~sv9r^zEC !/77vAؘzA2224svAM[l!SSS!Լys:u*_G4tPP9yoԯ_jk+OMgϞ%yyyJHHUH$zQˣ/^P\\:uF[t)8p233i8}Naa!9sB!-\ڷoO ЫWDq_BW?& SHa3"pCcwsMwr?GW->Ed-!a3P&@56ޛ!YÎC;n]rٸ%\".F_yi|WB`hp&?;~xjגz/$y|⸲IvAyAflY Lj}Sg#TDP)!t^zGO&F๓blJH|SQqLR0aʒB:}4jܸ15i1TW\~555 9|BNGM҈s|/_gϞ|2 kkU6j(DFF~kl3&&aaa]oc…s񐓓[[[,ZxR8<1 eeeߘ4igR'"0 A$b}{pd4f@O;==?~<ݻ,#''޽{G޽C6mp- <6vU:uWWWL2QQQ\ܭZ ߯bݺuHLLDvv6 WMꅇ(,!>aÆ(ԠA4h]vرcuVx<^JOK`(e?E٥Md(K, eŔ UI#es`&ǎ~z#7\O@g4l:":M`Bo+.%ϟ7س'6x@EEWEn`n=x]e޽>|8?z999@NNSLH$´i[C$A]]:u!,, 7hΆ;燄e&o97mڄLa׮]h׮]$Gjx$0p@ֶw&L(ܹs:uo֭[PRR3]%%%pvvѣ wwwXYYӓhu ]]]L> `ժUhݺ5aaa///JWr1yU{REqTmIlFo/ +, ++3f… 4iаaCe"DtӦM:233+%H0tPDDDfff0`[yMOCQQrrr>8uCdddcǎK91o<$&&~ѺD⯿BӦMks&??(--5|||0w\@AAxuΪUj*c)|>ӦM)TTT0`hk֬_Uc xaiyCY!/DJPvi~eUq*B]H4o"/^[0@Æ lٲErKM{F]ZSNELL 7n ''*sAxxxU^󏬬,blذ&MB k̘1222~xӃ1L$''WܩS'9r<())Avv6֭[W-"plp;v38VRo):J<O Q^ZS=ONG۶ Pmi9-|'R˭VvT I 'h}̃bx-x#PoSo_,egLTX) xX &\ PWJJJU~n|>-Z$''c͌3c6llll ~X~=~dee̙3:tyP:u iii_GhdddSS.XW ˖-;0EHHTTTcf۷˗amm @MMxu%,--َ!aii ===L KKKDDDɓDFFFWa'a9|}PVUE|SI ^Uk-_F|r(+$ |y=FgȎ50D" N`)h>+wLEqݺaXjԤ)R) bSEǕ)geOQ@oߊ0h%$&:#E&^iC,!<{CIO!{)a1a5pPiV@f70,V^FCYLU1*@.bOddxpp5 ĠA(Rd"7/^[b1߿PW 4vXl?B~%Kرc+ǧ|qJJJXr%V\jhz ^|Yo07o77ʳ!r@ `۶mEVйsgb̞=lǫw/^ŋCFFF]Cb 8+((;v7O#J]hLL.SqHHbw*8U%gU| ЮN5 :ʊFPn%%%QDN1L=QGGtU8wJ=aV4J!=BO+7 dHP\zUQD 55 vN1PFL&up z5?PUw~ k֬kb DZZn߾ MMMܹO>!\\\0 F}=zׯ_GBBD"WHj/9BSS7Ϛ_QQQ(..K.ő#GpInm|>gΜG?cčizÇ1h x9N3, 7GK@AqW`1 desUhh1lw' ,LEŽxR@)nCh %<2Zޞ. GwaQ\RF+jTcQE$׮XQ쉽+b+6,( URmbbCQ<޹w9='7-[ѣG_)4o077gҥoߞ-[Ͻ(]z9s@6^{cX)Lzn)_Fk G>6ʷsh!2܋2%OX[3+K0NNNfXF2Bga#c;SHUܿm͜n ?üynm<_'f"3?n{95E j=hRٹ3>s^A 8<Ŋ#444C 2???^e=/'B ǁڵ+lه`.\ĉiҤ e˖1MXL]Ϟ= k5BRaaaW_}ܻwI& j?FS~oG^7@ECm6n}{I2dDd35yI2,,'*+{#5淸ݝ`u/Գ&8 Y3<،Y~(J׮$mI%""N/Ȇ66` Mf뉏א-OJjՎIxx?-{g)\sP\9Zje CHӧO7oYZ{hZf̘@RRwȑ# <80Jll,=bʕt&q~a;׼yL޽{j*سg'!!!Ԯ]:Ǐ^/ENfӬZOh౉jb*ʞ<:x$I bY ߸TOQLߪF.`Qz%pn2mxPʑfʔ>HRC1ֵoߣhh75cǞ}Rh4VL~`߾h}sL+.ѣ%1}ӹ=7 0 8L͚Y2c .]Jtt4Çl>֤ɓ4k֌'Nt @ϭxȑ#lذ>}dcF֭IIIСC<|7Qöm۰uмysD[nZkGTRoxn܈p-27DC$ϴ7%`(̛d']!\$4LcjU`MXg[>} ,%UeٔNX$h &aO= cժ[tX2e\%G- ZPvr"2Rmˠb͎ҬNS/=O68[8~a/ܫd._"((8DJu={xnn9qryceՒ3g13Wǁh0_j) ?֤L2 <fL4-[/ӧ.]̙3Ʉۘرc=z4vvvS<~[no&mBTRx̱chu 1$%52>>< ΤQdƨC`> KZ .LE|5ΟO1gʁ2!ƱDF9/3 %%!~ۿbߒj j ͛1m<ȅg!)}&""?w(7`Ĉ ~ ƈ,hMϯ`y_~9f֘[bfÞ!CХ~ƍ il4KÆ9p!;^$<<1"""x".]޽{x{{s͸1cdZj;oLD.]P~}F6}P ,Rǧ+++Μ9þ}8p&Ysu+ƽ{ nݺmValݺ6子&d8L+0?~LLLs[tt4ϟےCHH$p!,,-vp .B$h"K&Og`8#sÐ "][Ki4S^!s%HO \:Q4'2%3䩻9đ24ShٲS "" EDGXPPm̬c^֭XL9CJfqp/3~|%FMJrαc8wn7k/TjY ,L,L׮1Oɟ혓Vel߾:KLL@L2*:P(DEE1rHܹ;2oL4 :.KuֱuV֭[R5ڡC2p@<ȵk1b{20gƌCpp0Ν2۷o3g-Z٦d~6!ñ|ruθw}Gf^cǎϤ 5?4j^3c*wbu*V%`1*_~D@sƍO3~|IoѺu1"Z_Eޣf4OyTnx%숀shaZ(XБssr{ӼNNnKzA`[N<وÁHHPӰa1 "{v=)):fe뀎b؇ŋh3Uc)P (_~5mۖe0kww~~tXR6sd3 }c$"Ջ+V0`VJJȟ??gѢE޽7or*VF 9rΝ;j/HSPPǎcʕYf|ȑ#+C ]tӧOΎnݺQrqI6lؐF֮]=:u+2ْömۨZ*WGGǷZr1J."^/SlxCJza]G 9L+1xLĭ]5`0ao-6򳧤h?C;[W=w g°S?w:[I w$%љ 1/@ jTqcܺTAF4T .\XГR`kJ싍ŋTӤAll}ػw/eʔ!::e˖쌃; 2}t&NH``Uu(0___*V˗P3f`ܹܼy3-%+ٳL:7:?N͛ R{QHcZ6m^ Lڷoɖd qqqaĉjH"4nܘsc;a?Zm *U*yA:@FTϴ7;҅.MyPZa~4 7[RYKUT̗&6<w>>zWha麁ʐf L^V{?`,ّoj}.TyhGgF~ׯ+IHHBC^yW#kצQF̞=;kP*T+dHHmڴt޽7QFrJ-Zĉ3`N0ݺyr^>27-v6%09Ec߃}Ssx.֝r|ݭ/jR=s Yr758'z9?:ŒB܈G ܺ¨Qٱ1 UU#7t߸?~\ZL>#nfPt1M̗qF;LRzVsAl3Urs9|[=2t Lޒ+5|!Dd#[%6GEItr4j5\Nzvk+-Q]{tw#.)y'Vﹻ;35'2 3b#,YrPi*WFW3߼y3u%{/zuִnooo&OLZ/ܹ3]tPa#FI4+4ݛp,j:t(-ɍ0ez=Gо ˗9t&Ki.jj֬I5M믿f888dSNPFLPP!"""PO3… 2g4=Jt` &dFRa !+w` J{GypD!KVj֭Y #GCtpC aWq<%@o_ЯWEƎ'8pdͱt cӦ̚ٳE*`!'M&lءtl9 :ȑxkfnaKv\ɑ37n9rꊫ+9rH{@HH6l ,,SNO?D.[7-yul. { *dn͸qg1x IZ_[[%EXa s6<<i'f|4o^ 8nz2UO&-[˸SzuhKJt(oD%1])UW<a9G㚹HÍd{{(׻.N-qr̽:5*H#E/͘1uqiZh<-[ƪUMj|ץ!"8ĉe=fLOV_'"";wb9'_J5%6P+Ç_v<=@ڵe^Kʊ0 .$*V۩RJ oW&M%KAҖLʕ+Y&wy`шC8iZڵk' .ls DӧӨQ#uBEHU߰aCfV#11GG};v̠^+Vm>R0$r?!(H|0Y.li H%Qn!Qe|C=oBz&O>} ~IWPF6*zx$*hDLexu oѲܿ`N_ЩSQ4a|_rLI8;"`a2׋&6hѢo|]W R%J`L9L!9J<k=ml3nA&̚Uo陓˗cOT%&FG\|ӷU}gR~}vKay|{dF _>73!48#G0+isмqs7Lݺuwu0g,XK4h XZZ]p*U}o5ݏ`cw#Lx@$)IÓ'ـSF|uOiM&ɑcM'M{ww7R/LJ2G|B:^4+W]qu9|(^&Sn(\0#G|oct:.\ݻw7Yx{{SR%kD]bcc/i2y2 4˗sl׮JLI'E` ; Ȕmْ J ue'>·Cx VN'b߾Vu jPR1 3f)4*<_UTp%b㢉5,h%)jNۆ"pS%qB_|!hܸ1ʕДx7nBxeIJ*d8-Ǟ=2c|=RJb 0eNZФf[ ++$V(lݺ3337oRN:4jGGGȗ/;%La ~9r$III=zP((\0GgZ؉'h׮'O7K= ___9† P(,Y={sU1o޼6IHHH>ؤD Mє乶r$=? Y2E16=[ )Rb$ ȑ_4#&eZ޽1(.^lϵk |cIa%XȁsŊ5)f<OOOlj@u$MavߢVRaHrfص|ˋׯӯ_W>NTQ%ǒF/Mr|^!"#Sٲ9sjXqf׮v%(׀^EhQ{bƎEț׆]vQV V}4i4ݻso9^O۶mX{U\rϸey/Siժ<`tڕ&Mdi&>ooLtҴ˖-˰~uysg,O ~5r(13员a JV=eAҴ0_ߎ,g 4o^ ڝ@&88u͜>ѣKcc}ۏhݲE1 aOr΍[-ѵ-fҏŋr~xG5gJK~W% IDATU4v=l,}I°YX[ȅevur!#7WDl!@vh4o+y-H@@s294{l&MÇ* (J*VHRjcΜ9^lyff͚B&G̜93M{XsObb"={QFTyH-"hXhF^ Ŕ@dnlc*yƠm!lgh {BXInWWrp$O;lmu~&I7vP72U|7MNMp{6@Pp?VMFԙ#4XlAJLh㟭4 'V=Wqs{u=Œ%K5j7oޤwo:2kRI׀ρ"x] I^tfLc͜&͂k*s?ز_ɯJ/Ev- s+Oعs'˗/>#225k'dHSll,}B %j.1bZ-5ܽ{7nУGʗ/%U gёΝ;3sLN>ͱck>[f_~lׯ|7ӧOfʖ- Np>c Q{=kZqT@ ϐ-IRIzj[`ª<|ԩWMY!Ѷ! Ӵi.Z>[n ̰2T)GҒZFr{G|A;w& EW_ƙS)Xk_WEXX-[ GVv({h̕Df2Toǡ8Q ֖>i;]p?_5Ǐ)_gª TI,\?7ULk >o[?䤳7/^`_HҼM6eʕ<~8?~Lƈ+WP@._V C9TR%_y1a7qqq,]޽{FYff^дiӏRܜ#GrܹFBxz]œ0k萣 p` Yco*ɴfM]*VtCڰf|,]!r_;=aJ*9̃T%ۙkC1mkY(r_NHHQQ$b#}΀hٲ:H}^e̝NHï̛g 쮮0jT>~{{`k͈Q{IR^l~jUw!~[NgX !C~z߿^"00VZP(^)!'t#sa-x8cZ ظq#*Tݝɓ'Ȏ; ay-,,h۶-m۶חUVx4SǕ6p>"""^,Y$*깼7^\|Y|˚~tҤIYpafJ/JRR[E[n3 )))gIeӦMɓ'_Oʾ}ޑǏDDDm6)Uz޽TZUDDJ(! dƍ~ȑ#2vXɛ7ԯ__Zn-""2}tܹs˥KҮ];h4raٽ{DFFV}/GT*e֭/m%!Y/ObVE-b~D%%O,eg x 7n_O34lMʔY-%E.- +0K`2hc.#*oߖPʐ{J>|<Ы$Ň,'Jpiwjomp-7n8)-ZFV^-:퓒F&Om7DEEÇ?7+"˓&F#C d)$3gqz^:w,'ON$L""K,B!$uC/BD|llʙ3gd""ҭ[7iٲΝ[ƍ'Rxq9{?^  jZ?.۶mK@@t:xINNOOOiܸH@@˽{DDd/icܹS7n,"":tu늈Hd+5___ +VÇ3ڌ9RY|+EQX,ʕvBQZyBHxY Lh& Ӕgܾ#˖ &fL vvVS"*ɛw4]EwRuZ=J5VI^$oRY(%J5j88XJ(!xzz-z^>}*z^F!v7n NuIRDV˖-[dݺu""()))o5vPPUk~yo"TLBv 3z L6H 7nYJBZ`Vwvۍ TyI1H5knTN56IE# KΝ{*tiPQ*rʕsݷos s 3f߾O<HNȓe177;w&ľ}$55U_v۶m_~Ei۶G;fUdi4}tiР{ 'd4p2wW>FH*Udвׯ@N>/,,Le̘1"b[ZZ ҫW/9}ܾ}['...g`[ztMjԨ!"" 6 JuITTTƜ?`۶miިw]v ٲeJEӉxyyɣGEr޽4r/""Zopٲeȑ#uXժT|H,:ET,|H(sFr \Xc$Ds a0fClqtUF4ƛ-VwZEI>{7\6l8'W`ͻHIdd bi9Sj8(i`}W*.|$[o+|%U+ QL&i0{i߫‘#G\rxYz 0@ƍF^*¤*6m$y䑈"֭^/3f@/4uiuͪȒIŋE~ɄsÇ_Ul7YhGy ;wNlll\ϢO>+W.ٶmxzzjJ &y@J,YR Ls9k%^Z. ;}+ٝe1jҪU;Q(-:K~?~<ݣfdkxE0aTZUR|c*U$ B.]ߡ0ah4/X'O2mڴ4fG$::Zzuo>Y4;vL,,,>* 111;wMfWT_Hj^ݻ8::( ]v"b=*SNM#/^KKK۷oZ:NL"bcc#5jԐ-[^~A;&'@iРҾ}{yJ"E`7HV=zH.]Ү,YRquu@*T cƌKKKi׮?^s/JϿ4}/, %A!(!7hfUKdel#Q2%rO5%Sn,?^}>͛ -(2K+%J'o_߈xyyeH_ZVfϞ-/_>ٵks_pA:t -[ J͚5RJRD 2dHDT~}9ssdUtiVh4IH= +0V'4r 1znI)girf!7,پ=@j^'3M-VV?c>͛.H˖vm`&B!C H}'L""!qe 9z4X ;*T]/'OFZGv-r-*-K.H-/ CwMkqF(;wɓ'}_g3yM0Wږ,YRnNGk?>-)G␯dO;B ֒?7{SzYf_D"MF+\@VBxxdϞ]-[/))Ir%FD>[NUb/B޼yA޽+"~̙#e˖Q(";vHYzrС =¯*[F#O,X ǎ{n^$CUXQz%s.{'s:)B'B n$CDi5_`8-3'7`iG +$=9|qX)kˀnʬYO$!A+XJ`'-K$ȑe MfтZPl>ʍ rdRJc"Ya@1.w^]s i ruYf4k,;vɏ?(K,yΣrQr1g6mڔ]iӦɹs>Veڴi+W.q&~$oDD2uKM6}TY4iZ9{N;-[&qqq,~~~$ǎKKcȐ!?mӣGٿK:qTZURRRd̘1ҿ^t9zk4:uҷo,)R_ ԩS|L^/^^3hv]!%AqK6#!& &4I a`~^ !Kλr3rҩəs}Nll!EA#f%!!U|dL88-|+'OjPN($}fJrF<)xQc4j Uq-;t:R/}'Oܹs˭[̙3ܚ WN[ևJ٥k׮bff&:2k^27.哊+JrrG5WeHӺuro!88XlllY|P[4k썏WҠAYzܹsG\vhZji(JYlڴ!P;v;qwޕqIB\F/Bll 2DZn-իW"EZJot-\`Bq>^Μ9JȒ%K^HڷoC[8ggg4Rk%UTRjUɕ+3Mxt:<}lٲ0;u.,|a̙,Y?q ʕ+)R~ 2iҤW:vl߾={PT)\]])^8k׮c/(UٳgGR1w\N8'XbExԯ_$RRRpuuǶlܸkr%iٲ%tľɓ'3oh4quuggg)UCCCVZrUٻw >oˑ_qqqү_?ٵklڴISNo_F!**J?~,uB!UT &ȕ+WDK||,_\֭+JR,--yi&INN~%&&F/y򱠌.|5yK Vܘ4^җ/X'PN0L(XGfe)SDr*/#тN)( 1z|$..UƎa4?K%n:IQ[7PM/ޒzIUH#DFCl}9̒nJr#0IލMf8֣բiWJ,oƉKsbW,ݓq+3m&ZVN:%&MV! ;w:u^O8AHT`Oرcܸq#7nȣGiQPh:qR) (H8l0ՋkVիsΜ2e xU&''s̙y. sw^Κ5ttt,,ڴ"AAA>E$&& %AA#Fp߾}Ev/^~͐FFF* 1gR2 A8tP`Μ9=z4333yu1cU*icԩ,y "--iiilԨ]:P(trr9E7-;#iynN95>o7w5nܘ9ߕQneN9VդI[y!&w^b,RgX keGLVmyUO @[[[7 111t i^90S&Pt/j"5𰷌~٭yXf`gHd~9Cd+v&Ѽz=-Kod{)"ufC`#;vͨVpQYE=VS%z&C3i͌/r ۍ7~z +\ڵks e۾o7d6l0kСCq<w7eoٲ"'T(heiiiYG s֭Ae}(, 0""qqqžRq:ߧ'NԔ^^^ӣMFsssy>Չ3sD"n۶Mmd*5#t+Ճ1{lhтFy#nN#'; b9۷o_Œ)))ݻYBFEEjçѴ;"g>gָf;#yaanYjl]\dN؉phk/_+8u+V\A`wz[^j?.GyNNFp&&Wٴotpp-2+++ 088.m x\A`ll,/_D$Ҡ_J6$4t٠Q ?B9..[l 9r$ϟODBX44fڰcz q K&D[Qވ8BDX)d+cV;:(eNcl A J ˜F,.Z, LR$ɂ@ H2'\\~=J\eܱcGvjAWxZZZ211۷o#)Eccc~o]~]`[IYvFO?R[[M6e:u}{BK,ɹΝŋ W\aŊikk[:$MBB_~/ܼy ǏWx%---)ok׮U^ޕTRCCZZZ41zĔ ocڴi[nUzd>DA\\L(M<55zcǸfӗ/^\G(jSg]^",&ffg t+'j)>;_SOVzAр,k*\+ _iӧO+/he"=|pZXXp͚53g[SC@@ Fwww-D%!۷ ]0DFFQF466V{\.gzz:K%޽{T>vi 8n8JR:99q޽y`Ayej_dd$RJR.sɷ4PvmY˖-#vڕ?2*$;;=bdd$ի7n̉35Jh!Y0 'rA%8v~5LTx&s/ a[= LXSٱ_*uQ)l43fdB.ӼB/;}_fǑgԪh ɴn_f:uY$''sСj/\/SI.UV\r%GiQF111gϞA(8bߑ#76+bJ" )8ms:}ɓbhN+ts{c9,;] jw ݠDD2fphpeKg;˶l綐[?^~ ƥt\lUvo$ɕ+WZ &>>͛7OQ|7#Pd2e2YQAuuuYn]ۦOh۷/b>,,ʊ[gϊ=!|R?##X,MJm~!_+ɓ'LOO/Tuu}v? חÕ26w.7n أGR-aX,VqQ$5m4ԩSe˖͍{y`vЁUV[׬P( % """Xn]D"Vn݇Zs9^ Z ;ghocфeB˛3̫羗VSstߗ^/8X9z=~?r慞t\٫>,d@Z>d!-jC:-vvv/ 0&&sQ*:HHH_|ACC7|C[[۷zIJ(P( ۷oСC|E9}4uuu٤I|՛r9haaEO>.{]y?$&$$gNޤgOVXo'M qq_ՔQdN;&g79rEe˙!#9=kM[;=*flԚM:d-gM_Vx"͕1r2tpp` fFEE1!!n*=!&& 4`5Jt$?mllhkk[2$ErLjj*<== \֭CժU1gDEE$tdee1tPiFFFضmFU \mۢk׮_1l0 077Ǔ'OvZhccc$%%OX,.u;SSS!~9slڴ VQfBW\nI$hܸ1[|w Chh(1e :7ahhZ*7n MMMngؾvlEpDmzN{ \Qx2?#w1KȲ3b -Xԃ[ėV_"== GBB[]%22q*ڵ/c䄐$%%ҥKprr*UN>cbԩU.OB`xx8333eJ$ݻԞoWmlݺFFFR )|}}@GGGvܙhhhHGGG哶e2eݭ458rH+@ޞFE{n^~<5{SSSJgggZ[[ӣs<^JrZkL0}v_r5k/^`q_S,U-eǺuR"142f֭9fzxxĉ )5͍ϟ/e„ lРLKBBmnݺ)37nիWsill̻wu{mll8o<޹s'EZZ*T֭[pJJ (ϟ3||wYJ BN81ͦ~飬@WWW(_svv/%<)WbR幖-[9NVD"Qp`zzzrժU}+ETҥKFFFD#r9y-iӆڜ1c [z5322'O7B`jj*_z<'pIYjmllzSV(|)\#GpӦM\x12_~%5jʕ+SCCժUFLuC;;;VXQٞ$''sj}alll}rzQ&3((/^ET=vuu+PUTOur222G9oU:uP[[*TP-i:ئC4uޝVVV׬YNNNqTFMԕ U_=<ȍE/5cSpp0uuugΜAE|1R/_.􉜚ʀ+O:5"&&&a9p@~w֮]Ǐ BPۛG2$22 4`ʕtH/CbŊ477rq- yȑ9rd?'ݻiiiY-.g.c:Լn"##k֭[:u5k… UV<bY$e2cbbITד$#""(8i$Κ5fffJlذa~r"⼧܈&jՊ^*yJn I֤I9fffQӧ+8]vחw曆 6m ֿ8~PxBY*wS};ݻ{~O4}(8-9sThYّ1\^;Ld2elSiPD\ -h0aT*;իD444-3eӿ7JLLT?([$w%I>dՋՕL ۈ eҔ,rJJ YmQ!DoX>z"vvv5kE"{k r:tNNNTzr7 :::vД 4x`~°x<7ƍ+OW^_~ӧI#v7oN;;;ݻ7(667ɓ'V6lyv9_vJ.]غ|rD"6h xJlԨ Fwww>}Zٰ8w;wܸ~z֮][7ׯ_Oۃ(yђ}[b[ixPA`N(9}mq Ʌ*P(zܴsuN}@nsEݻ;vǏ=O<nݺo@NU 3)))_ɀ/R=zA>8qDn۶Ǐsܚ5kF===:::d\t)555٠A3?Q<={F===:t,^C-w %!=='N յl֬Y,i9CؖC41RTA6l555Ahggڵk3&AJ剬,߿XرCM6:t2!<<\|]+ci Czz:wءLyJIIazz:,XG;< x̙HNNN3p@Κ5b ,(9fϞ'v\Bn޼ёz{{4hVa.!!!466fw^>>2Alٲ^^^7otttmH$BVVagg`mV }H$,Zpb ԩSڵCzzjܸ1\gcX4.Ha&ȄBBG)YDpqBD|Wx%ڶm&M}9s*u>| 6 44TݦH s΅Q)BluXƨM4թSϞ=Cne GmFѻwoa„ عs H$/m6DGGcʔ)Evv' nn=!{ˁ_F:DNP(y_O`e+UBHK#De& -¨Qp|c ǫWmJ?!BlZ2Qh -r9D":LP9ΝâE~zuRokkkv7O]]]hiiz022Rٸ<@[0``6Nv p>}!>>3kK~xτg_|84{2/x"j֬wbΜ9ѣڶmǏ۴2A[[1cMQ ">>>0`G#/F!6 ,c9544ЪU+ԨQCӫs8rznsJOb077G޽1w\all9srOVV<{q*?9?ׂ | ] 䳀 Т) VpK8vRPjU@$䭍¡vsE?ЯVpCǃOYdyRBb⯿BV۫RF,c˖-ɏZ$VVVؽ{Q oٯ<#""ub[3,, *KLzΝ;hҤ)uߏN:!$$fffE"`hh\KXX[lA\\K,YDc/ۀWkXHb.@svq4PAwWuD=&K- {_A> %>&O\r{{{[nWpppPeB˖-q,Y.\M*1K.E6T 'OD>} ̠aIOe9lقM6!"""PqssΟ? 8;;c޼y=4fX[[8IpI3'NDzJ4\.s]/D^ yh$6%%!aL*)} \ d"h_ u+jӘ8$Vqzu3F 9.-PB,YG0ҪU+)00vvveifSzuXXX --M۷ѣGqL6M攘@W^3gw<c.\ׯ ѷo_j/!qL4D"X[[ ojժB &x^|P?ش ի[cHd^$P V >x0,Bbu ,,CBqj/ U j8W;кvv-^w8d2EO*T*Ell,f͚[n;w/@xxxYlmmxⅺQ AAA( ZjAGF@7$>VE!UTd's59g=ɀ`X9'g8x-DZׯA$M@{\vx\߅ꖳᅄ-; h 4͠~ * `j:>~g/CCC,XzT*EǎpBox)J\w)))WI%B$aҥ_ DO>ٳg]tQ9Sfw tڵTee I~}2$$$߿7ٳgC.k׮رGZ\\nܸ*U 33'Ch޼9f͚sa0`!J?*۬Y3d#1o}2FX`BN $0HT#+@1 {t+v/Hp?Pr@6=1xs^>"_Ti>@Ex_ǁ0lƥCȮ`q.pY"'t?w+\ho\\\ТE hii!--N>}:|}}qڵ^TuC7@_I-ܸq^B:uXڵk5vZZZ8sLYMYj߿#GǏaaansJB(xyy!11ܧ-Z ++룉e+ 8s \CCCj 4hj֬ <~X,1i~@)3@z $Hぉ rbÃTȬDX:TÂVB iJHJz$!DOTun] $fh MHJzdUl wJظ"^,@&#{~G\?5 t@:tHV!S^=D",_.B>r#<==޳gOW4>tP,ot 6mhy-3вeKkG7|||s 7n@Ϟ=qqD"7;v|ԫ غ5 t@ctc*ȉoZ P2HFN=PԩuN={S@$MIee.nꆜP,\p]d7f@('wRuhٲ%N*XnbccmJ BnťL>O?Gnݺe1]͛7cĈ6ĉo,@KK J7i&9)7n5.]Lt-[,>#C="88"#+!;@c@5\nISDSw;; G.0O^cqN{ͬOAtdg'H|Mz5 >=={DXX mJJ ?Pꢉ$J- ӧOmFq=XYY!$${VӦMC ТE ^ZcApi~N888|oʠD___TZqqq6XH%޽;,--J*uصkrAb tUVlll0k,$'' .`٘0a̙K.kS0226lA`⳼5fT IDATkomѣGK.x5 Je ++ wޅƎ'b̙߿`ؼy{;ϟg/kbm]m@G @sjWZiU@Ve@"Q2~4dFu|^4*Yh`*Fzt#Z5=!'</G”)XT 5Ar JT< *yjȩ0@BBrec̚5 G xP9r cgY.H$"""0h lܸQ} q7nrCI&pqqpb.5+^ɰaPZ5b׮]1b0gc|I\|o&:88o|ٹ-o/V)BAx2/99VVV\n]̧JIWWW3--QQQ!~@;;;d qwQT]m6I EEEzQ4A,+QAE`DR E齣 J @ f~ܹ;i!ِy̝;w6=g.o% \$"p:' AC!@\ P `ǃBbÆDQi`z`LrS̜y]jQJaXD׮{?0S<ѮfMY 0W^uyqwwfΜ9|8991eʔ{T|u, 0[Ep 7 2D) ]TU Ll =PًHI奘|4,^e2IIq$<&WdSVU.\FF ˮ]QH=R-8 J$B~Eu׎֮4 p_$V<3>;rqʗ/w}ǜ9sɩDTmܸnݺq[3ٳDFFRf[7#&&q111TZ)Sc_zu:Ddd$!!! 4ЯAk׮̟?\%dr.^ǿ/qqq+S-c4iȬU^d>#kjdUOjj* ,`„ ` Y4m4 -KNɗJqYd !!!t偝788OOOyf͚ΛZ.]ɓݻ7~~~ԭ[pk^z`:uDxx8m۶BRRL@jUZI)IBb8d ,]{Ɠ8qt\}ä 5ѿv7a_4\? 7n0Q*{L >`I22dȀ4q9n1@#$zM^sdr@+RD٣Hmj呁x" 0 ɏ@yR$gt䊌6) PF>`~CkƼ=ʗ2EL&AիԫW5ko>֬YS;wy8p_8 fm2t\1w\-[FPP [@|ᇔ.]лwo<==iժ-b1cpA--Θ0a3gEk׮ѼysKXը#aÆLrxwo6l_|?&Mн{>^>}QhضmX,"--HqUQL1w"]ׅd6m:tԩ֭}˗|@2 d .qnEjy23s9+ X!`iN蘀m1Ae+ 0 8)Kmx A!&6ks.ToGX"`eVjߵmִI!ښ X.`}4|M[V_& Gd "SPAA0sX+DbbU2|pѼysaXDLL̃3+v),عsgƟ>}w2{l!Nn믿.{ ggg# \  Fek,2epwwޥ$իw"*** MS B<2WG{kšCƍŰaÄꫯn;6>>^ԯ__ڇ &<==Ŋ+rm_rÆ lQhYf?Š &M$<==K0^ vUKB1w\(tׯnnn",,L|w" @8::MVZ @ / ww\| 6/F6G% En ( By& pR@,22,{D*gD3){Dڶi}F (`M6jl՞ Xm5 LB"x1[PKZ^8?*A{<47^Ԯ@\, bIIIQ޽A)'Ia̘1ֿOlݺǜ?^ 0@ :uꈰ0}T^*q}E?~<iz!q6L899"OHHAAAlٲĉvE j^^^`0{@PsB gO⌑#Ge˖<8pசCBݺusw<(l޼YfѮ];^xzϓO>Ixx8,Z'''˩S3g_ܹI&Ճ*< BEV5d6&4@L[s֤(d@(Wm[( 4CZ:&I^&#XZM `3yɉ_~̎;0 mۖ eҷ~|M?ӭ[7붹syaÆlٲ[ٳg8p saӦM4i҄W^yT8s /^G-O>$[l)Y椊e}bΝFkE"L.\`֭ر^}I6׳ڳE=IRI Er1KXn"IPz`Gm.6 4iSyU4ʂ$E&$rb(ҁ 88P;gie?.C'Z ktzfƍX,;˗sB5\r%=z÷+v3<ß pߦ;v,^{n8}49ӧOtVO+Vѣ\tD7vqqbŊ||%2w^{RJѤIʕ+Ǎ7Y|9Fח :wѣG2e ߿:?5j(BBCCK|۔p^lE~q%FԩS/,\~'OڽT7++ٳgӦMʖ-ө_>֭k׮vBpd"99>`ӦN&8##K(MDt?$UVF/e%]LHL׎אַ^;Q[-yM9 z#P n2h) q&p7HA6q+P3>ӽ?m8`h4oҨQ#|W1"_n8s >,+VK{)SXIxy  @߾}yWYp!uE#G(]F`` fbȐ!E|#>>5kRr^νsywhтBRR4hЀ /;sf޼ywב$@&$qEld 2啊$KN>^as6r,葠d AYKfqh-H#lɒ)f{\V>gdk8e'xBǓfM$J`HBf{t{TTJ*{n+~i֭k7S̥Kһwo¨S]\2>('N(ߜ+gϞL29sfzQ"Arʱlٲ;jJ ZjŹs) v Mfw=Zj+ZEISvvv+W]K+K9p@>#Z]r!5jybbbؽ{77iii-[q+ؕD !p!5עGi0T)$1QB[{&9#ɑ7p=$a9@?t-v`F6;z`];^T飲Q,Iҳשd "8FKqH G0/,u6mm۶ŋ8::ҺukƎKΝz̽pykTCRSSE={ʻKpp0={VGwĉiٲe%O%K0rHΟ?oQ&{b׮]}mo5ϤIJKxxݾU!x뭷=zt!L =zѣ4nܘ[s(ϟϐ!CQ+WfS|y͛y7FX,ӨQc59 't!$薺Hw\@Vi hR/KԶ(X,E^jSz$KUiv^hF7Ti4m NeX(&g .Gb(pL_^#!eӦ.wBRX,yLLLчPlYN:ewX\tqqO?gϞoߞ07nLVV=.9pttd׮]%%qƼ%#dGG={r}ٳ'sە9ki(8s 7.YYYܹF5jĖ-[Сw.pݻٳg111 ׯO=8q7o&ܲ^|1IH؞;rGm+n*IDF ژdrk@'FNHuWsH@$iAFT Т]<ϜP)cwiƀ )sIܐue`sZ--Z nFnzo{ˋ `6_>m۶eƌy> [FF`0n8>s6lkרW۷硇*vU;0$'']jժEٿ!=Ѯ];OӦMowڷoI9G||<7n,eGSN.,jt֭ؑ[a"##ٳg{ڵkFxiӦ Z"11@JJ BN=ΦM)`Ft|@`3"$%=Lej1k堧T#t)$1ڜW6G$Qy[+MA[_zJfCo -5jaںdOUߩT`v 䶋ċ /4b.׎8;9jj4>}:UV%,, Q_ӧOz*&"##R=: -[ЩS'HKKc%mGдiSڴisWO3f0sLbcc풢-4@t7Le[Fq9{9{MBڵy7z9vCŊyWW^Q/hժ{H/={w#G.]uLzȒ%׉~=U RDI.^Io>xi)$INU9؜# IR޶9]34"t)Z)P~p\Qh~Q$"D>uY3I܀69㟤31}(Wn[}|}%<=|n߾=O<...Btu>c ] :u5jTRRѣꫯJ\jv0 ;Xo6#F(ބ +Bܼy7oZW^%:::טt,XPR 6xB?(pTjn$%%1a„ Jmtڕ;v2`իWSV-,XP#q=zM{}<T@l$ 0!"JsCdܴנRoG R~JJ, ,@KtP[J)b$SPiB'LZOU{(hF'#QO ЀPŕApu[pdggJ\\m+1g̘A^8uTzwd=z4|AWSRR_e1|[MTݛkrҥjZٳ~:|IQ/PƼ+BL2[ݻ~G>Hӧ~{Wb?L4~=Ν;.4]FQSN|->X...Vc~a֮ IDATҴ}v>sVZe]tIC\\?35TEEE?`2=oV/аaCoNR4ORRqqԩ$zރ$nHJ4AgjU:JCwuTUiJm:KEKR4dI8ټVIg9"wN6H;Fy+'$pyi$GzJ Qg 2A懞SQ9U|.*8Ϛ>L㳈dCԮڵѻntK,$Pe刭\ @8]3"BHҥD)R2MvU=B["K}ѫvUQ,:qSdMERU?G ~QLDFѣ^.G;"̩Ґ)cA! hiG6S;jJv;a,p\*xyym6V^Mrr2?ׯ/[ҤZTZ\>,~2P( 2^JТE >^ƝQ { ƍ+Q#MBʕ+GHH=S$HII!00sP-J.ҥKo[r_'|?… 7n̛7#Gm6[0kײRe7;d"G<IAToI"C2䀞RW~RIEdTʄN$T՜M0)41eLB;_!$QxWOR:HR)R0!^ݮ'Q-/$R.L7o;1$JkIZH ;CU<LǨU'2ydϟϫo̓"M" k׮G4mڔ 6K``ٲehт#Fe6mڔVWGB E;D6nș3gX[(_EIә3gW[n-~wlf%QQQ|L6 ??^Nĉ|gB.]6l%J8>(Z}{j%V8$5˱yV(彔$i-wtBGyB{6kILzGl۠6ѤRn.ypH-zH!QMiFĔ*V;V 8^K)IUeY}I\ 5U.0hOd+A=7p +@ XX86#i,]|}}f3GE޽{wK˖-ڵ+ͳkK.PJ#Gаaâ^NЭ[76mĥKg/iE||=zOD͚5 bԨQJ󋌌 f3NNNPlY,X@2eXnNNN,X!C^gxo|t) ";$P@ ի- ĶM)MĨf#w(]*#wt$ED CۧR_;dA2TU)R?$REk7.Wt ;-ֶ 5>.ڱJdέ)m3M6_􆾪R r围H䬭3Iiې^IIN/][)Z6 ݶ7{3Fzյy#(VWI+RS8(իO` ukwUw}fڵ_a00Jal6Ӯ];;@rr2...[N\oį]0i$^j9/eDFFO%RӴ}vFiM{F.NLSI"&h("N~T Mi[IC)R€N4TE[6뒜=m]uFKu tqD$Hƪؖ۞#M{dk~E UevN~xF92&(DGI;urbm['`;0 p)tf'\I ΝǧS.!ә9s&?0t֍;*/_Ɯ9s*8p˗|Eի_2{^JH=HJJG o 4z*UD^8|pqBf͚EPPJϏvڱa-FmwELL ժUh4Gyaz'4pBi׏ÇXc,^͛u%m}vnʍ73g888b N8A`` jժ Rٸ lݺ1_`c{c.kGoB辶K*9Jzɾ"M*ZYIY䠷%H)bk|Jk$9<9S+'mmڹiejm*lۼW7JGΩĕB'ЫU'2Z9>`GTcȔ0 $6)`<7"[O048n*fq;BXX ebe,-`f>}XpB3 won+(x'bmPt%^^^*6CiDGGqFNJ\\͚5cΝqcƌ7ߤy미н{wV\%Y[h/_'NX%&&Qr4MGF7|Si iii!prrQFkkl.Y.;v{i:t@PPiՕ'x[2p/!As9#1m7Z|f&\s2/ލ>X(dDHCP_*}UFj[&ۊ71|*J!5H*]F9;{ =f?Ii|Fm-RԍEETJiIJnՐ^I*4@9Xh6yXz5aaaM|1FY&ZWٲeqwwKڼ8`ڴidee&UTa׮]Rn4MӧO?׶z@&MdmwBV駟:vH@@!!!wuEPP'O駟[n|x{{G}Df4PHSJJ-ZZ˗/H! ==\̙c^|n&pֲ#G0a~///udUV>_ND-*a% ,dŋY4:Wr:QEhn U4J+ܳslV$@nnHnHi]j uNͧ9l֦RhvK!(͓#2$0IfMH+/0(Az6zb=kT)\KC|)͒L\?͛GҤɟld=.89g}V`alfV޽{y5Ujذaj׮ baݺuxxx , uԱjJ"&N.&֭KLLu-...ܗn:88?' A /ԩS<׿HSJJ  (gBZjE^sv0)SRV׺Ν\RJ"3K`RZf 좼?үA\NP.RBf$t]9v_EG=@ct"P*.بeD*}e+vyΥIXT$JyBTmMv롔I@TJMr+=f}UN`Q=TG넮sF`R$- n]  P |f)?tke`8gu,^9*CRgdz"Q 52m Z/ `N\ öm%2 4]~խ ~ /0n86mDiѢ|^[QD7%ҥ իW/~d9pM>kԨQ3o|8 %V4k֬24ZlG}dMm۶{иqcFAڵs54,|||Q͛7gٲeDyzyhٲ}w6[C%  npp+#DDTs+ 4EDv`JUJ=,:*}t:*"@)$amNS_ٔexFR+͙ڨhN&zjMx$BAGET,:p@`R'3̣UR)` ~d-5InDp)uO^[9 .8x#+b4d1H{kk<< Do5||݄+VԩSͽ <3DEE`v횧 4ۗ:t*N޽^T[aa69~%X6%aɑnfr_x뭷`̘1m999 6W^>>>]͛cԯ_?"ߤG+Wkͣ>ZK)0<<<عsg.c˗S~}͛g5;v,}Oٲe9y$5k/sDEEQR%f3nB>+pFB_Ls` h($퇃rvB6Dɂ":[Ʃ͔Bdɖ# Sx(ȋ{T+es$&H͝.ViC rEPIޟ+.v]J꯭/i˩j@%R(f; [ 8{NzCHC9TZr\p,8f/x9IpCY*h}ge@5=33y¦s>}8x Vll,3gμmfv =~c۶m;~tppO?- dZv,X6酦a×QcǎeL>=)ԩS1b]t!;;~iO:ut9 ٙ{J*y[쿐/dXӧONZLڵ+&G庩رnݺYou7̊+8r&::7o+=k֬aСӤIkhJJ}/r̂'߃Sxplp 塤!{#xHCbJ0EJ`e DJϦƫtZim["ze&[ YRn;iJ`F'y- 暔]A{{#S_ukkHR8}M[Ki^>tuRﳃ6;$ql W!$_N,lro8>K@$4 Tv2+f^U q Y:'KǴ4\]]11tP `0~hRE˖-7nm۶-$d,X={ХKٺuGyg~^Ldd$ǎĬCu>\"""0LڨQ#vMFFͣFׅ|@n޼yZP.\XK)0n15pٖ>x{{ˬYpvvUCd21x`jժM@7;=J:u8qhhą(Z4ۜH;~Hnb"2H!q x,TR$%[Ij<$ON_U@mrV#F)IW5UZ'U9:ވ#P K{NƢ;gxhǧ!o葰4trVF꽵 =5 .)720}"otzKK$%u?BjgLS4\ul#UCeE.=F#x8k\WO{Zzhرc"gΜc#Տ?A``ǎoߞ5kLHH>ضmKΡœ7 5S<9[pbL<nF"}QݹK^U|y̼OM1'"66&۞w|?c޶-߿ntk{#_i̘1{{=v3+LL&̙CLL ӧyGزe O>u{ժUԩӧO祗^d̚5;2o޼E,]#GйXFNƴ|tz @ÒeZ'L)> +\`vl0+[GnKVm&U!"&Y$iRe*T cJ_ETmNQr$1nԟm"fYn2:1G\y>n饽f$A'MZ/*tL9WkJner ҳW!)2L`2#^pN(; FGNxxn?? iUK)Ɖںe`t,e fz~J|e:vn IDATmHpp-&L@R__˼JgopT\ <^үVs0U+AtQz<ݓz-՗PɻÃ+VpA͍Çr/r(A^}}O=]ve7k֌J*ѯ_?fϞ3]t!++ۗ^Xv-ݺu+*| Kjt|I^|Ţ^=bڵ{_Z5ϟ[ݐjJ*Uhݺ5W^eƌuڕ֭y84? 5X!_Ӽ%کiQ[/0[ )ctEF\TGUmHQJ?J*RMWqEN 7(s.K1)%P=咭[׵y3[(6Tm\Tu[TL9y"EC [y*%9L=61TI6FyJpCns~jyH0gˊ:!:8&@`s3'LG#Zbk5pe!="RvC)0;ʷ0'C80z e*Vڶmeʔ!((VZu9Nhذ!;6l 88nvԉ}v,d]Ha3Y =7$$H 7wwbe4[LfɅe_nCsjb@jŋK/q5v- ??#gΜ)H!=n: 6mbӦM,X@f 1ծ]ŋy={$ 0dF4egg3~%֮] /իW_hH … Ҙ4iom~v҅5j?2j("##۷]…1n9WC0}ygqu;7 I&ҌYȢ#tc L`B+3<+W'&µs%|Ӏ.EW@Ĥ ȨrvE&SiXێ8Dӂʉ\ ]lo qhkS)HRU3<kK-iv"5he/,woRs`6#á j-roIytwjds 9<ؓDFFn:ʗ/)Cr nܸQbw—_~ŋxO),ТqMv|2e*C:j\Am"3~f;GR?E?8zҥ\䃄>hq\vZ-p; 2'''~ڶmˮ] e̟?_1:='`g<' Sig㣨7ݒMB PCHU ((^;fCPT Mt齷u8s2AIBI゚~̜93>BL |}#=\\b!|GA/Pm¯̞;`G2A,>tRZuKKHR""GD~rRߣ54y09%,h]xFdii K楁L @A?EKJ<T]c`? $+۔t= Tm[%;9 uSS @mx71o;L85y~=*S+zBgo'|`6yWpV"V 8[3淣h+P%6l`̙t;w.:mT +9r$'O_,4c|r'\´ihڴiuՋYfQ^=f͚Ś5kh߾= 6d[ǠA/h֬w&++ 77Gx6( b)`́9z€鄅m3w9P  PKCn&JiLgp7Y/Y** A_Ϳ=rBF8Z٫- W@9.6;()FV+NVIfn{YeNLo]Jg֠q}a?qw7b4yݹ;?WeɈ`wd͈XpDno%Yz >UI4;7!K:y ud꼽 de#S@Gʈ_'*| Jp Q)X]> X 6"OQfK ~&G]̞d7d4hb$v 6pKg!; WlY PLw[?@i!`RA7_V|m(QҥKcZgO>!)))OGf33`@ ,Ys'˶gGG*Uk:b+>>/B`9c…|ٳWWWz!Cԩ}M6`|}}뤅Nk.~7\\\ի={S5bcՏgIiU]IhBGW^9=w!=g)YԪu;7/Ǟ(AR(a,kyy0KxhOC@(fz(@h[:}0Yg4r6ɹI4&\qNdśEb@' }&`"K@%2"Db""=W M Hsp\(5 ,Rѹ'h KC`_u4φ)]BVTos O83~<|e x%ȱd(d3Tvڕ3gj*,˽(&石yž]QF:tΝ;sMeys/?f3gΤK.9f)4h@LL=ہ<(aÆ9sbժUt6ﹺHIIaEFϓؽ{7^^^Yɓ'Ӹqc.]9_EZm~dMƼQf֖ pr.ܼI=hY A>:^&=> ?x$"ӏ:5%;#3HK3n@t*~UUVIIӀu! (z$g[mqnVPVF[G gE:t۝AQXnm@p5xhVs d*!@כt93"@'|"HQ=%JB%{IߧrL`/uJz/em T|`΀ d R8.EdfVJ ̝[Q [I%f<_XmEayCKC=2O2dL8E@@cƌTR>dbԪU O2+gɓ']6{y4ۂN7n*<0GGG}h,].s̘1lݺLa p{"v"55___FСC~z.L:L璔,pZrkx+N~^'&54nZg"[IFfiW"߯)1G=…?pjWb֒, ݸ.U-e].m@dLVIsKi;f ]W+5K$RA3z:I]UjHFWAIrqzpn"u[hNnPū!iJh-`N2>{0yu*1r. lsPiM4 RȮШ4%!*Lo5 WR;aAѥWlUL8KF$YG W.B5jիtvIx{{>zիWr6L8Qr/gժUcT|oC̢{LJŐirLΝcϞ=!Ϡpζmȉuݛ/ت?ٳ9slnnFbCh|s% W{>ןG7iwM^Ȱo]֗#>dnuק\=3߅7ٓC+=[0$^ҁ& $*,B$%ݙbq8!4I'Єd$rCor6HwxvĢ.+`D2KY|$HS``"Z$jbZXԙ' dd<ɚ%痂wiquǪ"tUһɆÒ Lc^ e\#k n@NPeHdĈQlxg1ttJO-kYR5%\&4jTk[`ņU9})=ڶm 2e < =w}~hFF{™}رcٳgaO#o)GK,!44իӺuw~@ _GŦT9k^L/Bn<^Q(+XY%ʖ}UEQ]DoGneґk4pCpN_At7 Fx7||[!{6%_9!ؕdߵriTfi} ⋘Z7 x&end!R6R$ޤEuRzbH@0&Da'"ZIMddLyy%H-U|.cd99Wz1E@$1nusaFCiG (6ܹu; TB3ٔlIG&4iM&O6s~y G|A&A"z/jg;{`W^w^\fQ|\E-BCCiԂϟQ읩իW+ cǎѺu{CvŚ5k;v?NcڷoOjj*'-gqi0m/78SG;jԬK._K̛͟~ɓ9FR ֭htnL|ͥ#3o;כ*U:'EQk >G,&DH[dF5HY+nIeR#s:"?+ 4{)Fg(9]XԹȆ*F݊&)BKGhG  |Z\AL41':|i4ᔚ/i l:u ,TtOR:`>G݌֭+sf8Ǹq7~ehXNe heA ';vg矩S}5.HIIͭXV7feeG1e>Q\hЛB럣~ԭ[Ea0L:taFITTlw4EDDШQ#<<3`yPXCQV\1Rt<\;rԿ_>7c]M9utf]=d\<͈#N T a׮S mwƤIXq#R8żbAOE! lu Dǀ*p`d*T yf*P$ D0F#ҩ @u+uFh)HHmј!AV9hRw e9,WNGT4h S gz/EQBeLH&ӀV:1Fb`R`|+NRDF+ٳgآZbݺuDGGT ^^^7XTqssJ*=bi:{,O?]s,dHHӧO/ 3f̘dbԨQ=|E=hٲ%F#GPtu/̘5s&O4%p)= lҚ R_/s|Swüy#xGO&3o>WSP9qq(/p־8y2er2)m?%fu?OudA:Zs{ ;\RD.5H^hz0&wψS-uyEcsdwO=sWf4@2 {A'+F^9edckK3:BU /;Ncp?*WDөӯX,Vqpwweޭp0#F@Dp ##G6 1sL Eh)`XV~m)UTaO@鈏/ڬ"aY << ^o@<8]ӪYhڅP kL;_CJJ Ǐoep"$:W4ВXeL v4 dC!X' H@)IhV+9PcEY/h,:g1G0pq]}N&AzHN}^kJ== BF9-sx!T.BC%.P}ev#ҝ!ll➶1۱`JB&W?e,YbF` `  fHAÉf=,)~&## / h믿f>|X-HHH(v6-+Viov<j<6*۷ogɒ%۷7oGÆ 4i_EM6޽_~sy-Z`޼y}d;Z l4C(9'E.>KP+%Ӓ.A}H#O~$&=j 7C h=ܜΩCٺhnWK:q`x~{b#۷ij7]c\شʲe5gDzuk 5JBh]rx:g:8tcz<˖Ȇov[Y'j׮M>}~UV{\D~ߟ{\"5@ܗ_~IDDcƌa̞=86mp\r 'Mľ}hҤ s￧{o5gԢE zQV*U7nT bСyjbWy+C$WӴȼNզ źׯ))(r ws tҼK <8q޽#!=vѣ/K`] pb/oP`Nd9ٌ6.@2"8˥7A'`M(MR%IT- i q-MЄҐSK'shdE`:8ؓd٬X ] pzN?6<D]*xS7M-E5DSQ~IVͪUэ5Ȕuˤ4,O0 ZTje+~q9 @xx8޹F50aB~i7o;w䥗^uݛ_~>;vǏgrÆ ٲe iii7>/yfjժUq!鹫WK644Çۜ<˗/06tJLZ&3}vx]wOΝy'vq/"}6A|puu>9ju/Wff:pD?ӬK.R% s62$UIu$ kM䧃`YtBdGh#bLK-$"447-M)h3g&tLTG6Moq8%LY']eԃLUW|^__oƌ)С)?̑Mv>AZ-W^kkc`׆ी쵲geЪ?`$&Ndd0n4n`EXTW?iƍ6ѽ֓`c޷v(DÆ Y`qqqŶ}VŊ۷/qqqE34/QbžńTp=ҳ>˓O>YASښ}RF žJ yX>}HNNȑ#t!_5ܹs/RJTT遌MիƠA[. .,(, %Kdܹ 8_Q pتFbllٶǟK||:85j2voAJӧ=`2qu$;0@,6]PF!֧Ѵ=a;)(myAKtmD`H$3K:j[^mQs-i Z1Caz9>u2%?|ȔhGo~sslӹ%r Ie>@&Ahmz @̛ך(Wn)gΤb6Th @&X A:3p %NLL_:#( Γݎ;JP\*ӕ`;GscS̝+It)f3{^য়~*1c[!ol0 Vkr?q_~e233sn޼ɸqCppp[xqޫ>lƗgt7 8ʕ+Wf1e6 VJXEX8  o`.B |O# RE mh@%0=HEŢ?|RL0qo\'s64oLrsG><=="993NuaÆ tQAݝ/z "d]] ®a3~~ZqDVXyW^#F^z :42dH/(hWi"""~žJZ#; /4u<ٗ[[|;K_(BI$A/%J$OKsԱjCr8mZ, ܁ .^E_ '"ƻzggY@ٳi=( 2L eE)CMx :[`O G櫇 H7I;q>?.#WC>}:|111ŲF 7o,k6mp֭bu(p Wcʔ)9z+׶ӧOcj`,X \r9[ՋO?4繪UҶm[^{5fΜYsyME/"ѭ[7Ҋ`ҥEjxx89WRΝu&NR,*уy3z+zz=-N:wbcutE.[rZ3XY/"֒`$جD,Kq6"*< eTDM-e=h"_o-)[2F `Qӱ.htHsO7yvE>;ylNϛ~wY̔)m <-r~ 2h~_p``$%EK3ɊdƤqʞ\,Xp֯K,Z$/A?},Nɛ ' 1`5jT,9;ƼyXfM:aÆѠAFQ)V@=RM6)S0qD&NxVQڵkG^xWQFe֮]{m]vo߾yngT)M4 www~|'*,X,4oKီfϞ'f0wcM JJL/y OnՉJ*Qu6Sdbap`4Z?LрB0 z;8F!RicB:!X"F, dWۆ$uITkG0EF4Hg#=cJ$ gKݑsi h"q>$#SirJf} @bMl)Zmdbȭ[!l>b?(3n8oI"ݫ7@6 ](H/c=в)#?ƵkXdIfAqdeeV,CWױlyM1͘1ɓ'ӥKvsmoڴ)e˖lٻˆҺu~{3gb.L eŔ2t/3~=vn! Nzt (>Z% ;m``;-[c4yf~bڷoO틵3̙3X,+l`k-w\駟tlٲ-[ڦK.;ѽ{G&L@Ν `ݲ 0S؍\RPByz M#{ZH$-Mr6-8=@c~$3$5E݋!$%xU fI9Y(dܐi3̝{M oZDFzp 4ibf׮Y6.oPș3Ym[WrlPUR =w[}'f 7w%,e'qIlS2^e.qF(!!4eʔLVƍҥ SN-(-ZĨQHMM-֒Gv yJ&Aw?_OС=zۛ`bbbHMMr̞=Ǿr1ر/>y+|;8'!xʎe]fXz{Wt[`auB':BðY#¬sJz߈=W&K.%>"G磏>bر滎JzfDLzD+,߈E=ajb*Ǜil +'kh!TdKS2u8nס$T Hd9H*e3tu?Ns#]w:hN2fQC 3J6֕|2(Ǘ㥨xRZ ʗF|Rv,0rd,n&p~/PcU\|-UFS|b\t j[`૙۝:A %{Li< (,@Y| HH5b*8{L&ɓsÇ5Q\Yf̙3XeRt>g}FΝ)S ]t?ѣx,G}Vv0|U GNc cf7!b*j7QӹV^fgLGR_x. )x|uhْxp( W@Ncq4iW5v6oM0GySt ,X?oDQp\ḁ~ E z'!^µ,a!`b/woIDVIGVVYtL$X#Zd = 6T3upFI d~ihK`0l;jZ?bŊ99F}vnʋ/ƍvuлݭ9 7܈ZO7/ݻ¤zDF9vXaO!{%&&2aG'M&\#Fx,hȠCwEөlV IP) m@#Xu+Kii,Xp&- /R|[%%> Y% RO.VŰޝKb׃|lʕ /33i#>.Ac/ :؋X7bq VO!S#{Hť"$hrL!eŚF[3M=&K}H OiKzMv+#7)myn6@Kp $d*Ψ $? lnQ Cd K#K:xux%fԨڼ; ~%m`r`mdA%:8 0u} ׇeo-uD6qu6_u]w|tt҅W;lr&M͛ +^} nGY:QQQ%Zb֭Ӈb :iҤ /.ǰcĞ`M_}-b7kd9`;\}' 1pf?d,0qm IDAT&W(8w 3Sի8@֭9}t[FnAm6~)ӦMCoq`9B-`Ec1eH dܺϖ-+T{9z7hGx ?HCx1heth#[RĢD# l(`EqR-wH<-e'YY\&9YhB hz%IK=丢es昍2eT:L* h,z Nͺu2% 0n""` U](9SR uzUWLTu,1׬(k\nx{۽&;wpᯜ8#ӦOR6li;A ߙ0k/Ѧ+CxEhh(֭㩧1E1:tɓ'/(f3Ǐ/y(ZLÊ,h=z4}C,^  wCNOi@( q 2Һ(CժUYb}u:.57EyM=6_קٴ f0Xv֭iL0?@6b m8yD0@UkZbO7PzL(8v#ID~@j.!@kg$= Drh|SDNξLҘ2 rhUo8Rc$[i4,^K@y~hb,\x4 Rシѣ1̚U / &Ȳ 2HK}xcכ +?X zw(XJЙ H=(0o샐/%'q1{W>ϤIO븖أpN'ťmASHH7ne˖yڿ+V 99-Zt /_ٳ߿RlžGTs+iӦM嬗!ux#</&q})6+.&5դU'hҤ JY 6.\@JpuuΏ06} \}gæMikҾ-!>@ǎͰZ&N`j"[6# :p\tJ @ DJƌXxW҃F׮׀cp8p _EO2%Ah@AA:tNBu Y*w qeK,HcBEZ7\IKVI" IKdFWP?)ܶ`)UzI:KwmLJ( SRC%hRFS*ѬdҥZj4Pp@A73H,X%A_*J̮NdDݳgI._nDLL"z2gG̙'Nu/Z9ÇeˊNUTaʕFǘ7o>lM?#iiiM{} M_|-Z`o2#$HOH%4hL끃y≦ԩS{gdbƍtܘ//0 >$'ȳ<N<(z,Eع-`.;wxX4MHAk9bC+wfDjIgGLɒP JW5WLjS BKRϑRt^BC;Є2-&@+×v5[ S%%(DVI t(iNixҹz:d8&Lj_˔yqZHSP ؇{9 r0y!DեXB=!#TBʵX5n@ɒw% SV ͽvmojz`'!Aٲسg&L/N*}2-ZTS(v'Mx޽{QNϛb߹ݷJ4LƔ ma*U>6nHJJʽwg,[=pw<2 5k3sX8`2BiXॗ:#4HKiR"bі2\8Աo __4G̡3u@kK'dJύx+dŚl>V҉\2F2uK0-]Mh%i~fBv/(rrҊt ȆaRR!5le 4 * qhL7y˘z_[sDEsaC;9o ?К5kXnV*(lœ9s矋5{wb ReEQtp8ԭ[ ZqHHH &&67gӵiLϱcI,^V Ex3g-4A-hV.SJF[pc s9b tCIPe> X}8:N9tUӨ'͠+ i0 64{%+ NǙtMhm t$CZzR!WkBzI4MlV)Y5W{#)';7ԿeS^ZЌƲIz&I*>Z_:F ZzD_:/0VtG˻(gI 0KMŮSԬٌEڮԮeK/Df͊u喛9_H[L&<==Z"|Ȑ!yzMnAY$hp久JQdvM^{,EQa\|PX35j0={/Suzt:ʩVrX_!fp♆XheZi"i@ K/#hi + W?J pi>) 3H`0A)4qrL)}2 %`;mV_d 40H?$Y9g@ġUIҢ@HKיjE#$`~\=(dhLWfDԁ`?ᒭ QGz}2@4APEVz6dfm;4= (1 'C9@H<ر /p{c=zO[ccWoQ\;wLLL$%%H@@v>)44~Qd, BB]Ο? 2gIw1a*f(%E߄XwBt-S :+P= WL 5 HJCRKۑ#rZ_. *Σi`ZNhi>)0i/唍$pL;xo4Iv 卖mKܝΝ곪JF- (@RuxTW#q#!Xp P8 bEZT(%-)ŋ h.3' -!'s9w2]k@dE#ȳ;"R FCN$.+ܴ$I2m̀'X"$ESq,y/(bG@ K tȑԫggg,A&dɒOnܸA*Uطok4޽KŊپ}; 4!ݻws?i׮-cǎhZ f̘1ONN 6oތIII/b֭ԨQ4jC_zLzJ7F\%P T G ZlH bhDIAD!~,AQCLADZ9BN$ ~;-2m$#" q3Rl Lf!Ga&oCl!n׌kSlBdEAcNΜx=8K4] >1`fj3x ᐖ`X[ztD Alrkr,e`L'ʈRVnCJNzBƾVS}HEj2 "H5B{Q31,ҰLg {JVt'(#TgFѼ'˔J0?<|XNĮWsSSFEZZnݚj֬LN1{l_<5-[,3KKK: A^{:qzꅯ/VVVxzzҦMBCCJ&MޞYTPʗ/ٳg_jL999g. qc fMs`UTf͚yu}4i2(JP3kMiٲ?IIKdiRNV!H1yo_gfIÅ 4;vlD!iI{:3fV`{WXh$\~F"jXp!l۶iKFFqqqxxxv^۷A̟??Jhذ!}eʔ),Lr4bɒ%DGG3bʕ+Gtt4| 5kd޽4lk׮ѠAV?LZZ&Mܹsy$ذo>7ṉ~\: 3Ehj9PJΟGHNV刔5#FxyihNay1t5胣5Ԭy!NA<ڟLP"j8}:W:-?AZY`X*Jkt }7(IP0 is2 &K\+sL+Y 4φkF!Zb@$J&Kxy IP4Նs%$ i.K >uz.[pM) i%q))687 0[r|AQN]:ҩZm&L`ƌ/hZw憍 93l0-y-T*G)Q&H.\@.]{+ǏΤmuOE{(S >D_ӝ;w'<%aÆlٲ%ϤiƌDEE>uGiῒ4ݼy 6OYӅf_rҳwh3j3ɔuԩS3<|075ӵ@QSi{`kro?@}3xRڂ1YkDDfAq ]16;s=C鱐],gJZbLsɦ[H&_D$IFdfGFvd&0O2F}|?c#ђc$1,D$JVn$"ܷܛɊ\σ[ZZ2dHY4IJb^ QKp8;;j*VZ@xx8ԨQ6mڼU#.^Hn꺯7oܹs4-X+++>JxI~ D_t*V *o>233511aժU7bccqttaÆ.]WWYfAz{+@W05ԣI:V5ONO!b~l[>ǨAdI?'pfV\F-2d( RwYYz\]iܸ%ex7:ed@SN]GPBMƦ9ѿ;b<F̗uv1z5!2qNCT%B#Lsʔg0BB Ő^Ѱ 8{Cl%2m0j&GQEhboiy_Ni ۃHGI~$!'&+,c˽e"HṔ\&\Ҕ20V&-1ѓQ* lL||dTL+fy#Z«WRH322u>aÆyG=@w۶mܼy@~׋vQ&ޔIKK/ 66;?ΛJ%Xd }ѿ&I;Kثq8p +TgRq=*͒T*K>0iuZ7 Ҳk{i )eacC ֕~ q^̉>r~?Zm(+Wv{is\-o(yIH#Mxm0q^;w&&F|'uћ><'@3~4*4` w!T~ak¹cT0"5-@o*ֱ>%XPdE]B+$AcLII?$A&d&BRW$RRP-dRk%t P 62EwGk!+Ғsa1(-\s"2GTpGP!i %XޑJs֭?~VZq5E;͛7)V9͛7 ]vy޳cԩTXgggrҫ4c^8黯/h۱]ot?}{}M~eRUw9eS8u|3?@,8z4ŋ!ZAD,e>TDKgjl6S?gࠣsgceH`Kcme>t\r mGԮþ}$$̥rL+V{į v{۷AďRRM.]`b"9T.`k%xu -VoZO+YpdA CJVc5v[A+ O)w*Kda.S$QuTd_å 8ɔYfn/!e/cOoxNx-kJꮀ77s\]N`޼y4moovITTTNXe^V^zz{nU}O>XZZx;___Zj(0Σ|7L<͛ӢE N8qimxbf%**ԅR1pBbh@J4s^<=!9hKƈї& #5Z ,F0N@mFpZQi0)SzXF/% F#-yȶ"2$1"yH90uj=r;z7lXK1w|U4i҄q1k,̙Cҥ [f/= K.ԩSuopuueĈ/zYIS͚5)SL~oyBwعs'*={gϞTg)UwrPQ fPlr0;y#PP(ZSznpm2}&#F2-g(i .ϑ!cRk>):$E"UV!ONFRF#ƍܹseݺuh4/UV :ɓ'iѩS}Mʕ+Ǒ#G|Xv-}A@ syw zUVe߾}yΑT=Rj`V͹{7~M5}~IcccÊ+Pm.E.լ̙ dہKt>;ДF}HJZ{y㳆=|x10V-{LL8|85L5͊ogqg=>%<;( b|<-32u@,붐Eĝn b]M/еEo "%(RDe3@_La@P@J3BLM 'VnB0wA1i  "-w%{@rE jF~]*4k /ԪՀGo\FhtĖkw)4=yNn'vF#N[J: ?zR]Aw3W^cǎWp/;w.>5YPdIر_MH"޽eV^ M4a۶mY˸w ޽k׮iBQcZ+F%n?_yy$&sJņ r\(z~ xQ~F+s`+EBN7͕+Ԫ"ElȈyΎkgpa= IfKL ++sջGzzz|؜eKf`9!t: 5z9EFR:^B4x!VXQ 3 k;0( :kDv GK7JP$i (k?=(Y|!Lcҿ@elPv.buVҺ(ݻ8gc/Φifh^GDD* IC-c0Z h R -idH18w Nr;nXш% n${nPdeekZ/`…Eÿ!!!pDVV֋ѥy?u-ߝ]ll,u;UIS?"## gϞL6-K_ߟ˗/sf…9 ƒ%KߟsѼؿ+N}瘘knݚB kh݊s}dD?11Dn* +'Yٽ;? gm=|x dXZN &ݥod?zOPkG]], xɒgZo?_V,j 3 Gqe"tqJD8ȭ ƀ(0 ؇σ[!);D4)pL6ϕߒD2<ڪd9J `4mڔ R\|_޽;L6  <ߟӽ{w>~ޕ .$;;OFFK,a3Qy lxi-pG˨t@9DI/p\ < .j@f28t'NCZF<s2a"+j(Ή]~%2o^}GIT#dDaga4̔DHVv+9""1r$_($cұ[ Q *^7nxݿIOOի}BQzY߿;٦*/pwwh\D&dbGNqɁ9rdNFD|4i҄ѣG*1Px9|+/#/_ՇԮ…8mѣщh5][ܹ}wnq-qHnP¨yf6p.×;j1 0n8ʻ 9D%\nthTBlΝ[AR#ñMsC l`(&L 4 \ 9*D" G!I)@賤KwmZ^ggߢ#ЩS'Ν;ǵkި8XQOm"&&Hɒ%{;/3gΰi&OJEo{V}֕mLܪpG$_WXXXoQn]LLL8x`߻w/ݺu{NNFr2of֚ED.o,ŝܼgSTYso Q Kn37`{*$Z5g'4sW'VzU[r Nq=ڐ]K/WN )/f߾{ٙbc޶LXSR-իqhW8:co/Ŋi)V,n㒤Dx:AVwNL(,aJK@``6- c7O6l8 'Qz !|Z PQ/@)Uc;Kٿo7l&-P'{uca~K*SmG@U JCvePn?u BHrDDr!,̚[$%R\ `=F9FGn�{{ BR@.VJ1tʯ`q\ 'E1b7o_}#K2tP._FyHMMe޽o$6p]6nY;>ľ?v(FwUlkFcޔo[=Gyoo,\ŋF/B_uDɋͶppU8aaj\]ӑ@ff׮q:!!ͯ2|Ix uS pZQ`:|6Vkٲ%_}2~3W;K>DDh7@7ZuÆۈqmlGAu8y'GQ$:+D|ZAZo1};O0bP]Y@=D\!L$.P\φڵ])R^ONM`,^|cՙ*+̰a1R0 A=mla8aC&&*.]ڇHuA2m[8=ٽfC<aX<aNDX ?j.E 7fϞM||yfꌈ `ԩ9y>vBDRi9[DuuDIZHaxtի<'סhNߡo߾X[taҥ|w '۷[ɓ'>}_&Μ9z*~)W7ضmg߾}ׁh90dniӦq z]y^yw' /ٛˎbV6wpoO^SrN7AcINy}l޼7E0P6_\axڏT~Q.XNWʄ^ N:zN{ thZ2jT]usLRPoB֌[SSQn.n"24}CܾE}V`L.,NTiP;&"Gq6Ӧ]`ժDƁ< ؆H-FTF kAF,Q@Ʀ2r,^ N"(!#AhRq+z=z!Rm^nZtgc̙ؔBW[D: r&>}155a̘11 Cq+@K/oo[G˴4$SwtTҐ"L:''',X֨PӧOy9rHa<ŭ[\sQ|u'Ly=6ѴiӜN...r9Ο?իW)]+Z"MZ$j0ߜzS?zd{m=vϩ},bubgDw%s0)`ˢW `6)[+ƌ}@ )qqPZKJqeE)S q!+KOffkpX崬_ߒqB!_p}H۠U<0ti:G!" `c"Pg""jr ?57m[(h4F;pPVEDhvҠX#p|TW)w[tL'1@K9n|2=p B,SF0ZG ? {=<=mؾ$a橆o eaaZH | ^^^z¶mh4\}ߘ4iJmţI>~ǫ╯t({-4EU݃SSS\3nIH)7i*]8']6m3Ss/=3͛b]2-~2.XJPgL5;[={4i҄3f?],;ϧFJtZq'NS&ՠp创41eINDRMLL:"2A>jS1Г .vB86z@rR qqr$q QEƒ6+W0b5:^R兗|?XEc .]h뀌ժU3g՚eN]=z,]pƎMԩSL:$F>`],Q?P` FRѯ8F΀eQ&-Yߚ)9Yen:RSS0<=U>}=ժF#qvv@*V4ܹTh 2Сe " w>b(Uʖgcn`Ӈf͚ajjoy"l[lرcx{{M"E(R BRѰaWn2@RQJ3ꊃC~o@GҔ鹃|Đ!C(]4ݺuՕǏ~z_N``+ʤiݼ<~6X8TC›?1'K V%8/T簈B죜KH~/p5Sa[*eLКYtv̙L^HHHg?-. Gn']!f͚H`_~ΙO^0ZT>ܬ\ Mцl.\hwߝ&(2s6ǧ9:DD`rE4d@5IbМEi(J(_ߦY'ZOtc&7a>\ ,YIHĉ6>h sT^___5oCV %ƍyf;w|[-[|Cs:Z,Xؒ@/'ڐD.x`%A}?gӖ,Y6ī<|،w⋚XXߟSqE`߾PTT^QF7B||Gر><2i*^F8zO3mhܞ bKHR><h9p}*2g*|p3;E c\9 bY{4^] ,,Ls27>`РAzv(,6ҰC_.Hsnư"d+gfRnphG2$‰ٹ"nU(a E2wdG!=Ajq;gz| #"OfEvK7S8[>{õ)6. ]6<4hG!ȑ#bffС}zMߌQ<涕F{#NO&ӫG}SWF z(oÖd?1%ՠBFpم&.&c- 2^DԶ@q`p82bD1ll^^عi)qc>k׮֖͛SV-̞(CG3\R|y  $%FLV OHdRL=cGEz;D222ӧk׮D!KZZ$''H˖-eʕ=zЫW/llle 6]x;3f(0xB-[Fʕi۶-˗/ANG۶m9z(cǎv$''sٗJoڴ$ѽ{w>c.]rIS*2uP`)afF&z<;#"(>ݝ?7*LgFd.S-ZB׊5p!Ͱ8|8qj_r̟XXYѶS{9s[ >sT6N֕"w'a#R !d#˓i؂;e?1soHMUĉ̞},*Wvłxfάq,_~ m>`T0?&DtY'%J uj8ѨIRyfEHI@<c߃-Tڵ{G)\Pt܉Fxx7=`׮$MyGQv3fC$@PCW&Ei"RW^Pi""PCG@ P=$@z9?&*z_\g9=9>99*'Nl>`'gl'WLw΃%:C+Kfav.'|E,)P-.GY嗷Y uZܔ⑌dأu+T!:bcbرsWMV̹f4J&>>'''E_.fիܹcb6kPQQ|1-:40۩(V*fa˼\ha81?R(t};aٲ,X'O6E#hk HO&q`M|qFOKG\jaɾ ?ֆ0,{-9qfZz=םM<9}2uj;}d[kiݮ9)wr4髯x(+Ѯ]Yf3˗]Hi9[ D9 3>#K/a*QFƍ nnnlذ 6`0puuՕL&L:رc2dXt)޴jՊ˗/_S\EPPtE3gM4$~?+_3w\ZhQ0= 5kƧ~JݺuUV0>S5k}?2i*0ġxa_V3eG`2wu"| cCo&VIL&75Z/,GLkVCxY*;ݻWb{~Xx?'NfP͇|>w`oٲkңGG=?E`FrLы/ŒtyՉT#? a̘k{Sr?x Ðo/|ڵR/9kޥ- {[XVJ MXʏդ_Mk0= h5 ӛXh8MkϣfefW'puǘ.#:HetX٭ lLLLYY&5jh(o6 s!:+S,p;L0[@pPO^ikq1yR^8Oڎ\}c֓z|}})Q=L&ƭ[)--RVVV99sf؁Rp-.M+#8)..e˖$&&>U.]Jhh(III$''LRRyyy :ѣGsb!NNN2o<E!???O?#g6O=>/$$ߺs+<::7oꫯ2n8.]Jrr23~ݿ̙3-ZO͚5)Uw… ?"c0 :}Ƌ!9d>Foo[+ר[www<<<www6l䉟2KǠ~iw]Պke+G.[Ug&<$?c ϘCvv`&99Fr'-]!%DrV8/A{}9(Y6eBB& ևȯ6ȌJA~jmW,ߣ{o7{FѼQp[_s o-~ _ct#sP;[^vd%F;_ÞL$5ҙ<]c{xOA6^ZQdf ِ7NdF~sހ e=sfiGjLHZ7?%6N4m\2NF߽6 p*ʍS͎9w(` |), 5ϧpa3@~$Zɕhޝߕ#DGGSBMwN6mZCΝ9|0۶m㥗^V4h4rʕХK DvŋiѢ x⧒}'"Ջ!CرQ3<*; 0j8߻pfΜɷ~i8;; 1fѯ_ ,' 2X3pw~칇( }w9Rkrzv&2P$T+oOb$Vv ZM MdFh46TEKw@8BvPT~D>N]iAfz*1> }   ~weҥK+tkz+фgt SB!4UrUͧE /o0aaǀ,6lN~>4nmJhr{lmo`|KcukdXax%A ͽu!H`'ync4'++GDž@}`#Tc:XNZ +9:Ew`ɒ%̥0ϴlOۯ\kײcǎmyT?HŅXz_b+Vߟпu,L&L7=M@u,=G. xiР'O~`ė_~X6 OIy;.IAVX\!5),?΅ L 7#:`kL&"##zgpqqAJ{ MW?@Ƣ6nI~ЦlЄ S V"05ل_୷XQ! L8ؘCThVЅxAM&µlCw5ظ^hze*@sgk ?F%,Rjlsh 4Uz8?&@NC8DՄ_ L{ZԪ{tؑԂV`8JK \Ï4YiS{BBΚ`Yh tXNFZ,cPV zl{1x,+z bAmp=ъBj w}Md!}o{+)kEXyܾ=;0~x8&Kpp} hު5jc hjAAA-CWaZp!jFΙ3gv_mr1ذs{z ŽQţK2Ri:lV]1mڴ!&&P*iٜ۟|Jс];oZKgb'|RrirncN[ r!s(QXgp$؆t6yrs\F~ӷeƍL| o ݮZՔk&#hgӦf٠^MMx:0CښBKTkp Zж嬠4v#b!ߨZZuBE/JKE!t0zZA6*!HNe.\̍7c@@EjZ plN(!/Cn(![C4lI@.G;?8t(0ba@e۶X|G0V/Y@-hb']7~ڗFsנ<ѼJ0! 8 B#hفf&b^GDJٳ#FPU]X"e˖ѲeKõ,MҥK9rd=3g|>1ZT^Xv-kYܸqA( RRe:GlٲDFF'Pr~4UTEY)"^vQzu*TPlX#jT#`d.3zƦ`6[wB{:Y02ޢC,Y=W§Ǧgdd˶m\U7UHeyB y7G˖*d|W&3kM-k- /h' L_93ٳӉU^۠8_?\MH !Pہy#k}i(l}p"U0AE;} IDAT*p|\ `T C3Q ww)_|( P<|bvN_~ڐwmBCҵ`"44}Y,˗_aWGiޏM^%Xk蠕vsUlk˻=+ɋak<"Kl xtooUXDF7мUjнt9ҋybk/Y3$$$lǿ+sNOFFׯz 8#GUU+2{?GժU3f wgĪg}F>}/ LIۏOEǓs΄s͢"۩T+W[DGGSNZhqv>OFBN-F#jC5q&Z"ouo xM{{{:tTE8PuΔ卥\[@sϕgϞ m{9"Bl9x0/Ѯ 6Rf%ʲ=a2M1e,*Iq*$$h\%58  7ρLB K=mR-p9ʖtM^s84B uPUWa.s2l0-Zh硥P2y{&BM oJfb[ @ OdʕWx2 2@z5r:Էì^_ra>ںUJVxԫӆ frL~(̴{8IO_z.ڗ^p|y\\N9 i߾=zzڦ!tCeɒ%{h heVE0}tmVǓ*;t"(Eg+VСC|G{Sn]lPt? ҤBbyXB$GUst*VkIu)B*NAEQ4$Esn;O3ΝmHoSloҥ\')Bpm ՝h׮3gDbx"hh)ĘO)2/)(ΐv@[`ky^4bOQ:obw"h6\=r!5 lΆPV7S7rVUt;9;a}Ttdl(``W7MkfwiSof TN՘02\ .s٬oEV5ΜȢl;' ֿkvvv]?DUsή$:]iN5k( SL)v>Ϥ3~v׫Tꅋ +VgϞEiޘ4i{~V^`ԨQ8;;3}b !44hݮ]رcQ&#L27EXX_s"b'NSNE1Ns̡OɺcСWXt6GVF.V^=_~O _NTUhٲ-f?}FCYH~nۊ?FȄ BvvRE8/}Kq&#&6i999QR%$r#ȇؐ[)3RX"KLOLL7^'..8 Fק1PhSxekz(: `ƠmEzѦ *`*dPZb-P6iAqKi0h1QJZ=(;Op-J9sҵkdƌK.;ίG\#iWǖ˗9qի1|x 6oE||4={n7!==|rU(Yy !8d|^z#KAfbV4~Zjիgٝ͝;w)^$:}a(׈b̜9s(]tQQRRwҥK| Nۍ7uҽ{78;;3f̘'Z &&gD||<[nlٲX,, ʕӳ~2=Zxb(Y$gE = cݺu$w^D&L|4M/Ν;Vcxn̚57|uҠA'۹N@5kvŢqqx{7@ի'͗)&9 1T~lKvVZ(Ͻ ]{iYnUUUTU193Pĭ^&Iqo-.o'^UUzu*6  "F<@ɔYf˸q'[RY X( YP uWgPWj"PF9Q N"xY1 :E""̂U`8(byA&T5T[T9U=f͚r{(vZ-ӱcǢo۶MDDzUl =*E;sfSU Hnŋm&fYDDRSSG7o^^}C_.""/_=ǶI$ &>iB '#r%{R߿7x?t,tfb>vIO&9(ݑ}P'*[AV[B**z,TĘ1Ѧ 5 GQP7:4/`\ bCz&Y&] Hqڶ yѠށ2*;Mu ^? n-h-XfO{-x,8Aw,lWVwCaepX.[8GLLL1P#Gں`/\u5l.\̙3o=eРcc9~= .ބﱡf% Ny0݅E5~C6JyѴ>tx@O7?=c/\Hـ[t]ҋhضm;wJyyy_('>>~>}аagnj毆ݻu5zx4l,YBHHÆ {DcRvm5kFxx8άZCI s)3gqƍ zѭ[7n޼ӧٻw/AAA,YPbERSSiҤ L4 g͚θz*ƍ{fp/{-Z{5k֤yTRV+nnnEPǞֱ .q QίuE?4=۷^}nҸ+4`f5N:s ҬU&ΏЫW/z@M=i.8wB7WP[ACoF() J(TJ\QWjEJ+VbŊtBTT3gΦJC~ta|9~1ի_gcgg_cDbp.lALL U•+IϬȈ&vZlٜOrrZً/Ȕ)Y?`ٲe,\XON`aUp,[͛7yƍWq{$%%i&ԩC&M0 tԉG,Znͱc04hЀ<.\y)))̜9>3fpFĉiذ!]t}SbE 7aرRZ5:v޽{z*+W`0p/^Lxx=%z1j [ly*9w?g"lY_c=&7WwKʕiM֮]!gBؽf;4[yކr540BȍMIڎ< iժ՟;HSr)InKrJL2S&;wغ)(rоR[曱>\^@9`6KW43UѸ7Έ!,Xpg4p;t 4(b>Ps2,(o0)Z[JJ\@_>-?_,^ui`6A=8xH-;0A~"Zu 8s>-ۭU^=dh42~x֯_ԩ p,w\_;^ueCe}7on]8`ǍYlt (U*Urg;BٲءZ2VBޥIX_[Ӂ2+)9s`0 PTÃ>}n:z=III׏ڵk3m49 6W2s̻qбcGcݺu8qHNN#tRfsQhdԩtޝ~f͚ammM^^:˗/f:vH޽;w.lذyԾ}{U2dRD 6mJ߾}ѣ'd̆ \4h>EqYCZZ/_GS"Mގjvret=E_JG|TBOƾryޟE}QmHK?bK\5jw;qa㐟I ?Gt"ݐCa Pܡyy3E!u1l J륽J{*T [B{ Qh=+9|x3(\jatESNplbb򉊂߿^P* +"!.P2)V?ѕ}FXjAOgv>۽F60q@rCp'X9.Uj9mމtԬlSH\6CmOsє 6& PL v vtL.ּ=,wU|ؘ׮]?g֠w{z-*11it~ b͜9/2r&O>Dp iӎỳcǒؼ H6Űo9vy`{`D'xIjǎ#"".]J~~ߟz_?( :t`:u '*RŚ;w.%J`„ eEQ2dcU_ܹsUU1 i?>ZTR²eͥAźuXj=zŅ>}d222Xz5ݺuz`X޽^zL۶mw vڱk׮uر7ɎFMLLLQ,x0f3 bժUZl6g<0)Gs٪\`@<[ʛ/ʤXv|"a~Qq,:edzt소Y*ݖEVh#Gbĉҵkbͪח:H+pY[Y%FΝUUePB-B1[J; zC$5-]{Qo8.X]-eʔ4)&U񭕮e\M;& ^X#ME ,B+'F/R&0Ap..V'rE.T!^ :^f|G,|i7|JWj& p%["U ?A%4:HnǪ/PB"XY 691Mp%Li &˖Yd Yj|Yz+Y{^~[we )N5-XJ TefU%~~k+AA$&&]`* IСeٲ0[صkkD}Ceƌ}f9ORSSj_???Ux{{ ժU/BM&^5kֈbvډܸqm~ꫯe˖I@@=U7n?m3 Bf|b3=W_ZJE˒%KQFRjUٱc#qGF,Iiem]#7ol_n-.%EҦ˱Ȱ=rNMϲ2&"]ڎZ)WyĦɂG>BlܸQf͚Ul]E ^4B/kO {Wҙb 8 3f\LU4 1GwKtxcX*0`m\ۋSz]][_?!* c)rb״go BrI0dJy-6ZڎȓL&`-\@}u#Fr\ &IBI-;%.UDgϞ?.]f#>.KTIHHBB,\&ի#Ӧx0`bAY)OI+7GJJd̘=2jT]q'"0KX;Ofdy{}*U/ T IDATh߾8::>g ?OSbgg''Ny才#XBGfggKllfٹsGlmmh4J>}_~(`"˕+' 4Gqpĉrҥb˓˗%??iPxHñw羋ñ iU̙3GEQ"TU֭[رc&M5&,ZJ4yoJH1:yZJUuIqպYR.8٠S#Wk7~*r֭b|X]:ʜ$~o4/n;#w^s@Dx.E;#Cf̸"Y YPf\$,ZtE$x]&3^jNHUBoʋEsA׼I^rĉ?=Z/juj/B [+ B.i.\ey/`Rwtnbm&ֶ2iT)[6]>$_rDQã\rcȐ!sEӘC|EPJzI.Ir+ɴi$33_m y^qu=-pD#̗w!&YTU_ߍ7N#^֋})>>^f̘!J^^#qyO> 1L)ԅ"11QОԩSh4J|| ]Hi޼("G?m7g}v̢+yF!L>]DDN<)6662hРDzQ Æ _~Y^}տݖ'8dÆ O۔³@l#Y ]l̐&{{{ٿX,QE~עm?)S~,qIsu*͖r]wi IP7oޔYsgҲeK)Y]/>SB$/"Pyq7HA={V9|p:j2oss=_t,U;#BDq $׬nUSZ(^*SJ""{^o]Pѵ/_$KJJ)quA`ʷ^X9.Bar'巩U\/I z ꉮAb̂en`?]@Wt 'gEы 8˔)%%%EFU,]$XIj%99lG#u)Fcۢ>\UU%'W%99WTU ~)S$5M;MȑqphUbR"YD"T(8P1w_~4k졿h?#QllltҲvZQUUnܸ!7kkkYtiɓRjf$;;62c 1 Rn?}W2jԨWUU?~2n8QUU,Y"X~|E yjǓDNNٳG)g4'i]l{fHg|wE۶o.ʕ+ߵbH Zj%2'`(N,jW^C$m}(jަI5Kd(O'6mbl eKKBam)>zb6[i Rvqp&pHRAQW&UUR܌#G>`-(RJ1x~M}XY͗JֈNӖ& !HDDY`4ѣ2}t1L5?H*Ukkb4p@qss@:wm;#$../*>}888=o6n(}{gWc9mEDB}ʚf!3f0}c6BFdd߲e)*BܯQN{Ҫjё}]ߍ1Z*U6mH$ԩSɖ-[~^ ]]]w~بQ#JrL.f300>>>Jzح_^uңBRRϟs(7<'#dt&M|͚5>.<oɓj )X?~M->㱰zAlN-~&Wz0rN>: P܊Z\l?:u*5kV<ߖK>K5\X6k֌׮]#I>x.]tuuE^rT ..NJK.T*e`` (9qD~pX!\n]}׏...|9pr=IIIk-L&c yԩ(p|ۤFիWԔM4)sT*IRiJ<~(m;KC֨՟&%)n׮]hS1 LRHa|?cowd0#|YYCCKg"pw[NYͶHWztJ>믿K"ʋW(޽Oټ}9{uH$)yڻ8;'p9_b9x$#FL+tINCCXH =9LJM8%P.zIsȥKCO1>^ʭ[oo Km{W/b r_Ð$?V\Џf=ză2###_@§Xf xqȈ~~~R}_zuU^yy&޽{)HTN>s5*g{f Ժ̔]vIiAd֭٥K߿8i$?~6My_ߩS'ݛ/tUWVMq{n_űk׮rJ~P(*͟k߾}4AD E#7%k|||JB(XOHTHTh)ׇ[ijݺ"Q;wT.4U= -H۷oK>{l7H$ʕO6)RSSٮ] ː kDޡ㊟Y;*ݮdEZpr/>]hP:1%J$[(+>پ9;tgRشY̙Oƅ(Pa211Gpۓjq]u?_].ʊ\.!CQQQLKKZﳣG>wܡؘ;wη twwX,'%ɦMR,S__?uӤI'P S}eP%q*l )*8oQزciёgR6j&7AE*^-!\ *Q&:fߐ-^guyp0/_ΐ"#r9o޼ɴ4 ͛7@X%KscRzyyo߮=R/)SS|}}YZ5xBm/YFFF{.(UN> Q'}aï*uC&tqq2G}DDDdݷo_ɚǭ[T֭֘[յe(OF^zg^LEVt0ϢQoNHĀb^Ҕ ¢}}H?X)߾}Kթհ-E_'RݔGfjzF.+,X[???OZ=|Zۊ>]Fq.srz̺BM=VP>{Y`W2&\^V~6NvnnyuZ V>s <%#9r))2B+z%L&pYK@,?@T/СC T}YN8 ,P6k׎;v(3#CYeAWW&M*?dɪϟK.e TVŨ|C+UiJam/^FlӦM.X"bX)WXsss+q)MtVҢaݍ>GyMhK(G/*Ni:{,7mTa_Ç?iԩ4ⶴ~'ObN@M.ޡsu#vEUCJѠAomidd˗"jj$$I(-!K5!X2A\55PBaMi}O!AhДִj̥֨K2 T R)4hӧMlժU+VX,2Y( 3f͛7\m^z .ݝLMMU]666/^Alݺ5_dιsTsѼy'8u7^ C*r}ԩS,U233y…9H^2SeTJ2[wjUؼys֬YO<)R@zxxÃ"WצN;vEJ----PƌV]h3-Դ'2F} AVno͛7 ]>1[dc'3F[x::)-q$K iii\|9Lri#|Kc`P+r׮gJ Mg2fe tF}k֬ Ͷm0G*q`B9!z ܲ+RW2r}~UVKi"1ľwKip?K߅!ٷo_.]L>}>ӧ9x`ٳ={6=zw۷/ρRWW٦Ett4ԩM6C\f ߼y˯G-2x\\_|ªAAAÇO>CG񲐕EZy5/Znذav$[ 8rjKMJżC.CyLx֭R:FY.++K[JӎP n;giJLLWΰ>lذr 0!K49;;C.39klٓfff1Wnۣ^B \hQY,] |l1fN40TNGlj8fٜaYvJ̋khGvWM DFF[qv~Nq=,Ќ9|"D^o߮LyY$MX̹p¿wk;A R@`}IŔ`LKK>b1>A2fʚncm~BF` aӖ1ꩂ.$ ^(eTSVG D< 4n%`}He pkrUTFL'mI,#1}7-! 0Nt{ pĈ\d|TZYYq|;]v͍ڪc[jy1dȐTi#))\vm*-c>&&&&&<}4LQi1cFl}㩑[|ĉ٠A竫jXLIA*> T>)|ʮ4)Le{ʨǏiggGHDgg2]b===hhh'*Zaawq| ۗ SSI+)BBVٸrH>ży0uTg$q7* F0 vzni ȴ#цHڵPF\ '>MMmL1Z-C[7Iq/ajQ3ƍ{5x4cq}>ShӧO1 D^ # p}YYYBnpm,XRW\Qb7f̘dL4 XdI U}XF歼$]ZQl=7W󴶶OxD Ķm}$n:ZV 7W4॔{]CC9rd ~ZMpWC=]HKY٪7Z.2޾Xqqq &L RZlLz6J-?~T陸JKq[dSO &5H 8i+qs6n/_+3-a𐨙A uE#bjZEeH$Z pʔ)\xZ+sQ3ZZԤOhY "99iiioTŃ4i-$fϞMR̬\L%y\Kbu,;wpҥtrrD"C$g͚5z!yK?b999"zGӳ-MkC@~Tn]Unb111|'FQlMMMUE233;v$}||ؠAR)M;wD")Ve ZwΎ΃*&HQQaU$ ܼcHtٶm{;v*m Ox嫝tl{iB2LG5oU[O#4N1罒7yp{_8SeNTzJOOg:u-L^V&D 0vp{Ƙg4m C#ݺ!p I\#*L^~KKrD,Q!)#Pg$E'3e^ݸlε'===+9ww﮼o,,x1֮]͛پ}{ ӧO]K$$U w0--twwW- i&߹NޡC~￳e˖e*իWsϞ=*ӧѣKu먣CSSbgiii\:u޽{qƏ'NܹSnWk֬)4Vqؾ};TNN^˗ VިաVWRH$$Ϝ9CH7oސTH$R]")22[n-P(XZ5Υ&;Pׯ_U^:n)LX3e9s|T4Ѩi,',夡 ikԮhbb|2o;^dV׮\#<Dƿ-B.!@dDL=afa:vK 9LHw~ʔi!BX)M)#GTTiBk422ŋӧO8:,Xe:Ǘ.]zgA7Oݻǻw崷;WZR2XNvСLʞ={?~}}L&Se/uMmU999 /{Νw/Pw.;;XXt[VuiӦQ__}uttE>zzz)u&>TM>:F4}#d法05' EQqqq|uUV }||x* ޹s?fu  -0Xo$=Pc!9π%) Q+ك۴fLL tXp6.S*GFDd2._b=zu<Бix2((ݺus瘘o5p]rƼ9:,PسW03!sy**XnrYS$hM}Y Pdif1/ Ahj>=PORzy~zRT'lٲRq~͝; pϞ="Ѿ}|\p<`vv6rʕtvv6SRJCA`~жm[޽ԑ'jkׯT*˗Y?_"/#|i_GV,:ٱcFPb7nҔ1cưiӦ駟 lӦ R]bɓ'vOJJژcFqzbAhaardꤥeP,V:7PKV34e?QnSo>I2O.Uwio~Duja}.[j/;~!Ĉ&cjT:רQ]t[(he{R^~]QYΞtZ6n@D86DjW44Jyc^47_nvA)|W׋A/)ғSoK45ب:-VMzze>/#*¤P(8|pjhhѣjsݺuZbXx1555y%N<7n!<ףF"@El2ٳԎk]d9sgϞsx^xQDW{,22...&urrbϞ=K%[Am-jժȂ͂ p[BB޽K}hyRcTegϞ?~|P,-:JSyRbӧ?~|mqKw1MLLA MMj蠺@###K%ٳj+Pd&CIzKK2%{ 7 yo6-R;`?֨Q"7C I4k۫ƻ|rfiu6kAcƶmsn֦-6l]]/U+݇2 DKs/ߴ8Ou UZ"V2j6nE{ r['NH$ݻ ,!YYYW]\\T zРAQQQ422b~*5B&߿TYyY.Z&&&܏gϞؘnܸ]2==/СCU€{-ZDss|~A9RSSٳg|իW,˗/ݻwKՕ`4(4 %6+M$?Vbbbhkk[P4OT e3#Ra-8!!K,all,Ad2CF=:K/?мD86o_x\2.{Ũ!ZXa7ez da?6,5 $W T5аaM_k*t'@T6$p=0vNz~C=н{w/e;ye`̘11 o888{{///z AAA033C|||=Tb^BlllY?0l0eNfffر#>>>شi!ˡYBH$H$ Yf"t-Zիb z ºu4Ve+ܸq+W,PU+Xb^xQ~1|L4 ;wF p ի.i022.59]%RR}ܕ&8~8fi oqFL<{`U%Я_*;N_[ q\[1h[mjpwso"LzvǠ@R5mF~{GIf㜷F߱Dv7p&Db668#aj,ǕP}9vFr|9 VVRܻ:{iӮ@K+ A3&KE5̞}]-FuqSv CM;6t݁]:cJJ z:9r ANׯ_K.jgG6mB׮]'O"** $TesIxxxVZ8y{{G$1m4J\ƍuVz &&&e"9rfΜ.]Ȩ)׮]CHH&M퍑#Gnݺ;v,\]]Ѳers?~8RSS˥R^*h_~ WWWt B5kٳ'N}J?PQwyZZZ*qIccc^v|ˑJ)X\:bm-w&{)+imiokܢW?,qʒ$N',՟pLvp{ ׬i|XN -G,mmCpC2))aT&Jm{IʚxXC).HBQ%!N8A XsR,1_5>gTTu_666e.mNvE@YfҤIl޼^{ym{5۶mK6lXE(<==uRq1cN lSWWTUU񡽽ZS=<}ׯ_'N9W !t݆|ZׯO>hѢ(5 IDATBʂ+'MTw&MbKw,-[V@GG \v n„ *[OBkZn)i"c;p\!K@lj6o~ )AE^] ժ1b%ݭpD,~o4hC/ r௿X"炲Q~R (_9r訍l10BN6Nx S?HNN/!fƆ X# ĝ:C i0Fi VތzuЧORVQmm&&&5!!jɓP5jĉpqqJΪܹs!Mb]xx8oH$9---R+ ///# 荫8 `5jZ@ְV["''խų"}b08;;qXnE!44߿zYTQ/ѰaCkkk 0-Jx9lllpqtڵɏ|$>ߜ444TVwuѽ{w̝;uA^T`Μ9֭[;/j5շor40T҈E;csb5X߾o=LV:_PLPLD{d̵kl6QoTs[F`W K΁q3~SSs.СG x.ӥ{ 46 YLOr„x>}F`Kn%O+a"w~ȦMXA`%!H"ZɈ)iPfƵ}`Ώ=D"f֭411)|eFEQ B}똘&''s۶m}JU>}POOE|**/+VP}&oNLV F5kVyZneVgAe~P%/*>UBiJ`qQwVO6hЀ"H&O\ngffrƍعsg)yn3 J^f2.ʒ$\q>|ܻm4jCӚc_u3&WrrrTm7Qȸu=qN2+KkZL`% ijS&%eX@`>336Fi!LIɦ {@ć[ . m7XF=(IaD ©=zE 7Ca'BA{Eb?$G==*=~)+V˪344ZZZ-o1˅ '3 |AeQjd2MMMrʏJSPerQgᲆVZ/x!?+W.I-qZh N 7FX2c1.tWor0sfE-Me-v4Lx#XlLL9sں/Yw rOEVcAh_7:mA{I2j6cw5uH$X2-;ɓ/'thkPf7W&A3`hX>84q^ zÝ;Phc B?c-2i@x |"(}QN0NNN ֮]QF@ʨݻ L>suu߿/1c dee vvvؾ};"##u͜9sZZZwX?KGX`PQKX5&X"b7hŊ`owEEPIqaw.M}̝{9{4hHH/YNJ2vX-ZעdFFF<~*3Cy\i8q"c?slmm0`{/7oߟh*T(\}NSǎ:u=0^Tm T_z' ~+3$Hc^ҵ6z҄PbEoa쁸ҭr,YiӦӾ+bbbiJCq&4];SEt҄0 K?Tr_=W_9538xF̬NEs ,_ގe:'--OɣGဒQ\ T Cl ژ5d^Ԍ'Iā]%Ke:uB L<ѣGG޽s 7oޤXb ͛J}ngϞ.sssZjݻٵkWǏSvm,,,޳h6n܈e˖kqrϞ=#22#7YtiCޢX]~J*\g&j5 r 2_'OZYfe{l[ 6eH܂P*`tד[nG?;vҥK¤jd )۷owjwC`NbRl&5 emNFRطo_m&z γsg8EQ4j ,[v0$-W"<  IaϞTc ÉN"ӧ)m֭9w '*d 5=T(s(i'"Hy2q>AT%k׮1}thڴ)Vu"$${eȄIHHyzm2r^"7˗/gĉ|7tЁ(F4 'N`Ȑ!HšC4i_~eT*:u*EJeR;r\ɒ%r IIIpFwww<==7oZJ*}[fÆ L>={6{1x& fqBPj6H%00񃰪CHa;#{Aa&T LO e?x\d~7L Sf`xJ`,[vAza̙tbk KZ*ǟGɼyAv>>bnn'1>HÆڠȗ/_7 LKM61qqqL7(`mpE퍥˖XRaeu3+L 0Ұ7GG (YGG5ŋXGGsY!Wɩ ťaggS&X( vPR;'*UKpy-ہֺ5 M6ٳGOm۶'zWn#55ӧӺukΜ9Cƍ-?I޽y1+V )) P\9Ξ={mΜ9̙31 %%1c`eeŝ;w֭#GH"|7_T)~ܹɓ'?عӽ{ڍ_4lؐ͛7累f͢RJҔ mڴĉ,XѣGӾ}{6no333ŋ]Z4]J-χ F貴 Z=ǹ K. =Ŵb1#.]duj$Q$1*Q*Ӊb_Z[? Ƃ[Hœ[-X#gΜ\37㣷NhU x"|y[Vӧ/ds2n1Qc!_~CΜ(Vbg7J+..uC\\qɰa4蔌wNVY̑:uHttDGH&[uwb]ktm`L~V  ӦM[/\#,ÇϿvӧxz F3X7n%KѣGqƲm۶.?lt˖-pF#wɰa$::ZDDܤD!E1V˔)S>zٵkdǎoܟ/,M/ݭv_8::ʪUDUK!e˖9RB˂6 , K1iFVs%;vh@*1 6oz2vAy >W} ?MDDСWkU3yiZ{ϔ*U ~:A4i%}5-0Ege%={V"shLr\n|._}H+DQ WK7ת3ޢR$(((kV%J}}}Mɓ'3o~{C''l1T*ѣcccquu&MTIJJK.(`ٱcGo=tt9%/,M/V>X4i۷oߖ&Md{4KBnn GAK ^؃a=02@"͛˫+%JXQD g͚G8nٲs?w؆[t beTLK *v -.*V@N<^ݞќOgO+1wnY̟%TsY?.Nə39˗<nɓ@1[ IDAT9)Βs܃Mˁ-[:T4M;Ox I7`^V|:w ѣG9s+{ͱaÆ1lذBDXx1v~Nc644䯿iӦlذnݺ1sL*Wf͢K.|X>>?S.%;w_~SڜB`llΝ;155kqލ0ĉ$$$v_BB'Nع4kW{3J*RFh4 G@({4cƔ/_q]]]}6;wFPcǎڻwoԩjn};v,ZIY `A6A %h0ߊEeܺv* [7?\ AJV-;i[PV j  (ɞ=7 ’ݺa3_ٳ?N=fҦj* &NǞ=?)jN2F<Zllq O="EJ0㷪Y^///rJZm9E)QgϞe߾}>@DFCHHiiilܸ]v5jOGGkyN|8Ǐ LMM֭D T*OӧOSr 5rJ~BDDD֨^? |s-Եa.ɼyW%44|baa: :lL׮]@Fn |".^Ȳ>rJJ,ޮuc!x,Sfܖ l-&\x9{6R "a.8{̙ rCtorTKn9s hqs󺄆&ȦMt]w-S`LRDT*WXZZj׹T)=ztݻbbbgm~_HMM#GHh7^x!2b)XXYY ~Z5jHڵ?( $IIIy-F x{{Dž *))<kkkٹsgqjZ/66VW.vvv|rIKK+pY`GzJd I={n߿|7P(]vҿ ŋyrCJ]&2rLBkRMMOK̚傥S߄F!E &6hT133c,\oooB&+H1ʕ+SzUxx{`mNΦY98{<ǎ1q(/lEG_ߙptLxxC3|}g|}puU`֭'߿ KnoiӲ<{VHc|J@ݺUʒS}0Z+×1(vT:Tc.HHHrZܹ͛3ׯ_|9]ַؘ5k/̲eh׮KORfL³g077g˖-|^vѱcGΜ9Cpp0h_}GC;ЪU72-[۷oc5j4iD ֭[DGGs}瘘j5t҅.]Ɔܹs)_<-[ח֭[*8uGkQr-ZS|P*ό9ROO~yׯm6=|رWWWW-ZޥUeU0.xx*1_~7R{({S0t9g̙szGŠ} <9m<104gϤHBR4Xdl.\xQ/WBҰ>꯳x +WڮHŊ+tVE3%$$NT*{G` _T*b%sƍh믫Re {)*Z,Yf^=tV:k\(>ӈo*a!!ϲbaa!6mdɒb y>H3**J\\\}ʍ7tzz,""cǎo1b?ɓYi $''K@J._˾}cǎR`AyE $55Un޼)[orI:uM6ҷo_3f̘1CYnG ,+'ƍ{%ѣG(*U[j*ޢVsW~{%Pz(Q"SVm|bi ˻m W(r̙2{PvHϞE[vRb@I1,TDZ׈:64 &baKRhee*s1x(KebUAQ/۲ FXCb=AH(X vͷuXO 12Z%&&k`HLL<$ݥ6G戁ok!]|12-&&kut2͐g6wBA !V;嶷϶k`͚5EDRåFV%**J*W,kN%((Hf̘!{쑇.\XDDҵkW}'' wؑ%ATʁモE~ߍ7d۶mϜС Ǐu ?Y.'--Mʔ)#&MkQr,> `+n6GizuIRgw2-Wj%%N+s`C 5,<[:t\\>/ cCAa-J|qH-H!֓7Sh/Fi!crĉlҰnY4`J%mڴVL PҧS88, 7ȸqG$5U%*id9y򉤦' N->ݺ)CsE!έE,,K:ֺk+tW eEo:txӧRP!YfM77q ٱc$$$H>}_~/w!fbaa!"ZWG~.rMJԩST)VL[߱d߿.)+X`XZZHF믍ԪUKz%[nǏFs)::ZT*&III=eDD.\|4Y] ɻUT"##ѣG"wK ͤ83ƌY'O(SLƌMaذc=ԟ G/Kf͚ h1ƎϿ6kK]ԩG4X2{[[s/쑈oO,G2eJ<WBIJ%V_O.fI>\7a}ݏJlu nߎf:ӳ- zE\-[֭h LfOJm k B!H<7*_Å$OuYb]tƍe\\\|2.\8::7ޞN:ajjR899annΣG(QD^ k׮kss=0ydZhެY3V^M`` 5kӤbccèQ bSVZ1Ȉ#G uEfc8HHH`̘1xzzB@Ξ4bffȨQΝ;zLa <=a9(RY@lJGyl7zM8=_({JTWb{ِ"[Yi>3qGN2wffxRiSG)TWϨP8~8M4l޼ XÃ?cjyA4 tӦNíApk^ٵKMxx$f@dd"7߿ÇW㧟kC5*5{76mhQ0@n-wo KAdorZULtWfh( (jQc%ݜ2B.5ϟ3m4 }4h4onVVׯsj֬IXX~_:Q޽W*RJ8|0={cI^Ezorr~7͚5cȐ!\r :ԩSС'N|e~o)$$[[[J,7&00ڵk< 1c^_B{T^=E4 >>>3&\jw!W⍉ѣd*{Q1x`z#NY*PȒ9Bd(f ag< YQrwaW*1V-ѳtERɺ D+ (h};cY$\_'2gmMgg ;HJ4F{X9T2@t.-‡vO]K.}\v"Ed˗/177gÆ  ժUٳ:u4&L?>dl޼06YC4%%%QhQҥ ^^^̝;sss hժZz8m۶m۶9J)[;[.m۶sa޽u7ٳgٳ|qW^e+W?<ғ߅(V:3n8HB۷E^s]\\P*Y>6:Z=4P (v;)m%V rkάhW|Zɕ%~-qll0/l SƸc@cDG4S`eb˔mܿuYQkR\lo?~|[!ժU4h E:)ղ}P#[h @(IiT9Χ+wqq(j -`kN~jaܕݥ\9Oh4:O*u*UWsOc(իk 4ѸlI'6HTTh4ٵ+Dǣ!;ժ.?hh4rZl10/vvhd[s[٢ZUSrj(#-5w\ tIt-ZȸqG͛bggFv-KSSSԩ4o\֭+:tSS )ڱ>|(͓:u;t 7n8Yx?^j޽{E9FZ-O?J>}|PyW "J@,,,cǎf_Ԯ]["""<ϖ-[LBBBrS|ٸqܽ{LʿqqٲeK^cT*9}t|A9O"?;eڵ?zBPdd{׮I&h04|si]<um`hEn?bkmף%JJD]Ŧn&H]i* RJ_>EHS-"hO (<嶽 ,>K˫P-qr5,rgcE:vϡCtxKjfP((޶,Xm;9gUhڀr5֭1)Uy$xAӦ$1QKP~ zQ*mDILKh{/ѺbZj5@q = l B {%ٶ[3J۷d:v޽6رc,X[[[ ɓ'yQe˖֭[,ZS@߿ȑ#ٷo[ȑ#f`…ڵwҰaC ,YRJaggG`` ϟԔ֭[i&ڷoJ6̈#bŊ+V ooo~gQT.\Uz֭[?|hQ&LF̟?/2KñcHIIɉ;Ҷm[5jZ9~' 3SNeHٳ'u֥hѢlذ:T*K.o9/btڕƍ(9i۶-/_~o16{no\q۷˗sW<~L͑]ZUniaaarʷh4R: Z+ m(H=%Sy04Ԓ._1֨ ;CsSgԩTL띒я$9Y-iҭSgn2zQy(AHǎIJw\ Ȭ)B(KRb]'.R6e$5UWbyOqt" JINN/DeU~fJ{d[K/_k"X1 E(7\H=={8qB_mXbrqssvډHƍz IDATK.={ :_ULMMTRk׮L]ǏeժU2ydo/gggܹlٲ%[${.\NjH֭s""}vy,eg2]vɮ]i&h4ҿ_̘1CΝ;'bvԩ&JSNɄ Uk 54Fɜ9sƍgeСb`` ...Y.G~z1ի)NJϟKe۶my-J@VL7 )^o={KKKT4yzziij4O s=GKB`)2Lƈ3a02EkRr,=C0}*ʐkdFz<ҥW3:TiZuE>MOf'K9{S#KzUIVw^FR{T w_OyD ={uZ%p|)?LzMN(66DƽZڴ'SH~slL'S ,(OS fu{]!hs>3JqYPI%.PZZ4kLfϞu8w,Z(?|16m… K:uXRbll,'Nw7c@@Idd( ٺu\pA $rʀ_T*0`EPHHHɓ'lٲkrrr_L>=\nnn-/_֭[+mڴaaa-Vԩ4hͫRѣGT*'ҧOCiD{/P~}(ҥKXXX0p@޽K@@ԯ_?HlZN_Woo,E boo333vG]vDEEQH2?\nY8x`lmm &883gжm[:vݻ'""ggW2--K.1c4h޽{)QWfĉtؑEfdnݺƍξڲe  I?ѣG+HLޞǏgfϏ`kksQuH'L~ >tI?ߖ&kԹf,Kt֎Y:k\hhuBPGeJ1+P@ 0 tY֯BٸM#Fòxe6G+W_ӹʆ WϽeΜOǤsg/ R x.:BIRzm113-\R= >ԯFH-YL6]J8%P¥[mɷپhȮ]$5U%uYb-3d[RFY4X>[ź[f|ݵ"Z`Q`i=aD177bŊɊ+2XGjtEfΜ<=z$EyZڵkg !C"((H:$FjԨ!K.7nڇ>>>Ү];QTrAٻwh-u?Z-ђIvQT*&O>W߷oH.]˗Ϝ9#7nWWWIKK??,Uo߾hBn߾-'NxcիW]u9ѭzj}zw\~=W䈌pY|y4iʋ/rE\\\DEExai:$v(˲f ـƍg...nݚ4mPYJ /; pm v:PXh-#W%+Em05;EW5TQfUKΥv"35|RтBpz<i(Y+RsĀO>)DѢ/y `MÆ%ׯ4MfT7<vO\EG6҇׬?(iP.}R^ 3'؈3is vPڕcKqm;СP6gܸڀ s\\Pp?ΊVO}z`xk3M@ #FK07wdTVΖ-[b„ ݝϟ3n84hs^YO?yek?5kҼys .\`ذa(Q]vQzu А7dtŸӧOѣܹWWWVʆ 8\r###6lH:o/ٙF}pvgCCC4iB6m2d6mАwf RRRؿk׮TT)W(Z:..}EW2qD|}}?8ɓYzu,yHLLرc(U|rIIIkQrjY'U(VU#w˗ÃLHH3gΤ|9sM64ޥU嶦&[nxY1Wgݙ-P ,i4K l8.N* OJ纕hrjTq#Vʕwˍxk|KqO%z͓Ү4m-/z]J^&>>e+3RX"[OUW$ X#C=520$VZ-&m (fr5ᾨ^@Z^(V7]%6I-:er#Y$H] y,I31I%ٷhB"e߲d1v1;c2!{=%ˌDҢE{q:'}0C%z<ǹϽ\>缯s-sfbs"88Z(b EܒG\ȵ2y璷_Rf}Z&z8'v *ޱc;V;y+Kӧ"##?N]P?|PDEE7oވh.lmmxIII"&&Fܿ_!>k ٳg_XZZɓ'; !HDʕUK@ܹHNHH=+V5>>>BSSSDDDi_#r8q(ӧ @<}zVpǫ,ai:" ##_:9sܜ9sD6mT˗$&ݝ磨적BCMA| Nj(,M:(yۭ-k@bf.)3Xrwmx Lut j9`e+C0Q ;Mh7YH4,,6cfPcӦ̚LǎgR)):h0 VJ{7>>5YOD:.mNU渐YS'3x&VHtmj׮  ܱˎBH % zIV#`bRK~-֯2$4Y'Ng̘(,fsLʝΩ%,"K߾S'5k |]MM|e2R{{{]97n 55}}}J,d6.(i<ަRx;;uW|X 60{l¨YgiSIJe˨UG .$<<333̘;w.AAAEJRihh֭[Yj zNJt}틙Q={X`AMC 2(W l߾8ƎPx:p|1oEO(URJ %Kq &s@/wp)t%:m\tɖs'$H3*Q4$:?hZ#drԺRcR tp?u[ :(;WP||rD_֮[pժ5b(]0p4 .+A|K̺4}N}c\DEEkVɞ8ύaՓr`2N˥KJ䱒RcY3w- e޼oɹcW^G~:WWWBBB\2ǎcoq&LFJJ cƌA]]TJhh(z⯿ؘrahh gʅW8~8CU\6mݝiӦ!+>+ތ?-[bii(0fgٲeX[[s,P_իWӧweιD9FPPgo}fhhhs֨O-T&PuX4BA‚:`+< I6IIlt ww_ HNք3L=U54wU%voKѩ ]ѻ>Z^W?t\]ٽ-angC_cgq?3F5j 9PWnhFf&W@>&Ɔ֣V畓ȮZ͕ztT ҡa=ȑhrƺd"VV<F;ΕBARƎgYRk? rNz|k*Ucd^:666?r̙|uؿ?ݻ/TZ9xT `+WOOOtRشi믜8q555^zELL kq_E ===ٶm#Gɓ'{&=>rʅl2՟7222&!!OOOVXARRqqq̘1_/_dΜ9,oԵkWf͚={АDvo߾}DAAAԯ_Ŋ,[v@ :9wK b!OCBJO8>#C|ǔ)ͩ^#C*a1-|NSH@Ëk;&6נ^N0Sвa^ko@R+T8Х]?!4n2H ,ÉcrMd2FVCTnN%T;ʣ+,\Jڸw:ɑ1kV(a{mKӨ645۷|t'wgSRdν=BqRь':1Bƾ})2{l?~︍ Nܼ7oooF (܁=0=͛166SSSʔ)گTgH`۶m 6\\\F'O8yd3f0o}_>oߞݻwÈ#8u(BB֭*( m6ca@/Ebb";vP9rܹ%KҡC]얦'h T$ݤ(ck'y" TB5@q'͕6WB?zm>IVun3DaԼagHXٳqqh`U 91""񹢚-[\OdΟR!J/>ί⼛[y]$H8p<>ڵkTYSFRT^jUR@%җDǎرkSF|^u׏/^*suLLL4iܾ}EqQ΄ (S ˖-_~lJD"aڵU2Dϟ'>>RJL۶mU>}|bW<=[0zYPX>v%ł꤉Ad=.L<=[ҰaYΟ/P XmXH < :Զ 3spqrNF*}2dv]Wrhlu\"o3DZVx&T-~Y*qaCmS3mɺ?֪+حXWNJbnyGFsxCvPf:l®]wY& Xs^ \ŋsiPdY2dJ% @?X3wncLMgyB`llL-3f jjjۗ4LLLc۶mjՊRJ} (}{Uwb>[nakkÇ ܹs3y/ݵφ4 ٳiҤIYu2l0vMٴi;YZZ'!A?L)|{9PXoߞ"QÄK]h߾:p'/ biQ,(F&& jdgbRCĖGjOF6ꘖȩͥ_ ip mS-Fx5St]"m4Yf &\7fܸqu[C= ;zvxF7]CG,,˳~ (\ $&ѵٽ-Cpxׇvm{,ݺ訡]]Mtt4PS``֬;gcyP4 T];p5f5\wl,XA9s&ݺu˗ӧOgʔ)888`jjP2e;o})?wl۶ mmm_Nc1E'NPvmر#qd' BCCUE2ehѢ{ҥKSNe˖"imq\Ƿ9E5[? ?WC RJ'' Ոdڶ+Ӵ YٚhoFfӳ6MS5II87 qrŲ#xN=΄%x_$!rMy6i]8s2Sc}KK Twf>\2XkHT$VG*]Wh@DrT6-Cbb׫aeUf,QdA׮qwATT:M89L@ eG̔S+IBe)wjUY)_g'Te2^GI-ر#,X?P:882b*UT$U ʠǂQ)RSSټy3rݻwceeUhiiiQ\9틠_AAAoߞSNѦM)S 8x <`ԩ í[!$$~F́^:uuڸuVFEVV*U*t?阾.|+KݺuX" VH$J;} P66ܾm'oW*~}}DBB5ó([v) T S06f=;v<ZZ-~,!l}f30~j-'mtNg耗@*c+\ȦmTZ4ۆ[VM1=z?/"=Sũiy&aLE{N5'*S4ivvfTlC}ѣS Ր7orHN֭alzE]z)_Ah5 $Utý7sWaZp!W^e߾}X$ 5j`L> &PT4|7nIIIR7xO4X_8}4P ?;vחR) IDATK,aܸq%زe ?7nx+GMMprʵ9sLpB矉ח'cYjJ?pַ78qN:- _{8ЬY3Uv|1yXю-@-EV"k?Ne/= be^Mzb%(gU8s6D`bw٬}ՑZSLAz84+r~@Y`ώ Xa} W4Ȟm`:XYYH||<`}-a|8_EDD<Ǐҥ?G>>DGG3mڴB5 >>۷kժEnG>Yt)666nyl߾5jZ׉oҴy5ҤC`PŠN~(\BF@AKK+R}׶TNj'Ar*<;~N*iddNv \SY2eJ޽+Չxu43#$ ǎ6II)4hPǵQ"WLu@&_'h]]-222LJs"eذ6lxHNQ(:q2 R&ZP(KJȽٴq?KE8u~~~ihhHHHYWӓ$pqqaܸqlݺ}ƦMV<.. 60nܸ϶Сaaa4i҄Call\ 93f޽xxxPn] ½{8wgVsjɓ'IMMe=ׯ_d>חϟerڴi\K2OnkS*J<{d=z_RvhhhK| p &&ɓ'ӨQ#VNYR/R Z(,"z2-Ѐӧs NÏBFZZ99ٜ=+WڲgO8 Jt5cƦԯY^ܹIN%K^@ŊlZGI55d,Xp $'gr>/^ s\9-K45MO K-;3fz3l"LFqjgR#5:6n̓DF&!(I%MjXf $99&P8*PkGx(_ވv>iɒ%ٳ .T+EGGKKKU\Μ9Ö-[h֬G+GҸqc_>7oƆ۷ocee;w.YYYԮ]ٳg3zh@au(SL('ɧ"ӧTPedggbn߾^w'hӦ d2ϟO6mҥ M6e˖-_e;wŋo>߿NMƏD"!330x`U瀝cǎej)qqq ܹsڽ{*oNƍINNN:<~X-\R`/aXBIV0:+Wܾ…7X! H'ND@@@7rxϱcHICU+F`g'Gs59v,M||LX)S r%!HN6ر'[ה4ĿuhR:2] {g<?VՔ;{:G \T #1sӧ| ZnW#X0-[QҸ|+"%U6i,_799o[=eз\ɴ(X3gzRL~Zjj*-ZgϞhiiQP/_CJ8zhe'r9۷ogTTIvZtuu155eϞ=ԩS۷siU٘_gϞ1yd/_Ύ;TȖu}N:uSNK[K.`ƍw!!!=})wwww8{,]vW^ڵ2$&&YYYR6mcڴiߔ)'']]Wh"ݻېk׎޽{3a*T@Æ ܞ\.SNlB§h(RRR7ne˖EGGz{I&addăjҤ /^,/4iiӡCEvj8p)]/z25~2>ݍӧcer5*Ϟ%2|iqp0N]{[oag>11 uհ%6VNB"]?9YJLL<)) z5MUK^tt krΞ;o<{%+LWl\X|GrWRǏwdI zNB$LV>ݕ}%$-MxSUr+Irk$)Q>}Bj߾k׶R%|_|OOO4h@j՘0aBvѪU+LMM7n666;SSS>>m\zUe;w;ڵkWm׮]{Cܹ3/^ȈCQD lll0`r?e[.EfEGGT=bʩΝ;y9C}Zw^_ΩS',,PCTѣG_ oJKӿmlirssc̞֭=???ӧ;w,0spW44tZł Ga1Zc)YR++L1d_%ׯqrVVxy[kb};AЧ%!!1'x`U6%K1a֬IJ/hjjqz&Ӣ1-|,% 1x*U~g`>-Zm\\ti(mۖHJ>'8z MXn:VV/ ѥ)\'2\m(ۛy W_NyقZL=))v1t"zSSScرd2\]]UvZѳgOoNtt4ZZZ0f^ޔV333?;LLL"I1k֬b!|;n4ׯА'sn׮]ιbnnŋU GGG9{,899gƏOLL{"""x}eʔ)E^:hڴiό988q+W9PF ֮]˾}bڴiĐԩSر#ZظPI 8;;oǏsi:t(͚5cݺujՊ'ѩ IMM-\;R~CKJ@%8w9ocgDEҭ[y*ѼyYΟcgXYӽ{Mش.7o>c2Q$νLz@ ֑@vvtjB &Y_~ѣSHihD}(Jf5d %RQqd ̙֩]sh˴բ[$gFf"^s窸UMJܣZ]D](O:X[Ea]R*GJR*d)MJK{{3,}ʕbffJ,I`` 6lȑ#B^ؾ};'C )0Ssڵ"TqH͛7/,333,Y–-[¸y-:::DGG3i$4443gѪܼygϞ}T? pvvfȑ8xWqOԮ]^z}p? KKK͋|)*/6ԴH}(ӣG|Hdd$W\)WVMpB&Ŀ ((H"((.-4r^}%45uLVV넋!j\)22r_03['`+tIHkEtt.,-Wmnk^ CeJ,)fE8/۷,VVKEZZpr#`@"|6 s Jj4i1lܸMTMTD'@")!4F (ҥI=e01$KbEɒ ChjO&ٳ,0_=~nK,LTAF83ٟYC;Vd2U,~*޼y#6l ʖ-+qҥRT|{UkNdggd 6͘1Cޗ"}O6l(v% DRR'' @ 4HgffI&7nGOl D޽ł EhhH$_bܹD9HdFDDHd} s_\p!Mz5 6|۷D"ׯ/ҾZJhjj OOO+$|سg(Q)Pi"S@'s\. ]|D\\*`# WB& +DTTؾ~@yFdgIhkR uBWw0K|xd(Jӿ"ْ7ntIm 6BzɓYج&""E\ E9mpW||™:5u߿.阘xDGwgƌ xyCplf[a[_\a߿?fyoG{m/6ڗpj\&۷{\ PgRhB͛C^=?'**JUF$ 8::"@MM ???ڶm[044$%%۷o3fiܸ'R\|(!T|2*XPP*cP^=վ*S۶m~G۷*U>(֭[jՊǏsҥ/3uTrrrԩNNNL<2CR&ōJb޼y 8P t(b>ֽ_hТD"aݺu 4G+LLLpuu-ꔦtv3[ӿV=, [[M$hhIPPpe޼M |E\02jŗ8w95k7*U2p \4vM -Gtn`dg>wo #ZI/w:"TAzP.WOh $<|84_Ǐݻ 6G>L.] VZ_?J( bѢEoߞ2+W022"!!%+(r9+WV,4l5jZv܉)...uR\/[fԩzǏ3g5kٳ={cر1Bu|||qvv CCC,Xƍ3f !6lݻwgժUܽ{(vIbbbG!֭cĈdeepfK7&O-Zãe˖899}/ !888||Saaa$.I d-[+JaÆL<'O>_Ҥ,YGk;6z-ZTD__ƍT˰d5Vť&&XN|w(AA~ؿظ%Jhr`6nLD /;ׇ5u5vǤIX AWP]VX@$!_<{}{CӦ^<wAׯ<E,kbmm˓ӋbڞܺuuIYV&9yLJi$4PWϡj|X Р[n?L-T .Ov5VT wwwΞ=iڴ)p׍3#GPti?^%ԩ l~s/RYaMMM\]]qrr*vMZ _^~͜9s6l 4&ѵkWRRRTnp%6oLٲe E4ģGx[l'66ڵkL>B~J.*N3PSSZP4-,iDHH,g΄4iRo(JL~K0|xmm-6mjBQcԆ\A`"Z5VlbZ4hܹѣLtJǴz IDATYWΙQ=}Ųt'rj :Ua{Zy9sҥyJ'X%e9 {LSZ긥.wwR)L>͍S|>CCChڴ)#G,t ӬY3ڴiCŊեo߾ٓUVKf >1GDDSQQQL6 P?ٳgOeX'Ob ՜ڵ ++?~D"A"(."##9w?ԪU}r=}.\ 33mmm177MMͯ:4iu֥q,_CZnM kÕ+WXn)))~h۶-ZdÆ ={aÆq)<<<췱\r|lܸ'OS6oތ;,XVZadd>.mƦ葜YrII]8s6oޤcgg@xx4!!R)eʒqlqqr@m !>-Z…T`ȬY5/fԨиab-M(\*Oªq ?Q٦˼ҡjǟ!dRui%K5Μ@Jbb*=#;; 'JU6 GdV*SUUS(SP@N5طoܹswwk֬!66G1m4VZɿQlYN>͏?.={ZjTV*U|u ʕ+hݺu?Ң^z\r5kJ^dd$seѪ6!_~ Doߞ O>̘1'ObffƨQ022bԩ[qAGGӪU+޼yP=kqvv&<</ݝo`ڴi̜9ׯ_SfMvQ5 +++O.] d8p@U |J߇Wh 6'm\h花66 ,,tx|8=zq@Ȁ7ҦM9Dx:[1iSݻCՁ<ىƍ aLLsfT'Emn>%;+ h ]MVz77.+KӤI9E͚+V^( m oEFRQRDamRXɪV5`+CCCQRHp9MƩSsO%yr1d/_\.'55@DB$ ĉ<|0ӴiS^|ɍ7 T$''%K0o<*W̎;uݺuSNgffyR/PVo؛7o㧟~⧟~*RYYY3_ЬثWԩSHRƍW NNNEX﷊TU!!!!Yf4k֬eZzP/de{թXCRRIIIժZY13ŭlvLظёMо!ښ\ٚS06V|y=6O7=,ڴَ Wx96aUN\<6dYAX/Ht'HJy-Ui²ex1#DGgG* (o5J SF-M*-P ބ *ѣroRapvvŋd2ZlҥK[_*r6l 55M< <^bE*Tɂ ޱmݺ8FU L<Μ9رcqwwgժU"<11\ʕ+4iشoMaEѣС E*;&& .ŋBY`F"990z*n!`RPxms}Ο?cȑ4n87ŋnݚxΝ; .$99YUiN:l X]t!&&P>Sxx-SuAgϳ51hc1nacY:1{v~kĈtUywr-Qʲ(s-M_[uB. /܊ B___\|Y<{LyKwȑ#VRR(Y033DXXXX`K.:::Z$99YTTI4hJܻwOXYY˫<,YD̜9StY,_^&&&uYq5R$^^^'O~G\.]tKNNNk֬)p[3g˗kX%Nj1cƈڵk T*444 TϥKݻ|uĪd>*6n Νwԩص&۶ 6VWJͶm~͘;p 7k9s۶?V1d۶K.\#GN/^ a6+QYĞ=><7s#?VDZlh-FyG ،TgZRiSsиqc;^ccjժܿKKKڴiZh4,kRsssLLLo_޽;%Jx*Եj"))7oVy9s v/ҦM (;XbWg߾};]tykбet҅)"¬Y|Nfz*#F`̘1̚5X1Be(VǎȒ_aɒ%$$$gϞwo.o5;wNѣG9|0̝;}}l7!G(Mzz ʔɓs:R}'vHZ 00Ǐ3 LL$$$s=T*=&LեfSS-!!q?XYKBq6nGԫW.]vLv0jQ%fFo9_$(("F@*&&90 GGO(:K' uOWqi㇧ɷhhd X]K|߿?[jJ(A% }+WyajjƙW9=zk׮7]-Ẕ;wV,$o޼-[oooʱFFF-[__WpppHCȅ y&^===_%אS(R/K.PtW3g׮]ܹsoeUlذ^zs3n8.^Ⱦ}(_YN̑#G8rHz+}}}> |9JiSлw9/KhhCDذa1ݻgO{"#W%14ȑZ(EӦű/9zG{ J ?ɉQh]]GJ@Ŷm(QšfJr?+W^V- ~/7o*=8[oR?OI+mȱc!h" P8ZKӿ4Rϟ3gpvvgϞcllI(o9dv؁ {/ȶ ӵj#ChժUcԩTTzq];FRظq#^^^ 8ŋhׯ*f͚1|6mJʕ?阷ҥKFΝbŊϜwqqa͚5ܾ};Kz&[URFёC2lذ/38::Rpa&ON%ٳ' {{{FIiԨ[Ly|E1r\]}01QgHBB8zzX[7?…x8D%91hEmѣ11CÆ밲2GkmJ "BF`ϞohӦ%PR5=~"&]XKK5Je211;0nu3mSa) (к"dD[4m\Ab7 з9ZEҩS'_ 6$'4i䭃?TttFsɜ?X&NիWmQF-Ao¡Chٲ%~~~TPcپ};Νٳ lْp 7o-,ϏUm6:uDLL G}}bbbcƌ7cΞ=ɓ'iР[ 6/!!!ܿ?=Y{Ys̡@ 80K*>iڴ)6666.CMy1,ٿtWFڴ *U-J]'KjF<=CVɀ%1QVr`JZjl^,֮o%5Uhb j*D ,&ŋR6bٴ_RS5$J`-/+rmie p+"}'8'pQQ}RFx֭[?GCRIhhܸqCݻrƍ-Z.zۤHdIJJzI&ի%44T)"̛7ODD|||`boo/aaa&Ν;EV˥KdΜ9?*!\R$$$cT*͛WƎ+nnnRdIٿIHH}Jjϯ3㣣e̙l)#sͱfܸ@':tro=!ĉt/aa* QoLM0s f> v[(XxxtjEbbOu3J ^Op#鎝)ԩع3Pt=7E~Skv̸m'5 {<)hiEkz2zt"6W|||([y?" (X  /_qƱ}v8s ] d|Źi&o B)Zh_~!$$'OŅ>}Px\>rdh?WBر }{+VH޼P  }0b޼sXXѭ[EF[oaj++ UkkSνĮ]#R*=yX;;3<=#y3ƍK2vl]<=wU9v ;wg³h@zAKNWj@L;f: "(Sqqqxyyqi-[N[sΜ9 4RI6m>|8G]vfWt}֭Kʕi޼95kd…уB e+Vח"ELÆ qvv <==="""fҥs찳}rL닙k& вeKo(QKǍ?;wo>Zhұ{eȐ!ObXbmڴysj*shٲ%)c&SSZEXΗ_~Gj6uҫWe*й&@sO*?NfBٙrJ_BBiΝ3.j47ΟP{Ю.Hb&kW}qKV'N<ƍ4h$]^|s5ZIWRm|S*v,Ν}&tGDD7JS`ddDժUvxzzҳgOBBBr 9`_~~~ϟ?-[ˋkZL@{smٲ%*:ЬY3FѣGIII!))ӴiW_rJ_9.b֭ 2v@ 8rM4ɒ=t那#6l_}hN޼y3f O@ԬY gdd$GUV$%%1sLƎ˹s?&>>[nKLL} :3fd5iSG,,V -[&99#00* P"!A)ؽ vvKs朡G J,, 與GWʔaʔT.LTPhHHPAn&9Y͑#ьw%JC~4i*K)iA[<5mΕ6@<3vrŊf͚?DڵkGdd;y?J(Apppݻٱb -[s̙-f2eJ:׭[׶\zk@ ,,= :vAɒ%i(X IDAT߾}֚1cc?&,,,[鸻o#+F9|07Y9]veڵKrN>7VVVL2yQvm*W̙3 `֭TTݻw?~>>=vڨj ziPz.4077ZxB}JYӬYq\\.РFf:CRŚ3hQ+(X2 1a'+rXX*TrTPG&=&JLrS ʔ1g֬&x h$5OJ<Е0J{@O6ǔV2,7n2`V((Jg\+d Xm۶Ftt4ׯ_OϾkذ!>KKKu-,,Xx1t;;;jԨZ2s:L>}hڴ)GyoniRSSy?~阶mҥKRRRذa111ݻ:uD2eohҤ BaðG9sRIiٲ%_|UVݝӧSjUfΜI T[#G4'#<<lzՕn }nRTzzܻ73<(`̑#q#csC*TXBUWϖMݺ%U:&|]e4lX*U B_?ᆱԩ'Q*u_ҩh#cʑ.C6m;J Z)kVpP! ܵsa]F-عsg , "=ԩS6bŊXZZҿdݺu4jԈRJOmHfHJJzuBBtؑzq:xjj*j___&O̖-[pssˋ:cT 'N`֬YݻBSNуsѷo_.]ʑ#Gr{58y$k׮q_͚5̙3ԭ[={Ю]7k>|4@P?h00ޚڴiC6mHHH`XYY_>3ooon޼ɾ}طoСClݺCCCۺclٲlC&@2D%beeN`#]ȟ)eXRbIV@~q=;;=MM]к@fɼyr<~$_Ԫ۷o[nȑ#DDD0`5j_%J` 4[[[;˾uV.\ȏ?7oÃںtjb߾}Ϲx>֯_֭[پ};n!sNvZݥNNNL8RAVӹsgvgϦlٲxzzb ڵkիzG4ׯڄп<.q={۽5(zz V@LP\]kAfeͣG k<8C9{6D s< ~\ZH6I8)xߜ XZ^_?}2]P̌Yfqʕ+Ǟ={=)Zhz 60d ,ÇWzzz`jj &MzL087oΙ3geʔ)$$$pҥZLׯ_ݻܺu80`$&&r5yǏ<<<m3^SSSj֬ ###>;^:Ŋ#**֭[D`` o0%''? 3<̙34hЀ~_h(T\t)2dDD *D"EP(oss\v%Ky i֬˗/gz۷SV-YjUz B 1~xuٽ{7TZ;vysS̓=;ĉ{k%_i2y2kuin\]{^s/4WKtO`tSΟ5;-i|if z ͥ7]VtqM:߼bf 0Zx@ڵkETd;˻@VKddl߾]Ο?/aaa7˗eRhQIHH#FHժUED>AZ@VZ%ׯO~IGBDDw.۷͛ˊ++ݍo>9|p\[d%("rʕ= K.4lP\"=z@j׮-͚5 |r-U&L 6Z%mڴIݻhB fޙ޽{rINN~=Czs¤sH~̛S3{i݋֭hطo !>^W_mذ-%KZxyeҤ3>ё!CNqf$~BBzl~G%IWWɐ'+% Z%'ict-St%]& {JΚ6.] d*m;J"11y! ĉ+WSNq-틥%ۓD\\JBmc33 Noh]nz}"E`aaAz055&$‹5{֖ѣGs5_*_(Jjժݻ3]pjժxyyk׮LHMM0]a/8wн{w @Tam۷3rHYr͛79tK~7k֌ 2mڴL2KNBB///ރRRVҥYt)w'''lll066SN  Eb./=ǏsOzNLJjժh055Ғybeeł ޸ɫpuu姟~b˖-tϧ ?7o|*ڸ__^v?,S{3R...?`lmm3WNFwe˖onj,Y'''^U.]W_}>;v4/^dɄ?~Yl#o|-TP֭[~7^m l$յ8p?_ٳlj]H ɓ?KTxSSBBwh$5X%cJ'JR޿ s `РA|礤px"+V@\\VÇfz޽{A.]hҤ .f͚(J:}}NaJ*3M3O>L<9s0L9{,:tСC:u|6lz"""u1r% ԬYg2|pN8Abb"III$&&HrrKhٲ%̔)SZLBRRR6R,-  ngL^ 6gO*ΝPۃX6~~ILvo0ʐn.NÓ:]B-VVz\)LUTJ*X;wPP"K.Ν;,XX{L_:m~˗/ 1c]6-Zۛh*U›ԺuprrÜ>}ٳ3YtikkkF͜9s駟(\pJ%gϞN: 2RJWI֭cɒ% 0 SُE{9FCrrrS,,,Xv-N[nT^ի̙3d=׼ysكѻ-݊wp}}7Pna:7;ܹ"Ys@(EkmK'"؏֝[[>n޼IѢE4h3gd>t<<4t5<Ș1cu&Mp)Μ9Cڵj-iӦq H7#=aKSdd$)R$;ygg?=Q(Ǣxy(P4̘qH<)N˚sixһNfi!cf|?+bŊܹsRSSplB.ǟ޽{2dtԉ˳r* =zxOc``a6l @`` Z+j9zh5j̟?r HYOppG{qڵ2|p7oA*L дiLcu:bƇKRRFFFo|7/lwY_U_Ƹq+SEN_Ftt4cƌM6:u*g}Fpp0]CDҋ_N>Çπ=~[6l@N2x]G| ɓ'9s&+w^ Y& &yLccWC`Lg9.iN6~B10X!6yߗiRSS%22R?.-'ATTOStlBBX[[ȑ#;.&ݻc7oڵk ~e˖RZ5h4Ϭ,fffrmQ*o$˨Q@YvT7Rgϊ={6 %J YnF5k|WVjǏKb֭[?sWο|4iDꫯ[}!F_7OU?KRVLZ5?Cb%^Bxx..Zt)um kRᅱY^X5W IDAT^zڲk׮\-[vZ.\@ yX777bbb;鉧gə/7߰clllU:w׹u3SD ʔ)Ot\޼ysd% ҴiSj׮Mpp0}YT*֭AAAgSf_~;v0k֬LWTL2jժ\O+RR%:wL˖-|СCU=b޽qoԬY `잻qSX yeqwwOwoܸ???ʕ+Gǎ5Ǐ֭[ԫW ˲D#Fpizꅁ{֭[fm.]ʥK^XܜWeiݺ5kf͸P|y6ô z*mڴɪ2̘1cݻwߢ2^gzyMf̘=Xv"`)1s.K\ou\t}ڤw}iY۷ERɸqdĈ[J%%KF=.{s3r޽prr''lH\]]EDd̘1R\  Yܹ#5kcccYfs瓒DD:]q ٲe$$$ȑ#%444[}˗Oj֬e˖e˾EȜ9sdƌ/>>tڕR 2o^s*U*60-PHnŤIS^ vٳ'~~~QVK6'L!wwg^O4>}0j(.]Ddd$Ãɓ'??~|neeniʗ/_Ҿ/Nٲe_{nj׮Mll,O~^qةXT*Wf̙R+G(Pرc]6"wˋB@TT*8￳m۶g >6nܸ v%:*#ŋD=z w\92c6M&uZ Ӝ'cҫ.QR%SRRRI]&N777IMރ̐*sGGG]ɢEDHXXXEW^?WZef̘!&&&buppl+ʘ1cDD}'OwT믿 ;v|)YM\\ɢE$>>^m/Z-۷y󊟟3OOl?h40aBMnݺ%QQQ]\|Y$..s-MYRkȐ!;wKK I|MiJ SPy*Zlfh Mi۶0/.144dTZ,YBƍ[pڶm˄ Xt)ޤ0rHBF^i0`J 6|~#BKK0;w.=M+VHg"ݡCСC^߿+s̑+JڵkRjU133/B!CȐ!CDPHĉ""*Ǐsss166ŋ}ʜ]ƊF{{{ӧ;UTR/3>>^ e^3&&F.\ 6mӧK߾}~?~GGǷJWTgIF䯿h#"ZvѢE_4JӇG*M"ښ-իWcǎp2eOy-Ç챗*-Ǐ˯=>$ƌ#,XPڶm+̟?_~鼖-[J5]vɁM#ՓjZ/. H?v qF^T4h *J?~,Æ ; R\\\^$**JM&RNl9sss}?cnBBB`6k׮bnng"66V.\ 7o3fH߾}AR@gKO>2}tٴi̛7O+yggLgкʱc$>>^4̚5ߏF#!!!t׎U><\iRT2h yk>$-[& pIIQ~-r\"#/cĉ?~ K.IDD)[ŪQo>5׾}Z4lٲE .,r-H?߶m[ɟ? Ϝ9S eܹRdl>wE|Nvz.kâX/%a`qBQs[-v{[؅qTl)[REAPJbaaw/CHl.K'gwv=s2.ʪRi۶m#Xb`49{,+l-i&TV Dc͘~t;v>C\\ʛ_ k֬Il,Ç ?vphƎ[6999F^mE-ج={g]:t(SVgַo_ӈ{oQfebӼyPN_|B!LsΕy&"77ptt2C(bС%f4'&?~AMMFBbSN-w-GGG<~W߾}+W@,;D!uєTz\VDDD ;;of޽\"a~=>} ccc2{[/^@V#G݀0zb׉D"$&&"44-b;='0vXYxeE,c„ z0TUUoyyyU8 aȐ!={6B!N:%Ӹ,a`mm$"7oTTT~Ǘ/_f@hh(AII 2y̙[n055-T"dggcǎȓ˗m۶l,cYZfhR.~ VŋPUUEDDDƉX,ڵkQ:ӧOǔ)S yT&rrr`ggeeeh~~~ N:a֬YE| 6,VDEE8^ӦMѼyJիpi|x=zgϞUjlE޽{hժ222pYܻwO.vl޼Z[[@ |}իWǂ dboTTTTTBիJgΝ KbyDs,ޞ-QhMLD!//G ///^xqqqhҤ ^*8oDaaa^:}PYPQQÇ˴_U (ܹs+U\rD}}BͲe /J ?~<ׯ/Da0~xoEb}&M`޽;^FFZl ggg)iΟ?eee{Lǣ[nV͛PnzNhk(+++x  3f ܹ#ѱe233MoHA999z 6l7nv]hA055-[*55 "۷}EڵKjU5.]sss0 ˗ àN:1b{E6n>ׯ__h QB ` ">|к 0 {"66VuvvFTT…}B} Ô34jx)MLE0pwwH$RzX,.AV`aa۷oWYEaKxڵq!<8455[zz ">}D****kѧO ċ/ФIZ8pϞ=PQQ#PfM 2<HĪƗ/_`ff???ܾ}SLaF‹/PVRS񭬬M6X-СCtUO|=zZjEُ?BUU'OSSSѨQ2Uזqqqb``Ȑ!v܉SNΝ; B||<ݡ]sIh*ɓhР%6fEwyyy033)[(|>9998tj֬l>}Zn>Bހ .&99w܁CPRRmoe.\]0h߾=F44lZZZUr@8Z 3g΄X,رc gˊ5cddTvO}:&&&xyxE/02di"bbFFFVi\deeAJJ 9RdSADӧOcׯ%*E+˗/CKK FFF &UUUa|u-2=(K.]Ǐ\~n*1.M\DS7njDzÇؿx-7o￘a޼y˓K]C!55US#G{l$9ѤxU4ݻw-۷oa%((/^#+Qp9s'OuV0 #^^^رc>}Zg$ѠA7}AJXXеkHJJBRR|Wƍ1lذs8|0@Dرcl%8p0ghт|捼+7~xk)Xr%W---lٲCV-7;cccQzuQ}ݻAD_>zQ[eD!W?̙]vIeRPEY]œ9sЦMwU` !!! "",, wU2ǎC@DԩDEEZj8wԎ0 {tO9ѤX(hNlllp}eeemmp3OՍ5 ;v@bb"p}|>i, x< 332V³gp9t D'N@$l!իN*SI"M6!00 "DDD͛سgLk׮zkIm۶ׇttt MMM())A]]%f9O8zΝ;@ׯ_K|o'?g`oo"9' MÇǥK$>瑛 IDATp-ID" ypttDbb"QzuB[۶mߘSob˗/aҥHOOLJŋbvX|9Ǝ#GBEEjjj1cP^=4h3g͛(XԩSaii aжm[9r|>rɂlwށn:ŋY&Zhŋؼy3쌃ئGppp[Hׯ_CYYYEKWX"!C${L4) #ԩSK(/PSS%2IJJ… O%tb1{}&@UUUٳ߿nj3 ׏ ݼyueLա %%bk`ddܹs ",^?zD ^Thh(bbb`ll'OĉPRRBzz:<<<z/ɞ={@ߔWWWW ,ҲBY":ty$j4|2V^jժˊX,ƣGm۶B}%WSDP ȯddd$i'O"++Kݕė/_yQB!gCoSZqt۷X?bi;wݻg۷q?~'O;Ν;W%ѣG "N]عs'daah۶-͛@iӦ!$$YYY2TT<<| RnQaÆ!((2ْ ˫R$&&bȑ/TVZ3J|b1pBs)]ff&ڵkǖDp ȿ} TuLL dz* paՓ>}bqϛ7vBZZgϞŃаaCիX~=|>Zl "B֭1b 6 D>}VS+++XYYZ "* ^|>m}ʊ7gϞl `ܸq8|0ŋq ?pBFOOO!77 ݻwlqN4) )M6PlÇ*@JY!ѯ_?,[ "{gdd ""k׮Enn.vލaÆ!)) 5kքz CCC5kքN>Yf?~pAɓ'777,^HHH &M"f7n ]]]ĉ "zAȑ#8z(bbbdR4geɒ%_~ҥ ʽ۷! " Door헝I&Çs`bb–)RǣGԸoSmeeeԨQ***hR0V41_~ŋ˜Q:uȵ)K۶mC=8 $x"##h"$%%ٳ6l`֬Y6mѤI888 ** DDCZj3f tuuqydffbP(DNNN*L#yzzJd 6@EEaaa/** OFnn.S{{{arƢcǎz악T\zޥƧfff͛pN8WWWܹgDТ ״i2*suuEBBB4صkD"nܸ!os8;w```[[[O<)u;H  <<\./ ~rEEbUJpSRR WWW['{._ %%%ᨚ$$$@II [FÆ Tkkkl۶ ={d{ɲGټy3455+0 ͛ya0n8lڴ '*M<%HDԪU+RSS5jTU.] 6BBB clmm)22>}J#FFMDD#GpȠ-[""$ggg~:թSGVʎ:PFF|RSSȐY2 ++>|HO8ǏԹsgZn={ @4l09YQ^JfffTV ퟒBdmmM >}޽{ӹsΎ+tܪСC)((~w`ӧO)""h!#W:߾}Ν;ӻBپ\? ۷8~8fϞ;E,nQzulذAsTtٹcL6 jb[ģG0rHBJGׯ_/4 8ʃ Bׯ_#G5lذm222ӧOTZ5Φtҥ xʘ^5j.yzz9GۀBԤI5kQ5kFDD/_&___RRR>P-kG2dmܸ/rsscם:ulll($$tuu{4zh233+4FLLLm8W\!cccjڴi 6_~4s3f zݺu&#GX,wm#WwGGGBbٲekD"A]]-zQ5b ;88)"ↇ*S֛"!.^XlqJJ  D"XYYa߾}FFFB;QŦ( iٲeBK͕y 2꒻;YZZ+, E mR6m(--c̛7͛'8$/3gRƍiٲe]d[ݻ7ٓRRRÃ^zEG&%[3ԤD;_ah֬YNΝsRfÃ.\H6C2I$Çӧ.6mݹs<ƏO7nܠF9]tIfqf͚ ?~>~H>|={Н;wի%7f3f -4}tCAtE""rss#---NbZjIݺum4w\""vT! HIIqƥn;c '@@퓑 ͏T<͛qĉr{.fϞ X5-,L2>۷o+o8*)[z__ߟ;~-̙KyJb1?]]]aҥظq#cǎekegg#88JJJ{Ll3f ԩkkkU ^^z쉭[k{I&HKKey4?Rllls%ѯ_?ruucǎQn(++KVVMѣԫW/ڿ?M:D"eff4 0k,>ejѦMА\]]iPu˗dbbB666қ7oёű5j=ӇڷoOQQQR["\BϧmҹsٙNJ&JTRVVÇ)#͛GDRJ#U%yf8;;W%88k׮0HIIu?b111F͚5qyQNQN,]077U! ڵ2VX777gԨQǏmDDhժڷobxxxMfff1cǏ#_-Z">f͚k׮ahiia۶mR=~eAV~J{niӦP 4}t[nEff&޾}+s{NK޻wuE- 5^^^[.srr۷K|8Ѥx(hڴi,X ]^^<==!7UE۷`ݺuԩSmx览 hܸ1f̘Q#'OVY__B@{LP(޽{Zo4>}ubذaN>|!MMM߿_پ};z)kME08pb~č7MՕooo"88]v}:ц ۷oegܸqt-z15nܘcǎdmmMz͛ӪU͛7RC{7=y{{=wd``@O>t 2/{.x<0`Iiii%''\""ܹ]vZH UUU ׯTH$¹se[VQ~}: ào߾ظq#2223/_, Xlx<TUUannwwwcia8tQF""_իѣGիE+ׯ uuuܻw:PL;w<'N ͚5a{D"|`ܹs'O?,YPRRرc >=z /e˖e˖R8bccaeeT/HKy[\7l# @TEP(ą y6e߾}PUU-XYYJVQQQ?all3fxecA> gggtDuuuL0\v,366Ƅ 0vXXYYD-Z`׮]8ЩS'zzz0066ƒ%K ダv^zaҤI_Dѽ{w())jՂ̰n:={@GG<~~~%4 ###ϖ-[0a}_hR~ƍ j֬Ylя{.:vѣG ĉ5:T'Ob1n߾ "›7o$rnVbŢ+\Ǐ#::X,㡪;w 77]v^Ç}v *aI$NMLEzꥐY-|>صkMҼFj^"ti޼9-ZTh٧O's!wޅ|>ؽ{7 Ѹqr 4iׯ_KtAYYܵ⠭Ν;㯿Bj wbΜ9egeee 6 ǭ[*z:}ԴL^~a`xco>\~~~ "())A__۷9^ "vVWWӧիWErjS}j޼9ܹѣ2I  P@@Ӆ (%%ڵkGk֬#FM6Μ9CC:::o!mmr.G7.<&&ڴi#,H277iiԽ{2GDMoߦ'ҨQɉ ͛7,,,ѣ:VZÇ˴}lllٳb z|8Zj۷o~ԩVZUhR,cW^oYY WƍC1dȐr{nX355HOO=ta MG#"xgmmfi&L+WаaCjjjU6l}}}t[a2 B:TD"p5ȭ@eشiv]nSAEӤ8]H/_Ν;¦S7o߾QRRyzz?SaQ'OPzz:}lBOZj۬o߾т hJtYҒi޽{Կ:z(M2L0 C߾}__|)f͚ENNNЂ ڵkd``@`z%eeeQ˖-Ą:wLb֬YCzj׮]&''1鑇5hР\`֦&M^SSSiӦQn?(oӓ-۾}{vkHEE M6t5255%55BGTN0۷ou:#˗YrJjԨPvv6eggSNN ,Ԯ]VXAvvv瓦&ԧO;w--h֬YԤI2y)**uF/^N:J#U/`jj@ƽ{iӦq<|CBBiu&L ?u~ǎ^ Pnrg@Xx^^^8qf|{={4)M޽È#VEXݻWʛϟC]]]aׯٳgGlAAAͭ7/_vژ}:&N+++ > Bp }. ʕ+s6CP_AAϟ9v˖-|r àgϞe)"MAAAٛϟ777Y | :::lѣG! Q~}lݺ|>/_T85zh ܹs1w2o?|4mT>>}ܜlҤ fϞk׮9jB=0a̜9$"@x̛7ѣAD;vl 0nܸB 8{֬Y@I&aYҥK0L*WUB!ϕ4#88'Ji~:WWWԪUsFBBD"֬Y6B$޽Å @Dƃ*]1Y0 ~ V)[Z>|{yy&E$CNNnݺ B__m2p@ٳWP߱uV|SN޽{ѭ[z:1uTV{]`z֬Y3gB__&Mg(ڢu?N("++ NBϞ=KpppaÆsIh ȑ##GH@Ea^IlI&7sÇr  Ɂ&\U`prrB~zt/^Wb`+V:t?q uׯ/V$(oEI7HLLDΝa``m1n8TU%%%&&&Xxq'J&wwwhhhƍSekR 0 |~~~hӦ bbb+cǎ)L+iő#GCJͦ/_bȑ1czQÃmBWɓ'X|9&iH___m۶H222qyDEEѣcw֭JtI(/!!!hҤ 4hPjW"55W^kƎ ===<~HdN4)MɁ;={ @,+d3^Y7n ''Vi-TuBCC1|D"L<FFFɆHӦMTƮ-uLܹ5aȑ -ᰴEPUUDCNN>|aj*6innnXlx<n޼8гgOU `ر022*V߿D޽{YoU^:J,P0 RSSQvmܹS*iiiƻwlɉ݆MGDӥKB:t&&&ӧ_>BBB+os8#:: Յ """еkWDDD !!A"][n]kiSPc8n:ԩS***ZuցYfl@͛7~<,Y>>>{.w^HsssԬY=[nM6PRRHb6l/_~ "6g9È#Jux9udDGGTAyFN }NNN c{rI(h P(ĥKlkׂa"n_ >Ͼ5۷OpX,FNN^~c۷o. nܸ_~̙327=EASSXp!>}$U;olٲhiiaƌG>}@~ZA:{=p)dgg#88Ը kHIIAjj*[@ٹgvpwwx z"\L>D;;b);;!!!È#1cQ˗/_ <<lddd@__ΜhR@%nܸW=NNNС/_D"W^!00P&qϟ?A u됚 UUUܸq޽Á]˗AD TTUUkʬؑ#G񐜜\dG\\www -- 7oիW+dGTT֭QFgϞƵk*|^%;;&M}cǎEv-ʂ\IIIHIIA^cǎߜ9sмyB5K9;;hR,~{. LMMiÆ 4d](::hܸqFu)uuQTT:uۅC1"OOOի=lB>>>HD/^֭[SiΝ,n""Aѝ;whʕ4a9sL{%%%ѠAh˖-4h ""JMMϟӣG(44~wڶm3ڷoO+V`GDDꕶ֖>}D?~${{{Ξ=Kv"%%%'NP\\уMFQQQԹsgj֬D- b1yyyǓ&ihheffΝ;ظ>"|ԢE v}Νח455ez> 11RRRQF^%NFo߾Rhrww &8}4?^fpPDSrr2ݾ}5kFF Ptt4 8ի'os8 (h(h(h(h(h(h(h(cmt ;IENDB`pyresample-1.8.1/docs/source/conf.py000066400000000000000000000170531324347254000174430ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # pyresample documentation build configuration file, created by # sphinx-quickstart on Tue Jan 5 13:01:32 2010. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os class Mock(object): def __init__(self, *args, **kwargs): pass def __call__(self, *args, **kwargs): return Mock() @classmethod def __getattr__(cls, name): if name in ('__file__', '__path__'): return '/dev/null' elif name[0] == name[0].upper(): mockType = type(name, (), {}) mockType.__module__ = __name__ return mockType elif name == "inf": return 0 else: return Mock() # If we are on read the docs then just mock external packages if os.environ.get("READTHEDOCS") == "True": MOCK_MODULES = ['numpy', 'pykdtree', 'configobj', 'pyproj', 'scipy', 'scipy.spatial', 'pyresample.ewa'] for mod_name in MOCK_MODULES: sys.modules[mod_name] = Mock() # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, '/opt/lib/python2.5/site-packages') sys.path.insert(0, os.path.abspath('../../')) sys.path.insert(0, os.path.abspath('../../pyresample')) # sys.path.append('') # print sys.path # -- General configuration ----------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ 'sphinx.ext.doctest', 'sphinx.ext.autodoc', 'sphinx.ext.napoleon'] # DocTest Settings doctest_test_doctest_blocks = '' # Napoleon Settings (to support numpy style docs) napoleon_numpy_docstring = False napoleon_numpy_docstring = True napoleon_use_admonition_for_examples = True napoleon_use_admonition_for_notes = True napoleon_use_admonition_for_references = True # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'pyresample' copyright = u'2013, Esben S. Nielsen' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # import version as current_version # The short X.Y version. version = current_version.__version__ # The full version, including alpha/beta/rc tags. release = current_version.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'pyresampledoc' # -- Options for LaTeX output -------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'pyresample.tex', u'pyresample Documentation', u'Esben S. Nielsen', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True pyresample-1.8.1/docs/source/data_reduce.rst000066400000000000000000000050331324347254000211310ustar00rootroot00000000000000Reduction of swath data ======================= Given a swath and a cartesian grid or grid lons and lats pyresample can reduce the swath data to only the relevant part covering the grid area. The reduction is coarse in order not to risk removing relevant data. From **data_reduce** the function **swath_from_lonlat_grid** can be used to reduce the swath data set to the area covering the lon lat grid .. doctest:: >>> import numpy as np >>> from pyresample import geometry, data_reduce >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> grid_lons, grid_lats = area_def.get_lonlats() >>> reduced_lons, reduced_lats, reduced_data = \ ... data_reduce.swath_from_lonlat_grid(grid_lons, grid_lats, ... lons, lats, data, ... radius_of_influence=3000) **radius_of_influence** is used to calculate a buffer zone around the grid where swath data points are not reduced. The function **get_valid_index_from_lonlat_grid** returns a boolean array of same size as the swath indicating the relevant swath data points compared to the grid .. doctest:: >>> import numpy as np >>> from pyresample import geometry, data_reduce >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> grid_lons, grid_lats = area_def.get_lonlats() >>> valid_index = data_reduce.get_valid_index_from_lonlat_grid(grid_lons, grid_lats, ... lons, lats, ... radius_of_influence=3000) pyresample-1.8.1/docs/source/geo_def.rst000066400000000000000000000337251324347254000202720ustar00rootroot00000000000000Geometry definitions ==================== The module **pyresample.geometry** contains classes for describing different kinds of types of remote sensing data geometries. The use of the different classes is described below. Remarks ------- All longitudes and latitudes provided to **pyresample.geometry** must be in degrees. Longitudes must additionally be in the [-180;+180[ validity range. As of version 1.1.1, the **pyresample.geometry** contructors will check the range of longitude values, send a warning if some of them fall outside validity range, and automatically correct the invalid values into [-180;+180[. Use function **utils.wrap_longitudes** for wrapping longitudes yourself. AreaDefinition -------------- The cartographic definition of grid areas used by Pyresample is contained in an object of type AreaDefintion. The following arguments are needed to initialize an area: * **area_id** ID of area * **name**: Description * **proj_id**: ID of projection (being deprecated) * **proj_dict**: Proj4 parameters as dict * **x_size**: Number of grid columns * **y_size**: Number of grid rows * **area_extent**: (x_ll, y_ll, x_ur, y_ur) where * **x_ll**: projection x coordinate of lower left corner of lower left pixel * **y_ll**: projection y coordinate of lower left corner of lower left pixel * **x_ur**: projection x coordinate of upper right corner of upper right pixel * **y_ur**: projection y coordinate of upper right corner of upper right pixel Creating an area definition: .. doctest:: >>> from pyresample import geometry >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> proj_dict = {'a': '6371228.0', 'units': 'm', 'lon_0': '0', ... 'proj': 'laea', 'lat_0': '-90'} >>> area_def = geometry.AreaDefinition(area_id, description, proj_id, ... proj_dict, x_size, y_size, area_extent) >>> print(area_def) Area ID: ease_sh Description: Antarctic EASE grid Projection ID: ease_sh Projection: {'a': '6371228.0', 'lat_0': '-90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) pyresample.utils **************** The utils module of pyresample has convenience functions for constructing area defintions. The function **get_area_def** can construct an area definition based on area extent and a proj4-string or a list of proj4 arguments. .. doctest:: >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> print(area_def) Area ID: ease_sh Description: Antarctic EASE grid Projection ID: ease_sh Projection: {'a': '6371228.0', 'lat_0': '-90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) The **load_area** function can be used to parse area definitions from a configuration file. Assuming the file **areas.yaml** exists with the following content .. code-block:: yaml ease_sh: description: Antarctic EASE grid projection: a: 6371228.0 units: m lon_0: 0 proj: laea lat_0: -90 shape: height: 425 width: 425 area_extent: lower_left_xy: [-5326849.0625, -5326849.0625] upper_right_xy: [5326849.0625, 5326849.0625] units: m ease_nh: description: Arctic EASE grid projection: a: 6371228.0 units: m lon_0: 0 proj: laea lat_0: 90 shape: height: 425 width: 425 area_extent: lower_left_xy: [-5326849.0625, -5326849.0625] upper_right_xy: [5326849.0625, 5326849.0625] units: m An area definition dict can be read using .. doctest:: >>> from pyresample import utils >>> area = utils.load_area('areas.yaml', 'ease_nh') >>> print(area) Area ID: ease_nh Description: Arctic EASE grid Projection: {'a': '6371228.0', 'lat_0': '90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) Note: In the configuration file, the section name maps to **area_id**. .. note:: The `lower_left_xy` and `upper_right_xy` items give the coordinates of the outer edges of the corner pixels on the x and y axis respectively. When the projection coordinates are longitudes and latitudes, it is expected to provide the extent in `longitude, latitude` order. Several area definitions can be read at once using the region names in an argument list .. doctest:: >>> from pyresample import utils >>> nh_def, sh_def = utils.load_area('areas.yaml', 'ease_nh', 'ease_sh') >>> print(sh_def) Area ID: ease_sh Description: Antarctic EASE grid Projection: {'a': '6371228.0', 'lat_0': '-90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) .. note:: For backwards compatibility, we still support the legacy area file format: Assuming the file **areas.cfg** exists with the following content .. code-block:: bash REGION: ease_sh { NAME: Antarctic EASE grid PCS_ID: ease_sh PCS_DEF: proj=laea, lat_0=-90, lon_0=0, a=6371228.0, units=m XSIZE: 425 YSIZE: 425 AREA_EXTENT: (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) }; REGION: ease_nh { NAME: Arctic EASE grid PCS_ID: ease_nh PCS_DEF: proj=laea, lat_0=90, lon_0=0, a=6371228.0, units=m XSIZE: 425 YSIZE: 425 AREA_EXTENT: (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) }; An area definition dict can be read using .. doctest:: >>> from pyresample import utils >>> area = utils.load_area('areas.cfg', 'ease_nh') >>> print(area) Area ID: ease_nh Description: Arctic EASE grid Projection ID: ease_nh Projection: {'a': '6371228.0', 'lat_0': '90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) Note: In the configuration file **REGION** maps to **area_id** and **PCS_ID** maps to **proj_id**. Several area definitions can be read at once using the region names in an argument list .. doctest:: >>> from pyresample import utils >>> nh_def, sh_def = utils.load_area('areas.cfg', 'ease_nh', 'ease_sh') >>> print(sh_def) Area ID: ease_sh Description: Antarctic EASE grid Projection ID: ease_sh Projection: {'a': '6371228.0', 'lat_0': '-90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) GridDefinition -------------- If the lons and lats grid values are known the area definition information can be skipped for some types of resampling by using a GridDefinition object instead an AreaDefinition object. .. doctest:: >>> import numpy as np >>> from pyresample import geometry >>> lons = np.ones((100, 100)) >>> lats = np.ones((100, 100)) >>> grid_def = geometry.GridDefinition(lons=lons, lats=lats) SwathDefinition --------------- A swath is defined by the lon and lat values of the data points .. doctest:: >>> import numpy as np >>> from pyresample import geometry >>> lons = np.ones((500, 20)) >>> lats = np.ones((500, 20)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) Two swaths can be concatenated if their coloumn count matches .. doctest:: >>> import numpy as np >>> from pyresample import geometry >>> lons1 = np.ones((500, 20)) >>> lats1 = np.ones((500, 20)) >>> swath_def1 = geometry.SwathDefinition(lons=lons1, lats=lats1) >>> lons2 = np.ones((300, 20)) >>> lats2 = np.ones((300, 20)) >>> swath_def2 = geometry.SwathDefinition(lons=lons2, lats=lats2) >>> swath_def3 = swath_def1.concatenate(swath_def2) Geographic coordinates and boundaries ------------------------------------- A ***definition** object allows for retrieval of geographic coordinates using array slicing (slice stepping is currently not supported). All ***definition** objects expose the coordinates **lons**, **lats** and **cartesian_coords**. AreaDefinition exposes the full set of projection coordinates as **projection_x_coords** and **projection_y_coords**. Note that in the case of projection coordinates expressed in longitude and latitude, **projection_x_coords** will be longitude and **projection_y_coords** will be latitude. .. versionchanged:: 1.5.1 Renamed `proj_x_coords` to `projection_x_coords` and `proj_y_coords` to `projection_y_coords`. Get full coordinate set: .. doctest:: >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> lons, lats = area_def.get_lonlats() Get slice of coordinate set: .. doctest:: >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> cart_subset = area_def.get_cartesian_coords()[100:200, 350:] If only the 1D range of a projection coordinate is required it can be extracted using the **projection_x_coord** or **projection_y_coords** property of a geographic coordinate .. doctest:: >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> proj_x_range = area_def.projection_x_coords Spherical geometry operations ----------------------------- Some basic spherical operations are available for ***definition** objects. The spherical geometry operations are calculated based on the corners of a GeometryDefinition (2D SwathDefinition or Grid/AreaDefinition) and assuming the edges are great circle arcs. It can be tested if geometries overlaps .. doctest:: >>> import numpy as np >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> lons = np.array([[-40, -11.1], [9.5, 19.4], [65.5, 47.5], [90.3, 72.3]]) >>> lats = np.array([[-70.1, -58.3], [-78.8, -63.4], [-73, -57.6], [-59.5, -50]]) >>> swath_def = geometry.SwathDefinition(lons, lats) >>> print(swath_def.overlaps(area_def)) True The fraction of overlap can be calculated .. doctest:: >>> import numpy as np >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> lons = np.array([[-40, -11.1], [9.5, 19.4], [65.5, 47.5], [90.3, 72.3]]) >>> lats = np.array([[-70.1, -58.3], [-78.8, -63.4], [-73, -57.6], [-59.5, -50]]) >>> swath_def = geometry.SwathDefinition(lons, lats) >>> overlap_fraction = swath_def.overlap_rate(area_def) And the polygon defining the (great circle) boundaries over the overlapping area can be calculated .. doctest:: >>> import numpy as np >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> lons = np.array([[-40, -11.1], [9.5, 19.4], [65.5, 47.5], [90.3, 72.3]]) >>> lats = np.array([[-70.1, -58.3], [-78.8, -63.4], [-73, -57.6], [-59.5, -50]]) >>> swath_def = geometry.SwathDefinition(lons, lats) >>> overlap_polygon = swath_def.intersection(area_def) It can be tested if a (lon, lat) point is inside a GeometryDefinition .. doctest:: >>> import numpy as np >>> from pyresample import utils >>> area_id = 'ease_sh' >>> description = 'Antarctic EASE grid' >>> proj_id = 'ease_sh' >>> projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' >>> x_size = 425 >>> y_size = 425 >>> area_extent = (-5326849.0625,-5326849.0625,5326849.0625,5326849.0625) >>> area_def = utils.get_area_def(area_id, description, proj_id, projection, ... x_size, y_size, area_extent) >>> print((0, -90) in area_def) True pyresample-1.8.1/docs/source/geo_filter.rst000066400000000000000000000031601324347254000210070ustar00rootroot00000000000000Geographic filtering ==================== The module **pyresample.geo_filter** contains classes to filter geo data GridFilter ---------- Allows for filtering of data based on a geographic mask. The filtering uses a bucket sampling approach. The following example shows how to select data falling in the upper left and lower right quadrant of a full globe Plate Carrée projection using an 8x8 filter mask .. doctest:: >>> import numpy as np >>> from pyresample import geometry, geo_filter >>> lons = np.array([-170, -30, 30, 170]) >>> lats = np.array([20, -40, 50, -80]) >>> swath_def = geometry.SwathDefinition(lons, lats) >>> data = np.array([1, 2, 3, 4]) >>> filter_area = geometry.AreaDefinition('test', 'test', 'test', ... {'proj' : 'eqc', 'lon_0' : 0.0, 'lat_0' : 0.0}, ... 8, 8, ... (-20037508.34, -10018754.17, 20037508.34, 10018754.17) ... ) >>> filter = np.array([[1, 1, 1, 1, 0, 0, 0, 0], ... [1, 1, 1, 1, 0, 0, 0, 0], ... [1, 1, 1, 1, 0, 0, 0, 0], ... [1, 1, 1, 1, 0, 0, 0, 0], ... [0, 0, 0, 0, 1, 1, 1, 1], ... [0, 0, 0, 0, 1, 1, 1, 1], ... [0, 0, 0, 0, 1, 1, 1, 1], ... [0, 0, 0, 0, 1, 1, 1, 1], ... ]) >>> grid_filter = geo_filter.GridFilter(filter_area, filter) >>> swath_def_filtered, data_filtered = grid_filter.filter(swath_def, data) Input swath_def and data must match as described in :ref:`swath`. The returned data will always have a 1D geometry_def and if multiple channels are present the filtered data will have the shape (number_of_points, channels).pyresample-1.8.1/docs/source/grid.rst000066400000000000000000000172671324347254000176320ustar00rootroot00000000000000Resampling of gridded data ========================== Pyresample can be used to resample from an existing grid to another. Nearest neighbour resampling is used. pyresample.image ---------------- A grid can be stored in an object of type **ImageContainer** along with its area definition. An object of type **ImageContainer** allows for calculating resampling using preprocessed arrays using the method **get_array_from_linesample** Resampling can be done using descendants of **ImageContainer** and calling their **resample** method. An **ImageContainerQuick** object allows for the grid to be resampled to a new area defintion using an approximate (but fast) nearest neighbour method. Resampling an object of type **ImageContainerQuick** returns a new object of type **ImageContainerQuick**. An **ImageContainerNearest** object allows for the grid to be resampled to a new area defintion (or swath definition) using an accurate kd-tree method. Resampling an object of type **ImageContainerNearest** returns a new object of type **ImageContainerNearest**. .. doctest:: >>> import numpy as np >>> from pyresample import image, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', ... 'msg_full', ... {'a': '6378169.0', 'b': '6356584.0', ... 'h': '35785831.0', 'lon_0': '0', ... 'proj': 'geos'}, ... 3712, 3712, ... [-5568742.4, -5568742.4, ... 5568742.4, 5568742.4]) >>> data = np.ones((3712, 3712)) >>> msg_con_quick = image.ImageContainerQuick(data, msg_area) >>> area_con_quick = msg_con_quick.resample(area_def) >>> result_data_quick = area_con_quick.image_data >>> msg_con_nn = image.ImageContainerNearest(data, msg_area, radius_of_influence=50000) >>> area_con_nn = msg_con_nn.resample(area_def) >>> result_data_nn = area_con_nn.image_data Data is assumed to be a numpy array of shape (rows, cols) or (rows, cols, channels). Masked arrays can be used as data input. In order to have undefined pixels masked out instead of assigned a fill value set **fill_value=None** when calling **resample_area_***. Using **ImageContainerQuick** the risk of image artifacts increases as the distance from source projection center increases. The constructor argument **radius_of_influence** to **ImageContainerNearest** specifices the maximum distance to search for a neighbour for each point in the target grid. The unit is meters. The constructor arguments of an ImageContainer object can be changed as attributes later .. doctest:: >>> import numpy as np >>> from pyresample import image, geometry >>> msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', ... 'msg_full', ... {'a': '6378169.0', 'b': '6356584.0', ... 'h': '35785831.0', 'lon_0': '0', ... 'proj': 'geos'}, ... 3712, 3712, ... [-5568742.4, -5568742.4, ... 5568742.4, 5568742.4]) >>> data = np.ones((3712, 3712)) >>> msg_con_nn = image.ImageContainerNearest(data, msg_area, radius_of_influence=50000) >>> msg_con_nn.radius_of_influence = 45000 >>> msg_con_nn.fill_value = -99 Multi channel images ******************** If the dataset has several channels the last index of the data array specifies the channels .. doctest:: >>> import numpy as np >>> from pyresample import image, geometry >>> msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', ... 'msg_full', ... {'a': '6378169.0', 'b': '6356584.0', ... 'h': '35785831.0', 'lon_0': '0', ... 'proj': 'geos'}, ... 3712, 3712, ... [-5568742.4, -5568742.4, ... 5568742.4, 5568742.4]) >>> channel1 = np.ones((3712, 3712)) >>> channel2 = np.ones((3712, 3712)) * 2 >>> channel3 = np.ones((3712, 3712)) * 3 >>> data = np.dstack((channel1, channel2, channel3)) >>> msg_con_nn = image.ImageContainerNearest(data, msg_area, radius_of_influence=50000) Segmented resampling ******************** Pyresample calculates the result in segments in order to reduce memory footprint. This is controlled by the **segments** contructor keyword argument. If no **segments** argument is given pyresample will estimate the number of segments to use. Forcing quick resampling to use 4 resampling segments: .. doctest:: >>> import numpy as np >>> from pyresample import image, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', ... 'msg_full', ... {'a': '6378169.0', 'b': '6356584.0', ... 'h': '35785831.0', 'lon_0': '0', ... 'proj': 'geos'}, ... 3712, 3712, ... [-5568742.4, -5568742.4, ... 5568742.4, 5568742.4]) >>> data = np.ones((3712, 3712)) >>> msg_con_quick = image.ImageContainerQuick(data, msg_area, segments=4) >>> area_con_quick = msg_con_quick.resample(area_def) Constructor arguments ********************* The full list of constructor arguments: **ImageContainerQuick**: * image_data : Dataset. Masked arrays can be used. * image_data : Geometry definition. * fill_value (optional) : Fill value for undefined pixels. Defaults to 0. If set to **None** they will be masked out. * nprocs (optional) : Number of processor cores to use. Defaults to 1. * segments (optional) : Number of segments to split resampling in. Defaults to auto estimation. **ImageContainerNearest**: * image_data : Dataset. Masked arrays can be used. * image_data : Geometry definition. * radius_of_influence : Cut off radius in meters when considering neighbour pixels. * epsilon (optional) : The distance to a found value is guaranteed to be no further than (1 + eps) times the distance to the correct neighbour. * fill_value (optional) : Fill value for undefined pixels. Defaults to 0. If set to **None** they will be masked out. * reduce_data (optional) : Apply geographic reduction of dataset before resampling. Defaults to True * nprocs (optional) : Number of processor cores to use. Defaults to 1. * segments (optional) : Number of segments to split resampling in. Defaults to auto estimation. Preprocessing of grid resampling ********************************* For preprocessing of grid resampling see :ref:`preproc` pyresample-1.8.1/docs/source/index.rst000066400000000000000000000013671324347254000200060ustar00rootroot00000000000000.. pyresample documentation master file, created by sphinx-quickstart on Tue Jan 5 13:01:32 2010. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Pyresample ====================================== Pyresample is a Python package for resampling (reprojection) of earth observing satellite data. Pyresample handles both resampling of gridded data (e.g. geostationary satellites) and swath data (polar orbiting satellites). Pyresample can use multiple processor cores for resampling. Pyresample supports masked arrays. Documentation ------------- .. toctree:: :maxdepth: 2 installation geo_def geo_filter grid swath multi preproc plot data_reduce API pyresample-1.8.1/docs/source/installation.rst000066400000000000000000000045311324347254000213740ustar00rootroot00000000000000Installing Pyresample ===================== Pyresample depends on pyproj, numpy(>= 1.3), scipy(>= 0.7), multiprocessing (builtin package for Python > 2.5) and configobj. Optionally pykdtree can be used instead of scipy from v0.8.0. The correct version of the packages should be installed on your system (refer to numpy and scipy installation instructions) or use easy_install to handle dependencies automatically. In order to use the pyresample plotting functionality Basemap and matplotlib (>= 0.98) must be installed. These packages are not a prerequisite for using any other pyresample functionality. Package test ************ Test the package (requires nose): .. code-block:: bash $ tar -zxvf pyresample-.tar.gz $ cd pyresample- $ nosetests If all the tests passes the functionality of all pyresample functions on the system has been verified. Package installation ******************** A sandbox environment can be created for pyresample using `Virtualenv `_ Pyresample is available from pypi. Install Pyresample using pip: .. code-block:: bash $ pip install pyresample Alternatively install from tarball: .. code-block:: bash $ tar -zxvf pyresample-.tar.gz $ cd pyresample- $ python setup.py install Using pykdtree ************** As of pyresample v0.8.0 pykdtree can be used as backend instead of scipy. This enables significant speedups for large datasets. pykdtree is used as a drop-in replacement for scipy. If it's available it will be used otherwise scipy will be used. To check which backend is active for your pyresample installation do: >>> import pyresample as pr >>> pr.kd_tree.which_kdtree() which returns either 'pykdtree' or 'scipy.spatial'. Please refere to pykdtree_ for installation description. If pykdtree is built with OpenMP support the number of threads is controlled with the standard OpenMP environment variable OMP_NUM_THREADS. The *nprocs* argument has no effect on pykdtree. Using numexpr ************* As of pyresample v1.0.0 numexpr_ will be used for minor bottleneck optimization if available Show active plugins ******************* The active drop-in plugins can be show using: >>> import pyresample as pr >>> pr.get_capabilities() .. _pykdtree: https://github.com/storpipfugl/pykdtree .. _numexpr: https://code.google.com/p/numexpr/ pyresample-1.8.1/docs/source/multi.rst000066400000000000000000000035771324347254000200360ustar00rootroot00000000000000.. _multi: Using multiple processor cores ============================== Multi core processing ********************* Bottlenecks of pyresample can be executed in parallel. Parallel computing can be executed if the pyresample function has the **nprocs** keyword argument. **nprocs** specifies the number of processes to be used for calculation. If a class takes the constructor argument **nprocs** this sets **nprocs** for all methods of this class Example of resampling in parallel using 4 processes: .. doctest:: >>> import numpy >>> from pyresample import kd_tree, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = numpy.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> result = kd_tree.resample_nearest(swath_def, data.ravel(), ... area_def, radius_of_influence=50000, nprocs=4) Note: Do not use more processes than available processor cores. As there is a process creation overhead there might be neglible performance improvement using say 8 compared to 4 processor cores. Test on the actual system to determine the most sensible number of processes to use. Here is an example of the performance for a varying number of processors on a 64-bit ubuntu 14.04, 32 GB RAM, 2 x Intel Xeon E5-2630 with 6 physical cores each: .. image:: _static/images/time_vs_nproc_1-12.png pyresample-1.8.1/docs/source/plot.rst000066400000000000000000000134171324347254000176540ustar00rootroot00000000000000.. _plot: Plotting with pyresample and Basemap ==================================== Pyresample supports basic integration with Basemap (http://matplotlib.sourceforge.net/basemap). Displaying data quickly ----------------------- Pyresample has some convenience functions for displaying data from a single channel. The function **plot.show_quicklook** shows a Basemap image of a dataset for a specified AreaDefinition. The function **plot.save_quicklook** saves the Basemap image directly to file. **Example usage:** .. doctest:: >>> import numpy as np >>> from pyresample import load_area, save_quicklook, SwathDefinition >>> from pyresample.kd_tree import resample_nearest >>> lons = np.zeros(1000) >>> lats = np.arange(-80, -90, -0.01) >>> tb37v = np.arange(1000) >>> area_def = load_area('areas.cfg', 'ease_sh') >>> swath_def = SwathDefinition(lons, lats) >>> result = resample_nearest(swath_def, tb37v, area_def, ... radius_of_influence=20000, fill_value=None) >>> save_quicklook('tb37v_quick.png', area_def, result, label='Tb 37v (K)') Assuming **lons**, **lats** and **tb37v** are initialized with real data the result might look something like this: .. image:: _static/images/tb37v_quick.png The data passed to the functions is a 2D array matching the AreaDefinition. The Plate Carree projection +++++++++++++++++++++++++++ The Plate Carree projection (regular lon/lat grid) is named **eqc** in Proj.4 and **cyl** in Basemap. pyresample uses the Proj.4 name. Assuming the file **areas.cfg** has the following area definition: .. code-block:: bash REGION: pc_world { NAME: Plate Carree world map PCS_ID: pc_world PCS_DEF: proj=eqc XSIZE: 640 YSIZE: 480 AREA_EXTENT: (-20037508.34, -10018754.17, 20037508.34, 10018754.17) }; **Example usage:** >>> import numpy as np >>> from pyresample import load_area, save_quicklook, SwathDefinition >>> from pyresample.kd_tree import resample_nearest >>> lons = np.zeros(1000) >>> lats = np.arange(-80, -90, -0.01) >>> tb37v = np.arange(1000) >>> area_def = load_area('areas.cfg', 'pc_world') >>> swath_def = SwathDefinition(lons, lats) >>> result = resample_nearest(swath_def, tb37v, area_def, radius_of_influence=20000, fill_value=None) >>> save_quicklook('tb37v_pc.png', area_def, result, num_meridians=0, num_parallels=0, label='Tb 37v (K)') Assuming **lons**, **lats** and **tb37v** are initialized with real data the result might look something like this: .. image:: _static/images/tb37v_pc.png The Globe projections +++++++++++++++++++++ From v0.7.12 pyresample can use the geos, ortho and nsper projections with Basemap. Assuming the file **areas.cfg** has the following area definition for an ortho projection area: .. code-block:: bash REGION: ortho { NAME: Ortho globe PCS_ID: ortho_globe PCS_DEF: proj=ortho, a=6370997.0, lon_0=40, lat_0=-40 XSIZE: 640 YSIZE: 480 AREA_EXTENT: (-10000000, -10000000, 10000000, 10000000) }; **Example usage:** >>> import numpy as np >>> from pyresample import load_area, save_quicklook, SwathDefinition >>> from pyresample.kd_tree import resample_nearest >>> lons = np.zeros(1000) >>> lats = np.arange(-80, -90, -0.01) >>> tb37v = np.arange(1000) >>> area_def = load_area('areas.cfg', 'ortho') >>> swath_def = SwathDefinition(lons, lats) >>> result = resample_nearest(swath_def, tb37v, area_def, radius_of_influence=20000, fill_value=None) >>> save_quicklook('tb37v_ortho.png', area_def, result, num_meridians=0, num_parallels=0, label='Tb 37v (K)') Assuming **lons**, **lats** and **tb37v** are initialized with real data the result might look something like this: .. image:: _static/images/tb37v_ortho.png Getting a Basemap object ------------------------ In order to make more advanced plots than the preconfigured quicklooks a Basemap object can be generated from an AreaDefintion using the **plot.area_def2basemap(area_def, **kwargs)** function. **Example usage:** .. doctest:: >>> import numpy as np >>> import matplotlib.pyplot as plt >>> from pyresample import load_area, save_quicklook, area_def2basemap, SwathDefinition >>> from pyresample.kd_tree import resample_nearest >>> lons = np.zeros(1000) >>> lats = np.arange(-80, -90, -0.01) >>> tb37v = np.arange(1000) >>> area_def = load_area('areas.cfg', 'ease_sh') >>> swath_def = SwathDefinition(lons, lats) >>> result = resample_nearest(swath_def, tb37v, area_def, ... radius_of_influence=20000, fill_value=None) >>> bmap = area_def2basemap(area_def) >>> bmng = bmap.bluemarble() >>> col = bmap.imshow(result, origin='upper') >>> plt.savefig('tb37v_bmng.png', bbox_inches='tight') Assuming **lons**, **lats** and **tb37v** are initialized with real data the result might look something like this: .. image:: _static/images/tb37v_bmng.png Any keyword arguments (not concerning the projection) passed to **plot.area_def2basemap** will be passed directly to the Basemap initialization. For more information on how to plot with Basemap please refer to the Basemap and matplotlib documentation. Limitations ----------- The pyresample use of Basemap is basically a conversion from a pyresample AreaDefintion to a Basemap object which allows for correct plotting of a resampled dataset using the **basemap.imshow** function. Currently only the following set of Proj.4 arguments can be interpreted in the conversion: {'proj', 'a', 'b', 'ellps', 'lon_0', 'lat_0', 'lon_1', 'lat_1', 'lon_2', 'lat_2', 'lat_ts'} Any other Proj.4 parameters will be ignored. If the ellipsoid is not defined in terms of 'ellps', 'a' or ('a', 'b') it will default to WGS84. The xsize and ysize in an AreaDefinition will only be used during resampling when the image data for use in **basemap.imshow** is created. The actual size and shape of the final plot is handled by matplotlib. pyresample-1.8.1/docs/source/preproc.rst000066400000000000000000000044751324347254000203540ustar00rootroot00000000000000.. _preproc: Preprocessing of grids ====================== When resampling is performed repeatedly to the same grid significant execution time can be save by preprocessing grid information. Preprocessing for grid resampling --------------------------------- Using the function **generate_quick_linesample_arrays** or **generate_nearest_neighbour_linesample_arrays** from **pyresample.utils** arrays containing the rows and cols indices used to calculate the result in **image.resample_area_quick** or **resample_area_nearest_neighbour** can be obtained. These can be fed to the method **get_array_from_linesample** of an **ImageContainer** object to obtain the resample result. .. doctest:: >>> import numpy >>> from pyresample import utils, image, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', ... 'msg_full', ... {'a': '6378169.0', 'b': '6356584.0', ... 'h': '35785831.0', 'lon_0': '0', ... 'proj': 'geos'}, ... 3712, 3712, ... [-5568742.4, -5568742.4, ... 5568742.4, 5568742.4]) >>> data = numpy.ones((3712, 3712)) >>> msg_con = image.ImageContainer(data, msg_area) >>> row_indices, col_indices = \ ... utils.generate_nearest_neighbour_linesample_arrays(msg_area, area_def, 50000) >>> result = msg_con.get_array_from_linesample(row_indices, col_indices) The numpy arrays returned by **generate_*_linesample_arrays** can be and used with the **ImageContainer.get_array_from_linesample** method when the same resampling is to be performed again thus eliminating the need for calculating the reprojection. Numpy arrays can be saved and loaded using **numpy.save** and **numpy.load**. pyresample-1.8.1/docs/source/swath.rst000066400000000000000000000556301324347254000200270ustar00rootroot00000000000000.. _swath: Resampling of swath data ======================== Pyresample can be used to resample a swath dataset to a grid, a grid to a swath or a swath to another swath. Resampling can be done using nearest neighbour method, Guassian weighting, weighting with an arbitrary radial function. .. versionchanged:: 1.8.0 `SwathDefinition` no longer checks the validity of the provided longitude and latitude coordinates to improve performance. Longitude arrays are expected to be between -180 and 180 degrees, latitude -90 to 90 degrees. This also applies to all geometry definitions that are provided longitude and latitude arrays on initialization. Use `pyresample.utils.check_and_wrap` to preprocess your arrays. pyresample.image ---------------- The ImageContainerNearest and ImageContanerBilinear classes can be used for resampling of swaths as well as grids. Below is an example using nearest neighbour resampling. .. doctest:: >>> import numpy as np >>> from pyresample import image, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> swath_con = image.ImageContainerNearest(data, swath_def, radius_of_influence=5000) >>> area_con = swath_con.resample(area_def) >>> result = area_con.image_data For other resampling types or splitting the process in two steps use e.g. the functions in **pyresample.kd_tree** described below. pyresample.kd_tree ------------------ This module contains several functions for resampling swath data. Note distance calculation is approximated with cartesian distance. Masked arrays can be used as data input. In order to have undefined pixels masked out instead of assigned a fill value set **fill_value=None** when calling the **resample_*** function. resample_nearest **************** Function for resampling using nearest neighbour method. Example showing how to resample a generated swath dataset to a grid using nearest neighbour method: .. doctest:: >>> import numpy as np >>> from pyresample import kd_tree, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> result = kd_tree.resample_nearest(swath_def, data, ... area_def, radius_of_influence=50000, epsilon=0.5) If the arguments **swath_def** and **area_def** where switched (and **data** matched the dimensions of **area_def**) the grid of **area_def** would be resampled to the swath defined by **swath_def**. Note the keyword arguments: * **radius_of_influence**: The radius around each grid pixel in meters to search for neighbours in the swath. * **epsilon**: The distance to a found value is guaranteed to be no further than (1 + eps) times the distance to the correct neighbour. Allowing for uncertanty decreases execution time. If **data** is a masked array the mask will follow the neighbour pixel assignment. If there are multiple channels in the dataset the **data** argument should be of the shape of the lons and lat arrays with the channels along the last axis e.g. (rows, cols, channels). Note: the convention of pyresample < 0.7.4 is to pass **data** in the form of (number_of_data_points, channels) is still accepted. .. doctest:: >>> import numpy as np >>> from pyresample import kd_tree, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> channel1 = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> channel2 = np.fromfunction(lambda y, x: y*x, (50, 10)) * 2 >>> channel3 = np.fromfunction(lambda y, x: y*x, (50, 10)) * 3 >>> data = np.dstack((channel1, channel2, channel3)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> result = kd_tree.resample_nearest(swath_def, data, ... area_def, radius_of_influence=50000) For nearest neighbour resampling the class **image.ImageContainerNearest** can be used as well as **kd_tree.resample_nearest** resample_gauss ************** Function for resampling using nearest Gussian weighting. The Gauss weigh function is defined as exp(-dist^2/sigma^2). Note the pyresample sigma is **not** the standard deviation of the gaussian. Example showing how to resample a generated swath dataset to a grid using Gaussian weighting: .. doctest:: >>> import numpy as np >>> from pyresample import kd_tree, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> result = kd_tree.resample_gauss(swath_def, data, ... area_def, radius_of_influence=50000, sigmas=25000) If more channels are present in **data** the keyword argument **sigmas** must be a list containing a sigma for each channel. If **data** is a masked array any pixel in the result data that has been "contaminated" by weighting of a masked pixel is masked. Using the function **utils.fwhm2sigma** the sigma argument to the gauss resampling can be calculated from 3 dB FOV levels. resample_custom *************** Function for resampling using arbitrary radial weight functions. Example showing how to resample a generated swath dataset to a grid using an arbitrary radial weight function: .. doctest:: >>> import numpy as np >>> from pyresample import kd_tree, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> wf = lambda r: 1 - r/100000.0 >>> result = kd_tree.resample_custom(swath_def, data, ... area_def, radius_of_influence=50000, weight_funcs=wf) If more channels are present in **data** the keyword argument **weight_funcs** must be a list containing a radial function for each channel. If **data** is a masked array any pixel in the result data that has been "contaminated" by weighting of a masked pixel is masked. Uncertainty estimates ********************* Uncertainty estimates in the form of weighted standard deviation can be obtained from the **resample_custom** and **resample_gauss** functions. By default the functions return the result of the resampling as a single numpy array. If the functions are given the keyword argument **with_uncert=True** then the following list of numpy arrays will be returned instead: **(result, stddev, count)**. **result** is the usual result. **stddev** is the weighted standard deviation for each element in the result. **count** is the number of data values used in the weighting for each element in the result. The principle is to view the calculated value for each element in the result as a weighted average of values sampled from a statistical variable. An estimate of the standard deviation of the distribution is calculated using the unbiased weighted estimator given as **stddev = sqrt((V1 / (V1 ** 2 + V2)) * sum(wi * (xi - result) ** 2))** where **result** is the result of the resampling. **xi** is the value of a contributing neighbour and **wi** is the corresponding weight. The coefficients are given as **V1 = sum(wi)** and **V2 = sum(wi ** 2)**. The standard deviation is only calculated for elements in the result where more than one neighbour has contributed to the weighting. The **count** numpy array can be used for filtering at a higher number of contributing neigbours. Usage only differs in the number of return values from **resample_gauss** and **resample_custom**. E.g.: >>> result, stddev, count = pr.kd_tree.resample_gauss(swath_def, ice_conc, area_def, ... radius_of_influence=20000, ... sigmas=pr.utils.fwhm2sigma(35000), ... fill_value=None, with_uncert=True) Below is shown a plot of the result of the resampling using a real data set: .. image:: _static/images/uncert_conc_nh.png The corresponding standard deviations: .. image:: _static/images/uncert_stddev_nh.png And the number of contributing neighbours for each element: .. image:: _static/images/uncert_count_nh.png Notice the standard deviation is only calculated where there are more than one contributing neighbour. Resampling from neighbour info ****************************** The resampling can be split in two steps: First get arrays containing information about the nearest neighbours to each grid point. Then use these arrays to retrive the resampling result. This approch can be useful if several datasets based on the same swath are to be resampled. The computational heavy task of calculating the neighbour information can be done once and the result can be used to retrieve the resampled data from each of the datasets fast. .. doctest:: >>> import numpy as np >>> from pyresample import kd_tree, geometry >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> valid_input_index, valid_output_index, index_array, distance_array = \ ... kd_tree.get_neighbour_info(swath_def, ... area_def, 50000, ... neighbours=1) >>> res = kd_tree.get_sample_from_neighbour_info('nn', area_def.shape, data, ... valid_input_index, valid_output_index, ... index_array) Note the keyword argument **neighbours=1**. This specifies only to consider one neighbour for each grid point (the nearest neighbour). Also note **distance_array** is not a required argument for **get_sample_from_neighbour_info** when using nearest neighbour resampling Segmented resampling ******************** Whenever a resampling function takes the keyword argument **segments** the number of segments to split the resampling process in can be specified. This affects the memory footprint of pyresample. If the value of **segments** is left to default pyresample will estimate the number of segments to use. Speedup using pykdtree ********************** pykdtree can be used instead of scipy to gain significant speedup for large datasets. See :ref:`multi`. pyresample.bilinear ------------------- Compared to nearest neighbour resampling, bilinear interpolation produces smoother results near swath edges of polar satellite data and edges of geostationary satellites. The algorithm is implemented from http://www.ahinson.com/algorithms_general/Sections/InterpolationRegression/InterpolationIrregularBilinear.pdf Below is shown a comparison between image generated with nearest neighbour resampling (top) and with bilinear interpolation (bottom): .. image:: _static/images/nearest_overview.png :width: 50% .. image:: _static/images/bilinear_overview.png :width: 50% Click images to see the full resolution versions. The *perceived* sharpness of the bottom image is lower, but there is more detail present. resample_bilinear ***************** Function for resampling using bilinear interpolation for irregular source grids. .. doctest:: >>> import numpy as np >>> from pyresample import bilinear, geometry >>> target_def = geometry.AreaDefinition('areaD', ... 'Europe (3km, HRV, VTC)', ... 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (500, 100)) >>> lons = np.fromfunction(lambda y, x: 3 + x * 0.1, (500, 100)) >>> lats = np.fromfunction(lambda y, x: 75 - y * 0.1, (500, 100)) >>> source_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> result = bilinear.resample_bilinear(data, source_def, target_def, ... radius=50e3, neighbours=32, ... nprocs=1, fill_value=0, ... reduce_data=True, segments=None, ... epsilon=0) The **target_area** needs to be an area definition with **proj4_string** attribute. .. The **source_def** can be either an area definition as above, or a 2-tuple of (lons, lats). Keyword arguments which are passed to **kd_tree**: * **radius**: radius around each target pixel in meters to search for neighbours in the source data * **neighbours**: number of closest locations to consider when selecting the four data points around the target location. Note that this value needs to be large enough to ensure "surrounding" the target! * **nprocs**: number of processors to use for finding the closest pixels * **fill_value**: fill invalid pixel with this value. If **fill_value=None** is used, masked arrays will be returned * **reduce_data**: do/don't do preliminary data reduction before calculating the neigbour info * **segments**: number of segments to use in neighbour search * **epsilon**: maximum uncertainty allowed in neighbour search The example above shows the default value for each keyword argument. Resampling from bilinear coefficients ************************************* As for nearest neighbour resampling, also bilinear interpolation can be split in two steps. * Calculate interpolation coefficients, input data reduction matrix and mapping matrix * Use this information to resample several datasets between these two areas/swaths Only the first step is computationally expensive operation, so by re-using this information the overall processing time is reduced significantly. This is also done internally by the **resample_bilinear** function, but separating these steps makes it possible to cache the coefficients if the same transformation is done over and over again. This is very typical in operational geostationary satellite image processing. Note that the output shape is now defined so that the result is reshaped to correct shape. This reshaping is done internally in **resample_bilinear**. .. doctest:: >>> import numpy as np >>> from pyresample import bilinear, geometry >>> target_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', ... 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> source_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> t_params, s_params, input_idxs, idx_ref = \ ... bilinear.get_bil_info(source_def, target_def, radius=50e3, nprocs=1) >>> res = bilinear.get_sample_from_bil_info(data.ravel(), t_params, s_params, ... input_idxs, idx_ref, ... output_shape=target_def.shape) pyresample.ewa -------------- Pyresample makes it possible to resample swath data to a uniform grid using an Elliptical Weighted Averaging algorithm or EWA for short. This algorithm behaves differently than the KDTree based resampling algorithms that pyresample provides. The KDTree-based algorithms process each output grid pixel by searching for all "nearby" input pixels and applying a certain interpolation (nearest neighbor, gaussian, etc). The EWA algorithm processes each input pixel mapping it to one or more output pixels. Once each input pixel has been analyzed the intermediate results are averaged to produce the final gridded result. The EWA algorithm also has limitations on how the input data is structured compared to the generic KDTree algorithms. EWA assumes that data in the array is organized geographically; adjacent data in the array is adjacent data geographically. The algorithm uses this to configure parameters based on the size and location of the swath pixels. The EWA algorithm consists of two steps: ll2cr and fornav. The algorithm was originally part of the MODIS Swath to Grid Toolbox (ms2gt) created by the NASA National Snow & Ice Data Center (NSIDC). Its default parameters work best with MODIS L1B data, but it has been proven to produce high quality images from VIIRS and AVHRR data with the right parameters. .. note:: This code was originally part of the Polar2Grid project. This documentation and the API documentation for this algorithm may still use references or concepts from Polar2Grid until everything can be updated. Gridding ******** The first step is called 'll2cr' which stands for "longitude/latitude to column/row". This step maps the pixel location (lon/lat space) into area (grid) space. Areas in pyresample are defined by a PROJ.4 projection specification. An area is defined by the following parameters: - Grid Name - PROJ.4 String (either lat/lon or metered projection space) - Width (number of pixels in the X direction) - Height (number of pixels in the Y direction) - Cell Width (pixel size in the X direction in grid units) - Cell Height (pixel size in the Y direction in grid units) - X Origin (upper-left X coordinate in grid units) - Y Origin (upper-left Y coordinate in grid units) Resampling ********** The second step of EWA remapping is called "fornav", short for "forward navigation". This EWA algorithm processes one input scan line at a time. The algorithm weights the effect of an input pixel on an output pixel based on its location in the scan line and other calculated coefficients. It can also handle swaths that are not scan based by specifying `rows_per_scan` as the number of rows in the entire swath. How the algorithm treats the data can be configured with various keyword arguments, see the API documentation for more information. Both steps provide additional information to inform the user how much data was used in the result. The first returned value of ll2cr tells you how many of the input swath pixels overlap the grid. The first returned value of fornav tells you how many grid points have valid data values in them. Example ******* .. note:: EWA resampling in pyresample is still in an alpha stage. As development continues, EWA resampling may be called differently. .. doctest:: >>> import numpy as np >>> from pyresample.ewa import ll2cr, fornav >>> area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', ... {'a': '6378144.0', 'b': '6356759.0', ... 'lat_0': '50.00', 'lat_ts': '50.00', ... 'lon_0': '8.00', 'proj': 'stere'}, ... 800, 800, ... [-1370912.72, -909968.64, ... 1029087.28, 1490031.36]) >>> data = np.fromfunction(lambda y, x: y*x, (50, 10)) >>> lons = np.fromfunction(lambda y, x: 3 + x, (50, 10)) >>> lats = np.fromfunction(lambda y, x: 75 - y, (50, 10)) >>> swath_def = geometry.SwathDefinition(lons=lons, lats=lats) >>> # ll2cr converts swath longitudes and latitudes to grid columns and rows >>> swath_points_in_grid, cols, rows = ll2cr(swath_def, area_def) >>> # if the data is scan based, specify how many data rows make up one scan >>> rows_per_scan = 5 >>> # fornav resamples the swath data to the gridded area >>> num_valid_points, gridded_data = fornav(cols, rows, area_def, data, rows_per_scan=rows_per_scan) pyresample-1.8.1/pyresample/000077500000000000000000000000001324347254000160675ustar00rootroot00000000000000pyresample-1.8.1/pyresample/__init__.py000066400000000000000000000034371324347254000202070ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2014, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . import os CHUNK_SIZE = os.getenv('PYTROLL_CHUNK_SIZE', 4096) from pyresample.version import __version__ # Backwards compatibility from pyresample import geometry from pyresample import grid from pyresample import image from pyresample import kd_tree from pyresample import utils from pyresample import plot # Easy access from pyresample.geometry import (SwathDefinition, AreaDefinition, DynamicAreaDefinition) from pyresample.utils import load_area from pyresample.kd_tree import XArrayResamplerNN from pyresample.plot import save_quicklook, area_def2basemap __all__ = ['grid', 'image', 'kd_tree', 'utils', 'plot', 'geo_filter', 'geometry', 'CHUNK_SIZE'] def get_capabilities(): cap = {} try: from pykdtree.kdtree import KDTree cap['pykdtree'] = True except ImportError: cap['pykdtree'] = False try: import numexpr cap['numexpr'] = True except ImportError: cap['numexpr'] = False return cap pyresample-1.8.1/pyresample/_multi_proc.py000066400000000000000000000066321324347254000207640ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . from __future__ import absolute_import import ctypes import multiprocessing as mp import numpy as np class Scheduler(object): def __init__(self, ndata, nprocs, chunk=None, schedule='guided'): if not schedule in ['guided', 'dynamic', 'static']: raise ValueError('unknown scheduling strategy') self._ndata = mp.RawValue(ctypes.c_int, ndata) self._start = mp.RawValue(ctypes.c_int, 0) self._lock = mp.Lock() self._schedule = schedule self._nprocs = nprocs if schedule == 'guided' or schedule == 'dynamic': min_chunk = ndata // (10 * nprocs) if chunk: min_chunk = chunk min_chunk = max(min_chunk, 1) self._chunk = min_chunk elif schedule == 'static': min_chunk = ndata // nprocs if chunk: min_chunk = max(chunk, min_chunk) min_chunk = max(min_chunk, 1) self._chunk = min_chunk def __iter__(self): while True: self._lock.acquire() ndata = self._ndata.value nprocs = self._nprocs start = self._start.value if self._schedule == 'guided': _chunk = ndata // nprocs chunk = max(self._chunk, _chunk) else: chunk = self._chunk if ndata: if chunk > ndata: s0 = start s1 = start + ndata self._ndata.value = 0 else: s0 = start s1 = start + chunk self._ndata.value = ndata - chunk self._start.value = start + chunk self._lock.release() yield slice(s0, s1) else: self._lock.release() raise StopIteration def shmem_as_ndarray(raw_array): _ctypes_to_numpy = { ctypes.c_char: np.int8, ctypes.c_wchar: np.int16, ctypes.c_byte: np.int8, ctypes.c_ubyte: np.uint8, ctypes.c_short: np.int16, ctypes.c_ushort: np.uint16, ctypes.c_int: np.int32, ctypes.c_uint: np.int32, ctypes.c_long: np.int32, ctypes.c_ulong: np.int32, ctypes.c_float: np.float32, ctypes.c_double: np.float64 } dtype = _ctypes_to_numpy[raw_array._type_] # The following works too, but occasionally raises # RuntimeWarning: Item size computed from the PEP 3118 buffer format string does not match the actual item size. # and appears to be slower. # return np.ctypeslib.as_array(raw_array) return np.frombuffer(raw_array, dtype=dtype) pyresample-1.8.1/pyresample/_spatial_mp.py000066400000000000000000000236631324347254000207430ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2013, 2015 Esben S. Nielsen, Martin Raspaud # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . from __future__ import absolute_import import ctypes import numpy as np import pyproj #import scipy.spatial as sp import multiprocessing as mp try: import numexpr as ne except ImportError: ne = None from ._multi_proc import shmem_as_ndarray, Scheduler # Earth radius R = 6370997.0 class cKDTree_MP(object): ''' Multiprocessing cKDTree subclass, shared memory ''' def __init__(self, data, leafsize=10, nprocs=2, chunk=None, schedule='guided'): ''' Same as cKDTree.__init__ except that an internal copy of data to shared memory is made. Extra keyword arguments: chunk : Minimum chunk size for the load balancer. schedule: Strategy for balancing work load ('static', 'dynamic' or 'guided'). ''' self.n, self.m = data.shape # Allocate shared memory for data self.shmem_data = mp.RawArray(ctypes.c_double, self.n * self.m) # View shared memory as ndarray, and copy over the data. # The RawArray objects have information about the dtype and # buffer size. _data = shmem_as_ndarray(self.shmem_data).reshape((self.n, self.m)) _data[:,:] = data # Initialize parent, we must do this last because # cKDTree stores a reference to the data array. We pass in # the copy in shared memory rather than the origial data. self.leafsize = leafsize self._nprocs = nprocs self._chunk = chunk self._schedule = schedule def query(self, x, k=1, eps=0, p=2, distance_upper_bound=np.inf): ''' Same as cKDTree.query except parallelized with multiple processes and shared memory. ''' # allocate shared memory for x and result nx = x.shape[0] shmem_x = mp.RawArray(ctypes.c_double, nx * self.m) shmem_d = mp.RawArray(ctypes.c_double, nx * k) shmem_i = mp.RawArray(ctypes.c_int, nx * k) # view shared memory as ndarrays _x = shmem_as_ndarray(shmem_x).reshape((nx, self.m)) if k == 1: _d = shmem_as_ndarray(shmem_d) _i = shmem_as_ndarray(shmem_i) else: _d = shmem_as_ndarray(shmem_d).reshape((nx, k)) _i = shmem_as_ndarray(shmem_i).reshape((nx, k)) # copy x to shared memory _x[:] = x # set up a scheduler to load balance the query scheduler = Scheduler(nx, self._nprocs, chunk=self._chunk, schedule=self._schedule) # query with multiple processes query_args = [scheduler, self.shmem_data, self.n, self.m, self.leafsize, shmem_x, nx, shmem_d, shmem_i, k, eps, p, distance_upper_bound] _run_jobs(_parallel_query, query_args, self._nprocs) # return results (private memory) return _d.copy(), _i.copy() class Proj(pyproj.Proj): def __call__(self, data1, data2, inverse=False, radians=False, errcheck=False, nprocs=1): if self.is_latlong(): return data1, data2 return super(Proj, self).__call__(data1, data2, inverse=inverse, radians=radians, errcheck=errcheck) class Proj_MP(pyproj.Proj): def __init__(self, *args, **kwargs): self._args = args self._kwargs = kwargs def __call__(self, data1, data2, inverse=False, radians=False, errcheck=False, nprocs=2, chunk=None, schedule='guided'): if self.is_latlong(): return data1, data2 grid_shape = data1.shape n = data1.size # Create shared memory shmem_data1 = mp.RawArray(ctypes.c_double, n) shmem_data2 = mp.RawArray(ctypes.c_double, n) shmem_res1 = mp.RawArray(ctypes.c_double, n) shmem_res2 = mp.RawArray(ctypes.c_double, n) # view shared memory as ndarrays _data1 = shmem_as_ndarray(shmem_data1) _data2 = shmem_as_ndarray(shmem_data2) _res1 = shmem_as_ndarray(shmem_res1) _res2 = shmem_as_ndarray(shmem_res2) # copy input data to shared memory _data1[:] = data1.ravel() _data2[:] = data2.ravel() # set up a scheduler to load balance the query scheduler = Scheduler(n, nprocs, chunk=chunk, schedule=schedule) # Projection with multiple processes proj_call_args = [scheduler, shmem_data1, shmem_data2, shmem_res1, shmem_res2, self._args, self._kwargs, inverse, radians, errcheck] _run_jobs(_parallel_proj, proj_call_args, nprocs) return _res1.copy().reshape(grid_shape), _res2.copy().reshape(grid_shape) class Cartesian(object): def __init__(self, *args, **kwargs): pass def transform_lonlats(self, lons, lats): coords = np.zeros((lons.size, 3), dtype=lons.dtype) deg2rad = lons.dtype.type(np.pi / 180) if ne: coords[:, 0] = ne.evaluate("R*cos(lats*deg2rad)*cos(lons*deg2rad)") coords[:, 1] = ne.evaluate("R*cos(lats*deg2rad)*sin(lons*deg2rad)") coords[:, 2] = ne.evaluate("R*sin(lats*deg2rad)") else: coords[:, 0] = R * np.cos(lats * deg2rad) * np.cos(lons * deg2rad) coords[:, 1] = R * np.cos(lats * deg2rad) * np.sin(lons * deg2rad) coords[:, 2] = R * np.sin(lats * deg2rad) return coords Cartesian_MP = Cartesian def _run_jobs(target, args, nprocs): """Run process pool """ # return status in shared memory # access to these values are serialized automatically ierr = mp.Value(ctypes.c_int, 0) err_msg = mp.Array(ctypes.c_char, 1024) args.extend((ierr, err_msg)) pool = [mp.Process(target=target, args=args) for n in range(nprocs)] for p in pool: p.start() for p in pool: p.join() if ierr.value != 0: raise RuntimeError('%d errors in worker processes. Last one reported:\n%s' % (ierr.value, err_msg.value.decode())) # This is executed in an external process: def _parallel_query(scheduler, # scheduler for load balancing # data needed to reconstruct the kd-tree data, ndata, ndim, leafsize, x, nx, d, i, # query data and results k, eps, p, dub, # auxillary query parameters ierr, err_msg): # return values (0 on success) try: # View shared memory as ndarrays. _data = shmem_as_ndarray(data).reshape((ndata, ndim)) _x = shmem_as_ndarray(x).reshape((nx, ndim)) if k == 1: _d = shmem_as_ndarray(d) _i = shmem_as_ndarray(i) else: _d = shmem_as_ndarray(d).reshape((nx, k)) _i = shmem_as_ndarray(i).reshape((nx, k)) # Reconstruct the kd-tree from the data. import scipy.spatial as sp kdtree = sp.cKDTree(_data, leafsize=leafsize) # Query for nearest neighbours, using slice ranges, # from the load balancer. for s in scheduler: if k == 1: _d[s], _i[s] = kdtree.query(_x[s,:], k=1, eps=eps, p=p,\ distance_upper_bound=dub) else: _d[s,:], _i[s,:] = kdtree.query(_x[s,:], k=k, eps=eps, p=p,\ distance_upper_bound=dub) # An error occured, increment the return value ierr. # Access to ierr is serialized by multiprocessing. except Exception as e: ierr.value += 1 err_msg.value = str(e).encode() def _parallel_proj(scheduler, data1, data2, res1, res2, proj_args, proj_kwargs, inverse, radians, errcheck, ierr, err_msg): try: # View shared memory as ndarrays. _data1 = shmem_as_ndarray(data1) _data2 = shmem_as_ndarray(data2) _res1 = shmem_as_ndarray(res1) _res2 = shmem_as_ndarray(res2) # Initialise pyproj proj = pyproj.Proj(*proj_args, **proj_kwargs) # Reproject data segment for s in scheduler: _res1[s], _res2[s] = proj(_data1[s], _data2[s], inverse=inverse, radians=radians, errcheck=errcheck) # An error occured, increment the return value ierr. # Access to ierr is serialized by multiprocessing. except Exception as e: ierr.value += 1 err_msg.value = str(e).encode() def _parallel_transform(scheduler, lons, lats, n, coords, ierr, err_msg): try: # View shared memory as ndarrays. _lons = shmem_as_ndarray(lons) _lats = shmem_as_ndarray(lats) _coords = shmem_as_ndarray(coords).reshape((n, 3)) # Transform to cartesian coordinates for s in scheduler: _coords[s, 0] = R * \ np.cos(np.radians(_lats[s])) * np.cos(np.radians(_lons[s])) _coords[s, 1] = R * \ np.cos(np.radians(_lats[s])) * np.sin(np.radians(_lons[s])) _coords[s, 2] = R * np.sin(np.radians(_lats[s])) # An error occured, increment the return value ierr. # Access to ierr is serialized by multiprocessing. except Exception as e: ierr.value += 1 err_msg.value = str(e).encode() pyresample-1.8.1/pyresample/bilinear/000077500000000000000000000000001324347254000176545ustar00rootroot00000000000000pyresample-1.8.1/pyresample/bilinear/__init__.py000066400000000000000000000447171324347254000220020ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2017 # Author(s): # Panu Lahtinen # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . """Code for resampling using bilinear algorithm for irregular grids. The algorithm is taken from http://www.ahinson.com/algorithms_general/Sections/InterpolationRegression/InterpolationIrregularBilinear.pdf """ import numpy as np from pyproj import Proj import warnings from pyresample import kd_tree def resample_bilinear(data, source_geo_def, target_area_def, radius=50e3, neighbours=32, nprocs=1, fill_value=0, reduce_data=True, segments=None, epsilon=0): """Resample using bilinear interpolation. data : numpy array Array of single channel data points or (source_geo_def.shape, k) array of k channels of datapoints source_geo_def : object Geometry definition of source data target_area_def : object Geometry definition of target area radius : float, optional Cut-off distance in meters neighbours : int, optional Number of neighbours to consider for each grid point when searching the closest corner points nprocs : int, optional Number of processor cores to be used for getting neighbour info fill_value : {int, None}, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time Returns ------- data : numpy array Source data resampled to target geometry """ # Calculate the resampling information t__, s__, input_idxs, idx_ref = get_bil_info(source_geo_def, target_area_def, radius=radius, neighbours=neighbours, nprocs=nprocs, masked=False, reduce_data=reduce_data, segments=segments, epsilon=epsilon) data = _check_data_shape(data, input_idxs) result = np.nan * np.zeros((target_area_def.size, data.shape[1])) for i in range(data.shape[1]): result[:, i] = get_sample_from_bil_info(data[:, i], t__, s__, input_idxs, idx_ref, output_shape=None) if fill_value is None: result = np.ma.masked_invalid(result) else: result[np.isnan(result)] = fill_value # Reshape to target area shape shp = target_area_def.shape result = result.reshape((shp[0], shp[1], data.shape[1])) # Remove extra dimensions result = np.squeeze(result) return result def get_sample_from_bil_info(data, t__, s__, input_idxs, idx_arr, output_shape=None): """Resample data using bilinear interpolation. Parameters ---------- data : numpy array 1d array to be resampled t__ : numpy array Vertical fractional distances from corner to the new points s__ : numpy array Horizontal fractional distances from corner to the new points input_idxs : numpy array Valid indices in the input data idx_arr : numpy array Mapping array from valid source points to target points output_shape : tuple, optional Tuple of (y, x) dimension for the target projection. If None (default), do not reshape data. Returns ------- result : numpy array Source data resampled to target geometry """ # Reduce data new_data = data[input_idxs] data_min = np.nanmin(new_data) data_max = np.nanmax(new_data) new_data = new_data[idx_arr] # Get neighbour data to separate variables p_1 = new_data[:, 0] p_2 = new_data[:, 1] p_3 = new_data[:, 2] p_4 = new_data[:, 3] result = (p_1 * (1 - s__) * (1 - t__) + p_2 * s__ * (1 - t__) + p_3 * (1 - s__) * t__ + p_4 * s__ * t__) if hasattr(result, 'mask'): mask = result.mask result = result.data result[mask] = np.nan try: with np.errstate(invalid='ignore'): idxs = (result > data_max) | (result < data_min) result[idxs] = np.nan except TypeError: pass if output_shape is not None: result = result.reshape(output_shape) return result def get_bil_info(source_geo_def, target_area_def, radius=50e3, neighbours=32, nprocs=1, masked=False, reduce_data=True, segments=None, epsilon=0): """Calculate information needed for bilinear resampling. source_geo_def : object Geometry definition of source data target_area_def : object Geometry definition of target area radius : float, optional Cut-off distance in meters neighbours : int, optional Number of neighbours to consider for each grid point when searching the closest corner points nprocs : int, optional Number of processor cores to be used for getting neighbour info masked : bool, optional If true, return masked arrays, else return np.nan values for invalid points (default) reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time Returns ------- t__ : numpy array Vertical fractional distances from corner to the new points s__ : numpy array Horizontal fractional distances from corner to the new points input_idxs : numpy array Valid indices in the input data idx_arr : numpy array Mapping array from valid source points to target points """ # Check source_geo_def # if isinstance(source_geo_def, tuple): # from pyresample.geometry import SwathDefinition # lons, lats = _mask_coordinates(source_geo_def[0], source_geo_def[1]) # source_geo_def = SwathDefinition(lons, lats) # Calculate neighbour information with warnings.catch_warnings(): warnings.simplefilter("ignore") (input_idxs, output_idxs, idx_ref, dists) = \ kd_tree.get_neighbour_info(source_geo_def, target_area_def, radius, neighbours=neighbours, nprocs=nprocs, reduce_data=reduce_data, segments=segments, epsilon=epsilon) del output_idxs, dists # Reduce index reference input_size = input_idxs.sum() index_mask = (idx_ref == input_size) idx_ref = np.where(index_mask, 0, idx_ref) # Get output projection as pyproj object proj = Proj(target_area_def.proj4_string) # Get output x/y coordinates out_x, out_y = _get_output_xy(target_area_def, proj) # Get input x/ycoordinates in_x, in_y = _get_input_xy(source_geo_def, proj, input_idxs, idx_ref) # Get the four closest corner points around each output location pt_1, pt_2, pt_3, pt_4, idx_ref = \ _get_bounding_corners(in_x, in_y, out_x, out_y, neighbours, idx_ref) # Calculate vertical and horizontal fractional distances t and s t__, s__ = _get_ts(pt_1, pt_2, pt_3, pt_4, out_x, out_y) # Remove mask and put np.nan at the masked locations instead if masked: mask = np.isnan(t__) | np.isnan(s__) t__ = np.ma.masked_where(mask, t__) s__ = np.ma.masked_where(mask, s__) return t__, s__, input_idxs, idx_ref def _get_ts(pt_1, pt_2, pt_3, pt_4, out_x, out_y): """Calculate vertical and horizontal fractional distances t and s""" # General case, ie. where the the corners form an irregular rectangle t__, s__ = _get_ts_irregular(pt_1, pt_2, pt_3, pt_4, out_y, out_x) # Cases where verticals are parallel idxs = np.isnan(t__) | np.isnan(s__) # Remove extra dimensions idxs = idxs.ravel() if np.any(idxs): t__[idxs], s__[idxs] = \ _get_ts_uprights_parallel(pt_1[idxs, :], pt_2[idxs, :], pt_3[idxs, :], pt_4[idxs, :], out_y[idxs], out_x[idxs]) # Cases where both verticals and horizontals are parallel idxs = np.isnan(t__) | np.isnan(s__) # Remove extra dimensions idxs = idxs.ravel() if np.any(idxs): t__[idxs], s__[idxs] = \ _get_ts_parallellogram(pt_1[idxs, :], pt_2[idxs, :], pt_3[idxs, :], out_y[idxs], out_x[idxs]) with np.errstate(invalid='ignore'): idxs = (t__ < 0) | (t__ > 1) | (s__ < 0) | (s__ > 1) t__[idxs] = np.nan s__[idxs] = np.nan return t__, s__ def _get_ts_irregular(pt_1, pt_2, pt_3, pt_4, out_y, out_x): """Get parameters for the case where none of the sides are parallel.""" # Get parameters for the quadratic equation a__, b__, c__ = _calc_abc(pt_1, pt_2, pt_3, pt_4, out_y, out_x) # Get the valid roots from interval [0, 1] t__ = _solve_quadratic(a__, b__, c__, min_val=0., max_val=1.) # Calculate parameter s s__ = _solve_another_fractional_distance(t__, pt_1[:, 1], pt_3[:, 1], pt_2[:, 1], pt_4[:, 1], out_y) return t__, s__ def _get_ts_uprights_parallel(pt_1, pt_2, pt_3, pt_4, out_y, out_x): """Get parameters for the case where uprights are parallel""" # Get parameters for the quadratic equation a__, b__, c__ = _calc_abc(pt_1, pt_3, pt_2, pt_4, out_y, out_x) # Get the valid roots from interval [0, 1] s__ = _solve_quadratic(a__, b__, c__, min_val=0., max_val=1.) # Calculate parameter t t__ = _solve_another_fractional_distance(s__, pt_1[:, 1], pt_2[:, 1], pt_3[:, 1], pt_4[:, 1], out_y) return t__, s__ def _get_ts_parallellogram(pt_1, pt_2, pt_3, out_y, out_x): """Get parameters for the case where uprights are parallel""" # Pairwise longitudal separations between reference points x_21 = pt_2[:, 0] - pt_1[:, 0] x_31 = pt_3[:, 0] - pt_1[:, 0] # Pairwise latitudal separations between reference points y_21 = pt_2[:, 1] - pt_1[:, 1] y_31 = pt_3[:, 1] - pt_1[:, 1] t__ = (x_21 * (out_y - pt_1[:, 1]) - y_21 * (out_x - pt_1[:, 0])) / \ (x_21 * y_31 - y_21 * x_31) with np.errstate(invalid='ignore'): idxs = (t__ < 0.) | (t__ > 1.) t__[idxs] = np.nan s__ = (out_x - pt_1[:, 0] + x_31 * t__) / x_21 with np.errstate(invalid='ignore'): idxs = (s__ < 0.) | (s__ > 1.) s__[idxs] = np.nan return t__, s__ def _solve_another_fractional_distance(f__, y_1, y_2, y_3, y_4, out_y): """Solve parameter t__ from s__, or vice versa. For solving s__, switch order of y_2 and y_3.""" y_21 = y_2 - y_1 y_43 = y_4 - y_3 with np.errstate(divide='ignore'): g__ = ((out_y - y_1 - y_21 * f__) / (y_3 + y_43 * f__ - y_1 - y_21 * f__)) # Limit values to interval [0, 1] with np.errstate(invalid='ignore'): idxs = (g__ < 0) | (g__ > 1) g__[idxs] = np.nan return g__ def _calc_abc(pt_1, pt_2, pt_3, pt_4, out_y, out_x): """Calculate coefficients for quadratic equation for _get_ts_irregular() and _get_ts_uprights(). For _get_ts_uprights switch order of pt_2 and pt_3. """ # Pairwise longitudal separations between reference points x_21 = pt_2[:, 0] - pt_1[:, 0] x_31 = pt_3[:, 0] - pt_1[:, 0] x_42 = pt_4[:, 0] - pt_2[:, 0] # Pairwise latitudal separations between reference points y_21 = pt_2[:, 1] - pt_1[:, 1] y_31 = pt_3[:, 1] - pt_1[:, 1] y_42 = pt_4[:, 1] - pt_2[:, 1] a__ = x_31 * y_42 - y_31 * x_42 b__ = out_y * (x_42 - x_31) - out_x * (y_42 - y_31) + \ x_31 * pt_2[:, 1] - y_31 * pt_2[:, 0] + \ y_42 * pt_1[:, 0] - x_42 * pt_1[:, 1] c__ = out_y * x_21 - out_x * y_21 + pt_1[:, 0] * pt_2[:, 1] - \ pt_2[:, 0] * pt_1[:, 1] return a__, b__, c__ def _mask_coordinates(lons, lats): """Mask invalid coordinate values""" lons = lons.ravel() lats = lats.ravel() idxs = ((lons < -180.) | (lons > 180.) | (lats < -90.) | (lats > 90.)) if hasattr(lons, 'mask'): lons = np.ma.masked_where(idxs | lons.mask, lons) else: lons[idxs] = np.nan if hasattr(lats, 'mask'): lats = np.ma.masked_where(idxs | lats.mask, lats) else: lats[idxs] = np.nan return lons, lats def _get_corner(stride, valid, in_x, in_y, idx_ref): """Get closest set of coordinates from the *valid* locations""" idxs = np.argmax(valid, axis=1) invalid = np.invert(np.max(valid, axis=1)) # Replace invalid points with np.nan x__ = in_x[stride, idxs] x__[invalid] = np.nan y__ = in_y[stride, idxs] y__[invalid] = np.nan idx = idx_ref[stride, idxs] return x__, y__, idx def _get_bounding_corners(in_x, in_y, out_x, out_y, neighbours, idx_ref): """Get four closest locations from (in_x, in_y) so that they form a bounding rectangle around the requested location given by (out_x, out_y). """ # Find four closest pixels around the target location # Tile output coordinates to same shape as neighbour info out_x_tile = np.tile(out_x, (neighbours, 1)).T out_y_tile = np.tile(out_y, (neighbours, 1)).T # Get differences in both directions x_diff = out_x_tile - in_x y_diff = out_y_tile - in_y stride = np.arange(x_diff.shape[0]) # Upper left source pixel valid = (x_diff > 0) & (y_diff < 0) x_1, y_1, idx_1 = _get_corner(stride, valid, in_x, in_y, idx_ref) # Upper right source pixel valid = (x_diff < 0) & (y_diff < 0) x_2, y_2, idx_2 = _get_corner(stride, valid, in_x, in_y, idx_ref) # Lower left source pixel valid = (x_diff > 0) & (y_diff > 0) x_3, y_3, idx_3 = _get_corner(stride, valid, in_x, in_y, idx_ref) # Lower right source pixel valid = (x_diff < 0) & (y_diff > 0) x_4, y_4, idx_4 = _get_corner(stride, valid, in_x, in_y, idx_ref) # Combine sorted indices to idx_ref idx_ref = np.vstack((idx_1, idx_2, idx_3, idx_4)).T return (np.vstack((x_1, y_1)).T, np.vstack((x_2, y_2)).T, np.vstack((x_3, y_3)).T, np.vstack((x_4, y_4)).T, idx_ref) def _solve_quadratic(a__, b__, c__, min_val=0.0, max_val=1.0): """Solve quadratic equation and return the valid roots from interval [*min_val*, *max_val*] """ def int_and_float_to_numpy(val): if not isinstance(val, np.ndarray): if isinstance(val, (int, float)): val = [val] val = np.array(val) return val a__ = int_and_float_to_numpy(a__) b__ = int_and_float_to_numpy(b__) c__ = int_and_float_to_numpy(c__) discriminant = b__ * b__ - 4 * a__ * c__ # Solve the quadratic polynomial with np.errstate(invalid='ignore', divide='ignore'): x_1 = (-b__ + np.sqrt(discriminant)) / (2 * a__) x_2 = (-b__ - np.sqrt(discriminant)) / (2 * a__) # Find valid solutions, ie. 0 <= t <= 1 x__ = x_1.copy() with np.errstate(invalid='ignore'): idxs = (x_1 < min_val) | (x_1 > max_val) x__[idxs] = x_2[idxs] with np.errstate(invalid='ignore'): idxs = (x__ < min_val) | (x__ > max_val) x__[idxs] = np.nan return x__ def _get_output_xy(target_area_def, proj): """Get x/y coordinates of the target grid.""" # Read output coordinates out_lons, out_lats = target_area_def.get_lonlats() # Replace masked arrays with np.nan'd ndarrays out_lons = _convert_masks_to_nans(out_lons) out_lats = _convert_masks_to_nans(out_lats) # Mask invalid coordinates out_lons, out_lats = _mask_coordinates(out_lons, out_lats) # Convert coordinates to output projection x/y space out_x, out_y = proj(out_lons, out_lats) return out_x, out_y def _get_input_xy(source_geo_def, proj, input_idxs, idx_ref): """Get x/y coordinates for the input area and reduce the data.""" in_lons, in_lats = source_geo_def.get_lonlats() # Select valid locations in_lons = in_lons.ravel()[input_idxs] in_lats = in_lats.ravel()[input_idxs] # Mask invalid values in_lons, in_lats = _mask_coordinates(in_lons, in_lats) # Expand input coordinates for each output location in_lons = in_lons[idx_ref] in_lats = in_lats[idx_ref] # Replace masked arrays with np.nan'd ndarrays in_lons = _convert_masks_to_nans(in_lons) in_lats = _convert_masks_to_nans(in_lats) # Convert coordinates to output projection x/y space in_x, in_y = proj(in_lons, in_lats) return in_x, in_y def _convert_masks_to_nans(arr): """Remove masked array masks and replace corresponding values with nans""" if hasattr(arr, 'mask'): mask = arr.mask arr = arr.data arr[mask] = np.nan return arr def _check_data_shape(data, input_idxs): """Check data shape and adjust if necessary.""" # Handle multiple datasets if data.ndim > 2 and data.shape[0] * data.shape[1] == input_idxs.shape[0]: data = data.reshape(data.shape[0] * data.shape[1], data.shape[2]) # Also ravel single dataset elif data.shape[0] != input_idxs.size: data = data.ravel() # Ensure two dimensions if data.ndim == 1: data = np.expand_dims(data, 1) return data pyresample-1.8.1/pyresample/data_reduce.py000066400000000000000000000247431324347254000207130ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Reduce data sets based on geographical information""" from __future__ import absolute_import import numpy as np # Earth radius R = 6370997.0 def swath_from_cartesian_grid(cart_grid, lons, lats, data, radius_of_influence): """Makes coarse data reduction of swath data by comparison with cartesian grid Parameters ---------- chart_grid : numpy array Grid of area cartesian coordinates lons : numpy array Swath lons lats : numpy array Swath lats data : numpy array Swath data radius_of_influence : float Cut off distance in meters Returns ------- (lons, lats, data) : list of numpy arrays Reduced swath data and coordinate set """ valid_index = get_valid_index_from_cartesian_grid(cart_grid, lons, lats, radius_of_influence) lons = lons[valid_index] lats = lats[valid_index] data = data[valid_index] return lons, lats, data def get_valid_index_from_cartesian_grid(cart_grid, lons, lats, radius_of_influence): """Calculates relevant data indices using coarse data reduction of swath data by comparison with cartesian grid Parameters ---------- chart_grid : numpy array Grid of area cartesian coordinates lons : numpy array Swath lons lats : numpy array Swath lats data : numpy array Swath data radius_of_influence : float Cut off distance in meters Returns ------- valid_index : numpy array Boolean array of same size as lons and lats indicating relevant indices """ def _get_lons(x, y): return np.rad2deg(np.arccos(x / np.sqrt(x ** 2 + y ** 2))) * np.sign(y) def _get_lats(z): return 90 - np.rad2deg(np.arccos(z / R)) # Get sides of target grid and transform to lon lats lons_side1 = _get_lons(cart_grid[0, :, 0], cart_grid[0, :, 1]) lons_side2 = _get_lons(cart_grid[:, -1, 0], cart_grid[:, -1, 1]) lons_side3 = _get_lons(cart_grid[-1, ::-1, 0], cart_grid[-1, ::-1, 1]) lons_side4 = _get_lons(cart_grid[::-1, 0, 0], cart_grid[::-1, 0, 1]) lats_side1 = _get_lats(cart_grid[0, :, 2]) lats_side2 = _get_lats(cart_grid[:, -1, 2]) lats_side3 = _get_lats(cart_grid[-1, ::-1, 2]) lats_side4 = _get_lats(cart_grid[::-1, 0, 2]) valid_index = _get_valid_index(lons_side1, lons_side2, lons_side3, lons_side4, lats_side1, lats_side2, lats_side3, lats_side4, lons, lats, radius_of_influence) return valid_index def swath_from_lonlat_grid(grid_lons, grid_lats, lons, lats, data, radius_of_influence): """Makes coarse data reduction of swath data by comparison with lon lat grid Parameters ---------- grid_lons : numpy array Grid of area lons grid_lats : numpy array Grid of area lats lons : numpy array Swath lons lats : numpy array Swath lats data : numpy array Swath data radius_of_influence : float Cut off distance in meters Returns ------- (lons, lats, data) : list of numpy arrays Reduced swath data and coordinate set """ valid_index = get_valid_index_from_lonlat_grid( grid_lons, grid_lats, lons, lats, radius_of_influence) lons = lons[valid_index] lats = lats[valid_index] data = data[valid_index] return lons, lats, data def swath_from_lonlat_boundaries(boundary_lons, boundary_lats, lons, lats, data, radius_of_influence): """Makes coarse data reduction of swath data by comparison with lon lat boundary Parameters ---------- boundary_lons : numpy array Grid of area lons boundary_lats : numpy array Grid of area lats lons : numpy array Swath lons lats : numpy array Swath lats data : numpy array Swath data radius_of_influence : float Cut off distance in meters Returns ------- (lons, lats, data) : list of numpy arrays Reduced swath data and coordinate set """ valid_index = get_valid_index_from_lonlat_boundaries(boundary_lons, boundary_lats, lons, lats, radius_of_influence) lons = lons[valid_index] lats = lats[valid_index] data = data[valid_index] return lons, lats, data def get_valid_index_from_lonlat_grid(grid_lons, grid_lats, lons, lats, radius_of_influence): """Calculates relevant data indices using coarse data reduction of swath data by comparison with lon lat grid Parameters ---------- chart_grid : numpy array Grid of area cartesian coordinates lons : numpy array Swath lons lats : numpy array Swath lats data : numpy array Swath data radius_of_influence : float Cut off distance in meters Returns ------- valid_index : numpy array Boolean array of same size as lon and lat indicating relevant indices """ # Get sides of target grid lons_side1 = grid_lons[0, :] lons_side2 = grid_lons[:, -1] lons_side3 = grid_lons[-1, ::-1] lons_side4 = grid_lons[::-1, 0] lats_side1 = grid_lats[0, :] lats_side2 = grid_lats[:, -1] lats_side3 = grid_lats[-1, :] lats_side4 = grid_lats[:, 0] valid_index = _get_valid_index(lons_side1, lons_side2, lons_side3, lons_side4, lats_side1, lats_side2, lats_side3, lats_side4, lons, lats, radius_of_influence) return valid_index def get_valid_index_from_lonlat_boundaries(boundary_lons, boundary_lats, lons, lats, radius_of_influence): """Find relevant indices from grid boundaries using the winding number theorem""" valid_index = _get_valid_index(boundary_lons.side1, boundary_lons.side2, boundary_lons.side3, boundary_lons.side4, boundary_lats.side1, boundary_lats.side2, boundary_lats.side3, boundary_lats.side4, lons, lats, radius_of_influence) return valid_index def _get_valid_index(lons_side1, lons_side2, lons_side3, lons_side4, lats_side1, lats_side2, lats_side3, lats_side4, lons, lats, radius_of_influence): """Find relevant indices from grid boundaries using the winding number theorem""" # Coarse reduction of data based on extrema analysis of the boundary # lon lat values of the target grid illegal_lons = (((lons_side1 < -180) | (lons_side1 > 180)).any() or ((lons_side2 < -180) | (lons_side2 > 180)).any() or ((lons_side3 < -180) | (lons_side3 > 180)).any() or ((lons_side4 < -180) | (lons_side4 > 180)).any()) illegal_lats = (((lats_side1 < -90) | (lats_side1 > 90)).any() or ((lats_side2 < -90) | (lats_side2 > 90)).any() or ((lats_side3 < -90) | (lats_side3 > 90)).any() or ((lats_side4 < -90) | (lats_side4 > 90)).any()) if illegal_lons or illegal_lats: # Grid boundaries are not safe to operate on return np.ones(lons.size, dtype=np.bool) # Find sum angle sum of grid boundary angle_sum = 0 for side in (lons_side1, lons_side2, lons_side3, lons_side4): prev = None side_sum = 0 for lon in side: if prev: delta = lon - prev if abs(delta) > 180: delta = (abs(delta) - 360) * (delta // abs(delta)) angle_sum += delta side_sum += delta prev = lon # Buffer min and max lon and lat of interest with radius of interest lat_min = min(lats_side1.min(), lats_side2.min(), lats_side3.min(), lats_side4.min()) lat_min_buffered = lat_min - float(radius_of_influence) / R lat_max = max(lats_side1.max(), lats_side2.max(), lats_side3.max(), lats_side4.max()) lat_max_buffered = lat_max + float(radius_of_influence) / R max_angle_s2 = max(abs(lats_side2.max()), abs(lats_side2.min())) max_angle_s4 = max(abs(lats_side4.max()), abs(lats_side4.min())) lon_min_buffered = (lons_side4.min() - float(radius_of_influence) / (np.sin(np.radians(max_angle_s4)) * R)) lon_max_buffered = (lons_side2.max() + float(radius_of_influence) / (np.sin(np.radians(max_angle_s2)) * R)) # From the winding number theorem follows: # angle_sum possiblilities: # -360: area covers north pole # 360: area covers south pole # 0: area covers no poles # else: area covers both poles if round(angle_sum) == -360: # Covers NP valid_index = (lats >= lat_min_buffered) elif round(angle_sum) == 360: # Covers SP valid_index = (lats <= lat_max_buffered) elif round(angle_sum) == 0: # Covers no poles valid_lats = (lats >= lat_min_buffered) * (lats <= lat_max_buffered) if lons_side2.min() > lons_side4.max(): # No date line crossing valid_lons = (lons >= lon_min_buffered) * \ (lons <= lon_max_buffered) else: # Date line crossing seg1 = (lons >= lon_min_buffered) * (lons <= 180) seg2 = (lons <= lon_max_buffered) * (lons >= -180) valid_lons = seg1 + seg2 valid_index = valid_lats * valid_lons else: # Covers both poles don't reduce valid_index = np.ones(lons.size, dtype=np.bool) return valid_index pyresample-1.8.1/pyresample/ewa/000077500000000000000000000000001324347254000166435ustar00rootroot00000000000000pyresample-1.8.1/pyresample/ewa/__init__.py000066400000000000000000000251761324347254000207670ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2016 # Author(s): # David Hoese # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . """Code for resampling using the Elliptical Weighted Averaging (EWA) algorithm. The logic and original code for this algorithm were translated from the software package "MODIS Swath 2 Grid Toolbox" or "ms2gt" created by the NASA National Snow & Ice Data Center (NSIDC): https://nsidc.org/data/modis/ms2gt/index.html Since the project has slowed down, Terry Haran has maintained the package and made updates available: http://cires1.colorado.edu/~tharan/ms2gt/ The ms2gt C executables "ll2cr" and "fornav" were rewritten for the Polar2Grid software package created by the Space Science Engineering Center (SSEC)/Cooperative Institute for Meteorological Satellite Studies. They were rewritten as a combination of C++ and Cython to make them more python friendly by David Hoese and were then copied and modified here in pyresample. The rewrite of "ll2cr" also included an important switch from using the "mapx" library to using the more popular and capable pyproj (PROJ.4) library. The EWA algorithm consists of two parts "ll2cr" and "fornav" and are described below. ll2cr ----- The "ll2cr" process is the first step in the EWA algorithm. It stands for "latitude/longitude to column/row". Its main purpose is to convert input longitude and latitude coordinates to column and row coordinates of the destination grid. These coordinates are then used in the next step "fornav". fornav ------ The "fornav" or "Forward Navigation" step of the EWA algorithm is where the actual Elliptical Weighted Averaging algorithm is run. The algorithm maps input swath pixels to output grid pixels by averaging multiple input pixels based on an elliptical region and other coefficients, some of which are determined at run time. For more information on these steps see the documentation for the corresponding modules. """ import logging import numpy as np from pyresample.ewa import _ll2cr, _fornav LOG = logging.getLogger(__name__) def ll2cr(swath_def, area_def, fill=np.nan, copy=True): """Map input swath pixels to output grid column and rows. Parameters ---------- swath_def : SwathDefinition Navigation definition for swath data to remap area_def : AreaDefinition Grid definition to be mapped to fill : float, optional Fill value used in longitude and latitude arrays copy : bool, optional Create a copy of the longitude and latitude arrays (default: True) Returns ------- (swath_points_in_grid, cols, rows) : tuple of integer, numpy array, numpy array Number of points from the input swath overlapping the destination area and the column and row arrays to pass to `fornav`. .. note:: ll2cr uses the pyproj library which is limited to 64-bit float navigation arrays in order to not do additional copying or casting of data types. """ lons, lats = swath_def.get_lonlats() # ll2cr requires 64-bit floats due to pyproj limitations # also need a copy of lons, lats since they are written to in-place try: lons = lons.astype(np.float64, copy=copy) lats = lats.astype(np.float64, copy=copy) except TypeError: lons = lons.astype(np.float64) lats = lats.astype(np.float64) # Break the input area up in to the expected parameters for ll2cr p = area_def.proj4_string cw = area_def.pixel_size_x # cell height must be negative for this to work as expected ch = -abs(area_def.pixel_size_y) w = area_def.x_size h = area_def.y_size ox = area_def.area_extent[0] + cw / 2. oy = area_def.area_extent[3] + ch / 2. swath_points_in_grid = _ll2cr.ll2cr_static(lons, lats, fill, p, cw, ch, w, h, ox, oy) return swath_points_in_grid, lons, lats def fornav(cols, rows, area_def, data_in, rows_per_scan=None, fill=None, out=None, weight_count=10000, weight_min=0.01, weight_distance_max=1.0, weight_delta_max=10.0, weight_sum_min=-1.0, maximum_weight_mode=False): """Remap data in to output grid using elliptical weighted averaging. This algorithm works under the assumption that the data is observed one scan line at a time. However, good results can still be achieved for non-scan based data is provided if `rows_per_scan` is set to the number of rows in the entire swath or by setting it to `None`. Parameters ---------- cols : numpy array Column location for each input swath pixel (from `ll2cr`) rows : numpy array Row location for each input swath pixel (from `ll2cr`) area_def : AreaDefinition Grid definition to be mapped to data_in : numpy array or tuple of numpy arrays Swath data to be remapped to output grid rows_per_scan : int or None, optional Number of data rows for every observed scanline. If None then the entire swath is treated as one large scanline. fill : float/int or None, optional If `data_in` is made of numpy arrays then this represents the fill value used to mark invalid data pixels. This value will also be used in the output array(s). If None, then np.nan will be used for float arrays and -999 will be used for integer arrays. out : numpy array or tuple of numpy arrays, optional Specify a numpy array to be written to for each input array. This can be used as an optimization by providing `np.memmap` arrays or other array-like objects. weight_count : int, optional number of elements to create in the gaussian weight table. Default is 10000. Must be at least 2 weight_min : float, optional the minimum value to store in the last position of the weight table. Default is 0.01, which, with a `weight_distance_max` of 1.0 produces a weight of 0.01 at a grid cell distance of 1.0. Must be greater than 0. weight_distance_max : float, optional distance in grid cell units at which to apply a weight of `weight_min`. Default is 1.0. Must be greater than 0. weight_delta_max : float, optional maximum distance in grid cells in each grid dimension over which to distribute a single swath cell. Default is 10.0. weight_sum_min : float, optional minimum weight sum value. Cells whose weight sums are less than `weight_sum_min` are set to the grid fill value. Default is EPSILON. maximum_weight_mode : bool, optional If False (default), a weighted average of all swath cells that map to a particular grid cell is used. If True, the swath cell having the maximum weight of all swath cells that map to a particular grid cell is used. This option should be used for coded/category data, i.e. snow cover. Returns ------- (valid grid points, output arrays): tuple of integer tuples and numpy array tuples The valid_grid_points tuple holds the number of output grid pixels that were written with valid data. The second element in the tuple is a tuple of output grid numpy arrays for each input array. If there was only one input array provided then the returned tuple is simply the singe points integer and single output grid array. """ if isinstance(data_in, (tuple, list)): # we can only support one data type per call at this time assert(in_arr.dtype == data_in[0].dtype for in_arr in data_in[1:]) else: # assume they gave us a single numpy array-like object data_in = [data_in] # need a list for replacing these arrays later data_in = [np.ascontiguousarray(d) for d in data_in] # determine a fill value if they didn't tell us what they have as a # fill value in the numpy arrays if "fill" is None: if np.issubdtype(data_in[0].dtype, np.floating): fill = np.nan elif np.issubdtype(data_in[0].dtype, np.integer): fill = -999 else: raise ValueError( "Unsupported input data type for EWA Resampling: {}".format(data_in[0].dtype)) convert_to_masked = False for idx, in_arr in enumerate(data_in): if isinstance(in_arr, np.ma.MaskedArray): convert_to_masked = True # convert masked arrays to single numpy arrays data_in[idx] = in_arr.filled(fill) data_in = tuple(data_in) if out is not None: # the user may have provided memmapped arrays or other array-like # objects if isinstance(out, (tuple, list)): out = tuple(out) else: out = (out,) else: # create a place for output data to be written out = tuple(np.empty(area_def.shape, dtype=in_arr.dtype) for in_arr in data_in) # see if the user specified rows per scan # otherwise, use the entire swath as one "scanline" rows_per_scan = rows_per_scan or data_in[0].shape[0] results = _fornav.fornav_wrapper(cols, rows, data_in, out, np.nan, np.nan, rows_per_scan, weight_count=weight_count, weight_min=weight_min, weight_distance_max=weight_distance_max, weight_delta_max=weight_delta_max, weight_sum_min=weight_sum_min, maximum_weight_mode=maximum_weight_mode) def _mask_helper(data, fill): if np.isnan(fill): return np.isnan(data) else: return data == fill if convert_to_masked: # they gave us masked arrays so give them masked arrays back out = [np.ma.masked_where(_mask_helper(out_arr, fill), out_arr) for out_arr in out] if len(out) == 1: # they only gave us one data array as input, so give them one back out = out[0] results = results[0] return results, out pyresample-1.8.1/pyresample/ewa/_fornav.cpp000066400000000000000000047625441324347254000210270ustar00rootroot00000000000000/* Generated by Cython 0.24 */ /* BEGIN: Cython Metadata { "distutils": { "depends": [ "pyresample/ewa/_fornav_templates.h" ], "extra_compile_args": [ "-O3", "-Wno-unused-function" ], "language": "c++" } } END: Cython Metadata */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000) #error Cython requires Python 2.6+ or Python 3.2+. #else #define CYTHON_ABI "0_24" #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #endif #if !defined(CYTHON_USE_PYLONG_INTERNALS) && CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000 #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define CYTHON_PEP393_ENABLED 0 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #elif CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifndef __cplusplus #error "Cython files generated with the C++ option must be compiled with a C++ compiler." #endif #ifndef CYTHON_INLINE #define CYTHON_INLINE inline #endif template void __Pyx_call_destructor(T& x) { x.~T(); } template class __Pyx_FakeReference { public: __Pyx_FakeReference() : ptr(NULL) { } __Pyx_FakeReference(const T& ref) : ptr(const_cast(&ref)) { } T *operator->() { return ptr; } operator T&() { return *ptr; } private: T *ptr; }; #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { \ __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pyresample__ewa___fornav #define __PYX_HAVE_API__pyresample__ewa___fornav #include "string.h" #include "stdio.h" #include "stdlib.h" #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #include "_fornav_templates.h" #include "pythread.h" #include "pystate.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #ifdef PYREX_WITHOUT_ASSERTIONS #define CYTHON_WITHOUT_ASSERTIONS #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0 #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) && defined (_M_X64) #define __Pyx_sst_abs(value) _abs64(value) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) #if PY_MAJOR_VERSION < 3 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #else #define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen #endif #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) #define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_COMPILING_IN_CPYTHON #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c)); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static PyObject *__pyx_m; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; /* None.proto */ #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "pyresample/ewa/_fornav.pyx", "__init__.pxd", "stringsource", "type.pxd", "bool.pxd", "complex.pxd", }; /* BufferFormatStructs.proto */ #define IS_UNSIGNED(type) (((type) -1) > 0) struct __Pyx_StructField_; #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) typedef struct { const char* name; struct __Pyx_StructField_* fields; size_t size; size_t arraysize[8]; int ndim; char typegroup; char is_unsigned; int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; size_t struct_alignment; int is_complex; char enc_type; char new_packmode; char enc_packmode; char is_valid_array; } __Pyx_BufFmt_Context; /* Atomics.proto */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __pyx_atomic_int_type int #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ !defined(__i386__) #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type LONG #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #warning "Using Intel atomics" #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif typedef volatile __pyx_atomic_int_type __pyx_atomic_int; #if CYTHON_ATOMICS #define __pyx_add_acquisition_count(memview)\ __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #else #define __pyx_add_acquisition_count(memview)\ __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #endif /* MemviewSliceStruct.proto */ struct __pyx_memoryview_obj; typedef struct { struct __pyx_memoryview_obj *memview; char *data; Py_ssize_t shape[8]; Py_ssize_t strides[8]; Py_ssize_t suboffsets[8]; } __Pyx_memviewslice; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":725 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":726 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":727 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":728 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":732 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":733 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":734 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":735 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":739 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":740 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":749 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":750 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":751 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":753 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":754 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":755 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":757 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":758 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":761 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* None.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif /* None.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif /*--- Type declarations ---*/ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr; struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":764 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":765 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":766 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":768 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; struct __pyx_defaults; typedef struct __pyx_defaults __pyx_defaults; struct __pyx_defaults1; typedef struct __pyx_defaults1 __pyx_defaults1; struct __pyx_defaults2; typedef struct __pyx_defaults2 __pyx_defaults2; struct __pyx_defaults3; typedef struct __pyx_defaults3 __pyx_defaults3; struct __pyx_defaults { PyBoolObject *__pyx_arg_maximum_weight_mode; unsigned int __pyx_arg_weight_count; weight_type __pyx_arg_weight_min; weight_type __pyx_arg_weight_distance_max; weight_type __pyx_arg_weight_delta_max; weight_type __pyx_arg_weight_sum_min; }; struct __pyx_defaults1 { PyBoolObject *__pyx_arg_maximum_weight_mode; unsigned int __pyx_arg_weight_count; weight_type __pyx_arg_weight_min; weight_type __pyx_arg_weight_distance_max; weight_type __pyx_arg_weight_delta_max; weight_type __pyx_arg_weight_sum_min; }; struct __pyx_defaults2 { PyBoolObject *__pyx_arg_maximum_weight_mode; unsigned int __pyx_arg_weight_count; weight_type __pyx_arg_weight_min; weight_type __pyx_arg_weight_distance_max; weight_type __pyx_arg_weight_delta_max; weight_type __pyx_arg_weight_sum_min; }; struct __pyx_defaults3 { PyBoolObject *__pyx_arg_maximum_weight_mode; unsigned int __pyx_arg_weight_count; weight_type __pyx_arg_weight_min; weight_type __pyx_arg_weight_distance_max; weight_type __pyx_arg_weight_delta_max; weight_type __pyx_arg_weight_sum_min; }; /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper { PyObject_HEAD PyArray_Descr *__pyx_v_in_type; PyObject *__pyx_v_input_arrays; PyArray_Descr *__pyx_v_out_type; PyObject *__pyx_v_output_arrays; }; /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr { PyObject_HEAD struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *__pyx_outer_scope; PyObject *__pyx_v_input_array; }; /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr { PyObject_HEAD struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *__pyx_outer_scope; PyObject *__pyx_v_output_array; }; /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper { PyObject_HEAD PyArray_Descr *__pyx_v_in_type; PyObject *__pyx_v_input_arrays; PyArray_Descr *__pyx_v_out_type; PyObject *__pyx_v_output_arrays; }; /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr { PyObject_HEAD struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *__pyx_outer_scope; PyObject *__pyx_v_input_array; }; /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr { PyObject_HEAD struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *__pyx_outer_scope; PyObject *__pyx_v_output_array; }; /* "View.MemoryView":103 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_array_obj { PyObject_HEAD struct __pyx_vtabstruct_array *__pyx_vtab; char *data; Py_ssize_t len; char *format; int ndim; Py_ssize_t *_shape; Py_ssize_t *_strides; Py_ssize_t itemsize; PyObject *mode; PyObject *_format; void (*callback_free_data)(void *); int free_data; int dtype_is_object; }; /* "View.MemoryView":275 * * @cname('__pyx_MemviewEnum') * cdef class Enum(object): # <<<<<<<<<<<<<< * cdef object name * def __init__(self, name): */ struct __pyx_MemviewEnum_obj { PyObject_HEAD PyObject *name; }; /* "View.MemoryView":326 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_memoryview_obj { PyObject_HEAD struct __pyx_vtabstruct_memoryview *__pyx_vtab; PyObject *obj; PyObject *_size; PyObject *_array_interface; PyThread_type_lock lock; __pyx_atomic_int acquisition_count[2]; __pyx_atomic_int *acquisition_count_aligned_p; Py_buffer view; int flags; int dtype_is_object; __Pyx_TypeInfo *typeinfo; }; /* "View.MemoryView":951 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_memoryviewslice_obj { struct __pyx_memoryview_obj __pyx_base; __Pyx_memviewslice from_slice; PyObject *from_object; PyObject *(*to_object_func)(char *); int (*to_dtype_func)(char *, PyObject *); }; /* "View.MemoryView":103 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_vtabstruct_array { PyObject *(*get_memview)(struct __pyx_array_obj *); }; static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; /* "View.MemoryView":326 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_vtabstruct_memoryview { char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); }; static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; /* "View.MemoryView":951 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_vtabstruct__memoryviewslice { struct __pyx_vtabstruct_memoryview __pyx_base; }; static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyThreadStateGet.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET(); #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #endif /* PyErrFetchRestore.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* SaveResetException.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* PyErrExceptionMatches.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* GetException.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* PyDictContains.proto */ static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { int result = PyDict_Contains(dict, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) { PyObject* args = PyTuple_Pack(1, key); if (likely(args)) PyErr_SetObject(PyExc_KeyError, args); Py_XDECREF(args); } return NULL; } Py_INCREF(value); return value; } #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #endif /* UnicodeAsUCS4.proto */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*); /* object_ord.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Ord(c)\ (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c)) #else #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c) #endif static long __Pyx__PyObject_Ord(PyObject* c); /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* ListAppend.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* ArgTypeTest.proto */ static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname); /* BufferFormatCheck.proto */ static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type); // PROTO /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); #define __Pyx_BufPtrCContig2d(type, buf, i0, s0, i1, s1) ((type)((char*)buf + i0 * s0) + i1) /* GetModuleGlobalName.proto */ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /* BufferFallbackError.proto */ static void __Pyx_RaiseBufferFallbackError(void); #define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1) /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* StrEquals.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif /* None.proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ #define UNARY_NEG_WOULD_OVERFLOW(x)\ (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* SwapException.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ /* ListCompAppend.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyIntBinop.proto */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* ListExtend.proto */ static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { #if CYTHON_COMPILING_IN_CPYTHON PyObject* none = _PyList_Extend((PyListObject*)L, v); if (unlikely(!none)) return -1; Py_DECREF(none); return 0; #else return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); #endif } /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* None.proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* FetchCommonType.proto */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 #include #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { PyCFunctionObject func; #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; PyObject *func_classobj; void *defaults; int defaults_pyobjects; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; } __pyx_CyFunctionObject; static PyTypeObject *__pyx_CyFunctionType = 0; #define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(void); /* FusedFunction.proto */ typedef struct { __pyx_CyFunctionObject func; PyObject *__signatures__; PyObject *type; PyObject *self; } __pyx_FusedFunctionObject; #define __pyx_FusedFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __pyx_FusedFunction_New(__pyx_FusedFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code); static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self); static PyTypeObject *__pyx_FusedFunctionType = NULL; static int __pyx_FusedFunction_init(void); #define __Pyx_FusedFunction_USED /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif /* BufferStructDeclare.proto */ typedef struct { Py_ssize_t shape, strides, suboffsets; } __Pyx_Buf_DimInfo; typedef struct { size_t refcount; Py_buffer pybuffer; } __Pyx_Buffer; typedef struct { __Pyx_Buffer *rcbuffer; char *data; __Pyx_Buf_DimInfo diminfo[8]; } __Pyx_LocalBuf_ND; /* None.proto */ static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0}; static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1}; /* MemviewSliceIsContig.proto */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); /* OverlappingSlices.proto */ static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize); /* Capsule.proto */ static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); /* TypeInfoCompare.proto */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); /* MemviewSliceValidateAndInit.proto */ static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float32_t(PyObject *); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); /* BytesContains.proto */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character); /* None.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(__cplusplus) && CYTHON_CCOMPLEX && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif /* None.proto */ static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); /* None.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eqf(a, b) ((a)==(b)) #define __Pyx_c_sumf(a, b) ((a)+(b)) #define __Pyx_c_difff(a, b) ((a)-(b)) #define __Pyx_c_prodf(a, b) ((a)*(b)) #define __Pyx_c_quotf(a, b) ((a)/(b)) #define __Pyx_c_negf(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zerof(z) ((z)==(float)0) #define __Pyx_c_conjf(z) (::std::conj(z)) #if 1 #define __Pyx_c_absf(z) (::std::abs(z)) #define __Pyx_c_powf(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zerof(z) ((z)==0) #define __Pyx_c_conjf(z) (conjf(z)) #if 1 #define __Pyx_c_absf(z) (cabsf(z)) #define __Pyx_c_powf(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif /* None.proto */ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); /* None.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq(a, b) ((a)==(b)) #define __Pyx_c_sum(a, b) ((a)+(b)) #define __Pyx_c_diff(a, b) ((a)-(b)) #define __Pyx_c_prod(a, b) ((a)*(b)) #define __Pyx_c_quot(a, b) ((a)/(b)) #define __Pyx_c_neg(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero(z) ((z)==(double)0) #define __Pyx_c_conj(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs(z) (::std::abs(z)) #define __Pyx_c_pow(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero(z) ((z)==0) #define __Pyx_c_conj(z) (conj(z)) #if 1 #define __Pyx_c_abs(z) (cabs(z)) #define __Pyx_c_pow(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object); /* MemviewSliceInit.proto */ #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d #define __Pyx_MEMVIEW_DIRECT 1 #define __Pyx_MEMVIEW_PTR 2 #define __Pyx_MEMVIEW_FULL 4 #define __Pyx_MEMVIEW_CONTIG 8 #define __Pyx_MEMVIEW_STRIDED 16 #define __Pyx_MEMVIEW_FOLLOW 32 #define __Pyx_IS_C_CONTIG 1 #define __Pyx_IS_F_CONTIG 2 static int __Pyx_init_memviewslice( struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference); static CYTHON_INLINE int __pyx_add_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE npy_int8 __Pyx_PyInt_As_npy_int8(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* PyObjectCallMethod1.proto */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); /* CoroutineBase.proto */ typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyObject *); typedef struct { PyObject_HEAD __pyx_coroutine_body_t body; PyObject *closure; PyObject *exc_type; PyObject *exc_value; PyObject *exc_traceback; PyObject *gi_weakreflist; PyObject *classobj; PyObject *yieldfrom; PyObject *gi_name; PyObject *gi_qualname; int resume_label; char is_running; } __pyx_CoroutineObject; static __pyx_CoroutineObject *__Pyx__Coroutine_New(PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *closure, PyObject *name, PyObject *qualname); static int __Pyx_Coroutine_clear(PyObject *self); #if 1 || PY_VERSION_HEX < 0x030300B0 static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue); #else #define __Pyx_PyGen_FetchStopIterationValue(pvalue) PyGen_FetchStopIterationValue(pvalue) #endif /* PatchModuleWithCoroutine.proto */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code); /* PatchGeneratorABC.proto */ static int __Pyx_patch_abc(void); /* Generator.proto */ #define __Pyx_Generator_USED static PyTypeObject *__pyx_GeneratorType = 0; #define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType) #define __Pyx_Generator_New(body, closure, name, qualname)\ __Pyx__Coroutine_New(__pyx_GeneratorType, body, closure, name, qualname) static PyObject *__Pyx_Generator_Next(PyObject *self); static int __pyx_Generator_init(void); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* PyIdentifierFromString.proto */ #if !defined(__Pyx_PyIdentifier_FromString) #if PY_MAJOR_VERSION < 3 #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) #else #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) #endif #endif /* ModuleImport.proto */ static PyObject *__Pyx_ImportModule(const char *name); /* TypeImport.proto */ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ /* Module declarations from 'cython' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython.version' */ /* Module declarations from 'cpython.exc' */ /* Module declarations from 'cpython.module' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'cpython.tuple' */ /* Module declarations from 'cpython.list' */ /* Module declarations from 'cpython.sequence' */ /* Module declarations from 'cpython.mapping' */ /* Module declarations from 'cpython.iterator' */ /* Module declarations from 'cpython.number' */ /* Module declarations from 'cpython.int' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.bool' */ static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0; /* Module declarations from 'cpython.long' */ /* Module declarations from 'cpython.float' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.complex' */ static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0; /* Module declarations from 'cpython.string' */ /* Module declarations from 'cpython.unicode' */ /* Module declarations from 'cpython.dict' */ /* Module declarations from 'cpython.instance' */ /* Module declarations from 'cpython.function' */ /* Module declarations from 'cpython.method' */ /* Module declarations from 'cpython.weakref' */ /* Module declarations from 'cpython.getargs' */ /* Module declarations from 'cpython.pythread' */ /* Module declarations from 'cpython.pystate' */ /* Module declarations from 'cpython.cobject' */ /* Module declarations from 'cpython.oldbuffer' */ /* Module declarations from 'cpython.set' */ /* Module declarations from 'cpython.bytes' */ /* Module declarations from 'cpython.pycapsule' */ /* Module declarations from 'cpython' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'libc.stdlib' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ /* Module declarations from 'pyresample.ewa._fornav' */ static PyTypeObject *__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper = 0; static PyTypeObject *__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr = 0; static PyTypeObject *__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr = 0; static PyTypeObject *__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper = 0; static PyTypeObject *__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr = 0; static PyTypeObject *__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr = 0; static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; static PyTypeObject *__pyx_memoryviewslice_type = 0; static PyObject *generic = 0; static PyObject *strided = 0; static PyObject *indirect = 0; static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; static int __pyx_fuse_0_0_0__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *, size_t, size_t, size_t, size_t, size_t, __pyx_t_5numpy_float32_t *, __pyx_t_5numpy_float32_t *, __pyx_t_5numpy_float32_t **, __pyx_t_5numpy_float32_t **, __pyx_t_5numpy_float32_t, __pyx_t_5numpy_float32_t, size_t, unsigned int, float, float, float, float, int); /*proto*/ static int __pyx_fuse_0_1_1__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *, size_t, size_t, size_t, size_t, size_t, __pyx_t_5numpy_float32_t *, __pyx_t_5numpy_float32_t *, __pyx_t_5numpy_float64_t **, __pyx_t_5numpy_float64_t **, __pyx_t_5numpy_float64_t, __pyx_t_5numpy_float64_t, size_t, unsigned int, float, float, float, float, int); /*proto*/ static int __pyx_fuse_0_2_2__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *, size_t, size_t, size_t, size_t, size_t, __pyx_t_5numpy_float32_t *, __pyx_t_5numpy_float32_t *, __pyx_t_5numpy_int8_t **, __pyx_t_5numpy_int8_t **, __pyx_t_5numpy_int8_t, __pyx_t_5numpy_int8_t, size_t, unsigned int, float, float, float, float, int); /*proto*/ static int __pyx_fuse_1_0_0__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *, size_t, size_t, size_t, size_t, size_t, __pyx_t_5numpy_float64_t *, __pyx_t_5numpy_float64_t *, __pyx_t_5numpy_float32_t **, __pyx_t_5numpy_float32_t **, __pyx_t_5numpy_float32_t, __pyx_t_5numpy_float32_t, size_t, unsigned int, float, float, float, float, int); /*proto*/ static int __pyx_fuse_1_1_1__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *, size_t, size_t, size_t, size_t, size_t, __pyx_t_5numpy_float64_t *, __pyx_t_5numpy_float64_t *, __pyx_t_5numpy_float64_t **, __pyx_t_5numpy_float64_t **, __pyx_t_5numpy_float64_t, __pyx_t_5numpy_float64_t, size_t, unsigned int, float, float, float, float, int); /*proto*/ static int __pyx_fuse_1_2_2__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *, size_t, size_t, size_t, size_t, size_t, __pyx_t_5numpy_float64_t *, __pyx_t_5numpy_float64_t *, __pyx_t_5numpy_int8_t **, __pyx_t_5numpy_int8_t **, __pyx_t_5numpy_int8_t, __pyx_t_5numpy_int8_t, size_t, unsigned int, float, float, float, float, int); /*proto*/ static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ static PyObject *_unellipsify(PyObject *, int); /*proto*/ static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t = { "float32_t", NULL, sizeof(__pyx_t_5numpy_float32_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t = { "int8_t", NULL, sizeof(__pyx_t_5numpy_int8_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_int8_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_int8_t), 0 }; #define __Pyx_MODULE_NAME "pyresample.ewa._fornav" int __pyx_module_is_main_pyresample__ewa___fornav = 0; /* Implementation of 'pyresample.ewa._fornav' */ static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_AttributeError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_zip; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_Ellipsis; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; static const char __pyx_k_O[] = "O"; static const char __pyx_k_c[] = "c"; static const char __pyx_k_i[] = "i"; static const char __pyx_k_id[] = "id"; static const char __pyx_k__13[] = "()"; static const char __pyx_k__15[] = "|"; static const char __pyx_k_obj[] = "obj"; static const char __pyx_k_zip[] = "zip"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_base[] = "base"; static const char __pyx_k_int8[] = "int8"; static const char __pyx_k_kind[] = "kind"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_ndim[] = "ndim"; static const char __pyx_k_pack[] = "pack"; static const char __pyx_k_send[] = "send"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_step[] = "step"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_ASCII[] = "ASCII"; static const char __pyx_k_class[] = "__class__"; static const char __pyx_k_close[] = "close"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_strip[] = "strip"; static const char __pyx_k_throw[] = "throw"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_kwargs[] = "kwargs"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_struct[] = "struct"; static const char __pyx_k_unpack[] = "unpack"; static const char __pyx_k_float32[] = "float32"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_fortran[] = "fortran"; static const char __pyx_k_genexpr[] = "genexpr"; static const char __pyx_k_in_type[] = "in_type"; static const char __pyx_k_memview[] = "memview"; static const char __pyx_k_ndarray[] = "ndarray"; static const char __pyx_k_Ellipsis[] = "Ellipsis"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_itemsize[] = "itemsize"; static const char __pyx_k_out_type[] = "out_type"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_docformat[] = "__docformat__"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_float32_t[] = "float32_t"; static const char __pyx_k_float64_t[] = "float64_t"; static const char __pyx_k_grid_cols[] = "grid_cols"; static const char __pyx_k_grid_rows[] = "grid_rows"; static const char __pyx_k_num_items[] = "num_items"; static const char __pyx_k_valid_arr[] = "valid_arr"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_cols_array[] = "cols_array"; static const char __pyx_k_input_fill[] = "input_fill"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_rows_array[] = "rows_array"; static const char __pyx_k_signatures[] = "signatures"; static const char __pyx_k_swath_cols[] = "swath_cols"; static const char __pyx_k_swath_rows[] = "swath_rows"; static const char __pyx_k_tmp_arr_i8[] = "tmp_arr_i8"; static const char __pyx_k_valid_list[] = "valid_list"; static const char __pyx_k_weight_min[] = "weight_min"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_func_result[] = "func_result"; static const char __pyx_k_num_outputs[] = "num_outputs"; static const char __pyx_k_output_fill[] = "output_fill"; static const char __pyx_k_tmp_arr_f32[] = "tmp_arr_f32"; static const char __pyx_k_tmp_arr_f64[] = "tmp_arr_f64"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_cols_pointer[] = "cols_pointer"; static const char __pyx_k_input_arrays[] = "input_arrays"; static const char __pyx_k_rows_pointer[] = "rows_pointer"; static const char __pyx_k_weight_count[] = "weight_count"; static const char __pyx_k_input_pointer[] = "input_pointer"; static const char __pyx_k_output_arrays[] = "output_arrays"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_rows_per_scan[] = "rows_per_scan"; static const char __pyx_k_AttributeError[] = "AttributeError"; static const char __pyx_k_fornav_wrapper[] = "fornav_wrapper"; static const char __pyx_k_output_pointer[] = "output_pointer"; static const char __pyx_k_weight_sum_min[] = "weight_sum_min"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; static const char __pyx_k_weight_delta_max[] = "weight_delta_max"; static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_maximum_weight_mode[] = "maximum_weight_mode"; static const char __pyx_k_restructuredtext_en[] = "restructuredtext en"; static const char __pyx_k_weight_distance_max[] = "weight_distance_max"; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_No_input_arrays_given[] = "No input arrays given"; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_pyresample_ewa__fornav[] = "pyresample.ewa._fornav"; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; static const char __pyx_k_No_matching_signature_found[] = "No matching signature found"; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; static const char __pyx_k_Expected_at_least_d_arguments[] = "Expected at least %d arguments"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_pyx_fuse_0fornav_wrapper_local[] = "__pyx_fuse_0fornav_wrapper..genexpr"; static const char __pyx_k_pyx_fuse_1fornav_wrapper_local[] = "__pyx_fuse_1fornav_wrapper..genexpr"; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; static const char __pyx_k_EWA_requires_2_or_more_rows_per[] = "EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows"; static const char __pyx_k_Input_and_Output_must_be_of_the[] = "Input and Output must be of the same type"; static const char __pyx_k_Input_arrays_must_all_be_of_the[] = "Input arrays must all be of the same data type"; static const char __pyx_k_Must_have_same_number_of_inputs[] = "Must have same number of inputs and outputs"; static const char __pyx_k_Users_davidh_repos_git_pyresamp[] = "/Users/davidh/repos/git/pyresample/pyresample/ewa/_fornav.pyx"; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; static const char __pyx_k_Could_not_initialize_weight_stru[] = "Could not initialize weight structure for EWA resampling"; static const char __pyx_k_EWA_Resampling_No_swath_pixels_f[] = "EWA Resampling: No swath pixels found inside grid to be resampled"; static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types"; static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; static const char __pyx_k_Resampling_swath_data_to_uniform[] = "Resampling swath data to uniform grid using an Elliptical Weighted\nAveraging (EWA) algorithm.\n"; static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; static const char __pyx_k_Unknown_input_and_output_data_ty[] = "Unknown input and output data type"; static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_n_s_ASCII; static PyObject *__pyx_n_s_AttributeError; static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; static PyObject *__pyx_kp_s_Cannot_index_with_type_s; static PyObject *__pyx_kp_s_Could_not_initialize_weight_stru; static PyObject *__pyx_kp_s_EWA_Resampling_No_swath_pixels_f; static PyObject *__pyx_kp_s_EWA_requires_2_or_more_rows_per; static PyObject *__pyx_n_s_Ellipsis; static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; static PyObject *__pyx_kp_s_Expected_at_least_d_arguments; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_n_s_IndexError; static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; static PyObject *__pyx_kp_s_Input_and_Output_must_be_of_the; static PyObject *__pyx_kp_s_Input_arrays_must_all_be_of_the; static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; static PyObject *__pyx_n_s_MemoryError; static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; static PyObject *__pyx_kp_s_MemoryView_of_r_object; static PyObject *__pyx_kp_s_Must_have_same_number_of_inputs; static PyObject *__pyx_kp_s_No_input_arrays_given; static PyObject *__pyx_kp_s_No_matching_signature_found; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_b_O; static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; static PyObject *__pyx_kp_s_Unknown_input_and_output_data_ty; static PyObject *__pyx_kp_s_Users_davidh_repos_git_pyresamp; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_kp_s__13; static PyObject *__pyx_kp_s__15; static PyObject *__pyx_n_s_allocate_buffer; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_s_base; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_u_c; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_close; static PyObject *__pyx_n_s_cols_array; static PyObject *__pyx_n_s_cols_pointer; static PyObject *__pyx_kp_s_contiguous_and_direct; static PyObject *__pyx_kp_s_contiguous_and_indirect; static PyObject *__pyx_n_s_defaults; static PyObject *__pyx_n_s_docformat; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_dtype_is_object; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_flags; static PyObject *__pyx_n_s_float32; static PyObject *__pyx_n_s_float32_t; static PyObject *__pyx_n_s_float64; static PyObject *__pyx_n_s_float64_t; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fornav_wrapper; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_s_func_result; static PyObject *__pyx_n_s_genexpr; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_s_grid_cols; static PyObject *__pyx_n_s_grid_rows; static PyObject *__pyx_n_s_i; static PyObject *__pyx_n_s_id; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_in_type; static PyObject *__pyx_n_s_input_arrays; static PyObject *__pyx_n_s_input_fill; static PyObject *__pyx_n_s_input_pointer; static PyObject *__pyx_n_s_int8; static PyObject *__pyx_n_s_itemsize; static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; static PyObject *__pyx_n_s_kind; static PyObject *__pyx_n_s_kwargs; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_maximum_weight_mode; static PyObject *__pyx_n_s_memview; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_n_s_ndarray; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_ndim; static PyObject *__pyx_n_s_num_items; static PyObject *__pyx_n_s_num_outputs; static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_out_type; static PyObject *__pyx_n_s_output_arrays; static PyObject *__pyx_n_s_output_fill; static PyObject *__pyx_n_s_output_pointer; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_s_pyresample_ewa__fornav; static PyObject *__pyx_n_s_pyx_fuse_0fornav_wrapper_local; static PyObject *__pyx_n_s_pyx_fuse_1fornav_wrapper_local; static PyObject *__pyx_n_s_pyx_getbuffer; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_range; static PyObject *__pyx_kp_s_restructuredtext_en; static PyObject *__pyx_n_s_rows_array; static PyObject *__pyx_n_s_rows_per_scan; static PyObject *__pyx_n_s_rows_pointer; static PyObject *__pyx_n_s_send; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_s_signatures; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_start; static PyObject *__pyx_n_s_step; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_kp_s_strided_and_direct; static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; static PyObject *__pyx_kp_s_strided_and_indirect; static PyObject *__pyx_n_s_strip; static PyObject *__pyx_n_s_struct; static PyObject *__pyx_n_s_swath_cols; static PyObject *__pyx_n_s_swath_rows; static PyObject *__pyx_n_s_test; static PyObject *__pyx_n_s_throw; static PyObject *__pyx_n_s_tmp_arr_f32; static PyObject *__pyx_n_s_tmp_arr_f64; static PyObject *__pyx_n_s_tmp_arr_i8; static PyObject *__pyx_kp_s_unable_to_allocate_array_data; static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_unpack; static PyObject *__pyx_n_s_valid_arr; static PyObject *__pyx_n_s_valid_list; static PyObject *__pyx_n_s_weight_count; static PyObject *__pyx_n_s_weight_delta_max; static PyObject *__pyx_n_s_weight_distance_max; static PyObject *__pyx_n_s_weight_min; static PyObject *__pyx_n_s_weight_sum_min; static PyObject *__pyx_n_s_zip; static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_fornav_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_12__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_3genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_2fornav_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_cols_array, PyArrayObject *__pyx_v_rows_array, PyObject *__pyx_v_input_arrays, PyObject *__pyx_v_output_arrays, PyObject *__pyx_v_input_fill, PyObject *__pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, weight_type __pyx_v_weight_min, weight_type __pyx_v_weight_distance_max, weight_type __pyx_v_weight_delta_max, weight_type __pyx_v_weight_sum_min, PyBoolObject *__pyx_v_maximum_weight_mode); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_6genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_9genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_4fornav_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_cols_array, PyArrayObject *__pyx_v_rows_array, PyObject *__pyx_v_input_arrays, PyObject *__pyx_v_output_arrays, PyObject *__pyx_v_input_fill, PyObject *__pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, weight_type __pyx_v_weight_min, weight_type __pyx_v_weight_distance_max, weight_type __pyx_v_weight_delta_max, weight_type __pyx_v_weight_sum_min, PyBoolObject *__pyx_v_maximum_weight_mode); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__2; static PyObject *__pyx_tuple__3; static PyObject *__pyx_tuple__4; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_slice__48; static PyObject *__pyx_slice__49; static PyObject *__pyx_slice__50; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__27; static PyObject *__pyx_tuple__28; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__32; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__34; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__36; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__38; static PyObject *__pyx_tuple__39; static PyObject *__pyx_tuple__40; static PyObject *__pyx_tuple__41; static PyObject *__pyx_tuple__42; static PyObject *__pyx_tuple__43; static PyObject *__pyx_tuple__44; static PyObject *__pyx_tuple__45; static PyObject *__pyx_tuple__46; static PyObject *__pyx_tuple__47; static PyObject *__pyx_tuple__51; static PyObject *__pyx_tuple__52; static PyObject *__pyx_tuple__54; static PyObject *__pyx_tuple__55; static PyObject *__pyx_tuple__56; static PyObject *__pyx_tuple__57; static PyObject *__pyx_tuple__58; static PyObject *__pyx_codeobj__53; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ static int __pyx_fuse_0_0_0__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *__pyx_v_valid_list, size_t __pyx_v_chan_count, size_t __pyx_v_swath_cols, size_t __pyx_v_swath_rows, size_t __pyx_v_grid_cols, size_t __pyx_v_grid_rows, __pyx_t_5numpy_float32_t *__pyx_v_cols_pointer, __pyx_t_5numpy_float32_t *__pyx_v_rows_pointer, __pyx_t_5numpy_float32_t **__pyx_v_input_arrays, __pyx_t_5numpy_float32_t **__pyx_v_output_arrays, __pyx_t_5numpy_float32_t __pyx_v_input_fill, __pyx_t_5numpy_float32_t __pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, float __pyx_v_weight_min, float __pyx_v_weight_distance_max, float __pyx_v_weight_delta_max, float __pyx_v_weight_sum_min, int __pyx_v_maximum_weight_mode) { unsigned int __pyx_v_row_idx; unsigned int __pyx_v_idx; int __pyx_v_got_point; int __pyx_v_tmp_got_point; int __pyx_v_func_result; __pyx_t_5numpy_float32_t *__pyx_v_tmp_cols_pointer; __pyx_t_5numpy_float32_t *__pyx_v_tmp_rows_pointer; __pyx_t_5numpy_float32_t **__pyx_v_input_images; ewa_weight __pyx_v_ewaw; ewa_parameters *__pyx_v_ewap; accum_type **__pyx_v_grid_accums; weight_type **__pyx_v_grid_weights; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; unsigned int __pyx_t_6; int __pyx_t_7; __Pyx_RefNannySetupContext("__pyx_fuse_0_0_0fornav", 0); /* "pyresample/ewa/_fornav.pyx":118 * cdef unsigned int row_idx * cdef unsigned int idx * cdef bint got_point = 0 # <<<<<<<<<<<<<< * cdef bint tmp_got_point * cdef int func_result */ __pyx_v_got_point = 0; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ __pyx_t_1 = ((__pyx_v_weight_sum_min == -1.0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":129 * # other defaults * if weight_sum_min == -1.0: * weight_sum_min = weight_min # <<<<<<<<<<<<<< * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, */ __pyx_v_weight_sum_min = __pyx_v_weight_min; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ } /* "pyresample/ewa/_fornav.pyx":131 * weight_sum_min = weight_min * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, # <<<<<<<<<<<<<< * weight_sum_min, &ewaw) * if func_result < 0: */ __pyx_v_func_result = initialize_weight(__pyx_v_chan_count, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, (&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 134, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ } /* "pyresample/ewa/_fornav.pyx":138 * # Allocate location for storing the sum of all of the pixels involved in each grid cell * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_accums is NULL: * raise MemoryError() */ __pyx_v_grid_accums = initialize_grid_accums(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ __pyx_t_1 = ((__pyx_v_grid_accums == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":140 * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: */ PyErr_NoMemory(); __PYX_ERR(0, 140, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ } /* "pyresample/ewa/_fornav.pyx":141 * if grid_accums is NULL: * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_weights is NULL: * raise MemoryError() */ __pyx_v_grid_weights = initialize_grid_weights(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ __pyx_t_1 = ((__pyx_v_grid_weights == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":143 * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) */ PyErr_NoMemory(); __PYX_ERR(0, 143, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ } /* "pyresample/ewa/_fornav.pyx":145 * raise MemoryError() * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) # <<<<<<<<<<<<<< * if ewap is NULL: * raise MemoryError() */ __pyx_v_ewap = ((ewa_parameters *)malloc((__pyx_v_swath_cols * (sizeof(ewa_parameters))))); /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ __pyx_t_1 = ((__pyx_v_ewap == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":147 * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) */ PyErr_NoMemory(); __PYX_ERR(0, 147, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ } /* "pyresample/ewa/_fornav.pyx":149 * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) # <<<<<<<<<<<<<< * if input_images is NULL: * raise MemoryError() */ __pyx_v_input_images = ((__pyx_t_5numpy_float32_t **)malloc((__pyx_v_chan_count * (sizeof(__pyx_t_5numpy_float32_t *))))); /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ __pyx_t_1 = ((__pyx_v_input_images == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":151 * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * */ PyErr_NoMemory(); __PYX_ERR(0, 151, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ } /* "pyresample/ewa/_fornav.pyx":155 * * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: # <<<<<<<<<<<<<< * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] */ __pyx_t_3 = __pyx_v_swath_rows; __pyx_t_4 = __pyx_v_rows_per_scan; for (__pyx_v_row_idx = 0; __pyx_v_row_idx < __pyx_t_3; __pyx_v_row_idx+=__pyx_t_4) { /* "pyresample/ewa/_fornav.pyx":156 * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] * # print "Current cols pointer: %d" % (tmp_cols_pointer,) */ __pyx_v_tmp_cols_pointer = (&(__pyx_v_cols_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":157 * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current cols pointer: %d" % (tmp_cols_pointer,) * */ __pyx_v_tmp_rows_pointer = (&(__pyx_v_rows_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":161 * * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): # <<<<<<<<<<<<<< * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] * # print "Current input 0 pointer: %d" % (input_images[idx],) */ __pyx_t_5 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":162 * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current input 0 pointer: %d" % (input_images[idx],) * */ (__pyx_v_input_images[__pyx_v_idx]) = (&((__pyx_v_input_arrays[__pyx_v_idx])[(__pyx_v_row_idx * __pyx_v_swath_cols)])); } /* "pyresample/ewa/_fornav.pyx":166 * * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) # <<<<<<<<<<<<<< * if func_result < 0: * got_point = got_point or 0 */ __pyx_v_func_result = compute_ewa_parameters<__pyx_t_5numpy_float32_t>(__pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":168 * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: * got_point = got_point or 0 # <<<<<<<<<<<<<< * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_1 = 0; __pyx_L14_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; /* "pyresample/ewa/_fornav.pyx":170 * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue # <<<<<<<<<<<<<< * * # NOTE: In the C version this is where the image array data is loaded */ goto __pyx_L9_continue; /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ } /* "pyresample/ewa/_fornav.pyx":173 * * # NOTE: In the C version this is where the image array data is loaded * tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, # <<<<<<<<<<<<<< * swath_cols, rows_per_scan, grid_cols, grid_rows, * tmp_cols_pointer, tmp_rows_pointer, */ __pyx_v_tmp_got_point = compute_ewa<__pyx_t_5numpy_float32_t,__pyx_t_5numpy_float32_t>(__pyx_v_chan_count, __pyx_v_maximum_weight_mode, __pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, __pyx_v_input_images, __pyx_v_input_fill, __pyx_v_grid_accums, __pyx_v_grid_weights, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":178 * input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) * * got_point = got_point or tmp_got_point # <<<<<<<<<<<<<< * * free(input_images) */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = (__pyx_v_tmp_got_point != 0); __pyx_t_1 = __pyx_t_7; __pyx_L16_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; __pyx_L9_continue:; } /* "pyresample/ewa/_fornav.pyx":180 * got_point = got_point or tmp_got_point * * free(input_images) # <<<<<<<<<<<<<< * free(ewap) * */ free(__pyx_v_input_images); /* "pyresample/ewa/_fornav.pyx":181 * * free(input_images) * free(ewap) # <<<<<<<<<<<<<< * * if not got_point: */ free(__pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ __pyx_t_1 = ((!(__pyx_v_got_point != 0)) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 184, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ } /* "pyresample/ewa/_fornav.pyx":186 * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * * for idx in range(chan_count): # <<<<<<<<<<<<<< * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) */ __pyx_t_4 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_4; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":187 * * for idx in range(chan_count): * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, # <<<<<<<<<<<<<< * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) * */ (__pyx_v_valid_list[__pyx_v_idx]) = write_grid_image((__pyx_v_output_arrays[__pyx_v_idx]), __pyx_v_output_fill, __pyx_v_grid_cols, __pyx_v_grid_rows, (__pyx_v_grid_accums[__pyx_v_idx]), (__pyx_v_grid_weights[__pyx_v_idx]), __pyx_v_maximum_weight_mode, __pyx_v_weight_sum_min); } /* "pyresample/ewa/_fornav.pyx":191 * * # free(grid_accums) * deinitialize_weight(&ewaw) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) */ deinitialize_weight((&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":192 * # free(grid_accums) * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_weights) * */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_accums)); /* "pyresample/ewa/_fornav.pyx":193 * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) # <<<<<<<<<<<<<< * * return 0 */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_weights)); /* "pyresample/ewa/_fornav.pyx":195 * deinitialize_grids(chan_count, grid_weights) * * return 0 # <<<<<<<<<<<<<< * * @cython.boundscheck(False) */ __pyx_r = 0; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._fornav.fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_fuse_0_1_1__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *__pyx_v_valid_list, size_t __pyx_v_chan_count, size_t __pyx_v_swath_cols, size_t __pyx_v_swath_rows, size_t __pyx_v_grid_cols, size_t __pyx_v_grid_rows, __pyx_t_5numpy_float32_t *__pyx_v_cols_pointer, __pyx_t_5numpy_float32_t *__pyx_v_rows_pointer, __pyx_t_5numpy_float64_t **__pyx_v_input_arrays, __pyx_t_5numpy_float64_t **__pyx_v_output_arrays, __pyx_t_5numpy_float64_t __pyx_v_input_fill, __pyx_t_5numpy_float64_t __pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, float __pyx_v_weight_min, float __pyx_v_weight_distance_max, float __pyx_v_weight_delta_max, float __pyx_v_weight_sum_min, int __pyx_v_maximum_weight_mode) { unsigned int __pyx_v_row_idx; unsigned int __pyx_v_idx; int __pyx_v_got_point; int __pyx_v_tmp_got_point; int __pyx_v_func_result; __pyx_t_5numpy_float32_t *__pyx_v_tmp_cols_pointer; __pyx_t_5numpy_float32_t *__pyx_v_tmp_rows_pointer; __pyx_t_5numpy_float64_t **__pyx_v_input_images; ewa_weight __pyx_v_ewaw; ewa_parameters *__pyx_v_ewap; accum_type **__pyx_v_grid_accums; weight_type **__pyx_v_grid_weights; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; unsigned int __pyx_t_6; int __pyx_t_7; __Pyx_RefNannySetupContext("__pyx_fuse_0_1_1fornav", 0); /* "pyresample/ewa/_fornav.pyx":118 * cdef unsigned int row_idx * cdef unsigned int idx * cdef bint got_point = 0 # <<<<<<<<<<<<<< * cdef bint tmp_got_point * cdef int func_result */ __pyx_v_got_point = 0; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ __pyx_t_1 = ((__pyx_v_weight_sum_min == -1.0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":129 * # other defaults * if weight_sum_min == -1.0: * weight_sum_min = weight_min # <<<<<<<<<<<<<< * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, */ __pyx_v_weight_sum_min = __pyx_v_weight_min; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ } /* "pyresample/ewa/_fornav.pyx":131 * weight_sum_min = weight_min * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, # <<<<<<<<<<<<<< * weight_sum_min, &ewaw) * if func_result < 0: */ __pyx_v_func_result = initialize_weight(__pyx_v_chan_count, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, (&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 134, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ } /* "pyresample/ewa/_fornav.pyx":138 * # Allocate location for storing the sum of all of the pixels involved in each grid cell * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_accums is NULL: * raise MemoryError() */ __pyx_v_grid_accums = initialize_grid_accums(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ __pyx_t_1 = ((__pyx_v_grid_accums == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":140 * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: */ PyErr_NoMemory(); __PYX_ERR(0, 140, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ } /* "pyresample/ewa/_fornav.pyx":141 * if grid_accums is NULL: * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_weights is NULL: * raise MemoryError() */ __pyx_v_grid_weights = initialize_grid_weights(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ __pyx_t_1 = ((__pyx_v_grid_weights == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":143 * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) */ PyErr_NoMemory(); __PYX_ERR(0, 143, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ } /* "pyresample/ewa/_fornav.pyx":145 * raise MemoryError() * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) # <<<<<<<<<<<<<< * if ewap is NULL: * raise MemoryError() */ __pyx_v_ewap = ((ewa_parameters *)malloc((__pyx_v_swath_cols * (sizeof(ewa_parameters))))); /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ __pyx_t_1 = ((__pyx_v_ewap == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":147 * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) */ PyErr_NoMemory(); __PYX_ERR(0, 147, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ } /* "pyresample/ewa/_fornav.pyx":149 * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) # <<<<<<<<<<<<<< * if input_images is NULL: * raise MemoryError() */ __pyx_v_input_images = ((__pyx_t_5numpy_float64_t **)malloc((__pyx_v_chan_count * (sizeof(__pyx_t_5numpy_float64_t *))))); /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ __pyx_t_1 = ((__pyx_v_input_images == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":151 * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * */ PyErr_NoMemory(); __PYX_ERR(0, 151, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ } /* "pyresample/ewa/_fornav.pyx":155 * * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: # <<<<<<<<<<<<<< * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] */ __pyx_t_3 = __pyx_v_swath_rows; __pyx_t_4 = __pyx_v_rows_per_scan; for (__pyx_v_row_idx = 0; __pyx_v_row_idx < __pyx_t_3; __pyx_v_row_idx+=__pyx_t_4) { /* "pyresample/ewa/_fornav.pyx":156 * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] * # print "Current cols pointer: %d" % (tmp_cols_pointer,) */ __pyx_v_tmp_cols_pointer = (&(__pyx_v_cols_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":157 * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current cols pointer: %d" % (tmp_cols_pointer,) * */ __pyx_v_tmp_rows_pointer = (&(__pyx_v_rows_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":161 * * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): # <<<<<<<<<<<<<< * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] * # print "Current input 0 pointer: %d" % (input_images[idx],) */ __pyx_t_5 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":162 * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current input 0 pointer: %d" % (input_images[idx],) * */ (__pyx_v_input_images[__pyx_v_idx]) = (&((__pyx_v_input_arrays[__pyx_v_idx])[(__pyx_v_row_idx * __pyx_v_swath_cols)])); } /* "pyresample/ewa/_fornav.pyx":166 * * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) # <<<<<<<<<<<<<< * if func_result < 0: * got_point = got_point or 0 */ __pyx_v_func_result = compute_ewa_parameters<__pyx_t_5numpy_float32_t>(__pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":168 * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: * got_point = got_point or 0 # <<<<<<<<<<<<<< * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_1 = 0; __pyx_L14_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; /* "pyresample/ewa/_fornav.pyx":170 * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue # <<<<<<<<<<<<<< * * # NOTE: In the C version this is where the image array data is loaded */ goto __pyx_L9_continue; /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ } /* "pyresample/ewa/_fornav.pyx":173 * * # NOTE: In the C version this is where the image array data is loaded * tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, # <<<<<<<<<<<<<< * swath_cols, rows_per_scan, grid_cols, grid_rows, * tmp_cols_pointer, tmp_rows_pointer, */ __pyx_v_tmp_got_point = compute_ewa<__pyx_t_5numpy_float32_t,__pyx_t_5numpy_float64_t>(__pyx_v_chan_count, __pyx_v_maximum_weight_mode, __pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, __pyx_v_input_images, __pyx_v_input_fill, __pyx_v_grid_accums, __pyx_v_grid_weights, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":178 * input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) * * got_point = got_point or tmp_got_point # <<<<<<<<<<<<<< * * free(input_images) */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = (__pyx_v_tmp_got_point != 0); __pyx_t_1 = __pyx_t_7; __pyx_L16_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; __pyx_L9_continue:; } /* "pyresample/ewa/_fornav.pyx":180 * got_point = got_point or tmp_got_point * * free(input_images) # <<<<<<<<<<<<<< * free(ewap) * */ free(__pyx_v_input_images); /* "pyresample/ewa/_fornav.pyx":181 * * free(input_images) * free(ewap) # <<<<<<<<<<<<<< * * if not got_point: */ free(__pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ __pyx_t_1 = ((!(__pyx_v_got_point != 0)) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 184, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ } /* "pyresample/ewa/_fornav.pyx":186 * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * * for idx in range(chan_count): # <<<<<<<<<<<<<< * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) */ __pyx_t_4 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_4; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":187 * * for idx in range(chan_count): * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, # <<<<<<<<<<<<<< * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) * */ (__pyx_v_valid_list[__pyx_v_idx]) = write_grid_image((__pyx_v_output_arrays[__pyx_v_idx]), __pyx_v_output_fill, __pyx_v_grid_cols, __pyx_v_grid_rows, (__pyx_v_grid_accums[__pyx_v_idx]), (__pyx_v_grid_weights[__pyx_v_idx]), __pyx_v_maximum_weight_mode, __pyx_v_weight_sum_min); } /* "pyresample/ewa/_fornav.pyx":191 * * # free(grid_accums) * deinitialize_weight(&ewaw) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) */ deinitialize_weight((&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":192 * # free(grid_accums) * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_weights) * */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_accums)); /* "pyresample/ewa/_fornav.pyx":193 * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) # <<<<<<<<<<<<<< * * return 0 */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_weights)); /* "pyresample/ewa/_fornav.pyx":195 * deinitialize_grids(chan_count, grid_weights) * * return 0 # <<<<<<<<<<<<<< * * @cython.boundscheck(False) */ __pyx_r = 0; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._fornav.fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_fuse_0_2_2__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *__pyx_v_valid_list, size_t __pyx_v_chan_count, size_t __pyx_v_swath_cols, size_t __pyx_v_swath_rows, size_t __pyx_v_grid_cols, size_t __pyx_v_grid_rows, __pyx_t_5numpy_float32_t *__pyx_v_cols_pointer, __pyx_t_5numpy_float32_t *__pyx_v_rows_pointer, __pyx_t_5numpy_int8_t **__pyx_v_input_arrays, __pyx_t_5numpy_int8_t **__pyx_v_output_arrays, __pyx_t_5numpy_int8_t __pyx_v_input_fill, __pyx_t_5numpy_int8_t __pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, float __pyx_v_weight_min, float __pyx_v_weight_distance_max, float __pyx_v_weight_delta_max, float __pyx_v_weight_sum_min, int __pyx_v_maximum_weight_mode) { unsigned int __pyx_v_row_idx; unsigned int __pyx_v_idx; int __pyx_v_got_point; int __pyx_v_tmp_got_point; int __pyx_v_func_result; __pyx_t_5numpy_float32_t *__pyx_v_tmp_cols_pointer; __pyx_t_5numpy_float32_t *__pyx_v_tmp_rows_pointer; __pyx_t_5numpy_int8_t **__pyx_v_input_images; ewa_weight __pyx_v_ewaw; ewa_parameters *__pyx_v_ewap; accum_type **__pyx_v_grid_accums; weight_type **__pyx_v_grid_weights; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; unsigned int __pyx_t_6; int __pyx_t_7; __Pyx_RefNannySetupContext("__pyx_fuse_0_2_2fornav", 0); /* "pyresample/ewa/_fornav.pyx":118 * cdef unsigned int row_idx * cdef unsigned int idx * cdef bint got_point = 0 # <<<<<<<<<<<<<< * cdef bint tmp_got_point * cdef int func_result */ __pyx_v_got_point = 0; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ __pyx_t_1 = ((__pyx_v_weight_sum_min == -1.0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":129 * # other defaults * if weight_sum_min == -1.0: * weight_sum_min = weight_min # <<<<<<<<<<<<<< * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, */ __pyx_v_weight_sum_min = __pyx_v_weight_min; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ } /* "pyresample/ewa/_fornav.pyx":131 * weight_sum_min = weight_min * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, # <<<<<<<<<<<<<< * weight_sum_min, &ewaw) * if func_result < 0: */ __pyx_v_func_result = initialize_weight(__pyx_v_chan_count, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, (&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 134, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ } /* "pyresample/ewa/_fornav.pyx":138 * # Allocate location for storing the sum of all of the pixels involved in each grid cell * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_accums is NULL: * raise MemoryError() */ __pyx_v_grid_accums = initialize_grid_accums(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ __pyx_t_1 = ((__pyx_v_grid_accums == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":140 * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: */ PyErr_NoMemory(); __PYX_ERR(0, 140, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ } /* "pyresample/ewa/_fornav.pyx":141 * if grid_accums is NULL: * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_weights is NULL: * raise MemoryError() */ __pyx_v_grid_weights = initialize_grid_weights(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ __pyx_t_1 = ((__pyx_v_grid_weights == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":143 * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) */ PyErr_NoMemory(); __PYX_ERR(0, 143, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ } /* "pyresample/ewa/_fornav.pyx":145 * raise MemoryError() * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) # <<<<<<<<<<<<<< * if ewap is NULL: * raise MemoryError() */ __pyx_v_ewap = ((ewa_parameters *)malloc((__pyx_v_swath_cols * (sizeof(ewa_parameters))))); /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ __pyx_t_1 = ((__pyx_v_ewap == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":147 * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) */ PyErr_NoMemory(); __PYX_ERR(0, 147, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ } /* "pyresample/ewa/_fornav.pyx":149 * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) # <<<<<<<<<<<<<< * if input_images is NULL: * raise MemoryError() */ __pyx_v_input_images = ((__pyx_t_5numpy_int8_t **)malloc((__pyx_v_chan_count * (sizeof(__pyx_t_5numpy_int8_t *))))); /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ __pyx_t_1 = ((__pyx_v_input_images == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":151 * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * */ PyErr_NoMemory(); __PYX_ERR(0, 151, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ } /* "pyresample/ewa/_fornav.pyx":155 * * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: # <<<<<<<<<<<<<< * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] */ __pyx_t_3 = __pyx_v_swath_rows; __pyx_t_4 = __pyx_v_rows_per_scan; for (__pyx_v_row_idx = 0; __pyx_v_row_idx < __pyx_t_3; __pyx_v_row_idx+=__pyx_t_4) { /* "pyresample/ewa/_fornav.pyx":156 * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] * # print "Current cols pointer: %d" % (tmp_cols_pointer,) */ __pyx_v_tmp_cols_pointer = (&(__pyx_v_cols_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":157 * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current cols pointer: %d" % (tmp_cols_pointer,) * */ __pyx_v_tmp_rows_pointer = (&(__pyx_v_rows_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":161 * * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): # <<<<<<<<<<<<<< * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] * # print "Current input 0 pointer: %d" % (input_images[idx],) */ __pyx_t_5 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":162 * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current input 0 pointer: %d" % (input_images[idx],) * */ (__pyx_v_input_images[__pyx_v_idx]) = (&((__pyx_v_input_arrays[__pyx_v_idx])[(__pyx_v_row_idx * __pyx_v_swath_cols)])); } /* "pyresample/ewa/_fornav.pyx":166 * * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) # <<<<<<<<<<<<<< * if func_result < 0: * got_point = got_point or 0 */ __pyx_v_func_result = compute_ewa_parameters<__pyx_t_5numpy_float32_t>(__pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":168 * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: * got_point = got_point or 0 # <<<<<<<<<<<<<< * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_1 = 0; __pyx_L14_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; /* "pyresample/ewa/_fornav.pyx":170 * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue # <<<<<<<<<<<<<< * * # NOTE: In the C version this is where the image array data is loaded */ goto __pyx_L9_continue; /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ } /* "pyresample/ewa/_fornav.pyx":173 * * # NOTE: In the C version this is where the image array data is loaded * tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, # <<<<<<<<<<<<<< * swath_cols, rows_per_scan, grid_cols, grid_rows, * tmp_cols_pointer, tmp_rows_pointer, */ __pyx_v_tmp_got_point = compute_ewa<__pyx_t_5numpy_float32_t,__pyx_t_5numpy_int8_t>(__pyx_v_chan_count, __pyx_v_maximum_weight_mode, __pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, __pyx_v_input_images, __pyx_v_input_fill, __pyx_v_grid_accums, __pyx_v_grid_weights, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":178 * input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) * * got_point = got_point or tmp_got_point # <<<<<<<<<<<<<< * * free(input_images) */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = (__pyx_v_tmp_got_point != 0); __pyx_t_1 = __pyx_t_7; __pyx_L16_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; __pyx_L9_continue:; } /* "pyresample/ewa/_fornav.pyx":180 * got_point = got_point or tmp_got_point * * free(input_images) # <<<<<<<<<<<<<< * free(ewap) * */ free(__pyx_v_input_images); /* "pyresample/ewa/_fornav.pyx":181 * * free(input_images) * free(ewap) # <<<<<<<<<<<<<< * * if not got_point: */ free(__pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ __pyx_t_1 = ((!(__pyx_v_got_point != 0)) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 184, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ } /* "pyresample/ewa/_fornav.pyx":186 * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * * for idx in range(chan_count): # <<<<<<<<<<<<<< * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) */ __pyx_t_4 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_4; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":187 * * for idx in range(chan_count): * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, # <<<<<<<<<<<<<< * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) * */ (__pyx_v_valid_list[__pyx_v_idx]) = write_grid_image((__pyx_v_output_arrays[__pyx_v_idx]), __pyx_v_output_fill, __pyx_v_grid_cols, __pyx_v_grid_rows, (__pyx_v_grid_accums[__pyx_v_idx]), (__pyx_v_grid_weights[__pyx_v_idx]), __pyx_v_maximum_weight_mode, __pyx_v_weight_sum_min); } /* "pyresample/ewa/_fornav.pyx":191 * * # free(grid_accums) * deinitialize_weight(&ewaw) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) */ deinitialize_weight((&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":192 * # free(grid_accums) * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_weights) * */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_accums)); /* "pyresample/ewa/_fornav.pyx":193 * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) # <<<<<<<<<<<<<< * * return 0 */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_weights)); /* "pyresample/ewa/_fornav.pyx":195 * deinitialize_grids(chan_count, grid_weights) * * return 0 # <<<<<<<<<<<<<< * * @cython.boundscheck(False) */ __pyx_r = 0; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._fornav.fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_fuse_1_0_0__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *__pyx_v_valid_list, size_t __pyx_v_chan_count, size_t __pyx_v_swath_cols, size_t __pyx_v_swath_rows, size_t __pyx_v_grid_cols, size_t __pyx_v_grid_rows, __pyx_t_5numpy_float64_t *__pyx_v_cols_pointer, __pyx_t_5numpy_float64_t *__pyx_v_rows_pointer, __pyx_t_5numpy_float32_t **__pyx_v_input_arrays, __pyx_t_5numpy_float32_t **__pyx_v_output_arrays, __pyx_t_5numpy_float32_t __pyx_v_input_fill, __pyx_t_5numpy_float32_t __pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, float __pyx_v_weight_min, float __pyx_v_weight_distance_max, float __pyx_v_weight_delta_max, float __pyx_v_weight_sum_min, int __pyx_v_maximum_weight_mode) { unsigned int __pyx_v_row_idx; unsigned int __pyx_v_idx; int __pyx_v_got_point; int __pyx_v_tmp_got_point; int __pyx_v_func_result; __pyx_t_5numpy_float64_t *__pyx_v_tmp_cols_pointer; __pyx_t_5numpy_float64_t *__pyx_v_tmp_rows_pointer; __pyx_t_5numpy_float32_t **__pyx_v_input_images; ewa_weight __pyx_v_ewaw; ewa_parameters *__pyx_v_ewap; accum_type **__pyx_v_grid_accums; weight_type **__pyx_v_grid_weights; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; unsigned int __pyx_t_6; int __pyx_t_7; __Pyx_RefNannySetupContext("__pyx_fuse_1_0_0fornav", 0); /* "pyresample/ewa/_fornav.pyx":118 * cdef unsigned int row_idx * cdef unsigned int idx * cdef bint got_point = 0 # <<<<<<<<<<<<<< * cdef bint tmp_got_point * cdef int func_result */ __pyx_v_got_point = 0; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ __pyx_t_1 = ((__pyx_v_weight_sum_min == -1.0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":129 * # other defaults * if weight_sum_min == -1.0: * weight_sum_min = weight_min # <<<<<<<<<<<<<< * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, */ __pyx_v_weight_sum_min = __pyx_v_weight_min; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ } /* "pyresample/ewa/_fornav.pyx":131 * weight_sum_min = weight_min * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, # <<<<<<<<<<<<<< * weight_sum_min, &ewaw) * if func_result < 0: */ __pyx_v_func_result = initialize_weight(__pyx_v_chan_count, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, (&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 134, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ } /* "pyresample/ewa/_fornav.pyx":138 * # Allocate location for storing the sum of all of the pixels involved in each grid cell * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_accums is NULL: * raise MemoryError() */ __pyx_v_grid_accums = initialize_grid_accums(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ __pyx_t_1 = ((__pyx_v_grid_accums == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":140 * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: */ PyErr_NoMemory(); __PYX_ERR(0, 140, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ } /* "pyresample/ewa/_fornav.pyx":141 * if grid_accums is NULL: * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_weights is NULL: * raise MemoryError() */ __pyx_v_grid_weights = initialize_grid_weights(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ __pyx_t_1 = ((__pyx_v_grid_weights == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":143 * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) */ PyErr_NoMemory(); __PYX_ERR(0, 143, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ } /* "pyresample/ewa/_fornav.pyx":145 * raise MemoryError() * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) # <<<<<<<<<<<<<< * if ewap is NULL: * raise MemoryError() */ __pyx_v_ewap = ((ewa_parameters *)malloc((__pyx_v_swath_cols * (sizeof(ewa_parameters))))); /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ __pyx_t_1 = ((__pyx_v_ewap == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":147 * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) */ PyErr_NoMemory(); __PYX_ERR(0, 147, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ } /* "pyresample/ewa/_fornav.pyx":149 * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) # <<<<<<<<<<<<<< * if input_images is NULL: * raise MemoryError() */ __pyx_v_input_images = ((__pyx_t_5numpy_float32_t **)malloc((__pyx_v_chan_count * (sizeof(__pyx_t_5numpy_float32_t *))))); /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ __pyx_t_1 = ((__pyx_v_input_images == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":151 * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * */ PyErr_NoMemory(); __PYX_ERR(0, 151, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ } /* "pyresample/ewa/_fornav.pyx":155 * * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: # <<<<<<<<<<<<<< * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] */ __pyx_t_3 = __pyx_v_swath_rows; __pyx_t_4 = __pyx_v_rows_per_scan; for (__pyx_v_row_idx = 0; __pyx_v_row_idx < __pyx_t_3; __pyx_v_row_idx+=__pyx_t_4) { /* "pyresample/ewa/_fornav.pyx":156 * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] * # print "Current cols pointer: %d" % (tmp_cols_pointer,) */ __pyx_v_tmp_cols_pointer = (&(__pyx_v_cols_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":157 * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current cols pointer: %d" % (tmp_cols_pointer,) * */ __pyx_v_tmp_rows_pointer = (&(__pyx_v_rows_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":161 * * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): # <<<<<<<<<<<<<< * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] * # print "Current input 0 pointer: %d" % (input_images[idx],) */ __pyx_t_5 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":162 * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current input 0 pointer: %d" % (input_images[idx],) * */ (__pyx_v_input_images[__pyx_v_idx]) = (&((__pyx_v_input_arrays[__pyx_v_idx])[(__pyx_v_row_idx * __pyx_v_swath_cols)])); } /* "pyresample/ewa/_fornav.pyx":166 * * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) # <<<<<<<<<<<<<< * if func_result < 0: * got_point = got_point or 0 */ __pyx_v_func_result = compute_ewa_parameters<__pyx_t_5numpy_float64_t>(__pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":168 * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: * got_point = got_point or 0 # <<<<<<<<<<<<<< * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_1 = 0; __pyx_L14_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; /* "pyresample/ewa/_fornav.pyx":170 * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue # <<<<<<<<<<<<<< * * # NOTE: In the C version this is where the image array data is loaded */ goto __pyx_L9_continue; /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ } /* "pyresample/ewa/_fornav.pyx":173 * * # NOTE: In the C version this is where the image array data is loaded * tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, # <<<<<<<<<<<<<< * swath_cols, rows_per_scan, grid_cols, grid_rows, * tmp_cols_pointer, tmp_rows_pointer, */ __pyx_v_tmp_got_point = compute_ewa<__pyx_t_5numpy_float64_t,__pyx_t_5numpy_float32_t>(__pyx_v_chan_count, __pyx_v_maximum_weight_mode, __pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, __pyx_v_input_images, __pyx_v_input_fill, __pyx_v_grid_accums, __pyx_v_grid_weights, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":178 * input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) * * got_point = got_point or tmp_got_point # <<<<<<<<<<<<<< * * free(input_images) */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = (__pyx_v_tmp_got_point != 0); __pyx_t_1 = __pyx_t_7; __pyx_L16_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; __pyx_L9_continue:; } /* "pyresample/ewa/_fornav.pyx":180 * got_point = got_point or tmp_got_point * * free(input_images) # <<<<<<<<<<<<<< * free(ewap) * */ free(__pyx_v_input_images); /* "pyresample/ewa/_fornav.pyx":181 * * free(input_images) * free(ewap) # <<<<<<<<<<<<<< * * if not got_point: */ free(__pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ __pyx_t_1 = ((!(__pyx_v_got_point != 0)) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 184, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ } /* "pyresample/ewa/_fornav.pyx":186 * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * * for idx in range(chan_count): # <<<<<<<<<<<<<< * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) */ __pyx_t_4 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_4; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":187 * * for idx in range(chan_count): * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, # <<<<<<<<<<<<<< * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) * */ (__pyx_v_valid_list[__pyx_v_idx]) = write_grid_image((__pyx_v_output_arrays[__pyx_v_idx]), __pyx_v_output_fill, __pyx_v_grid_cols, __pyx_v_grid_rows, (__pyx_v_grid_accums[__pyx_v_idx]), (__pyx_v_grid_weights[__pyx_v_idx]), __pyx_v_maximum_weight_mode, __pyx_v_weight_sum_min); } /* "pyresample/ewa/_fornav.pyx":191 * * # free(grid_accums) * deinitialize_weight(&ewaw) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) */ deinitialize_weight((&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":192 * # free(grid_accums) * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_weights) * */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_accums)); /* "pyresample/ewa/_fornav.pyx":193 * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) # <<<<<<<<<<<<<< * * return 0 */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_weights)); /* "pyresample/ewa/_fornav.pyx":195 * deinitialize_grids(chan_count, grid_weights) * * return 0 # <<<<<<<<<<<<<< * * @cython.boundscheck(False) */ __pyx_r = 0; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._fornav.fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_fuse_1_1_1__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *__pyx_v_valid_list, size_t __pyx_v_chan_count, size_t __pyx_v_swath_cols, size_t __pyx_v_swath_rows, size_t __pyx_v_grid_cols, size_t __pyx_v_grid_rows, __pyx_t_5numpy_float64_t *__pyx_v_cols_pointer, __pyx_t_5numpy_float64_t *__pyx_v_rows_pointer, __pyx_t_5numpy_float64_t **__pyx_v_input_arrays, __pyx_t_5numpy_float64_t **__pyx_v_output_arrays, __pyx_t_5numpy_float64_t __pyx_v_input_fill, __pyx_t_5numpy_float64_t __pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, float __pyx_v_weight_min, float __pyx_v_weight_distance_max, float __pyx_v_weight_delta_max, float __pyx_v_weight_sum_min, int __pyx_v_maximum_weight_mode) { unsigned int __pyx_v_row_idx; unsigned int __pyx_v_idx; int __pyx_v_got_point; int __pyx_v_tmp_got_point; int __pyx_v_func_result; __pyx_t_5numpy_float64_t *__pyx_v_tmp_cols_pointer; __pyx_t_5numpy_float64_t *__pyx_v_tmp_rows_pointer; __pyx_t_5numpy_float64_t **__pyx_v_input_images; ewa_weight __pyx_v_ewaw; ewa_parameters *__pyx_v_ewap; accum_type **__pyx_v_grid_accums; weight_type **__pyx_v_grid_weights; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; unsigned int __pyx_t_6; int __pyx_t_7; __Pyx_RefNannySetupContext("__pyx_fuse_1_1_1fornav", 0); /* "pyresample/ewa/_fornav.pyx":118 * cdef unsigned int row_idx * cdef unsigned int idx * cdef bint got_point = 0 # <<<<<<<<<<<<<< * cdef bint tmp_got_point * cdef int func_result */ __pyx_v_got_point = 0; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ __pyx_t_1 = ((__pyx_v_weight_sum_min == -1.0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":129 * # other defaults * if weight_sum_min == -1.0: * weight_sum_min = weight_min # <<<<<<<<<<<<<< * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, */ __pyx_v_weight_sum_min = __pyx_v_weight_min; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ } /* "pyresample/ewa/_fornav.pyx":131 * weight_sum_min = weight_min * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, # <<<<<<<<<<<<<< * weight_sum_min, &ewaw) * if func_result < 0: */ __pyx_v_func_result = initialize_weight(__pyx_v_chan_count, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, (&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 134, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ } /* "pyresample/ewa/_fornav.pyx":138 * # Allocate location for storing the sum of all of the pixels involved in each grid cell * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_accums is NULL: * raise MemoryError() */ __pyx_v_grid_accums = initialize_grid_accums(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ __pyx_t_1 = ((__pyx_v_grid_accums == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":140 * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: */ PyErr_NoMemory(); __PYX_ERR(0, 140, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ } /* "pyresample/ewa/_fornav.pyx":141 * if grid_accums is NULL: * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_weights is NULL: * raise MemoryError() */ __pyx_v_grid_weights = initialize_grid_weights(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ __pyx_t_1 = ((__pyx_v_grid_weights == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":143 * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) */ PyErr_NoMemory(); __PYX_ERR(0, 143, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ } /* "pyresample/ewa/_fornav.pyx":145 * raise MemoryError() * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) # <<<<<<<<<<<<<< * if ewap is NULL: * raise MemoryError() */ __pyx_v_ewap = ((ewa_parameters *)malloc((__pyx_v_swath_cols * (sizeof(ewa_parameters))))); /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ __pyx_t_1 = ((__pyx_v_ewap == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":147 * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) */ PyErr_NoMemory(); __PYX_ERR(0, 147, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ } /* "pyresample/ewa/_fornav.pyx":149 * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) # <<<<<<<<<<<<<< * if input_images is NULL: * raise MemoryError() */ __pyx_v_input_images = ((__pyx_t_5numpy_float64_t **)malloc((__pyx_v_chan_count * (sizeof(__pyx_t_5numpy_float64_t *))))); /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ __pyx_t_1 = ((__pyx_v_input_images == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":151 * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * */ PyErr_NoMemory(); __PYX_ERR(0, 151, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ } /* "pyresample/ewa/_fornav.pyx":155 * * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: # <<<<<<<<<<<<<< * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] */ __pyx_t_3 = __pyx_v_swath_rows; __pyx_t_4 = __pyx_v_rows_per_scan; for (__pyx_v_row_idx = 0; __pyx_v_row_idx < __pyx_t_3; __pyx_v_row_idx+=__pyx_t_4) { /* "pyresample/ewa/_fornav.pyx":156 * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] * # print "Current cols pointer: %d" % (tmp_cols_pointer,) */ __pyx_v_tmp_cols_pointer = (&(__pyx_v_cols_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":157 * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current cols pointer: %d" % (tmp_cols_pointer,) * */ __pyx_v_tmp_rows_pointer = (&(__pyx_v_rows_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":161 * * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): # <<<<<<<<<<<<<< * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] * # print "Current input 0 pointer: %d" % (input_images[idx],) */ __pyx_t_5 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":162 * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current input 0 pointer: %d" % (input_images[idx],) * */ (__pyx_v_input_images[__pyx_v_idx]) = (&((__pyx_v_input_arrays[__pyx_v_idx])[(__pyx_v_row_idx * __pyx_v_swath_cols)])); } /* "pyresample/ewa/_fornav.pyx":166 * * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) # <<<<<<<<<<<<<< * if func_result < 0: * got_point = got_point or 0 */ __pyx_v_func_result = compute_ewa_parameters<__pyx_t_5numpy_float64_t>(__pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":168 * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: * got_point = got_point or 0 # <<<<<<<<<<<<<< * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_1 = 0; __pyx_L14_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; /* "pyresample/ewa/_fornav.pyx":170 * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue # <<<<<<<<<<<<<< * * # NOTE: In the C version this is where the image array data is loaded */ goto __pyx_L9_continue; /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ } /* "pyresample/ewa/_fornav.pyx":173 * * # NOTE: In the C version this is where the image array data is loaded * tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, # <<<<<<<<<<<<<< * swath_cols, rows_per_scan, grid_cols, grid_rows, * tmp_cols_pointer, tmp_rows_pointer, */ __pyx_v_tmp_got_point = compute_ewa<__pyx_t_5numpy_float64_t,__pyx_t_5numpy_float64_t>(__pyx_v_chan_count, __pyx_v_maximum_weight_mode, __pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, __pyx_v_input_images, __pyx_v_input_fill, __pyx_v_grid_accums, __pyx_v_grid_weights, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":178 * input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) * * got_point = got_point or tmp_got_point # <<<<<<<<<<<<<< * * free(input_images) */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = (__pyx_v_tmp_got_point != 0); __pyx_t_1 = __pyx_t_7; __pyx_L16_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; __pyx_L9_continue:; } /* "pyresample/ewa/_fornav.pyx":180 * got_point = got_point or tmp_got_point * * free(input_images) # <<<<<<<<<<<<<< * free(ewap) * */ free(__pyx_v_input_images); /* "pyresample/ewa/_fornav.pyx":181 * * free(input_images) * free(ewap) # <<<<<<<<<<<<<< * * if not got_point: */ free(__pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ __pyx_t_1 = ((!(__pyx_v_got_point != 0)) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 184, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ } /* "pyresample/ewa/_fornav.pyx":186 * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * * for idx in range(chan_count): # <<<<<<<<<<<<<< * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) */ __pyx_t_4 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_4; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":187 * * for idx in range(chan_count): * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, # <<<<<<<<<<<<<< * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) * */ (__pyx_v_valid_list[__pyx_v_idx]) = write_grid_image((__pyx_v_output_arrays[__pyx_v_idx]), __pyx_v_output_fill, __pyx_v_grid_cols, __pyx_v_grid_rows, (__pyx_v_grid_accums[__pyx_v_idx]), (__pyx_v_grid_weights[__pyx_v_idx]), __pyx_v_maximum_weight_mode, __pyx_v_weight_sum_min); } /* "pyresample/ewa/_fornav.pyx":191 * * # free(grid_accums) * deinitialize_weight(&ewaw) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) */ deinitialize_weight((&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":192 * # free(grid_accums) * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_weights) * */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_accums)); /* "pyresample/ewa/_fornav.pyx":193 * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) # <<<<<<<<<<<<<< * * return 0 */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_weights)); /* "pyresample/ewa/_fornav.pyx":195 * deinitialize_grids(chan_count, grid_weights) * * return 0 # <<<<<<<<<<<<<< * * @cython.boundscheck(False) */ __pyx_r = 0; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._fornav.fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_fuse_1_2_2__pyx_f_10pyresample_3ewa_7_fornav_fornav(unsigned int *__pyx_v_valid_list, size_t __pyx_v_chan_count, size_t __pyx_v_swath_cols, size_t __pyx_v_swath_rows, size_t __pyx_v_grid_cols, size_t __pyx_v_grid_rows, __pyx_t_5numpy_float64_t *__pyx_v_cols_pointer, __pyx_t_5numpy_float64_t *__pyx_v_rows_pointer, __pyx_t_5numpy_int8_t **__pyx_v_input_arrays, __pyx_t_5numpy_int8_t **__pyx_v_output_arrays, __pyx_t_5numpy_int8_t __pyx_v_input_fill, __pyx_t_5numpy_int8_t __pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, float __pyx_v_weight_min, float __pyx_v_weight_distance_max, float __pyx_v_weight_delta_max, float __pyx_v_weight_sum_min, int __pyx_v_maximum_weight_mode) { unsigned int __pyx_v_row_idx; unsigned int __pyx_v_idx; int __pyx_v_got_point; int __pyx_v_tmp_got_point; int __pyx_v_func_result; __pyx_t_5numpy_float64_t *__pyx_v_tmp_cols_pointer; __pyx_t_5numpy_float64_t *__pyx_v_tmp_rows_pointer; __pyx_t_5numpy_int8_t **__pyx_v_input_images; ewa_weight __pyx_v_ewaw; ewa_parameters *__pyx_v_ewap; accum_type **__pyx_v_grid_accums; weight_type **__pyx_v_grid_weights; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; unsigned int __pyx_t_6; int __pyx_t_7; __Pyx_RefNannySetupContext("__pyx_fuse_1_2_2fornav", 0); /* "pyresample/ewa/_fornav.pyx":118 * cdef unsigned int row_idx * cdef unsigned int idx * cdef bint got_point = 0 # <<<<<<<<<<<<<< * cdef bint tmp_got_point * cdef int func_result */ __pyx_v_got_point = 0; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ __pyx_t_1 = ((__pyx_v_weight_sum_min == -1.0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":129 * # other defaults * if weight_sum_min == -1.0: * weight_sum_min = weight_min # <<<<<<<<<<<<<< * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, */ __pyx_v_weight_sum_min = __pyx_v_weight_min; /* "pyresample/ewa/_fornav.pyx":128 * * # other defaults * if weight_sum_min == -1.0: # <<<<<<<<<<<<<< * weight_sum_min = weight_min * */ } /* "pyresample/ewa/_fornav.pyx":131 * weight_sum_min = weight_min * * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, # <<<<<<<<<<<<<< * weight_sum_min, &ewaw) * if func_result < 0: */ __pyx_v_func_result = initialize_weight(__pyx_v_chan_count, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, (&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 134, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":133 * func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, * weight_sum_min, &ewaw) * if func_result < 0: # <<<<<<<<<<<<<< * raise RuntimeError("Could not initialize weight structure for EWA resampling") * */ } /* "pyresample/ewa/_fornav.pyx":138 * # Allocate location for storing the sum of all of the pixels involved in each grid cell * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_accums is NULL: * raise MemoryError() */ __pyx_v_grid_accums = initialize_grid_accums(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ __pyx_t_1 = ((__pyx_v_grid_accums == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":140 * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: */ PyErr_NoMemory(); __PYX_ERR(0, 140, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":139 * # XXX: Do these need to be initialized to a fill value? * cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) * if grid_accums is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) */ } /* "pyresample/ewa/_fornav.pyx":141 * if grid_accums is NULL: * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) # <<<<<<<<<<<<<< * if grid_weights is NULL: * raise MemoryError() */ __pyx_v_grid_weights = initialize_grid_weights(__pyx_v_chan_count, __pyx_v_grid_cols, __pyx_v_grid_rows); /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ __pyx_t_1 = ((__pyx_v_grid_weights == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":143 * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) */ PyErr_NoMemory(); __PYX_ERR(0, 143, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":142 * raise MemoryError() * cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) * if grid_weights is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate memory for the parameters specific to each column */ } /* "pyresample/ewa/_fornav.pyx":145 * raise MemoryError() * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) # <<<<<<<<<<<<<< * if ewap is NULL: * raise MemoryError() */ __pyx_v_ewap = ((ewa_parameters *)malloc((__pyx_v_swath_cols * (sizeof(ewa_parameters))))); /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ __pyx_t_1 = ((__pyx_v_ewap == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":147 * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) */ PyErr_NoMemory(); __PYX_ERR(0, 147, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":146 * # Allocate memory for the parameters specific to each column * ewap = malloc(swath_cols * sizeof(ewa_parameters)) * if ewap is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use */ } /* "pyresample/ewa/_fornav.pyx":149 * raise MemoryError() * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) # <<<<<<<<<<<<<< * if input_images is NULL: * raise MemoryError() */ __pyx_v_input_images = ((__pyx_t_5numpy_int8_t **)malloc((__pyx_v_chan_count * (sizeof(__pyx_t_5numpy_int8_t *))))); /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ __pyx_t_1 = ((__pyx_v_input_images == NULL) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":151 * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * */ PyErr_NoMemory(); __PYX_ERR(0, 151, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":150 * # Allocate pointers to the correct portion of the data arrays that we will use * input_images = malloc(chan_count * sizeof(image_dtype *)) * if input_images is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * */ } /* "pyresample/ewa/_fornav.pyx":155 * * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: # <<<<<<<<<<<<<< * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] */ __pyx_t_3 = __pyx_v_swath_rows; __pyx_t_4 = __pyx_v_rows_per_scan; for (__pyx_v_row_idx = 0; __pyx_v_row_idx < __pyx_t_3; __pyx_v_row_idx+=__pyx_t_4) { /* "pyresample/ewa/_fornav.pyx":156 * # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] * # print "Current cols pointer: %d" % (tmp_cols_pointer,) */ __pyx_v_tmp_cols_pointer = (&(__pyx_v_cols_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":157 * for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: * tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] * tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current cols pointer: %d" % (tmp_cols_pointer,) * */ __pyx_v_tmp_rows_pointer = (&(__pyx_v_rows_pointer[(__pyx_v_row_idx * __pyx_v_swath_cols)])); /* "pyresample/ewa/_fornav.pyx":161 * * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): # <<<<<<<<<<<<<< * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] * # print "Current input 0 pointer: %d" % (input_images[idx],) */ __pyx_t_5 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":162 * # Assign the python/numpy array objects to a pointer location for the rest of the functions * for idx in range(chan_count): * input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # <<<<<<<<<<<<<< * # print "Current input 0 pointer: %d" % (input_images[idx],) * */ (__pyx_v_input_images[__pyx_v_idx]) = (&((__pyx_v_input_arrays[__pyx_v_idx])[(__pyx_v_row_idx * __pyx_v_swath_cols)])); } /* "pyresample/ewa/_fornav.pyx":166 * * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) # <<<<<<<<<<<<<< * if func_result < 0: * got_point = got_point or 0 */ __pyx_v_func_result = compute_ewa_parameters<__pyx_t_5numpy_float64_t>(__pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ __pyx_t_1 = ((__pyx_v_func_result < 0) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":168 * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: * got_point = got_point or 0 # <<<<<<<<<<<<<< * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_1 = 0; __pyx_L14_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; /* "pyresample/ewa/_fornav.pyx":170 * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") * continue # <<<<<<<<<<<<<< * * # NOTE: In the C version this is where the image array data is loaded */ goto __pyx_L9_continue; /* "pyresample/ewa/_fornav.pyx":167 * # Calculate EWA parameters for each column index * func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) * if func_result < 0: # <<<<<<<<<<<<<< * got_point = got_point or 0 * # raise RuntimeError("Could compute EWA parameters for EWA resampling") */ } /* "pyresample/ewa/_fornav.pyx":173 * * # NOTE: In the C version this is where the image array data is loaded * tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, # <<<<<<<<<<<<<< * swath_cols, rows_per_scan, grid_cols, grid_rows, * tmp_cols_pointer, tmp_rows_pointer, */ __pyx_v_tmp_got_point = compute_ewa<__pyx_t_5numpy_float64_t,__pyx_t_5numpy_int8_t>(__pyx_v_chan_count, __pyx_v_maximum_weight_mode, __pyx_v_swath_cols, __pyx_v_rows_per_scan, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_tmp_cols_pointer, __pyx_v_tmp_rows_pointer, __pyx_v_input_images, __pyx_v_input_fill, __pyx_v_grid_accums, __pyx_v_grid_weights, (&__pyx_v_ewaw), __pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":178 * input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) * * got_point = got_point or tmp_got_point # <<<<<<<<<<<<<< * * free(input_images) */ __pyx_t_7 = (__pyx_v_got_point != 0); if (!__pyx_t_7) { } else { __pyx_t_1 = __pyx_t_7; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = (__pyx_v_tmp_got_point != 0); __pyx_t_1 = __pyx_t_7; __pyx_L16_bool_binop_done:; __pyx_v_got_point = __pyx_t_1; __pyx_L9_continue:; } /* "pyresample/ewa/_fornav.pyx":180 * got_point = got_point or tmp_got_point * * free(input_images) # <<<<<<<<<<<<<< * free(ewap) * */ free(__pyx_v_input_images); /* "pyresample/ewa/_fornav.pyx":181 * * free(input_images) * free(ewap) # <<<<<<<<<<<<<< * * if not got_point: */ free(__pyx_v_ewap); /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ __pyx_t_1 = ((!(__pyx_v_got_point != 0)) != 0); if (__pyx_t_1) { /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 184, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":183 * free(ewap) * * if not got_point: # <<<<<<<<<<<<<< * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * */ } /* "pyresample/ewa/_fornav.pyx":186 * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") * * for idx in range(chan_count): # <<<<<<<<<<<<<< * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) */ __pyx_t_4 = __pyx_v_chan_count; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_4; __pyx_t_6+=1) { __pyx_v_idx = __pyx_t_6; /* "pyresample/ewa/_fornav.pyx":187 * * for idx in range(chan_count): * valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, # <<<<<<<<<<<<<< * grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) * */ (__pyx_v_valid_list[__pyx_v_idx]) = write_grid_image((__pyx_v_output_arrays[__pyx_v_idx]), __pyx_v_output_fill, __pyx_v_grid_cols, __pyx_v_grid_rows, (__pyx_v_grid_accums[__pyx_v_idx]), (__pyx_v_grid_weights[__pyx_v_idx]), __pyx_v_maximum_weight_mode, __pyx_v_weight_sum_min); } /* "pyresample/ewa/_fornav.pyx":191 * * # free(grid_accums) * deinitialize_weight(&ewaw) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) */ deinitialize_weight((&__pyx_v_ewaw)); /* "pyresample/ewa/_fornav.pyx":192 * # free(grid_accums) * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) # <<<<<<<<<<<<<< * deinitialize_grids(chan_count, grid_weights) * */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_accums)); /* "pyresample/ewa/_fornav.pyx":193 * deinitialize_weight(&ewaw) * deinitialize_grids(chan_count, grid_accums) * deinitialize_grids(chan_count, grid_weights) # <<<<<<<<<<<<<< * * return 0 */ deinitialize_grids(__pyx_v_chan_count, ((void **)__pyx_v_grid_weights)); /* "pyresample/ewa/_fornav.pyx":195 * deinitialize_grids(chan_count, grid_weights) * * return 0 # <<<<<<<<<<<<<< * * @cython.boundscheck(False) */ __pyx_r = 0; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":110 * @cython.boundscheck(False) * @cython.wraparound(False) * cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, # <<<<<<<<<<<<<< * cr_dtype *cols_pointer, cr_dtype *rows_pointer, * image_dtype **input_arrays, grid_dtype **output_arrays, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._fornav.fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ /* Python wrapper */ static PyObject *__pyx_pw_10pyresample_3ewa_7_fornav_1fornav_wrapper(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_10pyresample_3ewa_7_fornav_fornav_wrapper[] = "Python wrapper around the C interface to fornav.\n\n The main difficulty is that the C code can operate on multiple input\n arrays, but the python->C cython interface doesn't automatically know\n the data type of the numpy arrays inside a tuple. This function casts\n the array pointers to the corresponding C type and then calls the\n templated cython and C++ functions.\n\n This algorithm works under the assumption that the data is observed\n one scan line at a time. However, good results can still be achieved\n for non-scan based data is provided if `rows_per_scan` is set to the\n number of rows in the entire swath.\n\n :param cols_array: numpy array of grid column coordinates for each input swath pixel\n :param rows_array: numpy array of grid row coordinates for each input swath pixel\n :param input_arrays: tuple of numpy arrays with the same geolocation and same dtype\n :param output_arrays: tuple of empty numpy arrays to be filled with gridded data (must be writeable)\n :param input_fill: fill value in input data arrays representing invalid/bad values\n :param output_fill: fill value written to output data arrays representing invalid/bad or out of swath values\n :param rows_per_scan: number of input swath rows making up one scan line or all of the rows in the swath\n :param weight_count: number of elements to create in the gaussian weight\n table. Default is 10000. Must be at least 2\n :param weight_min: the minimum value to store in the last position of the\n weight table. Default is 0.01, which, with a\n `weight_distance_max` of 1.0 produces a weight of 0.01\n at a grid cell distance of 1.0. Must be greater than 0.\n :param weight_distance_max: distance in grid cell units at which to\n apply a weight of `weight_min`. Default is\n 1.0. Must be greater than ""0.\n :param weight_delta_max: maximum distance in grid cells in each grid\n dimension over which to distribute a single swath cell.\n Default is 10.0.\n :param weight_sum_min: minimum weight sum value. Cells whose weight sums\n are less than `weight_sum_min` are set to the grid fill value.\n Default is EPSILON.\n :param maximum_weight_mode: If -m is not present, a weighted average of\n all swath cells that map to a particular grid cell is used.\n If -m is present, the swath cell having the maximum weight of all\n swath cells that map to a particular grid cell is used. The -m\n option should be used for coded data, i.e. snow cover.\n :return: tuple of valid grid points written for each output array\n "; static PyMethodDef __pyx_mdef_10pyresample_3ewa_7_fornav_1fornav_wrapper = {"fornav_wrapper", (PyCFunction)__pyx_pw_10pyresample_3ewa_7_fornav_1fornav_wrapper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_7_fornav_fornav_wrapper}; static PyObject *__pyx_pw_10pyresample_3ewa_7_fornav_1fornav_wrapper(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 199, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 199, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 199, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 199, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 199, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_10pyresample_3ewa_7_fornav_fornav_wrapper(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_fornav_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; PyTypeObject *__pyx_v_ndarray = 0; PyObject *__pyx_v_numpy = NULL; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_type = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; long __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; Py_ssize_t __pyx_t_14; PyObject *(*__pyx_t_15)(PyObject *); PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *(*__pyx_t_19)(PyObject *); int __pyx_t_20; __Pyx_RefNannySetupContext("fornav_wrapper", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_v_kwargs == Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_kwargs, __pyx_t_1); __pyx_t_1 = 0; } { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_numpy = __pyx_t_1; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_numpy, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 199, __pyx_L4_error) __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L11_try_end; __pyx_L4_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_7) { __Pyx_AddTraceback("pyresample.ewa._fornav.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 199, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_ndarray, ((PyTypeObject*)Py_None)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; __pyx_L6_except_error:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); __pyx_L11_try_end:; } __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_10 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_3 = ((0 < __pyx_t_10) != 0); if (__pyx_t_3) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_9 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0); __Pyx_INCREF(__pyx_t_9); __pyx_v_arg = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L14; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_cols_array, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_cols_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_arg = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L14; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_10 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_arguments, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_L14:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_dtype = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L18; } __pyx_t_2 = (__pyx_memoryview_check(__pyx_v_arg) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_arg_base = __pyx_t_8; __pyx_t_8 = 0; __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_dtype = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L19; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L19:; goto __pyx_L18; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L18:; __pyx_v_itemsize = -1L; __pyx_t_3 = (__pyx_v_dtype != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_itemsize = __pyx_t_10; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_Ord(__pyx_t_8); if (unlikely(__pyx_t_11 == (long)(Py_UCS4)-1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_kind = __pyx_t_11; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L22_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = ((((Py_ssize_t)__pyx_t_10) == 2) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L22_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 199, __pyx_L1_error) goto __pyx_L16_break; } __pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L25_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = ((((Py_ssize_t)__pyx_t_10) == 2) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L25_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 199, __pyx_L1_error) goto __pyx_L16_break; } break; case 'c': break; case 'O': break; default: break; } } } __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L28_bool_binop_done; } __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L28_bool_binop_done:; if (__pyx_t_2) { __pyx_v_memslice = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg); __pyx_t_2 = (__pyx_v_memslice.memview != 0); if (__pyx_t_2) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 199, __pyx_L1_error) goto __pyx_L16_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L32_bool_binop_done; } __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L32_bool_binop_done:; if (__pyx_t_2) { __pyx_v_memslice = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg); __pyx_t_2 = (__pyx_v_memslice.memview != 0); if (__pyx_t_2) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 199, __pyx_L1_error) goto __pyx_L16_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 199, __pyx_L1_error) goto __pyx_L16_break; } __pyx_L16_break:; __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_candidates = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_9 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_12), (&__pyx_t_7)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = __pyx_t_9; __pyx_t_9 = 0; while (1) { __pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_12, &__pyx_t_10, &__pyx_t_9, NULL, NULL, __pyx_t_7); if (unlikely(__pyx_t_13 == 0)) break; if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_match_found = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_dest_sig); __Pyx_GIVEREF(__pyx_v_dest_sig); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_dest_sig); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { __pyx_t_14 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_15 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 199, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_15(__pyx_t_9); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 199, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 199, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_16 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_16 = PyList_GET_ITEM(sequence, 0); __pyx_t_17 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(__pyx_t_17); #else __pyx_t_16 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_19 = Py_TYPE(__pyx_t_18)->tp_iternext; index = 0; __pyx_t_16 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_16)) goto __pyx_L39_unpacking_failed; __Pyx_GOTREF(__pyx_t_16); index = 1; __pyx_t_17 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L39_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_18), 2) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_19 = NULL; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; goto __pyx_L40_unpacking_done; __pyx_L39_unpacking_failed:; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_19 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 199, __pyx_L1_error) __pyx_L40_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_src_type, __pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_17); __pyx_t_17 = 0; __pyx_t_2 = (__pyx_v_dst_type != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_1 = PyObject_RichCompare(__pyx_v_src_type, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { __pyx_v_match_found = 1; goto __pyx_L42; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L38_break; } __pyx_L42:; } } __pyx_L38_break:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = (__pyx_v_match_found != 0); if (__pyx_t_3) { __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 199, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = (__pyx_v_candidates != Py_None) && (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_2 = ((!__pyx_t_3) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_12 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_12 > 1) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 199, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_18); __Pyx_AddTraceback("pyresample.ewa._fornav.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_numpy); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_type); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_12__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_weight_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_weight_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_weight_distance_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_weight_delta_max); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_weight_sum_min); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __Pyx_INCREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_maximum_weight_mode)); __Pyx_GIVEREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_maximum_weight_mode)); PyTuple_SET_ITEM(__pyx_t_6, 5, ((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_maximum_weight_mode)); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_5, 1, Py_None); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyresample.ewa._fornav.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_0__pyx_pw_10pyresample_3ewa_7_fornav_3fornav_wrapper(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_10pyresample_3ewa_7_fornav_3fornav_wrapper = {"__pyx_fuse_0fornav_wrapper", (PyCFunction)__pyx_fuse_0__pyx_pw_10pyresample_3ewa_7_fornav_3fornav_wrapper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_7_fornav_fornav_wrapper}; static PyObject *__pyx_fuse_0__pyx_pw_10pyresample_3ewa_7_fornav_3fornav_wrapper(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_cols_array = 0; PyArrayObject *__pyx_v_rows_array = 0; PyObject *__pyx_v_input_arrays = 0; PyObject *__pyx_v_output_arrays = 0; PyObject *__pyx_v_input_fill = 0; PyObject *__pyx_v_output_fill = 0; size_t __pyx_v_rows_per_scan; unsigned int __pyx_v_weight_count; weight_type __pyx_v_weight_min; weight_type __pyx_v_weight_distance_max; weight_type __pyx_v_weight_delta_max; weight_type __pyx_v_weight_sum_min; PyBoolObject *__pyx_v_maximum_weight_mode = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fornav_wrapper (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cols_array,&__pyx_n_s_rows_array,&__pyx_n_s_input_arrays,&__pyx_n_s_output_arrays,&__pyx_n_s_input_fill,&__pyx_n_s_output_fill,&__pyx_n_s_rows_per_scan,&__pyx_n_s_weight_count,&__pyx_n_s_weight_min,&__pyx_n_s_weight_distance_max,&__pyx_n_s_weight_delta_max,&__pyx_n_s_weight_sum_min,&__pyx_n_s_maximum_weight_mode,0}; PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0}; __pyx_defaults2 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self); values[12] = (PyObject *)__pyx_dynamic_args->__pyx_arg_maximum_weight_mode; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cols_array)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_rows_array)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 1); __PYX_ERR(0, 199, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_input_arrays)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 2); __PYX_ERR(0, 199, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_output_arrays)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 3); __PYX_ERR(0, 199, __pyx_L3_error) } case 4: if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_input_fill)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 4); __PYX_ERR(0, 199, __pyx_L3_error) } case 5: if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_output_fill)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 5); __PYX_ERR(0, 199, __pyx_L3_error) } case 6: if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_rows_per_scan)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 6); __PYX_ERR(0, 199, __pyx_L3_error) } case 7: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_count); if (value) { values[7] = value; kw_args--; } } case 8: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_min); if (value) { values[8] = value; kw_args--; } } case 9: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_distance_max); if (value) { values[9] = value; kw_args--; } } case 10: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_delta_max); if (value) { values[10] = value; kw_args--; } } case 11: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_sum_min); if (value) { values[11] = value; kw_args--; } } case 12: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_maximum_weight_mode); if (value) { values[12] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fornav_wrapper") < 0)) __PYX_ERR(0, 199, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_cols_array = ((PyArrayObject *)values[0]); __pyx_v_rows_array = ((PyArrayObject *)values[1]); __pyx_v_input_arrays = ((PyObject*)values[2]); __pyx_v_output_arrays = ((PyObject*)values[3]); __pyx_v_input_fill = values[4]; __pyx_v_output_fill = values[5]; __pyx_v_rows_per_scan = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_rows_per_scan == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L3_error) if (values[7]) { __pyx_v_weight_count = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_weight_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_count = __pyx_dynamic_args->__pyx_arg_weight_count; } if (values[8]) { __pyx_v_weight_min = __pyx_PyFloat_AsFloat(values[8]); if (unlikely((__pyx_v_weight_min == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_min = __pyx_dynamic_args->__pyx_arg_weight_min; } if (values[9]) { __pyx_v_weight_distance_max = __pyx_PyFloat_AsFloat(values[9]); if (unlikely((__pyx_v_weight_distance_max == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_distance_max = __pyx_dynamic_args->__pyx_arg_weight_distance_max; } if (values[10]) { __pyx_v_weight_delta_max = __pyx_PyFloat_AsFloat(values[10]); if (unlikely((__pyx_v_weight_delta_max == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_delta_max = __pyx_dynamic_args->__pyx_arg_weight_delta_max; } if (values[11]) { __pyx_v_weight_sum_min = __pyx_PyFloat_AsFloat(values[11]); if (unlikely((__pyx_v_weight_sum_min == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_sum_min = __pyx_dynamic_args->__pyx_arg_weight_sum_min; } __pyx_v_maximum_weight_mode = ((PyBoolObject *)values[12]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 199, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cols_array), __pyx_ptype_5numpy_ndarray, 1, "cols_array", 0))) __PYX_ERR(0, 199, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rows_array), __pyx_ptype_5numpy_ndarray, 1, "rows_array", 0))) __PYX_ERR(0, 200, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_input_arrays), (&PyTuple_Type), 1, "input_arrays", 1))) __PYX_ERR(0, 201, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output_arrays), (&PyTuple_Type), 1, "output_arrays", 1))) __PYX_ERR(0, 201, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_maximum_weight_mode), __pyx_ptype_7cpython_4bool_bool, 1, "maximum_weight_mode", 0))) __PYX_ERR(0, 204, __pyx_L1_error) __pyx_r = __pyx_pf_10pyresample_3ewa_7_fornav_2fornav_wrapper(__pyx_self, __pyx_v_cols_array, __pyx_v_rows_array, __pyx_v_input_arrays, __pyx_v_output_arrays, __pyx_v_input_fill, __pyx_v_output_fill, __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_v_maximum_weight_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_2generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_genexpr(PyObject *__pyx_self) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *)__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr(__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *) __pyx_self; __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_2generator, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_pyx_fuse_0fornav_wrapper_local); if (unlikely(!gen)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_2generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 265, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_input_arrays)) { __Pyx_RaiseClosureNameError("input_arrays"); __PYX_ERR(0, 265, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 265, __pyx_L1_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_input_arrays; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_input_array); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_input_array, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_input_array, __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_in_type)) { __Pyx_RaiseClosureNameError("in_type"); __PYX_ERR(0, 265, __pyx_L1_error) } __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_in_type), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } } /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_5generator1(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_3genexpr(PyObject *__pyx_self) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *)__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr(__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *) __pyx_self; __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_5generator1, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_pyx_fuse_0fornav_wrapper_local); if (unlikely(!gen)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_5generator1(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *__pyx_cur_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 267, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_output_arrays)) { __Pyx_RaiseClosureNameError("output_arrays"); __PYX_ERR(0, 267, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 267, __pyx_L1_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_output_arrays; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 267, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_output_array); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_output_array, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_output_array, __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_out_type)) { __Pyx_RaiseClosureNameError("out_type"); __PYX_ERR(0, 267, __pyx_L1_error) } __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_out_type), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } } /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_2fornav_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_cols_array, PyArrayObject *__pyx_v_rows_array, PyObject *__pyx_v_input_arrays, PyObject *__pyx_v_output_arrays, PyObject *__pyx_v_input_fill, PyObject *__pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, weight_type __pyx_v_weight_min, weight_type __pyx_v_weight_distance_max, weight_type __pyx_v_weight_delta_max, weight_type __pyx_v_weight_sum_min, PyBoolObject *__pyx_v_maximum_weight_mode) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *__pyx_cur_scope; size_t __pyx_v_num_items; size_t __pyx_v_num_outputs; size_t __pyx_v_swath_cols; size_t __pyx_v_swath_rows; size_t __pyx_v_grid_cols; size_t __pyx_v_grid_rows; unsigned int __pyx_v_i; void **__pyx_v_input_pointer; void **__pyx_v_output_pointer; unsigned int *__pyx_v_valid_arr; PyObject *__pyx_v_valid_list = NULL; PyArrayObject *__pyx_v_tmp_arr_f32 = 0; PyArrayObject *__pyx_v_tmp_arr_f64 = 0; PyArrayObject *__pyx_v_tmp_arr_i8 = 0; __pyx_t_5numpy_float32_t *__pyx_v_cols_pointer; __pyx_t_5numpy_float32_t *__pyx_v_rows_pointer; CYTHON_UNUSED int __pyx_v_func_result; __Pyx_LocalBuf_ND __pyx_pybuffernd_cols_array; __Pyx_Buffer __pyx_pybuffer_cols_array; __Pyx_LocalBuf_ND __pyx_pybuffernd_rows_array; __Pyx_Buffer __pyx_pybuffer_rows_array; __Pyx_LocalBuf_ND __pyx_pybuffernd_tmp_arr_f32; __Pyx_Buffer __pyx_pybuffer_tmp_arr_f32; __Pyx_LocalBuf_ND __pyx_pybuffernd_tmp_arr_f64; __Pyx_Buffer __pyx_pybuffer_tmp_arr_f64; __Pyx_LocalBuf_ND __pyx_pybuffernd_tmp_arr_i8; __Pyx_Buffer __pyx_pybuffer_tmp_arr_i8; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; Py_ssize_t __pyx_t_9; Py_ssize_t __pyx_t_10; unsigned int __pyx_t_11; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; Py_ssize_t __pyx_t_18; Py_ssize_t __pyx_t_19; __pyx_t_5numpy_float32_t __pyx_t_20; __pyx_t_5numpy_float32_t __pyx_t_21; Py_ssize_t __pyx_t_22; Py_ssize_t __pyx_t_23; Py_ssize_t __pyx_t_24; Py_ssize_t __pyx_t_25; __pyx_t_5numpy_float64_t __pyx_t_26; __pyx_t_5numpy_float64_t __pyx_t_27; Py_ssize_t __pyx_t_28; Py_ssize_t __pyx_t_29; Py_ssize_t __pyx_t_30; Py_ssize_t __pyx_t_31; __pyx_t_5numpy_int8_t __pyx_t_32; __pyx_t_5numpy_int8_t __pyx_t_33; int __pyx_t_34; __Pyx_RefNannySetupContext("__pyx_fuse_0fornav_wrapper", 0); __pyx_cur_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper(__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_input_arrays = __pyx_v_input_arrays; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_input_arrays); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_input_arrays); __pyx_cur_scope->__pyx_v_output_arrays = __pyx_v_output_arrays; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_output_arrays); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_output_arrays); __pyx_pybuffer_tmp_arr_f32.pybuffer.buf = NULL; __pyx_pybuffer_tmp_arr_f32.refcount = 0; __pyx_pybuffernd_tmp_arr_f32.data = NULL; __pyx_pybuffernd_tmp_arr_f32.rcbuffer = &__pyx_pybuffer_tmp_arr_f32; __pyx_pybuffer_tmp_arr_f64.pybuffer.buf = NULL; __pyx_pybuffer_tmp_arr_f64.refcount = 0; __pyx_pybuffernd_tmp_arr_f64.data = NULL; __pyx_pybuffernd_tmp_arr_f64.rcbuffer = &__pyx_pybuffer_tmp_arr_f64; __pyx_pybuffer_tmp_arr_i8.pybuffer.buf = NULL; __pyx_pybuffer_tmp_arr_i8.refcount = 0; __pyx_pybuffernd_tmp_arr_i8.data = NULL; __pyx_pybuffernd_tmp_arr_i8.rcbuffer = &__pyx_pybuffer_tmp_arr_i8; __pyx_pybuffer_cols_array.pybuffer.buf = NULL; __pyx_pybuffer_cols_array.refcount = 0; __pyx_pybuffernd_cols_array.data = NULL; __pyx_pybuffernd_cols_array.rcbuffer = &__pyx_pybuffer_cols_array; __pyx_pybuffer_rows_array.pybuffer.buf = NULL; __pyx_pybuffer_rows_array.refcount = 0; __pyx_pybuffernd_rows_array.data = NULL; __pyx_pybuffernd_rows_array.rcbuffer = &__pyx_pybuffer_rows_array; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cols_array.rcbuffer->pybuffer, (PyObject*)__pyx_v_cols_array, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_pybuffernd_cols_array.diminfo[0].strides = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cols_array.diminfo[0].shape = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cols_array.diminfo[1].strides = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cols_array.diminfo[1].shape = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.shape[1]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rows_array.rcbuffer->pybuffer, (PyObject*)__pyx_v_rows_array, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_pybuffernd_rows_array.diminfo[0].strides = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rows_array.diminfo[0].shape = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_rows_array.diminfo[1].strides = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_rows_array.diminfo[1].shape = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.shape[1]; /* "pyresample/ewa/_fornav.pyx":247 * :return: tuple of valid grid points written for each output array * """ * cdef size_t num_items = len(input_arrays) # <<<<<<<<<<<<<< * cdef size_t num_outputs = len(output_arrays) * cdef size_t swath_cols = cols_array.shape[1] */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_input_arrays; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 247, __pyx_L1_error) } __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_num_items = __pyx_t_2; /* "pyresample/ewa/_fornav.pyx":248 * """ * cdef size_t num_items = len(input_arrays) * cdef size_t num_outputs = len(output_arrays) # <<<<<<<<<<<<<< * cdef size_t swath_cols = cols_array.shape[1] * cdef size_t swath_rows = cols_array.shape[0] */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_output_arrays; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 248, __pyx_L1_error) } __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_num_outputs = __pyx_t_2; /* "pyresample/ewa/_fornav.pyx":249 * cdef size_t num_items = len(input_arrays) * cdef size_t num_outputs = len(output_arrays) * cdef size_t swath_cols = cols_array.shape[1] # <<<<<<<<<<<<<< * cdef size_t swath_rows = cols_array.shape[0] * cdef size_t grid_cols = output_arrays[0].shape[1] */ __pyx_v_swath_cols = (__pyx_v_cols_array->dimensions[1]); /* "pyresample/ewa/_fornav.pyx":250 * cdef size_t num_outputs = len(output_arrays) * cdef size_t swath_cols = cols_array.shape[1] * cdef size_t swath_rows = cols_array.shape[0] # <<<<<<<<<<<<<< * cdef size_t grid_cols = output_arrays[0].shape[1] * cdef size_t grid_rows = output_arrays[0].shape[0] */ __pyx_v_swath_rows = (__pyx_v_cols_array->dimensions[0]); /* "pyresample/ewa/_fornav.pyx":251 * cdef size_t swath_cols = cols_array.shape[1] * cdef size_t swath_rows = cols_array.shape[0] * cdef size_t grid_cols = output_arrays[0].shape[1] # <<<<<<<<<<<<<< * cdef size_t grid_rows = output_arrays[0].shape[0] * cdef unsigned int i */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 251, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, 0), __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_grid_cols = __pyx_t_4; /* "pyresample/ewa/_fornav.pyx":252 * cdef size_t swath_rows = cols_array.shape[0] * cdef size_t grid_cols = output_arrays[0].shape[1] * cdef size_t grid_rows = output_arrays[0].shape[0] # <<<<<<<<<<<<<< * cdef unsigned int i * if num_items != num_outputs: */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 252, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, 0), __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_grid_rows = __pyx_t_4; /* "pyresample/ewa/_fornav.pyx":254 * cdef size_t grid_rows = output_arrays[0].shape[0] * cdef unsigned int i * if num_items != num_outputs: # <<<<<<<<<<<<<< * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: */ __pyx_t_5 = ((__pyx_v_num_items != __pyx_v_num_outputs) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":255 * cdef unsigned int i * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") # <<<<<<<<<<<<<< * if num_items <= 0: * raise ValueError("No input arrays given") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 255, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":254 * cdef size_t grid_rows = output_arrays[0].shape[0] * cdef unsigned int i * if num_items != num_outputs: # <<<<<<<<<<<<<< * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: */ } /* "pyresample/ewa/_fornav.pyx":256 * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: # <<<<<<<<<<<<<< * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: */ __pyx_t_5 = ((__pyx_v_num_items <= 0) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":257 * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: * raise ValueError("No input arrays given") # <<<<<<<<<<<<<< * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 257, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":256 * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: # <<<<<<<<<<<<<< * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: */ } /* "pyresample/ewa/_fornav.pyx":258 * if num_items <= 0: * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: # <<<<<<<<<<<<<< * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") * */ __pyx_t_6 = ((__pyx_v_rows_per_scan < 2) != 0); if (!__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L6_bool_binop_done; } if (unlikely(__pyx_v_rows_per_scan == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(0, 258, __pyx_L1_error) } __pyx_t_6 = (((__pyx_v_swath_rows % __pyx_v_rows_per_scan) != 0) != 0); __pyx_t_5 = __pyx_t_6; __pyx_L6_bool_binop_done:; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":259 * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") # <<<<<<<<<<<<<< * * cdef numpy.dtype in_type = input_arrays[0].dtype */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 259, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":258 * if num_items <= 0: * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: # <<<<<<<<<<<<<< * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") * */ } /* "pyresample/ewa/_fornav.pyx":261 * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") * * cdef numpy.dtype in_type = input_arrays[0].dtype # <<<<<<<<<<<<<< * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 261, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, 0), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_in_type = ((PyArray_Descr *)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":262 * * cdef numpy.dtype in_type = input_arrays[0].dtype * cdef numpy.dtype out_type = output_arrays[0].dtype # <<<<<<<<<<<<<< * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, 0), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_out_type = ((PyArray_Descr *)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":263 * cdef numpy.dtype in_type = input_arrays[0].dtype * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: # <<<<<<<<<<<<<< * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): */ __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), ((PyObject *)__pyx_cur_scope->__pyx_v_out_type), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":264 * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") # <<<<<<<<<<<<<< * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 264, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":263 * cdef numpy.dtype in_type = input_arrays[0].dtype * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: # <<<<<<<<<<<<<< * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): */ } /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ __pyx_t_1 = __pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { /* "pyresample/ewa/_fornav.pyx":266 * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 266, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ } /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ __pyx_t_3 = __pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = ((!__pyx_t_6) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":268 * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 268, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ } /* "pyresample/ewa/_fornav.pyx":270 * raise ValueError("Input arrays must all be of the same data type") * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) # <<<<<<<<<<<<<< * if not input_pointer: * raise MemoryError() */ __pyx_v_input_pointer = ((void **)malloc((__pyx_v_num_items * (sizeof(void *))))); /* "pyresample/ewa/_fornav.pyx":271 * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) * if not input_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) */ __pyx_t_5 = ((!(__pyx_v_input_pointer != 0)) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":272 * cdef void **input_pointer = malloc(num_items * sizeof(void *)) * if not input_pointer: * raise MemoryError() # <<<<<<<<<<<<<< * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: */ PyErr_NoMemory(); __PYX_ERR(0, 272, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":271 * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) * if not input_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) */ } /* "pyresample/ewa/_fornav.pyx":273 * if not input_pointer: * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) # <<<<<<<<<<<<<< * if not output_pointer: * raise MemoryError() */ __pyx_v_output_pointer = ((void **)malloc((__pyx_v_num_items * (sizeof(void *))))); /* "pyresample/ewa/_fornav.pyx":274 * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) */ __pyx_t_5 = ((!(__pyx_v_output_pointer != 0)) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":275 * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: * raise MemoryError() # <<<<<<<<<<<<<< * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) * valid_list = [] */ PyErr_NoMemory(); __PYX_ERR(0, 275, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":274 * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) */ } /* "pyresample/ewa/_fornav.pyx":276 * if not output_pointer: * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) # <<<<<<<<<<<<<< * valid_list = [] * cdef numpy.ndarray[numpy.float32_t, ndim=2] tmp_arr_f32 */ __pyx_v_valid_arr = ((unsigned int *)malloc((__pyx_v_num_items * (sizeof(unsigned int))))); /* "pyresample/ewa/_fornav.pyx":277 * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) * valid_list = [] # <<<<<<<<<<<<<< * cdef numpy.ndarray[numpy.float32_t, ndim=2] tmp_arr_f32 * cdef numpy.ndarray[numpy.float64_t, ndim=2] tmp_arr_f64 */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_valid_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":281 * cdef numpy.ndarray[numpy.float64_t, ndim=2] tmp_arr_f64 * cdef numpy.ndarray[numpy.int8_t, ndim=2] tmp_arr_i8 * cdef cr_dtype *cols_pointer = &cols_array[0, 0] # <<<<<<<<<<<<<< * cdef cr_dtype *rows_pointer = &rows_array[0, 0] * cdef int func_result */ __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_cols_pointer = (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_cols_array.diminfo[0].strides, __pyx_t_8, __pyx_pybuffernd_cols_array.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":282 * cdef numpy.ndarray[numpy.int8_t, ndim=2] tmp_arr_i8 * cdef cr_dtype *cols_pointer = &cols_array[0, 0] * cdef cr_dtype *rows_pointer = &rows_array[0, 0] # <<<<<<<<<<<<<< * cdef int func_result * */ __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_v_rows_pointer = (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_rows_array.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_rows_array.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":285 * cdef int func_result * * if in_type == numpy.float32: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":286 * * if in_type == numpy.float32: * for i in range(num_items): # <<<<<<<<<<<<<< * tmp_arr_f32 = input_arrays[i] * input_pointer[i] = &tmp_arr_f32[0, 0] */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":287 * if in_type == numpy.float32: * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] # <<<<<<<<<<<<<< * input_pointer[i] = &tmp_arr_f32[0, 0] * tmp_arr_f32 = output_arrays[i] */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 287, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 287, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f32, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } } __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 287, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_tmp_arr_f32, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":288 * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] * input_pointer[i] = &tmp_arr_f32[0, 0] # <<<<<<<<<<<<<< * tmp_arr_f32 = output_arrays[i] * output_pointer[i] = &tmp_arr_f32[0, 0] */ __pyx_t_16 = 0; __pyx_t_17 = 0; (__pyx_v_input_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides, __pyx_t_17, __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":289 * tmp_arr_f32 = input_arrays[i] * input_pointer[i] = &tmp_arr_f32[0, 0] * tmp_arr_f32 = output_arrays[i] # <<<<<<<<<<<<<< * output_pointer[i] = &tmp_arr_f32[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 289, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 289, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f32, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } } __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 289, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_tmp_arr_f32, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":290 * input_pointer[i] = &tmp_arr_f32[0, 0] * tmp_arr_f32 = output_arrays[i] * output_pointer[i] = &tmp_arr_f32[0, 0] # <<<<<<<<<<<<<< * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, */ __pyx_t_18 = 0; __pyx_t_19 = 0; (__pyx_v_output_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides, __pyx_t_19, __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides))); } /* "pyresample/ewa/_fornav.pyx":293 * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, # <<<<<<<<<<<<<< * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) */ __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_v_input_fill); if (unlikely((__pyx_t_20 == (npy_float32)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) __pyx_t_21 = __pyx_PyFloat_AsFloat(__pyx_v_output_fill); if (unlikely((__pyx_t_21 == (npy_float32)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":295 * input_fill, output_fill, rows_per_scan, * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) # <<<<<<<<<<<<<< * elif in_type == numpy.float64: * for i in range(num_items): */ __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_maximum_weight_mode)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 295, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":291 * tmp_arr_f32 = output_arrays[i] * output_pointer[i] = &tmp_arr_f32[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, # <<<<<<<<<<<<<< * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, */ __pyx_t_12 = __pyx_fuse_0_0_0__pyx_f_10pyresample_3ewa_7_fornav_fornav(__pyx_v_valid_arr, __pyx_v_num_items, __pyx_v_swath_cols, __pyx_v_swath_rows, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_cols_pointer, __pyx_v_rows_pointer, ((__pyx_t_5numpy_float32_t **)__pyx_v_input_pointer), ((__pyx_t_5numpy_float32_t **)__pyx_v_output_pointer), ((__pyx_t_5numpy_float32_t)__pyx_t_20), ((__pyx_t_5numpy_float32_t)__pyx_t_21), __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 291, __pyx_L1_error) __pyx_v_func_result = __pyx_t_12; /* "pyresample/ewa/_fornav.pyx":285 * cdef int func_result * * if in_type == numpy.float32: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] */ goto __pyx_L13; } /* "pyresample/ewa/_fornav.pyx":296 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.float64: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":297 * maximum_weight_mode) * elif in_type == numpy.float64: * for i in range(num_items): # <<<<<<<<<<<<<< * tmp_arr_f64 = input_arrays[i] * input_pointer[i] = &tmp_arr_f64[0, 0] */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":298 * elif in_type == numpy.float64: * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] # <<<<<<<<<<<<<< * input_pointer[i] = &tmp_arr_f64[0, 0] * tmp_arr_f64 = output_arrays[i] */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 298, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 298, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f64, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } } __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 298, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_tmp_arr_f64, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":299 * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] * input_pointer[i] = &tmp_arr_f64[0, 0] # <<<<<<<<<<<<<< * tmp_arr_f64 = output_arrays[i] * output_pointer[i] = &tmp_arr_f64[0, 0] */ __pyx_t_22 = 0; __pyx_t_23 = 0; (__pyx_v_input_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":300 * tmp_arr_f64 = input_arrays[i] * input_pointer[i] = &tmp_arr_f64[0, 0] * tmp_arr_f64 = output_arrays[i] # <<<<<<<<<<<<<< * output_pointer[i] = &tmp_arr_f64[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 300, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 300, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f64, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } } __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 300, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_tmp_arr_f64, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":301 * input_pointer[i] = &tmp_arr_f64[0, 0] * tmp_arr_f64 = output_arrays[i] * output_pointer[i] = &tmp_arr_f64[0, 0] # <<<<<<<<<<<<<< * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, */ __pyx_t_24 = 0; __pyx_t_25 = 0; (__pyx_v_output_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides))); } /* "pyresample/ewa/_fornav.pyx":304 * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, # <<<<<<<<<<<<<< * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) */ __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_v_input_fill); if (unlikely((__pyx_t_26 == (npy_float64)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error) __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_v_output_fill); if (unlikely((__pyx_t_27 == (npy_float64)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":306 * input_fill, output_fill, rows_per_scan, * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) # <<<<<<<<<<<<<< * elif in_type == numpy.int8: * for i in range(num_items): */ __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_maximum_weight_mode)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 306, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":302 * tmp_arr_f64 = output_arrays[i] * output_pointer[i] = &tmp_arr_f64[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, # <<<<<<<<<<<<<< * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, */ __pyx_t_12 = __pyx_fuse_0_1_1__pyx_f_10pyresample_3ewa_7_fornav_fornav(__pyx_v_valid_arr, __pyx_v_num_items, __pyx_v_swath_cols, __pyx_v_swath_rows, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_cols_pointer, __pyx_v_rows_pointer, ((__pyx_t_5numpy_float64_t **)__pyx_v_input_pointer), ((__pyx_t_5numpy_float64_t **)__pyx_v_output_pointer), ((__pyx_t_5numpy_float64_t)__pyx_t_26), ((__pyx_t_5numpy_float64_t)__pyx_t_27), __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 302, __pyx_L1_error) __pyx_v_func_result = __pyx_t_12; /* "pyresample/ewa/_fornav.pyx":296 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.float64: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] */ goto __pyx_L13; } /* "pyresample/ewa/_fornav.pyx":307 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.int8: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":308 * maximum_weight_mode) * elif in_type == numpy.int8: * for i in range(num_items): # <<<<<<<<<<<<<< * tmp_arr_i8 = input_arrays[i] * input_pointer[i] = &tmp_arr_i8[0, 0] */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":309 * elif in_type == numpy.int8: * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] # <<<<<<<<<<<<<< * input_pointer[i] = &tmp_arr_i8[0, 0] * tmp_arr_i8 = output_arrays[i] */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 309, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 309, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_i8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } } __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 309, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_tmp_arr_i8, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":310 * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] * input_pointer[i] = &tmp_arr_i8[0, 0] # <<<<<<<<<<<<<< * tmp_arr_i8 = output_arrays[i] * output_pointer[i] = &tmp_arr_i8[0, 0] */ __pyx_t_28 = 0; __pyx_t_29 = 0; (__pyx_v_input_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":311 * tmp_arr_i8 = input_arrays[i] * input_pointer[i] = &tmp_arr_i8[0, 0] * tmp_arr_i8 = output_arrays[i] # <<<<<<<<<<<<<< * output_pointer[i] = &tmp_arr_i8[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 311, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 311, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_i8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } } __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 311, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_tmp_arr_i8, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":312 * input_pointer[i] = &tmp_arr_i8[0, 0] * tmp_arr_i8 = output_arrays[i] * output_pointer[i] = &tmp_arr_i8[0, 0] # <<<<<<<<<<<<<< * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, */ __pyx_t_30 = 0; __pyx_t_31 = 0; (__pyx_v_output_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides))); } /* "pyresample/ewa/_fornav.pyx":315 * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, # <<<<<<<<<<<<<< * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) */ __pyx_t_32 = __Pyx_PyInt_As_npy_int8(__pyx_v_input_fill); if (unlikely((__pyx_t_32 == (npy_int8)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L1_error) __pyx_t_33 = __Pyx_PyInt_As_npy_int8(__pyx_v_output_fill); if (unlikely((__pyx_t_33 == (npy_int8)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":317 * input_fill, output_fill, rows_per_scan, * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) # <<<<<<<<<<<<<< * else: * raise ValueError("Unknown input and output data type") */ __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_maximum_weight_mode)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 317, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":313 * tmp_arr_i8 = output_arrays[i] * output_pointer[i] = &tmp_arr_i8[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, # <<<<<<<<<<<<<< * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, */ __pyx_t_12 = __pyx_fuse_0_2_2__pyx_f_10pyresample_3ewa_7_fornav_fornav(__pyx_v_valid_arr, __pyx_v_num_items, __pyx_v_swath_cols, __pyx_v_swath_rows, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_cols_pointer, __pyx_v_rows_pointer, ((__pyx_t_5numpy_int8_t **)__pyx_v_input_pointer), ((__pyx_t_5numpy_int8_t **)__pyx_v_output_pointer), ((__pyx_t_5numpy_int8_t)__pyx_t_32), ((__pyx_t_5numpy_int8_t)__pyx_t_33), __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 313, __pyx_L1_error) __pyx_v_func_result = __pyx_t_12; /* "pyresample/ewa/_fornav.pyx":307 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.int8: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] */ goto __pyx_L13; } /* "pyresample/ewa/_fornav.pyx":319 * maximum_weight_mode) * else: * raise ValueError("Unknown input and output data type") # <<<<<<<<<<<<<< * * for i in range(num_items): */ /*else*/ { __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 319, __pyx_L1_error) } __pyx_L13:; /* "pyresample/ewa/_fornav.pyx":321 * raise ValueError("Unknown input and output data type") * * for i in range(num_items): # <<<<<<<<<<<<<< * valid_list.append(valid_arr[i]) * */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":322 * * for i in range(num_items): * valid_list.append(valid_arr[i]) # <<<<<<<<<<<<<< * * free(input_pointer) */ __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_valid_arr[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_34 = __Pyx_PyList_Append(__pyx_v_valid_list, __pyx_t_1); if (unlikely(__pyx_t_34 == -1)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "pyresample/ewa/_fornav.pyx":324 * valid_list.append(valid_arr[i]) * * free(input_pointer) # <<<<<<<<<<<<<< * free(output_pointer) * */ free(__pyx_v_input_pointer); /* "pyresample/ewa/_fornav.pyx":325 * * free(input_pointer) * free(output_pointer) # <<<<<<<<<<<<<< * * return valid_list */ free(__pyx_v_output_pointer); /* "pyresample/ewa/_fornav.pyx":327 * free(output_pointer) * * return valid_list # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_valid_list); __pyx_r = __pyx_v_valid_list; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cols_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cols_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __pyx_L2:; __Pyx_XDECREF(__pyx_v_valid_list); __Pyx_XDECREF((PyObject *)__pyx_v_tmp_arr_f32); __Pyx_XDECREF((PyObject *)__pyx_v_tmp_arr_f64); __Pyx_XDECREF((PyObject *)__pyx_v_tmp_arr_i8); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_weight_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_weight_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_weight_distance_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_weight_delta_max); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_weight_sum_min); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5); __Pyx_INCREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_maximum_weight_mode)); __Pyx_GIVEREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_maximum_weight_mode)); PyTuple_SET_ITEM(__pyx_t_6, 5, ((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_maximum_weight_mode)); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_5, 1, Py_None); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyresample.ewa._fornav.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_1__pyx_pw_10pyresample_3ewa_7_fornav_5fornav_wrapper(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_10pyresample_3ewa_7_fornav_5fornav_wrapper = {"__pyx_fuse_1fornav_wrapper", (PyCFunction)__pyx_fuse_1__pyx_pw_10pyresample_3ewa_7_fornav_5fornav_wrapper, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_7_fornav_fornav_wrapper}; static PyObject *__pyx_fuse_1__pyx_pw_10pyresample_3ewa_7_fornav_5fornav_wrapper(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_cols_array = 0; PyArrayObject *__pyx_v_rows_array = 0; PyObject *__pyx_v_input_arrays = 0; PyObject *__pyx_v_output_arrays = 0; PyObject *__pyx_v_input_fill = 0; PyObject *__pyx_v_output_fill = 0; size_t __pyx_v_rows_per_scan; unsigned int __pyx_v_weight_count; weight_type __pyx_v_weight_min; weight_type __pyx_v_weight_distance_max; weight_type __pyx_v_weight_delta_max; weight_type __pyx_v_weight_sum_min; PyBoolObject *__pyx_v_maximum_weight_mode = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fornav_wrapper (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cols_array,&__pyx_n_s_rows_array,&__pyx_n_s_input_arrays,&__pyx_n_s_output_arrays,&__pyx_n_s_input_fill,&__pyx_n_s_output_fill,&__pyx_n_s_rows_per_scan,&__pyx_n_s_weight_count,&__pyx_n_s_weight_min,&__pyx_n_s_weight_distance_max,&__pyx_n_s_weight_delta_max,&__pyx_n_s_weight_sum_min,&__pyx_n_s_maximum_weight_mode,0}; PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0}; __pyx_defaults3 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self); values[12] = (PyObject *)__pyx_dynamic_args->__pyx_arg_maximum_weight_mode; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cols_array)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_rows_array)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 1); __PYX_ERR(0, 199, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_input_arrays)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 2); __PYX_ERR(0, 199, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_output_arrays)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 3); __PYX_ERR(0, 199, __pyx_L3_error) } case 4: if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_input_fill)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 4); __PYX_ERR(0, 199, __pyx_L3_error) } case 5: if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_output_fill)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 5); __PYX_ERR(0, 199, __pyx_L3_error) } case 6: if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_rows_per_scan)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, 6); __PYX_ERR(0, 199, __pyx_L3_error) } case 7: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_count); if (value) { values[7] = value; kw_args--; } } case 8: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_min); if (value) { values[8] = value; kw_args--; } } case 9: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_distance_max); if (value) { values[9] = value; kw_args--; } } case 10: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_delta_max); if (value) { values[10] = value; kw_args--; } } case 11: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_weight_sum_min); if (value) { values[11] = value; kw_args--; } } case 12: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_maximum_weight_mode); if (value) { values[12] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fornav_wrapper") < 0)) __PYX_ERR(0, 199, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12); case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11); case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_cols_array = ((PyArrayObject *)values[0]); __pyx_v_rows_array = ((PyArrayObject *)values[1]); __pyx_v_input_arrays = ((PyObject*)values[2]); __pyx_v_output_arrays = ((PyObject*)values[3]); __pyx_v_input_fill = values[4]; __pyx_v_output_fill = values[5]; __pyx_v_rows_per_scan = __Pyx_PyInt_As_size_t(values[6]); if (unlikely((__pyx_v_rows_per_scan == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L3_error) if (values[7]) { __pyx_v_weight_count = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_weight_count == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_count = __pyx_dynamic_args->__pyx_arg_weight_count; } if (values[8]) { __pyx_v_weight_min = __pyx_PyFloat_AsFloat(values[8]); if (unlikely((__pyx_v_weight_min == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_min = __pyx_dynamic_args->__pyx_arg_weight_min; } if (values[9]) { __pyx_v_weight_distance_max = __pyx_PyFloat_AsFloat(values[9]); if (unlikely((__pyx_v_weight_distance_max == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_distance_max = __pyx_dynamic_args->__pyx_arg_weight_distance_max; } if (values[10]) { __pyx_v_weight_delta_max = __pyx_PyFloat_AsFloat(values[10]); if (unlikely((__pyx_v_weight_delta_max == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_delta_max = __pyx_dynamic_args->__pyx_arg_weight_delta_max; } if (values[11]) { __pyx_v_weight_sum_min = __pyx_PyFloat_AsFloat(values[11]); if (unlikely((__pyx_v_weight_sum_min == (weight_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error) } else { __pyx_v_weight_sum_min = __pyx_dynamic_args->__pyx_arg_weight_sum_min; } __pyx_v_maximum_weight_mode = ((PyBoolObject *)values[12]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fornav_wrapper", 0, 7, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 199, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cols_array), __pyx_ptype_5numpy_ndarray, 1, "cols_array", 0))) __PYX_ERR(0, 199, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rows_array), __pyx_ptype_5numpy_ndarray, 1, "rows_array", 0))) __PYX_ERR(0, 200, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_input_arrays), (&PyTuple_Type), 1, "input_arrays", 1))) __PYX_ERR(0, 201, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output_arrays), (&PyTuple_Type), 1, "output_arrays", 1))) __PYX_ERR(0, 201, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_maximum_weight_mode), __pyx_ptype_7cpython_4bool_bool, 1, "maximum_weight_mode", 0))) __PYX_ERR(0, 204, __pyx_L1_error) __pyx_r = __pyx_pf_10pyresample_3ewa_7_fornav_4fornav_wrapper(__pyx_self, __pyx_v_cols_array, __pyx_v_rows_array, __pyx_v_input_arrays, __pyx_v_output_arrays, __pyx_v_input_fill, __pyx_v_output_fill, __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_v_maximum_weight_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_8generator2(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_6genexpr(PyObject *__pyx_self) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *)__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr(__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *) __pyx_self; __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_8generator2, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_pyx_fuse_1fornav_wrapper_local); if (unlikely(!gen)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_8generator2(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *__pyx_cur_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 265, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_input_arrays)) { __Pyx_RaiseClosureNameError("input_arrays"); __PYX_ERR(0, 265, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 265, __pyx_L1_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_input_arrays; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_input_array); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_input_array, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_input_array, __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_in_type)) { __Pyx_RaiseClosureNameError("in_type"); __PYX_ERR(0, 265, __pyx_L1_error) } __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_in_type), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } } /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_11generator3(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_9genexpr(PyObject *__pyx_self) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *)__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr(__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *) __pyx_self; __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_11generator3, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_pyx_fuse_1fornav_wrapper_local); if (unlikely(!gen)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_10pyresample_3ewa_7_fornav_14fornav_wrapper_11generator3(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *__pyx_cur_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 267, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_output_arrays)) { __Pyx_RaiseClosureNameError("output_arrays"); __PYX_ERR(0, 267, __pyx_L1_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 267, __pyx_L1_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_output_arrays; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 267, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_output_array); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_output_array, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_output_array, __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_out_type)) { __Pyx_RaiseClosureNameError("out_type"); __PYX_ERR(0, 267, __pyx_L1_error) } __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_out_type), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } } /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ static PyObject *__pyx_pf_10pyresample_3ewa_7_fornav_4fornav_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_cols_array, PyArrayObject *__pyx_v_rows_array, PyObject *__pyx_v_input_arrays, PyObject *__pyx_v_output_arrays, PyObject *__pyx_v_input_fill, PyObject *__pyx_v_output_fill, size_t __pyx_v_rows_per_scan, unsigned int __pyx_v_weight_count, weight_type __pyx_v_weight_min, weight_type __pyx_v_weight_distance_max, weight_type __pyx_v_weight_delta_max, weight_type __pyx_v_weight_sum_min, PyBoolObject *__pyx_v_maximum_weight_mode) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *__pyx_cur_scope; size_t __pyx_v_num_items; size_t __pyx_v_num_outputs; size_t __pyx_v_swath_cols; size_t __pyx_v_swath_rows; size_t __pyx_v_grid_cols; size_t __pyx_v_grid_rows; unsigned int __pyx_v_i; void **__pyx_v_input_pointer; void **__pyx_v_output_pointer; unsigned int *__pyx_v_valid_arr; PyObject *__pyx_v_valid_list = NULL; PyArrayObject *__pyx_v_tmp_arr_f32 = 0; PyArrayObject *__pyx_v_tmp_arr_f64 = 0; PyArrayObject *__pyx_v_tmp_arr_i8 = 0; __pyx_t_5numpy_float64_t *__pyx_v_cols_pointer; __pyx_t_5numpy_float64_t *__pyx_v_rows_pointer; CYTHON_UNUSED int __pyx_v_func_result; __Pyx_LocalBuf_ND __pyx_pybuffernd_cols_array; __Pyx_Buffer __pyx_pybuffer_cols_array; __Pyx_LocalBuf_ND __pyx_pybuffernd_rows_array; __Pyx_Buffer __pyx_pybuffer_rows_array; __Pyx_LocalBuf_ND __pyx_pybuffernd_tmp_arr_f32; __Pyx_Buffer __pyx_pybuffer_tmp_arr_f32; __Pyx_LocalBuf_ND __pyx_pybuffernd_tmp_arr_f64; __Pyx_Buffer __pyx_pybuffer_tmp_arr_f64; __Pyx_LocalBuf_ND __pyx_pybuffernd_tmp_arr_i8; __Pyx_Buffer __pyx_pybuffer_tmp_arr_i8; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; Py_ssize_t __pyx_t_8; Py_ssize_t __pyx_t_9; Py_ssize_t __pyx_t_10; unsigned int __pyx_t_11; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; Py_ssize_t __pyx_t_18; Py_ssize_t __pyx_t_19; __pyx_t_5numpy_float32_t __pyx_t_20; __pyx_t_5numpy_float32_t __pyx_t_21; Py_ssize_t __pyx_t_22; Py_ssize_t __pyx_t_23; Py_ssize_t __pyx_t_24; Py_ssize_t __pyx_t_25; __pyx_t_5numpy_float64_t __pyx_t_26; __pyx_t_5numpy_float64_t __pyx_t_27; Py_ssize_t __pyx_t_28; Py_ssize_t __pyx_t_29; Py_ssize_t __pyx_t_30; Py_ssize_t __pyx_t_31; __pyx_t_5numpy_int8_t __pyx_t_32; __pyx_t_5numpy_int8_t __pyx_t_33; int __pyx_t_34; __Pyx_RefNannySetupContext("__pyx_fuse_1fornav_wrapper", 0); __pyx_cur_scope = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper(__pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_input_arrays = __pyx_v_input_arrays; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_input_arrays); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_input_arrays); __pyx_cur_scope->__pyx_v_output_arrays = __pyx_v_output_arrays; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_output_arrays); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_output_arrays); __pyx_pybuffer_tmp_arr_f32.pybuffer.buf = NULL; __pyx_pybuffer_tmp_arr_f32.refcount = 0; __pyx_pybuffernd_tmp_arr_f32.data = NULL; __pyx_pybuffernd_tmp_arr_f32.rcbuffer = &__pyx_pybuffer_tmp_arr_f32; __pyx_pybuffer_tmp_arr_f64.pybuffer.buf = NULL; __pyx_pybuffer_tmp_arr_f64.refcount = 0; __pyx_pybuffernd_tmp_arr_f64.data = NULL; __pyx_pybuffernd_tmp_arr_f64.rcbuffer = &__pyx_pybuffer_tmp_arr_f64; __pyx_pybuffer_tmp_arr_i8.pybuffer.buf = NULL; __pyx_pybuffer_tmp_arr_i8.refcount = 0; __pyx_pybuffernd_tmp_arr_i8.data = NULL; __pyx_pybuffernd_tmp_arr_i8.rcbuffer = &__pyx_pybuffer_tmp_arr_i8; __pyx_pybuffer_cols_array.pybuffer.buf = NULL; __pyx_pybuffer_cols_array.refcount = 0; __pyx_pybuffernd_cols_array.data = NULL; __pyx_pybuffernd_cols_array.rcbuffer = &__pyx_pybuffer_cols_array; __pyx_pybuffer_rows_array.pybuffer.buf = NULL; __pyx_pybuffer_rows_array.refcount = 0; __pyx_pybuffernd_rows_array.data = NULL; __pyx_pybuffernd_rows_array.rcbuffer = &__pyx_pybuffer_rows_array; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cols_array.rcbuffer->pybuffer, (PyObject*)__pyx_v_cols_array, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_pybuffernd_cols_array.diminfo[0].strides = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cols_array.diminfo[0].shape = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cols_array.diminfo[1].strides = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cols_array.diminfo[1].shape = __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.shape[1]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rows_array.rcbuffer->pybuffer, (PyObject*)__pyx_v_rows_array, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 199, __pyx_L1_error) } __pyx_pybuffernd_rows_array.diminfo[0].strides = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rows_array.diminfo[0].shape = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_rows_array.diminfo[1].strides = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_rows_array.diminfo[1].shape = __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.shape[1]; /* "pyresample/ewa/_fornav.pyx":247 * :return: tuple of valid grid points written for each output array * """ * cdef size_t num_items = len(input_arrays) # <<<<<<<<<<<<<< * cdef size_t num_outputs = len(output_arrays) * cdef size_t swath_cols = cols_array.shape[1] */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_input_arrays; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 247, __pyx_L1_error) } __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_num_items = __pyx_t_2; /* "pyresample/ewa/_fornav.pyx":248 * """ * cdef size_t num_items = len(input_arrays) * cdef size_t num_outputs = len(output_arrays) # <<<<<<<<<<<<<< * cdef size_t swath_cols = cols_array.shape[1] * cdef size_t swath_rows = cols_array.shape[0] */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_output_arrays; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 248, __pyx_L1_error) } __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_num_outputs = __pyx_t_2; /* "pyresample/ewa/_fornav.pyx":249 * cdef size_t num_items = len(input_arrays) * cdef size_t num_outputs = len(output_arrays) * cdef size_t swath_cols = cols_array.shape[1] # <<<<<<<<<<<<<< * cdef size_t swath_rows = cols_array.shape[0] * cdef size_t grid_cols = output_arrays[0].shape[1] */ __pyx_v_swath_cols = (__pyx_v_cols_array->dimensions[1]); /* "pyresample/ewa/_fornav.pyx":250 * cdef size_t num_outputs = len(output_arrays) * cdef size_t swath_cols = cols_array.shape[1] * cdef size_t swath_rows = cols_array.shape[0] # <<<<<<<<<<<<<< * cdef size_t grid_cols = output_arrays[0].shape[1] * cdef size_t grid_rows = output_arrays[0].shape[0] */ __pyx_v_swath_rows = (__pyx_v_cols_array->dimensions[0]); /* "pyresample/ewa/_fornav.pyx":251 * cdef size_t swath_cols = cols_array.shape[1] * cdef size_t swath_rows = cols_array.shape[0] * cdef size_t grid_cols = output_arrays[0].shape[1] # <<<<<<<<<<<<<< * cdef size_t grid_rows = output_arrays[0].shape[0] * cdef unsigned int i */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 251, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, 0), __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_grid_cols = __pyx_t_4; /* "pyresample/ewa/_fornav.pyx":252 * cdef size_t swath_rows = cols_array.shape[0] * cdef size_t grid_cols = output_arrays[0].shape[1] * cdef size_t grid_rows = output_arrays[0].shape[0] # <<<<<<<<<<<<<< * cdef unsigned int i * if num_items != num_outputs: */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 252, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, 0), __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_grid_rows = __pyx_t_4; /* "pyresample/ewa/_fornav.pyx":254 * cdef size_t grid_rows = output_arrays[0].shape[0] * cdef unsigned int i * if num_items != num_outputs: # <<<<<<<<<<<<<< * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: */ __pyx_t_5 = ((__pyx_v_num_items != __pyx_v_num_outputs) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":255 * cdef unsigned int i * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") # <<<<<<<<<<<<<< * if num_items <= 0: * raise ValueError("No input arrays given") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 255, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":254 * cdef size_t grid_rows = output_arrays[0].shape[0] * cdef unsigned int i * if num_items != num_outputs: # <<<<<<<<<<<<<< * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: */ } /* "pyresample/ewa/_fornav.pyx":256 * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: # <<<<<<<<<<<<<< * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: */ __pyx_t_5 = ((__pyx_v_num_items <= 0) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":257 * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: * raise ValueError("No input arrays given") # <<<<<<<<<<<<<< * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 257, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":256 * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: # <<<<<<<<<<<<<< * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: */ } /* "pyresample/ewa/_fornav.pyx":258 * if num_items <= 0: * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: # <<<<<<<<<<<<<< * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") * */ __pyx_t_6 = ((__pyx_v_rows_per_scan < 2) != 0); if (!__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L6_bool_binop_done; } if (unlikely(__pyx_v_rows_per_scan == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(0, 258, __pyx_L1_error) } __pyx_t_6 = (((__pyx_v_swath_rows % __pyx_v_rows_per_scan) != 0) != 0); __pyx_t_5 = __pyx_t_6; __pyx_L6_bool_binop_done:; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":259 * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") # <<<<<<<<<<<<<< * * cdef numpy.dtype in_type = input_arrays[0].dtype */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 259, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":258 * if num_items <= 0: * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: # <<<<<<<<<<<<<< * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") * */ } /* "pyresample/ewa/_fornav.pyx":261 * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") * * cdef numpy.dtype in_type = input_arrays[0].dtype # <<<<<<<<<<<<<< * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 261, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, 0), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_in_type = ((PyArray_Descr *)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":262 * * cdef numpy.dtype in_type = input_arrays[0].dtype * cdef numpy.dtype out_type = output_arrays[0].dtype # <<<<<<<<<<<<<< * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, 0), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_out_type = ((PyArray_Descr *)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":263 * cdef numpy.dtype in_type = input_arrays[0].dtype * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: # <<<<<<<<<<<<<< * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): */ __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), ((PyObject *)__pyx_cur_scope->__pyx_v_out_type), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":264 * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") # <<<<<<<<<<<<<< * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 264, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":263 * cdef numpy.dtype in_type = input_arrays[0].dtype * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: # <<<<<<<<<<<<<< * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): */ } /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ __pyx_t_1 = __pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { /* "pyresample/ewa/_fornav.pyx":266 * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 266, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":265 * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): */ } /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ __pyx_t_3 = __pyx_pf_10pyresample_3ewa_7_fornav_14fornav_wrapper_9genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = ((!__pyx_t_6) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":268 * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 268, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":267 * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): # <<<<<<<<<<<<<< * raise ValueError("Input arrays must all be of the same data type") * */ } /* "pyresample/ewa/_fornav.pyx":270 * raise ValueError("Input arrays must all be of the same data type") * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) # <<<<<<<<<<<<<< * if not input_pointer: * raise MemoryError() */ __pyx_v_input_pointer = ((void **)malloc((__pyx_v_num_items * (sizeof(void *))))); /* "pyresample/ewa/_fornav.pyx":271 * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) * if not input_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) */ __pyx_t_5 = ((!(__pyx_v_input_pointer != 0)) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":272 * cdef void **input_pointer = malloc(num_items * sizeof(void *)) * if not input_pointer: * raise MemoryError() # <<<<<<<<<<<<<< * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: */ PyErr_NoMemory(); __PYX_ERR(0, 272, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":271 * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) * if not input_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) */ } /* "pyresample/ewa/_fornav.pyx":273 * if not input_pointer: * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) # <<<<<<<<<<<<<< * if not output_pointer: * raise MemoryError() */ __pyx_v_output_pointer = ((void **)malloc((__pyx_v_num_items * (sizeof(void *))))); /* "pyresample/ewa/_fornav.pyx":274 * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) */ __pyx_t_5 = ((!(__pyx_v_output_pointer != 0)) != 0); if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":275 * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: * raise MemoryError() # <<<<<<<<<<<<<< * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) * valid_list = [] */ PyErr_NoMemory(); __PYX_ERR(0, 275, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":274 * raise MemoryError() * cdef void **output_pointer = malloc(num_items * sizeof(void *)) * if not output_pointer: # <<<<<<<<<<<<<< * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) */ } /* "pyresample/ewa/_fornav.pyx":276 * if not output_pointer: * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) # <<<<<<<<<<<<<< * valid_list = [] * cdef numpy.ndarray[numpy.float32_t, ndim=2] tmp_arr_f32 */ __pyx_v_valid_arr = ((unsigned int *)malloc((__pyx_v_num_items * (sizeof(unsigned int))))); /* "pyresample/ewa/_fornav.pyx":277 * raise MemoryError() * cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) * valid_list = [] # <<<<<<<<<<<<<< * cdef numpy.ndarray[numpy.float32_t, ndim=2] tmp_arr_f32 * cdef numpy.ndarray[numpy.float64_t, ndim=2] tmp_arr_f64 */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_valid_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":281 * cdef numpy.ndarray[numpy.float64_t, ndim=2] tmp_arr_f64 * cdef numpy.ndarray[numpy.int8_t, ndim=2] tmp_arr_i8 * cdef cr_dtype *cols_pointer = &cols_array[0, 0] # <<<<<<<<<<<<<< * cdef cr_dtype *rows_pointer = &rows_array[0, 0] * cdef int func_result */ __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_cols_pointer = (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cols_array.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_cols_array.diminfo[0].strides, __pyx_t_8, __pyx_pybuffernd_cols_array.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":282 * cdef numpy.ndarray[numpy.int8_t, ndim=2] tmp_arr_i8 * cdef cr_dtype *cols_pointer = &cols_array[0, 0] * cdef cr_dtype *rows_pointer = &rows_array[0, 0] # <<<<<<<<<<<<<< * cdef int func_result * */ __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_v_rows_pointer = (&(*__Pyx_BufPtrCContig2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_rows_array.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_rows_array.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_rows_array.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":285 * cdef int func_result * * if in_type == numpy.float32: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":286 * * if in_type == numpy.float32: * for i in range(num_items): # <<<<<<<<<<<<<< * tmp_arr_f32 = input_arrays[i] * input_pointer[i] = &tmp_arr_f32[0, 0] */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":287 * if in_type == numpy.float32: * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] # <<<<<<<<<<<<<< * input_pointer[i] = &tmp_arr_f32[0, 0] * tmp_arr_f32 = output_arrays[i] */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 287, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 287, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f32, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } } __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 287, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_tmp_arr_f32, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":288 * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] * input_pointer[i] = &tmp_arr_f32[0, 0] # <<<<<<<<<<<<<< * tmp_arr_f32 = output_arrays[i] * output_pointer[i] = &tmp_arr_f32[0, 0] */ __pyx_t_16 = 0; __pyx_t_17 = 0; (__pyx_v_input_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides, __pyx_t_17, __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":289 * tmp_arr_f32 = input_arrays[i] * input_pointer[i] = &tmp_arr_f32[0, 0] * tmp_arr_f32 = output_arrays[i] # <<<<<<<<<<<<<< * output_pointer[i] = &tmp_arr_f32[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 289, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 289, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f32, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } } __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f32.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 289, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_tmp_arr_f32, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":290 * input_pointer[i] = &tmp_arr_f32[0, 0] * tmp_arr_f32 = output_arrays[i] * output_pointer[i] = &tmp_arr_f32[0, 0] # <<<<<<<<<<<<<< * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, */ __pyx_t_18 = 0; __pyx_t_19 = 0; (__pyx_v_output_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_tmp_arr_f32.diminfo[0].strides, __pyx_t_19, __pyx_pybuffernd_tmp_arr_f32.diminfo[1].strides))); } /* "pyresample/ewa/_fornav.pyx":293 * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, # <<<<<<<<<<<<<< * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) */ __pyx_t_20 = __pyx_PyFloat_AsFloat(__pyx_v_input_fill); if (unlikely((__pyx_t_20 == (npy_float32)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) __pyx_t_21 = __pyx_PyFloat_AsFloat(__pyx_v_output_fill); if (unlikely((__pyx_t_21 == (npy_float32)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":295 * input_fill, output_fill, rows_per_scan, * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) # <<<<<<<<<<<<<< * elif in_type == numpy.float64: * for i in range(num_items): */ __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_maximum_weight_mode)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 295, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":291 * tmp_arr_f32 = output_arrays[i] * output_pointer[i] = &tmp_arr_f32[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, # <<<<<<<<<<<<<< * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, */ __pyx_t_12 = __pyx_fuse_1_0_0__pyx_f_10pyresample_3ewa_7_fornav_fornav(__pyx_v_valid_arr, __pyx_v_num_items, __pyx_v_swath_cols, __pyx_v_swath_rows, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_cols_pointer, __pyx_v_rows_pointer, ((__pyx_t_5numpy_float32_t **)__pyx_v_input_pointer), ((__pyx_t_5numpy_float32_t **)__pyx_v_output_pointer), ((__pyx_t_5numpy_float32_t)__pyx_t_20), ((__pyx_t_5numpy_float32_t)__pyx_t_21), __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 291, __pyx_L1_error) __pyx_v_func_result = __pyx_t_12; /* "pyresample/ewa/_fornav.pyx":285 * cdef int func_result * * if in_type == numpy.float32: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f32 = input_arrays[i] */ goto __pyx_L13; } /* "pyresample/ewa/_fornav.pyx":296 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.float64: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":297 * maximum_weight_mode) * elif in_type == numpy.float64: * for i in range(num_items): # <<<<<<<<<<<<<< * tmp_arr_f64 = input_arrays[i] * input_pointer[i] = &tmp_arr_f64[0, 0] */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":298 * elif in_type == numpy.float64: * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] # <<<<<<<<<<<<<< * input_pointer[i] = &tmp_arr_f64[0, 0] * tmp_arr_f64 = output_arrays[i] */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 298, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 298, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f64, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } } __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 298, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_tmp_arr_f64, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":299 * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] * input_pointer[i] = &tmp_arr_f64[0, 0] # <<<<<<<<<<<<<< * tmp_arr_f64 = output_arrays[i] * output_pointer[i] = &tmp_arr_f64[0, 0] */ __pyx_t_22 = 0; __pyx_t_23 = 0; (__pyx_v_input_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":300 * tmp_arr_f64 = input_arrays[i] * input_pointer[i] = &tmp_arr_f64[0, 0] * tmp_arr_f64 = output_arrays[i] # <<<<<<<<<<<<<< * output_pointer[i] = &tmp_arr_f64[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 300, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 300, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_f64, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } } __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_f64.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 300, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_tmp_arr_f64, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":301 * input_pointer[i] = &tmp_arr_f64[0, 0] * tmp_arr_f64 = output_arrays[i] * output_pointer[i] = &tmp_arr_f64[0, 0] # <<<<<<<<<<<<<< * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, */ __pyx_t_24 = 0; __pyx_t_25 = 0; (__pyx_v_output_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_tmp_arr_f64.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_tmp_arr_f64.diminfo[1].strides))); } /* "pyresample/ewa/_fornav.pyx":304 * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, # <<<<<<<<<<<<<< * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) */ __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_v_input_fill); if (unlikely((__pyx_t_26 == (npy_float64)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error) __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_v_output_fill); if (unlikely((__pyx_t_27 == (npy_float64)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":306 * input_fill, output_fill, rows_per_scan, * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) # <<<<<<<<<<<<<< * elif in_type == numpy.int8: * for i in range(num_items): */ __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_maximum_weight_mode)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 306, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":302 * tmp_arr_f64 = output_arrays[i] * output_pointer[i] = &tmp_arr_f64[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, # <<<<<<<<<<<<<< * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, */ __pyx_t_12 = __pyx_fuse_1_1_1__pyx_f_10pyresample_3ewa_7_fornav_fornav(__pyx_v_valid_arr, __pyx_v_num_items, __pyx_v_swath_cols, __pyx_v_swath_rows, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_cols_pointer, __pyx_v_rows_pointer, ((__pyx_t_5numpy_float64_t **)__pyx_v_input_pointer), ((__pyx_t_5numpy_float64_t **)__pyx_v_output_pointer), ((__pyx_t_5numpy_float64_t)__pyx_t_26), ((__pyx_t_5numpy_float64_t)__pyx_t_27), __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 302, __pyx_L1_error) __pyx_v_func_result = __pyx_t_12; /* "pyresample/ewa/_fornav.pyx":296 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.float64: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_f64 = input_arrays[i] */ goto __pyx_L13; } /* "pyresample/ewa/_fornav.pyx":307 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.int8: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_cur_scope->__pyx_v_in_type), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pyresample/ewa/_fornav.pyx":308 * maximum_weight_mode) * elif in_type == numpy.int8: * for i in range(num_items): # <<<<<<<<<<<<<< * tmp_arr_i8 = input_arrays[i] * input_pointer[i] = &tmp_arr_i8[0, 0] */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":309 * elif in_type == numpy.int8: * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] # <<<<<<<<<<<<<< * input_pointer[i] = &tmp_arr_i8[0, 0] * tmp_arr_i8 = output_arrays[i] */ if (unlikely(__pyx_cur_scope->__pyx_v_input_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 309, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 309, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_input_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_i8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } } __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 309, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_tmp_arr_i8, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":310 * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] * input_pointer[i] = &tmp_arr_i8[0, 0] # <<<<<<<<<<<<<< * tmp_arr_i8 = output_arrays[i] * output_pointer[i] = &tmp_arr_i8[0, 0] */ __pyx_t_28 = 0; __pyx_t_29 = 0; (__pyx_v_input_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides))); /* "pyresample/ewa/_fornav.pyx":311 * tmp_arr_i8 = input_arrays[i] * input_pointer[i] = &tmp_arr_i8[0, 0] * tmp_arr_i8 = output_arrays[i] # <<<<<<<<<<<<<< * output_pointer[i] = &tmp_arr_i8[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, */ if (unlikely(__pyx_cur_scope->__pyx_v_output_arrays == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 311, __pyx_L1_error) } if (!(likely(((PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i)) == Py_None) || likely(__Pyx_TypeTest(PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 311, __pyx_L1_error) __pyx_t_1 = PyTuple_GET_ITEM(__pyx_cur_scope->__pyx_v_output_arrays, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer, (PyObject*)__pyx_v_tmp_arr_i8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } } __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[0].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_tmp_arr_i8.diminfo[1].shape = __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 311, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_tmp_arr_i8, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":312 * input_pointer[i] = &tmp_arr_i8[0, 0] * tmp_arr_i8 = output_arrays[i] * output_pointer[i] = &tmp_arr_i8[0, 0] # <<<<<<<<<<<<<< * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, */ __pyx_t_30 = 0; __pyx_t_31 = 0; (__pyx_v_output_pointer[__pyx_v_i]) = (&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_tmp_arr_i8.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_tmp_arr_i8.diminfo[1].strides))); } /* "pyresample/ewa/_fornav.pyx":315 * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, # <<<<<<<<<<<<<< * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) */ __pyx_t_32 = __Pyx_PyInt_As_npy_int8(__pyx_v_input_fill); if (unlikely((__pyx_t_32 == (npy_int8)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L1_error) __pyx_t_33 = __Pyx_PyInt_As_npy_int8(__pyx_v_output_fill); if (unlikely((__pyx_t_33 == (npy_int8)-1) && PyErr_Occurred())) __PYX_ERR(0, 315, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":317 * input_fill, output_fill, rows_per_scan, * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) # <<<<<<<<<<<<<< * else: * raise ValueError("Unknown input and output data type") */ __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_maximum_weight_mode)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 317, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":313 * tmp_arr_i8 = output_arrays[i] * output_pointer[i] = &tmp_arr_i8[0, 0] * func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, # <<<<<<<<<<<<<< * input_pointer, output_pointer, * input_fill, output_fill, rows_per_scan, */ __pyx_t_12 = __pyx_fuse_1_2_2__pyx_f_10pyresample_3ewa_7_fornav_fornav(__pyx_v_valid_arr, __pyx_v_num_items, __pyx_v_swath_cols, __pyx_v_swath_rows, __pyx_v_grid_cols, __pyx_v_grid_rows, __pyx_v_cols_pointer, __pyx_v_rows_pointer, ((__pyx_t_5numpy_int8_t **)__pyx_v_input_pointer), ((__pyx_t_5numpy_int8_t **)__pyx_v_output_pointer), ((__pyx_t_5numpy_int8_t)__pyx_t_32), ((__pyx_t_5numpy_int8_t)__pyx_t_33), __pyx_v_rows_per_scan, __pyx_v_weight_count, __pyx_v_weight_min, __pyx_v_weight_distance_max, __pyx_v_weight_delta_max, __pyx_v_weight_sum_min, __pyx_t_5); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 313, __pyx_L1_error) __pyx_v_func_result = __pyx_t_12; /* "pyresample/ewa/_fornav.pyx":307 * weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, * maximum_weight_mode) * elif in_type == numpy.int8: # <<<<<<<<<<<<<< * for i in range(num_items): * tmp_arr_i8 = input_arrays[i] */ goto __pyx_L13; } /* "pyresample/ewa/_fornav.pyx":319 * maximum_weight_mode) * else: * raise ValueError("Unknown input and output data type") # <<<<<<<<<<<<<< * * for i in range(num_items): */ /*else*/ { __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 319, __pyx_L1_error) } __pyx_L13:; /* "pyresample/ewa/_fornav.pyx":321 * raise ValueError("Unknown input and output data type") * * for i in range(num_items): # <<<<<<<<<<<<<< * valid_list.append(valid_arr[i]) * */ __pyx_t_4 = __pyx_v_num_items; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_4; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "pyresample/ewa/_fornav.pyx":322 * * for i in range(num_items): * valid_list.append(valid_arr[i]) # <<<<<<<<<<<<<< * * free(input_pointer) */ __pyx_t_1 = __Pyx_PyInt_From_unsigned_int((__pyx_v_valid_arr[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_34 = __Pyx_PyList_Append(__pyx_v_valid_list, __pyx_t_1); if (unlikely(__pyx_t_34 == -1)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "pyresample/ewa/_fornav.pyx":324 * valid_list.append(valid_arr[i]) * * free(input_pointer) # <<<<<<<<<<<<<< * free(output_pointer) * */ free(__pyx_v_input_pointer); /* "pyresample/ewa/_fornav.pyx":325 * * free(input_pointer) * free(output_pointer) # <<<<<<<<<<<<<< * * return valid_list */ free(__pyx_v_output_pointer); /* "pyresample/ewa/_fornav.pyx":327 * free(output_pointer) * * return valid_list # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_valid_list); __pyx_r = __pyx_v_valid_list; goto __pyx_L0; /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cols_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("pyresample.ewa._fornav.fornav_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cols_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rows_array.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f32.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_f64.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_tmp_arr_i8.rcbuffer->pybuffer); __pyx_L2:; __Pyx_XDECREF(__pyx_v_valid_list); __Pyx_XDECREF((PyObject *)__pyx_v_tmp_arr_f32); __Pyx_XDECREF((PyObject *)__pyx_v_tmp_arr_f64); __Pyx_XDECREF((PyObject *)__pyx_v_tmp_arr_i8); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":197 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fullfill the PEP. */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_v_hasfields; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; __Pyx_RefNannySetupContext("__getbuffer__", 0); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":203 * # of flags * * if info == NULL: return # <<<<<<<<<<<<<< * * cdef int copy_shape, i, ndim */ __pyx_t_1 = ((__pyx_v_info == NULL) != 0); if (__pyx_t_1) { __pyx_r = 0; goto __pyx_L0; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":206 * * cdef int copy_shape, i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":207 * cdef int copy_shape, i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":209 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":211 * ndim = PyArray_NDIM(self) * * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * copy_shape = 1 * else: */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":212 * * if sizeof(npy_intp) != sizeof(Py_ssize_t): * copy_shape = 1 # <<<<<<<<<<<<<< * else: * copy_shape = 0 */ __pyx_v_copy_shape = 1; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":211 * ndim = PyArray_NDIM(self) * * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * copy_shape = 1 * else: */ goto __pyx_L4; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":214 * copy_shape = 1 * else: * copy_shape = 0 # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ /*else*/ { __pyx_v_copy_shape = 0; } __pyx_L4:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":216 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":217 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":216 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":218 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 218, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":216 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":220 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L9_bool_binop_done; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":221 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L9_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":220 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":222 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 222, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":220 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":224 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if copy_shape: */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":225 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if copy_shape: * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":226 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if copy_shape: # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ __pyx_t_1 = (__pyx_v_copy_shape != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":229 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":230 * # This is allocated as one block, strides first. * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":231 * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":232 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":233 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":226 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if copy_shape: # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ goto __pyx_L11; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":235 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":236 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } __pyx_L11:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":238 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":239 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":242 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = self.descr * cdef int offset */ __pyx_v_f = NULL; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":243 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< * cdef int offset * */ __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); __Pyx_INCREF(__pyx_t_3); __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":246 * cdef int offset * * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< * * if not hasfields and not copy_shape: */ __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":248 * cdef bint hasfields = PyDataType_HASFIELDS(descr) * * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< * # do not call releasebuffer * info.obj = None */ __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L15_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L15_bool_binop_done:; if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":250 * if not hasfields and not copy_shape: * # do not call releasebuffer * info.obj = None # <<<<<<<<<<<<<< * else: * # need to call releasebuffer */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = Py_None; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":248 * cdef bint hasfields = PyDataType_HASFIELDS(descr) * * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< * # do not call releasebuffer * info.obj = None */ goto __pyx_L14; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":253 * else: * # need to call releasebuffer * info.obj = self # <<<<<<<<<<<<<< * * if not hasfields: */ /*else*/ { __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); } __pyx_L14:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":255 * info.obj = self * * if not hasfields: # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":256 * * if not hasfields: * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): */ __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { goto __pyx_L20_next_or; } else { } __pyx_t_2 = (__pyx_v_little_endian != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_L20_next_or:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L19_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":259 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 259, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":260 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ switch (__pyx_v_t) { case NPY_BYTE: __pyx_v_f = ((char *)"b"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":261 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ case NPY_UBYTE: __pyx_v_f = ((char *)"B"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":262 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ case NPY_SHORT: __pyx_v_f = ((char *)"h"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":263 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ case NPY_USHORT: __pyx_v_f = ((char *)"H"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":264 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ case NPY_INT: __pyx_v_f = ((char *)"i"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":265 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ case NPY_UINT: __pyx_v_f = ((char *)"I"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":266 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ case NPY_LONG: __pyx_v_f = ((char *)"l"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ case NPY_ULONG: __pyx_v_f = ((char *)"L"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ case NPY_LONGLONG: __pyx_v_f = ((char *)"q"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ case NPY_ULONGLONG: __pyx_v_f = ((char *)"Q"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ case NPY_FLOAT: __pyx_v_f = ((char *)"f"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ case NPY_DOUBLE: __pyx_v_f = ((char *)"d"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ case NPY_LONGDOUBLE: __pyx_v_f = ((char *)"g"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ case NPY_CFLOAT: __pyx_v_f = ((char *)"Zf"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ case NPY_CDOUBLE: __pyx_v_f = ((char *)"Zd"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ case NPY_CLONGDOUBLE: __pyx_v_f = ((char *)"Zg"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ case NPY_OBJECT: __pyx_v_f = ((char *)"O"); break; default: /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(1, 278, __pyx_L1_error) break; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":279 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = stdlib.malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":255 * info.obj = self * * if not hasfields: # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":282 * return * else: * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 */ /*else*/ { __pyx_v_info->format = ((char *)malloc(0xFF)); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * info.format = stdlib.malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":284 * info.format = stdlib.malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":285 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< * info.format + _buffer_format_string_len, * &offset) */ __pyx_t_7 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_7 == NULL)) __PYX_ERR(1, 285, __pyx_L1_error) __pyx_v_f = __pyx_t_7; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = '\x00'; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":197 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fullfill the PEP. */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * stdlib.free(info.format) */ /* Python wrapper */ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":292 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * stdlib.free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * stdlib.free(info.strides) */ free(__pyx_v_info->format); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * if PyArray_HASFIELDS(self): * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * stdlib.free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":294 * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * stdlib.free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ free(__pyx_v_info->strides); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * if PyArray_HASFIELDS(self): * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * stdlib.free(info.strides) * # info.shape was stored after info.strides in the same block */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * stdlib.free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":770 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":771 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":770 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":773 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":774 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":773 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":777 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":780 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":782 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":783 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":782 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":790 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":791 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":794 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 794, __pyx_L1_error) } __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 794, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":795 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 795, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":796 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 796, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 796, __pyx_L1_error) } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":798 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":799 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 799, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":798 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); if (!__pyx_t_7) { goto __pyx_L8_next_or; } else { } __pyx_t_7 = (__pyx_v_little_endian != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_L8_next_or:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":802 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":803 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 803, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":814 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 0x78; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":815 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":816 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":818 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":820 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":823 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 823, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":826 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":828 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":829 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":831 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":832 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":834 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":835 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":838 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":839 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x66; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x64; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x67; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ /*else*/ { __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 844, __pyx_L1_error) } __pyx_L15:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":845 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":820 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ goto __pyx_L13; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":849 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ /*else*/ { __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == NULL)) __PYX_ERR(1, 849, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":794 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":850 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":966 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * cdef PyObject* baseptr * if base is None: */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { PyObject *__pyx_v_baseptr; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":968 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< * baseptr = NULL * else: */ __pyx_t_1 = (__pyx_v_base == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":969 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< * else: * Py_INCREF(base) # important to do this before decref below! */ __pyx_v_baseptr = NULL; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":968 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< * baseptr = NULL * else: */ goto __pyx_L3; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":971 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< * baseptr = base * Py_XDECREF(arr.base) */ /*else*/ { Py_INCREF(__pyx_v_base); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":972 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< * Py_XDECREF(arr.base) * arr.base = baseptr */ __pyx_v_baseptr = ((PyObject *)__pyx_v_base); } __pyx_L3:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":973 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< * arr.base = baseptr * */ Py_XDECREF(__pyx_v_arr->base); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":974 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ __pyx_v_arr->base = __pyx_v_baseptr; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":966 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * cdef PyObject* baseptr * if base is None: */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * if arr.base is NULL: * return None */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< * return None * else: */ __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":978 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< * else: * return arr.base */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< * return None * else: */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":980 * return None * else: * return arr.base # <<<<<<<<<<<<<< */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); __pyx_r = ((PyObject *)__pyx_v_arr->base); goto __pyx_L0; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * if arr.base is NULL: * return None */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":120 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* Python wrapper */ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_shape = 0; Py_ssize_t __pyx_v_itemsize; PyObject *__pyx_v_format = 0; PyObject *__pyx_v_mode = 0; int __pyx_v_allocate_buffer; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; PyObject* values[5] = {0,0,0,0,0}; values[3] = ((PyObject *)__pyx_n_s_c); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 120, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 120, __pyx_L3_error) } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mode); if (value) { values[3] = value; kw_args--; } } case 4: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_allocate_buffer); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 120, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_shape = ((PyObject*)values[0]); __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 120, __pyx_L3_error) __pyx_v_format = values[2]; __pyx_v_mode = values[3]; if (values[4]) { __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 121, __pyx_L3_error) } else { /* "View.MemoryView":121 * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< * * cdef int idx */ __pyx_v_allocate_buffer = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 120, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(2, 120, __pyx_L1_error) if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(2, 120, __pyx_L1_error) } __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); /* "View.MemoryView":120 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { int __pyx_v_idx; Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_dim; PyObject **__pyx_v_p; char __pyx_v_order; int __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; int __pyx_t_7; Py_ssize_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_RefNannySetupContext("__cinit__", 0); __Pyx_INCREF(__pyx_v_format); /* "View.MemoryView":127 * cdef PyObject **p * * self.ndim = len(shape) # <<<<<<<<<<<<<< * self.itemsize = itemsize * */ if (unlikely(__pyx_v_shape == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 127, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(2, 127, __pyx_L1_error) __pyx_v_self->ndim = ((int)__pyx_t_1); /* "View.MemoryView":128 * * self.ndim = len(shape) * self.itemsize = itemsize # <<<<<<<<<<<<<< * * if not self.ndim: */ __pyx_v_self->itemsize = __pyx_v_itemsize; /* "View.MemoryView":130 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":131 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 131, __pyx_L1_error) /* "View.MemoryView":130 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ } /* "View.MemoryView":133 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":134 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 134, __pyx_L1_error) /* "View.MemoryView":133 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ } /* "View.MemoryView":136 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ __pyx_t_2 = PyBytes_Check(__pyx_v_format); __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":137 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":136 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ } /* "View.MemoryView":138 * if not isinstance(format, bytes): * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< * self.format = self._format * */ if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 138, __pyx_L1_error) __pyx_t_5 = __pyx_v_format; __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_self->_format); __Pyx_DECREF(__pyx_v_self->_format); __pyx_v_self->_format = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":139 * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string * self.format = self._format # <<<<<<<<<<<<<< * * */ __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_self->_format); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(2, 139, __pyx_L1_error) __pyx_v_self->format = __pyx_t_6; /* "View.MemoryView":142 * * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< * self._strides = self._shape + self.ndim * */ __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); /* "View.MemoryView":143 * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< * * if not self._shape: */ __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); /* "View.MemoryView":145 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":146 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 146, __pyx_L1_error) /* "View.MemoryView":145 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ } /* "View.MemoryView":149 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ __pyx_t_7 = 0; __pyx_t_5 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_5); __pyx_t_1 = 0; for (;;) { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(2, 149, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_dim = __pyx_t_8; __pyx_v_idx = __pyx_t_7; __pyx_t_7 = (__pyx_t_7 + 1); /* "View.MemoryView":150 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); if (__pyx_t_4) { /* "View.MemoryView":151 * for idx, dim in enumerate(shape): * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< * self._shape[idx] = dim * */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9); __pyx_t_3 = 0; __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(2, 151, __pyx_L1_error) /* "View.MemoryView":150 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ } /* "View.MemoryView":152 * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim # <<<<<<<<<<<<<< * * cdef char order */ (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; /* "View.MemoryView":149 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":155 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 155, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":156 * cdef char order * if mode == 'fortran': * order = b'F' # <<<<<<<<<<<<<< * self.mode = u'fortran' * elif mode == 'c': */ __pyx_v_order = 'F'; /* "View.MemoryView":157 * if mode == 'fortran': * order = b'F' * self.mode = u'fortran' # <<<<<<<<<<<<<< * elif mode == 'c': * order = b'C' */ __Pyx_INCREF(__pyx_n_u_fortran); __Pyx_GIVEREF(__pyx_n_u_fortran); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_fortran; /* "View.MemoryView":155 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ goto __pyx_L10; } /* "View.MemoryView":158 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 158, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":159 * self.mode = u'fortran' * elif mode == 'c': * order = b'C' # <<<<<<<<<<<<<< * self.mode = u'c' * else: */ __pyx_v_order = 'C'; /* "View.MemoryView":160 * elif mode == 'c': * order = b'C' * self.mode = u'c' # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) */ __Pyx_INCREF(__pyx_n_u_c); __Pyx_GIVEREF(__pyx_n_u_c); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_c; /* "View.MemoryView":158 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ goto __pyx_L10; } /* "View.MemoryView":162 * self.mode = u'c' * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< * * self.len = fill_contig_strides_array(self._shape, self._strides, */ /*else*/ { __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 162, __pyx_L1_error) } __pyx_L10:; /* "View.MemoryView":164 * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) * * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< * itemsize, self.ndim, order) * */ __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); /* "View.MemoryView":167 * itemsize, self.ndim, order) * * self.free_data = allocate_buffer # <<<<<<<<<<<<<< * self.dtype_is_object = format == b'O' * if allocate_buffer: */ __pyx_v_self->free_data = __pyx_v_allocate_buffer; /* "View.MemoryView":168 * * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< * if allocate_buffer: * */ __pyx_t_5 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 168, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_self->dtype_is_object = __pyx_t_4; /* "View.MemoryView":169 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ __pyx_t_4 = (__pyx_v_allocate_buffer != 0); if (__pyx_t_4) { /* "View.MemoryView":172 * * * self.data = malloc(self.len) # <<<<<<<<<<<<<< * if not self.data: * raise MemoryError("unable to allocate array data.") */ __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); /* "View.MemoryView":173 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":174 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 174, __pyx_L1_error) /* "View.MemoryView":173 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ } /* "View.MemoryView":176 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_4) { /* "View.MemoryView":177 * * if self.dtype_is_object: * p = self.data # <<<<<<<<<<<<<< * for i in range(self.len / itemsize): * p[i] = Py_None */ __pyx_v_p = ((PyObject **)__pyx_v_self->data); /* "View.MemoryView":178 * if self.dtype_is_object: * p = self.data * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< * p[i] = Py_None * Py_INCREF(Py_None) */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 178, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 178, __pyx_L1_error) } __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_1; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; /* "View.MemoryView":179 * p = self.data * for i in range(self.len / itemsize): * p[i] = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ (__pyx_v_p[__pyx_v_i]) = Py_None; /* "View.MemoryView":180 * for i in range(self.len / itemsize): * p[i] = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * @cname('getbuffer') */ Py_INCREF(Py_None); } /* "View.MemoryView":176 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ } /* "View.MemoryView":169 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":120 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_format); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":183 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_bufmode; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; Py_ssize_t *__pyx_t_7; __Pyx_RefNannySetupContext("__getbuffer__", 0); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "View.MemoryView":184 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 # <<<<<<<<<<<<<< * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = -1; /* "View.MemoryView":185 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 185, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":186 * cdef int bufmode = -1 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":185 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ goto __pyx_L3; } /* "View.MemoryView":187 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 187, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":188 * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") */ __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":187 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ } __pyx_L3:; /* "View.MemoryView":189 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":190 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 190, __pyx_L1_error) /* "View.MemoryView":189 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ } /* "View.MemoryView":191 * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data # <<<<<<<<<<<<<< * info.len = self.len * info.ndim = self.ndim */ __pyx_t_4 = __pyx_v_self->data; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":192 * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data * info.len = self.len # <<<<<<<<<<<<<< * info.ndim = self.ndim * info.shape = self._shape */ __pyx_t_5 = __pyx_v_self->len; __pyx_v_info->len = __pyx_t_5; /* "View.MemoryView":193 * info.buf = self.data * info.len = self.len * info.ndim = self.ndim # <<<<<<<<<<<<<< * info.shape = self._shape * info.strides = self._strides */ __pyx_t_6 = __pyx_v_self->ndim; __pyx_v_info->ndim = __pyx_t_6; /* "View.MemoryView":194 * info.len = self.len * info.ndim = self.ndim * info.shape = self._shape # <<<<<<<<<<<<<< * info.strides = self._strides * info.suboffsets = NULL */ __pyx_t_7 = __pyx_v_self->_shape; __pyx_v_info->shape = __pyx_t_7; /* "View.MemoryView":195 * info.ndim = self.ndim * info.shape = self._shape * info.strides = self._strides # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = self.itemsize */ __pyx_t_7 = __pyx_v_self->_strides; __pyx_v_info->strides = __pyx_t_7; /* "View.MemoryView":196 * info.shape = self._shape * info.strides = self._strides * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = self.itemsize * info.readonly = 0 */ __pyx_v_info->suboffsets = NULL; /* "View.MemoryView":197 * info.strides = self._strides * info.suboffsets = NULL * info.itemsize = self.itemsize # <<<<<<<<<<<<<< * info.readonly = 0 * */ __pyx_t_5 = __pyx_v_self->itemsize; __pyx_v_info->itemsize = __pyx_t_5; /* "View.MemoryView":198 * info.suboffsets = NULL * info.itemsize = self.itemsize * info.readonly = 0 # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ __pyx_v_info->readonly = 0; /* "View.MemoryView":200 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":201 * * if flags & PyBUF_FORMAT: * info.format = self.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_4 = __pyx_v_self->format; __pyx_v_info->format = __pyx_t_4; /* "View.MemoryView":200 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ goto __pyx_L5; } /* "View.MemoryView":203 * info.format = self.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.obj = self */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L5:; /* "View.MemoryView":205 * info.format = NULL * * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":183 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":209 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* Python wrapper */ static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":210 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":211 * def __dealloc__(array self): * if self.callback_free_data != NULL: * self.callback_free_data(self.data) # <<<<<<<<<<<<<< * elif self.free_data: * if self.dtype_is_object: */ __pyx_v_self->callback_free_data(__pyx_v_self->data); /* "View.MemoryView":210 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ goto __pyx_L3; } /* "View.MemoryView":212 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ __pyx_t_1 = (__pyx_v_self->free_data != 0); if (__pyx_t_1) { /* "View.MemoryView":213 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":214 * elif self.free_data: * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< * self._strides, self.ndim, False) * free(self.data) */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); /* "View.MemoryView":213 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ } /* "View.MemoryView":216 * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) * free(self.data) # <<<<<<<<<<<<<< * PyObject_Free(self._shape) * */ free(__pyx_v_self->data); /* "View.MemoryView":212 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ } __pyx_L3:; /* "View.MemoryView":217 * self._strides, self.ndim, False) * free(self.data) * PyObject_Free(self._shape) # <<<<<<<<<<<<<< * * @property */ PyObject_Free(__pyx_v_self->_shape); /* "View.MemoryView":209 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":220 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":221 * @property * def memview(self): * return self.get_memview() # <<<<<<<<<<<<<< * * @cname('get_memview') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":220 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":224 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_memview", 0); /* "View.MemoryView":225 * @cname('get_memview') * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< * return memoryview(self, flags, self.dtype_is_object) * */ __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); /* "View.MemoryView":226 * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":224 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":229 * * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* Python wrapper */ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "View.MemoryView":230 * * def __getattr__(self, attr): * return getattr(self.memview, attr) # <<<<<<<<<<<<<< * * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":229 * * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":232 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* Python wrapper */ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":233 * * def __getitem__(self, item): * return self.memview[item] # <<<<<<<<<<<<<< * * def __setitem__(self, item, value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":232 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":235 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* Python wrapper */ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); /* "View.MemoryView":236 * * def __setitem__(self, item, value): * self.memview[item] = value # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":235 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":240 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { struct __pyx_array_obj *__pyx_v_result = 0; struct __pyx_array_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("array_cwrapper", 0); /* "View.MemoryView":244 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":245 * * if buf == NULL: * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":244 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ goto __pyx_L3; } /* "View.MemoryView":247 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ /*else*/ { __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; /* "View.MemoryView":248 * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) # <<<<<<<<<<<<<< * result.data = buf * */ __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 248, __pyx_L1_error) /* "View.MemoryView":247 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":249 * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) * result.data = buf # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->data = __pyx_v_buf; } __pyx_L3:; /* "View.MemoryView":251 * result.data = buf * * return result # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":240 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":277 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* Python wrapper */ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 277, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_name = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 277, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "View.MemoryView":278 * cdef object name * def __init__(self, name): * self.name = name # <<<<<<<<<<<<<< * def __repr__(self): * return self.name */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; /* "View.MemoryView":277 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":279 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* Python wrapper */ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":280 * self.name = name * def __repr__(self): * return self.name # <<<<<<<<<<<<<< * * cdef generic = Enum("") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* "View.MemoryView":279 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":294 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { Py_intptr_t __pyx_v_aligned_p; size_t __pyx_v_offset; void *__pyx_r; int __pyx_t_1; /* "View.MemoryView":296 * cdef void *align_pointer(void *memory, size_t alignment) nogil: * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< * cdef size_t offset * */ __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); /* "View.MemoryView":300 * * with cython.cdivision(True): * offset = aligned_p % alignment # <<<<<<<<<<<<<< * * if offset > 0: */ __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); /* "View.MemoryView":302 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ __pyx_t_1 = ((__pyx_v_offset > 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":303 * * if offset > 0: * aligned_p += alignment - offset # <<<<<<<<<<<<<< * * return aligned_p */ __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); /* "View.MemoryView":302 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ } /* "View.MemoryView":305 * aligned_p += alignment - offset * * return aligned_p # <<<<<<<<<<<<<< * * */ __pyx_r = ((void *)__pyx_v_aligned_p); goto __pyx_L0; /* "View.MemoryView":294 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":341 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* Python wrapper */ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_obj = 0; int __pyx_v_flags; int __pyx_v_dtype_is_object; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 341, __pyx_L3_error) } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_dtype_is_object); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 341, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_obj = values[0]; __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 341, __pyx_L3_error) if (values[2]) { __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 341, __pyx_L3_error) } else { __pyx_v_dtype_is_object = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 341, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("__cinit__", 0); /* "View.MemoryView":342 * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj # <<<<<<<<<<<<<< * self.flags = flags * if type(self) is memoryview or obj is not None: */ __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); __Pyx_GOTREF(__pyx_v_self->obj); __Pyx_DECREF(__pyx_v_self->obj); __pyx_v_self->obj = __pyx_v_obj; /* "View.MemoryView":343 * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj * self.flags = flags # <<<<<<<<<<<<<< * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) */ __pyx_v_self->flags = __pyx_v_flags; /* "View.MemoryView":344 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_obj != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":345 * self.flags = flags * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None */ __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 345, __pyx_L1_error) /* "View.MemoryView":346 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":347 * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; /* "View.MemoryView":348 * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * global __pyx_memoryview_thread_locks_used */ Py_INCREF(Py_None); /* "View.MemoryView":346 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ } /* "View.MemoryView":344 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ } /* "View.MemoryView":351 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); if (__pyx_t_1) { /* "View.MemoryView":352 * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: */ __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); /* "View.MemoryView":353 * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< * if self.lock is NULL: * self.lock = PyThread_allocate_lock() */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); /* "View.MemoryView":351 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ } /* "View.MemoryView":354 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":355 * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< * if self.lock is NULL: * raise MemoryError */ __pyx_v_self->lock = PyThread_allocate_lock(); /* "View.MemoryView":356 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":357 * self.lock = PyThread_allocate_lock() * if self.lock is NULL: * raise MemoryError # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ PyErr_NoMemory(); __PYX_ERR(2, 357, __pyx_L1_error) /* "View.MemoryView":356 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ } /* "View.MemoryView":354 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ } /* "View.MemoryView":359 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":360 * * if flags & PyBUF_FORMAT: * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< * else: * self.dtype_is_object = dtype_is_object */ __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_self->dtype_is_object = __pyx_t_1; /* "View.MemoryView":359 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ goto __pyx_L10; } /* "View.MemoryView":362 * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( */ /*else*/ { __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; } __pyx_L10:; /* "View.MemoryView":364 * self.dtype_is_object = dtype_is_object * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL */ __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); /* "View.MemoryView":366 * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL # <<<<<<<<<<<<<< * * def __dealloc__(memoryview self): */ __pyx_v_self->typeinfo = NULL; /* "View.MemoryView":341 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":368 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* Python wrapper */ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { int __pyx_v_i; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; PyThread_type_lock __pyx_t_5; PyThread_type_lock __pyx_t_6; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":369 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * */ __pyx_t_1 = (__pyx_v_self->obj != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":370 * def __dealloc__(memoryview self): * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< * * cdef int i */ __Pyx_ReleaseBuffer((&__pyx_v_self->view)); /* "View.MemoryView":369 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * */ } /* "View.MemoryView":374 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":375 * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 */ __pyx_t_3 = __pyx_memoryview_thread_locks_used; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":376 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); if (__pyx_t_2) { /* "View.MemoryView":377 * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); /* "View.MemoryView":378 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); if (__pyx_t_2) { /* "View.MemoryView":380 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< * break * else: */ __pyx_t_5 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_v_i]); /* "View.MemoryView":379 * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break */ (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_5; (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_6; /* "View.MemoryView":378 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ } /* "View.MemoryView":381 * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break # <<<<<<<<<<<<<< * else: * PyThread_free_lock(self.lock) */ goto __pyx_L6_break; /* "View.MemoryView":376 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ } } /*else*/ { /* "View.MemoryView":383 * break * else: * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< * * cdef char *get_item_pointer(memoryview self, object index) except NULL: */ PyThread_free_lock(__pyx_v_self->lock); } __pyx_L6_break:; /* "View.MemoryView":374 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ } /* "View.MemoryView":368 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":385 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { Py_ssize_t __pyx_v_dim; char *__pyx_v_itemp; PyObject *__pyx_v_idx = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; Py_ssize_t __pyx_t_6; char *__pyx_t_7; __Pyx_RefNannySetupContext("get_item_pointer", 0); /* "View.MemoryView":387 * cdef char *get_item_pointer(memoryview self, object index) except NULL: * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< * * for dim, idx in enumerate(index): */ __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); /* "View.MemoryView":389 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 389, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 389, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 389, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 389, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_1; __pyx_t_1 = (__pyx_t_1 + 1); /* "View.MemoryView":390 * * for dim, idx in enumerate(index): * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< * * return itemp */ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 390, __pyx_L1_error) __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == NULL)) __PYX_ERR(2, 390, __pyx_L1_error) __pyx_v_itemp = __pyx_t_7; /* "View.MemoryView":389 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":392 * itemp = pybuffer_index(&self.view, itemp, idx, dim) * * return itemp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_itemp; goto __pyx_L0; /* "View.MemoryView":385 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_idx); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":395 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* Python wrapper */ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_indices = NULL; char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":396 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":397 * def __getitem__(memoryview self, object index): * if index is Ellipsis: * return self # <<<<<<<<<<<<<< * * have_slices, indices = _unellipsify(index, self.view.ndim) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; /* "View.MemoryView":396 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ } /* "View.MemoryView":399 * return self * * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * cdef char *itemp */ __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 399, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 399, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indices = __pyx_t_5; __pyx_t_5 = 0; /* "View.MemoryView":402 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 402, __pyx_L1_error) if (__pyx_t_2) { /* "View.MemoryView":403 * cdef char *itemp * if have_slices: * return memview_slice(self, indices) # <<<<<<<<<<<<<< * else: * itemp = self.get_item_pointer(indices) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":402 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ } /* "View.MemoryView":405 * return memview_slice(self, indices) * else: * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< * return self.convert_item_to_object(itemp) * */ /*else*/ { __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == NULL)) __PYX_ERR(2, 405, __pyx_L1_error) __pyx_v_itemp = __pyx_t_6; /* "View.MemoryView":406 * else: * itemp = self.get_item_pointer(indices) * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< * * def __setitem__(memoryview self, object index, object value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":395 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_indices); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":408 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * have_slices, index = _unellipsify(index, self.view.ndim) * */ /* Python wrapper */ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_obj = NULL; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_index); /* "View.MemoryView":409 * * def __setitem__(memoryview self, object index, object value): * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * if have_slices: */ __pyx_t_1 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 409, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 409, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":411 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 411, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":412 * * if have_slices: * obj = self.is_slice(value) # <<<<<<<<<<<<<< * if obj: * self.setitem_slice_assignment(self[index], obj) */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_obj = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":413 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 413, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":414 * obj = self.is_slice(value) * if obj: * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< * else: * self.setitem_slice_assign_scalar(self[index], value) */ __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_1, __pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":413 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ goto __pyx_L4; } /* "View.MemoryView":416 * self.setitem_slice_assignment(self[index], obj) * else: * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< * else: * self.setitem_indexed(index, value) */ /*else*/ { __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 416, __pyx_L1_error) __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_3), __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L4:; /* "View.MemoryView":411 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ goto __pyx_L3; } /* "View.MemoryView":418 * self.setitem_slice_assign_scalar(self[index], value) * else: * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< * * cdef is_slice(self, obj): */ /*else*/ { __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L3:; /* "View.MemoryView":408 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * have_slices, index = _unellipsify(index, self.view.ndim) * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_obj); __Pyx_XDECREF(__pyx_v_index); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":420 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; __Pyx_RefNannySetupContext("is_slice", 0); __Pyx_INCREF(__pyx_v_obj); /* "View.MemoryView":421 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":422 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "View.MemoryView":423 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_self->flags | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":424 * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) # <<<<<<<<<<<<<< * except TypeError: * return None */ __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 424, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); /* "View.MemoryView":423 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":422 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L11_try_end; __pyx_L4_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":425 * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) * except TypeError: # <<<<<<<<<<<<<< * return None * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_9) { __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 425, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":426 * self.dtype_is_object) * except TypeError: * return None # <<<<<<<<<<<<<< * * return obj */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L7_except_return; } goto __pyx_L6_except_error; __pyx_L6_except_error:; /* "View.MemoryView":422 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L7_except_return:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L0; __pyx_L11_try_end:; } /* "View.MemoryView":421 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, */ } /* "View.MemoryView":428 * return None * * return obj # <<<<<<<<<<<<<< * * cdef setitem_slice_assignment(self, dst, src): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_obj); __pyx_r = __pyx_v_obj; goto __pyx_L0; /* "View.MemoryView":420 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_obj); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":430 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { __Pyx_memviewslice __pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_src_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); /* "View.MemoryView":434 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 434, __pyx_L1_error) /* "View.MemoryView":435 * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< * src.ndim, dst.ndim, self.dtype_is_object) * */ if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 435, __pyx_L1_error) /* "View.MemoryView":436 * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":434 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 434, __pyx_L1_error) /* "View.MemoryView":430 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":438 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { int __pyx_v_array[0x80]; void *__pyx_v_tmp; void *__pyx_v_item; __Pyx_memviewslice *__pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_tmp_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); /* "View.MemoryView":440 * cdef setitem_slice_assign_scalar(self, memoryview dst, value): * cdef int array[128] * cdef void *tmp = NULL # <<<<<<<<<<<<<< * cdef void *item * */ __pyx_v_tmp = NULL; /* "View.MemoryView":445 * cdef __Pyx_memviewslice *dst_slice * cdef __Pyx_memviewslice tmp_slice * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< * * if self.view.itemsize > sizeof(array): */ __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); /* "View.MemoryView":447 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); if (__pyx_t_1) { /* "View.MemoryView":448 * * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< * if tmp == NULL: * raise MemoryError */ __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); /* "View.MemoryView":449 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":450 * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: * raise MemoryError # <<<<<<<<<<<<<< * item = tmp * else: */ PyErr_NoMemory(); __PYX_ERR(2, 450, __pyx_L1_error) /* "View.MemoryView":449 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ } /* "View.MemoryView":451 * if tmp == NULL: * raise MemoryError * item = tmp # <<<<<<<<<<<<<< * else: * item = array */ __pyx_v_item = __pyx_v_tmp; /* "View.MemoryView":447 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ goto __pyx_L3; } /* "View.MemoryView":453 * item = tmp * else: * item = array # <<<<<<<<<<<<<< * * try: */ /*else*/ { __pyx_v_item = ((void *)__pyx_v_array); } __pyx_L3:; /* "View.MemoryView":455 * item = array * * try: # <<<<<<<<<<<<<< * if self.dtype_is_object: * ( item)[0] = value */ /*try:*/ { /* "View.MemoryView":456 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":457 * try: * if self.dtype_is_object: * ( item)[0] = value # <<<<<<<<<<<<<< * else: * self.assign_item_from_object( item, value) */ (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); /* "View.MemoryView":456 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ goto __pyx_L8; } /* "View.MemoryView":459 * ( item)[0] = value * else: * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 459, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L8:; /* "View.MemoryView":463 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":464 * * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, * item, self.dtype_is_object) */ __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 464, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":463 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ } /* "View.MemoryView":465 * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< * item, self.dtype_is_object) * finally: */ __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); } /* "View.MemoryView":468 * item, self.dtype_is_object) * finally: * PyMem_Free(tmp) # <<<<<<<<<<<<<< * * cdef setitem_indexed(self, index, value): */ /*finally:*/ { /*normal exit:*/{ PyMem_Free(__pyx_v_tmp); goto __pyx_L7; } /*exception exit:*/{ __Pyx_PyThreadState_declare __pyx_L6_error:; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { PyMem_Free(__pyx_v_tmp); } __Pyx_PyThreadState_assign if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L7:; } /* "View.MemoryView":438 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":470 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("setitem_indexed", 0); /* "View.MemoryView":471 * * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< * self.assign_item_from_object(itemp, value) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == NULL)) __PYX_ERR(2, 471, __pyx_L1_error) __pyx_v_itemp = __pyx_t_1; /* "View.MemoryView":472 * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":470 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":474 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_v_struct = NULL; PyObject *__pyx_v_bytesitem = 0; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; int __pyx_t_11; int __pyx_t_12; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":477 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef bytes bytesitem * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":480 * cdef bytes bytesitem * * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< * try: * result = struct.unpack(self.view.format, bytesitem) */ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":481 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "View.MemoryView":482 * bytesitem = itemp[:self.view.itemsize] * try: * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< * except struct.error: * raise ValueError("Unable to convert item to object") */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_bytesitem); __Pyx_GIVEREF(__pyx_v_bytesitem); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":481 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ } /* "View.MemoryView":486 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ /*else:*/ { __pyx_t_10 = strlen(__pyx_v_self->view.format); __pyx_t_11 = ((__pyx_t_10 == 1) != 0); if (__pyx_t_11) { /* "View.MemoryView":487 * else: * if len(self.view.format) == 1: * return result[0] # <<<<<<<<<<<<<< * return result * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 487, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6_except_return; /* "View.MemoryView":486 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ } /* "View.MemoryView":488 * if len(self.view.format) == 1: * return result[0] * return result # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L6_except_return; } __pyx_L3_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":483 * try: * result = struct.unpack(self.view.format, bytesitem) * except struct.error: # <<<<<<<<<<<<<< * raise ValueError("Unable to convert item to object") * else: */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(2, 483, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_9); /* "View.MemoryView":484 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 484, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(2, 484, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "View.MemoryView":481 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } /* "View.MemoryView":474 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesitem); __Pyx_XDECREF(__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":490 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_v_struct = NULL; char __pyx_v_c; PyObject *__pyx_v_bytesvalue = 0; Py_ssize_t __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; Py_ssize_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; char *__pyx_t_10; char *__pyx_t_11; char *__pyx_t_12; char *__pyx_t_13; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":493 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef char c * cdef bytes bytesvalue */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":498 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ __pyx_t_2 = PyTuple_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "View.MemoryView":499 * * if isinstance(value, tuple): * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< * else: * bytesvalue = struct.pack(self.view.format, value) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 499, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":498 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ goto __pyx_L3; } /* "View.MemoryView":501 * bytesvalue = struct.pack(self.view.format, *value) * else: * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< * * for i, c in enumerate(bytesvalue): */ /*else*/ { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 501, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:; /* "View.MemoryView":503 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_7 = 0; if (unlikely(__pyx_v_bytesvalue == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); __PYX_ERR(2, 503, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_bytesvalue); __pyx_t_9 = __pyx_v_bytesvalue; __pyx_t_11 = PyBytes_AS_STRING(__pyx_t_9); __pyx_t_12 = (__pyx_t_11 + PyBytes_GET_SIZE(__pyx_t_9)); for (__pyx_t_13 = __pyx_t_11; __pyx_t_13 < __pyx_t_12; __pyx_t_13++) { __pyx_t_10 = __pyx_t_13; __pyx_v_c = (__pyx_t_10[0]); /* "View.MemoryView":504 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ __pyx_v_i = __pyx_t_7; /* "View.MemoryView":503 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_7 = (__pyx_t_7 + 1); /* "View.MemoryView":504 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "View.MemoryView":490 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesvalue); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":507 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_STRIDES: * info.shape = self.view.shape */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; Py_ssize_t *__pyx_t_2; char *__pyx_t_3; void *__pyx_t_4; int __pyx_t_5; Py_ssize_t __pyx_t_6; __Pyx_RefNannySetupContext("__getbuffer__", 0); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "View.MemoryView":508 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":509 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_STRIDES: * info.shape = self.view.shape # <<<<<<<<<<<<<< * else: * info.shape = NULL */ __pyx_t_2 = __pyx_v_self->view.shape; __pyx_v_info->shape = __pyx_t_2; /* "View.MemoryView":508 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ goto __pyx_L3; } /* "View.MemoryView":511 * info.shape = self.view.shape * else: * info.shape = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_STRIDES: */ /*else*/ { __pyx_v_info->shape = NULL; } __pyx_L3:; /* "View.MemoryView":513 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":514 * * if flags & PyBUF_STRIDES: * info.strides = self.view.strides # <<<<<<<<<<<<<< * else: * info.strides = NULL */ __pyx_t_2 = __pyx_v_self->view.strides; __pyx_v_info->strides = __pyx_t_2; /* "View.MemoryView":513 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ goto __pyx_L4; } /* "View.MemoryView":516 * info.strides = self.view.strides * else: * info.strides = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_INDIRECT: */ /*else*/ { __pyx_v_info->strides = NULL; } __pyx_L4:; /* "View.MemoryView":518 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); if (__pyx_t_1) { /* "View.MemoryView":519 * * if flags & PyBUF_INDIRECT: * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< * else: * info.suboffsets = NULL */ __pyx_t_2 = __pyx_v_self->view.suboffsets; __pyx_v_info->suboffsets = __pyx_t_2; /* "View.MemoryView":518 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ goto __pyx_L5; } /* "View.MemoryView":521 * info.suboffsets = self.view.suboffsets * else: * info.suboffsets = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ /*else*/ { __pyx_v_info->suboffsets = NULL; } __pyx_L5:; /* "View.MemoryView":523 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":524 * * if flags & PyBUF_FORMAT: * info.format = self.view.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_3 = __pyx_v_self->view.format; __pyx_v_info->format = __pyx_t_3; /* "View.MemoryView":523 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ goto __pyx_L6; } /* "View.MemoryView":526 * info.format = self.view.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.buf = self.view.buf */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L6:; /* "View.MemoryView":528 * info.format = NULL * * info.buf = self.view.buf # <<<<<<<<<<<<<< * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize */ __pyx_t_4 = __pyx_v_self->view.buf; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":529 * * info.buf = self.view.buf * info.ndim = self.view.ndim # <<<<<<<<<<<<<< * info.itemsize = self.view.itemsize * info.len = self.view.len */ __pyx_t_5 = __pyx_v_self->view.ndim; __pyx_v_info->ndim = __pyx_t_5; /* "View.MemoryView":530 * info.buf = self.view.buf * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< * info.len = self.view.len * info.readonly = 0 */ __pyx_t_6 = __pyx_v_self->view.itemsize; __pyx_v_info->itemsize = __pyx_t_6; /* "View.MemoryView":531 * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize * info.len = self.view.len # <<<<<<<<<<<<<< * info.readonly = 0 * info.obj = self */ __pyx_t_6 = __pyx_v_self->view.len; __pyx_v_info->len = __pyx_t_6; /* "View.MemoryView":532 * info.itemsize = self.view.itemsize * info.len = self.view.len * info.readonly = 0 # <<<<<<<<<<<<<< * info.obj = self * */ __pyx_v_info->readonly = 0; /* "View.MemoryView":533 * info.len = self.view.len * info.readonly = 0 * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":507 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_STRIDES: * info.shape = self.view.shape */ /* function exit code */ __pyx_r = 0; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":539 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":540 * @property * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< * transpose_memslice(&result.from_slice) * return result */ __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 540, __pyx_L1_error) __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":541 * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< * return result * */ __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == 0)) __PYX_ERR(2, 541, __pyx_L1_error) /* "View.MemoryView":542 * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) * return result # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":539 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":545 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":546 * @property * def base(self): * return self.obj # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->obj); __pyx_r = __pyx_v_self->obj; goto __pyx_L0; /* "View.MemoryView":545 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":549 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_length; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":550 * @property * def shape(self): * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_length = (__pyx_t_2[0]); __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":549 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":553 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_stride; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":554 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":556 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 556, __pyx_L1_error) /* "View.MemoryView":554 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ } /* "View.MemoryView":558 * raise ValueError("Buffer view does not expose strides") * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_v_stride = (__pyx_t_3[0]); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "View.MemoryView":553 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":561 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; Py_ssize_t *__pyx_t_6; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":562 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":563 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__47, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":562 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ } /* "View.MemoryView":565 * return (-1,) * self.view.ndim * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { __pyx_t_4 = __pyx_t_6; __pyx_v_suboffset = (__pyx_t_4[0]); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":561 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":568 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":569 * @property * def ndim(self): * return self.view.ndim # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":568 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":572 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":573 * @property * def itemsize(self): * return self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":572 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":576 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":577 * @property * def nbytes(self): * return self.size * self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":576 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":580 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":581 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ __pyx_t_1 = (__pyx_v_self->_size == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":582 * def size(self): * if self._size is None: * result = 1 # <<<<<<<<<<<<<< * * for length in self.view.shape[:self.view.ndim]: */ __Pyx_INCREF(__pyx_int_1); __pyx_v_result = __pyx_int_1; /* "View.MemoryView":584 * result = 1 * * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< * result *= length * */ __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":585 * * for length in self.view.shape[:self.view.ndim]: * result *= length # <<<<<<<<<<<<<< * * self._size = result */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0; } /* "View.MemoryView":587 * result *= length * * self._size = result # <<<<<<<<<<<<<< * * return self._size */ __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); __Pyx_GOTREF(__pyx_v_self->_size); __Pyx_DECREF(__pyx_v_self->_size); __pyx_v_self->_size = __pyx_v_result; /* "View.MemoryView":581 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ } /* "View.MemoryView":589 * self._size = result * * return self._size # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_size); __pyx_r = __pyx_v_self->_size; goto __pyx_L0; /* "View.MemoryView":580 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":591 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* Python wrapper */ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":592 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":593 * def __len__(self): * if self.view.ndim >= 1: * return self.view.shape[0] # <<<<<<<<<<<<<< * * return 0 */ __pyx_r = (__pyx_v_self->view.shape[0]); goto __pyx_L0; /* "View.MemoryView":592 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ } /* "View.MemoryView":595 * return self.view.shape[0] * * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":591 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":597 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* Python wrapper */ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":598 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":599 * def __repr__(self): * return "" % (self.base.__class__.__name__, * id(self)) # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_id, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":598 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":597 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":601 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* Python wrapper */ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__str__", 0); /* "View.MemoryView":602 * * def __str__(self): * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":601 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":605 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_c_contig", 0); /* "View.MemoryView":608 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'C', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":609 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< * * def is_f_contig(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":605 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":611 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_f_contig", 0); /* "View.MemoryView":614 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'F', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":615 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< * * def copy(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":611 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":617 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_mslice; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy", 0); /* "View.MemoryView":619 * def copy(self): * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &mslice) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); /* "View.MemoryView":621 * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS * * slice_copy(self, &mslice) # <<<<<<<<<<<<<< * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); /* "View.MemoryView":622 * * slice_copy(self, &mslice) * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_C_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 622, __pyx_L1_error) __pyx_v_mslice = __pyx_t_1; /* "View.MemoryView":627 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< * * def copy_fortran(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":617 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":629 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy_fortran", 0); /* "View.MemoryView":631 * def copy_fortran(self): * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &src) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); /* "View.MemoryView":633 * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS * * slice_copy(self, &src) # <<<<<<<<<<<<<< * dst = slice_copy_contig(&src, "fortran", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); /* "View.MemoryView":634 * * slice_copy(self, &src) * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_F_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 634, __pyx_L1_error) __pyx_v_dst = __pyx_t_1; /* "View.MemoryView":639 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":629 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":643 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { struct __pyx_memoryview_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); /* "View.MemoryView":644 * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< * result.typeinfo = typeinfo * return result */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_o); __Pyx_GIVEREF(__pyx_v_o); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":645 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo # <<<<<<<<<<<<<< * return result * */ __pyx_v_result->typeinfo = __pyx_v_typeinfo; /* "View.MemoryView":646 * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_check') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":643 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":649 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("memoryview_check", 0); /* "View.MemoryView":650 * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): * return isinstance(o, memoryview) # <<<<<<<<<<<<<< * * cdef tuple _unellipsify(object index, int ndim): */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); __pyx_r = __pyx_t_1; goto __pyx_L0; /* "View.MemoryView":649 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":652 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { PyObject *__pyx_v_tup = NULL; PyObject *__pyx_v_result = NULL; int __pyx_v_have_slices; int __pyx_v_seen_ellipsis; CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_item = NULL; Py_ssize_t __pyx_v_nslices; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_unellipsify", 0); /* "View.MemoryView":657 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ __pyx_t_1 = PyTuple_Check(__pyx_v_index); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":658 * """ * if not isinstance(index, tuple): * tup = (index,) # <<<<<<<<<<<<<< * else: * tup = index */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_index); __Pyx_GIVEREF(__pyx_v_index); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); __pyx_v_tup = __pyx_t_3; __pyx_t_3 = 0; /* "View.MemoryView":657 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ goto __pyx_L3; } /* "View.MemoryView":660 * tup = (index,) * else: * tup = index # <<<<<<<<<<<<<< * * result = [] */ /*else*/ { __Pyx_INCREF(__pyx_v_index); __pyx_v_tup = __pyx_v_index; } __pyx_L3:; /* "View.MemoryView":662 * tup = index * * result = [] # <<<<<<<<<<<<<< * have_slices = False * seen_ellipsis = False */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":663 * * result = [] * have_slices = False # <<<<<<<<<<<<<< * seen_ellipsis = False * for idx, item in enumerate(tup): */ __pyx_v_have_slices = 0; /* "View.MemoryView":664 * result = [] * have_slices = False * seen_ellipsis = False # <<<<<<<<<<<<<< * for idx, item in enumerate(tup): * if item is Ellipsis: */ __pyx_v_seen_ellipsis = 0; /* "View.MemoryView":665 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 665, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 665, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 665, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 665, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* "View.MemoryView":666 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":667 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":668 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 668, __pyx_L1_error) __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { __Pyx_INCREF(__pyx_slice__48); __Pyx_GIVEREF(__pyx_slice__48); PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__48); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 668, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":669 * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True # <<<<<<<<<<<<<< * else: * result.append(slice(None)) */ __pyx_v_seen_ellipsis = 1; /* "View.MemoryView":667 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ goto __pyx_L7; } /* "View.MemoryView":671 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ /*else*/ { __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__49); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 671, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":672 * else: * result.append(slice(None)) * have_slices = True # <<<<<<<<<<<<<< * else: * if not isinstance(item, slice) and not PyIndex_Check(item): */ __pyx_v_have_slices = 1; /* "View.MemoryView":666 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ goto __pyx_L6; } /* "View.MemoryView":674 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ /*else*/ { __pyx_t_2 = PySlice_Check(__pyx_v_item); __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); __pyx_t_1 = __pyx_t_10; __pyx_L9_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":675 * else: * if not isinstance(item, slice) and not PyIndex_Check(item): * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< * * have_slices = have_slices or isinstance(item, slice) */ __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(2, 675, __pyx_L1_error) /* "View.MemoryView":674 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ } /* "View.MemoryView":677 * raise TypeError("Cannot index with type '%s'" % type(item)) * * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< * result.append(item) * */ __pyx_t_10 = (__pyx_v_have_slices != 0); if (!__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = PySlice_Check(__pyx_v_item); __pyx_t_2 = (__pyx_t_10 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_have_slices = __pyx_t_1; /* "View.MemoryView":678 * * have_slices = have_slices or isinstance(item, slice) * result.append(item) # <<<<<<<<<<<<<< * * nslices = ndim - len(result) */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 678, __pyx_L1_error) } __pyx_L6:; /* "View.MemoryView":665 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":680 * result.append(item) * * nslices = ndim - len(result) # <<<<<<<<<<<<<< * if nslices: * result.extend([slice(None)] * nslices) */ __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(2, 680, __pyx_L1_error) __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); /* "View.MemoryView":681 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ __pyx_t_1 = (__pyx_v_nslices != 0); if (__pyx_t_1) { /* "View.MemoryView":682 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { __Pyx_INCREF(__pyx_slice__50); __Pyx_GIVEREF(__pyx_slice__50); PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__50); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":681 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ } /* "View.MemoryView":684 * result.extend([slice(None)] * nslices) * * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): */ __Pyx_XDECREF(__pyx_r); if (!__pyx_v_have_slices) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L14_bool_binop_done:; __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L0; /* "View.MemoryView":652 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_tup); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_item); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":686 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); /* "View.MemoryView":687 * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") */ __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { __pyx_t_1 = __pyx_t_3; __pyx_v_suboffset = (__pyx_t_1[0]); /* "View.MemoryView":688 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_4) { /* "View.MemoryView":689 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 689, __pyx_L1_error) /* "View.MemoryView":688 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ } } /* "View.MemoryView":686 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":696 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { int __pyx_v_new_ndim; int __pyx_v_suboffset_dim; int __pyx_v_dim; __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; __Pyx_memviewslice *__pyx_v_p_src; struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; __Pyx_memviewslice *__pyx_v_p_dst; int *__pyx_v_p_suboffset_dim; Py_ssize_t __pyx_v_start; Py_ssize_t __pyx_v_stop; Py_ssize_t __pyx_v_step; int __pyx_v_have_start; int __pyx_v_have_stop; int __pyx_v_have_step; PyObject *__pyx_v_index = NULL; struct __pyx_memoryview_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; struct __pyx_memoryview_obj *__pyx_t_4; char *__pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; __Pyx_RefNannySetupContext("memview_slice", 0); /* "View.MemoryView":697 * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< * cdef bint negative_step * cdef __Pyx_memviewslice src, dst */ __pyx_v_new_ndim = 0; __pyx_v_suboffset_dim = -1; /* "View.MemoryView":704 * * * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< * * cdef _memoryviewslice memviewsliceobj */ memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst))); /* "View.MemoryView":708 * cdef _memoryviewslice memviewsliceobj * * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 708, __pyx_L1_error) } } #endif /* "View.MemoryView":710 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":711 * * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview # <<<<<<<<<<<<<< * p_src = &memviewsliceobj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 711, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":712 * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, &src) */ __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); /* "View.MemoryView":710 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ goto __pyx_L3; } /* "View.MemoryView":714 * p_src = &memviewsliceobj.from_slice * else: * slice_copy(memview, &src) # <<<<<<<<<<<<<< * p_src = &src * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); /* "View.MemoryView":715 * else: * slice_copy(memview, &src) * p_src = &src # <<<<<<<<<<<<<< * * */ __pyx_v_p_src = (&__pyx_v_src); } __pyx_L3:; /* "View.MemoryView":721 * * * dst.memview = p_src.memview # <<<<<<<<<<<<<< * dst.data = p_src.data * */ __pyx_t_4 = __pyx_v_p_src->memview; __pyx_v_dst.memview = __pyx_t_4; /* "View.MemoryView":722 * * dst.memview = p_src.memview * dst.data = p_src.data # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_v_p_src->data; __pyx_v_dst.data = __pyx_t_5; /* "View.MemoryView":727 * * * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< * cdef int *p_suboffset_dim = &suboffset_dim * cdef Py_ssize_t start, stop, step */ __pyx_v_p_dst = (&__pyx_v_dst); /* "View.MemoryView":728 * * cdef __Pyx_memviewslice *p_dst = &dst * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< * cdef Py_ssize_t start, stop, step * cdef bint have_start, have_stop, have_step */ __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); /* "View.MemoryView":732 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 732, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 732, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 732, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 732, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_dim = __pyx_t_6; __pyx_t_6 = (__pyx_t_6 + 1); /* "View.MemoryView":733 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); if (__pyx_t_2) { /* "View.MemoryView":737 * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< * 0, 0, 0, # have_{start,stop,step} * False) */ __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 737, __pyx_L1_error) /* "View.MemoryView":734 * for dim, index in enumerate(indices): * if PyIndex_Check(index): * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(2, 734, __pyx_L1_error) /* "View.MemoryView":733 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ goto __pyx_L6; } /* "View.MemoryView":740 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ __pyx_t_2 = (__pyx_v_index == Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":741 * False) * elif index is None: * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 */ (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; /* "View.MemoryView":742 * elif index is None: * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 */ (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; /* "View.MemoryView":743 * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< * new_ndim += 1 * else: */ (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; /* "View.MemoryView":744 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 # <<<<<<<<<<<<<< * else: * start = index.start or 0 */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); /* "View.MemoryView":740 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ goto __pyx_L6; } /* "View.MemoryView":746 * new_ndim += 1 * else: * start = index.start or 0 # <<<<<<<<<<<<<< * stop = index.stop or 0 * step = index.step or 0 */ /*else*/ { __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 746, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_10 = 0; __pyx_L7_bool_binop_done:; __pyx_v_start = __pyx_t_10; /* "View.MemoryView":747 * else: * start = index.start or 0 * stop = index.stop or 0 # <<<<<<<<<<<<<< * step = index.step or 0 * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 747, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 747, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = 0; __pyx_L9_bool_binop_done:; __pyx_v_stop = __pyx_t_10; /* "View.MemoryView":748 * start = index.start or 0 * stop = index.stop or 0 * step = index.step or 0 # <<<<<<<<<<<<<< * * have_start = index.start is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 748, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 748, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = 0; __pyx_L11_bool_binop_done:; __pyx_v_step = __pyx_t_10; /* "View.MemoryView":750 * step = index.step or 0 * * have_start = index.start is not None # <<<<<<<<<<<<<< * have_stop = index.stop is not None * have_step = index.step is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_start = __pyx_t_1; /* "View.MemoryView":751 * * have_start = index.start is not None * have_stop = index.stop is not None # <<<<<<<<<<<<<< * have_step = index.step is not None * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_stop = __pyx_t_1; /* "View.MemoryView":752 * have_start = index.start is not None * have_stop = index.stop is not None * have_step = index.step is not None # <<<<<<<<<<<<<< * * slice_memviewslice( */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_step = __pyx_t_1; /* "View.MemoryView":754 * have_step = index.step is not None * * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(2, 754, __pyx_L1_error) /* "View.MemoryView":760 * have_start, have_stop, have_step, * True) * new_ndim += 1 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); } __pyx_L6:; /* "View.MemoryView":732 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":762 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":763 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":764 * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< * memviewsliceobj.to_dtype_func, * memview.dtype_is_object) */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 764, __pyx_L1_error) } /* "View.MemoryView":765 * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< * memview.dtype_is_object) * else: */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 765, __pyx_L1_error) } /* "View.MemoryView":763 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 763, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":762 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ } /* "View.MemoryView":768 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ /*else*/ { __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":769 * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "View.MemoryView":768 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 768, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":696 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":793 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { Py_ssize_t __pyx_v_new_shape; int __pyx_v_negative_step; int __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":813 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":815 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ __pyx_t_1 = ((__pyx_v_start < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":816 * * if start < 0: * start += shape # <<<<<<<<<<<<<< * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":815 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ } /* "View.MemoryView":817 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ __pyx_t_1 = (0 <= __pyx_v_start); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":818 * start += shape * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< * else: * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 818, __pyx_L1_error) /* "View.MemoryView":817 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ } /* "View.MemoryView":813 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ goto __pyx_L3; } /* "View.MemoryView":821 * else: * * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< * * if have_step and step == 0: */ /*else*/ { __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L6_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step < 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L6_bool_binop_done:; __pyx_v_negative_step = __pyx_t_2; /* "View.MemoryView":823 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ __pyx_t_1 = (__pyx_v_have_step != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step == 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* "View.MemoryView":824 * * if have_step and step == 0: * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 824, __pyx_L1_error) /* "View.MemoryView":823 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ } /* "View.MemoryView":827 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ __pyx_t_2 = (__pyx_v_have_start != 0); if (__pyx_t_2) { /* "View.MemoryView":828 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":829 * if have_start: * if start < 0: * start += shape # <<<<<<<<<<<<<< * if start < 0: * start = 0 */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":830 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":831 * start += shape * if start < 0: * start = 0 # <<<<<<<<<<<<<< * elif start >= shape: * if negative_step: */ __pyx_v_start = 0; /* "View.MemoryView":830 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ } /* "View.MemoryView":828 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ goto __pyx_L12; } /* "View.MemoryView":832 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":833 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":834 * elif start >= shape: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = shape */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":833 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L14; } /* "View.MemoryView":836 * start = shape - 1 * else: * start = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ /*else*/ { __pyx_v_start = __pyx_v_shape; } __pyx_L14:; /* "View.MemoryView":832 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ } __pyx_L12:; /* "View.MemoryView":827 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ goto __pyx_L11; } /* "View.MemoryView":838 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":839 * else: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = 0 */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":838 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L15; } /* "View.MemoryView":841 * start = shape - 1 * else: * start = 0 # <<<<<<<<<<<<<< * * if have_stop: */ /*else*/ { __pyx_v_start = 0; } __pyx_L15:; } __pyx_L11:; /* "View.MemoryView":843 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ __pyx_t_2 = (__pyx_v_have_stop != 0); if (__pyx_t_2) { /* "View.MemoryView":844 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":845 * if have_stop: * if stop < 0: * stop += shape # <<<<<<<<<<<<<< * if stop < 0: * stop = 0 */ __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); /* "View.MemoryView":846 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":847 * stop += shape * if stop < 0: * stop = 0 # <<<<<<<<<<<<<< * elif stop > shape: * stop = shape */ __pyx_v_stop = 0; /* "View.MemoryView":846 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ } /* "View.MemoryView":844 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ goto __pyx_L17; } /* "View.MemoryView":848 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":849 * stop = 0 * elif stop > shape: * stop = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ __pyx_v_stop = __pyx_v_shape; /* "View.MemoryView":848 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ } __pyx_L17:; /* "View.MemoryView":843 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ goto __pyx_L16; } /* "View.MemoryView":851 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":852 * else: * if negative_step: * stop = -1 # <<<<<<<<<<<<<< * else: * stop = shape */ __pyx_v_stop = -1L; /* "View.MemoryView":851 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ goto __pyx_L19; } /* "View.MemoryView":854 * stop = -1 * else: * stop = shape # <<<<<<<<<<<<<< * * if not have_step: */ /*else*/ { __pyx_v_stop = __pyx_v_shape; } __pyx_L19:; } __pyx_L16:; /* "View.MemoryView":856 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":857 * * if not have_step: * step = 1 # <<<<<<<<<<<<<< * * */ __pyx_v_step = 1; /* "View.MemoryView":856 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ } /* "View.MemoryView":861 * * with cython.cdivision(True): * new_shape = (stop - start) // step # <<<<<<<<<<<<<< * * if (stop - start) - step * new_shape: */ __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); /* "View.MemoryView":863 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); if (__pyx_t_2) { /* "View.MemoryView":864 * * if (stop - start) - step * new_shape: * new_shape += 1 # <<<<<<<<<<<<<< * * if new_shape < 0: */ __pyx_v_new_shape = (__pyx_v_new_shape + 1); /* "View.MemoryView":863 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ } /* "View.MemoryView":866 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":867 * * if new_shape < 0: * new_shape = 0 # <<<<<<<<<<<<<< * * */ __pyx_v_new_shape = 0; /* "View.MemoryView":866 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ } /* "View.MemoryView":870 * * * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset */ (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); /* "View.MemoryView":871 * * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< * dst.suboffsets[new_ndim] = suboffset * */ (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; /* "View.MemoryView":872 * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< * * */ (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; } __pyx_L3:; /* "View.MemoryView":875 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":876 * * if suboffset_dim[0] < 0: * dst.data += start * stride # <<<<<<<<<<<<<< * else: * dst.suboffsets[suboffset_dim[0]] += start * stride */ __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); /* "View.MemoryView":875 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ goto __pyx_L23; } /* "View.MemoryView":878 * dst.data += start * stride * else: * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< * * if suboffset >= 0: */ /*else*/ { __pyx_t_3 = (__pyx_v_suboffset_dim[0]); (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); } __pyx_L23:; /* "View.MemoryView":880 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":881 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":882 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":883 * if not is_slice: * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " */ __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); /* "View.MemoryView":882 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ goto __pyx_L26; } /* "View.MemoryView":885 * dst.data = ( dst.data)[0] + suboffset * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< * "must be indexed and not sliced", dim) * else: */ /*else*/ { /* "View.MemoryView":886 * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< * else: * suboffset_dim[0] = new_ndim */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 885, __pyx_L1_error) } __pyx_L26:; /* "View.MemoryView":881 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ goto __pyx_L25; } /* "View.MemoryView":888 * "must be indexed and not sliced", dim) * else: * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< * * return 0 */ /*else*/ { (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; } __pyx_L25:; /* "View.MemoryView":880 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ } /* "View.MemoryView":890 * suboffset_dim[0] = new_ndim * * return 0 # <<<<<<<<<<<<<< * * */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":793 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":896 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { Py_ssize_t __pyx_v_shape; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_suboffset; Py_ssize_t __pyx_v_itemsize; char *__pyx_v_resultp; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("pybuffer_index", 0); /* "View.MemoryView":898 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< * cdef Py_ssize_t itemsize = view.itemsize * cdef char *resultp */ __pyx_v_suboffset = -1L; /* "View.MemoryView":899 * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< * cdef char *resultp * */ __pyx_t_1 = __pyx_v_view->itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":902 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":903 * * if view.ndim == 0: * shape = view.len / itemsize # <<<<<<<<<<<<<< * stride = itemsize * else: */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 903, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 903, __pyx_L1_error) } __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); /* "View.MemoryView":904 * if view.ndim == 0: * shape = view.len / itemsize * stride = itemsize # <<<<<<<<<<<<<< * else: * shape = view.shape[dim] */ __pyx_v_stride = __pyx_v_itemsize; /* "View.MemoryView":902 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ goto __pyx_L3; } /* "View.MemoryView":906 * stride = itemsize * else: * shape = view.shape[dim] # <<<<<<<<<<<<<< * stride = view.strides[dim] * if view.suboffsets != NULL: */ /*else*/ { __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); /* "View.MemoryView":907 * else: * shape = view.shape[dim] * stride = view.strides[dim] # <<<<<<<<<<<<<< * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] */ __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); /* "View.MemoryView":908 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":909 * stride = view.strides[dim] * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< * * if index < 0: */ __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); /* "View.MemoryView":908 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ } } __pyx_L3:; /* "View.MemoryView":911 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":912 * * if index < 0: * index += view.shape[dim] # <<<<<<<<<<<<<< * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) */ __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); /* "View.MemoryView":913 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":914 * index += view.shape[dim] * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * if index >= shape: */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_IndexError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 914, __pyx_L1_error) /* "View.MemoryView":913 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":911 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ } /* "View.MemoryView":916 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":917 * * if index >= shape: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * resultp = bufp + index * stride */ __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_IndexError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 917, __pyx_L1_error) /* "View.MemoryView":916 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":919 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * resultp = bufp + index * stride # <<<<<<<<<<<<<< * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset */ __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); /* "View.MemoryView":920 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":921 * resultp = bufp + index * stride * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< * * return resultp */ __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); /* "View.MemoryView":920 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ } /* "View.MemoryView":923 * resultp = ( resultp)[0] + suboffset * * return resultp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_resultp; goto __pyx_L0; /* "View.MemoryView":896 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":929 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { int __pyx_v_ndim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; int __pyx_v_i; int __pyx_v_j; int __pyx_r; int __pyx_t_1; Py_ssize_t *__pyx_t_2; long __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; int __pyx_t_7; int __pyx_t_8; /* "View.MemoryView":930 * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< * * cdef Py_ssize_t *shape = memslice.shape */ __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; __pyx_v_ndim = __pyx_t_1; /* "View.MemoryView":932 * cdef int ndim = memslice.memview.view.ndim * * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< * cdef Py_ssize_t *strides = memslice.strides * */ __pyx_t_2 = __pyx_v_memslice->shape; __pyx_v_shape = __pyx_t_2; /* "View.MemoryView":933 * * cdef Py_ssize_t *shape = memslice.shape * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_v_memslice->strides; __pyx_v_strides = __pyx_t_2; /* "View.MemoryView":937 * * cdef int i, j * for i in range(ndim / 2): # <<<<<<<<<<<<<< * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] */ __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_3; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":938 * cdef int i, j * for i in range(ndim / 2): * j = ndim - 1 - i # <<<<<<<<<<<<<< * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] */ __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); /* "View.MemoryView":939 * for i in range(ndim / 2): * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< * shape[i], shape[j] = shape[j], shape[i] * */ __pyx_t_4 = (__pyx_v_strides[__pyx_v_j]); __pyx_t_5 = (__pyx_v_strides[__pyx_v_i]); (__pyx_v_strides[__pyx_v_i]) = __pyx_t_4; (__pyx_v_strides[__pyx_v_j]) = __pyx_t_5; /* "View.MemoryView":940 * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: */ __pyx_t_5 = (__pyx_v_shape[__pyx_v_j]); __pyx_t_4 = (__pyx_v_shape[__pyx_v_i]); (__pyx_v_shape[__pyx_v_i]) = __pyx_t_5; (__pyx_v_shape[__pyx_v_j]) = __pyx_t_4; /* "View.MemoryView":942 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ __pyx_t_7 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L6_bool_binop_done; } __pyx_t_7 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L6_bool_binop_done:; if (__pyx_t_6) { /* "View.MemoryView":943 * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< * * return 1 */ __pyx_t_8 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 943, __pyx_L1_error) /* "View.MemoryView":942 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ } } /* "View.MemoryView":945 * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * * return 1 # <<<<<<<<<<<<<< * * */ __pyx_r = 1; goto __pyx_L0; /* "View.MemoryView":929 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":962 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* Python wrapper */ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":963 * * def __dealloc__(self): * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); /* "View.MemoryView":962 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":965 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":966 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":967 * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: * return self.to_object_func(itemp) # <<<<<<<<<<<<<< * else: * return memoryview.convert_item_to_object(self, itemp) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":966 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ } /* "View.MemoryView":969 * return self.to_object_func(itemp) * else: * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "View.MemoryView":965 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":971 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":972 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":973 * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< * else: * memoryview.assign_item_from_object(self, itemp, value) */ __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == 0)) __PYX_ERR(2, 973, __pyx_L1_error) /* "View.MemoryView":972 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ goto __pyx_L3; } /* "View.MemoryView":975 * self.to_dtype_func(itemp, value) * else: * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< * * @property */ /*else*/ { __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:; /* "View.MemoryView":971 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":978 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":979 * @property * def base(self): * return self.from_object # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->from_object); __pyx_r = __pyx_v_self->from_object; goto __pyx_L0; /* "View.MemoryView":978 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":985 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_TypeInfo *__pyx_t_4; Py_buffer __pyx_t_5; Py_ssize_t *__pyx_t_6; Py_ssize_t *__pyx_t_7; Py_ssize_t *__pyx_t_8; Py_ssize_t __pyx_t_9; __Pyx_RefNannySetupContext("memoryview_fromslice", 0); /* "View.MemoryView":993 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); if (__pyx_t_1) { /* "View.MemoryView":994 * * if memviewslice.memview == Py_None: * return None # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; /* "View.MemoryView":993 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ } /* "View.MemoryView":999 * * * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< * * result.from_slice = memviewslice */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1001 * result = _memoryviewslice(None, 0, dtype_is_object) * * result.from_slice = memviewslice # <<<<<<<<<<<<<< * __PYX_INC_MEMVIEW(&memviewslice, 1) * */ __pyx_v_result->from_slice = __pyx_v_memviewslice; /* "View.MemoryView":1002 * * result.from_slice = memviewslice * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< * * result.from_object = ( memviewslice.memview).base */ __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); /* "View.MemoryView":1004 * __PYX_INC_MEMVIEW(&memviewslice, 1) * * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< * result.typeinfo = memviewslice.memview.typeinfo * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_result->from_object); __Pyx_DECREF(__pyx_v_result->from_object); __pyx_v_result->from_object = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":1005 * * result.from_object = ( memviewslice.memview).base * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< * * result.view = memviewslice.memview.view */ __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; /* "View.MemoryView":1007 * result.typeinfo = memviewslice.memview.typeinfo * * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< * result.view.buf = memviewslice.data * result.view.ndim = ndim */ __pyx_t_5 = __pyx_v_memviewslice.memview->view; __pyx_v_result->__pyx_base.view = __pyx_t_5; /* "View.MemoryView":1008 * * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None */ __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); /* "View.MemoryView":1009 * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data * result.view.ndim = ndim # <<<<<<<<<<<<<< * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; /* "View.MemoryView":1010 * result.view.buf = memviewslice.data * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; /* "View.MemoryView":1011 * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * result.flags = PyBUF_RECORDS */ Py_INCREF(Py_None); /* "View.MemoryView":1013 * Py_INCREF(Py_None) * * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< * * result.view.shape = result.from_slice.shape */ __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; /* "View.MemoryView":1015 * result.flags = PyBUF_RECORDS * * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< * result.view.strides = result.from_slice.strides * */ __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); /* "View.MemoryView":1016 * * result.view.shape = result.from_slice.shape * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< * * */ __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); /* "View.MemoryView":1019 * * * result.view.suboffsets = NULL # <<<<<<<<<<<<<< * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: */ __pyx_v_result->__pyx_base.view.suboffsets = NULL; /* "View.MemoryView":1020 * * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets */ __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_v_suboffset = (__pyx_t_6[0]); /* "View.MemoryView":1021 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1022 * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< * break * */ __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); /* "View.MemoryView":1023 * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets * break # <<<<<<<<<<<<<< * * result.view.len = result.view.itemsize */ goto __pyx_L5_break; /* "View.MemoryView":1021 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ } } __pyx_L5_break:; /* "View.MemoryView":1025 * break * * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< * for length in result.view.shape[:ndim]: * result.view.len *= length */ __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; /* "View.MemoryView":1026 * * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< * result.view.len *= length * */ __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1027 * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: * result.view.len *= length # <<<<<<<<<<<<<< * * result.to_object_func = to_object_func */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; } /* "View.MemoryView":1029 * result.view.len *= length * * result.to_object_func = to_object_func # <<<<<<<<<<<<<< * result.to_dtype_func = to_dtype_func * */ __pyx_v_result->to_object_func = __pyx_v_to_object_func; /* "View.MemoryView":1030 * * result.to_object_func = to_object_func * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; /* "View.MemoryView":1032 * result.to_dtype_func = to_dtype_func * * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_get_slice_from_memoryview') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":985 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1035 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; __Pyx_memviewslice *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_slice_from_memview", 0); /* "View.MemoryView":1038 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1039 * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): * obj = memview # <<<<<<<<<<<<<< * return &obj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1039, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":1040 * if isinstance(memview, _memoryviewslice): * obj = memview * return &obj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, mslice) */ __pyx_r = (&__pyx_v_obj->from_slice); goto __pyx_L0; /* "View.MemoryView":1038 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ } /* "View.MemoryView":1042 * return &obj.from_slice * else: * slice_copy(memview, mslice) # <<<<<<<<<<<<<< * return mslice * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); /* "View.MemoryView":1043 * else: * slice_copy(memview, mslice) * return mslice # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_slice_copy') */ __pyx_r = __pyx_v_mslice; goto __pyx_L0; } /* "View.MemoryView":1035 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_obj); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1046 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { int __pyx_v_dim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; Py_ssize_t *__pyx_v_suboffsets; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; __Pyx_RefNannySetupContext("slice_copy", 0); /* "View.MemoryView":1050 * cdef (Py_ssize_t*) shape, strides, suboffsets * * shape = memview.view.shape # <<<<<<<<<<<<<< * strides = memview.view.strides * suboffsets = memview.view.suboffsets */ __pyx_t_1 = __pyx_v_memview->view.shape; __pyx_v_shape = __pyx_t_1; /* "View.MemoryView":1051 * * shape = memview.view.shape * strides = memview.view.strides # <<<<<<<<<<<<<< * suboffsets = memview.view.suboffsets * */ __pyx_t_1 = __pyx_v_memview->view.strides; __pyx_v_strides = __pyx_t_1; /* "View.MemoryView":1052 * shape = memview.view.shape * strides = memview.view.strides * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< * * dst.memview = <__pyx_memoryview *> memview */ __pyx_t_1 = __pyx_v_memview->view.suboffsets; __pyx_v_suboffsets = __pyx_t_1; /* "View.MemoryView":1054 * suboffsets = memview.view.suboffsets * * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< * dst.data = memview.view.buf * */ __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); /* "View.MemoryView":1055 * * dst.memview = <__pyx_memoryview *> memview * dst.data = memview.view.buf # <<<<<<<<<<<<<< * * for dim in range(memview.view.ndim): */ __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); /* "View.MemoryView":1057 * dst.data = memview.view.buf * * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] */ __pyx_t_2 = __pyx_v_memview->view.ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_dim = __pyx_t_3; /* "View.MemoryView":1058 * * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 */ (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); /* "View.MemoryView":1059 * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 * */ (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); /* "View.MemoryView":1060 * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object') */ if ((__pyx_v_suboffsets != 0)) { __pyx_t_4 = (__pyx_v_suboffsets[__pyx_v_dim]); } else { __pyx_t_4 = -1L; } (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_4; } /* "View.MemoryView":1046 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { __Pyx_memviewslice __pyx_v_memviewslice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("memoryview_copy", 0); /* "View.MemoryView":1066 * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< * return memoryview_copy_from_slice(memview, &memviewslice) * */ __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); /* "View.MemoryView":1067 * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object_from_slice') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1070 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { PyObject *(*__pyx_v_to_object_func)(char *); int (*__pyx_v_to_dtype_func)(char *, PyObject *); PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *(*__pyx_t_3)(char *); int (*__pyx_t_4)(char *, PyObject *); PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); /* "View.MemoryView":1077 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1078 * * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: */ __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; __pyx_v_to_object_func = __pyx_t_3; /* "View.MemoryView":1079 * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< * else: * to_object_func = NULL */ __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; __pyx_v_to_dtype_func = __pyx_t_4; /* "View.MemoryView":1077 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ goto __pyx_L3; } /* "View.MemoryView":1081 * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: * to_object_func = NULL # <<<<<<<<<<<<<< * to_dtype_func = NULL * */ /*else*/ { __pyx_v_to_object_func = NULL; /* "View.MemoryView":1082 * else: * to_object_func = NULL * to_dtype_func = NULL # <<<<<<<<<<<<<< * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, */ __pyx_v_to_dtype_func = NULL; } __pyx_L3:; /* "View.MemoryView":1084 * to_dtype_func = NULL * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< * to_object_func, to_dtype_func, * memview.dtype_is_object) */ __Pyx_XDECREF(__pyx_r); /* "View.MemoryView":1086 * return memoryview_fromslice(memviewslice[0], memview.view.ndim, * to_object_func, to_dtype_func, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":1070 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1092 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { Py_ssize_t __pyx_r; int __pyx_t_1; /* "View.MemoryView":1093 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ __pyx_t_1 = ((__pyx_v_arg < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1094 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: * return -arg # <<<<<<<<<<<<<< * else: * return arg */ __pyx_r = (-__pyx_v_arg); goto __pyx_L0; /* "View.MemoryView":1093 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ } /* "View.MemoryView":1096 * return -arg * else: * return arg # <<<<<<<<<<<<<< * * @cname('__pyx_get_best_slice_order') */ /*else*/ { __pyx_r = __pyx_v_arg; goto __pyx_L0; } /* "View.MemoryView":1092 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1099 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_c_stride; Py_ssize_t __pyx_v_f_stride; char __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1104 * """ * cdef int i * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< * cdef Py_ssize_t f_stride = 0 * */ __pyx_v_c_stride = 0; /* "View.MemoryView":1105 * cdef int i * cdef Py_ssize_t c_stride = 0 * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_f_stride = 0; /* "View.MemoryView":1107 * cdef Py_ssize_t f_stride = 0 * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1L; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1108 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1109 * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1110 * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * for i in range(ndim): */ goto __pyx_L4_break; /* "View.MemoryView":1108 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ } } __pyx_L4_break:; /* "View.MemoryView":1112 * break * * for i in range(ndim): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] */ __pyx_t_1 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_1; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1113 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1114 * for i in range(ndim): * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1115 * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): */ goto __pyx_L7_break; /* "View.MemoryView":1113 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ } } __pyx_L7_break:; /* "View.MemoryView":1117 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1118 * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): * return 'C' # <<<<<<<<<<<<<< * else: * return 'F' */ __pyx_r = 'C'; goto __pyx_L0; /* "View.MemoryView":1117 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ } /* "View.MemoryView":1120 * return 'C' * else: * return 'F' # <<<<<<<<<<<<<< * * @cython.cdivision(True) */ /*else*/ { __pyx_r = 'F'; goto __pyx_L0; } /* "View.MemoryView":1099 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1123 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; Py_ssize_t __pyx_v_dst_extent; Py_ssize_t __pyx_v_src_stride; Py_ssize_t __pyx_v_dst_stride; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; /* "View.MemoryView":1130 * * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] */ __pyx_v_src_extent = (__pyx_v_src_shape[0]); /* "View.MemoryView":1131 * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] */ __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); /* "View.MemoryView":1132 * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_stride = dst_strides[0] * */ __pyx_v_src_stride = (__pyx_v_src_strides[0]); /* "View.MemoryView":1133 * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); /* "View.MemoryView":1135 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1136 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* "View.MemoryView":1137 * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize * dst_extent) * else: */ __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); } __pyx_t_3 = (__pyx_t_2 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "View.MemoryView":1136 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ if (__pyx_t_1) { /* "View.MemoryView":1138 * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)); /* "View.MemoryView":1136 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ goto __pyx_L4; } /* "View.MemoryView":1140 * memcpy(dst_data, src_data, itemsize * dst_extent) * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize) * src_data += src_stride */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1141 * else: * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< * src_data += src_stride * dst_data += dst_stride */ memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize); /* "View.MemoryView":1142 * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * else: */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1143 * memcpy(dst_data, src_data, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L4:; /* "View.MemoryView":1135 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ goto __pyx_L3; } /* "View.MemoryView":1145 * dst_data += dst_stride * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * _copy_strided_to_strided(src_data, src_strides + 1, * dst_data, dst_strides + 1, */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1146 * else: * for i in range(dst_extent): * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< * dst_data, dst_strides + 1, * src_shape + 1, dst_shape + 1, */ _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); /* "View.MemoryView":1150 * src_shape + 1, dst_shape + 1, * ndim - 1, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1151 * ndim - 1, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L3:; /* "View.MemoryView":1123 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ /* function exit code */ } /* "View.MemoryView":1153 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { /* "View.MemoryView":1156 * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< * src.shape, dst.shape, ndim, itemsize) * */ _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1153 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ /* function exit code */ } /* "View.MemoryView":1160 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_size; Py_ssize_t __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1163 * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_size = __pyx_t_1; /* "View.MemoryView":1165 * cdef Py_ssize_t size = src.memview.view.itemsize * * for i in range(ndim): # <<<<<<<<<<<<<< * size *= src.shape[i] * */ __pyx_t_2 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1166 * * for i in range(ndim): * size *= src.shape[i] # <<<<<<<<<<<<<< * * return size */ __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); } /* "View.MemoryView":1168 * size *= src.shape[i] * * return size # <<<<<<<<<<<<<< * * @cname('__pyx_fill_contig_strides_array') */ __pyx_r = __pyx_v_size; goto __pyx_L0; /* "View.MemoryView":1160 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1171 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { int __pyx_v_idx; Py_ssize_t __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1180 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ __pyx_t_1 = ((__pyx_v_order == 'F') != 0); if (__pyx_t_1) { /* "View.MemoryView":1181 * * if order == 'F': * for idx in range(ndim): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ __pyx_t_2 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_idx = __pyx_t_3; /* "View.MemoryView":1182 * if order == 'F': * for idx in range(ndim): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * else: */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1183 * for idx in range(ndim): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * else: * for idx in range(ndim - 1, -1, -1): */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } /* "View.MemoryView":1180 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ goto __pyx_L3; } /* "View.MemoryView":1185 * stride = stride * shape[idx] * else: * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ /*else*/ { for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1L; __pyx_t_2-=1) { __pyx_v_idx = __pyx_t_2; /* "View.MemoryView":1186 * else: * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1187 * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * * return stride */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } } __pyx_L3:; /* "View.MemoryView":1189 * stride = stride * shape[idx] * * return stride # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_data_to_temp') */ __pyx_r = __pyx_v_stride; goto __pyx_L0; /* "View.MemoryView":1171 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1192 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { int __pyx_v_i; void *__pyx_v_result; size_t __pyx_v_itemsize; size_t __pyx_v_size; void *__pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; struct __pyx_memoryview_obj *__pyx_t_4; int __pyx_t_5; /* "View.MemoryView":1203 * cdef void *result * * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef size_t size = slice_get_size(src, ndim) * */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1204 * * cdef size_t itemsize = src.memview.view.itemsize * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< * * result = malloc(size) */ __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); /* "View.MemoryView":1206 * cdef size_t size = slice_get_size(src, ndim) * * result = malloc(size) # <<<<<<<<<<<<<< * if not result: * _err(MemoryError, NULL) */ __pyx_v_result = malloc(__pyx_v_size); /* "View.MemoryView":1207 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1208 * result = malloc(size) * if not result: * _err(MemoryError, NULL) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 1208, __pyx_L1_error) /* "View.MemoryView":1207 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ } /* "View.MemoryView":1211 * * * tmpslice.data = result # <<<<<<<<<<<<<< * tmpslice.memview = src.memview * for i in range(ndim): */ __pyx_v_tmpslice->data = ((char *)__pyx_v_result); /* "View.MemoryView":1212 * * tmpslice.data = result * tmpslice.memview = src.memview # <<<<<<<<<<<<<< * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] */ __pyx_t_4 = __pyx_v_src->memview; __pyx_v_tmpslice->memview = __pyx_t_4; /* "View.MemoryView":1213 * tmpslice.data = result * tmpslice.memview = src.memview * for i in range(ndim): # <<<<<<<<<<<<<< * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 */ __pyx_t_3 = __pyx_v_ndim; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_3; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1214 * tmpslice.memview = src.memview * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< * tmpslice.suboffsets[i] = -1 * */ (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); /* "View.MemoryView":1215 * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, */ (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1217 * tmpslice.suboffsets[i] = -1 * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< * ndim, order) * */ __pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order); /* "View.MemoryView":1221 * * * for i in range(ndim): # <<<<<<<<<<<<<< * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 */ __pyx_t_3 = __pyx_v_ndim; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_3; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1222 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1223 * for i in range(ndim): * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< * * if slice_is_contig(src[0], order, ndim): */ (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; /* "View.MemoryView":1222 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ } } /* "View.MemoryView":1225 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1226 * * if slice_is_contig(src[0], order, ndim): * memcpy(result, src.data, size) # <<<<<<<<<<<<<< * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) */ memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size); /* "View.MemoryView":1225 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ goto __pyx_L9; } /* "View.MemoryView":1228 * memcpy(result, src.data, size) * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< * * return result */ /*else*/ { copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); } __pyx_L9:; /* "View.MemoryView":1230 * copy_strided_to_strided(src, tmpslice, ndim, itemsize) * * return result # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":1192 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1235 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_extents", 0); /* "View.MemoryView":1238 * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % * (i, extent1, extent2)) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err_dim') */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* "View.MemoryView":1237 * cdef int _err_extents(int i, Py_ssize_t extent1, * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< * (i, extent1, extent2)) * */ __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 1237, __pyx_L1_error) /* "View.MemoryView":1235 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1241 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_dim", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1242 * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err') */ __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_error); __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_2) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 1242, __pyx_L1_error) /* "View.MemoryView":1241 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1245 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1246 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":1247 * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< * else: * raise error */ __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_error); __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_5) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 1247, __pyx_L1_error) /* "View.MemoryView":1246 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ } /* "View.MemoryView":1249 * raise error(msg.decode('ascii')) * else: * raise error # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_contents') */ /*else*/ { __Pyx_Raise(__pyx_v_error, 0, 0, 0); __PYX_ERR(2, 1249, __pyx_L1_error) } /* "View.MemoryView":1245 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { void *__pyx_v_tmpdata; size_t __pyx_v_itemsize; int __pyx_v_i; char __pyx_v_order; int __pyx_v_broadcasting; int __pyx_v_direct_copy; __Pyx_memviewslice __pyx_v_tmp; int __pyx_v_ndim; int __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; void *__pyx_t_6; int __pyx_t_7; /* "View.MemoryView":1260 * Check for overlapping memory and verify the shapes. * """ * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< * cdef size_t itemsize = src.memview.view.itemsize * cdef int i */ __pyx_v_tmpdata = NULL; /* "View.MemoryView":1261 * """ * cdef void *tmpdata = NULL * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef int i * cdef char order = get_best_order(&src, src_ndim) */ __pyx_t_1 = __pyx_v_src.memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1263 * cdef size_t itemsize = src.memview.view.itemsize * cdef int i * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< * cdef bint broadcasting = False * cdef bint direct_copy = False */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); /* "View.MemoryView":1264 * cdef int i * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False # <<<<<<<<<<<<<< * cdef bint direct_copy = False * cdef __Pyx_memviewslice tmp */ __pyx_v_broadcasting = 0; /* "View.MemoryView":1265 * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False * cdef bint direct_copy = False # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice tmp * */ __pyx_v_direct_copy = 0; /* "View.MemoryView":1268 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1269 * * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); /* "View.MemoryView":1268 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ goto __pyx_L3; } /* "View.MemoryView":1270 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1271 * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< * * cdef int ndim = max(src_ndim, dst_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); /* "View.MemoryView":1270 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ } __pyx_L3:; /* "View.MemoryView":1273 * broadcast_leading(&dst, dst_ndim, src_ndim) * * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_3 = __pyx_v_dst_ndim; __pyx_t_4 = __pyx_v_src_ndim; if (((__pyx_t_3 > __pyx_t_4) != 0)) { __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_ndim = __pyx_t_5; /* "View.MemoryView":1275 * cdef int ndim = max(src_ndim, dst_ndim) * * for i in range(ndim): # <<<<<<<<<<<<<< * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: */ __pyx_t_5 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_5; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1276 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); if (__pyx_t_2) { /* "View.MemoryView":1277 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1278 * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: * broadcasting = True # <<<<<<<<<<<<<< * src.strides[i] = 0 * else: */ __pyx_v_broadcasting = 1; /* "View.MemoryView":1279 * if src.shape[i] == 1: * broadcasting = True * src.strides[i] = 0 # <<<<<<<<<<<<<< * else: * _err_extents(i, dst.shape[i], src.shape[i]) */ (__pyx_v_src.strides[__pyx_v_i]) = 0; /* "View.MemoryView":1277 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ goto __pyx_L7; } /* "View.MemoryView":1281 * src.strides[i] = 0 * else: * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< * * if src.suboffsets[i] >= 0: */ /*else*/ { __pyx_t_4 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 1281, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":1276 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ } /* "View.MemoryView":1283 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":1284 * * if src.suboffsets[i] >= 0: * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< * * if slices_overlap(&src, &dst, ndim, itemsize): */ __pyx_t_4 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 1284, __pyx_L1_error) /* "View.MemoryView":1283 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ } } /* "View.MemoryView":1286 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); if (__pyx_t_2) { /* "View.MemoryView":1288 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1289 * * if not slice_is_contig(src, order, ndim): * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); /* "View.MemoryView":1288 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ } /* "View.MemoryView":1291 * order = get_best_order(&dst, ndim) * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< * src = tmp * */ __pyx_t_6 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_6 == NULL)) __PYX_ERR(2, 1291, __pyx_L1_error) __pyx_v_tmpdata = __pyx_t_6; /* "View.MemoryView":1292 * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) * src = tmp # <<<<<<<<<<<<<< * * if not broadcasting: */ __pyx_v_src = __pyx_v_tmp; /* "View.MemoryView":1286 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ } /* "View.MemoryView":1294 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1297 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1298 * * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); /* "View.MemoryView":1297 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ goto __pyx_L12; } /* "View.MemoryView":1299 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1300 * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< * * if direct_copy: */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); /* "View.MemoryView":1299 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ } __pyx_L12:; /* "View.MemoryView":1302 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_2 = (__pyx_v_direct_copy != 0); if (__pyx_t_2) { /* "View.MemoryView":1304 * if direct_copy: * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1305 * * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) */ memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)); /* "View.MemoryView":1306 * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * free(tmpdata) * return 0 */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1307 * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1308 * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * if order == 'F' == get_best_order(&dst, ndim): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1302 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ } /* "View.MemoryView":1294 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1310 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ __pyx_t_2 = (__pyx_v_order == 'F'); if (__pyx_t_2) { __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); } __pyx_t_7 = (__pyx_t_2 != 0); if (__pyx_t_7) { /* "View.MemoryView":1313 * * * transpose_memslice(&src) # <<<<<<<<<<<<<< * transpose_memslice(&dst) * */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == 0)) __PYX_ERR(2, 1313, __pyx_L1_error) /* "View.MemoryView":1314 * * transpose_memslice(&src) * transpose_memslice(&dst) # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == 0)) __PYX_ERR(2, 1314, __pyx_L1_error) /* "View.MemoryView":1310 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1316 * transpose_memslice(&dst) * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1317 * * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * */ copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1318 * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * free(tmpdata) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1320 * refcount_copying(&dst, dtype_is_object, ndim, True) * * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1321 * * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_broadcast_leading') */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1324 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { int __pyx_v_i; int __pyx_v_offset; int __pyx_t_1; int __pyx_t_2; /* "View.MemoryView":1328 * int ndim_other) nogil: * cdef int i * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); /* "View.MemoryView":1330 * cdef int offset = ndim_other - ndim * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1L; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1331 * * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] */ (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); /* "View.MemoryView":1332 * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * */ (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1333 * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< * * for i in range(offset): */ (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); } /* "View.MemoryView":1335 * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * * for i in range(offset): # <<<<<<<<<<<<<< * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] */ __pyx_t_1 = __pyx_v_offset; for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_i = __pyx_t_2; /* "View.MemoryView":1336 * * for i in range(offset): * mslice.shape[i] = 1 # <<<<<<<<<<<<<< * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 */ (__pyx_v_mslice->shape[__pyx_v_i]) = 1; /* "View.MemoryView":1337 * for i in range(offset): * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< * mslice.suboffsets[i] = -1 * */ (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); /* "View.MemoryView":1338 * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * */ (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1324 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ /* function exit code */ } /* "View.MemoryView":1346 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { int __pyx_t_1; /* "View.MemoryView":1350 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ __pyx_t_1 = (__pyx_v_dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":1351 * * if dtype_is_object: * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< * dst.strides, ndim, inc) * */ __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1350 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ } /* "View.MemoryView":1346 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ /* function exit code */ } /* "View.MemoryView":1355 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { __Pyx_RefNannyDeclarations #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); /* "View.MemoryView":1358 * Py_ssize_t *strides, int ndim, * bint inc) with gil: * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_refcount_objects_in_slice') */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1355 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ /* function exit code */ __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } /* "View.MemoryView":1361 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; int __pyx_t_3; __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); /* "View.MemoryView":1365 * cdef Py_ssize_t i * * for i in range(shape[0]): # <<<<<<<<<<<<<< * if ndim == 1: * if inc: */ __pyx_t_1 = (__pyx_v_shape[0]); for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_i = __pyx_t_2; /* "View.MemoryView":1366 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ __pyx_t_3 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_3) { /* "View.MemoryView":1367 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ __pyx_t_3 = (__pyx_v_inc != 0); if (__pyx_t_3) { /* "View.MemoryView":1368 * if ndim == 1: * if inc: * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< * else: * Py_DECREF(( data)[0]) */ Py_INCREF((((PyObject **)__pyx_v_data)[0])); /* "View.MemoryView":1367 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ goto __pyx_L6; } /* "View.MemoryView":1370 * Py_INCREF(( data)[0]) * else: * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, */ /*else*/ { Py_DECREF((((PyObject **)__pyx_v_data)[0])); } __pyx_L6:; /* "View.MemoryView":1366 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ goto __pyx_L5; } /* "View.MemoryView":1372 * Py_DECREF(( data)[0]) * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, inc) * */ /*else*/ { /* "View.MemoryView":1373 * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, * ndim - 1, inc) # <<<<<<<<<<<<<< * * data += strides[0] */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); } __pyx_L5:; /* "View.MemoryView":1375 * ndim - 1, inc) * * data += strides[0] # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); } /* "View.MemoryView":1361 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1381 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { /* "View.MemoryView":1384 * size_t itemsize, void *item, * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1385 * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) */ __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1387 * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1381 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ /* function exit code */ } /* "View.MemoryView":1391 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_extent; int __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; /* "View.MemoryView":1395 * size_t itemsize, void *item) nogil: * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t extent = shape[0] * */ __pyx_v_stride = (__pyx_v_strides[0]); /* "View.MemoryView":1396 * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_extent = (__pyx_v_shape[0]); /* "View.MemoryView":1398 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1399 * * if ndim == 1: * for i in range(extent): # <<<<<<<<<<<<<< * memcpy(data, item, itemsize) * data += stride */ __pyx_t_2 = __pyx_v_extent; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1400 * if ndim == 1: * for i in range(extent): * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< * data += stride * else: */ memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize); /* "View.MemoryView":1401 * for i in range(extent): * memcpy(data, item, itemsize) * data += stride # <<<<<<<<<<<<<< * else: * for i in range(extent): */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } /* "View.MemoryView":1398 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ goto __pyx_L3; } /* "View.MemoryView":1403 * data += stride * else: * for i in range(extent): # <<<<<<<<<<<<<< * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) */ /*else*/ { __pyx_t_2 = __pyx_v_extent; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1404 * else: * for i in range(extent): * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, itemsize, item) * data += stride */ __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1406 * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) * data += stride # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } } __pyx_L3:; /* "View.MemoryView":1391 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /* function exit code */ } static struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper[8]; static int __pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper = 0; static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper)))) { o = (PyObject*)__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper[--__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper]; memset(o, 0, sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper(PyObject *o) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_in_type); Py_CLEAR(p->__pyx_v_input_arrays); Py_CLEAR(p->__pyx_v_out_type); Py_CLEAR(p->__pyx_v_output_arrays); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper)))) { __pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper[__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper++] = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)o; if (p->__pyx_v_in_type) { e = (*v)(((PyObject*)p->__pyx_v_in_type), a); if (e) return e; } if (p->__pyx_v_input_arrays) { e = (*v)(p->__pyx_v_input_arrays, a); if (e) return e; } if (p->__pyx_v_out_type) { e = (*v)(((PyObject*)p->__pyx_v_out_type), a); if (e) return e; } if (p->__pyx_v_output_arrays) { e = (*v)(p->__pyx_v_output_arrays, a); if (e) return e; } return 0; } static int __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper(PyObject *o) { PyObject* tmp; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)o; tmp = ((PyObject*)p->__pyx_v_in_type); p->__pyx_v_in_type = ((PyArray_Descr *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_input_arrays); p->__pyx_v_input_arrays = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_out_type); p->__pyx_v_out_type = ((PyArray_Descr *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_output_arrays); p->__pyx_v_output_arrays = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyTypeObject __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.__pyx_scope_struct____pyx_fuse_0fornav_wrapper", /*tp_name*/ sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper, /*tp_traverse*/ __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr[8]; static int __pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr = 0; static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr)))) { o = (PyObject*)__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr[--__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr(PyObject *o) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_input_array); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr)))) { __pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr[__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_input_array) { e = (*v)(p->__pyx_v_input_array, a); if (e) return e; } return 0; } static int __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr(PyObject *o) { PyObject* tmp; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr *)o; tmp = ((PyObject*)p->__pyx_outer_scope); p->__pyx_outer_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_input_array); p->__pyx_v_input_array = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyTypeObject __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.__pyx_scope_struct_1_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr, /*tp_traverse*/ __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr[8]; static int __pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr = 0; static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr)))) { o = (PyObject*)__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr[--__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr(PyObject *o) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_output_array); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr)))) { __pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr[__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr++] = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_output_array) { e = (*v)(p->__pyx_v_output_array, a); if (e) return e; } return 0; } static int __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr(PyObject *o) { PyObject* tmp; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr *)o; tmp = ((PyObject*)p->__pyx_outer_scope); p->__pyx_outer_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_output_array); p->__pyx_v_output_array = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyTypeObject __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.__pyx_scope_struct_2_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr, /*tp_traverse*/ __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper[8]; static int __pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper = 0; static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper)))) { o = (PyObject*)__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper[--__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper]; memset(o, 0, sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper(PyObject *o) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_in_type); Py_CLEAR(p->__pyx_v_input_arrays); Py_CLEAR(p->__pyx_v_out_type); Py_CLEAR(p->__pyx_v_output_arrays); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper)))) { __pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper[__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper++] = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)o; if (p->__pyx_v_in_type) { e = (*v)(((PyObject*)p->__pyx_v_in_type), a); if (e) return e; } if (p->__pyx_v_input_arrays) { e = (*v)(p->__pyx_v_input_arrays, a); if (e) return e; } if (p->__pyx_v_out_type) { e = (*v)(((PyObject*)p->__pyx_v_out_type), a); if (e) return e; } if (p->__pyx_v_output_arrays) { e = (*v)(p->__pyx_v_output_arrays, a); if (e) return e; } return 0; } static int __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper(PyObject *o) { PyObject* tmp; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)o; tmp = ((PyObject*)p->__pyx_v_in_type); p->__pyx_v_in_type = ((PyArray_Descr *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_input_arrays); p->__pyx_v_input_arrays = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_out_type); p->__pyx_v_out_type = ((PyArray_Descr *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_output_arrays); p->__pyx_v_output_arrays = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyTypeObject __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.__pyx_scope_struct_3___pyx_fuse_1fornav_wrapper", /*tp_name*/ sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper, /*tp_traverse*/ __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr[8]; static int __pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr = 0; static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr)))) { o = (PyObject*)__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr[--__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr(PyObject *o) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_input_array); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr)))) { __pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr[__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr++] = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_input_array) { e = (*v)(p->__pyx_v_input_array, a); if (e) return e; } return 0; } static int __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr(PyObject *o) { PyObject* tmp; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr *)o; tmp = ((PyObject*)p->__pyx_outer_scope); p->__pyx_outer_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_input_array); p->__pyx_v_input_array = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyTypeObject __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.__pyx_scope_struct_4_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr, /*tp_traverse*/ __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr[8]; static int __pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr = 0; static PyObject *__pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr)))) { o = (PyObject*)__pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr[--__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr(PyObject *o) { struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_output_array); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr)))) { __pyx_freelist_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr[__pyx_freecount_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr++] = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_output_array) { e = (*v)(p->__pyx_v_output_array, a); if (e) return e; } return 0; } static int __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr(PyObject *o) { PyObject* tmp; struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr *)o; tmp = ((PyObject*)p->__pyx_outer_scope); p->__pyx_outer_scope = ((struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_output_array); p->__pyx_v_output_array = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyTypeObject __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.__pyx_scope_struct_5_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr, /*tp_traverse*/ __pyx_tp_clear_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_vtabstruct_array __pyx_vtable_array; static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_array_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_array_obj *)o); p->__pyx_vtab = __pyx_vtabptr_array; p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) { Py_DECREF(o); o = 0; } return o; } static void __pyx_tp_dealloc_array(PyObject *o) { struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_array___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->mode); Py_CLEAR(p->_format); (*Py_TYPE(o)->tp_free)(o); } static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_array___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { PyObject *v = PyObject_GenericGetAttr(o, n); if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); v = __pyx_array___getattr__(o, n); } return v; } static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); } static PyMethodDef __pyx_methods_array[] = { {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_array[] = { {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_array = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_array, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_array = { 0, /*mp_length*/ __pyx_array___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_array = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_array_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ __pyx_tp_getattro_array, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_array, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_array, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_array, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_MemviewEnum_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_MemviewEnum_obj *)o); p->name = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_Enum(PyObject *o) { struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->name); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { int e; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } return 0; } static int __pyx_tp_clear_Enum(PyObject *o) { PyObject* tmp; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_Enum[] = { {0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_MemviewEnum___repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_Enum, /*tp_traverse*/ __pyx_tp_clear_Enum, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_Enum, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_MemviewEnum___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_Enum, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryview_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_memoryview_obj *)o); p->__pyx_vtab = __pyx_vtabptr_memoryview; p->obj = Py_None; Py_INCREF(Py_None); p->_size = Py_None; Py_INCREF(Py_None); p->_array_interface = Py_None; Py_INCREF(Py_None); p->view.obj = NULL; if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) { Py_DECREF(o); o = 0; } return o; } static void __pyx_tp_dealloc_memoryview(PyObject *o) { struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryview___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->obj); Py_CLEAR(p->_size); Py_CLEAR(p->_array_interface); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; if (p->obj) { e = (*v)(p->obj, a); if (e) return e; } if (p->_size) { e = (*v)(p->_size, a); if (e) return e; } if (p->_array_interface) { e = (*v)(p->_array_interface, a); if (e) return e; } if (p->view.obj) { e = (*v)(p->view.obj, a); if (e) return e; } return 0; } static int __pyx_tp_clear_memoryview(PyObject *o) { PyObject* tmp; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; tmp = ((PyObject*)p->obj); p->obj = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_size); p->_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_array_interface); p->_array_interface = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); Py_CLEAR(p->view.obj); return 0; } static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_memoryview___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); } static PyMethodDef __pyx_methods_memoryview[] = { {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_memoryview[] = { {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_memoryview = { __pyx_memoryview___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_memoryview, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_memoryview = { __pyx_memoryview___len__, /*mp_length*/ __pyx_memoryview___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_memoryview = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_memoryview_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_memoryview___repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_memoryview___str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_memoryview, /*tp_traverse*/ __pyx_tp_clear_memoryview, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_memoryview, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_memoryview, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_memoryview, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryviewslice_obj *p; PyObject *o = __pyx_tp_new_memoryview(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_memoryviewslice_obj *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; p->from_object = Py_None; Py_INCREF(Py_None); p->from_slice.memview = NULL; return o; } static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryviewslice___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->from_object); PyObject_GC_Track(o); __pyx_tp_dealloc_memoryview(o); } static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; if (p->from_object) { e = (*v)(p->from_object, a); if (e) return e; } return 0; } static int __pyx_tp_clear__memoryviewslice(PyObject *o) { PyObject* tmp; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; __pyx_tp_clear_memoryview(o); tmp = ((PyObject*)p->from_object); p->from_object = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); __PYX_XDEC_MEMVIEW(&p->from_slice, 1); return 0; } static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); } static PyMethodDef __pyx_methods__memoryviewslice[] = { {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._fornav._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___repr__, /*tp_repr*/ #else 0, /*tp_repr*/ #endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___str__, /*tp_str*/ #else 0, /*tp_str*/ #endif 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "Internal class for passing memoryview slices to Python", /*tp_doc*/ __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ __pyx_tp_clear__memoryviewslice, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods__memoryviewslice, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets__memoryviewslice, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new__memoryviewslice, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 static struct PyModuleDef __pyx_moduledef = { #if PY_VERSION_HEX < 0x03020000 { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, #else PyModuleDef_HEAD_INIT, #endif "_fornav", __pyx_k_Resampling_swath_data_to_uniform, /* m_doc */ -1, /* m_size */ __pyx_methods /* m_methods */, NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, {&__pyx_kp_s_Could_not_initialize_weight_stru, __pyx_k_Could_not_initialize_weight_stru, sizeof(__pyx_k_Could_not_initialize_weight_stru), 0, 0, 1, 0}, {&__pyx_kp_s_EWA_Resampling_No_swath_pixels_f, __pyx_k_EWA_Resampling_No_swath_pixels_f, sizeof(__pyx_k_EWA_Resampling_No_swath_pixels_f), 0, 0, 1, 0}, {&__pyx_kp_s_EWA_requires_2_or_more_rows_per, __pyx_k_EWA_requires_2_or_more_rows_per, sizeof(__pyx_k_EWA_requires_2_or_more_rows_per), 0, 0, 1, 0}, {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, {&__pyx_kp_s_Expected_at_least_d_arguments, __pyx_k_Expected_at_least_d_arguments, sizeof(__pyx_k_Expected_at_least_d_arguments), 0, 0, 1, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, {&__pyx_kp_s_Input_and_Output_must_be_of_the, __pyx_k_Input_and_Output_must_be_of_the, sizeof(__pyx_k_Input_and_Output_must_be_of_the), 0, 0, 1, 0}, {&__pyx_kp_s_Input_arrays_must_all_be_of_the, __pyx_k_Input_arrays_must_all_be_of_the, sizeof(__pyx_k_Input_arrays_must_all_be_of_the), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, {&__pyx_kp_s_Must_have_same_number_of_inputs, __pyx_k_Must_have_same_number_of_inputs, sizeof(__pyx_k_Must_have_same_number_of_inputs), 0, 0, 1, 0}, {&__pyx_kp_s_No_input_arrays_given, __pyx_k_No_input_arrays_given, sizeof(__pyx_k_No_input_arrays_given), 0, 0, 1, 0}, {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, {&__pyx_kp_s_Unknown_input_and_output_data_ty, __pyx_k_Unknown_input_and_output_data_ty, sizeof(__pyx_k_Unknown_input_and_output_data_ty), 0, 0, 1, 0}, {&__pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_k_Users_davidh_repos_git_pyresamp, sizeof(__pyx_k_Users_davidh_repos_git_pyresamp), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_kp_s__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 0, 1, 0}, {&__pyx_kp_s__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 0, 1, 0}, {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, {&__pyx_n_s_cols_array, __pyx_k_cols_array, sizeof(__pyx_k_cols_array), 0, 0, 1, 1}, {&__pyx_n_s_cols_pointer, __pyx_k_cols_pointer, sizeof(__pyx_k_cols_pointer), 0, 0, 1, 1}, {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, {&__pyx_n_s_docformat, __pyx_k_docformat, sizeof(__pyx_k_docformat), 0, 0, 1, 1}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1}, {&__pyx_n_s_float32_t, __pyx_k_float32_t, sizeof(__pyx_k_float32_t), 0, 0, 1, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, {&__pyx_n_s_float64_t, __pyx_k_float64_t, sizeof(__pyx_k_float64_t), 0, 0, 1, 1}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_fornav_wrapper, __pyx_k_fornav_wrapper, sizeof(__pyx_k_fornav_wrapper), 0, 0, 1, 1}, {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_s_func_result, __pyx_k_func_result, sizeof(__pyx_k_func_result), 0, 0, 1, 1}, {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_s_grid_cols, __pyx_k_grid_cols, sizeof(__pyx_k_grid_cols), 0, 0, 1, 1}, {&__pyx_n_s_grid_rows, __pyx_k_grid_rows, sizeof(__pyx_k_grid_rows), 0, 0, 1, 1}, {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_in_type, __pyx_k_in_type, sizeof(__pyx_k_in_type), 0, 0, 1, 1}, {&__pyx_n_s_input_arrays, __pyx_k_input_arrays, sizeof(__pyx_k_input_arrays), 0, 0, 1, 1}, {&__pyx_n_s_input_fill, __pyx_k_input_fill, sizeof(__pyx_k_input_fill), 0, 0, 1, 1}, {&__pyx_n_s_input_pointer, __pyx_k_input_pointer, sizeof(__pyx_k_input_pointer), 0, 0, 1, 1}, {&__pyx_n_s_int8, __pyx_k_int8, sizeof(__pyx_k_int8), 0, 0, 1, 1}, {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_maximum_weight_mode, __pyx_k_maximum_weight_mode, sizeof(__pyx_k_maximum_weight_mode), 0, 0, 1, 1}, {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_n_s_ndarray, __pyx_k_ndarray, sizeof(__pyx_k_ndarray), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, {&__pyx_n_s_num_items, __pyx_k_num_items, sizeof(__pyx_k_num_items), 0, 0, 1, 1}, {&__pyx_n_s_num_outputs, __pyx_k_num_outputs, sizeof(__pyx_k_num_outputs), 0, 0, 1, 1}, {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_out_type, __pyx_k_out_type, sizeof(__pyx_k_out_type), 0, 0, 1, 1}, {&__pyx_n_s_output_arrays, __pyx_k_output_arrays, sizeof(__pyx_k_output_arrays), 0, 0, 1, 1}, {&__pyx_n_s_output_fill, __pyx_k_output_fill, sizeof(__pyx_k_output_fill), 0, 0, 1, 1}, {&__pyx_n_s_output_pointer, __pyx_k_output_pointer, sizeof(__pyx_k_output_pointer), 0, 0, 1, 1}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_s_pyresample_ewa__fornav, __pyx_k_pyresample_ewa__fornav, sizeof(__pyx_k_pyresample_ewa__fornav), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_0fornav_wrapper_local, __pyx_k_pyx_fuse_0fornav_wrapper_local, sizeof(__pyx_k_pyx_fuse_0fornav_wrapper_local), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_1fornav_wrapper_local, __pyx_k_pyx_fuse_1fornav_wrapper_local, sizeof(__pyx_k_pyx_fuse_1fornav_wrapper_local), 0, 0, 1, 1}, {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_kp_s_restructuredtext_en, __pyx_k_restructuredtext_en, sizeof(__pyx_k_restructuredtext_en), 0, 0, 1, 0}, {&__pyx_n_s_rows_array, __pyx_k_rows_array, sizeof(__pyx_k_rows_array), 0, 0, 1, 1}, {&__pyx_n_s_rows_per_scan, __pyx_k_rows_per_scan, sizeof(__pyx_k_rows_per_scan), 0, 0, 1, 1}, {&__pyx_n_s_rows_pointer, __pyx_k_rows_pointer, sizeof(__pyx_k_rows_pointer), 0, 0, 1, 1}, {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, {&__pyx_n_s_swath_cols, __pyx_k_swath_cols, sizeof(__pyx_k_swath_cols), 0, 0, 1, 1}, {&__pyx_n_s_swath_rows, __pyx_k_swath_rows, sizeof(__pyx_k_swath_rows), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, {&__pyx_n_s_tmp_arr_f32, __pyx_k_tmp_arr_f32, sizeof(__pyx_k_tmp_arr_f32), 0, 0, 1, 1}, {&__pyx_n_s_tmp_arr_f64, __pyx_k_tmp_arr_f64, sizeof(__pyx_k_tmp_arr_f64), 0, 0, 1, 1}, {&__pyx_n_s_tmp_arr_i8, __pyx_k_tmp_arr_i8, sizeof(__pyx_k_tmp_arr_i8), 0, 0, 1, 1}, {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, {&__pyx_n_s_valid_arr, __pyx_k_valid_arr, sizeof(__pyx_k_valid_arr), 0, 0, 1, 1}, {&__pyx_n_s_valid_list, __pyx_k_valid_list, sizeof(__pyx_k_valid_list), 0, 0, 1, 1}, {&__pyx_n_s_weight_count, __pyx_k_weight_count, sizeof(__pyx_k_weight_count), 0, 0, 1, 1}, {&__pyx_n_s_weight_delta_max, __pyx_k_weight_delta_max, sizeof(__pyx_k_weight_delta_max), 0, 0, 1, 1}, {&__pyx_n_s_weight_distance_max, __pyx_k_weight_distance_max, sizeof(__pyx_k_weight_distance_max), 0, 0, 1, 1}, {&__pyx_n_s_weight_min, __pyx_k_weight_min, sizeof(__pyx_k_weight_min), 0, 0, 1, 1}, {&__pyx_n_s_weight_sum_min, __pyx_k_weight_sum_min, sizeof(__pyx_k_weight_sum_min), 0, 0, 1, 1}, {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 134, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 140, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 161, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 255, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 149, __pyx_L1_error) __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 396, __pyx_L1_error) __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(2, 599, __pyx_L1_error) __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(2, 818, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_Could_not_initialize_weight_stru); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_EWA_Resampling_No_swath_pixels_f); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_Could_not_initialize_weight_stru); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_EWA_Resampling_No_swath_pixels_f); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Could_not_initialize_weight_stru); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_EWA_Resampling_No_swath_pixels_f); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_Could_not_initialize_weight_stru); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_EWA_Resampling_No_swath_pixels_f); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_Could_not_initialize_weight_stru); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_EWA_Resampling_No_swath_pixels_f); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); /* "pyresample/ewa/_fornav.pyx":134 * weight_sum_min, &ewaw) * if func_result < 0: * raise RuntimeError("Could not initialize weight structure for EWA resampling") # <<<<<<<<<<<<<< * * # Allocate location for storing the sum of all of the pixels involved in each grid cell */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Could_not_initialize_weight_stru); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "pyresample/ewa/_fornav.pyx":184 * * if not got_point: * raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") # <<<<<<<<<<<<<< * * for idx in range(chan_count): */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_EWA_Resampling_No_swath_pixels_f); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s__13); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s__15); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "pyresample/ewa/_fornav.pyx":255 * cdef unsigned int i * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") # <<<<<<<<<<<<<< * if num_items <= 0: * raise ValueError("No input arrays given") */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_Must_have_same_number_of_inputs); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "pyresample/ewa/_fornav.pyx":257 * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: * raise ValueError("No input arrays given") # <<<<<<<<<<<<<< * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_No_input_arrays_given); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "pyresample/ewa/_fornav.pyx":259 * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") # <<<<<<<<<<<<<< * * cdef numpy.dtype in_type = input_arrays[0].dtype */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_EWA_requires_2_or_more_rows_per); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "pyresample/ewa/_fornav.pyx":264 * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") # <<<<<<<<<<<<<< * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_Input_and_Output_must_be_of_the); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "pyresample/ewa/_fornav.pyx":266 * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_Input_arrays_must_all_be_of_the); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "pyresample/ewa/_fornav.pyx":268 * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_Input_arrays_must_all_be_of_the); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "pyresample/ewa/_fornav.pyx":319 * maximum_weight_mode) * else: * raise ValueError("Unknown input and output data type") # <<<<<<<<<<<<<< * * for i in range(num_items): */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_Unknown_input_and_output_data_ty); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "pyresample/ewa/_fornav.pyx":255 * cdef unsigned int i * if num_items != num_outputs: * raise ValueError("Must have same number of inputs and outputs") # <<<<<<<<<<<<<< * if num_items <= 0: * raise ValueError("No input arrays given") */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_Must_have_same_number_of_inputs); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); /* "pyresample/ewa/_fornav.pyx":257 * raise ValueError("Must have same number of inputs and outputs") * if num_items <= 0: * raise ValueError("No input arrays given") # <<<<<<<<<<<<<< * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") */ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_No_input_arrays_given); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); /* "pyresample/ewa/_fornav.pyx":259 * raise ValueError("No input arrays given") * if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: * raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") # <<<<<<<<<<<<<< * * cdef numpy.dtype in_type = input_arrays[0].dtype */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_EWA_requires_2_or_more_rows_per); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* "pyresample/ewa/_fornav.pyx":264 * cdef numpy.dtype out_type = output_arrays[0].dtype * if in_type != out_type: * raise ValueError("Input and Output must be of the same type") # <<<<<<<<<<<<<< * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_Input_and_Output_must_be_of_the); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* "pyresample/ewa/_fornav.pyx":266 * raise ValueError("Input and Output must be of the same type") * if not all(input_array.dtype == in_type for input_array in input_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") */ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_Input_arrays_must_all_be_of_the); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* "pyresample/ewa/_fornav.pyx":268 * raise ValueError("Input arrays must all be of the same data type") * if not all(output_array.dtype == out_type for output_array in output_arrays): * raise ValueError("Input arrays must all be of the same data type") # <<<<<<<<<<<<<< * * cdef void **input_pointer = malloc(num_items * sizeof(void *)) */ __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_Input_arrays_must_all_be_of_the); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); /* "pyresample/ewa/_fornav.pyx":319 * maximum_weight_mode) * else: * raise ValueError("Unknown input and output data type") # <<<<<<<<<<<<<< * * for i in range(num_items): */ __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_Unknown_input_and_output_data_ty); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":218 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":222 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":259 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":799 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":803 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":823 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38); /* "View.MemoryView":131 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(2, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* "View.MemoryView":134 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(2, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40); /* "View.MemoryView":137 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_tuple__41 = PyTuple_Pack(1, __pyx_n_s_ASCII); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* "View.MemoryView":146 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(2, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42); /* "View.MemoryView":174 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(2, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); /* "View.MemoryView":190 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__44); __Pyx_GIVEREF(__pyx_tuple__44); /* "View.MemoryView":484 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(2, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45); /* "View.MemoryView":556 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(2, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__46); __Pyx_GIVEREF(__pyx_tuple__46); /* "View.MemoryView":563 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __pyx_tuple__47 = PyTuple_New(1); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(2, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_tuple__47, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_tuple__47); /* "View.MemoryView":668 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_slice__48 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__48)) __PYX_ERR(2, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__48); __Pyx_GIVEREF(__pyx_slice__48); /* "View.MemoryView":671 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ __pyx_slice__49 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__49)) __PYX_ERR(2, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__49); __Pyx_GIVEREF(__pyx_slice__49); /* "View.MemoryView":682 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_slice__50 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__50)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__50); __Pyx_GIVEREF(__pyx_slice__50); /* "View.MemoryView":689 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__51); __Pyx_GIVEREF(__pyx_tuple__51); /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ __pyx_tuple__52 = PyTuple_Pack(35, __pyx_n_s_cols_array, __pyx_n_s_rows_array, __pyx_n_s_input_arrays, __pyx_n_s_output_arrays, __pyx_n_s_input_fill, __pyx_n_s_output_fill, __pyx_n_s_rows_per_scan, __pyx_n_s_weight_count, __pyx_n_s_weight_min, __pyx_n_s_weight_distance_max, __pyx_n_s_weight_delta_max, __pyx_n_s_weight_sum_min, __pyx_n_s_maximum_weight_mode, __pyx_n_s_num_items, __pyx_n_s_num_outputs, __pyx_n_s_swath_cols, __pyx_n_s_swath_rows, __pyx_n_s_grid_cols, __pyx_n_s_grid_rows, __pyx_n_s_i, __pyx_n_s_in_type, __pyx_n_s_out_type, __pyx_n_s_input_pointer, __pyx_n_s_output_pointer, __pyx_n_s_valid_arr, __pyx_n_s_valid_list, __pyx_n_s_tmp_arr_f32, __pyx_n_s_tmp_arr_f64, __pyx_n_s_tmp_arr_i8, __pyx_n_s_cols_pointer, __pyx_n_s_rows_pointer, __pyx_n_s_func_result, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52); __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(13, 0, 35, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_n_s_fornav_wrapper, 199, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 199, __pyx_L1_error) /* "View.MemoryView":282 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(2, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__54); __Pyx_GIVEREF(__pyx_tuple__54); /* "View.MemoryView":283 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(2, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55); /* "View.MemoryView":284 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(2, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__56); __Pyx_GIVEREF(__pyx_tuple__56); /* "View.MemoryView":287 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); /* "View.MemoryView":288 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__58); __Pyx_GIVEREF(__pyx_tuple__58); __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } #if PY_MAJOR_VERSION < 3 PyMODINIT_FUNC init_fornav(void); /*proto*/ PyMODINIT_FUNC init_fornav(void) #else PyMODINIT_FUNC PyInit__fornav(void); /*proto*/ PyMODINIT_FUNC PyInit__fornav(void) #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; static PyThread_type_lock __pyx_t_8[8]; __Pyx_RefNannyDeclarations #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__fornav(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_fornav", __pyx_methods, __pyx_k_Resampling_swath_data_to_uniform, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) #if CYTHON_COMPILING_IN_PYPY Py_INCREF(__pyx_b); #endif if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pyresample__ewa___fornav) { if (PyObject_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pyresample.ewa._fornav")) { if (unlikely(PyDict_SetItemString(modules, "pyresample.ewa._fornav", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Global init code ---*/ generic = Py_None; Py_INCREF(Py_None); strided = Py_None; Py_INCREF(Py_None); indirect = Py_None; Py_INCREF(Py_None); contiguous = Py_None; Py_INCREF(Py_None); indirect_contiguous = Py_None; Py_INCREF(Py_None); /*--- Variable export code ---*/ /*--- Function export code ---*/ /*--- Type init code ---*/ if (PyType_Ready(&__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper.tp_print = 0; __pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper = &__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct____pyx_fuse_0fornav_wrapper; if (PyType_Ready(&__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(0, 265, __pyx_L1_error) __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr.tp_print = 0; __pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr = &__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_1_genexpr; if (PyType_Ready(&__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr) < 0) __PYX_ERR(0, 267, __pyx_L1_error) __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr.tp_print = 0; __pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr = &__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_2_genexpr; if (PyType_Ready(&__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper.tp_print = 0; __pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper = &__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_3___pyx_fuse_1fornav_wrapper; if (PyType_Ready(&__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr) < 0) __PYX_ERR(0, 265, __pyx_L1_error) __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr.tp_print = 0; __pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr = &__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_4_genexpr; if (PyType_Ready(&__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr) < 0) __PYX_ERR(0, 267, __pyx_L1_error) __pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr.tp_print = 0; __pyx_ptype_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr = &__pyx_type_10pyresample_3ewa_7_fornav___pyx_scope_struct_5_genexpr; __pyx_vtabptr_array = &__pyx_vtable_array; __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 103, __pyx_L1_error) __pyx_type___pyx_array.tp_print = 0; if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 103, __pyx_L1_error) __pyx_array_type = &__pyx_type___pyx_array; if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 275, __pyx_L1_error) __pyx_type___pyx_MemviewEnum.tp_print = 0; __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 326, __pyx_L1_error) __pyx_type___pyx_memoryview.tp_print = 0; if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 326, __pyx_L1_error) __pyx_memoryview_type = &__pyx_type___pyx_memoryview; __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 951, __pyx_L1_error) __pyx_type___pyx_memoryviewslice.tp_print = 0; if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 951, __pyx_L1_error) __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; /*--- Type import code ---*/ __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", #if CYTHON_COMPILING_IN_PYPY sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(3, 9, __pyx_L1_error) __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), 0); if (unlikely(!__pyx_ptype_7cpython_4bool_bool)) __PYX_ERR(4, 8, __pyx_L1_error) __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), 0); if (unlikely(!__pyx_ptype_7cpython_7complex_complex)) __PYX_ERR(5, 15, __pyx_L1_error) __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 155, __pyx_L1_error) __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 168, __pyx_L1_error) __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 172, __pyx_L1_error) __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 181, __pyx_L1_error) __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 861, __pyx_L1_error) /*--- Variable import code ---*/ /*--- Function import code ---*/ /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pyresample/ewa/_fornav.pyx":25 * Averaging (EWA) algorithm. * """ * __docformat__ = "restructuredtext en" # <<<<<<<<<<<<<< * * import cython */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_docformat, __pyx_kp_s_restructuredtext_en) < 0) __PYX_ERR(0, 25, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":29 * import cython * cimport cython * import numpy # <<<<<<<<<<<<<< * cimport numpy * cimport cpython */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_1) < 0) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_fornav.pyx":203 * tuple input_arrays, tuple output_arrays, input_fill, output_fill, * size_t rows_per_scan, * unsigned int weight_count=10000, weight_type weight_min=0.01, weight_type weight_distance_max=1.0, weight_type weight_delta_max=10.0, weight_type weight_sum_min=-1.0, # <<<<<<<<<<<<<< * cpython.bool maximum_weight_mode=False): * """Python wrapper around the C interface to fornav. */ __pyx_t_1 = __Pyx_PyInt_From_long(0x2710); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(0.01); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(10.0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyFloat_FromDouble(-1.0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pyresample/ewa/_fornav.pyx":204 * size_t rows_per_scan, * unsigned int weight_count=10000, weight_type weight_min=0.01, weight_type weight_distance_max=1.0, weight_type weight_delta_max=10.0, weight_type weight_sum_min=-1.0, * cpython.bool maximum_weight_mode=False): # <<<<<<<<<<<<<< * """Python wrapper around the C interface to fornav. * */ __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_10pyresample_3ewa_7_fornav_3fornav_wrapper, 0, __pyx_n_s_fornav_wrapper, NULL, __pyx_n_s_pyresample_ewa__fornav, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults2), 1)) __PYX_ERR(0, 199, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":204 * size_t rows_per_scan, * unsigned int weight_count=10000, weight_type weight_min=0.01, weight_type weight_distance_max=1.0, weight_type weight_delta_max=10.0, weight_type weight_sum_min=-1.0, * cpython.bool maximum_weight_mode=False): # <<<<<<<<<<<<<< * """Python wrapper around the C interface to fornav. * */ __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_5)->__pyx_arg_maximum_weight_mode = ((PyBoolObject *)__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_5)->__pyx_arg_weight_count = 0x2710; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_5)->__pyx_arg_weight_min = 0.01; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_5)->__pyx_arg_weight_distance_max = 1.0; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_5)->__pyx_arg_weight_delta_max = 10.0; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_5)->__pyx_arg_weight_sum_min = -1.0; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_7); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_10pyresample_3ewa_7_fornav_12__defaults__); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_float32_t, __pyx_t_5) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_10pyresample_3ewa_7_fornav_5fornav_wrapper, 0, __pyx_n_s_fornav_wrapper, NULL, __pyx_n_s_pyresample_ewa__fornav, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults3), 1)) __PYX_ERR(0, 199, __pyx_L1_error) /* "pyresample/ewa/_fornav.pyx":204 * size_t rows_per_scan, * unsigned int weight_count=10000, weight_type weight_min=0.01, weight_type weight_distance_max=1.0, weight_type weight_delta_max=10.0, weight_type weight_sum_min=-1.0, * cpython.bool maximum_weight_mode=False): # <<<<<<<<<<<<<< * """Python wrapper around the C interface to fornav. * */ __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_5)->__pyx_arg_maximum_weight_mode = ((PyBoolObject *)__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_5)->__pyx_arg_weight_count = 0x2710; __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_5)->__pyx_arg_weight_min = 0.01; __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_5)->__pyx_arg_weight_distance_max = 1.0; __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_5)->__pyx_arg_weight_delta_max = 10.0; __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_5)->__pyx_arg_weight_sum_min = -1.0; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_7); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_10pyresample_3ewa_7_fornav_14__defaults__); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_float64_t, __pyx_t_5) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyresample/ewa/_fornav.pyx":199 * @cython.boundscheck(False) * @cython.wraparound(False) * def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, # <<<<<<<<<<<<<< * numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, * tuple input_arrays, tuple output_arrays, input_fill, output_fill, */ __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_mdef_10pyresample_3ewa_7_fornav_1fornav_wrapper, 0, __pyx_n_s_fornav_wrapper, NULL, __pyx_n_s_pyresample_ewa__fornav, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_7); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_10pyresample_3ewa_7_fornav_12__defaults__); ((__pyx_FusedFunctionObject *) __pyx_t_5)->__signatures__ = __pyx_t_6; __Pyx_GIVEREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fornav_wrapper, __pyx_t_5) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pyresample/ewa/_fornav.pyx":1 * #!/usr/bin/env python # <<<<<<<<<<<<<< * # -*- coding: utf-8 -*- * */ __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":207 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * def __dealloc__(array self): */ __pyx_t_4 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_4) < 0) __PYX_ERR(2, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_array_type); /* "View.MemoryView":282 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":283 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":284 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":287 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":288 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":312 * * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ * PyThread_allocate_lock(), */ __pyx_memoryview_thread_locks_used = 0; /* "View.MemoryView":313 * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< * PyThread_allocate_lock(), * PyThread_allocate_lock(), */ __pyx_t_8[0] = PyThread_allocate_lock(); __pyx_t_8[1] = PyThread_allocate_lock(); __pyx_t_8[2] = PyThread_allocate_lock(); __pyx_t_8[3] = PyThread_allocate_lock(); __pyx_t_8[4] = PyThread_allocate_lock(); __pyx_t_8[5] = PyThread_allocate_lock(); __pyx_t_8[6] = PyThread_allocate_lock(); __pyx_t_8[7] = PyThread_allocate_lock(); memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_8, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); /* "View.MemoryView":535 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_4) < 0) __PYX_ERR(2, 535, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_memoryview_type); /* "View.MemoryView":981 * return self.from_object * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_4) < 0) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_memoryviewslice_type); /* "View.MemoryView":1391 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pyresample.ewa._fornav", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_DECREF(__pyx_m); __pyx_m = 0; } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pyresample.ewa._fornav"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if PY_MAJOR_VERSION < 3 return; #else return __pyx_m; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule((char *)modname); if (!m) goto end; p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyErrFetchRestore */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } #if PY_VERSION_HEX >= 0x03030000 if (cause) { #else if (cause && cause != Py_None) { #endif PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = PyThreadState_GET(); PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_VERSION_HEX < 0x03030000 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(1); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); #endif if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } bad: #if PY_VERSION_HEX < 0x03030000 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } /* SaveResetException */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* PyErrExceptionMatches */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { PyObject *exc_type = tstate->curexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; return PyErr_GivenExceptionMatches(exc_type, err); } #endif /* GetException */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { #endif PyObject *local_type, *local_value, *local_tb; #if CYTHON_COMPILING_IN_CPYTHON PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_COMPILING_IN_CPYTHON tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* UnicodeAsUCS4 */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) { Py_ssize_t length; #if CYTHON_PEP393_ENABLED length = PyUnicode_GET_LENGTH(x); if (likely(length == 1)) { return PyUnicode_READ_CHAR(x, 0); } #else length = PyUnicode_GET_SIZE(x); if (likely(length == 1)) { return PyUnicode_AS_UNICODE(x)[0]; } #if Py_UNICODE_SIZE == 2 else if (PyUnicode_GET_SIZE(x) == 2) { Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0]; if (high_val >= 0xD800 && high_val <= 0xDBFF) { Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1]; if (low_val >= 0xDC00 && low_val <= 0xDFFF) { return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1))); } } } #endif #endif PyErr_Format(PyExc_ValueError, "only single character unicode strings can be converted to Py_UCS4, " "got length %" CYTHON_FORMAT_SSIZE_T "d", length); return (Py_UCS4)-1; } /* object_ord */ static long __Pyx__PyObject_Ord(PyObject* c) { Py_ssize_t size; if (PyBytes_Check(c)) { size = PyBytes_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyBytes_AS_STRING(c)[0]; } #if PY_MAJOR_VERSION < 3 } else if (PyUnicode_Check(c)) { return (long)__Pyx_PyUnicode_AsPy_UCS4(c); #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) } else if (PyByteArray_Check(c)) { size = PyByteArray_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyByteArray_AS_STRING(c)[0]; } #endif } else { PyErr_Format(PyExc_TypeError, "ord() expected string of length 1, but %.200s found", c->ob_type->tp_name); return (long)(Py_UCS4)-1; } PyErr_Format(PyExc_TypeError, "ord() expected a character, but string of length %zd found", size); return (long)(Py_UCS4)-1; } /* SetItemInt */ static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (!j) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) { #else if (is_list || PySequence_Check(o)) { #endif return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_COMPILING_IN_CPYTHON PyThreadState *tstate = PyThreadState_GET(); PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { #else if (likely(PyCFunction_Check(func))) { #endif if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { #else if (likely(PyCFunction_Check(func))) { #endif if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method, *result = NULL; method = __Pyx_PyObject_GetAttrStr(obj, method_name); if (unlikely(!method)) goto bad; #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyMethod_Check(method))) { PyObject *self = PyMethod_GET_SELF(method); if (likely(self)) { PyObject *function = PyMethod_GET_FUNCTION(method); result = __Pyx_PyObject_CallOneArg(function, self); Py_DECREF(method); return result; } } #endif result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int is_tuple, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; if (!is_tuple && unlikely(!PyTuple_Check(tuple))) { iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = Py_TYPE(iter)->tp_iternext; value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); } else { if (!has_known_size && unlikely(PyTuple_GET_SIZE(tuple) != 2)) { __Pyx_UnpackTupleError(tuple, 2); goto bad; } #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } } *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; #if !CYTHON_COMPILING_IN_PYPY if (is_dict) { *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; } #endif *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* ArgTypeTest */ static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); } static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (none_allowed && obj == Py_None) return 1; else if (exact) { if (likely(Py_TYPE(obj) == type)) return 1; #if PY_MAJOR_VERSION == 2 else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(PyObject_TypeCheck(obj, type))) return 1; } __Pyx_RaiseArgumentTypeInvalid(name, obj, type); return 0; } /* None */ static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) { PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname); } /* BufferFormatCheck */ static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { unsigned int n = 1; return *(unsigned char*)(&n) != 0; } static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; ctx->is_valid_array = 0; ctx->struct_alignment = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t < '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static int __Pyx_BufFmt_ExpectNumber(const char **ts) { int number = __Pyx_BufFmt_ParseNumber(ts); if (number == -1) PyErr_Format(PyExc_ValueError,\ "Does not understand character buffer dtype format string ('%c')", **ts); return number; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'c': return "'char'"; case 'b': return "'signed char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 's': case 'p': return "a string"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } /* These are for computing the padding at the end of the struct to align on the first member of the struct. This will probably the same as above, but we don't have any guarantees. */ typedef struct { short x; char c; } __Pyx_pad_short; typedef struct { int x; char c; } __Pyx_pad_int; typedef struct { long x; char c; } __Pyx_pad_long; typedef struct { float x; char c; } __Pyx_pad_float; typedef struct { double x; char c; } __Pyx_pad_double; typedef struct { long double x; char c; } __Pyx_pad_longdouble; typedef struct { void *x; char c; } __Pyx_pad_void_p; #ifdef HAVE_LONG_LONG typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': return 'H'; case 'b': case 'h': case 'i': case 'l': case 'q': case 's': case 'p': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset, arraysize = 1; if (ctx->enc_type == 0) return 0; if (ctx->head->field->type->arraysize[0]) { int i, ndim = 0; if (ctx->enc_type == 's' || ctx->enc_type == 'p') { ctx->is_valid_array = ctx->head->field->type->ndim == 1; ndim = 1; if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %zu", ctx->head->field->type->arraysize[0], ctx->enc_count); return -1; } } if (!ctx->is_valid_array) { PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", ctx->head->field->type->ndim, ndim); return -1; } for (i = 0; i < ctx->head->field->type->ndim; i++) { arraysize *= ctx->head->field->type->arraysize[i]; } ctx->is_valid_array = 0; ctx->enc_count = 1; } group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; if (ctx->struct_alignment == 0) ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, ctx->is_complex); } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } if ((type->typegroup == 'H' || group == 'H') && type->size == size) { } else { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; if (arraysize) ctx->fmt_offset += (arraysize - 1) * size; --ctx->enc_count; while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static CYTHON_INLINE PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; int i = 0, number; int ndim = ctx->head->field->type->ndim; ; ++ts; if (ctx->new_count != 1) { PyErr_SetString(PyExc_ValueError, "Cannot handle repeated arrays in format string"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; while (*ts && *ts != ')') { switch (*ts) { case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; default: break; } number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) return PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %d", ctx->head->field->type->arraysize[i], number); if (*ts != ',' && *ts != ')') return PyErr_Format(PyExc_ValueError, "Expected a comma in format string, got '%c'", *ts); if (*ts == ',') ts++; i++; } if (i != ndim) return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", ctx->head->field->type->ndim, i); if (!*ts) { PyErr_SetString(PyExc_ValueError, "Unexpected end of format string, expected ')'"); return NULL; } ctx->is_valid_array = 1; ctx->new_count = 1; *tsp = ++ts; return Py_None; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case '\r': case '\n': ++ts; break; case '<': if (!__Pyx_IsLittleEndian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_IsLittleEndian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; size_t struct_alignment = ctx->struct_alignment; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; ctx->enc_count = 0; ctx->struct_alignment = 0; ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; if (struct_alignment) ctx->struct_alignment = struct_alignment; } break; case '}': { size_t alignment = ctx->struct_alignment; ++ts; if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; if (alignment && ctx->fmt_offset % alignment) { ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); } } return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': case 'p': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { ctx->enc_count += ctx->new_count; ctx->new_count = 1; got_Z = 0; ++ts; break; } case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; case '(': if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; break; default: { int number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; ctx->new_count = (size_t)number; } } } } static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { buf->buf = NULL; buf->obj = NULL; buf->strides = __Pyx_zeros; buf->shape = __Pyx_zeros; buf->suboffsets = __Pyx_minusones; } static CYTHON_INLINE int __Pyx_GetBufferAndValidate( Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { if (obj == Py_None || obj == NULL) { __Pyx_ZeroBuffer(buf); return 0; } buf->buf = NULL; if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; if (buf->ndim != nd) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", nd, buf->ndim); goto fail; } if (!cast) { __Pyx_BufFmt_Context ctx; __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned)buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; return 0; fail:; __Pyx_ZeroBuffer(buf); return -1; } static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { if (info->buf == NULL) return; if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; __Pyx_ReleaseBuffer(info); } /* GetItemInt */ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o); if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o); if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(PyObject_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* GetModuleGlobalName */ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { PyObject *result; #if CYTHON_COMPILING_IN_CPYTHON result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { #else result = PyObject_GetItem(__pyx_d, name); if (!result) { PyErr_Clear(); #endif result = __Pyx_GetBuiltinName(name); } return result; } /* BufferFallbackError */ static void __Pyx_RaiseBufferFallbackError(void) { PyErr_SetString(PyExc_ValueError, "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!"); } /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* None */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } length = stop - start; if (unlikely(length <= 0)) return PyUnicode_FromUnicode(NULL, 0); cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* SwapException */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* PyIntBinop */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long x; long a = PyInt_AS_LONG(op1); x = (long)((unsigned long)a + b); if (likely((x^a) >= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); long_long: llx = lla + llb; return PyLong_FromLongLong(llx); } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* None */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* None */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* FetchCommonType */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); if (!fake_module) return NULL; Py_INCREF(fake_module); cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); if (cached_type) { if (!PyType_Check((PyObject*)cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", type->tp_name); goto bad; } if (cached_type->tp_basicsize != type->tp_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", type->tp_name); goto bad; } } else { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) goto bad; Py_INCREF(type); cached_type = type; } done: Py_DECREF(fake_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CythonFunction */ static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { if (op->func.m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); #else op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp = op->func_doc; if (value == NULL) { value = Py_None; } Py_INCREF(value); op->func_doc = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op) { if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); #else op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) { #else if (unlikely(value == NULL || !PyString_Check(value))) { #endif PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = op->func_name; Py_INCREF(value); op->func_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op) { Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) { #else if (unlikely(value == NULL || !PyString_Check(value))) { #endif PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = op->func_qualname; Py_INCREF(value); op->func_qualname = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) { PyObject *self; self = m->func_closure; if (self == NULL) self = Py_None; Py_INCREF(self); return self; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op) { if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp; if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } tmp = op->func_dict; Py_INCREF(value); op->func_dict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op) { Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op) { Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op) { PyObject* result = (op->func_code) ? op->func_code : Py_None; Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_COMPILING_IN_CPYTHON op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } Py_INCREF(value); tmp = op->defaults_tuple; op->defaults_tuple = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } Py_INCREF(value); tmp = op->defaults_kwdict; op->defaults_kwdict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value) { PyObject* tmp; if (!value || value == Py_None) { value = NULL; } else if (!PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); tmp = op->func_annotations; op->func_annotations = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(__pyx_CyFunctionObject, func.m_module), PY_WRITE_RESTRICTED, 0}, {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(m->func.m_ml->ml_name); #else return PyString_FromString(m->func.m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) #endif static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); if (op == NULL) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; op->func.m_ml = ml; op->func.m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); op->func.m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; op->func_classobj = NULL; op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; PyObject_GC_Track(op); return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(m->func.m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); Py_CLEAR(m->func_classobj); Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); PyObject_GC_Del(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(m->func.m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(m->func_classobj); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(func); return func; } if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { if (type == NULL) type = (PyObject *)(Py_TYPE(obj)); return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); } if (obj == Py_None) obj = NULL; return __Pyx_PyMethod_New(func, obj, type); } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } #if CYTHON_COMPILING_IN_PYPY static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; PyObject *self = f->m_self; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; result = (*meth)(self, arg0); Py_DECREF(arg0); return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags in " "__Pyx_CyFunction_Call. METH_OLDARGS is no " "longer supported!"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } #else static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return PyCFunction_Call(func, arg, kw); } #endif static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_Call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_CyFunction_descr_get, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif }; static int __pyx_CyFunction_init(void) { #if !CYTHON_COMPILING_IN_PYPY __pyx_CyFunctionType_type.tp_call = PyCFunction_Call; #endif __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); if (__pyx_CyFunctionType == NULL) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (!m->defaults) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* FusedFunction */ static PyObject * __pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code) { __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_New(type, ml, flags, qualname, self, module, globals, code); if (!fusedfunc) return NULL; fusedfunc->__signatures__ = NULL; fusedfunc->type = NULL; fusedfunc->self = NULL; return (PyObject *) fusedfunc; } static void __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self) { __pyx_FusedFunction_clear(self); __pyx_FusedFunctionType->tp_free((PyObject *) self); } static int __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self, visitproc visit, void *arg) { Py_VISIT(self->self); Py_VISIT(self->type); Py_VISIT(self->__signatures__); return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg); } static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self) { Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self); } static PyObject * __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type) { __pyx_FusedFunctionObject *func, *meth; func = (__pyx_FusedFunctionObject *) self; if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(self); return self; } if (obj == Py_None) obj = NULL; meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_NewEx( ((PyCFunctionObject *) func)->m_ml, ((__pyx_CyFunctionObject *) func)->flags, ((__pyx_CyFunctionObject *) func)->func_qualname, ((__pyx_CyFunctionObject *) func)->func_closure, ((PyCFunctionObject *) func)->m_module, ((__pyx_CyFunctionObject *) func)->func_globals, ((__pyx_CyFunctionObject *) func)->func_code); if (!meth) return NULL; Py_XINCREF(func->func.func_classobj); meth->func.func_classobj = func->func.func_classobj; Py_XINCREF(func->__signatures__); meth->__signatures__ = func->__signatures__; Py_XINCREF(type); meth->type = type; Py_XINCREF(func->func.defaults_tuple); meth->func.defaults_tuple = func->func.defaults_tuple; if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD) obj = type; Py_XINCREF(obj); meth->self = obj; return (PyObject *) meth; } static PyObject * _obj_to_str(PyObject *obj) { if (PyType_Check(obj)) return PyObject_GetAttr(obj, __pyx_n_s_name_2); else return PyObject_Str(obj); } static PyObject * __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx) { PyObject *signature = NULL; PyObject *unbound_result_func; PyObject *result_func = NULL; if (self->__signatures__ == NULL) { PyErr_SetString(PyExc_TypeError, "Function is not fused"); return NULL; } if (PyTuple_Check(idx)) { PyObject *list = PyList_New(0); Py_ssize_t n = PyTuple_GET_SIZE(idx); PyObject *string = NULL; PyObject *sep = NULL; int i; if (!list) return NULL; for (i = 0; i < n; i++) { #if CYTHON_COMPILING_IN_CPYTHON PyObject *item = PyTuple_GET_ITEM(idx, i); #else PyObject *item = PySequence_ITEM(idx, i); #endif string = _obj_to_str(item); #if !CYTHON_COMPILING_IN_CPYTHON Py_DECREF(item); #endif if (!string || PyList_Append(list, string) < 0) goto __pyx_err; Py_DECREF(string); } sep = PyUnicode_FromString("|"); if (sep) signature = PyUnicode_Join(sep, list); __pyx_err: ; Py_DECREF(list); Py_XDECREF(sep); } else { signature = _obj_to_str(idx); } if (!signature) return NULL; unbound_result_func = PyObject_GetItem(self->__signatures__, signature); if (unbound_result_func) { if (self->self || self->type) { __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func; Py_CLEAR(unbound->func.func_classobj); Py_XINCREF(self->func.func_classobj); unbound->func.func_classobj = self->func.func_classobj; result_func = __pyx_FusedFunction_descr_get(unbound_result_func, self->self, self->type); } else { result_func = unbound_result_func; Py_INCREF(result_func); } } Py_DECREF(signature); Py_XDECREF(unbound_result_func); return result_func; } static PyObject * __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; PyObject *result; int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD && !((__pyx_FusedFunctionObject *) func)->__signatures__); if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) { Py_ssize_t argc; PyObject *new_args; PyObject *self; PyObject *m_self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (!new_args) return NULL; self = PyTuple_GetItem(args, 0); if (!self) return NULL; m_self = cyfunc->func.m_self; cyfunc->func.m_self = self; result = __Pyx_CyFunction_Call(func, new_args, kw); cyfunc->func.m_self = m_self; Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } static PyObject * __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw) { __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func; Py_ssize_t argc = PyTuple_GET_SIZE(args); PyObject *new_args = NULL; __pyx_FusedFunctionObject *new_func = NULL; PyObject *result = NULL; PyObject *self = NULL; int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD; int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD; if (binding_func->self) { Py_ssize_t i; new_args = PyTuple_New(argc + 1); if (!new_args) return NULL; self = binding_func->self; #if !CYTHON_COMPILING_IN_CPYTHON Py_INCREF(self); #endif Py_INCREF(self); PyTuple_SET_ITEM(new_args, 0, self); for (i = 0; i < argc; i++) { #if CYTHON_COMPILING_IN_CPYTHON PyObject *item = PyTuple_GET_ITEM(args, i); Py_INCREF(item); #else PyObject *item = PySequence_ITEM(args, i); if (unlikely(!item)) goto bad; #endif PyTuple_SET_ITEM(new_args, i + 1, item); } args = new_args; } else if (binding_func->type) { if (argc < 1) { PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given."); return NULL; } #if CYTHON_COMPILING_IN_CPYTHON self = PyTuple_GET_ITEM(args, 0); #else self = PySequence_ITEM(args, 0); if (unlikely(!self)) return NULL; #endif } if (self && !is_classmethod && !is_staticmethod) { int is_instance = PyObject_IsInstance(self, binding_func->type); if (unlikely(!is_instance)) { PyErr_Format(PyExc_TypeError, "First argument should be of type %.200s, got %.200s.", ((PyTypeObject *) binding_func->type)->tp_name, self->ob_type->tp_name); goto bad; } else if (unlikely(is_instance == -1)) { goto bad; } } #if !CYTHON_COMPILING_IN_CPYTHON Py_XDECREF(self); self = NULL; #endif if (binding_func->__signatures__) { PyObject *tup = PyTuple_Pack(4, binding_func->__signatures__, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (!tup) goto bad; new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL); Py_DECREF(tup); if (!new_func) goto bad; Py_XINCREF(binding_func->func.func_classobj); Py_CLEAR(new_func->func.func_classobj); new_func->func.func_classobj = binding_func->func.func_classobj; func = (PyObject *) new_func; } result = __pyx_FusedFunction_callfunction(func, args, kw); bad: #if !CYTHON_COMPILING_IN_CPYTHON Py_XDECREF(self); #endif Py_XDECREF(new_args); Py_XDECREF((PyObject *) new_func); return result; } static PyMemberDef __pyx_FusedFunction_members[] = { {(char *) "__signatures__", T_OBJECT, offsetof(__pyx_FusedFunctionObject, __signatures__), READONLY, 0}, {0, 0, 0, 0, 0}, }; static PyMappingMethods __pyx_FusedFunction_mapping_methods = { 0, (binaryfunc) __pyx_FusedFunction_getitem, 0, }; static PyTypeObject __pyx_FusedFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "fused_cython_function", sizeof(__pyx_FusedFunctionObject), 0, (destructor) __pyx_FusedFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif 0, 0, 0, &__pyx_FusedFunction_mapping_methods, 0, (ternaryfunc) __pyx_FusedFunction_call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __pyx_FusedFunction_traverse, (inquiry) __pyx_FusedFunction_clear, 0, 0, 0, 0, 0, __pyx_FusedFunction_members, __pyx_CyFunction_getsets, &__pyx_CyFunctionType_type, 0, __pyx_FusedFunction_descr_get, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif }; static int __pyx_FusedFunction_init(void) { __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type); if (__pyx_FusedFunctionType == NULL) { return -1; } return 0; } /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; py_code = __pyx_find_code_object(c_line ? c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? c_line : py_line, py_code); } py_frame = PyFrame_New( PyThreadState_GET(), /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; py_frame->f_lineno = py_line; PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); if (PyObject_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); if (PyObject_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject *obj = view->obj; if (!obj) return; if (PyObject_CheckBuffer(obj)) { PyBuffer_Release(view); return; } if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) { __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); return; } Py_DECREF(obj); view->obj = NULL; } #endif /* MemviewSliceIsContig */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) { int i, index, step, start; Py_ssize_t itemsize = mvs.memview->view.itemsize; if (order == 'F') { step = 1; start = 0; } else { step = -1; start = ndim - 1; } for (i = 0; i < ndim; i++) { index = start + step * i; if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) return 0; itemsize *= mvs.shape[index]; } return 1; } /* OverlappingSlices */ static void __pyx_get_array_memory_extents(__Pyx_memviewslice *slice, void **out_start, void **out_end, int ndim, size_t itemsize) { char *start, *end; int i; start = end = slice->data; for (i = 0; i < ndim; i++) { Py_ssize_t stride = slice->strides[i]; Py_ssize_t extent = slice->shape[i]; if (extent == 0) { *out_start = *out_end = start; return; } else { if (stride > 0) end += stride * (extent - 1); else start += stride * (extent - 1); } } *out_start = start; *out_end = end + itemsize; } static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize) { void *start1, *end1, *start2, *end2; __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); return (start1 < end2) && (start2 < end1); } /* Capsule */ static CYTHON_INLINE PyObject * __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) { PyObject *cobj; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, NULL); #else cobj = PyCObject_FromVoidPtr(p, NULL); #endif return cobj; } /* TypeInfoCompare */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) { int i; if (!a || !b) return 0; if (a == b) return 1; if (a->size != b->size || a->typegroup != b->typegroup || a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { if (a->typegroup == 'H' || b->typegroup == 'H') { return a->size == b->size; } else { return 0; } } if (a->ndim) { for (i = 0; i < a->ndim; i++) if (a->arraysize[i] != b->arraysize[i]) return 0; } if (a->typegroup == 'S') { if (a->flags != b->flags) return 0; if (a->fields || b->fields) { if (!(a->fields && b->fields)) return 0; for (i = 0; a->fields[i].type && b->fields[i].type; i++) { __Pyx_StructField *field_a = a->fields + i; __Pyx_StructField *field_b = b->fields + i; if (field_a->offset != field_b->offset || !__pyx_typeinfo_cmp(field_a->type, field_b->type)) return 0; } return !a->fields[i].type && !b->fields[i].type; } } return 1; } /* MemviewSliceValidateAndInit */ static int __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) { if (buf->shape[dim] <= 1) return 1; if (buf->strides) { if (spec & __Pyx_MEMVIEW_CONTIG) { if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { if (buf->strides[dim] != sizeof(void *)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly contiguous " "in dimension %d.", dim); goto fail; } } else if (buf->strides[dim] != buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } if (spec & __Pyx_MEMVIEW_FOLLOW) { Py_ssize_t stride = buf->strides[dim]; if (stride < 0) stride = -stride; if (stride < buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } } else { if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not contiguous in " "dimension %d", dim); goto fail; } else if (spec & (__Pyx_MEMVIEW_PTR)) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not indirect in " "dimension %d", dim); goto fail; } else if (buf->suboffsets) { PyErr_SetString(PyExc_ValueError, "Buffer exposes suboffsets but no strides"); goto fail; } } return 1; fail: return 0; } static int __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) { if (spec & __Pyx_MEMVIEW_DIRECT) { if (buf->suboffsets && buf->suboffsets[dim] >= 0) { PyErr_Format(PyExc_ValueError, "Buffer not compatible with direct access " "in dimension %d.", dim); goto fail; } } if (spec & __Pyx_MEMVIEW_PTR) { if (!buf->suboffsets || (buf->suboffsets && buf->suboffsets[dim] < 0)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly accessible " "in dimension %d.", dim); goto fail; } } return 1; fail: return 0; } static int __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) { int i; if (c_or_f_flag & __Pyx_IS_F_CONTIG) { Py_ssize_t stride = 1; for (i = 0; i < ndim; i++) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not fortran contiguous."); goto fail; } stride = stride * buf->shape[i]; } } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { Py_ssize_t stride = 1; for (i = ndim - 1; i >- 1; i--) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not C contiguous."); goto fail; } stride = stride * buf->shape[i]; } } return 1; fail: return 0; } static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj) { struct __pyx_memoryview_obj *memview, *new_memview; __Pyx_RefNannyDeclarations Py_buffer *buf; int i, spec = 0, retval = -1; __Pyx_BufFmt_Context ctx; int from_memoryview = __pyx_memoryview_check(original_obj); __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) original_obj)->typeinfo)) { memview = (struct __pyx_memoryview_obj *) original_obj; new_memview = NULL; } else { memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( original_obj, buf_flags, 0, dtype); new_memview = memview; if (unlikely(!memview)) goto fail; } buf = &memview->view; if (buf->ndim != ndim) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", ndim, buf->ndim); goto fail; } if (new_memview) { __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned) buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } for (i = 0; i < ndim; i++) { spec = axes_specs[i]; if (!__pyx_check_strides(buf, i, ndim, spec)) goto fail; if (!__pyx_check_suboffsets(buf, i, ndim, spec)) goto fail; } if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, new_memview != NULL) == -1)) { goto fail; } retval = 0; goto no_fail; fail: Py_XDECREF(new_memview); retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float32_t(PyObject *obj) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, PyBUF_RECORDS, 2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(PyObject *obj) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, PyBUF_RECORDS, 2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(unsigned int) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned int), little, !is_unsigned); } } /* BytesContains */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character) { const Py_ssize_t length = PyBytes_GET_SIZE(bytes); char* char_start = PyBytes_AS_STRING(bytes); char* pos; for (pos=char_start; pos < char_start+length; pos++) { if (character == pos[0]) return 1; } return 0; } /* None */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif /* None */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float denom = b.real * b.real + b.imag * b.imag; z.real = (a.real * b.real + a.imag * b.imag) / denom; z.imag = (a.imag * b.real - a.real * b.imag) / denom; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(a, a); case 3: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(z, a); case 4: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } r = a.real; theta = 0; } else { r = __Pyx_c_absf(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif /* None */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif /* None */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double denom = b.real * b.real + b.imag * b.imag; z.real = (a.real * b.real + a.imag * b.imag) / denom; z.imag = (a.imag * b.real - a.real * b.imag) / denom; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(a, a); case 3: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(z, a); case 4: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } r = a.real; theta = 0; } else { r = __Pyx_c_abs(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) -1, const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(enum NPY_TYPES) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(enum NPY_TYPES) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), little, !is_unsigned); } } /* MemviewSliceCopyTemplate */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object) { __Pyx_RefNannyDeclarations int i; __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct __pyx_memoryview_obj *from_memview = from_mvs->memview; Py_buffer *buf = &from_memview->view; PyObject *shape_tuple = NULL; PyObject *temp_int = NULL; struct __pyx_array_obj *array_obj = NULL; struct __pyx_memoryview_obj *memview_obj = NULL; __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); for (i = 0; i < ndim; i++) { if (from_mvs->suboffsets[i] >= 0) { PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " "indirect dimensions (axis %d)", i); goto fail; } } shape_tuple = PyTuple_New(ndim); if (unlikely(!shape_tuple)) { goto fail; } __Pyx_GOTREF(shape_tuple); for(i = 0; i < ndim; i++) { temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); if(unlikely(!temp_int)) { goto fail; } else { PyTuple_SET_ITEM(shape_tuple, i, temp_int); temp_int = NULL; } } array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); if (unlikely(!array_obj)) { goto fail; } __Pyx_GOTREF(array_obj); memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( (PyObject *) array_obj, contig_flag, dtype_is_object, from_mvs->memview->typeinfo); if (unlikely(!memview_obj)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) goto fail; if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, dtype_is_object) < 0)) goto fail; goto no_fail; fail: __Pyx_XDECREF(new_mvs.memview); new_mvs.memview = NULL; new_mvs.data = NULL; no_fail: __Pyx_XDECREF(shape_tuple); __Pyx_XDECREF(temp_int); __Pyx_XDECREF(array_obj); __Pyx_RefNannyFinishContext(); return new_mvs; } /* MemviewSliceInit */ static int __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference) { __Pyx_RefNannyDeclarations int i, retval=-1; Py_buffer *buf = &memview->view; __Pyx_RefNannySetupContext("init_memviewslice", 0); if (!buf) { PyErr_SetString(PyExc_ValueError, "buf is NULL."); goto fail; } else if (memviewslice->memview || memviewslice->data) { PyErr_SetString(PyExc_ValueError, "memviewslice is already initialized!"); goto fail; } if (buf->strides) { for (i = 0; i < ndim; i++) { memviewslice->strides[i] = buf->strides[i]; } } else { Py_ssize_t stride = buf->itemsize; for (i = ndim - 1; i >= 0; i--) { memviewslice->strides[i] = stride; stride *= buf->shape[i]; } } for (i = 0; i < ndim; i++) { memviewslice->shape[i] = buf->shape[i]; if (buf->suboffsets) { memviewslice->suboffsets[i] = buf->suboffsets[i]; } else { memviewslice->suboffsets[i] = -1; } } memviewslice->memview = memview; memviewslice->data = (char *)buf->buf; if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { Py_INCREF(memview); } retval = 0; goto no_fail; fail: memviewslice->memview = 0; memviewslice->data = 0; retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } static CYTHON_INLINE void __pyx_fatalerror(const char *fmt, ...) { va_list vargs; char msg[200]; #ifdef HAVE_STDARG_PROTOTYPES va_start(vargs, fmt); #else va_start(vargs); #endif vsnprintf(msg, 200, fmt, vargs); Py_FatalError(msg); va_end(vargs); } static CYTHON_INLINE int __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)++; PyThread_release_lock(lock); return result; } static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)--; PyThread_release_lock(lock); return result; } static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int first_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview || (PyObject *) memview == Py_None) return; if (__pyx_get_slice_count(memview) < 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); first_time = __pyx_add_acquisition_count(memview) == 0; if (first_time) { if (have_gil) { Py_INCREF((PyObject *) memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_INCREF((PyObject *) memview); PyGILState_Release(_gilstate); } } } static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int last_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview ) { return; } else if ((PyObject *) memview == Py_None) { memslice->memview = NULL; return; } if (__pyx_get_slice_count(memview) <= 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); last_time = __pyx_sub_acquisition_count(memview) == 1; memslice->data = NULL; if (last_time) { if (have_gil) { Py_CLEAR(memslice->memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_CLEAR(memslice->memview); PyGILState_Release(_gilstate); } } else { memslice->memview = NULL; } } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(size_t) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (size_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(size_t) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) case -2: if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -3: if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -4: if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; } #endif if (sizeof(size_t) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else size_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (size_t) -1; } } else { size_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (size_t) -1; val = __Pyx_PyInt_As_size_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to size_t"); return (size_t) -1; } /* CIntFromPy */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(unsigned int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (unsigned int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0]) case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) { return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) { return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) { return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(unsigned int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, +digits[0]) case -2: if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -3: if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -4: if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; } #endif if (sizeof(unsigned int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else unsigned int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (unsigned int) -1; } } else { unsigned int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (unsigned int) -1; val = __Pyx_PyInt_As_unsigned_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned int"); return (unsigned int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned int"); return (unsigned int) -1; } /* CIntFromPy */ static CYTHON_INLINE npy_int8 __Pyx_PyInt_As_npy_int8(PyObject *x) { const npy_int8 neg_one = (npy_int8) -1, const_zero = (npy_int8) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(npy_int8) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(npy_int8, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (npy_int8) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (npy_int8) 0; case 1: __PYX_VERIFY_RETURN_INT(npy_int8, digit, digits[0]) case 2: if (8 * sizeof(npy_int8) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) >= 2 * PyLong_SHIFT) { return (npy_int8) (((((npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])); } } break; case 3: if (8 * sizeof(npy_int8) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) >= 3 * PyLong_SHIFT) { return (npy_int8) (((((((npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])); } } break; case 4: if (8 * sizeof(npy_int8) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) >= 4 * PyLong_SHIFT) { return (npy_int8) (((((((((npy_int8)digits[3]) << PyLong_SHIFT) | (npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (npy_int8) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(npy_int8) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(npy_int8, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(npy_int8) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(npy_int8, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (npy_int8) 0; case -1: __PYX_VERIFY_RETURN_INT(npy_int8, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(npy_int8, digit, +digits[0]) case -2: if (8 * sizeof(npy_int8) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) - 1 > 2 * PyLong_SHIFT) { return (npy_int8) (((npy_int8)-1)*(((((npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]))); } } break; case 2: if (8 * sizeof(npy_int8) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) - 1 > 2 * PyLong_SHIFT) { return (npy_int8) ((((((npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]))); } } break; case -3: if (8 * sizeof(npy_int8) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) - 1 > 3 * PyLong_SHIFT) { return (npy_int8) (((npy_int8)-1)*(((((((npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]))); } } break; case 3: if (8 * sizeof(npy_int8) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) - 1 > 3 * PyLong_SHIFT) { return (npy_int8) ((((((((npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]))); } } break; case -4: if (8 * sizeof(npy_int8) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) - 1 > 4 * PyLong_SHIFT) { return (npy_int8) (((npy_int8)-1)*(((((((((npy_int8)digits[3]) << PyLong_SHIFT) | (npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]))); } } break; case 4: if (8 * sizeof(npy_int8) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(npy_int8) - 1 > 4 * PyLong_SHIFT) { return (npy_int8) ((((((((((npy_int8)digits[3]) << PyLong_SHIFT) | (npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]))); } } break; } #endif if (sizeof(npy_int8) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(npy_int8, long, PyLong_AsLong(x)) } else if (sizeof(npy_int8) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(npy_int8, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else npy_int8 val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (npy_int8) -1; } } else { npy_int8 val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (npy_int8) -1; val = __Pyx_PyInt_As_npy_int8(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to npy_int8"); return (npy_int8) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to npy_int8"); return (npy_int8) -1; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { const char neg_one = (char) -1, const_zero = (char) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(char) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (char) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (char) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(char) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) case -2: if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -3: if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -4: if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; } #endif if (sizeof(char) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else char val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (char) -1; } } else { char val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (char) -1; val = __Pyx_PyInt_As_char(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to char"); return (char) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to char"); return (char) -1; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* PyObjectCallMethod1 */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { PyObject *method, *result = NULL; method = __Pyx_PyObject_GetAttrStr(obj, method_name); if (unlikely(!method)) goto bad; #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyMethod_Check(method))) { PyObject *self = PyMethod_GET_SELF(method); if (likely(self)) { PyObject *args; PyObject *function = PyMethod_GET_FUNCTION(method); args = PyTuple_New(2); if (unlikely(!args)) goto bad; Py_INCREF(self); PyTuple_SET_ITEM(args, 0, self); Py_INCREF(arg); PyTuple_SET_ITEM(args, 1, arg); Py_INCREF(function); Py_DECREF(method); method = NULL; result = __Pyx_PyObject_Call(function, args, NULL); Py_DECREF(args); Py_DECREF(function); return result; } } #endif result = __Pyx_PyObject_CallOneArg(method, arg); bad: Py_XDECREF(method); return result; } /* CoroutineBase */ #include #include static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value); static PyObject *__Pyx_Coroutine_Close(PyObject *self); static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args); #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) #if 1 || PY_VERSION_HEX < 0x030300B0 static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue) { PyObject *et, *ev, *tb; PyObject *value = NULL; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&et, &ev, &tb); if (!et) { Py_XDECREF(tb); Py_XDECREF(ev); Py_INCREF(Py_None); *pvalue = Py_None; return 0; } if (likely(et == PyExc_StopIteration)) { #if PY_VERSION_HEX >= 0x030300A0 if (ev && Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) { value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); Py_DECREF(ev); Py_XDECREF(tb); Py_DECREF(et); *pvalue = value; return 0; } #endif if (!ev || !PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { if (!ev) { Py_INCREF(Py_None); ev = Py_None; } else if (PyTuple_Check(ev)) { if (PyTuple_GET_SIZE(ev) >= 1) { PyObject *value; #if CYTHON_COMPILING_IN_CPYTHON value = PySequence_ITEM(ev, 0); #else value = PyTuple_GET_ITEM(ev, 0); Py_INCREF(value); #endif Py_DECREF(ev); ev = value; } else { Py_INCREF(Py_None); Py_DECREF(ev); ev = Py_None; } } Py_XDECREF(tb); Py_DECREF(et); *pvalue = ev; return 0; } } else if (!PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { __Pyx_ErrRestore(et, ev, tb); return -1; } PyErr_NormalizeException(&et, &ev, &tb); if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) { __Pyx_ErrRestore(et, ev, tb); return -1; } Py_XDECREF(tb); Py_DECREF(et); #if PY_VERSION_HEX >= 0x030300A0 value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); Py_DECREF(ev); #else { PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args); Py_DECREF(ev); if (likely(args)) { value = PySequence_GetItem(args, 0); Py_DECREF(args); } if (unlikely(!value)) { __Pyx_ErrRestore(NULL, NULL, NULL); Py_INCREF(Py_None); value = Py_None; } } #endif *pvalue = value; return 0; } #endif static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__pyx_CoroutineObject *self) { PyObject *exc_type = self->exc_type; PyObject *exc_value = self->exc_value; PyObject *exc_traceback = self->exc_traceback; self->exc_type = NULL; self->exc_value = NULL; self->exc_traceback = NULL; Py_XDECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_traceback); } static CYTHON_INLINE int __Pyx_Coroutine_CheckRunning(__pyx_CoroutineObject *gen) { if (unlikely(gen->is_running)) { PyErr_SetString(PyExc_ValueError, "generator already executing"); return 1; } return 0; } static CYTHON_INLINE PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value) { PyObject *retval; __Pyx_PyThreadState_declare assert(!self->is_running); if (unlikely(self->resume_label == 0)) { if (unlikely(value && value != Py_None)) { PyErr_SetString(PyExc_TypeError, "can't send non-None value to a " "just-started generator"); return NULL; } } if (unlikely(self->resume_label == -1)) { PyErr_SetNone(PyExc_StopIteration); return NULL; } __Pyx_PyThreadState_assign if (value) { #if CYTHON_COMPILING_IN_PYPY #else if (self->exc_traceback) { PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback; PyFrameObject *f = tb->tb_frame; Py_XINCREF(__pyx_tstate->frame); assert(f->f_back == NULL); f->f_back = __pyx_tstate->frame; } #endif __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, &self->exc_traceback); } else { __Pyx_Coroutine_ExceptionClear(self); } self->is_running = 1; retval = self->body((PyObject *) self, value); self->is_running = 0; if (retval) { __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, &self->exc_traceback); #if CYTHON_COMPILING_IN_PYPY #else if (self->exc_traceback) { PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback; PyFrameObject *f = tb->tb_frame; Py_CLEAR(f->f_back); } #endif } else { __Pyx_Coroutine_ExceptionClear(self); } return retval; } static CYTHON_INLINE PyObject *__Pyx_Coroutine_MethodReturn(PyObject *retval) { if (unlikely(!retval && !PyErr_Occurred())) { PyErr_SetNone(PyExc_StopIteration); } return retval; } static CYTHON_INLINE PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) { PyObject *ret; PyObject *val = NULL; __Pyx_Coroutine_Undelegate(gen); __Pyx_PyGen_FetchStopIterationValue(&val); ret = __Pyx_Coroutine_SendEx(gen, val); Py_XDECREF(val); return ret; } static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { PyObject *retval; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; PyObject *yf = gen->yieldfrom; if (unlikely(__Pyx_Coroutine_CheckRunning(gen))) return NULL; if (yf) { PyObject *ret; gen->is_running = 1; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_CheckExact(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif { if (value == Py_None) ret = Py_TYPE(yf)->tp_iternext(yf); else ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value); } gen->is_running = 0; if (likely(ret)) { return ret; } retval = __Pyx_Coroutine_FinishDelegation(gen); } else { retval = __Pyx_Coroutine_SendEx(gen, value); } return __Pyx_Coroutine_MethodReturn(retval); } static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) { PyObject *retval = NULL; int err = 0; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { retval = __Pyx_Coroutine_Close(yf); if (!retval) return -1; } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_CheckExact(yf)) { retval = __Pyx_Coroutine_Close(yf); if (!retval) return -1; } else #endif { PyObject *meth; gen->is_running = 1; meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close); if (unlikely(!meth)) { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_WriteUnraisable(yf); } PyErr_Clear(); } else { retval = PyObject_CallFunction(meth, NULL); Py_DECREF(meth); if (!retval) err = -1; } gen->is_running = 0; } Py_XDECREF(retval); return err; } static PyObject *__Pyx_Generator_Next(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; PyObject *yf = gen->yieldfrom; if (unlikely(__Pyx_Coroutine_CheckRunning(gen))) return NULL; if (yf) { PyObject *ret; gen->is_running = 1; ret = Py_TYPE(yf)->tp_iternext(yf); gen->is_running = 0; if (likely(ret)) { return ret; } return __Pyx_Coroutine_FinishDelegation(gen); } return __Pyx_Coroutine_SendEx(gen, Py_None); } static PyObject *__Pyx_Coroutine_Close(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *retval, *raised_exception; PyObject *yf = gen->yieldfrom; int err = 0; if (unlikely(__Pyx_Coroutine_CheckRunning(gen))) return NULL; if (yf) { Py_INCREF(yf); err = __Pyx_Coroutine_CloseIter(gen, yf); __Pyx_Coroutine_Undelegate(gen); Py_DECREF(yf); } if (err == 0) PyErr_SetNone(PyExc_GeneratorExit); retval = __Pyx_Coroutine_SendEx(gen, NULL); if (retval) { Py_DECREF(retval); PyErr_SetString(PyExc_RuntimeError, "generator ignored GeneratorExit"); return NULL; } raised_exception = PyErr_Occurred(); if (!raised_exception || raised_exception == PyExc_StopIteration || raised_exception == PyExc_GeneratorExit || PyErr_GivenExceptionMatches(raised_exception, PyExc_GeneratorExit) || PyErr_GivenExceptionMatches(raised_exception, PyExc_StopIteration)) { if (raised_exception) PyErr_Clear(); Py_INCREF(Py_None); return Py_None; } return NULL; } static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *typ; PyObject *tb = NULL; PyObject *val = NULL; PyObject *yf = gen->yieldfrom; if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb)) return NULL; if (unlikely(__Pyx_Coroutine_CheckRunning(gen))) return NULL; if (yf) { PyObject *ret; Py_INCREF(yf); if (PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit)) { int err = __Pyx_Coroutine_CloseIter(gen, yf); Py_DECREF(yf); __Pyx_Coroutine_Undelegate(gen); if (err < 0) return __Pyx_Coroutine_MethodReturn(__Pyx_Coroutine_SendEx(gen, NULL)); goto throw_here; } gen->is_running = 1; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Coroutine_Throw(yf, args); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_CheckExact(yf)) { ret = __Pyx_Coroutine_Throw(yf, args); } else #endif { PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw); if (unlikely(!meth)) { Py_DECREF(yf); if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { gen->is_running = 0; return NULL; } PyErr_Clear(); __Pyx_Coroutine_Undelegate(gen); gen->is_running = 0; goto throw_here; } ret = PyObject_CallObject(meth, args); Py_DECREF(meth); } gen->is_running = 0; Py_DECREF(yf); if (!ret) { ret = __Pyx_Coroutine_FinishDelegation(gen); } return __Pyx_Coroutine_MethodReturn(ret); } throw_here: __Pyx_Raise(typ, val, tb, NULL); return __Pyx_Coroutine_MethodReturn(__Pyx_Coroutine_SendEx(gen, NULL)); } static int __Pyx_Coroutine_traverse(PyObject *self, visitproc visit, void *arg) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; Py_VISIT(gen->closure); Py_VISIT(gen->classobj); Py_VISIT(gen->yieldfrom); Py_VISIT(gen->exc_type); Py_VISIT(gen->exc_value); Py_VISIT(gen->exc_traceback); return 0; } static int __Pyx_Coroutine_clear(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; Py_CLEAR(gen->closure); Py_CLEAR(gen->classobj); Py_CLEAR(gen->yieldfrom); Py_CLEAR(gen->exc_type); Py_CLEAR(gen->exc_value); Py_CLEAR(gen->exc_traceback); Py_CLEAR(gen->gi_name); Py_CLEAR(gen->gi_qualname); return 0; } static void __Pyx_Coroutine_dealloc(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject_GC_UnTrack(gen); if (gen->gi_weakreflist != NULL) PyObject_ClearWeakRefs(self); if (gen->resume_label > 0) { PyObject_GC_Track(self); #if PY_VERSION_HEX >= 0x030400a1 if (PyObject_CallFinalizerFromDealloc(self)) #else Py_TYPE(gen)->tp_del(self); if (self->ob_refcnt > 0) #endif { return; } PyObject_GC_UnTrack(self); } __Pyx_Coroutine_clear(self); PyObject_GC_Del(gen); } static void __Pyx_Coroutine_del(PyObject *self) { PyObject *res; PyObject *error_type, *error_value, *error_traceback; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; __Pyx_PyThreadState_declare if (gen->resume_label <= 0) return ; #if PY_VERSION_HEX < 0x030400a1 assert(self->ob_refcnt == 0); self->ob_refcnt = 1; #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); res = __Pyx_Coroutine_Close(self); if (res == NULL) PyErr_WriteUnraisable(self); else Py_DECREF(res); __Pyx_ErrRestore(error_type, error_value, error_traceback); #if PY_VERSION_HEX < 0x030400a1 assert(self->ob_refcnt > 0); if (--self->ob_refcnt == 0) { return; } { Py_ssize_t refcnt = self->ob_refcnt; _Py_NewReference(self); self->ob_refcnt = refcnt; } #if CYTHON_COMPILING_IN_CPYTHON assert(PyType_IS_GC(self->ob_type) && _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); _Py_DEC_REFTOTAL; #endif #ifdef COUNT_ALLOCS --Py_TYPE(self)->tp_frees; --Py_TYPE(self)->tp_allocs; #endif #endif } static PyObject * __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self) { Py_INCREF(self->gi_name); return self->gi_name; } static int __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) { #else if (unlikely(value == NULL || !PyString_Check(value))) { #endif PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = self->gi_name; Py_INCREF(value); self->gi_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self) { Py_INCREF(self->gi_qualname); return self->gi_qualname; } static int __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) { #else if (unlikely(value == NULL || !PyString_Check(value))) { #endif PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = self->gi_qualname; Py_INCREF(value); self->gi_qualname = value; Py_XDECREF(tmp); return 0; } static __pyx_CoroutineObject *__Pyx__Coroutine_New(PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *closure, PyObject *name, PyObject *qualname) { __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); if (gen == NULL) return NULL; gen->body = body; gen->closure = closure; Py_XINCREF(closure); gen->is_running = 0; gen->resume_label = 0; gen->classobj = NULL; gen->yieldfrom = NULL; gen->exc_type = NULL; gen->exc_value = NULL; gen->exc_traceback = NULL; gen->gi_weakreflist = NULL; Py_XINCREF(qualname); gen->gi_qualname = qualname; Py_XINCREF(name); gen->gi_name = name; PyObject_GC_Track(gen); return gen; } /* PatchModuleWithCoroutine */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) { #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) int result; PyObject *globals, *result_obj; globals = PyDict_New(); if (unlikely(!globals)) goto ignore; result = PyDict_SetItemString(globals, "_cython_coroutine_type", #ifdef __Pyx_Coroutine_USED (PyObject*)__pyx_CoroutineType); #else Py_None); #endif if (unlikely(result < 0)) goto ignore; result = PyDict_SetItemString(globals, "_cython_generator_type", #ifdef __Pyx_Generator_USED (PyObject*)__pyx_GeneratorType); #else Py_None); #endif if (unlikely(result < 0)) goto ignore; if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore; if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore; result_obj = PyRun_String(py_code, Py_file_input, globals, globals); if (unlikely(!result_obj)) goto ignore; Py_DECREF(result_obj); Py_DECREF(globals); return module; ignore: Py_XDECREF(globals); PyErr_WriteUnraisable(module); if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) { Py_DECREF(module); module = NULL; } #else py_code++; #endif return module; } /* PatchGeneratorABC */ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) static PyObject* __Pyx_patch_abc_module(PyObject *module); static PyObject* __Pyx_patch_abc_module(PyObject *module) { module = __Pyx_Coroutine_patch_module( module, "" "if _cython_generator_type is not None:\n" " try: Generator = _module.Generator\n" " except AttributeError: pass\n" " else: Generator.register(_cython_generator_type)\n" "if _cython_coroutine_type is not None:\n" " try: Coroutine = _module.Coroutine\n" " except AttributeError: pass\n" " else: Coroutine.register(_cython_coroutine_type)\n" ); return module; } #endif static int __Pyx_patch_abc(void) { #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) static int abc_patched = 0; if (!abc_patched) { PyObject *module; module = PyImport_ImportModule((PY_VERSION_HEX >= 0x03030000) ? "collections.abc" : "collections"); if (!module) { PyErr_WriteUnraisable(NULL); if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, ((PY_VERSION_HEX >= 0x03030000) ? "Cython module failed to register with collections.abc module" : "Cython module failed to register with collections module"), 1) < 0)) { return -1; } } else { module = __Pyx_patch_abc_module(module); abc_patched = 1; if (unlikely(!module)) return -1; Py_DECREF(module); } module = PyImport_ImportModule("backports_abc"); if (module) { module = __Pyx_patch_abc_module(module); Py_XDECREF(module); } if (!module) { PyErr_Clear(); } } #else if (0) __Pyx_Coroutine_patch_module(NULL, NULL); #endif return 0; } /* Generator */ static PyMethodDef __pyx_Generator_methods[] = { {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O, (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")}, {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS, (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")}, {"close", (PyCFunction) __Pyx_Coroutine_Close, METH_NOARGS, (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")}, {0, 0, 0, 0} }; static PyMemberDef __pyx_Generator_memberlist[] = { {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL}, {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY, (char*) PyDoc_STR("object being iterated by 'yield from', or None")}, {0, 0, 0, 0, 0} }; static PyGetSetDef __pyx_Generator_getsets[] = { {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name, (char*) PyDoc_STR("name of the generator"), 0}, {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, (char*) PyDoc_STR("qualified name of the generator"), 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_GeneratorType_type = { PyVarObject_HEAD_INIT(0, 0) "generator", sizeof(__pyx_CoroutineObject), 0, (destructor) __Pyx_Coroutine_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, 0, (traverseproc) __Pyx_Coroutine_traverse, 0, 0, offsetof(__pyx_CoroutineObject, gi_weakreflist), 0, (iternextfunc) __Pyx_Generator_Next, __pyx_Generator_methods, __pyx_Generator_memberlist, __pyx_Generator_getsets, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #else __Pyx_Coroutine_del, #endif 0, #if PY_VERSION_HEX >= 0x030400a1 __Pyx_Coroutine_del, #endif }; static int __pyx_Generator_init(void) { __pyx_GeneratorType_type.tp_getattro = PyObject_GenericGetAttr; __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter; __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type); if (unlikely(!__pyx_GeneratorType)) { return -1; } return 0; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* ModuleImport */ #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; py_name = __Pyx_PyIdentifier_FromString(name); if (!py_name) goto bad; py_module = PyImport_Import(py_name); Py_DECREF(py_name); return py_module; bad: Py_XDECREF(py_name); return 0; } #endif /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) { PyObject *py_module = 0; PyObject *result = 0; PyObject *py_name = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; py_name = __Pyx_PyIdentifier_FromString(class_name); if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); Py_DECREF(py_name); py_name = 0; Py_DECREF(py_module); py_module = 0; if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if (!strict && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", module_name, class_name, basicsize, size); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } else if ((size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", module_name, class_name, basicsize, size); goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(py_module); Py_XDECREF(result); return NULL; } #endif /* InitStrings */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if CYTHON_COMPILING_IN_CPYTHON && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { #if PY_VERSION_HEX < 0x03030000 char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; #else if (__Pyx_PyUnicode_READY(o) == -1) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (PyUnicode_IS_ASCII(o)) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif #endif } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { PyNumberMethods *m; const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (PyInt_Check(x) || PyLong_Check(x)) #else if (PyLong_Check(x)) #endif return __Pyx_NewRef(x); m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = PyNumber_Int(x); } else if (m && m->nb_long) { name = "long"; res = PyNumber_Long(x); } #else if (m && m->nb_int) { name = "int"; res = PyNumber_Long(x); } #endif if (res) { #if PY_MAJOR_VERSION < 3 if (!PyInt_Check(res) && !PyLong_Check(res)) { #else if (!PyLong_Check(res)) { #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", name, name, Py_TYPE(res)->tp_name); Py_DECREF(res); return NULL; } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(x); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ pyresample-1.8.1/pyresample/ewa/_fornav.pyx000066400000000000000000000367651324347254000210600ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2016 # Author(s): # David Hoese # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . """Resampling swath data to uniform grid using an Elliptical Weighted Averaging (EWA) algorithm. """ __docformat__ = "restructuredtext en" import cython cimport cython import numpy cimport numpy cimport cpython from libc.stdlib cimport calloc, malloc, free cdef extern from "_fornav_templates.h": ctypedef float weight_type ctypedef float ewa_param_type ctypedef float accum_type cdef float EPSILON #ctypedef double weight_type #ctypedef double ewa_param_type #ctypedef double accum_type #cdef double EPSILON ctypedef struct ewa_parameters: ewa_param_type a ewa_param_type b ewa_param_type c ewa_param_type f ewa_param_type u_del ewa_param_type v_del ctypedef struct ewa_weight: int count weight_type min weight_type distance_max weight_type delta_max weight_type sum_min weight_type alpha weight_type qmax weight_type qfactor weight_type *wtab cdef int initialize_weight(size_t chan_count, unsigned int weight_count, weight_type weight_min, weight_type weight_distance_max, weight_type weight_delta_max, weight_type weight_sum_min, ewa_weight *ewaw) cdef void deinitialize_weight(ewa_weight *ewaw) cdef accum_type **initialize_grid_accums(size_t chan_count, size_t grid_cols, size_t grid_rows) cdef weight_type **initialize_grid_weights(size_t chan_count, size_t grid_cols, size_t grid_rows) cdef void deinitialize_grids(size_t chan_count, void **grids) cdef int compute_ewa_parameters[CR_TYPE](size_t swath_cols, size_t swath_rows, CR_TYPE *uimg, CR_TYPE *vimg, ewa_weight *ewaw, ewa_parameters *ewap) cdef int compute_ewa[CR_TYPE, IMAGE_TYPE](size_t chan_count, bint maximum_weight_mode, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, CR_TYPE *uimg, CR_TYPE *vimg, IMAGE_TYPE **images, IMAGE_TYPE img_fill, accum_type **grid_accums, weight_type **grid_weights, ewa_weight *ewaw, ewa_parameters *ewap) # For some reason cython can't deduce the type when using the template #cdef int write_grid_image[GRID_TYPE](GRID_TYPE *output_image, GRID_TYPE fill, size_t grid_cols, size_t grid_rows, # accum_type *grid_accum, weight_type *grid_weights, # int maximum_weight_mode, weight_type weight_sum_min) cdef unsigned int write_grid_image(numpy.float32_t *output_image, numpy.float32_t fill, size_t grid_cols, size_t grid_rows, accum_type *grid_accum, weight_type *grid_weights, int maximum_weight_mode, weight_type weight_sum_min) cdef unsigned int write_grid_image(numpy.float64_t *output_image, numpy.float64_t fill, size_t grid_cols, size_t grid_rows, accum_type *grid_accum, weight_type *grid_weights, int maximum_weight_mode, weight_type weight_sum_min) cdef unsigned int write_grid_image(numpy.int8_t *output_image, numpy.int8_t fill, size_t grid_cols, size_t grid_rows, accum_type *grid_accum, weight_type *grid_weights, int maximum_weight_mode, weight_type weight_sum_min) ctypedef fused cr_dtype: numpy.float32_t numpy.float64_t # FUTURE: Add other types, but for now these are the basics ctypedef fused image_dtype: numpy.float32_t numpy.float64_t numpy.int8_t ctypedef fused grid_dtype: numpy.float32_t numpy.float64_t numpy.int8_t @cython.boundscheck(False) @cython.wraparound(False) cdef int fornav(unsigned int *valid_list, size_t chan_count, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, cr_dtype *cols_pointer, cr_dtype *rows_pointer, image_dtype **input_arrays, grid_dtype **output_arrays, image_dtype input_fill, grid_dtype output_fill, size_t rows_per_scan, unsigned int weight_count, weight_type weight_min, weight_type weight_distance_max, weight_type weight_delta_max, weight_type weight_sum_min, bint maximum_weight_mode) except -1: cdef unsigned int row_idx cdef unsigned int idx cdef bint got_point = 0 cdef bint tmp_got_point cdef int func_result cdef cr_dtype *tmp_cols_pointer cdef cr_dtype *tmp_rows_pointer cdef image_dtype **input_images cdef ewa_weight ewaw cdef ewa_parameters *ewap # other defaults if weight_sum_min == -1.0: weight_sum_min = weight_min func_result = initialize_weight(chan_count, weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, &ewaw) if func_result < 0: raise RuntimeError("Could not initialize weight structure for EWA resampling") # Allocate location for storing the sum of all of the pixels involved in each grid cell # XXX: Do these need to be initialized to a fill value? cdef accum_type **grid_accums = initialize_grid_accums(chan_count, grid_cols, grid_rows) if grid_accums is NULL: raise MemoryError() cdef weight_type **grid_weights = initialize_grid_weights(chan_count, grid_cols, grid_rows) if grid_weights is NULL: raise MemoryError() # Allocate memory for the parameters specific to each column ewap = malloc(swath_cols * sizeof(ewa_parameters)) if ewap is NULL: raise MemoryError() # Allocate pointers to the correct portion of the data arrays that we will use input_images = malloc(chan_count * sizeof(image_dtype *)) if input_images is NULL: raise MemoryError() # NOTE: Have to use old school pyrex for loop because cython only supports compile-time known steps for row_idx from 0 <= row_idx < swath_rows by rows_per_scan: tmp_cols_pointer = &cols_pointer[row_idx * swath_cols] tmp_rows_pointer = &rows_pointer[row_idx * swath_cols] # print "Current cols pointer: %d" % (tmp_cols_pointer,) # Assign the python/numpy array objects to a pointer location for the rest of the functions for idx in range(chan_count): input_images[idx] = &input_arrays[idx][row_idx * swath_cols] # print "Current input 0 pointer: %d" % (input_images[idx],) # Calculate EWA parameters for each column index func_result = compute_ewa_parameters(swath_cols, rows_per_scan, tmp_cols_pointer, tmp_rows_pointer, &ewaw, ewap) if func_result < 0: got_point = got_point or 0 # raise RuntimeError("Could compute EWA parameters for EWA resampling") continue # NOTE: In the C version this is where the image array data is loaded tmp_got_point = compute_ewa(chan_count, maximum_weight_mode, swath_cols, rows_per_scan, grid_cols, grid_rows, tmp_cols_pointer, tmp_rows_pointer, input_images, input_fill, grid_accums, grid_weights, &ewaw, ewap) got_point = got_point or tmp_got_point free(input_images) free(ewap) if not got_point: raise RuntimeError("EWA Resampling: No swath pixels found inside grid to be resampled") for idx in range(chan_count): valid_list[idx] = write_grid_image(output_arrays[idx], output_fill, grid_cols, grid_rows, grid_accums[idx], grid_weights[idx], maximum_weight_mode, weight_sum_min) # free(grid_accums) deinitialize_weight(&ewaw) deinitialize_grids(chan_count, grid_accums) deinitialize_grids(chan_count, grid_weights) return 0 @cython.boundscheck(False) @cython.wraparound(False) def fornav_wrapper(numpy.ndarray[cr_dtype, ndim=2, mode='c'] cols_array, numpy.ndarray[cr_dtype, ndim=2, mode='c'] rows_array, tuple input_arrays, tuple output_arrays, input_fill, output_fill, size_t rows_per_scan, unsigned int weight_count=10000, weight_type weight_min=0.01, weight_type weight_distance_max=1.0, weight_type weight_delta_max=10.0, weight_type weight_sum_min=-1.0, cpython.bool maximum_weight_mode=False): """Python wrapper around the C interface to fornav. The main difficulty is that the C code can operate on multiple input arrays, but the python->C cython interface doesn't automatically know the data type of the numpy arrays inside a tuple. This function casts the array pointers to the corresponding C type and then calls the templated cython and C++ functions. This algorithm works under the assumption that the data is observed one scan line at a time. However, good results can still be achieved for non-scan based data is provided if `rows_per_scan` is set to the number of rows in the entire swath. :param cols_array: numpy array of grid column coordinates for each input swath pixel :param rows_array: numpy array of grid row coordinates for each input swath pixel :param input_arrays: tuple of numpy arrays with the same geolocation and same dtype :param output_arrays: tuple of empty numpy arrays to be filled with gridded data (must be writeable) :param input_fill: fill value in input data arrays representing invalid/bad values :param output_fill: fill value written to output data arrays representing invalid/bad or out of swath values :param rows_per_scan: number of input swath rows making up one scan line or all of the rows in the swath :param weight_count: number of elements to create in the gaussian weight table. Default is 10000. Must be at least 2 :param weight_min: the minimum value to store in the last position of the weight table. Default is 0.01, which, with a `weight_distance_max` of 1.0 produces a weight of 0.01 at a grid cell distance of 1.0. Must be greater than 0. :param weight_distance_max: distance in grid cell units at which to apply a weight of `weight_min`. Default is 1.0. Must be greater than 0. :param weight_delta_max: maximum distance in grid cells in each grid dimension over which to distribute a single swath cell. Default is 10.0. :param weight_sum_min: minimum weight sum value. Cells whose weight sums are less than `weight_sum_min` are set to the grid fill value. Default is EPSILON. :param maximum_weight_mode: If -m is not present, a weighted average of all swath cells that map to a particular grid cell is used. If -m is present, the swath cell having the maximum weight of all swath cells that map to a particular grid cell is used. The -m option should be used for coded data, i.e. snow cover. :return: tuple of valid grid points written for each output array """ cdef size_t num_items = len(input_arrays) cdef size_t num_outputs = len(output_arrays) cdef size_t swath_cols = cols_array.shape[1] cdef size_t swath_rows = cols_array.shape[0] cdef size_t grid_cols = output_arrays[0].shape[1] cdef size_t grid_rows = output_arrays[0].shape[0] cdef unsigned int i if num_items != num_outputs: raise ValueError("Must have same number of inputs and outputs") if num_items <= 0: raise ValueError("No input arrays given") if rows_per_scan < 2 or swath_rows % rows_per_scan != 0: raise ValueError("EWA requires 2 or more rows_per_scan and must be a factor of the total number of input rows") cdef numpy.dtype in_type = input_arrays[0].dtype cdef numpy.dtype out_type = output_arrays[0].dtype if in_type != out_type: raise ValueError("Input and Output must be of the same type") if not all(input_array.dtype == in_type for input_array in input_arrays): raise ValueError("Input arrays must all be of the same data type") if not all(output_array.dtype == out_type for output_array in output_arrays): raise ValueError("Input arrays must all be of the same data type") cdef void **input_pointer = malloc(num_items * sizeof(void *)) if not input_pointer: raise MemoryError() cdef void **output_pointer = malloc(num_items * sizeof(void *)) if not output_pointer: raise MemoryError() cdef unsigned int *valid_arr = malloc(num_items * sizeof(unsigned int)) valid_list = [] cdef numpy.ndarray[numpy.float32_t, ndim=2] tmp_arr_f32 cdef numpy.ndarray[numpy.float64_t, ndim=2] tmp_arr_f64 cdef numpy.ndarray[numpy.int8_t, ndim=2] tmp_arr_i8 cdef cr_dtype *cols_pointer = &cols_array[0, 0] cdef cr_dtype *rows_pointer = &rows_array[0, 0] cdef int func_result if in_type == numpy.float32: for i in range(num_items): tmp_arr_f32 = input_arrays[i] input_pointer[i] = &tmp_arr_f32[0, 0] tmp_arr_f32 = output_arrays[i] output_pointer[i] = &tmp_arr_f32[0, 0] func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, input_pointer, output_pointer, input_fill, output_fill, rows_per_scan, weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, maximum_weight_mode) elif in_type == numpy.float64: for i in range(num_items): tmp_arr_f64 = input_arrays[i] input_pointer[i] = &tmp_arr_f64[0, 0] tmp_arr_f64 = output_arrays[i] output_pointer[i] = &tmp_arr_f64[0, 0] func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, input_pointer, output_pointer, input_fill, output_fill, rows_per_scan, weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, maximum_weight_mode) elif in_type == numpy.int8: for i in range(num_items): tmp_arr_i8 = input_arrays[i] input_pointer[i] = &tmp_arr_i8[0, 0] tmp_arr_i8 = output_arrays[i] output_pointer[i] = &tmp_arr_i8[0, 0] func_result = fornav(valid_arr, num_items, swath_cols, swath_rows, grid_cols, grid_rows, cols_pointer, rows_pointer, input_pointer, output_pointer, input_fill, output_fill, rows_per_scan, weight_count, weight_min, weight_distance_max, weight_delta_max, weight_sum_min, maximum_weight_mode) else: raise ValueError("Unknown input and output data type") for i in range(num_items): valid_list.append(valid_arr[i]) free(input_pointer) free(output_pointer) return valid_list pyresample-1.8.1/pyresample/ewa/_fornav_templates.cpp000066400000000000000000000336051324347254000230660ustar00rootroot00000000000000#include "Python.h" #include #include "math.h" #include "numpy/arrayobject.h" #include "numpy/npy_math.h" #include "_fornav_templates.h" template int __isnan(IMAGE_TYPE x) { // Return numpy's isnan for normal float arguments (see __isnan below for ints) return npy_isnan(x); } int __isnan(npy_int8 x) { // Sometimes input data may be integers, need to be able to handle those similarly return 0; } int initialize_weight(size_t chan_count, unsigned int weight_count, weight_type weight_min, weight_type weight_distance_max, weight_type weight_delta_max, weight_type weight_sum_min, ewa_weight *ewaw) { unsigned int idx; weight_type *wptr; ewaw->wtab = (weight_type *)calloc(weight_count, sizeof(weight_type)); if (!ewaw->wtab) { return -1; } ewaw->count = weight_count; ewaw->min = weight_min; ewaw->distance_max = weight_distance_max; ewaw->delta_max = weight_delta_max; ewaw->sum_min = weight_sum_min; if (weight_count < 2) { // must be at least 2 return -1; } if (weight_min <= 0.0) { // must be greater than 0 return -1; } if (weight_distance_max <= 0.0) { // must be greater than 0 return -1; } ewaw->qmax = ewaw->distance_max * ewaw->distance_max; ewaw->alpha = -log(ewaw->min) / ewaw->qmax; wptr = ewaw->wtab; for (idx=0; idx < weight_count; idx++) { wptr[idx] = exp(-ewaw->alpha * ewaw->qmax * idx / (ewaw->count - 1)); } ewaw->qfactor = ewaw->count / ewaw->qmax; return 0; } void deinitialize_weight(ewa_weight *ewaw) { if (ewaw->wtab) { free(ewaw->wtab); } } accum_type **initialize_grid_accums(size_t chan_count, size_t grid_cols, size_t grid_rows) { accum_type **grid_accums = (accum_type **)malloc(chan_count * sizeof(accum_type *)); unsigned int i; if (!grid_accums) { return NULL; } for (i=0; i < chan_count; i++) { grid_accums[i] = (accum_type *)calloc(grid_cols * grid_rows, sizeof(accum_type)); if (!grid_accums[i]) { return NULL; } } return grid_accums; } weight_type **initialize_grid_weights(size_t chan_count, size_t grid_cols, size_t grid_rows) { weight_type **grid_weights = (weight_type **)malloc(chan_count * sizeof(weight_type *)); unsigned int i; if (!grid_weights) { return NULL; } for (i=0; i int compute_ewa_parameters(size_t swath_cols, size_t swath_rows, CR_TYPE *uimg, CR_TYPE *vimg, ewa_weight *ewaw, ewa_parameters *ewap) { ewa_param_type ux; ewa_param_type uy; ewa_param_type vx; ewa_param_type vy; ewa_param_type f_scale; // For testing: original C version uses doubles here // double ux; // double uy; // double vx; // double vy; // double f_scale; ewa_param_type d; ewa_param_type qmax; ewa_param_type distance_max; ewa_param_type delta_max; unsigned int rowsm1; unsigned int colsm1; unsigned int rowsov2; unsigned int col; ewa_parameters *this_ewap; qmax = ewaw->qmax; distance_max = ewaw->distance_max; delta_max = ewaw->delta_max; rowsm1 = swath_rows - 1; colsm1 = swath_cols - 1; rowsov2 = swath_rows / 2; for (col = 1, this_ewap=ewap + 1; col < colsm1; col++, this_ewap++) { ux = ((uimg[col - 1 + rowsov2 * swath_cols + 2] - uimg[col - 1 + rowsov2 * swath_cols]) / 2.0) * distance_max; vx = ((vimg[col - 1 + rowsov2 * swath_cols + 2] - vimg[col - 1 + rowsov2 * swath_cols]) / 2.0) * distance_max; uy = ((uimg[col + rowsm1 * swath_cols] - uimg[col]) / rowsm1) * distance_max; vy = ((vimg[col + rowsm1 * swath_cols] - vimg[col]) / rowsm1) * distance_max; f_scale = ux * vy - uy * vx; f_scale = f_scale * f_scale; if (f_scale < EPSILON) { f_scale = EPSILON; } f_scale = qmax / f_scale; this_ewap->a = (vx * vx + vy * vy) * f_scale; this_ewap->b = -2.0 * (ux * vx + uy * vy) * f_scale; this_ewap->c = (ux * ux + uy * uy) * f_scale; d = 4.0 * this_ewap->a * this_ewap->c - this_ewap->b * this_ewap->b; if (d < EPSILON) { d = EPSILON; } d = ((4.0 * qmax) / d); this_ewap->f = qmax; this_ewap->u_del = sqrt(this_ewap->c * d); this_ewap->v_del = sqrt(this_ewap->a * d); if (this_ewap->u_del > delta_max) { this_ewap->u_del = delta_max; } if (this_ewap->v_del > delta_max) { this_ewap->v_del = delta_max; } } // Copy the parameters from the penultimate column to the last column (this_ewap should be at the final column) *this_ewap = *(this_ewap - 1); // Copy the parameters from the second column to the first column *ewap = *(ewap + 1); return 0; } template int compute_ewa(size_t chan_count, int maximum_weight_mode, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, CR_TYPE *uimg, CR_TYPE *vimg, IMAGE_TYPE **images, IMAGE_TYPE img_fill, accum_type **grid_accums, weight_type **grid_weights, ewa_weight *ewaw, ewa_parameters *ewap) { // This was originally copied from a cython C file for 32-bit float inputs (that explains some of the weird parens and other syntax int got_point; unsigned int row; unsigned int col; ewa_parameters *this_ewap; int iu1; int iu2; int iv1; int iv2; int iu; int iv; CR_TYPE u0; CR_TYPE v0; weight_type ddq; weight_type dq; weight_type q; weight_type u; weight_type v; weight_type a2up1; weight_type au2; weight_type bu; weight_type weight; // Test: This is how the original fornav did its calculations // double u0; // double v0; // double ddq; // double dq; // double q; // double u; // double v; // double a2up1; // double au2; // double bu; // double weight; // double qfactor; int iw; IMAGE_TYPE this_val; unsigned int swath_offset; unsigned int grid_offset; size_t chan; got_point = 0; for (row = 0, swath_offset=0; row < swath_rows; row+=1) { for (col = 0, this_ewap = ewap; col < swath_cols; col++, this_ewap++, swath_offset++) { u0 = uimg[swath_offset]; v0 = vimg[swath_offset]; if (u0 < 0.0 || v0 < 0.0 || __isnan(u0) || npy_isnan(v0)) { continue; } iu1 = ((int)(u0 - this_ewap->u_del)); iu2 = ((int)(u0 + this_ewap->u_del)); iv1 = ((int)(v0 - this_ewap->v_del)); iv2 = ((int)(v0 + this_ewap->v_del)); if (iu1 < 0) { iu1 = 0; } if (iu2 >= grid_cols) { iu2 = (grid_cols - 1); } if (iv1 < 0) { iv1 = 0; } if (iv2 >= grid_rows) { iv2 = (grid_rows - 1); } if (iu1 < grid_cols && iu2 >= 0 && iv1 < grid_rows && iv2 >= 0) { got_point = 1; ddq = 2.0 * this_ewap->a; u = (iu1 - u0); a2up1 = (this_ewap->a * ((2.0 * u) + 1.0)); bu = this_ewap->b * u; au2 = this_ewap->a * u * u; for (iv = iv1; iv <= iv2; iv++) { v = (iv - v0); dq = (a2up1 + (this_ewap->b * v)); q = ((((this_ewap->c * v) + bu) * v) + au2); for (iu = iu1; iu <= iu2; iu++) { if ((q >= 0.0) && (q < this_ewap->f)) { iw = ((int)(q * ewaw->qfactor)); if (iw >= ewaw->count) { iw = (ewaw->count - 1); } weight = (ewaw->wtab[iw]); grid_offset = ((iv * grid_cols) + iu); for (chan = 0; chan < chan_count; chan+=1) { this_val = ((images[chan])[swath_offset]); if (maximum_weight_mode) { if (weight > grid_weights[chan][grid_offset]) { ((grid_weights[chan])[grid_offset]) = weight; if ((this_val == img_fill) || (__isnan(this_val))) { ((grid_accums[chan])[grid_offset]) = (accum_type)NPY_NANF; } else { ((grid_accums[chan])[grid_offset]) = (accum_type)this_val; } } } else { if ((this_val != img_fill) && !(__isnan(this_val))) { ((grid_weights[chan])[grid_offset]) += weight; ((grid_accums[chan])[grid_offset]) += (accum_type)this_val * weight; } } } } q += dq; dq += ddq; } } } } } /* function exit code */ return got_point; } // Overloaded functions for specific types for `write_grid_image` //static void write_grid_pixel(npy_uint8 *output_image, accum_type chanf) { // if (chanf < 0.0) { // *output_image = 0; // } else if (chanf > 255.0) { // *output_image = 255; // } else { // *output_image = (npy_uint8)chanf; // } //} inline void write_grid_pixel(npy_int8 *output_image, accum_type chanf) { if (chanf < -128.0) { *output_image = -128; } else if (chanf > 127.0) { *output_image = 127; } else { *output_image = (npy_int8)chanf; } } //static void write_grid_pixel(npy_uint16 *output_image, accum_type chanf) { // if (chanf < 0.0) { // *output_image = 0; // } else if (chanf > 65535.0) { // *output_image = 65535; // } else { // *output_image = (npy_uint16)chanf; // } //} //static void write_grid_pixel(npy_int16 *output_image, accum_type chanf) { // if (chanf < -32768.0) { // *output_image = -32768; // } else if (chanf > 32767.0) { // *output_image = 32767; // } else { // *output_image = (npy_int16)chanf; // } //} //static void write_grid_pixel(npy_uint32 *output_image, accum_type chanf) { // if (chanf < 0.0) { // *output_image = 0; // } else if (chanf > 4294967295.0) { // *output_image = 4294967295; // } else { // *output_image = (npy_uint32)chanf; // } //} //static void write_grid_pixel(npy_int32 *output_image, accum_type chanf) { // if (chanf < -2147483648.0) { // *output_image = -2147483648; // } else if (chanf > 2147483647.0) { // *output_image = 2147483647; // } else { // *output_image = (npy_int32)chanf; // } //} inline void write_grid_pixel(npy_float32 *output_image, accum_type chanf) { *output_image = (npy_float32)chanf; } inline void write_grid_pixel(npy_float64 *output_image, accum_type chanf) { *output_image = (npy_float64)chanf; } // End of overload functions for `write_grid_image` template inline accum_type get_rounding(GRID_TYPE *output_image) { return 0.5; } template<> inline accum_type get_rounding(npy_float32 *output_image) { return 0.0; } template<> inline accum_type get_rounding(npy_float64 *output_image) { return 0.0; } template unsigned int write_grid_image(GRID_TYPE *output_image, GRID_TYPE fill, size_t grid_cols, size_t grid_rows, accum_type *grid_accum, weight_type *grid_weights, int maximum_weight_mode, weight_type weight_sum_min) { accum_type chanf; unsigned int i; unsigned int valid_count = 0; size_t grid_size = grid_cols * grid_rows; if (weight_sum_min <= 0.0) { weight_sum_min = EPSILON; } for (i=0; i < grid_size; i++, grid_accum++, grid_weights++, output_image++) { // Calculate the elliptical weighted average value for each cell (float -> not-float needs rounding) // The fill value for the weight and accumulation arrays is static at NaN if (*grid_weights < weight_sum_min || __isnan(*grid_accum)) { chanf = (accum_type)NPY_NANF; } else if (maximum_weight_mode) { // keep the current value chanf = *grid_accum; } else if (*grid_accum >= 0.0) { chanf = *grid_accum / *grid_weights + get_rounding(output_image); } else { chanf = *grid_accum / *grid_weights - get_rounding(output_image); } if (__isnan(chanf)) { *output_image = (GRID_TYPE)fill; } else { valid_count++; write_grid_pixel(output_image, chanf); } } return valid_count; } // Col/Row as 32-bit floats template int compute_ewa_parameters(size_t, size_t, npy_float32*, npy_float32*, ewa_weight*, ewa_parameters*); template int compute_ewa(size_t, int, size_t, size_t, size_t, size_t, npy_float32*, npy_float32*, npy_float32**, npy_float32, accum_type**, weight_type**, ewa_weight*, ewa_parameters*); template int compute_ewa(size_t, int, size_t, size_t, size_t, size_t, npy_float32*, npy_float32*, npy_float64**, npy_float64, accum_type**, weight_type**, ewa_weight*, ewa_parameters*); template int compute_ewa(size_t, int, size_t, size_t, size_t, size_t, npy_float32*, npy_float32*, npy_int8**, npy_int8, accum_type**, weight_type**, ewa_weight*, ewa_parameters*); // Col/Row as 64-bit floats template int compute_ewa_parameters(size_t, size_t, npy_float64*, npy_float64*, ewa_weight*, ewa_parameters*); template int compute_ewa(size_t, int, size_t, size_t, size_t, size_t, npy_float64*, npy_float64*, npy_float32**, npy_float32, accum_type**, weight_type**, ewa_weight*, ewa_parameters*); template int compute_ewa(size_t, int, size_t, size_t, size_t, size_t, npy_float64*, npy_float64*, npy_float64**, npy_float64, accum_type**, weight_type**, ewa_weight*, ewa_parameters*); template int compute_ewa(size_t, int, size_t, size_t, size_t, size_t, npy_float64*, npy_float64*, npy_int8**, npy_int8, accum_type**, weight_type**, ewa_weight*, ewa_parameters*); // Output Grid types template unsigned int write_grid_image(npy_float32*, npy_float32, size_t, size_t, accum_type*, weight_type*, int, weight_type); template unsigned int write_grid_image(npy_float64*, npy_float64, size_t, size_t, accum_type*, weight_type*, int, weight_type); template unsigned int write_grid_image(npy_int8*, npy_int8, size_t, size_t, accum_type*, weight_type*, int, weight_type); pyresample-1.8.1/pyresample/ewa/_fornav_templates.h000066400000000000000000000042431324347254000225270ustar00rootroot00000000000000#ifndef _FORNAV_TEMPLATES_H #define _FORNAV_TEMPLATES_H // The types used for all of the intermediate storage between input swath pixels and output grid pixels // Mainly here for testing, but should never be a non-floating type typedef float weight_type; typedef float ewa_param_type; typedef float accum_type; //typedef double weight_type; //typedef double ewa_param_type; //typedef double accum_type; //const weight_type EPSILON = 1e-8; #define EPSILON (1e-8) typedef struct { ewa_param_type a; ewa_param_type b; ewa_param_type c; ewa_param_type f; ewa_param_type u_del; ewa_param_type v_del; } ewa_parameters; typedef struct { int count; weight_type min; weight_type distance_max; weight_type delta_max; weight_type sum_min; weight_type alpha; weight_type qmax; weight_type qfactor; weight_type *wtab; } ewa_weight; int initialize_weight(size_t chan_count, unsigned int weight_count, weight_type weight_min, weight_type weight_distance_max, weight_type weight_delta_max, weight_type weight_sum_min, ewa_weight *ewaw); void deinitialize_weight(ewa_weight *ewaw); accum_type **initialize_grid_accums(size_t chan_count, size_t grid_cols, size_t grid_rows); weight_type **initialize_grid_weights(size_t chan_count, size_t grid_cols, size_t grid_rows); void deinitialize_grids(size_t chan_count, void **grids); template int compute_ewa_parameters(size_t swath_cols, size_t swath_rows, CR_TYPE *uimg, CR_TYPE *vimg, ewa_weight *ewaw, ewa_parameters *ewap); template extern int compute_ewa(size_t chan_count, int maximum_weight_mode, size_t swath_cols, size_t swath_rows, size_t grid_cols, size_t grid_rows, CR_TYPE *uimg, CR_TYPE *vimg, IMAGE_TYPE **images, IMAGE_TYPE img_fill, accum_type **grid_accums, weight_type **grid_weights, ewa_weight *ewaw, ewa_parameters *ewap); template unsigned int write_grid_image(GRID_TYPE *output_image, GRID_TYPE fill, size_t grid_cols, size_t grid_rows, accum_type *grid_accum, weight_type *grid_weights, int maximum_weight_mode, weight_type weight_sum_min); #endifpyresample-1.8.1/pyresample/ewa/_ll2cr.c000066400000000000000000040127151324347254000201760ustar00rootroot00000000000000/* Generated by Cython 0.24 */ /* BEGIN: Cython Metadata { "distutils": { "depends": [], "extra_compile_args": [ "-O3", "-Wno-unused-function" ] } } END: Cython Metadata */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000) #error Cython requires Python 2.6+ or Python 3.2+. #else #define CYTHON_ABI "0_24" #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #endif #if !defined(CYTHON_USE_PYLONG_INTERNALS) && CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000 #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define CYTHON_PEP393_ENABLED 0 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #elif CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifndef CYTHON_INLINE #if defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { \ __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pyresample__ewa___ll2cr #define __PYX_HAVE_API__pyresample__ewa___ll2cr #include "string.h" #include "stdio.h" #include "pythread.h" #include "stdlib.h" #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #include "numpy/npy_math.h" #include "pystate.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #ifdef PYREX_WITHOUT_ASSERTIONS #define CYTHON_WITHOUT_ASSERTIONS #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0 #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) && defined (_M_X64) #define __Pyx_sst_abs(value) _abs64(value) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyObject_AsSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) #if PY_MAJOR_VERSION < 3 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #else #define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen #endif #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) #define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_COMPILING_IN_CPYTHON #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c)); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static PyObject *__pyx_m; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; /* None.proto */ #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "pyresample/ewa/_ll2cr.pyx", "__init__.pxd", "stringsource", "type.pxd", "bool.pxd", "complex.pxd", }; /* BufferFormatStructs.proto */ #define IS_UNSIGNED(type) (((type) -1) > 0) struct __Pyx_StructField_; #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) typedef struct { const char* name; struct __Pyx_StructField_* fields; size_t size; size_t arraysize[8]; int ndim; char typegroup; char is_unsigned; int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; size_t struct_alignment; int is_complex; char enc_type; char new_packmode; char enc_packmode; char is_valid_array; } __Pyx_BufFmt_Context; /* MemviewSliceStruct.proto */ struct __pyx_memoryview_obj; typedef struct { struct __pyx_memoryview_obj *memview; char *data; Py_ssize_t shape[8]; Py_ssize_t strides[8]; Py_ssize_t suboffsets[8]; } __Pyx_memviewslice; /* Atomics.proto */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __pyx_atomic_int_type int #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ !defined(__i386__) #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type LONG #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #warning "Using Intel atomics" #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif typedef volatile __pyx_atomic_int_type __pyx_atomic_int; #if CYTHON_ATOMICS #define __pyx_add_acquisition_count(memview)\ __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #else #define __pyx_add_acquisition_count(memview)\ __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #endif /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":725 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":726 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":727 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":728 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":732 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":733 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":734 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":735 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":739 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":740 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":749 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":750 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":751 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":753 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":754 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":755 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":757 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":758 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":760 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":761 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":762 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* None.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif /* None.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif /*--- Type declarations ---*/ struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":764 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":765 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":766 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":768 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; struct __pyx_defaults; typedef struct __pyx_defaults __pyx_defaults; struct __pyx_defaults1; typedef struct __pyx_defaults1 __pyx_defaults1; struct __pyx_defaults { PyObject *__pyx_arg_width; PyObject *__pyx_arg_height; PyObject *__pyx_arg_origin_x; PyObject *__pyx_arg_origin_y; }; struct __pyx_defaults1 { PyObject *__pyx_arg_width; PyObject *__pyx_arg_height; PyObject *__pyx_arg_origin_x; PyObject *__pyx_arg_origin_y; }; /* "View.MemoryView":103 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_array_obj { PyObject_HEAD struct __pyx_vtabstruct_array *__pyx_vtab; char *data; Py_ssize_t len; char *format; int ndim; Py_ssize_t *_shape; Py_ssize_t *_strides; Py_ssize_t itemsize; PyObject *mode; PyObject *_format; void (*callback_free_data)(void *); int free_data; int dtype_is_object; }; /* "View.MemoryView":275 * * @cname('__pyx_MemviewEnum') * cdef class Enum(object): # <<<<<<<<<<<<<< * cdef object name * def __init__(self, name): */ struct __pyx_MemviewEnum_obj { PyObject_HEAD PyObject *name; }; /* "View.MemoryView":326 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_memoryview_obj { PyObject_HEAD struct __pyx_vtabstruct_memoryview *__pyx_vtab; PyObject *obj; PyObject *_size; PyObject *_array_interface; PyThread_type_lock lock; __pyx_atomic_int acquisition_count[2]; __pyx_atomic_int *acquisition_count_aligned_p; Py_buffer view; int flags; int dtype_is_object; __Pyx_TypeInfo *typeinfo; }; /* "View.MemoryView":951 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_memoryviewslice_obj { struct __pyx_memoryview_obj __pyx_base; __Pyx_memviewslice from_slice; PyObject *from_object; PyObject *(*to_object_func)(char *); int (*to_dtype_func)(char *, PyObject *); }; /* "View.MemoryView":103 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_vtabstruct_array { PyObject *(*get_memview)(struct __pyx_array_obj *); }; static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; /* "View.MemoryView":326 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_vtabstruct_memoryview { char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); }; static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; /* "View.MemoryView":951 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_vtabstruct__memoryviewslice { struct __pyx_vtabstruct_memoryview __pyx_base; }; static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* dict_getitem_default.proto */ static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); /* GetModuleGlobalName.proto */ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* PyFloatBinop.proto */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace); #else #define __Pyx_PyFloat_AddObjC(op1, op2, floatval, inplace)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* PyThreadStateGet.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET(); #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #endif /* SaveResetException.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* PyErrExceptionMatches.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* GetException.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* PyDictContains.proto */ static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { int result = PyDict_Contains(dict, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) { PyObject* args = PyTuple_Pack(1, key); if (likely(args)) PyErr_SetObject(PyExc_KeyError, args); Py_XDECREF(args); } return NULL; } Py_INCREF(value); return value; } #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #endif /* PyErrFetchRestore.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* UnicodeAsUCS4.proto */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*); /* object_ord.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Ord(c)\ (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c)) #else #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c) #endif static long __Pyx__PyObject_Ord(PyObject* c); /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* ListAppend.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* ArgTypeTest.proto */ static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); /* BufferFormatCheck.proto */ static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack); static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type); // PROTO /* MemviewSliceInit.proto */ #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d #define __Pyx_MEMVIEW_DIRECT 1 #define __Pyx_MEMVIEW_PTR 2 #define __Pyx_MEMVIEW_FULL 4 #define __Pyx_MEMVIEW_CONTIG 8 #define __Pyx_MEMVIEW_STRIDED 16 #define __Pyx_MEMVIEW_FOLLOW 32 #define __Pyx_IS_C_CONTIG 1 #define __Pyx_IS_F_CONTIG 2 static int __Pyx_init_memviewslice( struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference); static CYTHON_INLINE int __pyx_add_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* StrEquals.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif /* None.proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ #define UNARY_NEG_WOULD_OVERFLOW(x)\ (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* SwapException.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ /* ListCompAppend.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyIntBinop.proto */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* ListExtend.proto */ static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { #if CYTHON_COMPILING_IN_CPYTHON PyObject* none = _PyList_Extend((PyListObject*)L, v); if (unlikely(!none)) return -1; Py_DECREF(none); return 0; #else return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); #endif } /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* None.proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* CalculateMetaclass.proto */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); /* FetchCommonType.proto */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 #include #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { PyCFunctionObject func; #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; PyObject *func_classobj; void *defaults; int defaults_pyobjects; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; } __pyx_CyFunctionObject; static PyTypeObject *__pyx_CyFunctionType = 0; #define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(void); /* Py3ClassCreate.proto */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc); static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); /* FusedFunction.proto */ typedef struct { __pyx_CyFunctionObject func; PyObject *__signatures__; PyObject *type; PyObject *self; } __pyx_FusedFunctionObject; #define __pyx_FusedFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __pyx_FusedFunction_New(__pyx_FusedFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code); static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self); static PyTypeObject *__pyx_FusedFunctionType = NULL; static int __pyx_FusedFunction_init(void); #define __Pyx_FusedFunction_USED /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif /* BufferStructDeclare.proto */ typedef struct { Py_ssize_t shape, strides, suboffsets; } __Pyx_Buf_DimInfo; typedef struct { size_t refcount; Py_buffer pybuffer; } __Pyx_Buffer; typedef struct { __Pyx_Buffer *rcbuffer; char *data; __Pyx_Buf_DimInfo diminfo[8]; } __Pyx_LocalBuf_ND; /* None.proto */ static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0}; static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1}; /* MemviewSliceIsContig.proto */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); /* OverlappingSlices.proto */ static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize); /* Capsule.proto */ static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); /* TypeInfoCompare.proto */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); /* MemviewSliceValidateAndInit.proto */ static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* BytesContains.proto */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); /* None.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(__cplusplus) && CYTHON_CCOMPLEX && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif /* None.proto */ static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); /* None.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eqf(a, b) ((a)==(b)) #define __Pyx_c_sumf(a, b) ((a)+(b)) #define __Pyx_c_difff(a, b) ((a)-(b)) #define __Pyx_c_prodf(a, b) ((a)*(b)) #define __Pyx_c_quotf(a, b) ((a)/(b)) #define __Pyx_c_negf(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zerof(z) ((z)==(float)0) #define __Pyx_c_conjf(z) (::std::conj(z)) #if 1 #define __Pyx_c_absf(z) (::std::abs(z)) #define __Pyx_c_powf(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zerof(z) ((z)==0) #define __Pyx_c_conjf(z) (conjf(z)) #if 1 #define __Pyx_c_absf(z) (cabsf(z)) #define __Pyx_c_powf(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif /* None.proto */ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); /* None.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq(a, b) ((a)==(b)) #define __Pyx_c_sum(a, b) ((a)+(b)) #define __Pyx_c_diff(a, b) ((a)-(b)) #define __Pyx_c_prod(a, b) ((a)*(b)) #define __Pyx_c_quot(a, b) ((a)/(b)) #define __Pyx_c_neg(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero(z) ((z)==(double)0) #define __Pyx_c_conj(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs(z) (::std::abs(z)) #define __Pyx_c_pow(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero(z) ((z)==0) #define __Pyx_c_conj(z) (conj(z)) #if 1 #define __Pyx_c_abs(z) (cabs(z)) #define __Pyx_c_pow(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(PyObject *); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* PyIdentifierFromString.proto */ #if !defined(__Pyx_PyIdentifier_FromString) #if PY_MAJOR_VERSION < 3 #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) #else #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) #endif #endif /* ModuleImport.proto */ static PyObject *__Pyx_ImportModule(const char *name); /* TypeImport.proto */ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ /* Module declarations from 'cython.view' */ /* Module declarations from 'cython' */ /* Module declarations from 'cpython.version' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.exc' */ /* Module declarations from 'cpython.module' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'cpython.tuple' */ /* Module declarations from 'cpython.list' */ /* Module declarations from 'cpython.sequence' */ /* Module declarations from 'cpython.mapping' */ /* Module declarations from 'cpython.iterator' */ /* Module declarations from 'cpython.number' */ /* Module declarations from 'cpython.int' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.bool' */ static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0; /* Module declarations from 'cpython.long' */ /* Module declarations from 'cpython.float' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.complex' */ static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0; /* Module declarations from 'cpython.string' */ /* Module declarations from 'cpython.unicode' */ /* Module declarations from 'cpython.dict' */ /* Module declarations from 'cpython.instance' */ /* Module declarations from 'cpython.function' */ /* Module declarations from 'cpython.method' */ /* Module declarations from 'cpython.weakref' */ /* Module declarations from 'cpython.getargs' */ /* Module declarations from 'cpython.pythread' */ /* Module declarations from 'cpython.pystate' */ /* Module declarations from 'cpython.cobject' */ /* Module declarations from 'cpython.oldbuffer' */ /* Module declarations from 'cpython.set' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'cpython.bytes' */ /* Module declarations from 'cpython.pycapsule' */ /* Module declarations from 'cpython' */ /* Module declarations from 'libc.stdlib' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ /* Module declarations from 'pyresample.ewa._ll2cr' */ static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; static PyTypeObject *__pyx_memoryviewslice_type = 0; static PyObject *generic = 0; static PyObject *strided = 0; static PyObject *indirect = 0; static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ static PyObject *_unellipsify(PyObject *, int); /*proto*/ static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 }; #define __Pyx_MODULE_NAME "pyresample.ewa._ll2cr" int __pyx_module_is_main_pyresample__ewa___ll2cr = 0; /* Implementation of 'pyresample.ewa._ll2cr' */ static PyObject *__pyx_builtin_super; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_AttributeError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_zip; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_Ellipsis; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; static const char __pyx_k_O[] = "O"; static const char __pyx_k_c[] = "c"; static const char __pyx_k_h[] = "h"; static const char __pyx_k_p[] = "p"; static const char __pyx_k_w[] = "w"; static const char __pyx_k__2[] = "()"; static const char __pyx_k__4[] = "|"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_ox[] = "ox"; static const char __pyx_k_oy[] = "oy"; static const char __pyx_k_x0[] = "x0"; static const char __pyx_k_x1[] = "x1"; static const char __pyx_k_x2[] = "x2"; static const char __pyx_k_y0[] = "y0"; static const char __pyx_k_y1[] = "y1"; static const char __pyx_k_y2[] = "y2"; static const char __pyx_k_col[] = "col"; static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_fwd[] = "_fwd"; static const char __pyx_k_get[] = "get"; static const char __pyx_k_inv[] = "_inv"; static const char __pyx_k_obj[] = "obj"; static const char __pyx_k_row[] = "row"; static const char __pyx_k_zip[] = "zip"; static const char __pyx_k_Proj[] = "Proj"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_base[] = "base"; static const char __pyx_k_call[] = "__call__"; static const char __pyx_k_kind[] = "kind"; static const char __pyx_k_lat0[] = "lat0"; static const char __pyx_k_lat1[] = "lat1"; static const char __pyx_k_lats[] = "lats"; static const char __pyx_k_lon0[] = "lon0"; static const char __pyx_k_lon1[] = "lon1"; static const char __pyx_k_lons[] = "lons"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_ndim[] = "ndim"; static const char __pyx_k_pack[] = "pack"; static const char __pyx_k_proj[] = "_proj"; static const char __pyx_k_self[] = "self"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_step[] = "step"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_xmax[] = "xmax"; static const char __pyx_k_xmin[] = "xmin"; static const char __pyx_k_ymax[] = "ymax"; static const char __pyx_k_ymin[] = "ymin"; static const char __pyx_k_ASCII[] = "ASCII"; static const char __pyx_k_class[] = "__class__"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_strip[] = "strip"; static const char __pyx_k_super[] = "super"; static const char __pyx_k_width[] = "width"; static const char __pyx_k_x_tmp[] = "x_tmp"; static const char __pyx_k_y_tmp[] = "y_tmp"; static const char __pyx_k_MyProj[] = "MyProj"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_height[] = "height"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_kwargs[] = "kwargs"; static const char __pyx_k_module[] = "__module__"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_pyproj[] = "pyproj"; static const char __pyx_k_struct[] = "struct"; static const char __pyx_k_unpack[] = "unpack"; static const char __pyx_k_fill_in[] = "fill_in"; static const char __pyx_k_fortran[] = "fortran"; static const char __pyx_k_inverse[] = "inverse"; static const char __pyx_k_lat_arr[] = "lat_arr"; static const char __pyx_k_lon_arr[] = "lon_arr"; static const char __pyx_k_memview[] = "memview"; static const char __pyx_k_ndarray[] = "ndarray"; static const char __pyx_k_prepare[] = "__prepare__"; static const char __pyx_k_radians[] = "radians"; static const char __pyx_k_Ellipsis[] = "Ellipsis"; static const char __pyx_k_cols_out[] = "cols_out"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_errcheck[] = "errcheck"; static const char __pyx_k_itemsize[] = "itemsize"; static const char __pyx_k_num_cols[] = "num_cols"; static const char __pyx_k_num_rows[] = "num_rows"; static const char __pyx_k_origin_x[] = "origin_x"; static const char __pyx_k_origin_y[] = "origin_y"; static const char __pyx_k_qualname[] = "__qualname__"; static const char __pyx_k_rows_out[] = "rows_out"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_docformat[] = "__docformat__"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_float64_t[] = "float64_t"; static const char __pyx_k_metaclass[] = "__metaclass__"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_cell_width[] = "cell_width"; static const char __pyx_k_is_latlong[] = "is_latlong"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_signatures[] = "signatures"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_cell_height[] = "cell_height"; static const char __pyx_k_proj_circum[] = "proj_circum"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_ll2cr_static[] = "ll2cr_static"; static const char __pyx_k_MyProj___call[] = "MyProj.__call__"; static const char __pyx_k_ll2cr_dynamic[] = "ll2cr_dynamic"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_AttributeError[] = "AttributeError"; static const char __pyx_k_points_in_grid[] = "points_in_grid"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; static const char __pyx_k_projected_tuple[] = "projected_tuple"; static const char __pyx_k_proj4_definition[] = "proj4_definition"; static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_restructuredtext_en[] = "restructuredtext en"; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_pyresample_ewa__ll2cr[] = "pyresample.ewa._ll2cr"; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_projection_circumference[] = "projection_circumference"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; static const char __pyx_k_No_matching_signature_found[] = "No matching signature found"; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; static const char __pyx_k_Expected_at_least_d_arguments[] = "Expected at least %d arguments"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; static const char __pyx_k_Users_davidh_repos_git_pyresamp[] = "/Users/davidh/repos/git/pyresample/pyresample/ewa/_ll2cr.pyx"; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; static const char __pyx_k_Custom_class_to_make_ll2cr_proje[] = "Custom class to make ll2cr projection work faster without compiling against the PROJ.4 library itself.\n\n THIS SHOULD NOT BE USED OUTSIDE OF LL2CR! It makes assumptions and has requirements that may not make sense outside\n of the ll2cr modules.\n "; static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types"; static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; static const char __pyx_k_Map_longitude_latitude_points_to[] = "Map longitude/latitude points to column/rows of a grid.\n"; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_n_s_ASCII; static PyObject *__pyx_n_s_AttributeError; static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; static PyObject *__pyx_kp_s_Cannot_index_with_type_s; static PyObject *__pyx_kp_s_Custom_class_to_make_ll2cr_proje; static PyObject *__pyx_n_s_Ellipsis; static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; static PyObject *__pyx_kp_s_Expected_at_least_d_arguments; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_n_s_IndexError; static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; static PyObject *__pyx_n_s_MemoryError; static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; static PyObject *__pyx_kp_s_MemoryView_of_r_object; static PyObject *__pyx_n_s_MyProj; static PyObject *__pyx_n_s_MyProj___call; static PyObject *__pyx_kp_s_No_matching_signature_found; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_b_O; static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; static PyObject *__pyx_n_s_Proj; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; static PyObject *__pyx_kp_s_Users_davidh_repos_git_pyresamp; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_kp_s__2; static PyObject *__pyx_kp_s__4; static PyObject *__pyx_n_s_allocate_buffer; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_s_base; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_u_c; static PyObject *__pyx_n_s_call; static PyObject *__pyx_n_s_cell_height; static PyObject *__pyx_n_s_cell_width; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_col; static PyObject *__pyx_n_s_cols_out; static PyObject *__pyx_kp_s_contiguous_and_direct; static PyObject *__pyx_kp_s_contiguous_and_indirect; static PyObject *__pyx_n_s_defaults; static PyObject *__pyx_n_s_doc; static PyObject *__pyx_n_s_docformat; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_dtype_is_object; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_errcheck; static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_fill_in; static PyObject *__pyx_n_s_flags; static PyObject *__pyx_n_s_float64_t; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_s_fwd; static PyObject *__pyx_n_s_get; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_s_h; static PyObject *__pyx_n_s_height; static PyObject *__pyx_n_s_id; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_inv; static PyObject *__pyx_n_s_inverse; static PyObject *__pyx_n_s_is_latlong; static PyObject *__pyx_n_s_itemsize; static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; static PyObject *__pyx_n_s_kind; static PyObject *__pyx_n_s_kwargs; static PyObject *__pyx_n_s_lat0; static PyObject *__pyx_n_s_lat1; static PyObject *__pyx_n_s_lat_arr; static PyObject *__pyx_n_s_lats; static PyObject *__pyx_n_s_ll2cr_dynamic; static PyObject *__pyx_n_s_ll2cr_static; static PyObject *__pyx_n_s_lon0; static PyObject *__pyx_n_s_lon1; static PyObject *__pyx_n_s_lon_arr; static PyObject *__pyx_n_s_lons; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_memview; static PyObject *__pyx_n_s_metaclass; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_s_module; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_n_s_ndarray; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_ndim; static PyObject *__pyx_n_s_num_cols; static PyObject *__pyx_n_s_num_rows; static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_origin_x; static PyObject *__pyx_n_s_origin_y; static PyObject *__pyx_n_s_ox; static PyObject *__pyx_n_s_oy; static PyObject *__pyx_n_s_p; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_s_points_in_grid; static PyObject *__pyx_n_s_prepare; static PyObject *__pyx_n_s_proj; static PyObject *__pyx_n_s_proj4_definition; static PyObject *__pyx_n_s_proj_circum; static PyObject *__pyx_n_s_projected_tuple; static PyObject *__pyx_n_s_projection_circumference; static PyObject *__pyx_n_s_pyproj; static PyObject *__pyx_n_s_pyresample_ewa__ll2cr; static PyObject *__pyx_n_s_pyx_getbuffer; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_qualname; static PyObject *__pyx_n_s_radians; static PyObject *__pyx_n_s_range; static PyObject *__pyx_kp_s_restructuredtext_en; static PyObject *__pyx_n_s_row; static PyObject *__pyx_n_s_rows_out; static PyObject *__pyx_n_s_self; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_s_signatures; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_start; static PyObject *__pyx_n_s_step; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_kp_s_strided_and_direct; static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; static PyObject *__pyx_kp_s_strided_and_indirect; static PyObject *__pyx_n_s_strip; static PyObject *__pyx_n_s_struct; static PyObject *__pyx_n_s_super; static PyObject *__pyx_n_s_test; static PyObject *__pyx_kp_s_unable_to_allocate_array_data; static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_unpack; static PyObject *__pyx_n_s_w; static PyObject *__pyx_n_s_width; static PyObject *__pyx_n_s_x0; static PyObject *__pyx_n_s_x1; static PyObject *__pyx_n_s_x2; static PyObject *__pyx_n_s_x_tmp; static PyObject *__pyx_n_s_xmax; static PyObject *__pyx_n_s_xmin; static PyObject *__pyx_n_s_y0; static PyObject *__pyx_n_s_y1; static PyObject *__pyx_n_s_y2; static PyObject *__pyx_n_s_y_tmp; static PyObject *__pyx_n_s_ymax; static PyObject *__pyx_n_s_ymin; static PyObject *__pyx_n_s_zip; static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_6MyProj___call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lons, PyObject *__pyx_v_lats, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_projection_circumference(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_2ll2cr_dynamic(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_16__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_6ll2cr_dynamic(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_lon_arr, PyArrayObject *__pyx_v_lat_arr, __pyx_t_5numpy_float64_t __pyx_v_fill_in, PyObject *__pyx_v_proj4_definition, double __pyx_v_cell_width, double __pyx_v_cell_height, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_origin_x, PyObject *__pyx_v_origin_y); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_4ll2cr_static(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_10ll2cr_static(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_lon_arr, PyArrayObject *__pyx_v_lat_arr, __pyx_t_5numpy_float64_t __pyx_v_fill_in, PyObject *__pyx_v_proj4_definition, double __pyx_v_cell_width, double __pyx_v_cell_height, unsigned int __pyx_v_width, unsigned int __pyx_v_height, double __pyx_v_origin_x, double __pyx_v_origin_y); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_float_0_0; static PyObject *__pyx_float_5_0; static PyObject *__pyx_float_180_0; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_2; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__3; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_slice__27; static PyObject *__pyx_slice__28; static PyObject *__pyx_slice__29; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__39; static PyObject *__pyx_tuple__40; static PyObject *__pyx_tuple__41; static PyObject *__pyx_tuple__42; static PyObject *__pyx_tuple__43; static PyObject *__pyx_codeobj__32; static PyObject *__pyx_codeobj__34; static PyObject *__pyx_codeobj__36; static PyObject *__pyx_codeobj__38; /* "pyresample/ewa/_ll2cr.pyx":48 * of the ll2cr modules. * """ * def __call__(self, lons, lats, **kwargs): # <<<<<<<<<<<<<< * if self.is_latlong(): * return lons, lats */ /* Python wrapper */ static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_6MyProj_1__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_10pyresample_3ewa_6_ll2cr_6MyProj_1__call__ = {"__call__", (PyCFunction)__pyx_pw_10pyresample_3ewa_6_ll2cr_6MyProj_1__call__, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_6MyProj_1__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_lons = 0; PyObject *__pyx_v_lats = 0; PyObject *__pyx_v_kwargs = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; __Pyx_GOTREF(__pyx_v_kwargs); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_lons,&__pyx_n_s_lats,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lons)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 1); __PYX_ERR(0, 48, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lats)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 2); __PYX_ERR(0, 48, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 48, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_self = values[0]; __pyx_v_lons = values[1]; __pyx_v_lats = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 48, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; __Pyx_AddTraceback("pyresample.ewa._ll2cr.MyProj.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_10pyresample_3ewa_6_ll2cr_6MyProj___call__(__pyx_self, __pyx_v_self, __pyx_v_lons, __pyx_v_lats, __pyx_v_kwargs); /* function exit code */ __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_6MyProj___call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lons, PyObject *__pyx_v_lats, PyObject *__pyx_v_kwargs) { PyObject *__pyx_v_inverse = NULL; PyObject *__pyx_v_radians = NULL; PyObject *__pyx_v_errcheck = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__call__", 0); /* "pyresample/ewa/_ll2cr.pyx":49 * """ * def __call__(self, lons, lats, **kwargs): * if self.is_latlong(): # <<<<<<<<<<<<<< * return lons, lats * elif isinstance(lons, numpy.ndarray): */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_latlong); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* "pyresample/ewa/_ll2cr.pyx":50 * def __call__(self, lons, lats, **kwargs): * if self.is_latlong(): * return lons, lats # <<<<<<<<<<<<<< * elif isinstance(lons, numpy.ndarray): * # Because we are doing this we know that we are getting a double array */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_lons); __Pyx_GIVEREF(__pyx_v_lons); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_lons); __Pyx_INCREF(__pyx_v_lats); __Pyx_GIVEREF(__pyx_v_lats); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_lats); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyresample/ewa/_ll2cr.pyx":49 * """ * def __call__(self, lons, lats, **kwargs): * if self.is_latlong(): # <<<<<<<<<<<<<< * return lons, lats * elif isinstance(lons, numpy.ndarray): */ } /* "pyresample/ewa/_ll2cr.pyx":51 * if self.is_latlong(): * return lons, lats * elif isinstance(lons, numpy.ndarray): # <<<<<<<<<<<<<< * # Because we are doing this we know that we are getting a double array * inverse = kwargs.get('inverse', False) */ __pyx_t_4 = __Pyx_TypeCheck(__pyx_v_lons, __pyx_ptype_5numpy_ndarray); __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { /* "pyresample/ewa/_ll2cr.pyx":53 * elif isinstance(lons, numpy.ndarray): * # Because we are doing this we know that we are getting a double array * inverse = kwargs.get('inverse', False) # <<<<<<<<<<<<<< * radians = kwargs.get('radians', False) * errcheck = kwargs.get('errcheck', False) */ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_inverse, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_inverse = __pyx_t_1; __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":54 * # Because we are doing this we know that we are getting a double array * inverse = kwargs.get('inverse', False) * radians = kwargs.get('radians', False) # <<<<<<<<<<<<<< * errcheck = kwargs.get('errcheck', False) * # call proj4 functions. inx and iny modified in place. */ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_radians, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_radians = __pyx_t_1; __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":55 * inverse = kwargs.get('inverse', False) * radians = kwargs.get('radians', False) * errcheck = kwargs.get('errcheck', False) # <<<<<<<<<<<<<< * # call proj4 functions. inx and iny modified in place. * if inverse: */ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_errcheck, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_errcheck = __pyx_t_1; __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":57 * errcheck = kwargs.get('errcheck', False) * # call proj4 functions. inx and iny modified in place. * if inverse: # <<<<<<<<<<<<<< * _proj.Proj._inv(self, lons, lats, radians=radians, errcheck=errcheck) * else: */ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_inverse); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 57, __pyx_L1_error) if (__pyx_t_5) { /* "pyresample/ewa/_ll2cr.pyx":58 * # call proj4 functions. inx and iny modified in place. * if inverse: * _proj.Proj._inv(self, lons, lats, radians=radians, errcheck=errcheck) # <<<<<<<<<<<<<< * else: * _proj.Proj._fwd(self, lons, lats, radians=radians, errcheck=errcheck) */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_proj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Proj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_inv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self); __Pyx_INCREF(__pyx_v_lons); __Pyx_GIVEREF(__pyx_v_lons); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_lons); __Pyx_INCREF(__pyx_v_lats); __Pyx_GIVEREF(__pyx_v_lats); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_lats); __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_radians, __pyx_v_radians) < 0) __PYX_ERR(0, 58, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_errcheck, __pyx_v_errcheck) < 0) __PYX_ERR(0, 58, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pyresample/ewa/_ll2cr.pyx":57 * errcheck = kwargs.get('errcheck', False) * # call proj4 functions. inx and iny modified in place. * if inverse: # <<<<<<<<<<<<<< * _proj.Proj._inv(self, lons, lats, radians=radians, errcheck=errcheck) * else: */ goto __pyx_L4; } /* "pyresample/ewa/_ll2cr.pyx":60 * _proj.Proj._inv(self, lons, lats, radians=radians, errcheck=errcheck) * else: * _proj.Proj._fwd(self, lons, lats, radians=radians, errcheck=errcheck) # <<<<<<<<<<<<<< * # if inputs were lists, tuples or floats, convert back. * return lons, lats */ /*else*/ { __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_proj); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_Proj); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fwd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self); __Pyx_INCREF(__pyx_v_lons); __Pyx_GIVEREF(__pyx_v_lons); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_lons); __Pyx_INCREF(__pyx_v_lats); __Pyx_GIVEREF(__pyx_v_lats); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_lats); __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_radians, __pyx_v_radians) < 0) __PYX_ERR(0, 60, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_errcheck, __pyx_v_errcheck) < 0) __PYX_ERR(0, 60, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L4:; /* "pyresample/ewa/_ll2cr.pyx":62 * _proj.Proj._fwd(self, lons, lats, radians=radians, errcheck=errcheck) * # if inputs were lists, tuples or floats, convert back. * return lons, lats # <<<<<<<<<<<<<< * else: * return super(MyProj, self).__call__(lons, lats, **kwargs) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_lons); __Pyx_GIVEREF(__pyx_v_lons); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_lons); __Pyx_INCREF(__pyx_v_lats); __Pyx_GIVEREF(__pyx_v_lats); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_lats); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyresample/ewa/_ll2cr.pyx":51 * if self.is_latlong(): * return lons, lats * elif isinstance(lons, numpy.ndarray): # <<<<<<<<<<<<<< * # Because we are doing this we know that we are getting a double array * inverse = kwargs.get('inverse', False) */ } /* "pyresample/ewa/_ll2cr.pyx":64 * return lons, lats * else: * return super(MyProj, self).__call__(lons, lats, **kwargs) # <<<<<<<<<<<<<< * * */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_MyProj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_lons); __Pyx_GIVEREF(__pyx_v_lons); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_lons); __Pyx_INCREF(__pyx_v_lats); __Pyx_GIVEREF(__pyx_v_lats); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_lats); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "pyresample/ewa/_ll2cr.pyx":48 * of the ll2cr modules. * """ * def __call__(self, lons, lats, **kwargs): # <<<<<<<<<<<<<< * if self.is_latlong(): * return lons, lats */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyresample.ewa._ll2cr.MyProj.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_inverse); __Pyx_XDECREF(__pyx_v_radians); __Pyx_XDECREF(__pyx_v_errcheck); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyresample/ewa/_ll2cr.pyx":67 * * * def projection_circumference(p): # <<<<<<<<<<<<<< * """Return the projection circumference if the projection is cylindrical. None is returned otherwise. * */ /* Python wrapper */ static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_1projection_circumference(PyObject *__pyx_self, PyObject *__pyx_v_p); /*proto*/ static char __pyx_doc_10pyresample_3ewa_6_ll2cr_projection_circumference[] = "Return the projection circumference if the projection is cylindrical. None is returned otherwise.\n\n Projections that are not cylindrical and centered on the globes axis can not easily have data cross the antimeridian\n of the projection.\n "; static PyMethodDef __pyx_mdef_10pyresample_3ewa_6_ll2cr_1projection_circumference = {"projection_circumference", (PyCFunction)__pyx_pw_10pyresample_3ewa_6_ll2cr_1projection_circumference, METH_O, __pyx_doc_10pyresample_3ewa_6_ll2cr_projection_circumference}; static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_1projection_circumference(PyObject *__pyx_self, PyObject *__pyx_v_p) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("projection_circumference (wrapper)", 0); __pyx_r = __pyx_pf_10pyresample_3ewa_6_ll2cr_projection_circumference(__pyx_self, ((PyObject *)__pyx_v_p)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_projection_circumference(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_p) { PyObject *__pyx_v_lon0 = NULL; PyObject *__pyx_v_lat0 = NULL; PyObject *__pyx_v_lon1 = NULL; PyObject *__pyx_v_lat1 = NULL; PyObject *__pyx_v_x0 = NULL; PyObject *__pyx_v_y0 = NULL; PyObject *__pyx_v_x1 = NULL; PyObject *__pyx_v_y1 = NULL; PyObject *__pyx_v_x2 = NULL; CYTHON_UNUSED PyObject *__pyx_v_y2 = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *(*__pyx_t_5)(PyObject *); Py_ssize_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; __Pyx_RefNannySetupContext("projection_circumference", 0); /* "pyresample/ewa/_ll2cr.pyx":73 * of the projection. * """ * lon0, lat0 = p(0, 0, inverse=True) # <<<<<<<<<<<<<< * lon1 = lon0 + 180.0 * lat1 = lat0 + 5.0 */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_inverse, Py_True) < 0) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_p, __pyx_tuple_, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 73, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_t_5 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 73, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_v_lon0 = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_lat0 = __pyx_t_3; __pyx_t_3 = 0; /* "pyresample/ewa/_ll2cr.pyx":74 * """ * lon0, lat0 = p(0, 0, inverse=True) * lon1 = lon0 + 180.0 # <<<<<<<<<<<<<< * lat1 = lat0 + 5.0 * x0, y0 = p(lon0, lat0) # should result in zero or near zero */ __pyx_t_2 = __Pyx_PyFloat_AddObjC(__pyx_v_lon0, __pyx_float_180_0, 180.0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_lon1 = __pyx_t_2; __pyx_t_2 = 0; /* "pyresample/ewa/_ll2cr.pyx":75 * lon0, lat0 = p(0, 0, inverse=True) * lon1 = lon0 + 180.0 * lat1 = lat0 + 5.0 # <<<<<<<<<<<<<< * x0, y0 = p(lon0, lat0) # should result in zero or near zero * x1, y1 = p(lon1, lat0) */ __pyx_t_2 = __Pyx_PyFloat_AddObjC(__pyx_v_lat0, __pyx_float_5_0, 5.0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_lat1 = __pyx_t_2; __pyx_t_2 = 0; /* "pyresample/ewa/_ll2cr.pyx":76 * lon1 = lon0 + 180.0 * lat1 = lat0 + 5.0 * x0, y0 = p(lon0, lat0) # should result in zero or near zero # <<<<<<<<<<<<<< * x1, y1 = p(lon1, lat0) * x2, y2 = p(lon1, lat1) */ __Pyx_INCREF(__pyx_v_p); __pyx_t_3 = __pyx_v_p; __pyx_t_1 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_lon0); __Pyx_GIVEREF(__pyx_v_lon0); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_lon0); __Pyx_INCREF(__pyx_v_lat0); __Pyx_GIVEREF(__pyx_v_lat0); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_lat0); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 76, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_4 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_1), 2) < 0) __PYX_ERR(0, 76, __pyx_L1_error) __pyx_t_5 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 76, __pyx_L1_error) __pyx_L6_unpacking_done:; } __pyx_v_x0 = __pyx_t_3; __pyx_t_3 = 0; __pyx_v_y0 = __pyx_t_4; __pyx_t_4 = 0; /* "pyresample/ewa/_ll2cr.pyx":77 * lat1 = lat0 + 5.0 * x0, y0 = p(lon0, lat0) # should result in zero or near zero * x1, y1 = p(lon1, lat0) # <<<<<<<<<<<<<< * x2, y2 = p(lon1, lat1) * if y0 != y1 or x1 != x2: */ __Pyx_INCREF(__pyx_v_p); __pyx_t_4 = __pyx_v_p; __pyx_t_3 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } __pyx_t_1 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_lon1); __Pyx_GIVEREF(__pyx_v_lon1); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_lon1); __Pyx_INCREF(__pyx_v_lat0); __Pyx_GIVEREF(__pyx_v_lat0); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_lat0); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 77, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_1 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_3), 2) < 0) __PYX_ERR(0, 77, __pyx_L1_error) __pyx_t_5 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 77, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_v_x1 = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_y1 = __pyx_t_1; __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":78 * x0, y0 = p(lon0, lat0) # should result in zero or near zero * x1, y1 = p(lon1, lat0) * x2, y2 = p(lon1, lat1) # <<<<<<<<<<<<<< * if y0 != y1 or x1 != x2: * return 0.0 */ __Pyx_INCREF(__pyx_v_p); __pyx_t_1 = __pyx_v_p; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_6 = 1; } } __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_lon1); __Pyx_GIVEREF(__pyx_v_lon1); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_lon1); __Pyx_INCREF(__pyx_v_lat1); __Pyx_GIVEREF(__pyx_v_lat1); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_v_lat1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 78, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L9_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L9_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(0, 78, __pyx_L1_error) __pyx_t_5 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L10_unpacking_done; __pyx_L9_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 78, __pyx_L1_error) __pyx_L10_unpacking_done:; } __pyx_v_x2 = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_y2 = __pyx_t_3; __pyx_t_3 = 0; /* "pyresample/ewa/_ll2cr.pyx":79 * x1, y1 = p(lon1, lat0) * x2, y2 = p(lon1, lat1) * if y0 != y1 or x1 != x2: # <<<<<<<<<<<<<< * return 0.0 * return abs(x1 - x0) * 2 */ __pyx_t_2 = PyObject_RichCompare(__pyx_v_y0, __pyx_v_y1, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L12_bool_binop_done; } __pyx_t_2 = PyObject_RichCompare(__pyx_v_x1, __pyx_v_x2, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __pyx_t_8; __pyx_L12_bool_binop_done:; if (__pyx_t_7) { /* "pyresample/ewa/_ll2cr.pyx":80 * x2, y2 = p(lon1, lat1) * if y0 != y1 or x1 != x2: * return 0.0 # <<<<<<<<<<<<<< * return abs(x1 - x0) * 2 * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_float_0_0); __pyx_r = __pyx_float_0_0; goto __pyx_L0; /* "pyresample/ewa/_ll2cr.pyx":79 * x1, y1 = p(lon1, lat0) * x2, y2 = p(lon1, lat1) * if y0 != y1 or x1 != x2: # <<<<<<<<<<<<<< * return 0.0 * return abs(x1 - x0) * 2 */ } /* "pyresample/ewa/_ll2cr.pyx":81 * if y0 != y1 or x1 != x2: * return 0.0 * return abs(x1 - x0) * 2 # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyNumber_Subtract(__pyx_v_x1, __pyx_v_x0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Absolute(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_int_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyresample/ewa/_ll2cr.pyx":67 * * * def projection_circumference(p): # <<<<<<<<<<<<<< * """Return the projection circumference if the projection is cylindrical. None is returned otherwise. * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyresample.ewa._ll2cr.projection_circumference", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_lon0); __Pyx_XDECREF(__pyx_v_lat0); __Pyx_XDECREF(__pyx_v_lon1); __Pyx_XDECREF(__pyx_v_lat1); __Pyx_XDECREF(__pyx_v_x0); __Pyx_XDECREF(__pyx_v_y0); __Pyx_XDECREF(__pyx_v_x1); __Pyx_XDECREF(__pyx_v_y1); __Pyx_XDECREF(__pyx_v_x2); __Pyx_XDECREF(__pyx_v_y2); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyresample/ewa/_ll2cr.pyx":87 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_dynamic(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ /* Python wrapper */ static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_3ll2cr_dynamic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_10pyresample_3ewa_6_ll2cr_2ll2cr_dynamic[] = "Project longitude and latitude points to column rows in the specified grid in place\n\n This function is meant to operate on dynamic grids and is theoretically\n slower than the `ll2cr_static` function. Dynamic grids are those that\n have one or more set of parameters unspecified like the number of pixels\n in the grid (width, height) or the origin coordinates of the grid\n (origin_x, origin_y). This function will analyze the provided lon/lat data\n and determine what the missing parameters must be so all input swath data\n falls in the resulting grid.\n\n :param lon_arr: Numpy array of longitude floats\n :param lat_arr: Numpy array of latitude floats\n :param grid_info: dictionary of grid information (see below)\n :param fill_in: Fill value for input longitude and latitude arrays and used for output\n :param proj4_definition: PROJ.4 string projection definition\n :param cell_width: Pixel resolution in the X direction in projection space\n :param cell_height: Pixel resolution in the Y direction in projection space\n :param width: (optional) Number of pixels in the X direction in the final output grid\n :param height: (optional) Number of pixels in the Y direction in the final output grid\n :param origin_x: (optional) Grid X coordinate for the upper-left pixel of the output grid\n :param origin_y: (optional) Grid Y coordinate for the upper-left pixel of the output grid\n :returns: tuple(points_in_grid, cols_out, rows_out, origin_x, origin_y, width, height)\n\n Steps taken in this function:\n\n 1. Convert (lon, lat) points to (X, Y) points in the projection space\n 2. If grid is missing some parameters (dynamic grid), then fill them in\n 3. Convert (X, Y) points to (column, row) points in the grid space\n\n Note longitude and latitude arrays are limited to 64-bit floats because\n of limitations in pyproj.\n "; static PyMethodDef __pyx_mdef_10pyresample_3ewa_6_ll2cr_3ll2cr_dynamic = {"ll2cr_dynamic", (PyCFunction)__pyx_pw_10pyresample_3ewa_6_ll2cr_3ll2cr_dynamic, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_6_ll2cr_2ll2cr_dynamic}; static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_3ll2cr_dynamic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 87, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 87, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 87, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 87, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 87, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._ll2cr.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_10pyresample_3ewa_6_ll2cr_2ll2cr_dynamic(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_2ll2cr_dynamic(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; PyTypeObject *__pyx_v_ndarray = 0; PyObject *__pyx_v_numpy = NULL; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_type = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; long __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; Py_ssize_t __pyx_t_14; PyObject *(*__pyx_t_15)(PyObject *); PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *(*__pyx_t_19)(PyObject *); int __pyx_t_20; __Pyx_RefNannySetupContext("ll2cr_dynamic", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_v_kwargs == Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_kwargs, __pyx_t_1); __pyx_t_1 = 0; } { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_numpy = __pyx_t_1; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_numpy, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 87, __pyx_L4_error) __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L11_try_end; __pyx_L4_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_7) { __Pyx_AddTraceback("pyresample.ewa._ll2cr.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 87, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_ndarray, ((PyTypeObject*)Py_None)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; __pyx_L6_except_error:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); __pyx_L11_try_end:; } __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_10 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_3 = ((0 < __pyx_t_10) != 0); if (__pyx_t_3) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_9 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0); __Pyx_INCREF(__pyx_t_9); __pyx_v_arg = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L14; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_lon_arr, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_lon_arr); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_arg = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L14; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_10 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_arguments, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_L14:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_dtype = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L18; } __pyx_t_2 = (__pyx_memoryview_check(__pyx_v_arg) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_arg_base = __pyx_t_8; __pyx_t_8 = 0; __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_dtype = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L19; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L19:; goto __pyx_L18; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L18:; __pyx_v_itemsize = -1L; __pyx_t_3 = (__pyx_v_dtype != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_itemsize = __pyx_t_10; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_Ord(__pyx_t_8); if (unlikely(__pyx_t_11 == (long)(Py_UCS4)-1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_kind = __pyx_t_11; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L22_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = ((((Py_ssize_t)__pyx_t_10) == 2) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L22_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 87, __pyx_L1_error) goto __pyx_L16_break; } break; case 'c': break; case 'O': break; default: break; } } } __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L25_bool_binop_done; } __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L25_bool_binop_done:; if (__pyx_t_2) { __pyx_v_memslice = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg); __pyx_t_2 = (__pyx_v_memslice.memview != 0); if (__pyx_t_2) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 87, __pyx_L1_error) goto __pyx_L16_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 87, __pyx_L1_error) goto __pyx_L16_break; } __pyx_L16_break:; __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_candidates = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_9 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_12), (&__pyx_t_7)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = __pyx_t_9; __pyx_t_9 = 0; while (1) { __pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_12, &__pyx_t_10, &__pyx_t_9, NULL, NULL, __pyx_t_7); if (unlikely(__pyx_t_13 == 0)) break; if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_match_found = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_dest_sig); __Pyx_GIVEREF(__pyx_v_dest_sig); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_dest_sig); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { __pyx_t_14 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_15 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 87, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 87, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 87, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_15(__pyx_t_9); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 87, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 87, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_16 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_16 = PyList_GET_ITEM(sequence, 0); __pyx_t_17 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(__pyx_t_17); #else __pyx_t_16 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_19 = Py_TYPE(__pyx_t_18)->tp_iternext; index = 0; __pyx_t_16 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_16)) goto __pyx_L32_unpacking_failed; __Pyx_GOTREF(__pyx_t_16); index = 1; __pyx_t_17 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L32_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_18), 2) < 0) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_19 = NULL; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; goto __pyx_L33_unpacking_done; __pyx_L32_unpacking_failed:; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_19 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 87, __pyx_L1_error) __pyx_L33_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_src_type, __pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_17); __pyx_t_17 = 0; __pyx_t_2 = (__pyx_v_dst_type != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_1 = PyObject_RichCompare(__pyx_v_src_type, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { __pyx_v_match_found = 1; goto __pyx_L35; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L31_break; } __pyx_L35:; } } __pyx_L31_break:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = (__pyx_v_match_found != 0); if (__pyx_t_3) { __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 87, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = (__pyx_v_candidates != Py_None) && (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_2 = ((!__pyx_t_3) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_12 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_12 > 1) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 87, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_18); __Pyx_AddTraceback("pyresample.ewa._ll2cr.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_numpy); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_type); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_16__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_width); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_width); PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_width); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_height); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_height); PyTuple_SET_ITEM(__pyx_t_1, 1, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_height); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_origin_x); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_origin_x); PyTuple_SET_ITEM(__pyx_t_1, 2, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_origin_x); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_origin_y); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_origin_y); PyTuple_SET_ITEM(__pyx_t_1, 3, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_origin_y); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyresample.ewa._ll2cr.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_0__pyx_pw_10pyresample_3ewa_6_ll2cr_7ll2cr_dynamic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_10pyresample_3ewa_6_ll2cr_7ll2cr_dynamic = {"__pyx_fuse_0ll2cr_dynamic", (PyCFunction)__pyx_fuse_0__pyx_pw_10pyresample_3ewa_6_ll2cr_7ll2cr_dynamic, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_6_ll2cr_2ll2cr_dynamic}; static PyObject *__pyx_fuse_0__pyx_pw_10pyresample_3ewa_6_ll2cr_7ll2cr_dynamic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_lon_arr = 0; PyArrayObject *__pyx_v_lat_arr = 0; __pyx_t_5numpy_float64_t __pyx_v_fill_in; PyObject *__pyx_v_proj4_definition = 0; double __pyx_v_cell_width; double __pyx_v_cell_height; PyObject *__pyx_v_width = 0; PyObject *__pyx_v_height = 0; PyObject *__pyx_v_origin_x = 0; PyObject *__pyx_v_origin_y = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("ll2cr_dynamic (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lon_arr,&__pyx_n_s_lat_arr,&__pyx_n_s_fill_in,&__pyx_n_s_proj4_definition,&__pyx_n_s_cell_width,&__pyx_n_s_cell_height,&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_origin_x,&__pyx_n_s_origin_y,0}; PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; __pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self); values[6] = __pyx_dynamic_args->__pyx_arg_width; values[7] = __pyx_dynamic_args->__pyx_arg_height; values[8] = __pyx_dynamic_args->__pyx_arg_origin_x; values[9] = __pyx_dynamic_args->__pyx_arg_origin_y; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lon_arr)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lat_arr)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_dynamic", 0, 6, 10, 1); __PYX_ERR(0, 87, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fill_in)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_dynamic", 0, 6, 10, 2); __PYX_ERR(0, 87, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_proj4_definition)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_dynamic", 0, 6, 10, 3); __PYX_ERR(0, 87, __pyx_L3_error) } case 4: if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cell_width)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_dynamic", 0, 6, 10, 4); __PYX_ERR(0, 87, __pyx_L3_error) } case 5: if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cell_height)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_dynamic", 0, 6, 10, 5); __PYX_ERR(0, 87, __pyx_L3_error) } case 6: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_width); if (value) { values[6] = value; kw_args--; } } case 7: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_height); if (value) { values[7] = value; kw_args--; } } case 8: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_origin_x); if (value) { values[8] = value; kw_args--; } } case 9: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_origin_y); if (value) { values[9] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ll2cr_dynamic") < 0)) __PYX_ERR(0, 87, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_lon_arr = ((PyArrayObject *)values[0]); __pyx_v_lat_arr = ((PyArrayObject *)values[1]); __pyx_v_fill_in = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_fill_in == (npy_float64)-1) && PyErr_Occurred())) __PYX_ERR(0, 88, __pyx_L3_error) __pyx_v_proj4_definition = ((PyObject*)values[3]); __pyx_v_cell_width = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_cell_width == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L3_error) __pyx_v_cell_height = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_cell_height == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L3_error) __pyx_v_width = values[6]; __pyx_v_height = values[7]; __pyx_v_origin_x = values[8]; __pyx_v_origin_y = values[9]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("ll2cr_dynamic", 0, 6, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 87, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._ll2cr.ll2cr_dynamic", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lon_arr), __pyx_ptype_5numpy_ndarray, 1, "lon_arr", 0))) __PYX_ERR(0, 87, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lat_arr), __pyx_ptype_5numpy_ndarray, 1, "lat_arr", 0))) __PYX_ERR(0, 87, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_proj4_definition), (&PyString_Type), 1, "proj4_definition", 1))) __PYX_ERR(0, 88, __pyx_L1_error) __pyx_r = __pyx_pf_10pyresample_3ewa_6_ll2cr_6ll2cr_dynamic(__pyx_self, __pyx_v_lon_arr, __pyx_v_lat_arr, __pyx_v_fill_in, __pyx_v_proj4_definition, __pyx_v_cell_width, __pyx_v_cell_height, __pyx_v_width, __pyx_v_height, __pyx_v_origin_x, __pyx_v_origin_y); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_6ll2cr_dynamic(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_lon_arr, PyArrayObject *__pyx_v_lat_arr, __pyx_t_5numpy_float64_t __pyx_v_fill_in, PyObject *__pyx_v_proj4_definition, double __pyx_v_cell_width, double __pyx_v_cell_height, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_origin_x, PyObject *__pyx_v_origin_y) { PyObject *__pyx_v_p = NULL; PyObject *__pyx_v_projected_tuple = 0; __Pyx_memviewslice __pyx_v_rows_out = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cols_out = { 0, 0, { 0 }, { 0 }, { 0 } }; double __pyx_v_proj_circum; unsigned int __pyx_v_w; unsigned int __pyx_v_h; double __pyx_v_ox; double __pyx_v_oy; unsigned int __pyx_v_row; unsigned int __pyx_v_col; unsigned int __pyx_v_num_rows; unsigned int __pyx_v_num_cols; __pyx_t_5numpy_float64_t __pyx_v_xmin; __pyx_t_5numpy_float64_t __pyx_v_xmax; __pyx_t_5numpy_float64_t __pyx_v_ymin; __pyx_t_5numpy_float64_t __pyx_v_ymax; __pyx_t_5numpy_float64_t __pyx_v_x_tmp; __pyx_t_5numpy_float64_t __pyx_v_y_tmp; unsigned int __pyx_v_points_in_grid; __Pyx_LocalBuf_ND __pyx_pybuffernd_lat_arr; __Pyx_Buffer __pyx_pybuffer_lat_arr; __Pyx_LocalBuf_ND __pyx_pybuffernd_lon_arr; __Pyx_Buffer __pyx_pybuffer_lon_arr; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } }; double __pyx_t_7; Py_ssize_t __pyx_t_8; Py_ssize_t __pyx_t_9; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; unsigned int __pyx_t_16; unsigned int __pyx_t_17; unsigned int __pyx_t_18; unsigned int __pyx_t_19; size_t __pyx_t_20; size_t __pyx_t_21; size_t __pyx_t_22; size_t __pyx_t_23; int __pyx_t_24; int __pyx_t_25; size_t __pyx_t_26; size_t __pyx_t_27; size_t __pyx_t_28; size_t __pyx_t_29; size_t __pyx_t_30; size_t __pyx_t_31; size_t __pyx_t_32; size_t __pyx_t_33; size_t __pyx_t_34; size_t __pyx_t_35; size_t __pyx_t_36; size_t __pyx_t_37; size_t __pyx_t_38; size_t __pyx_t_39; size_t __pyx_t_40; size_t __pyx_t_41; PyObject *__pyx_t_42 = NULL; PyObject *__pyx_t_43 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_0ll2cr_dynamic", 0); __pyx_pybuffer_lon_arr.pybuffer.buf = NULL; __pyx_pybuffer_lon_arr.refcount = 0; __pyx_pybuffernd_lon_arr.data = NULL; __pyx_pybuffernd_lon_arr.rcbuffer = &__pyx_pybuffer_lon_arr; __pyx_pybuffer_lat_arr.pybuffer.buf = NULL; __pyx_pybuffer_lat_arr.refcount = 0; __pyx_pybuffernd_lat_arr.data = NULL; __pyx_pybuffernd_lat_arr.rcbuffer = &__pyx_pybuffer_lat_arr; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lon_arr.rcbuffer->pybuffer, (PyObject*)__pyx_v_lon_arr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_pybuffernd_lon_arr.diminfo[0].strides = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lon_arr.diminfo[0].shape = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_lon_arr.diminfo[1].strides = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_lon_arr.diminfo[1].shape = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.shape[1]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lat_arr.rcbuffer->pybuffer, (PyObject*)__pyx_v_lat_arr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 87, __pyx_L1_error) } __pyx_pybuffernd_lat_arr.diminfo[0].strides = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lat_arr.diminfo[0].shape = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_lat_arr.diminfo[1].strides = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_lat_arr.diminfo[1].shape = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.shape[1]; /* "pyresample/ewa/_ll2cr.pyx":125 * """ * # pure python stuff for now * p = MyProj(proj4_definition) # <<<<<<<<<<<<<< * * # Pyproj currently makes a copy so we don't have to do anything special here */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_MyProj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_proj4_definition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_proj4_definition); __Pyx_GIVEREF(__pyx_v_proj4_definition); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_proj4_definition); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_p = __pyx_t_1; __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":128 * * # Pyproj currently makes a copy so we don't have to do anything special here * cdef tuple projected_tuple = p(lon_arr, lat_arr) # <<<<<<<<<<<<<< * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] */ __Pyx_INCREF(__pyx_v_p); __pyx_t_2 = __pyx_v_p; __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_3 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_lon_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_lon_arr)); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, ((PyObject *)__pyx_v_lon_arr)); __Pyx_INCREF(((PyObject *)__pyx_v_lat_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_lat_arr)); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, ((PyObject *)__pyx_v_lat_arr)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 128, __pyx_L1_error) __pyx_v_projected_tuple = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":129 * # Pyproj currently makes a copy so we don't have to do anything special here * cdef tuple projected_tuple = p(lon_arr, lat_arr) * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] # <<<<<<<<<<<<<< * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] * cdef double proj_circum = projection_circumference(p) */ if (unlikely(__pyx_v_projected_tuple == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 129, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(PyTuple_GET_ITEM(__pyx_v_projected_tuple, 1)); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 129, __pyx_L1_error) __pyx_v_rows_out = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* "pyresample/ewa/_ll2cr.pyx":130 * cdef tuple projected_tuple = p(lon_arr, lat_arr) * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] # <<<<<<<<<<<<<< * cdef double proj_circum = projection_circumference(p) * cdef unsigned int w */ if (unlikely(__pyx_v_projected_tuple == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 130, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(PyTuple_GET_ITEM(__pyx_v_projected_tuple, 0)); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 130, __pyx_L1_error) __pyx_v_cols_out = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* "pyresample/ewa/_ll2cr.pyx":131 * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] * cdef double proj_circum = projection_circumference(p) # <<<<<<<<<<<<<< * cdef unsigned int w * cdef unsigned int h */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_projection_circumference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_p); __Pyx_GIVEREF(__pyx_v_p); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_p); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_proj_circum = __pyx_t_7; /* "pyresample/ewa/_ll2cr.pyx":141 * cdef unsigned int col * # index bounds * cdef unsigned int num_rows = lon_arr.shape[0] # <<<<<<<<<<<<<< * cdef unsigned int num_cols = lon_arr.shape[1] * cdef cr_dtype xmin = cols_out[0, 0] */ __pyx_v_num_rows = (__pyx_v_lon_arr->dimensions[0]); /* "pyresample/ewa/_ll2cr.pyx":142 * # index bounds * cdef unsigned int num_rows = lon_arr.shape[0] * cdef unsigned int num_cols = lon_arr.shape[1] # <<<<<<<<<<<<<< * cdef cr_dtype xmin = cols_out[0, 0] * cdef cr_dtype xmax = cols_out[0, 0] */ __pyx_v_num_cols = (__pyx_v_lon_arr->dimensions[1]); /* "pyresample/ewa/_ll2cr.pyx":143 * cdef unsigned int num_rows = lon_arr.shape[0] * cdef unsigned int num_cols = lon_arr.shape[1] * cdef cr_dtype xmin = cols_out[0, 0] # <<<<<<<<<<<<<< * cdef cr_dtype xmax = cols_out[0, 0] * cdef cr_dtype ymin = rows_out[0, 0] */ __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_v_xmin = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_8 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_9)) ))); /* "pyresample/ewa/_ll2cr.pyx":144 * cdef unsigned int num_cols = lon_arr.shape[1] * cdef cr_dtype xmin = cols_out[0, 0] * cdef cr_dtype xmax = cols_out[0, 0] # <<<<<<<<<<<<<< * cdef cr_dtype ymin = rows_out[0, 0] * cdef cr_dtype ymax = rows_out[0, 0] */ __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_v_xmax = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_10 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_11)) ))); /* "pyresample/ewa/_ll2cr.pyx":145 * cdef cr_dtype xmin = cols_out[0, 0] * cdef cr_dtype xmax = cols_out[0, 0] * cdef cr_dtype ymin = rows_out[0, 0] # <<<<<<<<<<<<<< * cdef cr_dtype ymax = rows_out[0, 0] * cdef cr_dtype x_tmp */ __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_v_ymin = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_12 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_13)) ))); /* "pyresample/ewa/_ll2cr.pyx":146 * cdef cr_dtype xmax = cols_out[0, 0] * cdef cr_dtype ymin = rows_out[0, 0] * cdef cr_dtype ymax = rows_out[0, 0] # <<<<<<<<<<<<<< * cdef cr_dtype x_tmp * cdef cr_dtype y_tmp */ __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_v_ymax = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_14 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_15)) ))); /* "pyresample/ewa/_ll2cr.pyx":149 * cdef cr_dtype x_tmp * cdef cr_dtype y_tmp * cdef unsigned int points_in_grid = 0 # <<<<<<<<<<<<<< * for row in range(num_rows): * for col in range(num_cols): */ __pyx_v_points_in_grid = 0; /* "pyresample/ewa/_ll2cr.pyx":150 * cdef cr_dtype y_tmp * cdef unsigned int points_in_grid = 0 * for row in range(num_rows): # <<<<<<<<<<<<<< * for col in range(num_cols): * x_tmp = cols_out[row, col] */ __pyx_t_16 = __pyx_v_num_rows; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_row = __pyx_t_17; /* "pyresample/ewa/_ll2cr.pyx":151 * cdef unsigned int points_in_grid = 0 * for row in range(num_rows): * for col in range(num_cols): # <<<<<<<<<<<<<< * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] */ __pyx_t_18 = __pyx_v_num_cols; for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) { __pyx_v_col = __pyx_t_19; /* "pyresample/ewa/_ll2cr.pyx":152 * for row in range(num_rows): * for col in range(num_cols): * x_tmp = cols_out[row, col] # <<<<<<<<<<<<<< * y_tmp = rows_out[row, col] * */ __pyx_t_20 = __pyx_v_row; __pyx_t_21 = __pyx_v_col; __pyx_v_x_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_20 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_21)) ))); /* "pyresample/ewa/_ll2cr.pyx":153 * for col in range(num_cols): * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] # <<<<<<<<<<<<<< * * if x_tmp >= 1e30: */ __pyx_t_22 = __pyx_v_row; __pyx_t_23 = __pyx_v_col; __pyx_v_y_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_22 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_23)) ))); /* "pyresample/ewa/_ll2cr.pyx":155 * y_tmp = rows_out[row, col] * * if x_tmp >= 1e30: # <<<<<<<<<<<<<< * # pyproj library should have set both x and y to the fill value * # we technically don't ever check for the fill value, but if fill values are valid lon/lats then WTF */ __pyx_t_24 = ((__pyx_v_x_tmp >= 1e30) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":158 * # pyproj library should have set both x and y to the fill value * # we technically don't ever check for the fill value, but if fill values are valid lon/lats then WTF * continue # <<<<<<<<<<<<<< * elif x_tmp < xmin or npy_isnan(xmin): * xmin = x_tmp */ goto __pyx_L5_continue; /* "pyresample/ewa/_ll2cr.pyx":155 * y_tmp = rows_out[row, col] * * if x_tmp >= 1e30: # <<<<<<<<<<<<<< * # pyproj library should have set both x and y to the fill value * # we technically don't ever check for the fill value, but if fill values are valid lon/lats then WTF */ } /* "pyresample/ewa/_ll2cr.pyx":159 * # we technically don't ever check for the fill value, but if fill values are valid lon/lats then WTF * continue * elif x_tmp < xmin or npy_isnan(xmin): # <<<<<<<<<<<<<< * xmin = x_tmp * elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: */ __pyx_t_25 = ((__pyx_v_x_tmp < __pyx_v_xmin) != 0); if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L8_bool_binop_done; } __pyx_t_25 = (npy_isnan(__pyx_v_xmin) != 0); __pyx_t_24 = __pyx_t_25; __pyx_L8_bool_binop_done:; if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":160 * continue * elif x_tmp < xmin or npy_isnan(xmin): * xmin = x_tmp # <<<<<<<<<<<<<< * elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: * # Note: technically 2 valid points are required to get here if there are a lot of NaNs */ __pyx_v_xmin = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":159 * # we technically don't ever check for the fill value, but if fill values are valid lon/lats then WTF * continue * elif x_tmp < xmin or npy_isnan(xmin): # <<<<<<<<<<<<<< * xmin = x_tmp * elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: */ goto __pyx_L7; } /* "pyresample/ewa/_ll2cr.pyx":161 * elif x_tmp < xmin or npy_isnan(xmin): * xmin = x_tmp * elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: # <<<<<<<<<<<<<< * # Note: technically 2 valid points are required to get here if there are a lot of NaNs * xmax = x_tmp */ __pyx_t_25 = ((__pyx_v_x_tmp > __pyx_v_xmax) != 0); if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L10_bool_binop_done; } __pyx_t_25 = (npy_isnan(__pyx_v_xmax) != 0); if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L10_bool_binop_done; } __pyx_t_25 = ((__pyx_v_xmax == 1e30) != 0); __pyx_t_24 = __pyx_t_25; __pyx_L10_bool_binop_done:; if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":163 * elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: * # Note: technically 2 valid points are required to get here if there are a lot of NaNs * xmax = x_tmp # <<<<<<<<<<<<<< * * if y_tmp < ymin or npy_isnan(ymin): */ __pyx_v_xmax = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":161 * elif x_tmp < xmin or npy_isnan(xmin): * xmin = x_tmp * elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: # <<<<<<<<<<<<<< * # Note: technically 2 valid points are required to get here if there are a lot of NaNs * xmax = x_tmp */ } __pyx_L7:; /* "pyresample/ewa/_ll2cr.pyx":165 * xmax = x_tmp * * if y_tmp < ymin or npy_isnan(ymin): # <<<<<<<<<<<<<< * ymin = y_tmp * elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: */ __pyx_t_25 = ((__pyx_v_y_tmp < __pyx_v_ymin) != 0); if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L14_bool_binop_done; } __pyx_t_25 = (npy_isnan(__pyx_v_ymin) != 0); __pyx_t_24 = __pyx_t_25; __pyx_L14_bool_binop_done:; if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":166 * * if y_tmp < ymin or npy_isnan(ymin): * ymin = y_tmp # <<<<<<<<<<<<<< * elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: * # Note: technically 2 valid points are required to get here if there are a lot of NaNs */ __pyx_v_ymin = __pyx_v_y_tmp; /* "pyresample/ewa/_ll2cr.pyx":165 * xmax = x_tmp * * if y_tmp < ymin or npy_isnan(ymin): # <<<<<<<<<<<<<< * ymin = y_tmp * elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: */ goto __pyx_L13; } /* "pyresample/ewa/_ll2cr.pyx":167 * if y_tmp < ymin or npy_isnan(ymin): * ymin = y_tmp * elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: # <<<<<<<<<<<<<< * # Note: technically 2 valid points are required to get here if there are a lot of NaNs * ymax = y_tmp */ __pyx_t_25 = ((__pyx_v_y_tmp > __pyx_v_ymax) != 0); if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L16_bool_binop_done; } __pyx_t_25 = (npy_isnan(__pyx_v_ymax) != 0); if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L16_bool_binop_done; } __pyx_t_25 = ((__pyx_v_ymax == 1e30) != 0); __pyx_t_24 = __pyx_t_25; __pyx_L16_bool_binop_done:; if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":169 * elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: * # Note: technically 2 valid points are required to get here if there are a lot of NaNs * ymax = y_tmp # <<<<<<<<<<<<<< * * # Check if we cross the antimeridian */ __pyx_v_ymax = __pyx_v_y_tmp; /* "pyresample/ewa/_ll2cr.pyx":167 * if y_tmp < ymin or npy_isnan(ymin): * ymin = y_tmp * elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: # <<<<<<<<<<<<<< * # Note: technically 2 valid points are required to get here if there are a lot of NaNs * ymax = y_tmp */ } __pyx_L13:; __pyx_L5_continue:; } } /* "pyresample/ewa/_ll2cr.pyx":172 * * # Check if we cross the antimeridian * if proj_circum != 0 and xmax - xmin >= proj_circum * .75: # <<<<<<<<<<<<<< * # xmax will increase, but we need to reset xmin so that it gets properly detected * if xmin < 0: */ __pyx_t_25 = ((__pyx_v_proj_circum != 0.0) != 0); if (__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L20_bool_binop_done; } __pyx_t_25 = (((__pyx_v_xmax - __pyx_v_xmin) >= (__pyx_v_proj_circum * .75)) != 0); __pyx_t_24 = __pyx_t_25; __pyx_L20_bool_binop_done:; if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":174 * if proj_circum != 0 and xmax - xmin >= proj_circum * .75: * # xmax will increase, but we need to reset xmin so that it gets properly detected * if xmin < 0: # <<<<<<<<<<<<<< * xmin = xmax * for row in range(num_rows): */ __pyx_t_24 = ((__pyx_v_xmin < 0.0) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":175 * # xmax will increase, but we need to reset xmin so that it gets properly detected * if xmin < 0: * xmin = xmax # <<<<<<<<<<<<<< * for row in range(num_rows): * for col in range(num_cols): */ __pyx_v_xmin = __pyx_v_xmax; /* "pyresample/ewa/_ll2cr.pyx":174 * if proj_circum != 0 and xmax - xmin >= proj_circum * .75: * # xmax will increase, but we need to reset xmin so that it gets properly detected * if xmin < 0: # <<<<<<<<<<<<<< * xmin = xmax * for row in range(num_rows): */ } /* "pyresample/ewa/_ll2cr.pyx":176 * if xmin < 0: * xmin = xmax * for row in range(num_rows): # <<<<<<<<<<<<<< * for col in range(num_cols): * x_tmp = cols_out[row, col] */ __pyx_t_16 = __pyx_v_num_rows; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_row = __pyx_t_17; /* "pyresample/ewa/_ll2cr.pyx":177 * xmin = xmax * for row in range(num_rows): * for col in range(num_cols): # <<<<<<<<<<<<<< * x_tmp = cols_out[row, col] * if x_tmp < 0: */ __pyx_t_18 = __pyx_v_num_cols; for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) { __pyx_v_col = __pyx_t_19; /* "pyresample/ewa/_ll2cr.pyx":178 * for row in range(num_rows): * for col in range(num_cols): * x_tmp = cols_out[row, col] # <<<<<<<<<<<<<< * if x_tmp < 0: * x_tmp += proj_circum */ __pyx_t_26 = __pyx_v_row; __pyx_t_27 = __pyx_v_col; __pyx_v_x_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_26 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_27)) ))); /* "pyresample/ewa/_ll2cr.pyx":179 * for col in range(num_cols): * x_tmp = cols_out[row, col] * if x_tmp < 0: # <<<<<<<<<<<<<< * x_tmp += proj_circum * cols_out[row, col] = x_tmp */ __pyx_t_24 = ((__pyx_v_x_tmp < 0.0) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":180 * x_tmp = cols_out[row, col] * if x_tmp < 0: * x_tmp += proj_circum # <<<<<<<<<<<<<< * cols_out[row, col] = x_tmp * # xmax won't increase unless we've added the circumference */ __pyx_v_x_tmp = (__pyx_v_x_tmp + __pyx_v_proj_circum); /* "pyresample/ewa/_ll2cr.pyx":181 * if x_tmp < 0: * x_tmp += proj_circum * cols_out[row, col] = x_tmp # <<<<<<<<<<<<<< * # xmax won't increase unless we've added the circumference * if x_tmp > xmax: */ __pyx_t_28 = __pyx_v_row; __pyx_t_29 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_28 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_29)) )) = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":183 * cols_out[row, col] = x_tmp * # xmax won't increase unless we've added the circumference * if x_tmp > xmax: # <<<<<<<<<<<<<< * xmax = x_tmp * elif x_tmp >= 1e30: */ __pyx_t_24 = ((__pyx_v_x_tmp > __pyx_v_xmax) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":184 * # xmax won't increase unless we've added the circumference * if x_tmp > xmax: * xmax = x_tmp # <<<<<<<<<<<<<< * elif x_tmp >= 1e30: * continue */ __pyx_v_xmax = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":183 * cols_out[row, col] = x_tmp * # xmax won't increase unless we've added the circumference * if x_tmp > xmax: # <<<<<<<<<<<<<< * xmax = x_tmp * elif x_tmp >= 1e30: */ } /* "pyresample/ewa/_ll2cr.pyx":179 * for col in range(num_cols): * x_tmp = cols_out[row, col] * if x_tmp < 0: # <<<<<<<<<<<<<< * x_tmp += proj_circum * cols_out[row, col] = x_tmp */ goto __pyx_L27; } /* "pyresample/ewa/_ll2cr.pyx":185 * if x_tmp > xmax: * xmax = x_tmp * elif x_tmp >= 1e30: # <<<<<<<<<<<<<< * continue * elif x_tmp < xmin: */ __pyx_t_24 = ((__pyx_v_x_tmp >= 1e30) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":186 * xmax = x_tmp * elif x_tmp >= 1e30: * continue # <<<<<<<<<<<<<< * elif x_tmp < xmin: * # xmin could change with any of the remaining entries */ goto __pyx_L25_continue; /* "pyresample/ewa/_ll2cr.pyx":185 * if x_tmp > xmax: * xmax = x_tmp * elif x_tmp >= 1e30: # <<<<<<<<<<<<<< * continue * elif x_tmp < xmin: */ } /* "pyresample/ewa/_ll2cr.pyx":187 * elif x_tmp >= 1e30: * continue * elif x_tmp < xmin: # <<<<<<<<<<<<<< * # xmin could change with any of the remaining entries * xmin = x_tmp */ __pyx_t_24 = ((__pyx_v_x_tmp < __pyx_v_xmin) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":189 * elif x_tmp < xmin: * # xmin could change with any of the remaining entries * xmin = x_tmp # <<<<<<<<<<<<<< * * if origin_x is None: */ __pyx_v_xmin = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":187 * elif x_tmp >= 1e30: * continue * elif x_tmp < xmin: # <<<<<<<<<<<<<< * # xmin could change with any of the remaining entries * xmin = x_tmp */ } __pyx_L27:; __pyx_L25_continue:; } } /* "pyresample/ewa/_ll2cr.pyx":172 * * # Check if we cross the antimeridian * if proj_circum != 0 and xmax - xmin >= proj_circum * .75: # <<<<<<<<<<<<<< * # xmax will increase, but we need to reset xmin so that it gets properly detected * if xmin < 0: */ } /* "pyresample/ewa/_ll2cr.pyx":191 * xmin = x_tmp * * if origin_x is None: # <<<<<<<<<<<<<< * # upper-left corner * ox = xmin */ __pyx_t_24 = (__pyx_v_origin_x == Py_None); __pyx_t_25 = (__pyx_t_24 != 0); if (__pyx_t_25) { /* "pyresample/ewa/_ll2cr.pyx":193 * if origin_x is None: * # upper-left corner * ox = xmin # <<<<<<<<<<<<<< * oy = ymax * else: */ __pyx_v_ox = __pyx_v_xmin; /* "pyresample/ewa/_ll2cr.pyx":194 * # upper-left corner * ox = xmin * oy = ymax # <<<<<<<<<<<<<< * else: * ox = origin_x */ __pyx_v_oy = __pyx_v_ymax; /* "pyresample/ewa/_ll2cr.pyx":191 * xmin = x_tmp * * if origin_x is None: # <<<<<<<<<<<<<< * # upper-left corner * ox = xmin */ goto __pyx_L29; } /* "pyresample/ewa/_ll2cr.pyx":196 * oy = ymax * else: * ox = origin_x # <<<<<<<<<<<<<< * oy = origin_y * */ /*else*/ { __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_origin_x); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) __pyx_v_ox = __pyx_t_7; /* "pyresample/ewa/_ll2cr.pyx":197 * else: * ox = origin_x * oy = origin_y # <<<<<<<<<<<<<< * * if width is None: */ __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_origin_y); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) __pyx_v_oy = __pyx_t_7; } __pyx_L29:; /* "pyresample/ewa/_ll2cr.pyx":199 * oy = origin_y * * if width is None: # <<<<<<<<<<<<<< * w = int(abs((xmax - ox) / cell_width)) * h = int(abs((oy - ymin) / cell_height)) */ __pyx_t_25 = (__pyx_v_width == Py_None); __pyx_t_24 = (__pyx_t_25 != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":200 * * if width is None: * w = int(abs((xmax - ox) / cell_width)) # <<<<<<<<<<<<<< * h = int(abs((oy - ymin) / cell_height)) * else: */ __pyx_v_w = ((unsigned int)fabs(((__pyx_v_xmax - __pyx_v_ox) / __pyx_v_cell_width))); /* "pyresample/ewa/_ll2cr.pyx":201 * if width is None: * w = int(abs((xmax - ox) / cell_width)) * h = int(abs((oy - ymin) / cell_height)) # <<<<<<<<<<<<<< * else: * w = width */ __pyx_v_h = ((unsigned int)fabs(((__pyx_v_oy - __pyx_v_ymin) / __pyx_v_cell_height))); /* "pyresample/ewa/_ll2cr.pyx":199 * oy = origin_y * * if width is None: # <<<<<<<<<<<<<< * w = int(abs((xmax - ox) / cell_width)) * h = int(abs((oy - ymin) / cell_height)) */ goto __pyx_L30; } /* "pyresample/ewa/_ll2cr.pyx":203 * h = int(abs((oy - ymin) / cell_height)) * else: * w = width # <<<<<<<<<<<<<< * h = height * */ /*else*/ { __pyx_t_16 = __Pyx_PyInt_As_unsigned_int(__pyx_v_width); if (unlikely((__pyx_t_16 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error) __pyx_v_w = __pyx_t_16; /* "pyresample/ewa/_ll2cr.pyx":204 * else: * w = width * h = height # <<<<<<<<<<<<<< * * for row in range(num_rows): */ __pyx_t_16 = __Pyx_PyInt_As_unsigned_int(__pyx_v_height); if (unlikely((__pyx_t_16 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L1_error) __pyx_v_h = __pyx_t_16; } __pyx_L30:; /* "pyresample/ewa/_ll2cr.pyx":206 * h = height * * for row in range(num_rows): # <<<<<<<<<<<<<< * for col in range(num_cols): * x_tmp = cols_out[row, col] */ __pyx_t_16 = __pyx_v_num_rows; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_row = __pyx_t_17; /* "pyresample/ewa/_ll2cr.pyx":207 * * for row in range(num_rows): * for col in range(num_cols): # <<<<<<<<<<<<<< * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] */ __pyx_t_18 = __pyx_v_num_cols; for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) { __pyx_v_col = __pyx_t_19; /* "pyresample/ewa/_ll2cr.pyx":208 * for row in range(num_rows): * for col in range(num_cols): * x_tmp = cols_out[row, col] # <<<<<<<<<<<<<< * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: */ __pyx_t_30 = __pyx_v_row; __pyx_t_31 = __pyx_v_col; __pyx_v_x_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_30 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_31)) ))); /* "pyresample/ewa/_ll2cr.pyx":209 * for col in range(num_cols): * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] # <<<<<<<<<<<<<< * if x_tmp >= 1e30: * cols_out[row, col] = fill_in */ __pyx_t_32 = __pyx_v_row; __pyx_t_33 = __pyx_v_col; __pyx_v_y_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_32 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_33)) ))); /* "pyresample/ewa/_ll2cr.pyx":210 * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: # <<<<<<<<<<<<<< * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in */ __pyx_t_24 = ((__pyx_v_x_tmp >= 1e30) != 0); if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":211 * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: * cols_out[row, col] = fill_in # <<<<<<<<<<<<<< * rows_out[row, col] = fill_in * continue */ __pyx_t_34 = __pyx_v_row; __pyx_t_35 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_34 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_35)) )) = __pyx_v_fill_in; /* "pyresample/ewa/_ll2cr.pyx":212 * if x_tmp >= 1e30: * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in # <<<<<<<<<<<<<< * continue * */ __pyx_t_36 = __pyx_v_row; __pyx_t_37 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_36 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_37)) )) = __pyx_v_fill_in; /* "pyresample/ewa/_ll2cr.pyx":213 * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in * continue # <<<<<<<<<<<<<< * * x_tmp = (x_tmp - ox) / cell_width */ goto __pyx_L33_continue; /* "pyresample/ewa/_ll2cr.pyx":210 * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: # <<<<<<<<<<<<<< * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in */ } /* "pyresample/ewa/_ll2cr.pyx":215 * continue * * x_tmp = (x_tmp - ox) / cell_width # <<<<<<<<<<<<<< * y_tmp = (y_tmp - oy) / cell_height * if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: */ __pyx_v_x_tmp = ((__pyx_v_x_tmp - __pyx_v_ox) / __pyx_v_cell_width); /* "pyresample/ewa/_ll2cr.pyx":216 * * x_tmp = (x_tmp - ox) / cell_width * y_tmp = (y_tmp - oy) / cell_height # <<<<<<<<<<<<<< * if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: * points_in_grid += 1 */ __pyx_v_y_tmp = ((__pyx_v_y_tmp - __pyx_v_oy) / __pyx_v_cell_height); /* "pyresample/ewa/_ll2cr.pyx":217 * x_tmp = (x_tmp - ox) / cell_width * y_tmp = (y_tmp - oy) / cell_height * if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: # <<<<<<<<<<<<<< * points_in_grid += 1 * cols_out[row, col] = x_tmp */ __pyx_t_25 = ((__pyx_v_x_tmp >= -1.0) != 0); if (__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L37_bool_binop_done; } __pyx_t_25 = ((__pyx_v_x_tmp <= (__pyx_v_w + 1)) != 0); if (__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L37_bool_binop_done; } __pyx_t_25 = ((__pyx_v_y_tmp >= -1.0) != 0); if (__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L37_bool_binop_done; } __pyx_t_25 = ((__pyx_v_y_tmp <= (__pyx_v_h + 1)) != 0); __pyx_t_24 = __pyx_t_25; __pyx_L37_bool_binop_done:; if (__pyx_t_24) { /* "pyresample/ewa/_ll2cr.pyx":218 * y_tmp = (y_tmp - oy) / cell_height * if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: * points_in_grid += 1 # <<<<<<<<<<<<<< * cols_out[row, col] = x_tmp * rows_out[row, col] = y_tmp */ __pyx_v_points_in_grid = (__pyx_v_points_in_grid + 1); /* "pyresample/ewa/_ll2cr.pyx":217 * x_tmp = (x_tmp - ox) / cell_width * y_tmp = (y_tmp - oy) / cell_height * if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: # <<<<<<<<<<<<<< * points_in_grid += 1 * cols_out[row, col] = x_tmp */ } /* "pyresample/ewa/_ll2cr.pyx":219 * if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: * points_in_grid += 1 * cols_out[row, col] = x_tmp # <<<<<<<<<<<<<< * rows_out[row, col] = y_tmp * */ __pyx_t_38 = __pyx_v_row; __pyx_t_39 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_38 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_39)) )) = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":220 * points_in_grid += 1 * cols_out[row, col] = x_tmp * rows_out[row, col] = y_tmp # <<<<<<<<<<<<<< * * # return points_in_grid, x_arr, y_arr */ __pyx_t_40 = __pyx_v_row; __pyx_t_41 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_40 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_41)) )) = __pyx_v_y_tmp; __pyx_L33_continue:; } } /* "pyresample/ewa/_ll2cr.pyx":223 * * # return points_in_grid, x_arr, y_arr * return points_in_grid, lon_arr, lat_arr, ox, oy, w, h # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_points_in_grid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_ox); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_oy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_w); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_42 = __Pyx_PyInt_From_unsigned_int(__pyx_v_h); if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_42); __pyx_t_43 = PyTuple_New(7); if (unlikely(!__pyx_t_43)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_43); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_43, 0, __pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_lon_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_lon_arr)); PyTuple_SET_ITEM(__pyx_t_43, 1, ((PyObject *)__pyx_v_lon_arr)); __Pyx_INCREF(((PyObject *)__pyx_v_lat_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_lat_arr)); PyTuple_SET_ITEM(__pyx_t_43, 2, ((PyObject *)__pyx_v_lat_arr)); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_43, 3, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_43, 4, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_43, 5, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_42); PyTuple_SET_ITEM(__pyx_t_43, 6, __pyx_t_42); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_42 = 0; __pyx_r = __pyx_t_43; __pyx_t_43 = 0; goto __pyx_L0; /* "pyresample/ewa/_ll2cr.pyx":87 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_dynamic(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __Pyx_XDECREF(__pyx_t_42); __Pyx_XDECREF(__pyx_t_43); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lat_arr.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lon_arr.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("pyresample.ewa._ll2cr.ll2cr_dynamic", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lat_arr.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lon_arr.rcbuffer->pybuffer); __pyx_L2:; __Pyx_XDECREF(__pyx_v_p); __Pyx_XDECREF(__pyx_v_projected_tuple); __PYX_XDEC_MEMVIEW(&__pyx_v_rows_out, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_cols_out, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyresample/ewa/_ll2cr.pyx":229 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_static(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ /* Python wrapper */ static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_5ll2cr_static(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_10pyresample_3ewa_6_ll2cr_4ll2cr_static[] = "Project longitude and latitude points to column rows in the specified grid in place\n\n :param lon_arr: Numpy array of longitude floats\n :param lat_arr: Numpy array of latitude floats\n :param fill_in: Fill value for input longitude and latitude arrays and used for output\n :param cell_width: Pixel resolution in the X direction in projection space\n :param cell_height: Pixel resolution in the Y direction in projection space\n :param width: Number of pixels in the X direction in the final output grid\n :param height: Number of pixels in the Y direction in the final output grid\n :param origin_x: Grid X coordinate for the upper-left pixel of the output grid\n :param origin_y: Grid Y coordinate for the upper-left pixel of the output grid\n :returns: tuple(points_in_grid, cols_out, rows_out)\n\n Steps taken in this function:\n\n 1. Convert (lon, lat) points to (X, Y) points in the projection space\n 2. Convert (X, Y) points to (column, row) points in the grid space\n\n Note longitude and latitude arrays are limited to 64-bit floats because\n of limitations in pyproj.\n\n "; static PyMethodDef __pyx_mdef_10pyresample_3ewa_6_ll2cr_5ll2cr_static = {"ll2cr_static", (PyCFunction)__pyx_pw_10pyresample_3ewa_6_ll2cr_5ll2cr_static, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_6_ll2cr_4ll2cr_static}; static PyObject *__pyx_pw_10pyresample_3ewa_6_ll2cr_5ll2cr_static(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 229, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 229, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 229, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 229, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 229, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._ll2cr.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_10pyresample_3ewa_6_ll2cr_4ll2cr_static(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_4ll2cr_static(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; PyTypeObject *__pyx_v_ndarray = 0; PyObject *__pyx_v_numpy = NULL; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_type = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; long __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; Py_ssize_t __pyx_t_14; PyObject *(*__pyx_t_15)(PyObject *); PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *(*__pyx_t_19)(PyObject *); int __pyx_t_20; __Pyx_RefNannySetupContext("ll2cr_static", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_v_kwargs == Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_kwargs, __pyx_t_1); __pyx_t_1 = 0; } { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_numpy = __pyx_t_1; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_numpy, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 229, __pyx_L4_error) __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L11_try_end; __pyx_L4_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_7) { __Pyx_AddTraceback("pyresample.ewa._ll2cr.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 229, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_ndarray, ((PyTypeObject*)Py_None)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; __pyx_L6_except_error:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); __pyx_L11_try_end:; } __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_10 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_3 = ((0 < __pyx_t_10) != 0); if (__pyx_t_3) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_9 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0); __Pyx_INCREF(__pyx_t_9); __pyx_v_arg = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L14; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_lon_arr, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_lon_arr); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_arg = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L14; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_10 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_arguments, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_L14:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_dtype = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L18; } __pyx_t_2 = (__pyx_memoryview_check(__pyx_v_arg) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_arg_base = __pyx_t_8; __pyx_t_8 = 0; __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_dtype = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L19; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L19:; goto __pyx_L18; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L18:; __pyx_v_itemsize = -1L; __pyx_t_3 = (__pyx_v_dtype != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_itemsize = __pyx_t_10; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_Ord(__pyx_t_8); if (unlikely(__pyx_t_11 == (long)(Py_UCS4)-1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_kind = __pyx_t_11; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L22_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = ((((Py_ssize_t)__pyx_t_10) == 2) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L22_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 229, __pyx_L1_error) goto __pyx_L16_break; } break; case 'c': break; case 'O': break; default: break; } } } __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L25_bool_binop_done; } __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L25_bool_binop_done:; if (__pyx_t_2) { __pyx_v_memslice = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg); __pyx_t_2 = (__pyx_v_memslice.memview != 0); if (__pyx_t_2) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 229, __pyx_L1_error) goto __pyx_L16_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 229, __pyx_L1_error) goto __pyx_L16_break; } __pyx_L16_break:; __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_candidates = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_9 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_12), (&__pyx_t_7)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = __pyx_t_9; __pyx_t_9 = 0; while (1) { __pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_12, &__pyx_t_10, &__pyx_t_9, NULL, NULL, __pyx_t_7); if (unlikely(__pyx_t_13 == 0)) break; if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_match_found = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_dest_sig); __Pyx_GIVEREF(__pyx_v_dest_sig); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_dest_sig); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { __pyx_t_14 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_15 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 229, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 229, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 229, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_15(__pyx_t_9); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 229, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 229, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_16 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_16 = PyList_GET_ITEM(sequence, 0); __pyx_t_17 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(__pyx_t_17); #else __pyx_t_16 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_19 = Py_TYPE(__pyx_t_18)->tp_iternext; index = 0; __pyx_t_16 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_16)) goto __pyx_L32_unpacking_failed; __Pyx_GOTREF(__pyx_t_16); index = 1; __pyx_t_17 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L32_unpacking_failed; __Pyx_GOTREF(__pyx_t_17); if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_18), 2) < 0) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_19 = NULL; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; goto __pyx_L33_unpacking_done; __pyx_L32_unpacking_failed:; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_19 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 229, __pyx_L1_error) __pyx_L33_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_src_type, __pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_17); __pyx_t_17 = 0; __pyx_t_2 = (__pyx_v_dst_type != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_1 = PyObject_RichCompare(__pyx_v_src_type, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { __pyx_v_match_found = 1; goto __pyx_L35; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L31_break; } __pyx_L35:; } } __pyx_L31_break:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = (__pyx_v_match_found != 0); if (__pyx_t_3) { __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 229, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = (__pyx_v_candidates != Py_None) && (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_2 = ((!__pyx_t_3) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_12 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_12 > 1) != 0); if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 229, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_18); __Pyx_AddTraceback("pyresample.ewa._ll2cr.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_numpy); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_type); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_0__pyx_pw_10pyresample_3ewa_6_ll2cr_11ll2cr_static(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_10pyresample_3ewa_6_ll2cr_11ll2cr_static = {"__pyx_fuse_0ll2cr_static", (PyCFunction)__pyx_fuse_0__pyx_pw_10pyresample_3ewa_6_ll2cr_11ll2cr_static, METH_VARARGS|METH_KEYWORDS, __pyx_doc_10pyresample_3ewa_6_ll2cr_4ll2cr_static}; static PyObject *__pyx_fuse_0__pyx_pw_10pyresample_3ewa_6_ll2cr_11ll2cr_static(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_lon_arr = 0; PyArrayObject *__pyx_v_lat_arr = 0; __pyx_t_5numpy_float64_t __pyx_v_fill_in; PyObject *__pyx_v_proj4_definition = 0; double __pyx_v_cell_width; double __pyx_v_cell_height; unsigned int __pyx_v_width; unsigned int __pyx_v_height; double __pyx_v_origin_x; double __pyx_v_origin_y; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("ll2cr_static (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lon_arr,&__pyx_n_s_lat_arr,&__pyx_n_s_fill_in,&__pyx_n_s_proj4_definition,&__pyx_n_s_cell_width,&__pyx_n_s_cell_height,&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_origin_x,&__pyx_n_s_origin_y,0}; PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lon_arr)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_lat_arr)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 1); __PYX_ERR(0, 229, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fill_in)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 2); __PYX_ERR(0, 229, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_proj4_definition)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 3); __PYX_ERR(0, 229, __pyx_L3_error) } case 4: if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cell_width)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 4); __PYX_ERR(0, 229, __pyx_L3_error) } case 5: if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cell_height)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 5); __PYX_ERR(0, 229, __pyx_L3_error) } case 6: if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_width)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 6); __PYX_ERR(0, 229, __pyx_L3_error) } case 7: if (likely((values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_height)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 7); __PYX_ERR(0, 229, __pyx_L3_error) } case 8: if (likely((values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_origin_x)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 8); __PYX_ERR(0, 229, __pyx_L3_error) } case 9: if (likely((values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_origin_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, 9); __PYX_ERR(0, 229, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ll2cr_static") < 0)) __PYX_ERR(0, 229, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 10) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[8] = PyTuple_GET_ITEM(__pyx_args, 8); values[9] = PyTuple_GET_ITEM(__pyx_args, 9); } __pyx_v_lon_arr = ((PyArrayObject *)values[0]); __pyx_v_lat_arr = ((PyArrayObject *)values[1]); __pyx_v_fill_in = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_fill_in == (npy_float64)-1) && PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L3_error) __pyx_v_proj4_definition = ((PyObject*)values[3]); __pyx_v_cell_width = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_cell_width == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 231, __pyx_L3_error) __pyx_v_cell_height = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_cell_height == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 231, __pyx_L3_error) __pyx_v_width = __Pyx_PyInt_As_unsigned_int(values[6]); if (unlikely((__pyx_v_width == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 232, __pyx_L3_error) __pyx_v_height = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_height == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 232, __pyx_L3_error) __pyx_v_origin_x = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_origin_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L3_error) __pyx_v_origin_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_origin_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("ll2cr_static", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 229, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyresample.ewa._ll2cr.ll2cr_static", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lon_arr), __pyx_ptype_5numpy_ndarray, 1, "lon_arr", 0))) __PYX_ERR(0, 229, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lat_arr), __pyx_ptype_5numpy_ndarray, 1, "lat_arr", 0))) __PYX_ERR(0, 229, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_proj4_definition), (&PyString_Type), 1, "proj4_definition", 1))) __PYX_ERR(0, 230, __pyx_L1_error) __pyx_r = __pyx_pf_10pyresample_3ewa_6_ll2cr_10ll2cr_static(__pyx_self, __pyx_v_lon_arr, __pyx_v_lat_arr, __pyx_v_fill_in, __pyx_v_proj4_definition, __pyx_v_cell_width, __pyx_v_cell_height, __pyx_v_width, __pyx_v_height, __pyx_v_origin_x, __pyx_v_origin_y); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_10pyresample_3ewa_6_ll2cr_10ll2cr_static(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_lon_arr, PyArrayObject *__pyx_v_lat_arr, __pyx_t_5numpy_float64_t __pyx_v_fill_in, PyObject *__pyx_v_proj4_definition, double __pyx_v_cell_width, double __pyx_v_cell_height, unsigned int __pyx_v_width, unsigned int __pyx_v_height, double __pyx_v_origin_x, double __pyx_v_origin_y) { PyObject *__pyx_v_p = NULL; PyObject *__pyx_v_projected_tuple = 0; __Pyx_memviewslice __pyx_v_rows_out = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cols_out = { 0, 0, { 0 }, { 0 }, { 0 } }; double __pyx_v_proj_circum; unsigned int __pyx_v_row; unsigned int __pyx_v_col; unsigned int __pyx_v_num_rows; unsigned int __pyx_v_num_cols; __pyx_t_5numpy_float64_t __pyx_v_x_tmp; __pyx_t_5numpy_float64_t __pyx_v_y_tmp; unsigned int __pyx_v_points_in_grid; __Pyx_LocalBuf_ND __pyx_pybuffernd_lat_arr; __Pyx_Buffer __pyx_pybuffer_lat_arr; __Pyx_LocalBuf_ND __pyx_pybuffernd_lon_arr; __Pyx_Buffer __pyx_pybuffer_lon_arr; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } }; double __pyx_t_7; unsigned int __pyx_t_8; unsigned int __pyx_t_9; unsigned int __pyx_t_10; unsigned int __pyx_t_11; size_t __pyx_t_12; size_t __pyx_t_13; size_t __pyx_t_14; size_t __pyx_t_15; int __pyx_t_16; size_t __pyx_t_17; size_t __pyx_t_18; size_t __pyx_t_19; size_t __pyx_t_20; int __pyx_t_21; size_t __pyx_t_22; size_t __pyx_t_23; size_t __pyx_t_24; size_t __pyx_t_25; __Pyx_RefNannySetupContext("__pyx_fuse_0ll2cr_static", 0); __pyx_pybuffer_lon_arr.pybuffer.buf = NULL; __pyx_pybuffer_lon_arr.refcount = 0; __pyx_pybuffernd_lon_arr.data = NULL; __pyx_pybuffernd_lon_arr.rcbuffer = &__pyx_pybuffer_lon_arr; __pyx_pybuffer_lat_arr.pybuffer.buf = NULL; __pyx_pybuffer_lat_arr.refcount = 0; __pyx_pybuffernd_lat_arr.data = NULL; __pyx_pybuffernd_lat_arr.rcbuffer = &__pyx_pybuffer_lat_arr; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lon_arr.rcbuffer->pybuffer, (PyObject*)__pyx_v_lon_arr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_pybuffernd_lon_arr.diminfo[0].strides = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lon_arr.diminfo[0].shape = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_lon_arr.diminfo[1].strides = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_lon_arr.diminfo[1].shape = __pyx_pybuffernd_lon_arr.rcbuffer->pybuffer.shape[1]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lat_arr.rcbuffer->pybuffer, (PyObject*)__pyx_v_lat_arr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 229, __pyx_L1_error) } __pyx_pybuffernd_lat_arr.diminfo[0].strides = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lat_arr.diminfo[0].shape = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_lat_arr.diminfo[1].strides = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_lat_arr.diminfo[1].shape = __pyx_pybuffernd_lat_arr.rcbuffer->pybuffer.shape[1]; /* "pyresample/ewa/_ll2cr.pyx":257 * """ * # pure python stuff for now * p = MyProj(proj4_definition) # <<<<<<<<<<<<<< * * # Pyproj currently makes a copy so we don't have to do anything special here */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_MyProj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_proj4_definition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_proj4_definition); __Pyx_GIVEREF(__pyx_v_proj4_definition); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_proj4_definition); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_p = __pyx_t_1; __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":260 * * # Pyproj currently makes a copy so we don't have to do anything special here * cdef tuple projected_tuple = p(lon_arr, lat_arr) # <<<<<<<<<<<<<< * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] */ __Pyx_INCREF(__pyx_v_p); __pyx_t_2 = __pyx_v_p; __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_3 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_lon_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_lon_arr)); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, ((PyObject *)__pyx_v_lon_arr)); __Pyx_INCREF(((PyObject *)__pyx_v_lat_arr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_lat_arr)); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, ((PyObject *)__pyx_v_lat_arr)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 260, __pyx_L1_error) __pyx_v_projected_tuple = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":261 * # Pyproj currently makes a copy so we don't have to do anything special here * cdef tuple projected_tuple = p(lon_arr, lat_arr) * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] # <<<<<<<<<<<<<< * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] * cdef double proj_circum = projection_circumference(p) */ if (unlikely(__pyx_v_projected_tuple == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 261, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(PyTuple_GET_ITEM(__pyx_v_projected_tuple, 1)); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 261, __pyx_L1_error) __pyx_v_rows_out = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* "pyresample/ewa/_ll2cr.pyx":262 * cdef tuple projected_tuple = p(lon_arr, lat_arr) * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] # <<<<<<<<<<<<<< * cdef double proj_circum = projection_circumference(p) * */ if (unlikely(__pyx_v_projected_tuple == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(PyTuple_GET_ITEM(__pyx_v_projected_tuple, 0)); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 262, __pyx_L1_error) __pyx_v_cols_out = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* "pyresample/ewa/_ll2cr.pyx":263 * cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] * cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] * cdef double proj_circum = projection_circumference(p) # <<<<<<<<<<<<<< * * # indexes */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_projection_circumference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_p); __Pyx_GIVEREF(__pyx_v_p); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_p); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_proj_circum = __pyx_t_7; /* "pyresample/ewa/_ll2cr.pyx":269 * cdef unsigned int col * # index bounds * cdef unsigned int num_rows = lon_arr.shape[0] # <<<<<<<<<<<<<< * cdef unsigned int num_cols = lon_arr.shape[1] * cdef cr_dtype x_tmp */ __pyx_v_num_rows = (__pyx_v_lon_arr->dimensions[0]); /* "pyresample/ewa/_ll2cr.pyx":270 * # index bounds * cdef unsigned int num_rows = lon_arr.shape[0] * cdef unsigned int num_cols = lon_arr.shape[1] # <<<<<<<<<<<<<< * cdef cr_dtype x_tmp * cdef cr_dtype y_tmp */ __pyx_v_num_cols = (__pyx_v_lon_arr->dimensions[1]); /* "pyresample/ewa/_ll2cr.pyx":273 * cdef cr_dtype x_tmp * cdef cr_dtype y_tmp * cdef unsigned int points_in_grid = 0 # <<<<<<<<<<<<<< * * for row in range(num_rows): */ __pyx_v_points_in_grid = 0; /* "pyresample/ewa/_ll2cr.pyx":275 * cdef unsigned int points_in_grid = 0 * * for row in range(num_rows): # <<<<<<<<<<<<<< * for col in range(num_cols): * x_tmp = cols_out[row, col] */ __pyx_t_8 = __pyx_v_num_rows; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_row = __pyx_t_9; /* "pyresample/ewa/_ll2cr.pyx":276 * * for row in range(num_rows): * for col in range(num_cols): # <<<<<<<<<<<<<< * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] */ __pyx_t_10 = __pyx_v_num_cols; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { __pyx_v_col = __pyx_t_11; /* "pyresample/ewa/_ll2cr.pyx":277 * for row in range(num_rows): * for col in range(num_cols): * x_tmp = cols_out[row, col] # <<<<<<<<<<<<<< * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: */ __pyx_t_12 = __pyx_v_row; __pyx_t_13 = __pyx_v_col; __pyx_v_x_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_12 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_13)) ))); /* "pyresample/ewa/_ll2cr.pyx":278 * for col in range(num_cols): * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] # <<<<<<<<<<<<<< * if x_tmp >= 1e30: * cols_out[row, col] = fill_in */ __pyx_t_14 = __pyx_v_row; __pyx_t_15 = __pyx_v_col; __pyx_v_y_tmp = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_14 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_15)) ))); /* "pyresample/ewa/_ll2cr.pyx":279 * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: # <<<<<<<<<<<<<< * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in */ __pyx_t_16 = ((__pyx_v_x_tmp >= 1e30) != 0); if (__pyx_t_16) { /* "pyresample/ewa/_ll2cr.pyx":280 * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: * cols_out[row, col] = fill_in # <<<<<<<<<<<<<< * rows_out[row, col] = fill_in * continue */ __pyx_t_17 = __pyx_v_row; __pyx_t_18 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_17 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_18)) )) = __pyx_v_fill_in; /* "pyresample/ewa/_ll2cr.pyx":281 * if x_tmp >= 1e30: * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in # <<<<<<<<<<<<<< * continue * elif proj_circum != 0 and abs(x_tmp - origin_x) >= (0.75 * proj_circum): */ __pyx_t_19 = __pyx_v_row; __pyx_t_20 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_19 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_20)) )) = __pyx_v_fill_in; /* "pyresample/ewa/_ll2cr.pyx":282 * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in * continue # <<<<<<<<<<<<<< * elif proj_circum != 0 and abs(x_tmp - origin_x) >= (0.75 * proj_circum): * # if x is more than 75% around the projection space, it is probably crossing the anti-meridian */ goto __pyx_L5_continue; /* "pyresample/ewa/_ll2cr.pyx":279 * x_tmp = cols_out[row, col] * y_tmp = rows_out[row, col] * if x_tmp >= 1e30: # <<<<<<<<<<<<<< * cols_out[row, col] = fill_in * rows_out[row, col] = fill_in */ } /* "pyresample/ewa/_ll2cr.pyx":283 * rows_out[row, col] = fill_in * continue * elif proj_circum != 0 and abs(x_tmp - origin_x) >= (0.75 * proj_circum): # <<<<<<<<<<<<<< * # if x is more than 75% around the projection space, it is probably crossing the anti-meridian * x_tmp += proj_circum */ __pyx_t_21 = ((__pyx_v_proj_circum != 0.0) != 0); if (__pyx_t_21) { } else { __pyx_t_16 = __pyx_t_21; goto __pyx_L8_bool_binop_done; } __pyx_t_21 = ((fabs((__pyx_v_x_tmp - __pyx_v_origin_x)) >= (0.75 * __pyx_v_proj_circum)) != 0); __pyx_t_16 = __pyx_t_21; __pyx_L8_bool_binop_done:; if (__pyx_t_16) { /* "pyresample/ewa/_ll2cr.pyx":285 * elif proj_circum != 0 and abs(x_tmp - origin_x) >= (0.75 * proj_circum): * # if x is more than 75% around the projection space, it is probably crossing the anti-meridian * x_tmp += proj_circum # <<<<<<<<<<<<<< * * x_tmp = (x_tmp - origin_x) / cell_width */ __pyx_v_x_tmp = (__pyx_v_x_tmp + __pyx_v_proj_circum); /* "pyresample/ewa/_ll2cr.pyx":283 * rows_out[row, col] = fill_in * continue * elif proj_circum != 0 and abs(x_tmp - origin_x) >= (0.75 * proj_circum): # <<<<<<<<<<<<<< * # if x is more than 75% around the projection space, it is probably crossing the anti-meridian * x_tmp += proj_circum */ } /* "pyresample/ewa/_ll2cr.pyx":287 * x_tmp += proj_circum * * x_tmp = (x_tmp - origin_x) / cell_width # <<<<<<<<<<<<<< * y_tmp = (y_tmp - origin_y) / cell_height * if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: */ __pyx_v_x_tmp = ((__pyx_v_x_tmp - __pyx_v_origin_x) / __pyx_v_cell_width); /* "pyresample/ewa/_ll2cr.pyx":288 * * x_tmp = (x_tmp - origin_x) / cell_width * y_tmp = (y_tmp - origin_y) / cell_height # <<<<<<<<<<<<<< * if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: * points_in_grid += 1 */ __pyx_v_y_tmp = ((__pyx_v_y_tmp - __pyx_v_origin_y) / __pyx_v_cell_height); /* "pyresample/ewa/_ll2cr.pyx":289 * x_tmp = (x_tmp - origin_x) / cell_width * y_tmp = (y_tmp - origin_y) / cell_height * if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: # <<<<<<<<<<<<<< * points_in_grid += 1 * cols_out[row, col] = x_tmp */ __pyx_t_21 = ((__pyx_v_x_tmp >= -1.0) != 0); if (__pyx_t_21) { } else { __pyx_t_16 = __pyx_t_21; goto __pyx_L11_bool_binop_done; } __pyx_t_21 = ((__pyx_v_x_tmp <= (__pyx_v_width + 1)) != 0); if (__pyx_t_21) { } else { __pyx_t_16 = __pyx_t_21; goto __pyx_L11_bool_binop_done; } __pyx_t_21 = ((__pyx_v_y_tmp >= -1.0) != 0); if (__pyx_t_21) { } else { __pyx_t_16 = __pyx_t_21; goto __pyx_L11_bool_binop_done; } __pyx_t_21 = ((__pyx_v_y_tmp <= (__pyx_v_height + 1)) != 0); __pyx_t_16 = __pyx_t_21; __pyx_L11_bool_binop_done:; if (__pyx_t_16) { /* "pyresample/ewa/_ll2cr.pyx":290 * y_tmp = (y_tmp - origin_y) / cell_height * if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: * points_in_grid += 1 # <<<<<<<<<<<<<< * cols_out[row, col] = x_tmp * rows_out[row, col] = y_tmp */ __pyx_v_points_in_grid = (__pyx_v_points_in_grid + 1); /* "pyresample/ewa/_ll2cr.pyx":289 * x_tmp = (x_tmp - origin_x) / cell_width * y_tmp = (y_tmp - origin_y) / cell_height * if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: # <<<<<<<<<<<<<< * points_in_grid += 1 * cols_out[row, col] = x_tmp */ } /* "pyresample/ewa/_ll2cr.pyx":291 * if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: * points_in_grid += 1 * cols_out[row, col] = x_tmp # <<<<<<<<<<<<<< * rows_out[row, col] = y_tmp * */ __pyx_t_22 = __pyx_v_row; __pyx_t_23 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_cols_out.data + __pyx_t_22 * __pyx_v_cols_out.strides[0]) )) + __pyx_t_23)) )) = __pyx_v_x_tmp; /* "pyresample/ewa/_ll2cr.pyx":292 * points_in_grid += 1 * cols_out[row, col] = x_tmp * rows_out[row, col] = y_tmp # <<<<<<<<<<<<<< * * # return points_in_grid, x_arr, y_arr */ __pyx_t_24 = __pyx_v_row; __pyx_t_25 = __pyx_v_col; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rows_out.data + __pyx_t_24 * __pyx_v_rows_out.strides[0]) )) + __pyx_t_25)) )) = __pyx_v_y_tmp; __pyx_L5_continue:; } } /* "pyresample/ewa/_ll2cr.pyx":295 * * # return points_in_grid, x_arr, y_arr * return points_in_grid # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_points_in_grid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyresample/ewa/_ll2cr.pyx":229 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_static(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); { PyObject *__pyx_type, *__pyx_value, *__pyx_tb; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lat_arr.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lon_arr.rcbuffer->pybuffer); __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);} __Pyx_AddTraceback("pyresample.ewa._ll2cr.ll2cr_static", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; goto __pyx_L2; __pyx_L0:; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lat_arr.rcbuffer->pybuffer); __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lon_arr.rcbuffer->pybuffer); __pyx_L2:; __Pyx_XDECREF(__pyx_v_p); __Pyx_XDECREF(__pyx_v_projected_tuple); __PYX_XDEC_MEMVIEW(&__pyx_v_rows_out, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_cols_out, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":197 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fullfill the PEP. */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_copy_shape; int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_v_hasfields; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; __Pyx_RefNannySetupContext("__getbuffer__", 0); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":203 * # of flags * * if info == NULL: return # <<<<<<<<<<<<<< * * cdef int copy_shape, i, ndim */ __pyx_t_1 = ((__pyx_v_info == NULL) != 0); if (__pyx_t_1) { __pyx_r = 0; goto __pyx_L0; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":206 * * cdef int copy_shape, i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":207 * cdef int copy_shape, i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":209 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":211 * ndim = PyArray_NDIM(self) * * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * copy_shape = 1 * else: */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":212 * * if sizeof(npy_intp) != sizeof(Py_ssize_t): * copy_shape = 1 # <<<<<<<<<<<<<< * else: * copy_shape = 0 */ __pyx_v_copy_shape = 1; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":211 * ndim = PyArray_NDIM(self) * * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * copy_shape = 1 * else: */ goto __pyx_L4; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":214 * copy_shape = 1 * else: * copy_shape = 0 # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ /*else*/ { __pyx_v_copy_shape = 0; } __pyx_L4:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":216 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":217 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":216 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":218 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 218, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":216 * copy_shape = 0 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":220 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L9_bool_binop_done; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":221 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L9_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":220 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":222 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 222, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":220 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":224 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if copy_shape: */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":225 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if copy_shape: * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":226 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if copy_shape: # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ __pyx_t_1 = (__pyx_v_copy_shape != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":229 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2))); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":230 * # This is allocated as one block, strides first. * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":231 * info.strides = stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":232 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":233 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":226 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if copy_shape: # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ goto __pyx_L11; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":235 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":236 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } __pyx_L11:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":237 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":238 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":239 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":242 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = self.descr * cdef int offset */ __pyx_v_f = NULL; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":243 * cdef int t * cdef char* f = NULL * cdef dtype descr = self.descr # <<<<<<<<<<<<<< * cdef int offset * */ __pyx_t_3 = ((PyObject *)__pyx_v_self->descr); __Pyx_INCREF(__pyx_t_3); __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":246 * cdef int offset * * cdef bint hasfields = PyDataType_HASFIELDS(descr) # <<<<<<<<<<<<<< * * if not hasfields and not copy_shape: */ __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":248 * cdef bint hasfields = PyDataType_HASFIELDS(descr) * * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< * # do not call releasebuffer * info.obj = None */ __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L15_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_copy_shape != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L15_bool_binop_done:; if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":250 * if not hasfields and not copy_shape: * # do not call releasebuffer * info.obj = None # <<<<<<<<<<<<<< * else: * # need to call releasebuffer */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = Py_None; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":248 * cdef bint hasfields = PyDataType_HASFIELDS(descr) * * if not hasfields and not copy_shape: # <<<<<<<<<<<<<< * # do not call releasebuffer * info.obj = None */ goto __pyx_L14; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":253 * else: * # need to call releasebuffer * info.obj = self # <<<<<<<<<<<<<< * * if not hasfields: */ /*else*/ { __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); } __pyx_L14:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":255 * info.obj = self * * if not hasfields: # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":256 * * if not hasfields: * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): */ __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { goto __pyx_L20_next_or; } else { } __pyx_t_2 = (__pyx_v_little_endian != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_L20_next_or:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L19_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":259 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 259, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257 * if not hasfields: * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":260 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ switch (__pyx_v_t) { case NPY_BYTE: __pyx_v_f = ((char *)"b"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":261 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ case NPY_UBYTE: __pyx_v_f = ((char *)"B"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":262 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ case NPY_SHORT: __pyx_v_f = ((char *)"h"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":263 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ case NPY_USHORT: __pyx_v_f = ((char *)"H"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":264 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ case NPY_INT: __pyx_v_f = ((char *)"i"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":265 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ case NPY_UINT: __pyx_v_f = ((char *)"I"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":266 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ case NPY_LONG: __pyx_v_f = ((char *)"l"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":267 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ case NPY_ULONG: __pyx_v_f = ((char *)"L"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":268 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ case NPY_LONGLONG: __pyx_v_f = ((char *)"q"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":269 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ case NPY_ULONGLONG: __pyx_v_f = ((char *)"Q"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ case NPY_FLOAT: __pyx_v_f = ((char *)"f"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":271 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ case NPY_DOUBLE: __pyx_v_f = ((char *)"d"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ case NPY_LONGDOUBLE: __pyx_v_f = ((char *)"g"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":273 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ case NPY_CFLOAT: __pyx_v_f = ((char *)"Zf"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ case NPY_CDOUBLE: __pyx_v_f = ((char *)"Zd"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":275 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ case NPY_CLONGDOUBLE: __pyx_v_f = ((char *)"Zg"); break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ case NPY_OBJECT: __pyx_v_f = ((char *)"O"); break; default: /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":278 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(1, 278, __pyx_L1_error) break; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":279 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = stdlib.malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":255 * info.obj = self * * if not hasfields: # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":282 * return * else: * info.format = stdlib.malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 */ /*else*/ { __pyx_v_info->format = ((char *)malloc(0xFF)); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":283 * else: * info.format = stdlib.malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":284 * info.format = stdlib.malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":285 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< * info.format + _buffer_format_string_len, * &offset) */ __pyx_t_7 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_7 == NULL)) __PYX_ERR(1, 285, __pyx_L1_error) __pyx_v_f = __pyx_t_7; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":288 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = '\x00'; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":197 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fullfill the PEP. */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * stdlib.free(info.format) */ /* Python wrapper */ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":292 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * stdlib.free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * stdlib.free(info.strides) */ free(__pyx_v_info->format); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * if PyArray_HASFIELDS(self): * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * stdlib.free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":294 * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * stdlib.free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ free(__pyx_v_info->strides); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * if PyArray_HASFIELDS(self): * stdlib.free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * stdlib.free(info.strides) * # info.shape was stored after info.strides in the same block */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * stdlib.free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":770 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":771 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":770 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":773 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":774 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":773 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":777 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":780 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":782 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":783 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":782 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":790 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":791 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":794 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 794, __pyx_L1_error) } __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 794, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":795 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 795, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 795, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":796 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 796, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 796, __pyx_L1_error) } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":798 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":799 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 799, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":798 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); if (!__pyx_t_7) { goto __pyx_L8_next_or; } else { } __pyx_t_7 = (__pyx_v_little_endian != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_L8_next_or:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":802 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":803 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 803, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":813 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 813, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":814 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 0x78; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":815 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":816 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":818 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":820 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (__pyx_t_6) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":823 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 823, __pyx_L1_error) /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":826 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 826, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":828 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":829 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":831 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":832 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 832, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":834 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":835 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":838 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 838, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":839 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x66; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":840 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x64; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":841 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x67; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":844 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ /*else*/ { __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 844, __pyx_L1_error) } __pyx_L15:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":845 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":820 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ goto __pyx_L13; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":849 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ /*else*/ { __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == NULL)) __PYX_ERR(1, 849, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":794 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":850 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":966 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * cdef PyObject* baseptr * if base is None: */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { PyObject *__pyx_v_baseptr; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; __Pyx_RefNannySetupContext("set_array_base", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":968 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< * baseptr = NULL * else: */ __pyx_t_1 = (__pyx_v_base == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":969 * cdef PyObject* baseptr * if base is None: * baseptr = NULL # <<<<<<<<<<<<<< * else: * Py_INCREF(base) # important to do this before decref below! */ __pyx_v_baseptr = NULL; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":968 * cdef inline void set_array_base(ndarray arr, object base): * cdef PyObject* baseptr * if base is None: # <<<<<<<<<<<<<< * baseptr = NULL * else: */ goto __pyx_L3; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":971 * baseptr = NULL * else: * Py_INCREF(base) # important to do this before decref below! # <<<<<<<<<<<<<< * baseptr = base * Py_XDECREF(arr.base) */ /*else*/ { Py_INCREF(__pyx_v_base); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":972 * else: * Py_INCREF(base) # important to do this before decref below! * baseptr = base # <<<<<<<<<<<<<< * Py_XDECREF(arr.base) * arr.base = baseptr */ __pyx_v_baseptr = ((PyObject *)__pyx_v_base); } __pyx_L3:; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":973 * Py_INCREF(base) # important to do this before decref below! * baseptr = base * Py_XDECREF(arr.base) # <<<<<<<<<<<<<< * arr.base = baseptr * */ Py_XDECREF(__pyx_v_arr->base); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":974 * baseptr = base * Py_XDECREF(arr.base) * arr.base = baseptr # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ __pyx_v_arr->base = __pyx_v_baseptr; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":966 * * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * cdef PyObject* baseptr * if base is None: */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * if arr.base is NULL: * return None */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< * return None * else: */ __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0); if (__pyx_t_1) { /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":978 * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: * return None # <<<<<<<<<<<<<< * else: * return arr.base */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":977 * * cdef inline object get_array_base(ndarray arr): * if arr.base is NULL: # <<<<<<<<<<<<<< * return None * else: */ } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":980 * return None * else: * return arr.base # <<<<<<<<<<<<<< */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_arr->base)); __pyx_r = ((PyObject *)__pyx_v_arr->base); goto __pyx_L0; } /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976 * arr.base = baseptr * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * if arr.base is NULL: * return None */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":120 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* Python wrapper */ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_shape = 0; Py_ssize_t __pyx_v_itemsize; PyObject *__pyx_v_format = 0; PyObject *__pyx_v_mode = 0; int __pyx_v_allocate_buffer; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; PyObject* values[5] = {0,0,0,0,0}; values[3] = ((PyObject *)__pyx_n_s_c); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 120, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 120, __pyx_L3_error) } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mode); if (value) { values[3] = value; kw_args--; } } case 4: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_allocate_buffer); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 120, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_shape = ((PyObject*)values[0]); __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 120, __pyx_L3_error) __pyx_v_format = values[2]; __pyx_v_mode = values[3]; if (values[4]) { __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 121, __pyx_L3_error) } else { /* "View.MemoryView":121 * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< * * cdef int idx */ __pyx_v_allocate_buffer = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 120, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(2, 120, __pyx_L1_error) if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(2, 120, __pyx_L1_error) } __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); /* "View.MemoryView":120 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { int __pyx_v_idx; Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_dim; PyObject **__pyx_v_p; char __pyx_v_order; int __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; int __pyx_t_7; Py_ssize_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_RefNannySetupContext("__cinit__", 0); __Pyx_INCREF(__pyx_v_format); /* "View.MemoryView":127 * cdef PyObject **p * * self.ndim = len(shape) # <<<<<<<<<<<<<< * self.itemsize = itemsize * */ if (unlikely(__pyx_v_shape == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 127, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(2, 127, __pyx_L1_error) __pyx_v_self->ndim = ((int)__pyx_t_1); /* "View.MemoryView":128 * * self.ndim = len(shape) * self.itemsize = itemsize # <<<<<<<<<<<<<< * * if not self.ndim: */ __pyx_v_self->itemsize = __pyx_v_itemsize; /* "View.MemoryView":130 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":131 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 131, __pyx_L1_error) /* "View.MemoryView":130 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ } /* "View.MemoryView":133 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":134 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 134, __pyx_L1_error) /* "View.MemoryView":133 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ } /* "View.MemoryView":136 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ __pyx_t_2 = PyBytes_Check(__pyx_v_format); __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":137 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":136 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ } /* "View.MemoryView":138 * if not isinstance(format, bytes): * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< * self.format = self._format * */ if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 138, __pyx_L1_error) __pyx_t_5 = __pyx_v_format; __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_self->_format); __Pyx_DECREF(__pyx_v_self->_format); __pyx_v_self->_format = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":139 * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string * self.format = self._format # <<<<<<<<<<<<<< * * */ __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_self->_format); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(2, 139, __pyx_L1_error) __pyx_v_self->format = __pyx_t_6; /* "View.MemoryView":142 * * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< * self._strides = self._shape + self.ndim * */ __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); /* "View.MemoryView":143 * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< * * if not self._shape: */ __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); /* "View.MemoryView":145 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":146 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 146, __pyx_L1_error) /* "View.MemoryView":145 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ } /* "View.MemoryView":149 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ __pyx_t_7 = 0; __pyx_t_5 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_5); __pyx_t_1 = 0; for (;;) { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(2, 149, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_dim = __pyx_t_8; __pyx_v_idx = __pyx_t_7; __pyx_t_7 = (__pyx_t_7 + 1); /* "View.MemoryView":150 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); if (__pyx_t_4) { /* "View.MemoryView":151 * for idx, dim in enumerate(shape): * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< * self._shape[idx] = dim * */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9); __pyx_t_3 = 0; __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(2, 151, __pyx_L1_error) /* "View.MemoryView":150 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ } /* "View.MemoryView":152 * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim # <<<<<<<<<<<<<< * * cdef char order */ (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; /* "View.MemoryView":149 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":155 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 155, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":156 * cdef char order * if mode == 'fortran': * order = b'F' # <<<<<<<<<<<<<< * self.mode = u'fortran' * elif mode == 'c': */ __pyx_v_order = 'F'; /* "View.MemoryView":157 * if mode == 'fortran': * order = b'F' * self.mode = u'fortran' # <<<<<<<<<<<<<< * elif mode == 'c': * order = b'C' */ __Pyx_INCREF(__pyx_n_u_fortran); __Pyx_GIVEREF(__pyx_n_u_fortran); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_fortran; /* "View.MemoryView":155 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ goto __pyx_L10; } /* "View.MemoryView":158 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 158, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":159 * self.mode = u'fortran' * elif mode == 'c': * order = b'C' # <<<<<<<<<<<<<< * self.mode = u'c' * else: */ __pyx_v_order = 'C'; /* "View.MemoryView":160 * elif mode == 'c': * order = b'C' * self.mode = u'c' # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) */ __Pyx_INCREF(__pyx_n_u_c); __Pyx_GIVEREF(__pyx_n_u_c); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_c; /* "View.MemoryView":158 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ goto __pyx_L10; } /* "View.MemoryView":162 * self.mode = u'c' * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< * * self.len = fill_contig_strides_array(self._shape, self._strides, */ /*else*/ { __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 162, __pyx_L1_error) } __pyx_L10:; /* "View.MemoryView":164 * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) * * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< * itemsize, self.ndim, order) * */ __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); /* "View.MemoryView":167 * itemsize, self.ndim, order) * * self.free_data = allocate_buffer # <<<<<<<<<<<<<< * self.dtype_is_object = format == b'O' * if allocate_buffer: */ __pyx_v_self->free_data = __pyx_v_allocate_buffer; /* "View.MemoryView":168 * * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< * if allocate_buffer: * */ __pyx_t_5 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 168, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_self->dtype_is_object = __pyx_t_4; /* "View.MemoryView":169 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ __pyx_t_4 = (__pyx_v_allocate_buffer != 0); if (__pyx_t_4) { /* "View.MemoryView":172 * * * self.data = malloc(self.len) # <<<<<<<<<<<<<< * if not self.data: * raise MemoryError("unable to allocate array data.") */ __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); /* "View.MemoryView":173 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":174 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 174, __pyx_L1_error) /* "View.MemoryView":173 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ } /* "View.MemoryView":176 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_4) { /* "View.MemoryView":177 * * if self.dtype_is_object: * p = self.data # <<<<<<<<<<<<<< * for i in range(self.len / itemsize): * p[i] = Py_None */ __pyx_v_p = ((PyObject **)__pyx_v_self->data); /* "View.MemoryView":178 * if self.dtype_is_object: * p = self.data * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< * p[i] = Py_None * Py_INCREF(Py_None) */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 178, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 178, __pyx_L1_error) } __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_1; __pyx_t_8+=1) { __pyx_v_i = __pyx_t_8; /* "View.MemoryView":179 * p = self.data * for i in range(self.len / itemsize): * p[i] = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ (__pyx_v_p[__pyx_v_i]) = Py_None; /* "View.MemoryView":180 * for i in range(self.len / itemsize): * p[i] = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * @cname('getbuffer') */ Py_INCREF(Py_None); } /* "View.MemoryView":176 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ } /* "View.MemoryView":169 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":120 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_format); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":183 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_bufmode; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; Py_ssize_t *__pyx_t_7; __Pyx_RefNannySetupContext("__getbuffer__", 0); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "View.MemoryView":184 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 # <<<<<<<<<<<<<< * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = -1; /* "View.MemoryView":185 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 185, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":186 * cdef int bufmode = -1 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":185 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ goto __pyx_L3; } /* "View.MemoryView":187 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 187, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":188 * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") */ __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":187 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ } __pyx_L3:; /* "View.MemoryView":189 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":190 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 190, __pyx_L1_error) /* "View.MemoryView":189 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ } /* "View.MemoryView":191 * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data # <<<<<<<<<<<<<< * info.len = self.len * info.ndim = self.ndim */ __pyx_t_4 = __pyx_v_self->data; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":192 * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data * info.len = self.len # <<<<<<<<<<<<<< * info.ndim = self.ndim * info.shape = self._shape */ __pyx_t_5 = __pyx_v_self->len; __pyx_v_info->len = __pyx_t_5; /* "View.MemoryView":193 * info.buf = self.data * info.len = self.len * info.ndim = self.ndim # <<<<<<<<<<<<<< * info.shape = self._shape * info.strides = self._strides */ __pyx_t_6 = __pyx_v_self->ndim; __pyx_v_info->ndim = __pyx_t_6; /* "View.MemoryView":194 * info.len = self.len * info.ndim = self.ndim * info.shape = self._shape # <<<<<<<<<<<<<< * info.strides = self._strides * info.suboffsets = NULL */ __pyx_t_7 = __pyx_v_self->_shape; __pyx_v_info->shape = __pyx_t_7; /* "View.MemoryView":195 * info.ndim = self.ndim * info.shape = self._shape * info.strides = self._strides # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = self.itemsize */ __pyx_t_7 = __pyx_v_self->_strides; __pyx_v_info->strides = __pyx_t_7; /* "View.MemoryView":196 * info.shape = self._shape * info.strides = self._strides * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = self.itemsize * info.readonly = 0 */ __pyx_v_info->suboffsets = NULL; /* "View.MemoryView":197 * info.strides = self._strides * info.suboffsets = NULL * info.itemsize = self.itemsize # <<<<<<<<<<<<<< * info.readonly = 0 * */ __pyx_t_5 = __pyx_v_self->itemsize; __pyx_v_info->itemsize = __pyx_t_5; /* "View.MemoryView":198 * info.suboffsets = NULL * info.itemsize = self.itemsize * info.readonly = 0 # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ __pyx_v_info->readonly = 0; /* "View.MemoryView":200 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":201 * * if flags & PyBUF_FORMAT: * info.format = self.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_4 = __pyx_v_self->format; __pyx_v_info->format = __pyx_t_4; /* "View.MemoryView":200 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ goto __pyx_L5; } /* "View.MemoryView":203 * info.format = self.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.obj = self */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L5:; /* "View.MemoryView":205 * info.format = NULL * * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":183 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":209 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* Python wrapper */ static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":210 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":211 * def __dealloc__(array self): * if self.callback_free_data != NULL: * self.callback_free_data(self.data) # <<<<<<<<<<<<<< * elif self.free_data: * if self.dtype_is_object: */ __pyx_v_self->callback_free_data(__pyx_v_self->data); /* "View.MemoryView":210 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ goto __pyx_L3; } /* "View.MemoryView":212 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ __pyx_t_1 = (__pyx_v_self->free_data != 0); if (__pyx_t_1) { /* "View.MemoryView":213 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":214 * elif self.free_data: * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< * self._strides, self.ndim, False) * free(self.data) */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); /* "View.MemoryView":213 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ } /* "View.MemoryView":216 * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) * free(self.data) # <<<<<<<<<<<<<< * PyObject_Free(self._shape) * */ free(__pyx_v_self->data); /* "View.MemoryView":212 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ } __pyx_L3:; /* "View.MemoryView":217 * self._strides, self.ndim, False) * free(self.data) * PyObject_Free(self._shape) # <<<<<<<<<<<<<< * * @property */ PyObject_Free(__pyx_v_self->_shape); /* "View.MemoryView":209 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":220 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":221 * @property * def memview(self): * return self.get_memview() # <<<<<<<<<<<<<< * * @cname('get_memview') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":220 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":224 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_memview", 0); /* "View.MemoryView":225 * @cname('get_memview') * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< * return memoryview(self, flags, self.dtype_is_object) * */ __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); /* "View.MemoryView":226 * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":224 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":229 * * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* Python wrapper */ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "View.MemoryView":230 * * def __getattr__(self, attr): * return getattr(self.memview, attr) # <<<<<<<<<<<<<< * * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":229 * * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":232 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* Python wrapper */ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":233 * * def __getitem__(self, item): * return self.memview[item] # <<<<<<<<<<<<<< * * def __setitem__(self, item, value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":232 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":235 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* Python wrapper */ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); /* "View.MemoryView":236 * * def __setitem__(self, item, value): * self.memview[item] = value # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":235 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":240 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { struct __pyx_array_obj *__pyx_v_result = 0; struct __pyx_array_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("array_cwrapper", 0); /* "View.MemoryView":244 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":245 * * if buf == NULL: * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":244 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ goto __pyx_L3; } /* "View.MemoryView":247 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ /*else*/ { __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; /* "View.MemoryView":248 * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) # <<<<<<<<<<<<<< * result.data = buf * */ __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 248, __pyx_L1_error) /* "View.MemoryView":247 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":249 * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) * result.data = buf # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->data = __pyx_v_buf; } __pyx_L3:; /* "View.MemoryView":251 * result.data = buf * * return result # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":240 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":277 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* Python wrapper */ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 277, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_name = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 277, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "View.MemoryView":278 * cdef object name * def __init__(self, name): * self.name = name # <<<<<<<<<<<<<< * def __repr__(self): * return self.name */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; /* "View.MemoryView":277 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":279 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* Python wrapper */ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":280 * self.name = name * def __repr__(self): * return self.name # <<<<<<<<<<<<<< * * cdef generic = Enum("") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* "View.MemoryView":279 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":294 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { Py_intptr_t __pyx_v_aligned_p; size_t __pyx_v_offset; void *__pyx_r; int __pyx_t_1; /* "View.MemoryView":296 * cdef void *align_pointer(void *memory, size_t alignment) nogil: * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< * cdef size_t offset * */ __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); /* "View.MemoryView":300 * * with cython.cdivision(True): * offset = aligned_p % alignment # <<<<<<<<<<<<<< * * if offset > 0: */ __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); /* "View.MemoryView":302 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ __pyx_t_1 = ((__pyx_v_offset > 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":303 * * if offset > 0: * aligned_p += alignment - offset # <<<<<<<<<<<<<< * * return aligned_p */ __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); /* "View.MemoryView":302 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ } /* "View.MemoryView":305 * aligned_p += alignment - offset * * return aligned_p # <<<<<<<<<<<<<< * * */ __pyx_r = ((void *)__pyx_v_aligned_p); goto __pyx_L0; /* "View.MemoryView":294 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":341 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* Python wrapper */ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_obj = 0; int __pyx_v_flags; int __pyx_v_dtype_is_object; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 341, __pyx_L3_error) } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_dtype_is_object); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 341, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_obj = values[0]; __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 341, __pyx_L3_error) if (values[2]) { __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 341, __pyx_L3_error) } else { __pyx_v_dtype_is_object = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 341, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("__cinit__", 0); /* "View.MemoryView":342 * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj # <<<<<<<<<<<<<< * self.flags = flags * if type(self) is memoryview or obj is not None: */ __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); __Pyx_GOTREF(__pyx_v_self->obj); __Pyx_DECREF(__pyx_v_self->obj); __pyx_v_self->obj = __pyx_v_obj; /* "View.MemoryView":343 * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj * self.flags = flags # <<<<<<<<<<<<<< * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) */ __pyx_v_self->flags = __pyx_v_flags; /* "View.MemoryView":344 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_obj != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":345 * self.flags = flags * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None */ __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 345, __pyx_L1_error) /* "View.MemoryView":346 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":347 * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; /* "View.MemoryView":348 * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * global __pyx_memoryview_thread_locks_used */ Py_INCREF(Py_None); /* "View.MemoryView":346 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ } /* "View.MemoryView":344 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ } /* "View.MemoryView":351 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); if (__pyx_t_1) { /* "View.MemoryView":352 * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: */ __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); /* "View.MemoryView":353 * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< * if self.lock is NULL: * self.lock = PyThread_allocate_lock() */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); /* "View.MemoryView":351 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ } /* "View.MemoryView":354 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":355 * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< * if self.lock is NULL: * raise MemoryError */ __pyx_v_self->lock = PyThread_allocate_lock(); /* "View.MemoryView":356 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":357 * self.lock = PyThread_allocate_lock() * if self.lock is NULL: * raise MemoryError # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ PyErr_NoMemory(); __PYX_ERR(2, 357, __pyx_L1_error) /* "View.MemoryView":356 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ } /* "View.MemoryView":354 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ } /* "View.MemoryView":359 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":360 * * if flags & PyBUF_FORMAT: * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< * else: * self.dtype_is_object = dtype_is_object */ __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_self->dtype_is_object = __pyx_t_1; /* "View.MemoryView":359 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ goto __pyx_L10; } /* "View.MemoryView":362 * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( */ /*else*/ { __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; } __pyx_L10:; /* "View.MemoryView":364 * self.dtype_is_object = dtype_is_object * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL */ __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); /* "View.MemoryView":366 * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL # <<<<<<<<<<<<<< * * def __dealloc__(memoryview self): */ __pyx_v_self->typeinfo = NULL; /* "View.MemoryView":341 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":368 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* Python wrapper */ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { int __pyx_v_i; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; PyThread_type_lock __pyx_t_5; PyThread_type_lock __pyx_t_6; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":369 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * */ __pyx_t_1 = (__pyx_v_self->obj != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":370 * def __dealloc__(memoryview self): * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< * * cdef int i */ __Pyx_ReleaseBuffer((&__pyx_v_self->view)); /* "View.MemoryView":369 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * */ } /* "View.MemoryView":374 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":375 * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 */ __pyx_t_3 = __pyx_memoryview_thread_locks_used; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":376 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); if (__pyx_t_2) { /* "View.MemoryView":377 * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); /* "View.MemoryView":378 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); if (__pyx_t_2) { /* "View.MemoryView":380 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< * break * else: */ __pyx_t_5 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_v_i]); /* "View.MemoryView":379 * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break */ (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_5; (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_6; /* "View.MemoryView":378 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ } /* "View.MemoryView":381 * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break # <<<<<<<<<<<<<< * else: * PyThread_free_lock(self.lock) */ goto __pyx_L6_break; /* "View.MemoryView":376 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ } } /*else*/ { /* "View.MemoryView":383 * break * else: * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< * * cdef char *get_item_pointer(memoryview self, object index) except NULL: */ PyThread_free_lock(__pyx_v_self->lock); } __pyx_L6_break:; /* "View.MemoryView":374 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ } /* "View.MemoryView":368 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":385 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { Py_ssize_t __pyx_v_dim; char *__pyx_v_itemp; PyObject *__pyx_v_idx = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; Py_ssize_t __pyx_t_6; char *__pyx_t_7; __Pyx_RefNannySetupContext("get_item_pointer", 0); /* "View.MemoryView":387 * cdef char *get_item_pointer(memoryview self, object index) except NULL: * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< * * for dim, idx in enumerate(index): */ __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); /* "View.MemoryView":389 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 389, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 389, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 389, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 389, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_1; __pyx_t_1 = (__pyx_t_1 + 1); /* "View.MemoryView":390 * * for dim, idx in enumerate(index): * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< * * return itemp */ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 390, __pyx_L1_error) __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == NULL)) __PYX_ERR(2, 390, __pyx_L1_error) __pyx_v_itemp = __pyx_t_7; /* "View.MemoryView":389 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":392 * itemp = pybuffer_index(&self.view, itemp, idx, dim) * * return itemp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_itemp; goto __pyx_L0; /* "View.MemoryView":385 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_idx); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":395 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* Python wrapper */ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_indices = NULL; char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":396 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":397 * def __getitem__(memoryview self, object index): * if index is Ellipsis: * return self # <<<<<<<<<<<<<< * * have_slices, indices = _unellipsify(index, self.view.ndim) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; /* "View.MemoryView":396 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ } /* "View.MemoryView":399 * return self * * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * cdef char *itemp */ __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 399, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 399, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indices = __pyx_t_5; __pyx_t_5 = 0; /* "View.MemoryView":402 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 402, __pyx_L1_error) if (__pyx_t_2) { /* "View.MemoryView":403 * cdef char *itemp * if have_slices: * return memview_slice(self, indices) # <<<<<<<<<<<<<< * else: * itemp = self.get_item_pointer(indices) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":402 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ } /* "View.MemoryView":405 * return memview_slice(self, indices) * else: * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< * return self.convert_item_to_object(itemp) * */ /*else*/ { __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == NULL)) __PYX_ERR(2, 405, __pyx_L1_error) __pyx_v_itemp = __pyx_t_6; /* "View.MemoryView":406 * else: * itemp = self.get_item_pointer(indices) * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< * * def __setitem__(memoryview self, object index, object value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":395 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_indices); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":408 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * have_slices, index = _unellipsify(index, self.view.ndim) * */ /* Python wrapper */ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_obj = NULL; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_index); /* "View.MemoryView":409 * * def __setitem__(memoryview self, object index, object value): * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * if have_slices: */ __pyx_t_1 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 409, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 409, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":411 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 411, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":412 * * if have_slices: * obj = self.is_slice(value) # <<<<<<<<<<<<<< * if obj: * self.setitem_slice_assignment(self[index], obj) */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_obj = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":413 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 413, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":414 * obj = self.is_slice(value) * if obj: * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< * else: * self.setitem_slice_assign_scalar(self[index], value) */ __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_1, __pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":413 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ goto __pyx_L4; } /* "View.MemoryView":416 * self.setitem_slice_assignment(self[index], obj) * else: * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< * else: * self.setitem_indexed(index, value) */ /*else*/ { __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 416, __pyx_L1_error) __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_3), __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L4:; /* "View.MemoryView":411 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ goto __pyx_L3; } /* "View.MemoryView":418 * self.setitem_slice_assign_scalar(self[index], value) * else: * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< * * cdef is_slice(self, obj): */ /*else*/ { __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L3:; /* "View.MemoryView":408 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * have_slices, index = _unellipsify(index, self.view.ndim) * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_obj); __Pyx_XDECREF(__pyx_v_index); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":420 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; __Pyx_RefNannySetupContext("is_slice", 0); __Pyx_INCREF(__pyx_v_obj); /* "View.MemoryView":421 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":422 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "View.MemoryView":423 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_self->flags | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":424 * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) # <<<<<<<<<<<<<< * except TypeError: * return None */ __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 424, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); /* "View.MemoryView":423 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":422 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L11_try_end; __pyx_L4_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":425 * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) * except TypeError: # <<<<<<<<<<<<<< * return None * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_9) { __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 425, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":426 * self.dtype_is_object) * except TypeError: * return None # <<<<<<<<<<<<<< * * return obj */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L7_except_return; } goto __pyx_L6_except_error; __pyx_L6_except_error:; /* "View.MemoryView":422 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L7_except_return:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L0; __pyx_L11_try_end:; } /* "View.MemoryView":421 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags|PyBUF_ANY_CONTIGUOUS, */ } /* "View.MemoryView":428 * return None * * return obj # <<<<<<<<<<<<<< * * cdef setitem_slice_assignment(self, dst, src): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_obj); __pyx_r = __pyx_v_obj; goto __pyx_L0; /* "View.MemoryView":420 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_obj); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":430 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { __Pyx_memviewslice __pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_src_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); /* "View.MemoryView":434 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 434, __pyx_L1_error) /* "View.MemoryView":435 * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< * src.ndim, dst.ndim, self.dtype_is_object) * */ if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 435, __pyx_L1_error) /* "View.MemoryView":436 * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":434 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 434, __pyx_L1_error) /* "View.MemoryView":430 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":438 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { int __pyx_v_array[0x80]; void *__pyx_v_tmp; void *__pyx_v_item; __Pyx_memviewslice *__pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_tmp_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); /* "View.MemoryView":440 * cdef setitem_slice_assign_scalar(self, memoryview dst, value): * cdef int array[128] * cdef void *tmp = NULL # <<<<<<<<<<<<<< * cdef void *item * */ __pyx_v_tmp = NULL; /* "View.MemoryView":445 * cdef __Pyx_memviewslice *dst_slice * cdef __Pyx_memviewslice tmp_slice * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< * * if self.view.itemsize > sizeof(array): */ __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); /* "View.MemoryView":447 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); if (__pyx_t_1) { /* "View.MemoryView":448 * * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< * if tmp == NULL: * raise MemoryError */ __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); /* "View.MemoryView":449 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":450 * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: * raise MemoryError # <<<<<<<<<<<<<< * item = tmp * else: */ PyErr_NoMemory(); __PYX_ERR(2, 450, __pyx_L1_error) /* "View.MemoryView":449 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ } /* "View.MemoryView":451 * if tmp == NULL: * raise MemoryError * item = tmp # <<<<<<<<<<<<<< * else: * item = array */ __pyx_v_item = __pyx_v_tmp; /* "View.MemoryView":447 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ goto __pyx_L3; } /* "View.MemoryView":453 * item = tmp * else: * item = array # <<<<<<<<<<<<<< * * try: */ /*else*/ { __pyx_v_item = ((void *)__pyx_v_array); } __pyx_L3:; /* "View.MemoryView":455 * item = array * * try: # <<<<<<<<<<<<<< * if self.dtype_is_object: * ( item)[0] = value */ /*try:*/ { /* "View.MemoryView":456 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":457 * try: * if self.dtype_is_object: * ( item)[0] = value # <<<<<<<<<<<<<< * else: * self.assign_item_from_object( item, value) */ (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); /* "View.MemoryView":456 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ goto __pyx_L8; } /* "View.MemoryView":459 * ( item)[0] = value * else: * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 459, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L8:; /* "View.MemoryView":463 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":464 * * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, * item, self.dtype_is_object) */ __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 464, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":463 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ } /* "View.MemoryView":465 * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< * item, self.dtype_is_object) * finally: */ __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); } /* "View.MemoryView":468 * item, self.dtype_is_object) * finally: * PyMem_Free(tmp) # <<<<<<<<<<<<<< * * cdef setitem_indexed(self, index, value): */ /*finally:*/ { /*normal exit:*/{ PyMem_Free(__pyx_v_tmp); goto __pyx_L7; } /*exception exit:*/{ __Pyx_PyThreadState_declare __pyx_L6_error:; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { PyMem_Free(__pyx_v_tmp); } __Pyx_PyThreadState_assign if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L7:; } /* "View.MemoryView":438 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":470 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("setitem_indexed", 0); /* "View.MemoryView":471 * * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< * self.assign_item_from_object(itemp, value) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == NULL)) __PYX_ERR(2, 471, __pyx_L1_error) __pyx_v_itemp = __pyx_t_1; /* "View.MemoryView":472 * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":470 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":474 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_v_struct = NULL; PyObject *__pyx_v_bytesitem = 0; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; int __pyx_t_11; int __pyx_t_12; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":477 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef bytes bytesitem * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":480 * cdef bytes bytesitem * * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< * try: * result = struct.unpack(self.view.format, bytesitem) */ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":481 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "View.MemoryView":482 * bytesitem = itemp[:self.view.itemsize] * try: * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< * except struct.error: * raise ValueError("Unable to convert item to object") */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_bytesitem); __Pyx_GIVEREF(__pyx_v_bytesitem); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":481 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ } /* "View.MemoryView":486 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ /*else:*/ { __pyx_t_10 = strlen(__pyx_v_self->view.format); __pyx_t_11 = ((__pyx_t_10 == 1) != 0); if (__pyx_t_11) { /* "View.MemoryView":487 * else: * if len(self.view.format) == 1: * return result[0] # <<<<<<<<<<<<<< * return result * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 487, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6_except_return; /* "View.MemoryView":486 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ } /* "View.MemoryView":488 * if len(self.view.format) == 1: * return result[0] * return result # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L6_except_return; } __pyx_L3_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":483 * try: * result = struct.unpack(self.view.format, bytesitem) * except struct.error: # <<<<<<<<<<<<<< * raise ValueError("Unable to convert item to object") * else: */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(2, 483, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_9); /* "View.MemoryView":484 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 484, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(2, 484, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "View.MemoryView":481 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } /* "View.MemoryView":474 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesitem); __Pyx_XDECREF(__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":490 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_v_struct = NULL; char __pyx_v_c; PyObject *__pyx_v_bytesvalue = 0; Py_ssize_t __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; Py_ssize_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; char *__pyx_t_10; char *__pyx_t_11; char *__pyx_t_12; char *__pyx_t_13; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":493 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef char c * cdef bytes bytesvalue */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":498 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ __pyx_t_2 = PyTuple_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "View.MemoryView":499 * * if isinstance(value, tuple): * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< * else: * bytesvalue = struct.pack(self.view.format, value) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 499, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":498 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ goto __pyx_L3; } /* "View.MemoryView":501 * bytesvalue = struct.pack(self.view.format, *value) * else: * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< * * for i, c in enumerate(bytesvalue): */ /*else*/ { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 501, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:; /* "View.MemoryView":503 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_7 = 0; if (unlikely(__pyx_v_bytesvalue == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); __PYX_ERR(2, 503, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_bytesvalue); __pyx_t_9 = __pyx_v_bytesvalue; __pyx_t_11 = PyBytes_AS_STRING(__pyx_t_9); __pyx_t_12 = (__pyx_t_11 + PyBytes_GET_SIZE(__pyx_t_9)); for (__pyx_t_13 = __pyx_t_11; __pyx_t_13 < __pyx_t_12; __pyx_t_13++) { __pyx_t_10 = __pyx_t_13; __pyx_v_c = (__pyx_t_10[0]); /* "View.MemoryView":504 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ __pyx_v_i = __pyx_t_7; /* "View.MemoryView":503 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_7 = (__pyx_t_7 + 1); /* "View.MemoryView":504 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "View.MemoryView":490 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesvalue); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":507 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_STRIDES: * info.shape = self.view.shape */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; Py_ssize_t *__pyx_t_2; char *__pyx_t_3; void *__pyx_t_4; int __pyx_t_5; Py_ssize_t __pyx_t_6; __Pyx_RefNannySetupContext("__getbuffer__", 0); if (__pyx_v_info != NULL) { __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); } /* "View.MemoryView":508 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":509 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_STRIDES: * info.shape = self.view.shape # <<<<<<<<<<<<<< * else: * info.shape = NULL */ __pyx_t_2 = __pyx_v_self->view.shape; __pyx_v_info->shape = __pyx_t_2; /* "View.MemoryView":508 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ goto __pyx_L3; } /* "View.MemoryView":511 * info.shape = self.view.shape * else: * info.shape = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_STRIDES: */ /*else*/ { __pyx_v_info->shape = NULL; } __pyx_L3:; /* "View.MemoryView":513 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":514 * * if flags & PyBUF_STRIDES: * info.strides = self.view.strides # <<<<<<<<<<<<<< * else: * info.strides = NULL */ __pyx_t_2 = __pyx_v_self->view.strides; __pyx_v_info->strides = __pyx_t_2; /* "View.MemoryView":513 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ goto __pyx_L4; } /* "View.MemoryView":516 * info.strides = self.view.strides * else: * info.strides = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_INDIRECT: */ /*else*/ { __pyx_v_info->strides = NULL; } __pyx_L4:; /* "View.MemoryView":518 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); if (__pyx_t_1) { /* "View.MemoryView":519 * * if flags & PyBUF_INDIRECT: * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< * else: * info.suboffsets = NULL */ __pyx_t_2 = __pyx_v_self->view.suboffsets; __pyx_v_info->suboffsets = __pyx_t_2; /* "View.MemoryView":518 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ goto __pyx_L5; } /* "View.MemoryView":521 * info.suboffsets = self.view.suboffsets * else: * info.suboffsets = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ /*else*/ { __pyx_v_info->suboffsets = NULL; } __pyx_L5:; /* "View.MemoryView":523 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":524 * * if flags & PyBUF_FORMAT: * info.format = self.view.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_3 = __pyx_v_self->view.format; __pyx_v_info->format = __pyx_t_3; /* "View.MemoryView":523 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ goto __pyx_L6; } /* "View.MemoryView":526 * info.format = self.view.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.buf = self.view.buf */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L6:; /* "View.MemoryView":528 * info.format = NULL * * info.buf = self.view.buf # <<<<<<<<<<<<<< * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize */ __pyx_t_4 = __pyx_v_self->view.buf; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":529 * * info.buf = self.view.buf * info.ndim = self.view.ndim # <<<<<<<<<<<<<< * info.itemsize = self.view.itemsize * info.len = self.view.len */ __pyx_t_5 = __pyx_v_self->view.ndim; __pyx_v_info->ndim = __pyx_t_5; /* "View.MemoryView":530 * info.buf = self.view.buf * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< * info.len = self.view.len * info.readonly = 0 */ __pyx_t_6 = __pyx_v_self->view.itemsize; __pyx_v_info->itemsize = __pyx_t_6; /* "View.MemoryView":531 * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize * info.len = self.view.len # <<<<<<<<<<<<<< * info.readonly = 0 * info.obj = self */ __pyx_t_6 = __pyx_v_self->view.len; __pyx_v_info->len = __pyx_t_6; /* "View.MemoryView":532 * info.itemsize = self.view.itemsize * info.len = self.view.len * info.readonly = 0 # <<<<<<<<<<<<<< * info.obj = self * */ __pyx_v_info->readonly = 0; /* "View.MemoryView":533 * info.len = self.view.len * info.readonly = 0 * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":507 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_STRIDES: * info.shape = self.view.shape */ /* function exit code */ __pyx_r = 0; if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) { __Pyx_GOTREF(Py_None); __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL; } __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":539 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":540 * @property * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< * transpose_memslice(&result.from_slice) * return result */ __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 540, __pyx_L1_error) __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":541 * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< * return result * */ __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == 0)) __PYX_ERR(2, 541, __pyx_L1_error) /* "View.MemoryView":542 * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) * return result # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":539 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":545 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":546 * @property * def base(self): * return self.obj # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->obj); __pyx_r = __pyx_v_self->obj; goto __pyx_L0; /* "View.MemoryView":545 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":549 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_length; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":550 * @property * def shape(self): * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_length = (__pyx_t_2[0]); __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":549 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":553 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_stride; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":554 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":556 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 556, __pyx_L1_error) /* "View.MemoryView":554 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ } /* "View.MemoryView":558 * raise ValueError("Buffer view does not expose strides") * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_v_stride = (__pyx_t_3[0]); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "View.MemoryView":553 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":561 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; Py_ssize_t *__pyx_t_6; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":562 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":563 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__26, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":562 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ } /* "View.MemoryView":565 * return (-1,) * self.view.ndim * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { __pyx_t_4 = __pyx_t_6; __pyx_v_suboffset = (__pyx_t_4[0]); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":561 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":568 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":569 * @property * def ndim(self): * return self.view.ndim # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":568 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":572 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":573 * @property * def itemsize(self): * return self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":572 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":576 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":577 * @property * def nbytes(self): * return self.size * self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":576 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":580 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":581 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ __pyx_t_1 = (__pyx_v_self->_size == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":582 * def size(self): * if self._size is None: * result = 1 # <<<<<<<<<<<<<< * * for length in self.view.shape[:self.view.ndim]: */ __Pyx_INCREF(__pyx_int_1); __pyx_v_result = __pyx_int_1; /* "View.MemoryView":584 * result = 1 * * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< * result *= length * */ __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":585 * * for length in self.view.shape[:self.view.ndim]: * result *= length # <<<<<<<<<<<<<< * * self._size = result */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0; } /* "View.MemoryView":587 * result *= length * * self._size = result # <<<<<<<<<<<<<< * * return self._size */ __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); __Pyx_GOTREF(__pyx_v_self->_size); __Pyx_DECREF(__pyx_v_self->_size); __pyx_v_self->_size = __pyx_v_result; /* "View.MemoryView":581 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ } /* "View.MemoryView":589 * self._size = result * * return self._size # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_size); __pyx_r = __pyx_v_self->_size; goto __pyx_L0; /* "View.MemoryView":580 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":591 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* Python wrapper */ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":592 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":593 * def __len__(self): * if self.view.ndim >= 1: * return self.view.shape[0] # <<<<<<<<<<<<<< * * return 0 */ __pyx_r = (__pyx_v_self->view.shape[0]); goto __pyx_L0; /* "View.MemoryView":592 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ } /* "View.MemoryView":595 * return self.view.shape[0] * * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":591 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":597 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* Python wrapper */ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":598 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":599 * def __repr__(self): * return "" % (self.base.__class__.__name__, * id(self)) # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self)); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_id, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":598 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":597 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":601 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* Python wrapper */ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__str__", 0); /* "View.MemoryView":602 * * def __str__(self): * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":601 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":605 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_c_contig", 0); /* "View.MemoryView":608 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'C', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":609 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< * * def is_f_contig(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":605 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":611 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_f_contig", 0); /* "View.MemoryView":614 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'F', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":615 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< * * def copy(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":611 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":617 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_mslice; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy", 0); /* "View.MemoryView":619 * def copy(self): * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &mslice) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); /* "View.MemoryView":621 * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS * * slice_copy(self, &mslice) # <<<<<<<<<<<<<< * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); /* "View.MemoryView":622 * * slice_copy(self, &mslice) * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_C_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 622, __pyx_L1_error) __pyx_v_mslice = __pyx_t_1; /* "View.MemoryView":627 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< * * def copy_fortran(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":617 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":629 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy_fortran", 0); /* "View.MemoryView":631 * def copy_fortran(self): * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &src) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); /* "View.MemoryView":633 * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS * * slice_copy(self, &src) # <<<<<<<<<<<<<< * dst = slice_copy_contig(&src, "fortran", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); /* "View.MemoryView":634 * * slice_copy(self, &src) * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_F_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 634, __pyx_L1_error) __pyx_v_dst = __pyx_t_1; /* "View.MemoryView":639 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":629 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":643 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { struct __pyx_memoryview_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); /* "View.MemoryView":644 * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< * result.typeinfo = typeinfo * return result */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_o); __Pyx_GIVEREF(__pyx_v_o); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":645 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo # <<<<<<<<<<<<<< * return result * */ __pyx_v_result->typeinfo = __pyx_v_typeinfo; /* "View.MemoryView":646 * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_check') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":643 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":649 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("memoryview_check", 0); /* "View.MemoryView":650 * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): * return isinstance(o, memoryview) # <<<<<<<<<<<<<< * * cdef tuple _unellipsify(object index, int ndim): */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); __pyx_r = __pyx_t_1; goto __pyx_L0; /* "View.MemoryView":649 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":652 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { PyObject *__pyx_v_tup = NULL; PyObject *__pyx_v_result = NULL; int __pyx_v_have_slices; int __pyx_v_seen_ellipsis; CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_item = NULL; Py_ssize_t __pyx_v_nslices; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_unellipsify", 0); /* "View.MemoryView":657 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ __pyx_t_1 = PyTuple_Check(__pyx_v_index); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":658 * """ * if not isinstance(index, tuple): * tup = (index,) # <<<<<<<<<<<<<< * else: * tup = index */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_index); __Pyx_GIVEREF(__pyx_v_index); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); __pyx_v_tup = __pyx_t_3; __pyx_t_3 = 0; /* "View.MemoryView":657 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ goto __pyx_L3; } /* "View.MemoryView":660 * tup = (index,) * else: * tup = index # <<<<<<<<<<<<<< * * result = [] */ /*else*/ { __Pyx_INCREF(__pyx_v_index); __pyx_v_tup = __pyx_v_index; } __pyx_L3:; /* "View.MemoryView":662 * tup = index * * result = [] # <<<<<<<<<<<<<< * have_slices = False * seen_ellipsis = False */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":663 * * result = [] * have_slices = False # <<<<<<<<<<<<<< * seen_ellipsis = False * for idx, item in enumerate(tup): */ __pyx_v_have_slices = 0; /* "View.MemoryView":664 * result = [] * have_slices = False * seen_ellipsis = False # <<<<<<<<<<<<<< * for idx, item in enumerate(tup): * if item is Ellipsis: */ __pyx_v_seen_ellipsis = 0; /* "View.MemoryView":665 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 665, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 665, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 665, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 665, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* "View.MemoryView":666 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":667 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":668 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 668, __pyx_L1_error) __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { __Pyx_INCREF(__pyx_slice__27); __Pyx_GIVEREF(__pyx_slice__27); PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__27); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 668, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":669 * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True # <<<<<<<<<<<<<< * else: * result.append(slice(None)) */ __pyx_v_seen_ellipsis = 1; /* "View.MemoryView":667 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ goto __pyx_L7; } /* "View.MemoryView":671 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ /*else*/ { __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__28); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 671, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":672 * else: * result.append(slice(None)) * have_slices = True # <<<<<<<<<<<<<< * else: * if not isinstance(item, slice) and not PyIndex_Check(item): */ __pyx_v_have_slices = 1; /* "View.MemoryView":666 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ goto __pyx_L6; } /* "View.MemoryView":674 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ /*else*/ { __pyx_t_2 = PySlice_Check(__pyx_v_item); __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); __pyx_t_1 = __pyx_t_10; __pyx_L9_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":675 * else: * if not isinstance(item, slice) and not PyIndex_Check(item): * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< * * have_slices = have_slices or isinstance(item, slice) */ __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(2, 675, __pyx_L1_error) /* "View.MemoryView":674 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ } /* "View.MemoryView":677 * raise TypeError("Cannot index with type '%s'" % type(item)) * * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< * result.append(item) * */ __pyx_t_10 = (__pyx_v_have_slices != 0); if (!__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = PySlice_Check(__pyx_v_item); __pyx_t_2 = (__pyx_t_10 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_have_slices = __pyx_t_1; /* "View.MemoryView":678 * * have_slices = have_slices or isinstance(item, slice) * result.append(item) # <<<<<<<<<<<<<< * * nslices = ndim - len(result) */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 678, __pyx_L1_error) } __pyx_L6:; /* "View.MemoryView":665 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":680 * result.append(item) * * nslices = ndim - len(result) # <<<<<<<<<<<<<< * if nslices: * result.extend([slice(None)] * nslices) */ __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(2, 680, __pyx_L1_error) __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); /* "View.MemoryView":681 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ __pyx_t_1 = (__pyx_v_nslices != 0); if (__pyx_t_1) { /* "View.MemoryView":682 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { __Pyx_INCREF(__pyx_slice__29); __Pyx_GIVEREF(__pyx_slice__29); PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__29); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":681 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ } /* "View.MemoryView":684 * result.extend([slice(None)] * nslices) * * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): */ __Pyx_XDECREF(__pyx_r); if (!__pyx_v_have_slices) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L14_bool_binop_done:; __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L0; /* "View.MemoryView":652 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_tup); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_item); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":686 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); /* "View.MemoryView":687 * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") */ __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { __pyx_t_1 = __pyx_t_3; __pyx_v_suboffset = (__pyx_t_1[0]); /* "View.MemoryView":688 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_4) { /* "View.MemoryView":689 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 689, __pyx_L1_error) /* "View.MemoryView":688 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ } } /* "View.MemoryView":686 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":696 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { int __pyx_v_new_ndim; int __pyx_v_suboffset_dim; int __pyx_v_dim; __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; __Pyx_memviewslice *__pyx_v_p_src; struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; __Pyx_memviewslice *__pyx_v_p_dst; int *__pyx_v_p_suboffset_dim; Py_ssize_t __pyx_v_start; Py_ssize_t __pyx_v_stop; Py_ssize_t __pyx_v_step; int __pyx_v_have_start; int __pyx_v_have_stop; int __pyx_v_have_step; PyObject *__pyx_v_index = NULL; struct __pyx_memoryview_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; struct __pyx_memoryview_obj *__pyx_t_4; char *__pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; __Pyx_RefNannySetupContext("memview_slice", 0); /* "View.MemoryView":697 * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< * cdef bint negative_step * cdef __Pyx_memviewslice src, dst */ __pyx_v_new_ndim = 0; __pyx_v_suboffset_dim = -1; /* "View.MemoryView":704 * * * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< * * cdef _memoryviewslice memviewsliceobj */ memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst))); /* "View.MemoryView":708 * cdef _memoryviewslice memviewsliceobj * * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 708, __pyx_L1_error) } } #endif /* "View.MemoryView":710 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":711 * * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview # <<<<<<<<<<<<<< * p_src = &memviewsliceobj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 711, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":712 * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, &src) */ __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); /* "View.MemoryView":710 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ goto __pyx_L3; } /* "View.MemoryView":714 * p_src = &memviewsliceobj.from_slice * else: * slice_copy(memview, &src) # <<<<<<<<<<<<<< * p_src = &src * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); /* "View.MemoryView":715 * else: * slice_copy(memview, &src) * p_src = &src # <<<<<<<<<<<<<< * * */ __pyx_v_p_src = (&__pyx_v_src); } __pyx_L3:; /* "View.MemoryView":721 * * * dst.memview = p_src.memview # <<<<<<<<<<<<<< * dst.data = p_src.data * */ __pyx_t_4 = __pyx_v_p_src->memview; __pyx_v_dst.memview = __pyx_t_4; /* "View.MemoryView":722 * * dst.memview = p_src.memview * dst.data = p_src.data # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_v_p_src->data; __pyx_v_dst.data = __pyx_t_5; /* "View.MemoryView":727 * * * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< * cdef int *p_suboffset_dim = &suboffset_dim * cdef Py_ssize_t start, stop, step */ __pyx_v_p_dst = (&__pyx_v_dst); /* "View.MemoryView":728 * * cdef __Pyx_memviewslice *p_dst = &dst * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< * cdef Py_ssize_t start, stop, step * cdef bint have_start, have_stop, have_step */ __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); /* "View.MemoryView":732 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 732, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 732, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 732, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 732, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_dim = __pyx_t_6; __pyx_t_6 = (__pyx_t_6 + 1); /* "View.MemoryView":733 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); if (__pyx_t_2) { /* "View.MemoryView":737 * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< * 0, 0, 0, # have_{start,stop,step} * False) */ __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 737, __pyx_L1_error) /* "View.MemoryView":734 * for dim, index in enumerate(indices): * if PyIndex_Check(index): * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(2, 734, __pyx_L1_error) /* "View.MemoryView":733 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ goto __pyx_L6; } /* "View.MemoryView":740 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ __pyx_t_2 = (__pyx_v_index == Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":741 * False) * elif index is None: * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 */ (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; /* "View.MemoryView":742 * elif index is None: * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 */ (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; /* "View.MemoryView":743 * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< * new_ndim += 1 * else: */ (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; /* "View.MemoryView":744 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 # <<<<<<<<<<<<<< * else: * start = index.start or 0 */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); /* "View.MemoryView":740 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ goto __pyx_L6; } /* "View.MemoryView":746 * new_ndim += 1 * else: * start = index.start or 0 # <<<<<<<<<<<<<< * stop = index.stop or 0 * step = index.step or 0 */ /*else*/ { __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 746, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_10 = 0; __pyx_L7_bool_binop_done:; __pyx_v_start = __pyx_t_10; /* "View.MemoryView":747 * else: * start = index.start or 0 * stop = index.stop or 0 # <<<<<<<<<<<<<< * step = index.step or 0 * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 747, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 747, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = 0; __pyx_L9_bool_binop_done:; __pyx_v_stop = __pyx_t_10; /* "View.MemoryView":748 * start = index.start or 0 * stop = index.stop or 0 * step = index.step or 0 # <<<<<<<<<<<<<< * * have_start = index.start is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 748, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 748, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = 0; __pyx_L11_bool_binop_done:; __pyx_v_step = __pyx_t_10; /* "View.MemoryView":750 * step = index.step or 0 * * have_start = index.start is not None # <<<<<<<<<<<<<< * have_stop = index.stop is not None * have_step = index.step is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_start = __pyx_t_1; /* "View.MemoryView":751 * * have_start = index.start is not None * have_stop = index.stop is not None # <<<<<<<<<<<<<< * have_step = index.step is not None * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_stop = __pyx_t_1; /* "View.MemoryView":752 * have_start = index.start is not None * have_stop = index.stop is not None * have_step = index.step is not None # <<<<<<<<<<<<<< * * slice_memviewslice( */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_step = __pyx_t_1; /* "View.MemoryView":754 * have_step = index.step is not None * * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(2, 754, __pyx_L1_error) /* "View.MemoryView":760 * have_start, have_stop, have_step, * True) * new_ndim += 1 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); } __pyx_L6:; /* "View.MemoryView":732 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":762 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":763 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":764 * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< * memviewsliceobj.to_dtype_func, * memview.dtype_is_object) */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 764, __pyx_L1_error) } /* "View.MemoryView":765 * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< * memview.dtype_is_object) * else: */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 765, __pyx_L1_error) } /* "View.MemoryView":763 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 763, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":762 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ } /* "View.MemoryView":768 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ /*else*/ { __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":769 * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "View.MemoryView":768 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 768, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":696 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":793 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { Py_ssize_t __pyx_v_new_shape; int __pyx_v_negative_step; int __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":813 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":815 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ __pyx_t_1 = ((__pyx_v_start < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":816 * * if start < 0: * start += shape # <<<<<<<<<<<<<< * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":815 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ } /* "View.MemoryView":817 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ __pyx_t_1 = (0 <= __pyx_v_start); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":818 * start += shape * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< * else: * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 818, __pyx_L1_error) /* "View.MemoryView":817 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ } /* "View.MemoryView":813 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ goto __pyx_L3; } /* "View.MemoryView":821 * else: * * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< * * if have_step and step == 0: */ /*else*/ { __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L6_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step < 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L6_bool_binop_done:; __pyx_v_negative_step = __pyx_t_2; /* "View.MemoryView":823 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ __pyx_t_1 = (__pyx_v_have_step != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step == 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* "View.MemoryView":824 * * if have_step and step == 0: * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 824, __pyx_L1_error) /* "View.MemoryView":823 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ } /* "View.MemoryView":827 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ __pyx_t_2 = (__pyx_v_have_start != 0); if (__pyx_t_2) { /* "View.MemoryView":828 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":829 * if have_start: * if start < 0: * start += shape # <<<<<<<<<<<<<< * if start < 0: * start = 0 */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":830 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":831 * start += shape * if start < 0: * start = 0 # <<<<<<<<<<<<<< * elif start >= shape: * if negative_step: */ __pyx_v_start = 0; /* "View.MemoryView":830 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ } /* "View.MemoryView":828 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ goto __pyx_L12; } /* "View.MemoryView":832 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":833 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":834 * elif start >= shape: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = shape */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":833 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L14; } /* "View.MemoryView":836 * start = shape - 1 * else: * start = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ /*else*/ { __pyx_v_start = __pyx_v_shape; } __pyx_L14:; /* "View.MemoryView":832 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ } __pyx_L12:; /* "View.MemoryView":827 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ goto __pyx_L11; } /* "View.MemoryView":838 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":839 * else: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = 0 */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":838 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L15; } /* "View.MemoryView":841 * start = shape - 1 * else: * start = 0 # <<<<<<<<<<<<<< * * if have_stop: */ /*else*/ { __pyx_v_start = 0; } __pyx_L15:; } __pyx_L11:; /* "View.MemoryView":843 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ __pyx_t_2 = (__pyx_v_have_stop != 0); if (__pyx_t_2) { /* "View.MemoryView":844 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":845 * if have_stop: * if stop < 0: * stop += shape # <<<<<<<<<<<<<< * if stop < 0: * stop = 0 */ __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); /* "View.MemoryView":846 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":847 * stop += shape * if stop < 0: * stop = 0 # <<<<<<<<<<<<<< * elif stop > shape: * stop = shape */ __pyx_v_stop = 0; /* "View.MemoryView":846 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ } /* "View.MemoryView":844 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ goto __pyx_L17; } /* "View.MemoryView":848 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":849 * stop = 0 * elif stop > shape: * stop = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ __pyx_v_stop = __pyx_v_shape; /* "View.MemoryView":848 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ } __pyx_L17:; /* "View.MemoryView":843 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ goto __pyx_L16; } /* "View.MemoryView":851 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":852 * else: * if negative_step: * stop = -1 # <<<<<<<<<<<<<< * else: * stop = shape */ __pyx_v_stop = -1L; /* "View.MemoryView":851 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ goto __pyx_L19; } /* "View.MemoryView":854 * stop = -1 * else: * stop = shape # <<<<<<<<<<<<<< * * if not have_step: */ /*else*/ { __pyx_v_stop = __pyx_v_shape; } __pyx_L19:; } __pyx_L16:; /* "View.MemoryView":856 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":857 * * if not have_step: * step = 1 # <<<<<<<<<<<<<< * * */ __pyx_v_step = 1; /* "View.MemoryView":856 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ } /* "View.MemoryView":861 * * with cython.cdivision(True): * new_shape = (stop - start) // step # <<<<<<<<<<<<<< * * if (stop - start) - step * new_shape: */ __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); /* "View.MemoryView":863 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); if (__pyx_t_2) { /* "View.MemoryView":864 * * if (stop - start) - step * new_shape: * new_shape += 1 # <<<<<<<<<<<<<< * * if new_shape < 0: */ __pyx_v_new_shape = (__pyx_v_new_shape + 1); /* "View.MemoryView":863 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ } /* "View.MemoryView":866 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":867 * * if new_shape < 0: * new_shape = 0 # <<<<<<<<<<<<<< * * */ __pyx_v_new_shape = 0; /* "View.MemoryView":866 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ } /* "View.MemoryView":870 * * * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset */ (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); /* "View.MemoryView":871 * * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< * dst.suboffsets[new_ndim] = suboffset * */ (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; /* "View.MemoryView":872 * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< * * */ (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; } __pyx_L3:; /* "View.MemoryView":875 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":876 * * if suboffset_dim[0] < 0: * dst.data += start * stride # <<<<<<<<<<<<<< * else: * dst.suboffsets[suboffset_dim[0]] += start * stride */ __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); /* "View.MemoryView":875 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ goto __pyx_L23; } /* "View.MemoryView":878 * dst.data += start * stride * else: * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< * * if suboffset >= 0: */ /*else*/ { __pyx_t_3 = (__pyx_v_suboffset_dim[0]); (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); } __pyx_L23:; /* "View.MemoryView":880 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":881 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":882 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":883 * if not is_slice: * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " */ __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); /* "View.MemoryView":882 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ goto __pyx_L26; } /* "View.MemoryView":885 * dst.data = ( dst.data)[0] + suboffset * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< * "must be indexed and not sliced", dim) * else: */ /*else*/ { /* "View.MemoryView":886 * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< * else: * suboffset_dim[0] = new_ndim */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 885, __pyx_L1_error) } __pyx_L26:; /* "View.MemoryView":881 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ goto __pyx_L25; } /* "View.MemoryView":888 * "must be indexed and not sliced", dim) * else: * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< * * return 0 */ /*else*/ { (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; } __pyx_L25:; /* "View.MemoryView":880 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ } /* "View.MemoryView":890 * suboffset_dim[0] = new_ndim * * return 0 # <<<<<<<<<<<<<< * * */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":793 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":896 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { Py_ssize_t __pyx_v_shape; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_suboffset; Py_ssize_t __pyx_v_itemsize; char *__pyx_v_resultp; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("pybuffer_index", 0); /* "View.MemoryView":898 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< * cdef Py_ssize_t itemsize = view.itemsize * cdef char *resultp */ __pyx_v_suboffset = -1L; /* "View.MemoryView":899 * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< * cdef char *resultp * */ __pyx_t_1 = __pyx_v_view->itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":902 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":903 * * if view.ndim == 0: * shape = view.len / itemsize # <<<<<<<<<<<<<< * stride = itemsize * else: */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 903, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 903, __pyx_L1_error) } __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); /* "View.MemoryView":904 * if view.ndim == 0: * shape = view.len / itemsize * stride = itemsize # <<<<<<<<<<<<<< * else: * shape = view.shape[dim] */ __pyx_v_stride = __pyx_v_itemsize; /* "View.MemoryView":902 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ goto __pyx_L3; } /* "View.MemoryView":906 * stride = itemsize * else: * shape = view.shape[dim] # <<<<<<<<<<<<<< * stride = view.strides[dim] * if view.suboffsets != NULL: */ /*else*/ { __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); /* "View.MemoryView":907 * else: * shape = view.shape[dim] * stride = view.strides[dim] # <<<<<<<<<<<<<< * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] */ __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); /* "View.MemoryView":908 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":909 * stride = view.strides[dim] * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< * * if index < 0: */ __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); /* "View.MemoryView":908 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ } } __pyx_L3:; /* "View.MemoryView":911 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":912 * * if index < 0: * index += view.shape[dim] # <<<<<<<<<<<<<< * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) */ __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); /* "View.MemoryView":913 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":914 * index += view.shape[dim] * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * if index >= shape: */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_IndexError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 914, __pyx_L1_error) /* "View.MemoryView":913 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":911 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ } /* "View.MemoryView":916 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":917 * * if index >= shape: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * resultp = bufp + index * stride */ __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_IndexError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 917, __pyx_L1_error) /* "View.MemoryView":916 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":919 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * resultp = bufp + index * stride # <<<<<<<<<<<<<< * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset */ __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); /* "View.MemoryView":920 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":921 * resultp = bufp + index * stride * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< * * return resultp */ __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); /* "View.MemoryView":920 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ } /* "View.MemoryView":923 * resultp = ( resultp)[0] + suboffset * * return resultp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_resultp; goto __pyx_L0; /* "View.MemoryView":896 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":929 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { int __pyx_v_ndim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; int __pyx_v_i; int __pyx_v_j; int __pyx_r; int __pyx_t_1; Py_ssize_t *__pyx_t_2; long __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; int __pyx_t_7; int __pyx_t_8; /* "View.MemoryView":930 * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< * * cdef Py_ssize_t *shape = memslice.shape */ __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; __pyx_v_ndim = __pyx_t_1; /* "View.MemoryView":932 * cdef int ndim = memslice.memview.view.ndim * * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< * cdef Py_ssize_t *strides = memslice.strides * */ __pyx_t_2 = __pyx_v_memslice->shape; __pyx_v_shape = __pyx_t_2; /* "View.MemoryView":933 * * cdef Py_ssize_t *shape = memslice.shape * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_v_memslice->strides; __pyx_v_strides = __pyx_t_2; /* "View.MemoryView":937 * * cdef int i, j * for i in range(ndim / 2): # <<<<<<<<<<<<<< * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] */ __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_3; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":938 * cdef int i, j * for i in range(ndim / 2): * j = ndim - 1 - i # <<<<<<<<<<<<<< * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] */ __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); /* "View.MemoryView":939 * for i in range(ndim / 2): * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< * shape[i], shape[j] = shape[j], shape[i] * */ __pyx_t_4 = (__pyx_v_strides[__pyx_v_j]); __pyx_t_5 = (__pyx_v_strides[__pyx_v_i]); (__pyx_v_strides[__pyx_v_i]) = __pyx_t_4; (__pyx_v_strides[__pyx_v_j]) = __pyx_t_5; /* "View.MemoryView":940 * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: */ __pyx_t_5 = (__pyx_v_shape[__pyx_v_j]); __pyx_t_4 = (__pyx_v_shape[__pyx_v_i]); (__pyx_v_shape[__pyx_v_i]) = __pyx_t_5; (__pyx_v_shape[__pyx_v_j]) = __pyx_t_4; /* "View.MemoryView":942 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ __pyx_t_7 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L6_bool_binop_done; } __pyx_t_7 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L6_bool_binop_done:; if (__pyx_t_6) { /* "View.MemoryView":943 * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< * * return 1 */ __pyx_t_8 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 943, __pyx_L1_error) /* "View.MemoryView":942 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ } } /* "View.MemoryView":945 * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * * return 1 # <<<<<<<<<<<<<< * * */ __pyx_r = 1; goto __pyx_L0; /* "View.MemoryView":929 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":962 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* Python wrapper */ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":963 * * def __dealloc__(self): * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); /* "View.MemoryView":962 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":965 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":966 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":967 * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: * return self.to_object_func(itemp) # <<<<<<<<<<<<<< * else: * return memoryview.convert_item_to_object(self, itemp) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":966 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ } /* "View.MemoryView":969 * return self.to_object_func(itemp) * else: * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "View.MemoryView":965 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":971 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":972 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":973 * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< * else: * memoryview.assign_item_from_object(self, itemp, value) */ __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == 0)) __PYX_ERR(2, 973, __pyx_L1_error) /* "View.MemoryView":972 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ goto __pyx_L3; } /* "View.MemoryView":975 * self.to_dtype_func(itemp, value) * else: * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< * * @property */ /*else*/ { __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:; /* "View.MemoryView":971 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":978 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":979 * @property * def base(self): * return self.from_object # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->from_object); __pyx_r = __pyx_v_self->from_object; goto __pyx_L0; /* "View.MemoryView":978 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":985 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_TypeInfo *__pyx_t_4; Py_buffer __pyx_t_5; Py_ssize_t *__pyx_t_6; Py_ssize_t *__pyx_t_7; Py_ssize_t *__pyx_t_8; Py_ssize_t __pyx_t_9; __Pyx_RefNannySetupContext("memoryview_fromslice", 0); /* "View.MemoryView":993 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); if (__pyx_t_1) { /* "View.MemoryView":994 * * if memviewslice.memview == Py_None: * return None # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0; /* "View.MemoryView":993 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ } /* "View.MemoryView":999 * * * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< * * result.from_slice = memviewslice */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1001 * result = _memoryviewslice(None, 0, dtype_is_object) * * result.from_slice = memviewslice # <<<<<<<<<<<<<< * __PYX_INC_MEMVIEW(&memviewslice, 1) * */ __pyx_v_result->from_slice = __pyx_v_memviewslice; /* "View.MemoryView":1002 * * result.from_slice = memviewslice * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< * * result.from_object = ( memviewslice.memview).base */ __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); /* "View.MemoryView":1004 * __PYX_INC_MEMVIEW(&memviewslice, 1) * * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< * result.typeinfo = memviewslice.memview.typeinfo * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_result->from_object); __Pyx_DECREF(__pyx_v_result->from_object); __pyx_v_result->from_object = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":1005 * * result.from_object = ( memviewslice.memview).base * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< * * result.view = memviewslice.memview.view */ __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; /* "View.MemoryView":1007 * result.typeinfo = memviewslice.memview.typeinfo * * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< * result.view.buf = memviewslice.data * result.view.ndim = ndim */ __pyx_t_5 = __pyx_v_memviewslice.memview->view; __pyx_v_result->__pyx_base.view = __pyx_t_5; /* "View.MemoryView":1008 * * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None */ __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); /* "View.MemoryView":1009 * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data * result.view.ndim = ndim # <<<<<<<<<<<<<< * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; /* "View.MemoryView":1010 * result.view.buf = memviewslice.data * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; /* "View.MemoryView":1011 * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * result.flags = PyBUF_RECORDS */ Py_INCREF(Py_None); /* "View.MemoryView":1013 * Py_INCREF(Py_None) * * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< * * result.view.shape = result.from_slice.shape */ __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; /* "View.MemoryView":1015 * result.flags = PyBUF_RECORDS * * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< * result.view.strides = result.from_slice.strides * */ __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); /* "View.MemoryView":1016 * * result.view.shape = result.from_slice.shape * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< * * */ __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); /* "View.MemoryView":1019 * * * result.view.suboffsets = NULL # <<<<<<<<<<<<<< * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: */ __pyx_v_result->__pyx_base.view.suboffsets = NULL; /* "View.MemoryView":1020 * * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets */ __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_v_suboffset = (__pyx_t_6[0]); /* "View.MemoryView":1021 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1022 * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< * break * */ __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); /* "View.MemoryView":1023 * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets * break # <<<<<<<<<<<<<< * * result.view.len = result.view.itemsize */ goto __pyx_L5_break; /* "View.MemoryView":1021 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ } } __pyx_L5_break:; /* "View.MemoryView":1025 * break * * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< * for length in result.view.shape[:ndim]: * result.view.len *= length */ __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; /* "View.MemoryView":1026 * * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< * result.view.len *= length * */ __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1027 * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: * result.view.len *= length # <<<<<<<<<<<<<< * * result.to_object_func = to_object_func */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; } /* "View.MemoryView":1029 * result.view.len *= length * * result.to_object_func = to_object_func # <<<<<<<<<<<<<< * result.to_dtype_func = to_dtype_func * */ __pyx_v_result->to_object_func = __pyx_v_to_object_func; /* "View.MemoryView":1030 * * result.to_object_func = to_object_func * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; /* "View.MemoryView":1032 * result.to_dtype_func = to_dtype_func * * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_get_slice_from_memoryview') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":985 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1035 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; __Pyx_memviewslice *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_slice_from_memview", 0); /* "View.MemoryView":1038 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1039 * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): * obj = memview # <<<<<<<<<<<<<< * return &obj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1039, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":1040 * if isinstance(memview, _memoryviewslice): * obj = memview * return &obj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, mslice) */ __pyx_r = (&__pyx_v_obj->from_slice); goto __pyx_L0; /* "View.MemoryView":1038 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ } /* "View.MemoryView":1042 * return &obj.from_slice * else: * slice_copy(memview, mslice) # <<<<<<<<<<<<<< * return mslice * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); /* "View.MemoryView":1043 * else: * slice_copy(memview, mslice) * return mslice # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_slice_copy') */ __pyx_r = __pyx_v_mslice; goto __pyx_L0; } /* "View.MemoryView":1035 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_obj); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1046 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { int __pyx_v_dim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; Py_ssize_t *__pyx_v_suboffsets; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; __Pyx_RefNannySetupContext("slice_copy", 0); /* "View.MemoryView":1050 * cdef (Py_ssize_t*) shape, strides, suboffsets * * shape = memview.view.shape # <<<<<<<<<<<<<< * strides = memview.view.strides * suboffsets = memview.view.suboffsets */ __pyx_t_1 = __pyx_v_memview->view.shape; __pyx_v_shape = __pyx_t_1; /* "View.MemoryView":1051 * * shape = memview.view.shape * strides = memview.view.strides # <<<<<<<<<<<<<< * suboffsets = memview.view.suboffsets * */ __pyx_t_1 = __pyx_v_memview->view.strides; __pyx_v_strides = __pyx_t_1; /* "View.MemoryView":1052 * shape = memview.view.shape * strides = memview.view.strides * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< * * dst.memview = <__pyx_memoryview *> memview */ __pyx_t_1 = __pyx_v_memview->view.suboffsets; __pyx_v_suboffsets = __pyx_t_1; /* "View.MemoryView":1054 * suboffsets = memview.view.suboffsets * * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< * dst.data = memview.view.buf * */ __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); /* "View.MemoryView":1055 * * dst.memview = <__pyx_memoryview *> memview * dst.data = memview.view.buf # <<<<<<<<<<<<<< * * for dim in range(memview.view.ndim): */ __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); /* "View.MemoryView":1057 * dst.data = memview.view.buf * * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] */ __pyx_t_2 = __pyx_v_memview->view.ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_dim = __pyx_t_3; /* "View.MemoryView":1058 * * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 */ (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); /* "View.MemoryView":1059 * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 * */ (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); /* "View.MemoryView":1060 * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object') */ if ((__pyx_v_suboffsets != 0)) { __pyx_t_4 = (__pyx_v_suboffsets[__pyx_v_dim]); } else { __pyx_t_4 = -1L; } (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_4; } /* "View.MemoryView":1046 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { __Pyx_memviewslice __pyx_v_memviewslice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("memoryview_copy", 0); /* "View.MemoryView":1066 * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< * return memoryview_copy_from_slice(memview, &memviewslice) * */ __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); /* "View.MemoryView":1067 * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object_from_slice') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1070 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { PyObject *(*__pyx_v_to_object_func)(char *); int (*__pyx_v_to_dtype_func)(char *, PyObject *); PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *(*__pyx_t_3)(char *); int (*__pyx_t_4)(char *, PyObject *); PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); /* "View.MemoryView":1077 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1078 * * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: */ __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; __pyx_v_to_object_func = __pyx_t_3; /* "View.MemoryView":1079 * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< * else: * to_object_func = NULL */ __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; __pyx_v_to_dtype_func = __pyx_t_4; /* "View.MemoryView":1077 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ goto __pyx_L3; } /* "View.MemoryView":1081 * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: * to_object_func = NULL # <<<<<<<<<<<<<< * to_dtype_func = NULL * */ /*else*/ { __pyx_v_to_object_func = NULL; /* "View.MemoryView":1082 * else: * to_object_func = NULL * to_dtype_func = NULL # <<<<<<<<<<<<<< * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, */ __pyx_v_to_dtype_func = NULL; } __pyx_L3:; /* "View.MemoryView":1084 * to_dtype_func = NULL * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< * to_object_func, to_dtype_func, * memview.dtype_is_object) */ __Pyx_XDECREF(__pyx_r); /* "View.MemoryView":1086 * return memoryview_fromslice(memviewslice[0], memview.view.ndim, * to_object_func, to_dtype_func, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":1070 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1092 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { Py_ssize_t __pyx_r; int __pyx_t_1; /* "View.MemoryView":1093 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ __pyx_t_1 = ((__pyx_v_arg < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1094 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: * return -arg # <<<<<<<<<<<<<< * else: * return arg */ __pyx_r = (-__pyx_v_arg); goto __pyx_L0; /* "View.MemoryView":1093 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ } /* "View.MemoryView":1096 * return -arg * else: * return arg # <<<<<<<<<<<<<< * * @cname('__pyx_get_best_slice_order') */ /*else*/ { __pyx_r = __pyx_v_arg; goto __pyx_L0; } /* "View.MemoryView":1092 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1099 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_c_stride; Py_ssize_t __pyx_v_f_stride; char __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1104 * """ * cdef int i * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< * cdef Py_ssize_t f_stride = 0 * */ __pyx_v_c_stride = 0; /* "View.MemoryView":1105 * cdef int i * cdef Py_ssize_t c_stride = 0 * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_f_stride = 0; /* "View.MemoryView":1107 * cdef Py_ssize_t f_stride = 0 * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1L; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1108 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1109 * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1110 * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * for i in range(ndim): */ goto __pyx_L4_break; /* "View.MemoryView":1108 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ } } __pyx_L4_break:; /* "View.MemoryView":1112 * break * * for i in range(ndim): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] */ __pyx_t_1 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_1; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1113 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1114 * for i in range(ndim): * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1115 * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): */ goto __pyx_L7_break; /* "View.MemoryView":1113 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ } } __pyx_L7_break:; /* "View.MemoryView":1117 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1118 * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): * return 'C' # <<<<<<<<<<<<<< * else: * return 'F' */ __pyx_r = 'C'; goto __pyx_L0; /* "View.MemoryView":1117 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ } /* "View.MemoryView":1120 * return 'C' * else: * return 'F' # <<<<<<<<<<<<<< * * @cython.cdivision(True) */ /*else*/ { __pyx_r = 'F'; goto __pyx_L0; } /* "View.MemoryView":1099 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1123 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; Py_ssize_t __pyx_v_dst_extent; Py_ssize_t __pyx_v_src_stride; Py_ssize_t __pyx_v_dst_stride; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; /* "View.MemoryView":1130 * * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] */ __pyx_v_src_extent = (__pyx_v_src_shape[0]); /* "View.MemoryView":1131 * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] */ __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); /* "View.MemoryView":1132 * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_stride = dst_strides[0] * */ __pyx_v_src_stride = (__pyx_v_src_strides[0]); /* "View.MemoryView":1133 * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); /* "View.MemoryView":1135 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1136 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* "View.MemoryView":1137 * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize * dst_extent) * else: */ __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); } __pyx_t_3 = (__pyx_t_2 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "View.MemoryView":1136 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ if (__pyx_t_1) { /* "View.MemoryView":1138 * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)); /* "View.MemoryView":1136 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ goto __pyx_L4; } /* "View.MemoryView":1140 * memcpy(dst_data, src_data, itemsize * dst_extent) * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize) * src_data += src_stride */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1141 * else: * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< * src_data += src_stride * dst_data += dst_stride */ memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize); /* "View.MemoryView":1142 * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * else: */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1143 * memcpy(dst_data, src_data, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L4:; /* "View.MemoryView":1135 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ goto __pyx_L3; } /* "View.MemoryView":1145 * dst_data += dst_stride * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * _copy_strided_to_strided(src_data, src_strides + 1, * dst_data, dst_strides + 1, */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1146 * else: * for i in range(dst_extent): * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< * dst_data, dst_strides + 1, * src_shape + 1, dst_shape + 1, */ _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); /* "View.MemoryView":1150 * src_shape + 1, dst_shape + 1, * ndim - 1, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1151 * ndim - 1, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L3:; /* "View.MemoryView":1123 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ /* function exit code */ } /* "View.MemoryView":1153 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { /* "View.MemoryView":1156 * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< * src.shape, dst.shape, ndim, itemsize) * */ _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1153 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ /* function exit code */ } /* "View.MemoryView":1160 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_size; Py_ssize_t __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1163 * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_size = __pyx_t_1; /* "View.MemoryView":1165 * cdef Py_ssize_t size = src.memview.view.itemsize * * for i in range(ndim): # <<<<<<<<<<<<<< * size *= src.shape[i] * */ __pyx_t_2 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1166 * * for i in range(ndim): * size *= src.shape[i] # <<<<<<<<<<<<<< * * return size */ __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); } /* "View.MemoryView":1168 * size *= src.shape[i] * * return size # <<<<<<<<<<<<<< * * @cname('__pyx_fill_contig_strides_array') */ __pyx_r = __pyx_v_size; goto __pyx_L0; /* "View.MemoryView":1160 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1171 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { int __pyx_v_idx; Py_ssize_t __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1180 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ __pyx_t_1 = ((__pyx_v_order == 'F') != 0); if (__pyx_t_1) { /* "View.MemoryView":1181 * * if order == 'F': * for idx in range(ndim): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ __pyx_t_2 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_idx = __pyx_t_3; /* "View.MemoryView":1182 * if order == 'F': * for idx in range(ndim): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * else: */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1183 * for idx in range(ndim): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * else: * for idx in range(ndim - 1, -1, -1): */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } /* "View.MemoryView":1180 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ goto __pyx_L3; } /* "View.MemoryView":1185 * stride = stride * shape[idx] * else: * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ /*else*/ { for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1L; __pyx_t_2-=1) { __pyx_v_idx = __pyx_t_2; /* "View.MemoryView":1186 * else: * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1187 * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * * return stride */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } } __pyx_L3:; /* "View.MemoryView":1189 * stride = stride * shape[idx] * * return stride # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_data_to_temp') */ __pyx_r = __pyx_v_stride; goto __pyx_L0; /* "View.MemoryView":1171 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1192 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { int __pyx_v_i; void *__pyx_v_result; size_t __pyx_v_itemsize; size_t __pyx_v_size; void *__pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; struct __pyx_memoryview_obj *__pyx_t_4; int __pyx_t_5; /* "View.MemoryView":1203 * cdef void *result * * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef size_t size = slice_get_size(src, ndim) * */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1204 * * cdef size_t itemsize = src.memview.view.itemsize * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< * * result = malloc(size) */ __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); /* "View.MemoryView":1206 * cdef size_t size = slice_get_size(src, ndim) * * result = malloc(size) # <<<<<<<<<<<<<< * if not result: * _err(MemoryError, NULL) */ __pyx_v_result = malloc(__pyx_v_size); /* "View.MemoryView":1207 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1208 * result = malloc(size) * if not result: * _err(MemoryError, NULL) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(2, 1208, __pyx_L1_error) /* "View.MemoryView":1207 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ } /* "View.MemoryView":1211 * * * tmpslice.data = result # <<<<<<<<<<<<<< * tmpslice.memview = src.memview * for i in range(ndim): */ __pyx_v_tmpslice->data = ((char *)__pyx_v_result); /* "View.MemoryView":1212 * * tmpslice.data = result * tmpslice.memview = src.memview # <<<<<<<<<<<<<< * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] */ __pyx_t_4 = __pyx_v_src->memview; __pyx_v_tmpslice->memview = __pyx_t_4; /* "View.MemoryView":1213 * tmpslice.data = result * tmpslice.memview = src.memview * for i in range(ndim): # <<<<<<<<<<<<<< * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 */ __pyx_t_3 = __pyx_v_ndim; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_3; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1214 * tmpslice.memview = src.memview * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< * tmpslice.suboffsets[i] = -1 * */ (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); /* "View.MemoryView":1215 * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, */ (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1217 * tmpslice.suboffsets[i] = -1 * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< * ndim, order) * */ __pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order); /* "View.MemoryView":1221 * * * for i in range(ndim): # <<<<<<<<<<<<<< * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 */ __pyx_t_3 = __pyx_v_ndim; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_3; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":1222 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1223 * for i in range(ndim): * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< * * if slice_is_contig(src[0], order, ndim): */ (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; /* "View.MemoryView":1222 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ } } /* "View.MemoryView":1225 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1226 * * if slice_is_contig(src[0], order, ndim): * memcpy(result, src.data, size) # <<<<<<<<<<<<<< * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) */ memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size); /* "View.MemoryView":1225 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ goto __pyx_L9; } /* "View.MemoryView":1228 * memcpy(result, src.data, size) * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< * * return result */ /*else*/ { copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); } __pyx_L9:; /* "View.MemoryView":1230 * copy_strided_to_strided(src, tmpslice, ndim, itemsize) * * return result # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":1192 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1235 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_extents", 0); /* "View.MemoryView":1238 * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % * (i, extent1, extent2)) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err_dim') */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* "View.MemoryView":1237 * cdef int _err_extents(int i, Py_ssize_t extent1, * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< * (i, extent1, extent2)) * */ __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 1237, __pyx_L1_error) /* "View.MemoryView":1235 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1241 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_dim", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1242 * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err') */ __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_error); __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_2) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 1242, __pyx_L1_error) /* "View.MemoryView":1241 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1245 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1246 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":1247 * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< * else: * raise error */ __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_error); __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_5) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 1247, __pyx_L1_error) /* "View.MemoryView":1246 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ } /* "View.MemoryView":1249 * raise error(msg.decode('ascii')) * else: * raise error # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_contents') */ /*else*/ { __Pyx_Raise(__pyx_v_error, 0, 0, 0); __PYX_ERR(2, 1249, __pyx_L1_error) } /* "View.MemoryView":1245 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { void *__pyx_v_tmpdata; size_t __pyx_v_itemsize; int __pyx_v_i; char __pyx_v_order; int __pyx_v_broadcasting; int __pyx_v_direct_copy; __Pyx_memviewslice __pyx_v_tmp; int __pyx_v_ndim; int __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; void *__pyx_t_6; int __pyx_t_7; /* "View.MemoryView":1260 * Check for overlapping memory and verify the shapes. * """ * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< * cdef size_t itemsize = src.memview.view.itemsize * cdef int i */ __pyx_v_tmpdata = NULL; /* "View.MemoryView":1261 * """ * cdef void *tmpdata = NULL * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef int i * cdef char order = get_best_order(&src, src_ndim) */ __pyx_t_1 = __pyx_v_src.memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1263 * cdef size_t itemsize = src.memview.view.itemsize * cdef int i * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< * cdef bint broadcasting = False * cdef bint direct_copy = False */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); /* "View.MemoryView":1264 * cdef int i * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False # <<<<<<<<<<<<<< * cdef bint direct_copy = False * cdef __Pyx_memviewslice tmp */ __pyx_v_broadcasting = 0; /* "View.MemoryView":1265 * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False * cdef bint direct_copy = False # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice tmp * */ __pyx_v_direct_copy = 0; /* "View.MemoryView":1268 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1269 * * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); /* "View.MemoryView":1268 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ goto __pyx_L3; } /* "View.MemoryView":1270 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1271 * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< * * cdef int ndim = max(src_ndim, dst_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); /* "View.MemoryView":1270 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ } __pyx_L3:; /* "View.MemoryView":1273 * broadcast_leading(&dst, dst_ndim, src_ndim) * * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_3 = __pyx_v_dst_ndim; __pyx_t_4 = __pyx_v_src_ndim; if (((__pyx_t_3 > __pyx_t_4) != 0)) { __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_ndim = __pyx_t_5; /* "View.MemoryView":1275 * cdef int ndim = max(src_ndim, dst_ndim) * * for i in range(ndim): # <<<<<<<<<<<<<< * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: */ __pyx_t_5 = __pyx_v_ndim; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_5; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1276 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); if (__pyx_t_2) { /* "View.MemoryView":1277 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1278 * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: * broadcasting = True # <<<<<<<<<<<<<< * src.strides[i] = 0 * else: */ __pyx_v_broadcasting = 1; /* "View.MemoryView":1279 * if src.shape[i] == 1: * broadcasting = True * src.strides[i] = 0 # <<<<<<<<<<<<<< * else: * _err_extents(i, dst.shape[i], src.shape[i]) */ (__pyx_v_src.strides[__pyx_v_i]) = 0; /* "View.MemoryView":1277 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ goto __pyx_L7; } /* "View.MemoryView":1281 * src.strides[i] = 0 * else: * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< * * if src.suboffsets[i] >= 0: */ /*else*/ { __pyx_t_4 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 1281, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":1276 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ } /* "View.MemoryView":1283 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":1284 * * if src.suboffsets[i] >= 0: * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< * * if slices_overlap(&src, &dst, ndim, itemsize): */ __pyx_t_4 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(2, 1284, __pyx_L1_error) /* "View.MemoryView":1283 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ } } /* "View.MemoryView":1286 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); if (__pyx_t_2) { /* "View.MemoryView":1288 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1289 * * if not slice_is_contig(src, order, ndim): * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); /* "View.MemoryView":1288 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ } /* "View.MemoryView":1291 * order = get_best_order(&dst, ndim) * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< * src = tmp * */ __pyx_t_6 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_6 == NULL)) __PYX_ERR(2, 1291, __pyx_L1_error) __pyx_v_tmpdata = __pyx_t_6; /* "View.MemoryView":1292 * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) * src = tmp # <<<<<<<<<<<<<< * * if not broadcasting: */ __pyx_v_src = __pyx_v_tmp; /* "View.MemoryView":1286 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ } /* "View.MemoryView":1294 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1297 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1298 * * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); /* "View.MemoryView":1297 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ goto __pyx_L12; } /* "View.MemoryView":1299 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1300 * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< * * if direct_copy: */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); /* "View.MemoryView":1299 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ } __pyx_L12:; /* "View.MemoryView":1302 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_2 = (__pyx_v_direct_copy != 0); if (__pyx_t_2) { /* "View.MemoryView":1304 * if direct_copy: * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1305 * * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) */ memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)); /* "View.MemoryView":1306 * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * free(tmpdata) * return 0 */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1307 * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1308 * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * if order == 'F' == get_best_order(&dst, ndim): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1302 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ } /* "View.MemoryView":1294 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1310 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ __pyx_t_2 = (__pyx_v_order == 'F'); if (__pyx_t_2) { __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); } __pyx_t_7 = (__pyx_t_2 != 0); if (__pyx_t_7) { /* "View.MemoryView":1313 * * * transpose_memslice(&src) # <<<<<<<<<<<<<< * transpose_memslice(&dst) * */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == 0)) __PYX_ERR(2, 1313, __pyx_L1_error) /* "View.MemoryView":1314 * * transpose_memslice(&src) * transpose_memslice(&dst) # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == 0)) __PYX_ERR(2, 1314, __pyx_L1_error) /* "View.MemoryView":1310 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1316 * transpose_memslice(&dst) * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1317 * * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * */ copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1318 * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * free(tmpdata) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1320 * refcount_copying(&dst, dtype_is_object, ndim, True) * * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1321 * * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_broadcast_leading') */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1324 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { int __pyx_v_i; int __pyx_v_offset; int __pyx_t_1; int __pyx_t_2; /* "View.MemoryView":1328 * int ndim_other) nogil: * cdef int i * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); /* "View.MemoryView":1330 * cdef int offset = ndim_other - ndim * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1L; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1331 * * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] */ (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); /* "View.MemoryView":1332 * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * */ (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1333 * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< * * for i in range(offset): */ (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); } /* "View.MemoryView":1335 * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * * for i in range(offset): # <<<<<<<<<<<<<< * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] */ __pyx_t_1 = __pyx_v_offset; for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_i = __pyx_t_2; /* "View.MemoryView":1336 * * for i in range(offset): * mslice.shape[i] = 1 # <<<<<<<<<<<<<< * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 */ (__pyx_v_mslice->shape[__pyx_v_i]) = 1; /* "View.MemoryView":1337 * for i in range(offset): * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< * mslice.suboffsets[i] = -1 * */ (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); /* "View.MemoryView":1338 * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * */ (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1324 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ /* function exit code */ } /* "View.MemoryView":1346 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { int __pyx_t_1; /* "View.MemoryView":1350 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ __pyx_t_1 = (__pyx_v_dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":1351 * * if dtype_is_object: * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< * dst.strides, ndim, inc) * */ __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1350 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ } /* "View.MemoryView":1346 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ /* function exit code */ } /* "View.MemoryView":1355 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { __Pyx_RefNannyDeclarations #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); /* "View.MemoryView":1358 * Py_ssize_t *strides, int ndim, * bint inc) with gil: * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_refcount_objects_in_slice') */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1355 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ /* function exit code */ __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif } /* "View.MemoryView":1361 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; int __pyx_t_3; __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); /* "View.MemoryView":1365 * cdef Py_ssize_t i * * for i in range(shape[0]): # <<<<<<<<<<<<<< * if ndim == 1: * if inc: */ __pyx_t_1 = (__pyx_v_shape[0]); for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_1; __pyx_t_2+=1) { __pyx_v_i = __pyx_t_2; /* "View.MemoryView":1366 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ __pyx_t_3 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_3) { /* "View.MemoryView":1367 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ __pyx_t_3 = (__pyx_v_inc != 0); if (__pyx_t_3) { /* "View.MemoryView":1368 * if ndim == 1: * if inc: * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< * else: * Py_DECREF(( data)[0]) */ Py_INCREF((((PyObject **)__pyx_v_data)[0])); /* "View.MemoryView":1367 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ goto __pyx_L6; } /* "View.MemoryView":1370 * Py_INCREF(( data)[0]) * else: * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, */ /*else*/ { Py_DECREF((((PyObject **)__pyx_v_data)[0])); } __pyx_L6:; /* "View.MemoryView":1366 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ goto __pyx_L5; } /* "View.MemoryView":1372 * Py_DECREF(( data)[0]) * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, inc) * */ /*else*/ { /* "View.MemoryView":1373 * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, * ndim - 1, inc) # <<<<<<<<<<<<<< * * data += strides[0] */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); } __pyx_L5:; /* "View.MemoryView":1375 * ndim - 1, inc) * * data += strides[0] # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); } /* "View.MemoryView":1361 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1381 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { /* "View.MemoryView":1384 * size_t itemsize, void *item, * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1385 * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) */ __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1387 * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1381 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ /* function exit code */ } /* "View.MemoryView":1391 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_extent; int __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; /* "View.MemoryView":1395 * size_t itemsize, void *item) nogil: * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t extent = shape[0] * */ __pyx_v_stride = (__pyx_v_strides[0]); /* "View.MemoryView":1396 * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_extent = (__pyx_v_shape[0]); /* "View.MemoryView":1398 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1399 * * if ndim == 1: * for i in range(extent): # <<<<<<<<<<<<<< * memcpy(data, item, itemsize) * data += stride */ __pyx_t_2 = __pyx_v_extent; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1400 * if ndim == 1: * for i in range(extent): * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< * data += stride * else: */ memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize); /* "View.MemoryView":1401 * for i in range(extent): * memcpy(data, item, itemsize) * data += stride # <<<<<<<<<<<<<< * else: * for i in range(extent): */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } /* "View.MemoryView":1398 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ goto __pyx_L3; } /* "View.MemoryView":1403 * data += stride * else: * for i in range(extent): # <<<<<<<<<<<<<< * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) */ /*else*/ { __pyx_t_2 = __pyx_v_extent; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1404 * else: * for i in range(extent): * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, itemsize, item) * data += stride */ __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1406 * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) * data += stride # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } } __pyx_L3:; /* "View.MemoryView":1391 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /* function exit code */ } static struct __pyx_vtabstruct_array __pyx_vtable_array; static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_array_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_array_obj *)o); p->__pyx_vtab = __pyx_vtabptr_array; p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) { Py_DECREF(o); o = 0; } return o; } static void __pyx_tp_dealloc_array(PyObject *o) { struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_array___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->mode); Py_CLEAR(p->_format); (*Py_TYPE(o)->tp_free)(o); } static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_array___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { PyObject *v = PyObject_GenericGetAttr(o, n); if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); v = __pyx_array___getattr__(o, n); } return v; } static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); } static PyMethodDef __pyx_methods_array[] = { {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_array[] = { {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_array = { 0, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_array, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_array = { 0, /*mp_length*/ __pyx_array___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_array = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_array_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._ll2cr.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ __pyx_tp_getattro_array, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_array, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_array, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_array, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_MemviewEnum_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_MemviewEnum_obj *)o); p->name = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_Enum(PyObject *o) { struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->name); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { int e; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } return 0; } static int __pyx_tp_clear_Enum(PyObject *o) { PyObject* tmp; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_Enum[] = { {0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._ll2cr.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_MemviewEnum___repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_Enum, /*tp_traverse*/ __pyx_tp_clear_Enum, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_Enum, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_MemviewEnum___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_Enum, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryview_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_memoryview_obj *)o); p->__pyx_vtab = __pyx_vtabptr_memoryview; p->obj = Py_None; Py_INCREF(Py_None); p->_size = Py_None; Py_INCREF(Py_None); p->_array_interface = Py_None; Py_INCREF(Py_None); p->view.obj = NULL; if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) { Py_DECREF(o); o = 0; } return o; } static void __pyx_tp_dealloc_memoryview(PyObject *o) { struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryview___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->obj); Py_CLEAR(p->_size); Py_CLEAR(p->_array_interface); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; if (p->obj) { e = (*v)(p->obj, a); if (e) return e; } if (p->_size) { e = (*v)(p->_size, a); if (e) return e; } if (p->_array_interface) { e = (*v)(p->_array_interface, a); if (e) return e; } if (p->view.obj) { e = (*v)(p->view.obj, a); if (e) return e; } return 0; } static int __pyx_tp_clear_memoryview(PyObject *o) { PyObject* tmp; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; tmp = ((PyObject*)p->obj); p->obj = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_size); p->_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_array_interface); p->_array_interface = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); Py_CLEAR(p->view.obj); return 0; } static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_memoryview___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); } static PyMethodDef __pyx_methods_memoryview[] = { {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_memoryview[] = { {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_memoryview = { __pyx_memoryview___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_memoryview, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_memoryview = { __pyx_memoryview___len__, /*mp_length*/ __pyx_memoryview___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_memoryview = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_memoryview_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._ll2cr.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_memoryview___repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_memoryview___str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_memoryview, /*tp_traverse*/ __pyx_tp_clear_memoryview, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_memoryview, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_memoryview, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_memoryview, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryviewslice_obj *p; PyObject *o = __pyx_tp_new_memoryview(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_memoryviewslice_obj *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; p->from_object = Py_None; Py_INCREF(Py_None); p->from_slice.memview = NULL; return o; } static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; #if PY_VERSION_HEX >= 0x030400a1 if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryviewslice___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->from_object); PyObject_GC_Track(o); __pyx_tp_dealloc_memoryview(o); } static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; if (p->from_object) { e = (*v)(p->from_object, a); if (e) return e; } return 0; } static int __pyx_tp_clear__memoryviewslice(PyObject *o) { PyObject* tmp; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; __pyx_tp_clear_memoryview(o); tmp = ((PyObject*)p->from_object); p->from_object = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); __PYX_XDEC_MEMVIEW(&p->from_slice, 1); return 0; } static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); } static PyMethodDef __pyx_methods__memoryviewslice[] = { {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) "pyresample.ewa._ll2cr._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___repr__, /*tp_repr*/ #else 0, /*tp_repr*/ #endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___str__, /*tp_str*/ #else 0, /*tp_str*/ #endif 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "Internal class for passing memoryview slices to Python", /*tp_doc*/ __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ __pyx_tp_clear__memoryviewslice, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods__memoryviewslice, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets__memoryviewslice, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new__memoryviewslice, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif }; static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 static struct PyModuleDef __pyx_moduledef = { #if PY_VERSION_HEX < 0x03020000 { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, #else PyModuleDef_HEAD_INIT, #endif "_ll2cr", __pyx_k_Map_longitude_latitude_points_to, /* m_doc */ -1, /* m_size */ __pyx_methods /* m_methods */, NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, {&__pyx_kp_s_Custom_class_to_make_ll2cr_proje, __pyx_k_Custom_class_to_make_ll2cr_proje, sizeof(__pyx_k_Custom_class_to_make_ll2cr_proje), 0, 0, 1, 0}, {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, {&__pyx_kp_s_Expected_at_least_d_arguments, __pyx_k_Expected_at_least_d_arguments, sizeof(__pyx_k_Expected_at_least_d_arguments), 0, 0, 1, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, {&__pyx_n_s_MyProj, __pyx_k_MyProj, sizeof(__pyx_k_MyProj), 0, 0, 1, 1}, {&__pyx_n_s_MyProj___call, __pyx_k_MyProj___call, sizeof(__pyx_k_MyProj___call), 0, 0, 1, 1}, {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, {&__pyx_n_s_Proj, __pyx_k_Proj, sizeof(__pyx_k_Proj), 0, 0, 1, 1}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, {&__pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_k_Users_davidh_repos_git_pyresamp, sizeof(__pyx_k_Users_davidh_repos_git_pyresamp), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_kp_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 0}, {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0}, {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, {&__pyx_n_s_cell_height, __pyx_k_cell_height, sizeof(__pyx_k_cell_height), 0, 0, 1, 1}, {&__pyx_n_s_cell_width, __pyx_k_cell_width, sizeof(__pyx_k_cell_width), 0, 0, 1, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_col, __pyx_k_col, sizeof(__pyx_k_col), 0, 0, 1, 1}, {&__pyx_n_s_cols_out, __pyx_k_cols_out, sizeof(__pyx_k_cols_out), 0, 0, 1, 1}, {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, {&__pyx_n_s_docformat, __pyx_k_docformat, sizeof(__pyx_k_docformat), 0, 0, 1, 1}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_errcheck, __pyx_k_errcheck, sizeof(__pyx_k_errcheck), 0, 0, 1, 1}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_fill_in, __pyx_k_fill_in, sizeof(__pyx_k_fill_in), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_float64_t, __pyx_k_float64_t, sizeof(__pyx_k_float64_t), 0, 0, 1, 1}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_s_fwd, __pyx_k_fwd, sizeof(__pyx_k_fwd), 0, 0, 1, 1}, {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1}, {&__pyx_n_s_height, __pyx_k_height, sizeof(__pyx_k_height), 0, 0, 1, 1}, {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_inv, __pyx_k_inv, sizeof(__pyx_k_inv), 0, 0, 1, 1}, {&__pyx_n_s_inverse, __pyx_k_inverse, sizeof(__pyx_k_inverse), 0, 0, 1, 1}, {&__pyx_n_s_is_latlong, __pyx_k_is_latlong, sizeof(__pyx_k_is_latlong), 0, 0, 1, 1}, {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, {&__pyx_n_s_lat0, __pyx_k_lat0, sizeof(__pyx_k_lat0), 0, 0, 1, 1}, {&__pyx_n_s_lat1, __pyx_k_lat1, sizeof(__pyx_k_lat1), 0, 0, 1, 1}, {&__pyx_n_s_lat_arr, __pyx_k_lat_arr, sizeof(__pyx_k_lat_arr), 0, 0, 1, 1}, {&__pyx_n_s_lats, __pyx_k_lats, sizeof(__pyx_k_lats), 0, 0, 1, 1}, {&__pyx_n_s_ll2cr_dynamic, __pyx_k_ll2cr_dynamic, sizeof(__pyx_k_ll2cr_dynamic), 0, 0, 1, 1}, {&__pyx_n_s_ll2cr_static, __pyx_k_ll2cr_static, sizeof(__pyx_k_ll2cr_static), 0, 0, 1, 1}, {&__pyx_n_s_lon0, __pyx_k_lon0, sizeof(__pyx_k_lon0), 0, 0, 1, 1}, {&__pyx_n_s_lon1, __pyx_k_lon1, sizeof(__pyx_k_lon1), 0, 0, 1, 1}, {&__pyx_n_s_lon_arr, __pyx_k_lon_arr, sizeof(__pyx_k_lon_arr), 0, 0, 1, 1}, {&__pyx_n_s_lons, __pyx_k_lons, sizeof(__pyx_k_lons), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_n_s_ndarray, __pyx_k_ndarray, sizeof(__pyx_k_ndarray), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, {&__pyx_n_s_num_cols, __pyx_k_num_cols, sizeof(__pyx_k_num_cols), 0, 0, 1, 1}, {&__pyx_n_s_num_rows, __pyx_k_num_rows, sizeof(__pyx_k_num_rows), 0, 0, 1, 1}, {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_origin_x, __pyx_k_origin_x, sizeof(__pyx_k_origin_x), 0, 0, 1, 1}, {&__pyx_n_s_origin_y, __pyx_k_origin_y, sizeof(__pyx_k_origin_y), 0, 0, 1, 1}, {&__pyx_n_s_ox, __pyx_k_ox, sizeof(__pyx_k_ox), 0, 0, 1, 1}, {&__pyx_n_s_oy, __pyx_k_oy, sizeof(__pyx_k_oy), 0, 0, 1, 1}, {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_s_points_in_grid, __pyx_k_points_in_grid, sizeof(__pyx_k_points_in_grid), 0, 0, 1, 1}, {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, {&__pyx_n_s_proj, __pyx_k_proj, sizeof(__pyx_k_proj), 0, 0, 1, 1}, {&__pyx_n_s_proj4_definition, __pyx_k_proj4_definition, sizeof(__pyx_k_proj4_definition), 0, 0, 1, 1}, {&__pyx_n_s_proj_circum, __pyx_k_proj_circum, sizeof(__pyx_k_proj_circum), 0, 0, 1, 1}, {&__pyx_n_s_projected_tuple, __pyx_k_projected_tuple, sizeof(__pyx_k_projected_tuple), 0, 0, 1, 1}, {&__pyx_n_s_projection_circumference, __pyx_k_projection_circumference, sizeof(__pyx_k_projection_circumference), 0, 0, 1, 1}, {&__pyx_n_s_pyproj, __pyx_k_pyproj, sizeof(__pyx_k_pyproj), 0, 0, 1, 1}, {&__pyx_n_s_pyresample_ewa__ll2cr, __pyx_k_pyresample_ewa__ll2cr, sizeof(__pyx_k_pyresample_ewa__ll2cr), 0, 0, 1, 1}, {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, {&__pyx_n_s_radians, __pyx_k_radians, sizeof(__pyx_k_radians), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_kp_s_restructuredtext_en, __pyx_k_restructuredtext_en, sizeof(__pyx_k_restructuredtext_en), 0, 0, 1, 0}, {&__pyx_n_s_row, __pyx_k_row, sizeof(__pyx_k_row), 0, 0, 1, 1}, {&__pyx_n_s_rows_out, __pyx_k_rows_out, sizeof(__pyx_k_rows_out), 0, 0, 1, 1}, {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1}, {&__pyx_n_s_width, __pyx_k_width, sizeof(__pyx_k_width), 0, 0, 1, 1}, {&__pyx_n_s_x0, __pyx_k_x0, sizeof(__pyx_k_x0), 0, 0, 1, 1}, {&__pyx_n_s_x1, __pyx_k_x1, sizeof(__pyx_k_x1), 0, 0, 1, 1}, {&__pyx_n_s_x2, __pyx_k_x2, sizeof(__pyx_k_x2), 0, 0, 1, 1}, {&__pyx_n_s_x_tmp, __pyx_k_x_tmp, sizeof(__pyx_k_x_tmp), 0, 0, 1, 1}, {&__pyx_n_s_xmax, __pyx_k_xmax, sizeof(__pyx_k_xmax), 0, 0, 1, 1}, {&__pyx_n_s_xmin, __pyx_k_xmin, sizeof(__pyx_k_xmin), 0, 0, 1, 1}, {&__pyx_n_s_y0, __pyx_k_y0, sizeof(__pyx_k_y0), 0, 0, 1, 1}, {&__pyx_n_s_y1, __pyx_k_y1, sizeof(__pyx_k_y1), 0, 0, 1, 1}, {&__pyx_n_s_y2, __pyx_k_y2, sizeof(__pyx_k_y2), 0, 0, 1, 1}, {&__pyx_n_s_y_tmp, __pyx_k_y_tmp, sizeof(__pyx_k_y_tmp), 0, 0, 1, 1}, {&__pyx_n_s_ymax, __pyx_k_ymax, sizeof(__pyx_k_ymax), 0, 0, 1, 1}, {&__pyx_n_s_ymin, __pyx_k_ymin, sizeof(__pyx_k_ymin), 0, 0, 1, 1}, {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 64, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 150, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 218, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 799, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 146, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 149, __pyx_L1_error) __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 396, __pyx_L1_error) __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(2, 599, __pyx_L1_error) __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(2, 818, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pyresample/ewa/_ll2cr.pyx":73 * of the projection. * """ * lon0, lat0 = p(0, 0, inverse=True) # <<<<<<<<<<<<<< * lon1 = lon0 + 180.0 * lat1 = lat0 + 5.0 */ __pyx_tuple_ = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "pyresample/ewa/_ll2cr.pyx":87 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_dynamic(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s__2); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s__4); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* "pyresample/ewa/_ll2cr.pyx":229 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_static(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s__2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s__4); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":218 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":222 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":259 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":799 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":803 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); /* "../../../../../opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":823 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* "View.MemoryView":131 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(2, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "View.MemoryView":134 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(2, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "View.MemoryView":137 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_n_s_ASCII); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "View.MemoryView":146 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(2, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "View.MemoryView":174 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(2, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "View.MemoryView":190 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(2, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "View.MemoryView":484 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(2, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "View.MemoryView":556 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(2, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "View.MemoryView":563 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __pyx_tuple__26 = PyTuple_New(1); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(2, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_tuple__26, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_tuple__26); /* "View.MemoryView":668 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_slice__27 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__27)) __PYX_ERR(2, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__27); __Pyx_GIVEREF(__pyx_slice__27); /* "View.MemoryView":671 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ __pyx_slice__28 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__28)) __PYX_ERR(2, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__28); __Pyx_GIVEREF(__pyx_slice__28); /* "View.MemoryView":682 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_slice__29 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__29)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__29); __Pyx_GIVEREF(__pyx_slice__29); /* "View.MemoryView":689 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* "pyresample/ewa/_ll2cr.pyx":48 * of the ll2cr modules. * """ * def __call__(self, lons, lats, **kwargs): # <<<<<<<<<<<<<< * if self.is_latlong(): * return lons, lats */ __pyx_tuple__31 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_lons, __pyx_n_s_lats, __pyx_n_s_kwargs, __pyx_n_s_inverse, __pyx_n_s_radians, __pyx_n_s_errcheck); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_n_s_call, 48, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 48, __pyx_L1_error) /* "pyresample/ewa/_ll2cr.pyx":67 * * * def projection_circumference(p): # <<<<<<<<<<<<<< * """Return the projection circumference if the projection is cylindrical. None is returned otherwise. * */ __pyx_tuple__33 = PyTuple_Pack(11, __pyx_n_s_p, __pyx_n_s_lon0, __pyx_n_s_lat0, __pyx_n_s_lon1, __pyx_n_s_lat1, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_x1, __pyx_n_s_y1, __pyx_n_s_x2, __pyx_n_s_y2); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(1, 0, 11, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_n_s_projection_circumference, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 67, __pyx_L1_error) /* "pyresample/ewa/_ll2cr.pyx":87 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_dynamic(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ __pyx_tuple__35 = PyTuple_Pack(30, __pyx_n_s_lon_arr, __pyx_n_s_lat_arr, __pyx_n_s_fill_in, __pyx_n_s_proj4_definition, __pyx_n_s_cell_width, __pyx_n_s_cell_height, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_origin_x, __pyx_n_s_origin_y, __pyx_n_s_p, __pyx_n_s_projected_tuple, __pyx_n_s_rows_out, __pyx_n_s_cols_out, __pyx_n_s_proj_circum, __pyx_n_s_w, __pyx_n_s_h, __pyx_n_s_ox, __pyx_n_s_oy, __pyx_n_s_row, __pyx_n_s_col, __pyx_n_s_num_rows, __pyx_n_s_num_cols, __pyx_n_s_xmin, __pyx_n_s_xmax, __pyx_n_s_ymin, __pyx_n_s_ymax, __pyx_n_s_x_tmp, __pyx_n_s_y_tmp, __pyx_n_s_points_in_grid); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(10, 0, 30, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_n_s_ll2cr_dynamic, 87, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 87, __pyx_L1_error) /* "pyresample/ewa/_ll2cr.pyx":229 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_static(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ __pyx_tuple__37 = PyTuple_Pack(22, __pyx_n_s_lon_arr, __pyx_n_s_lat_arr, __pyx_n_s_fill_in, __pyx_n_s_proj4_definition, __pyx_n_s_cell_width, __pyx_n_s_cell_height, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_origin_x, __pyx_n_s_origin_y, __pyx_n_s_p, __pyx_n_s_projected_tuple, __pyx_n_s_rows_out, __pyx_n_s_cols_out, __pyx_n_s_proj_circum, __pyx_n_s_row, __pyx_n_s_col, __pyx_n_s_num_rows, __pyx_n_s_num_cols, __pyx_n_s_x_tmp, __pyx_n_s_y_tmp, __pyx_n_s_points_in_grid); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(10, 0, 22, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_davidh_repos_git_pyresamp, __pyx_n_s_ll2cr_static, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 229, __pyx_L1_error) /* "View.MemoryView":282 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(2, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* "View.MemoryView":283 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(2, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40); /* "View.MemoryView":284 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(2, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* "View.MemoryView":287 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42); /* "View.MemoryView":288 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_5_0 = PyFloat_FromDouble(5.0); if (unlikely(!__pyx_float_5_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_180_0 = PyFloat_FromDouble(180.0); if (unlikely(!__pyx_float_180_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } #if PY_MAJOR_VERSION < 3 PyMODINIT_FUNC init_ll2cr(void); /*proto*/ PyMODINIT_FUNC init_ll2cr(void) #else PyMODINIT_FUNC PyInit__ll2cr(void); /*proto*/ PyMODINIT_FUNC PyInit__ll2cr(void) #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; static PyThread_type_lock __pyx_t_7[8]; __Pyx_RefNannyDeclarations #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__ll2cr(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_ll2cr", __pyx_methods, __pyx_k_Map_longitude_latitude_points_to, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) #if CYTHON_COMPILING_IN_PYPY Py_INCREF(__pyx_b); #endif if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pyresample__ewa___ll2cr) { if (PyObject_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pyresample.ewa._ll2cr")) { if (unlikely(PyDict_SetItemString(modules, "pyresample.ewa._ll2cr", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Global init code ---*/ generic = Py_None; Py_INCREF(Py_None); strided = Py_None; Py_INCREF(Py_None); indirect = Py_None; Py_INCREF(Py_None); contiguous = Py_None; Py_INCREF(Py_None); indirect_contiguous = Py_None; Py_INCREF(Py_None); /*--- Variable export code ---*/ /*--- Function export code ---*/ /*--- Type init code ---*/ __pyx_vtabptr_array = &__pyx_vtable_array; __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 103, __pyx_L1_error) __pyx_type___pyx_array.tp_print = 0; if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 103, __pyx_L1_error) __pyx_array_type = &__pyx_type___pyx_array; if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 275, __pyx_L1_error) __pyx_type___pyx_MemviewEnum.tp_print = 0; __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 326, __pyx_L1_error) __pyx_type___pyx_memoryview.tp_print = 0; if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 326, __pyx_L1_error) __pyx_memoryview_type = &__pyx_type___pyx_memoryview; __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 951, __pyx_L1_error) __pyx_type___pyx_memoryviewslice.tp_print = 0; if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 951, __pyx_L1_error) __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; /*--- Type import code ---*/ __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", #if CYTHON_COMPILING_IN_PYPY sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(3, 9, __pyx_L1_error) __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), 0); if (unlikely(!__pyx_ptype_7cpython_4bool_bool)) __PYX_ERR(4, 8, __pyx_L1_error) __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), 0); if (unlikely(!__pyx_ptype_7cpython_7complex_complex)) __PYX_ERR(5, 15, __pyx_L1_error) __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) __PYX_ERR(1, 155, __pyx_L1_error) __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) __PYX_ERR(1, 168, __pyx_L1_error) __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) __PYX_ERR(1, 172, __pyx_L1_error) __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) __PYX_ERR(1, 181, __pyx_L1_error) __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) __PYX_ERR(1, 861, __pyx_L1_error) /*--- Variable import code ---*/ /*--- Function import code ---*/ /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pyresample/ewa/_ll2cr.pyx":24 * """Map longitude/latitude points to column/rows of a grid. * """ * __docformat__ = "restructuredtext en" # <<<<<<<<<<<<<< * * from pyproj import _proj, Proj */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_docformat, __pyx_kp_s_restructuredtext_en) < 0) __PYX_ERR(0, 24, __pyx_L1_error) /* "pyresample/ewa/_ll2cr.pyx":26 * __docformat__ = "restructuredtext en" * * from pyproj import _proj, Proj # <<<<<<<<<<<<<< * import numpy * cimport cython */ __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_proj); __Pyx_GIVEREF(__pyx_n_s_proj); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_proj); __Pyx_INCREF(__pyx_n_s_Proj); __Pyx_GIVEREF(__pyx_n_s_Proj); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_Proj); __pyx_t_2 = __Pyx_Import(__pyx_n_s_pyproj, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_proj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_proj, __pyx_t_1) < 0) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Proj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Proj, __pyx_t_1) < 0) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyresample/ewa/_ll2cr.pyx":27 * * from pyproj import _proj, Proj * import numpy # <<<<<<<<<<<<<< * cimport cython * from cpython cimport bool */ __pyx_t_2 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyresample/ewa/_ll2cr.pyx":42 * * * class MyProj(Proj): # <<<<<<<<<<<<<< * """Custom class to make ll2cr projection work faster without compiling against the PROJ.4 library itself. * */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Proj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_MyProj, __pyx_n_s_MyProj, (PyObject *) NULL, __pyx_n_s_pyresample_ewa__ll2cr, __pyx_kp_s_Custom_class_to_make_ll2cr_proje); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pyresample/ewa/_ll2cr.pyx":48 * of the ll2cr modules. * """ * def __call__(self, lons, lats, **kwargs): # <<<<<<<<<<<<<< * if self.is_latlong(): * return lons, lats */ __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_10pyresample_3ewa_6_ll2cr_6MyProj_1__call__, 0, __pyx_n_s_MyProj___call, NULL, __pyx_n_s_pyresample_ewa__ll2cr, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyObject_SetItem(__pyx_t_3, __pyx_n_s_call, __pyx_t_4) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pyresample/ewa/_ll2cr.pyx":42 * * * class MyProj(Proj): # <<<<<<<<<<<<<< * """Custom class to make ll2cr projection work faster without compiling against the PROJ.4 library itself. * */ __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_MyProj, __pyx_t_1, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_MyProj, __pyx_t_4) < 0) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":67 * * * def projection_circumference(p): # <<<<<<<<<<<<<< * """Return the projection circumference if the projection is cylindrical. None is returned otherwise. * */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10pyresample_3ewa_6_ll2cr_1projection_circumference, NULL, __pyx_n_s_pyresample_ewa__ll2cr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_projection_circumference, __pyx_t_1) < 0) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":87 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_dynamic(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 0, Py_None); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None); __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_10pyresample_3ewa_6_ll2cr_7ll2cr_dynamic, 0, __pyx_n_s_ll2cr_dynamic, NULL, __pyx_n_s_pyresample_ewa__ll2cr, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults1), 4)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_INCREF(Py_None); __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_3)->__pyx_arg_width = Py_None; __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_3)->__pyx_arg_height = Py_None; __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_3)->__pyx_arg_origin_x = Py_None; __Pyx_GIVEREF(Py_None); __Pyx_INCREF(Py_None); __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_3)->__pyx_arg_origin_y = Py_None; __Pyx_GIVEREF(Py_None); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_10pyresample_3ewa_6_ll2cr_16__defaults__); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_float64_t, __pyx_t_3) < 0) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_mdef_10pyresample_3ewa_6_ll2cr_3ll2cr_dynamic, 0, __pyx_n_s_ll2cr_dynamic, NULL, __pyx_n_s_pyresample_ewa__ll2cr, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_10pyresample_3ewa_6_ll2cr_16__defaults__); ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ll2cr_dynamic, __pyx_t_3) < 0) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyresample/ewa/_ll2cr.pyx":229 * @cython.wraparound(False) * @cython.cdivision(True) * def ll2cr_static(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, # <<<<<<<<<<<<<< * cr_dtype fill_in, str proj4_definition, * double cell_width, double cell_height, */ __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_10pyresample_3ewa_6_ll2cr_11ll2cr_static, 0, __pyx_n_s_ll2cr_static, NULL, __pyx_n_s_pyresample_ewa__ll2cr, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float64_t, __pyx_t_5) < 0) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_mdef_10pyresample_3ewa_6_ll2cr_5ll2cr_static, 0, __pyx_n_s_ll2cr_static, NULL, __pyx_n_s_pyresample_ewa__ll2cr, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple); ((__pyx_FusedFunctionObject *) __pyx_t_5)->__signatures__ = __pyx_t_4; __Pyx_GIVEREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ll2cr_static, __pyx_t_5) < 0) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyresample/ewa/_ll2cr.pyx":1 * #!/usr/bin/env python # <<<<<<<<<<<<<< * # -*- coding: utf-8 -*- * */ __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_6) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":207 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * def __dealloc__(array self): */ __pyx_t_6 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_6) < 0) __PYX_ERR(2, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_array_type); /* "View.MemoryView":282 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":283 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":284 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":287 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":288 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":312 * * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ * PyThread_allocate_lock(), */ __pyx_memoryview_thread_locks_used = 0; /* "View.MemoryView":313 * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< * PyThread_allocate_lock(), * PyThread_allocate_lock(), */ __pyx_t_7[0] = PyThread_allocate_lock(); __pyx_t_7[1] = PyThread_allocate_lock(); __pyx_t_7[2] = PyThread_allocate_lock(); __pyx_t_7[3] = PyThread_allocate_lock(); __pyx_t_7[4] = PyThread_allocate_lock(); __pyx_t_7[5] = PyThread_allocate_lock(); __pyx_t_7[6] = PyThread_allocate_lock(); __pyx_t_7[7] = PyThread_allocate_lock(); memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_7, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); /* "View.MemoryView":535 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_6 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_6) < 0) __PYX_ERR(2, 535, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_memoryview_type); /* "View.MemoryView":981 * return self.from_object * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_6 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_6) < 0) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_memoryviewslice_type); /* "View.MemoryView":1391 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pyresample.ewa._ll2cr", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_DECREF(__pyx_m); __pyx_m = 0; } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pyresample.ewa._ll2cr"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if PY_MAJOR_VERSION < 3 return; #else return __pyx_m; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule((char *)modname); if (!m) goto end; p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { #else if (likely(PyCFunction_Check(func))) { #endif if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { #else if (likely(PyCFunction_Check(func))) { #endif if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* dict_getitem_default */ static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) { PyObject* value; #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (unlikely(PyErr_Occurred())) return NULL; value = default_value; } Py_INCREF(value); #else if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) { value = PyDict_GetItem(d, key); if (unlikely(!value)) { value = default_value; } Py_INCREF(value); } else { if (default_value == Py_None) default_value = NULL; value = PyObject_CallMethodObjArgs( d, __pyx_n_s_get, key, default_value, NULL); } #endif return value; } /* GetModuleGlobalName */ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { PyObject *result; #if CYTHON_COMPILING_IN_CPYTHON result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { #else result = PyObject_GetItem(__pyx_d, name); if (!result) { PyErr_Clear(); #endif result = __Pyx_GetBuiltinName(name); } return result; } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_COMPILING_IN_CPYTHON PyThreadState *tstate = PyThreadState_GET(); PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } /* PyFloatBinop */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, CYTHON_UNUSED int inplace) { const double b = floatval; double a, result; if (likely(PyFloat_CheckExact(op1))) { a = PyFloat_AS_DOUBLE(op1); } else #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { a = (double) PyInt_AS_LONG(op1); } else #endif if (likely(PyLong_CheckExact(op1))) { #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); switch (size) { case 0: a = 0.0; break; case -1: a = -(double) digits[0]; break; case 1: a = (double) digits[0]; break; case -2: case 2: if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) { a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) (1L<<53))) { if (size == -2) a = -a; break; } } case -3: case 3: if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) { a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) (1L<<53))) { if (size == -3) a = -a; break; } } case -4: case 4: if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) { a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) (1L<<53))) { if (size == -4) a = -a; break; } } default: #else { #endif a = PyLong_AsDouble(op1); if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL; } } else { return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } PyFPE_START_PROTECT("add", return NULL) result = a + b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } #endif /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_VERSION_HEX < 0x03030000 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(1); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); #endif if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } bad: #if PY_VERSION_HEX < 0x03030000 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } /* SaveResetException */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* PyErrExceptionMatches */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { PyObject *exc_type = tstate->curexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; return PyErr_GivenExceptionMatches(exc_type, err); } #endif /* GetException */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { #endif PyObject *local_type, *local_value, *local_tb; #if CYTHON_COMPILING_IN_CPYTHON PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_COMPILING_IN_CPYTHON tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* PyErrFetchRestore */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } #if PY_VERSION_HEX >= 0x03030000 if (cause) { #else if (cause && cause != Py_None) { #endif PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = PyThreadState_GET(); PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* UnicodeAsUCS4 */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) { Py_ssize_t length; #if CYTHON_PEP393_ENABLED length = PyUnicode_GET_LENGTH(x); if (likely(length == 1)) { return PyUnicode_READ_CHAR(x, 0); } #else length = PyUnicode_GET_SIZE(x); if (likely(length == 1)) { return PyUnicode_AS_UNICODE(x)[0]; } #if Py_UNICODE_SIZE == 2 else if (PyUnicode_GET_SIZE(x) == 2) { Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0]; if (high_val >= 0xD800 && high_val <= 0xDBFF) { Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1]; if (low_val >= 0xDC00 && low_val <= 0xDFFF) { return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1))); } } } #endif #endif PyErr_Format(PyExc_ValueError, "only single character unicode strings can be converted to Py_UCS4, " "got length %" CYTHON_FORMAT_SSIZE_T "d", length); return (Py_UCS4)-1; } /* object_ord */ static long __Pyx__PyObject_Ord(PyObject* c) { Py_ssize_t size; if (PyBytes_Check(c)) { size = PyBytes_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyBytes_AS_STRING(c)[0]; } #if PY_MAJOR_VERSION < 3 } else if (PyUnicode_Check(c)) { return (long)__Pyx_PyUnicode_AsPy_UCS4(c); #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) } else if (PyByteArray_Check(c)) { size = PyByteArray_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyByteArray_AS_STRING(c)[0]; } #endif } else { PyErr_Format(PyExc_TypeError, "ord() expected string of length 1, but %.200s found", c->ob_type->tp_name); return (long)(Py_UCS4)-1; } PyErr_Format(PyExc_TypeError, "ord() expected a character, but string of length %zd found", size); return (long)(Py_UCS4)-1; } /* SetItemInt */ static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (!j) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) { #else if (is_list || PySequence_Check(o)) { #endif return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method, *result = NULL; method = __Pyx_PyObject_GetAttrStr(obj, method_name); if (unlikely(!method)) goto bad; #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyMethod_Check(method))) { PyObject *self = PyMethod_GET_SELF(method); if (likely(self)) { PyObject *function = PyMethod_GET_FUNCTION(method); result = __Pyx_PyObject_CallOneArg(function, self); Py_DECREF(method); return result; } } #endif result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int is_tuple, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; if (!is_tuple && unlikely(!PyTuple_Check(tuple))) { iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = Py_TYPE(iter)->tp_iternext; value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); } else { if (!has_known_size && unlikely(PyTuple_GET_SIZE(tuple) != 2)) { __Pyx_UnpackTupleError(tuple, 2); goto bad; } #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } } *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; #if !CYTHON_COMPILING_IN_PYPY if (is_dict) { *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; } #endif *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* ArgTypeTest */ static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); } static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (none_allowed && obj == Py_None) return 1; else if (exact) { if (likely(Py_TYPE(obj) == type)) return 1; #if PY_MAJOR_VERSION == 2 else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(PyObject_TypeCheck(obj, type))) return 1; } __Pyx_RaiseArgumentTypeInvalid(name, obj, type); return 0; } /* BufferFormatCheck */ static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { unsigned int n = 1; return *(unsigned char*)(&n) != 0; } static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; ctx->is_valid_array = 0; ctx->struct_alignment = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t < '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static int __Pyx_BufFmt_ExpectNumber(const char **ts) { int number = __Pyx_BufFmt_ParseNumber(ts); if (number == -1) PyErr_Format(PyExc_ValueError,\ "Does not understand character buffer dtype format string ('%c')", **ts); return number; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'c': return "'char'"; case 'b': return "'signed char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 's': case 'p': return "a string"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } /* These are for computing the padding at the end of the struct to align on the first member of the struct. This will probably the same as above, but we don't have any guarantees. */ typedef struct { short x; char c; } __Pyx_pad_short; typedef struct { int x; char c; } __Pyx_pad_int; typedef struct { long x; char c; } __Pyx_pad_long; typedef struct { float x; char c; } __Pyx_pad_float; typedef struct { double x; char c; } __Pyx_pad_double; typedef struct { long double x; char c; } __Pyx_pad_longdouble; typedef struct { void *x; char c; } __Pyx_pad_void_p; #ifdef HAVE_LONG_LONG typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': return 'H'; case 'b': case 'h': case 'i': case 'l': case 'q': case 's': case 'p': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset, arraysize = 1; if (ctx->enc_type == 0) return 0; if (ctx->head->field->type->arraysize[0]) { int i, ndim = 0; if (ctx->enc_type == 's' || ctx->enc_type == 'p') { ctx->is_valid_array = ctx->head->field->type->ndim == 1; ndim = 1; if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %zu", ctx->head->field->type->arraysize[0], ctx->enc_count); return -1; } } if (!ctx->is_valid_array) { PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", ctx->head->field->type->ndim, ndim); return -1; } for (i = 0; i < ctx->head->field->type->ndim; i++) { arraysize *= ctx->head->field->type->arraysize[i]; } ctx->is_valid_array = 0; ctx->enc_count = 1; } group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; if (ctx->struct_alignment == 0) ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, ctx->is_complex); } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } if ((type->typegroup == 'H' || group == 'H') && type->size == size) { } else { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; if (arraysize) ctx->fmt_offset += (arraysize - 1) * size; --ctx->enc_count; while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static CYTHON_INLINE PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; int i = 0, number; int ndim = ctx->head->field->type->ndim; ; ++ts; if (ctx->new_count != 1) { PyErr_SetString(PyExc_ValueError, "Cannot handle repeated arrays in format string"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; while (*ts && *ts != ')') { switch (*ts) { case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; default: break; } number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) return PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %d", ctx->head->field->type->arraysize[i], number); if (*ts != ',' && *ts != ')') return PyErr_Format(PyExc_ValueError, "Expected a comma in format string, got '%c'", *ts); if (*ts == ',') ts++; i++; } if (i != ndim) return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", ctx->head->field->type->ndim, i); if (!*ts) { PyErr_SetString(PyExc_ValueError, "Unexpected end of format string, expected ')'"); return NULL; } ctx->is_valid_array = 1; ctx->new_count = 1; *tsp = ++ts; return Py_None; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case '\r': case '\n': ++ts; break; case '<': if (!__Pyx_IsLittleEndian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_IsLittleEndian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; size_t struct_alignment = ctx->struct_alignment; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; ctx->enc_count = 0; ctx->struct_alignment = 0; ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; if (struct_alignment) ctx->struct_alignment = struct_alignment; } break; case '}': { size_t alignment = ctx->struct_alignment; ++ts; if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; if (alignment && ctx->fmt_offset % alignment) { ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); } } return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': case 'p': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { ctx->enc_count += ctx->new_count; ctx->new_count = 1; got_Z = 0; ++ts; break; } case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; case '(': if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; break; default: { int number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; ctx->new_count = (size_t)number; } } } } static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) { buf->buf = NULL; buf->obj = NULL; buf->strides = __Pyx_zeros; buf->shape = __Pyx_zeros; buf->suboffsets = __Pyx_minusones; } static CYTHON_INLINE int __Pyx_GetBufferAndValidate( Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) { if (obj == Py_None || obj == NULL) { __Pyx_ZeroBuffer(buf); return 0; } buf->buf = NULL; if (__Pyx_GetBuffer(obj, buf, flags) == -1) goto fail; if (buf->ndim != nd) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", nd, buf->ndim); goto fail; } if (!cast) { __Pyx_BufFmt_Context ctx; __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned)buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones; return 0; fail:; __Pyx_ZeroBuffer(buf); return -1; } static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) { if (info->buf == NULL) return; if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL; __Pyx_ReleaseBuffer(info); } /* MemviewSliceInit */ static int __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference) { __Pyx_RefNannyDeclarations int i, retval=-1; Py_buffer *buf = &memview->view; __Pyx_RefNannySetupContext("init_memviewslice", 0); if (!buf) { PyErr_SetString(PyExc_ValueError, "buf is NULL."); goto fail; } else if (memviewslice->memview || memviewslice->data) { PyErr_SetString(PyExc_ValueError, "memviewslice is already initialized!"); goto fail; } if (buf->strides) { for (i = 0; i < ndim; i++) { memviewslice->strides[i] = buf->strides[i]; } } else { Py_ssize_t stride = buf->itemsize; for (i = ndim - 1; i >= 0; i--) { memviewslice->strides[i] = stride; stride *= buf->shape[i]; } } for (i = 0; i < ndim; i++) { memviewslice->shape[i] = buf->shape[i]; if (buf->suboffsets) { memviewslice->suboffsets[i] = buf->suboffsets[i]; } else { memviewslice->suboffsets[i] = -1; } } memviewslice->memview = memview; memviewslice->data = (char *)buf->buf; if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { Py_INCREF(memview); } retval = 0; goto no_fail; fail: memviewslice->memview = 0; memviewslice->data = 0; retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } static CYTHON_INLINE void __pyx_fatalerror(const char *fmt, ...) { va_list vargs; char msg[200]; #ifdef HAVE_STDARG_PROTOTYPES va_start(vargs, fmt); #else va_start(vargs); #endif vsnprintf(msg, 200, fmt, vargs); Py_FatalError(msg); va_end(vargs); } static CYTHON_INLINE int __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)++; PyThread_release_lock(lock); return result; } static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)--; PyThread_release_lock(lock); return result; } static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int first_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview || (PyObject *) memview == Py_None) return; if (__pyx_get_slice_count(memview) < 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); first_time = __pyx_add_acquisition_count(memview) == 0; if (first_time) { if (have_gil) { Py_INCREF((PyObject *) memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_INCREF((PyObject *) memview); PyGILState_Release(_gilstate); } } } static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int last_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview ) { return; } else if ((PyObject *) memview == Py_None) { memslice->memview = NULL; return; } if (__pyx_get_slice_count(memview) <= 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); last_time = __pyx_sub_acquisition_count(memview) == 1; memslice->data = NULL; if (last_time) { if (have_gil) { Py_CLEAR(memslice->memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_CLEAR(memslice->memview); PyGILState_Release(_gilstate); } } else { memslice->memview = NULL; } } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(PyObject_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* None */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } length = stop - start; if (unlikely(length <= 0)) return PyUnicode_FromUnicode(NULL, 0); cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* SwapException */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* GetItemInt */ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o); if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o); if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_COMPILING_IN_CPYTHON if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* PyIntBinop */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long x; long a = PyInt_AS_LONG(op1); x = (long)((unsigned long)a + b); if (likely((x^a) >= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; } default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); long_long: llx = lla + llb; return PyLong_FromLongLong(llx); } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* None */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* None */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* CalculateMetaclass */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); for (i=0; i < nbases; i++) { PyTypeObject *tmptype; PyObject *tmp = PyTuple_GET_ITEM(bases, i); tmptype = Py_TYPE(tmp); #if PY_MAJOR_VERSION < 3 if (tmptype == &PyClass_Type) continue; #endif if (!metaclass) { metaclass = tmptype; continue; } if (PyType_IsSubtype(metaclass, tmptype)) continue; if (PyType_IsSubtype(tmptype, metaclass)) { metaclass = tmptype; continue; } PyErr_SetString(PyExc_TypeError, "metaclass conflict: " "the metaclass of a derived class " "must be a (non-strict) subclass " "of the metaclasses of all its bases"); return NULL; } if (!metaclass) { #if PY_MAJOR_VERSION < 3 metaclass = &PyClass_Type; #else metaclass = &PyType_Type; #endif } Py_INCREF((PyObject*) metaclass); return (PyObject*) metaclass; } /* FetchCommonType */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); if (!fake_module) return NULL; Py_INCREF(fake_module); cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); if (cached_type) { if (!PyType_Check((PyObject*)cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", type->tp_name); goto bad; } if (cached_type->tp_basicsize != type->tp_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", type->tp_name); goto bad; } } else { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) goto bad; Py_INCREF(type); cached_type = type; } done: Py_DECREF(fake_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CythonFunction */ static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { if (op->func.m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); #else op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp = op->func_doc; if (value == NULL) { value = Py_None; } Py_INCREF(value); op->func_doc = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op) { if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); #else op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) { #else if (unlikely(value == NULL || !PyString_Check(value))) { #endif PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = op->func_name; Py_INCREF(value); op->func_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op) { Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) { #else if (unlikely(value == NULL || !PyString_Check(value))) { #endif PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = op->func_qualname; Py_INCREF(value); op->func_qualname = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) { PyObject *self; self = m->func_closure; if (self == NULL) self = Py_None; Py_INCREF(self); return self; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op) { if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value) { PyObject *tmp; if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } tmp = op->func_dict; Py_INCREF(value); op->func_dict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op) { Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op) { Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op) { PyObject* result = (op->func_code) ? op->func_code : Py_None; Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_COMPILING_IN_CPYTHON op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } Py_INCREF(value); tmp = op->defaults_tuple; op->defaults_tuple = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } Py_INCREF(value); tmp = op->defaults_kwdict; op->defaults_kwdict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value) { PyObject* tmp; if (!value || value == Py_None) { value = NULL; } else if (!PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); tmp = op->func_annotations; op->func_annotations = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(__pyx_CyFunctionObject, func.m_module), PY_WRITE_RESTRICTED, 0}, {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(m->func.m_ml->ml_name); #else return PyString_FromString(m->func.m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) #endif static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); if (op == NULL) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; op->func.m_ml = ml; op->func.m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); op->func.m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; op->func_classobj = NULL; op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; PyObject_GC_Track(op); return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(m->func.m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); Py_CLEAR(m->func_classobj); Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); PyObject_GC_Del(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(m->func.m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(m->func_classobj); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(func); return func; } if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { if (type == NULL) type = (PyObject *)(Py_TYPE(obj)); return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); } if (obj == Py_None) obj = NULL; return __Pyx_PyMethod_New(func, obj, type); } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } #if CYTHON_COMPILING_IN_PYPY static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; PyObject *self = f->m_self; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; result = (*meth)(self, arg0); Py_DECREF(arg0); return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags in " "__Pyx_CyFunction_Call. METH_OLDARGS is no " "longer supported!"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } #else static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return PyCFunction_Call(func, arg, kw); } #endif static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_Call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_CyFunction_descr_get, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif }; static int __pyx_CyFunction_init(void) { #if !CYTHON_COMPILING_IN_PYPY __pyx_CyFunctionType_type.tp_call = PyCFunction_Call; #endif __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); if (__pyx_CyFunctionType == NULL) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (!m->defaults) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* Py3ClassCreate */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { PyObject *ns; if (metaclass) { PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare); if (prep) { PyObject *pargs = PyTuple_Pack(2, name, bases); if (unlikely(!pargs)) { Py_DECREF(prep); return NULL; } ns = PyObject_Call(prep, pargs, mkw); Py_DECREF(prep); Py_DECREF(pargs); } else { if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; PyErr_Clear(); ns = PyDict_New(); } } else { ns = PyDict_New(); } if (unlikely(!ns)) return NULL; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; return ns; bad: Py_DECREF(ns); return NULL; } static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass) { PyObject *result, *margs; PyObject *owned_metaclass = NULL; if (allow_py2_metaclass) { owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); if (owned_metaclass) { metaclass = owned_metaclass; } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { PyErr_Clear(); } else { return NULL; } } if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); Py_XDECREF(owned_metaclass); if (unlikely(!metaclass)) return NULL; owned_metaclass = metaclass; } margs = PyTuple_Pack(3, name, bases, dict); if (unlikely(!margs)) { result = NULL; } else { result = PyObject_Call(metaclass, margs, mkw); Py_DECREF(margs); } Py_XDECREF(owned_metaclass); return result; } /* FusedFunction */ static PyObject * __pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code) { __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_New(type, ml, flags, qualname, self, module, globals, code); if (!fusedfunc) return NULL; fusedfunc->__signatures__ = NULL; fusedfunc->type = NULL; fusedfunc->self = NULL; return (PyObject *) fusedfunc; } static void __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self) { __pyx_FusedFunction_clear(self); __pyx_FusedFunctionType->tp_free((PyObject *) self); } static int __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self, visitproc visit, void *arg) { Py_VISIT(self->self); Py_VISIT(self->type); Py_VISIT(self->__signatures__); return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg); } static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self) { Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self); } static PyObject * __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type) { __pyx_FusedFunctionObject *func, *meth; func = (__pyx_FusedFunctionObject *) self; if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(self); return self; } if (obj == Py_None) obj = NULL; meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_NewEx( ((PyCFunctionObject *) func)->m_ml, ((__pyx_CyFunctionObject *) func)->flags, ((__pyx_CyFunctionObject *) func)->func_qualname, ((__pyx_CyFunctionObject *) func)->func_closure, ((PyCFunctionObject *) func)->m_module, ((__pyx_CyFunctionObject *) func)->func_globals, ((__pyx_CyFunctionObject *) func)->func_code); if (!meth) return NULL; Py_XINCREF(func->func.func_classobj); meth->func.func_classobj = func->func.func_classobj; Py_XINCREF(func->__signatures__); meth->__signatures__ = func->__signatures__; Py_XINCREF(type); meth->type = type; Py_XINCREF(func->func.defaults_tuple); meth->func.defaults_tuple = func->func.defaults_tuple; if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD) obj = type; Py_XINCREF(obj); meth->self = obj; return (PyObject *) meth; } static PyObject * _obj_to_str(PyObject *obj) { if (PyType_Check(obj)) return PyObject_GetAttr(obj, __pyx_n_s_name_2); else return PyObject_Str(obj); } static PyObject * __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx) { PyObject *signature = NULL; PyObject *unbound_result_func; PyObject *result_func = NULL; if (self->__signatures__ == NULL) { PyErr_SetString(PyExc_TypeError, "Function is not fused"); return NULL; } if (PyTuple_Check(idx)) { PyObject *list = PyList_New(0); Py_ssize_t n = PyTuple_GET_SIZE(idx); PyObject *string = NULL; PyObject *sep = NULL; int i; if (!list) return NULL; for (i = 0; i < n; i++) { #if CYTHON_COMPILING_IN_CPYTHON PyObject *item = PyTuple_GET_ITEM(idx, i); #else PyObject *item = PySequence_ITEM(idx, i); #endif string = _obj_to_str(item); #if !CYTHON_COMPILING_IN_CPYTHON Py_DECREF(item); #endif if (!string || PyList_Append(list, string) < 0) goto __pyx_err; Py_DECREF(string); } sep = PyUnicode_FromString("|"); if (sep) signature = PyUnicode_Join(sep, list); __pyx_err: ; Py_DECREF(list); Py_XDECREF(sep); } else { signature = _obj_to_str(idx); } if (!signature) return NULL; unbound_result_func = PyObject_GetItem(self->__signatures__, signature); if (unbound_result_func) { if (self->self || self->type) { __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func; Py_CLEAR(unbound->func.func_classobj); Py_XINCREF(self->func.func_classobj); unbound->func.func_classobj = self->func.func_classobj; result_func = __pyx_FusedFunction_descr_get(unbound_result_func, self->self, self->type); } else { result_func = unbound_result_func; Py_INCREF(result_func); } } Py_DECREF(signature); Py_XDECREF(unbound_result_func); return result_func; } static PyObject * __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; PyObject *result; int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD && !((__pyx_FusedFunctionObject *) func)->__signatures__); if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) { Py_ssize_t argc; PyObject *new_args; PyObject *self; PyObject *m_self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (!new_args) return NULL; self = PyTuple_GetItem(args, 0); if (!self) return NULL; m_self = cyfunc->func.m_self; cyfunc->func.m_self = self; result = __Pyx_CyFunction_Call(func, new_args, kw); cyfunc->func.m_self = m_self; Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } static PyObject * __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw) { __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func; Py_ssize_t argc = PyTuple_GET_SIZE(args); PyObject *new_args = NULL; __pyx_FusedFunctionObject *new_func = NULL; PyObject *result = NULL; PyObject *self = NULL; int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD; int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD; if (binding_func->self) { Py_ssize_t i; new_args = PyTuple_New(argc + 1); if (!new_args) return NULL; self = binding_func->self; #if !CYTHON_COMPILING_IN_CPYTHON Py_INCREF(self); #endif Py_INCREF(self); PyTuple_SET_ITEM(new_args, 0, self); for (i = 0; i < argc; i++) { #if CYTHON_COMPILING_IN_CPYTHON PyObject *item = PyTuple_GET_ITEM(args, i); Py_INCREF(item); #else PyObject *item = PySequence_ITEM(args, i); if (unlikely(!item)) goto bad; #endif PyTuple_SET_ITEM(new_args, i + 1, item); } args = new_args; } else if (binding_func->type) { if (argc < 1) { PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given."); return NULL; } #if CYTHON_COMPILING_IN_CPYTHON self = PyTuple_GET_ITEM(args, 0); #else self = PySequence_ITEM(args, 0); if (unlikely(!self)) return NULL; #endif } if (self && !is_classmethod && !is_staticmethod) { int is_instance = PyObject_IsInstance(self, binding_func->type); if (unlikely(!is_instance)) { PyErr_Format(PyExc_TypeError, "First argument should be of type %.200s, got %.200s.", ((PyTypeObject *) binding_func->type)->tp_name, self->ob_type->tp_name); goto bad; } else if (unlikely(is_instance == -1)) { goto bad; } } #if !CYTHON_COMPILING_IN_CPYTHON Py_XDECREF(self); self = NULL; #endif if (binding_func->__signatures__) { PyObject *tup = PyTuple_Pack(4, binding_func->__signatures__, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (!tup) goto bad; new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL); Py_DECREF(tup); if (!new_func) goto bad; Py_XINCREF(binding_func->func.func_classobj); Py_CLEAR(new_func->func.func_classobj); new_func->func.func_classobj = binding_func->func.func_classobj; func = (PyObject *) new_func; } result = __pyx_FusedFunction_callfunction(func, args, kw); bad: #if !CYTHON_COMPILING_IN_CPYTHON Py_XDECREF(self); #endif Py_XDECREF(new_args); Py_XDECREF((PyObject *) new_func); return result; } static PyMemberDef __pyx_FusedFunction_members[] = { {(char *) "__signatures__", T_OBJECT, offsetof(__pyx_FusedFunctionObject, __signatures__), READONLY, 0}, {0, 0, 0, 0, 0}, }; static PyMappingMethods __pyx_FusedFunction_mapping_methods = { 0, (binaryfunc) __pyx_FusedFunction_getitem, 0, }; static PyTypeObject __pyx_FusedFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "fused_cython_function", sizeof(__pyx_FusedFunctionObject), 0, (destructor) __pyx_FusedFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif 0, 0, 0, &__pyx_FusedFunction_mapping_methods, 0, (ternaryfunc) __pyx_FusedFunction_call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __pyx_FusedFunction_traverse, (inquiry) __pyx_FusedFunction_clear, 0, 0, 0, 0, 0, __pyx_FusedFunction_members, __pyx_CyFunction_getsets, &__pyx_CyFunctionType_type, 0, __pyx_FusedFunction_descr_get, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif }; static int __pyx_FusedFunction_init(void) { __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type); if (__pyx_FusedFunctionType == NULL) { return -1; } return 0; } /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; py_code = __pyx_find_code_object(c_line ? c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? c_line : py_line, py_code); } py_frame = PyFrame_New( PyThreadState_GET(), /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; py_frame->f_lineno = py_line; PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); if (PyObject_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); if (PyObject_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject *obj = view->obj; if (!obj) return; if (PyObject_CheckBuffer(obj)) { PyBuffer_Release(view); return; } if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) { __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); return; } Py_DECREF(obj); view->obj = NULL; } #endif /* MemviewSliceIsContig */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) { int i, index, step, start; Py_ssize_t itemsize = mvs.memview->view.itemsize; if (order == 'F') { step = 1; start = 0; } else { step = -1; start = ndim - 1; } for (i = 0; i < ndim; i++) { index = start + step * i; if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) return 0; itemsize *= mvs.shape[index]; } return 1; } /* OverlappingSlices */ static void __pyx_get_array_memory_extents(__Pyx_memviewslice *slice, void **out_start, void **out_end, int ndim, size_t itemsize) { char *start, *end; int i; start = end = slice->data; for (i = 0; i < ndim; i++) { Py_ssize_t stride = slice->strides[i]; Py_ssize_t extent = slice->shape[i]; if (extent == 0) { *out_start = *out_end = start; return; } else { if (stride > 0) end += stride * (extent - 1); else start += stride * (extent - 1); } } *out_start = start; *out_end = end + itemsize; } static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize) { void *start1, *end1, *start2, *end2; __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); return (start1 < end2) && (start2 < end1); } /* Capsule */ static CYTHON_INLINE PyObject * __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) { PyObject *cobj; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, NULL); #else cobj = PyCObject_FromVoidPtr(p, NULL); #endif return cobj; } /* TypeInfoCompare */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) { int i; if (!a || !b) return 0; if (a == b) return 1; if (a->size != b->size || a->typegroup != b->typegroup || a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { if (a->typegroup == 'H' || b->typegroup == 'H') { return a->size == b->size; } else { return 0; } } if (a->ndim) { for (i = 0; i < a->ndim; i++) if (a->arraysize[i] != b->arraysize[i]) return 0; } if (a->typegroup == 'S') { if (a->flags != b->flags) return 0; if (a->fields || b->fields) { if (!(a->fields && b->fields)) return 0; for (i = 0; a->fields[i].type && b->fields[i].type; i++) { __Pyx_StructField *field_a = a->fields + i; __Pyx_StructField *field_b = b->fields + i; if (field_a->offset != field_b->offset || !__pyx_typeinfo_cmp(field_a->type, field_b->type)) return 0; } return !a->fields[i].type && !b->fields[i].type; } } return 1; } /* MemviewSliceValidateAndInit */ static int __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) { if (buf->shape[dim] <= 1) return 1; if (buf->strides) { if (spec & __Pyx_MEMVIEW_CONTIG) { if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { if (buf->strides[dim] != sizeof(void *)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly contiguous " "in dimension %d.", dim); goto fail; } } else if (buf->strides[dim] != buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } if (spec & __Pyx_MEMVIEW_FOLLOW) { Py_ssize_t stride = buf->strides[dim]; if (stride < 0) stride = -stride; if (stride < buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } } else { if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not contiguous in " "dimension %d", dim); goto fail; } else if (spec & (__Pyx_MEMVIEW_PTR)) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not indirect in " "dimension %d", dim); goto fail; } else if (buf->suboffsets) { PyErr_SetString(PyExc_ValueError, "Buffer exposes suboffsets but no strides"); goto fail; } } return 1; fail: return 0; } static int __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) { if (spec & __Pyx_MEMVIEW_DIRECT) { if (buf->suboffsets && buf->suboffsets[dim] >= 0) { PyErr_Format(PyExc_ValueError, "Buffer not compatible with direct access " "in dimension %d.", dim); goto fail; } } if (spec & __Pyx_MEMVIEW_PTR) { if (!buf->suboffsets || (buf->suboffsets && buf->suboffsets[dim] < 0)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly accessible " "in dimension %d.", dim); goto fail; } } return 1; fail: return 0; } static int __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) { int i; if (c_or_f_flag & __Pyx_IS_F_CONTIG) { Py_ssize_t stride = 1; for (i = 0; i < ndim; i++) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not fortran contiguous."); goto fail; } stride = stride * buf->shape[i]; } } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { Py_ssize_t stride = 1; for (i = ndim - 1; i >- 1; i--) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not C contiguous."); goto fail; } stride = stride * buf->shape[i]; } } return 1; fail: return 0; } static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj) { struct __pyx_memoryview_obj *memview, *new_memview; __Pyx_RefNannyDeclarations Py_buffer *buf; int i, spec = 0, retval = -1; __Pyx_BufFmt_Context ctx; int from_memoryview = __pyx_memoryview_check(original_obj); __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) original_obj)->typeinfo)) { memview = (struct __pyx_memoryview_obj *) original_obj; new_memview = NULL; } else { memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( original_obj, buf_flags, 0, dtype); new_memview = memview; if (unlikely(!memview)) goto fail; } buf = &memview->view; if (buf->ndim != ndim) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", ndim, buf->ndim); goto fail; } if (new_memview) { __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned) buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } for (i = 0; i < ndim; i++) { spec = axes_specs[i]; if (!__pyx_check_strides(buf, i, ndim, spec)) goto fail; if (!__pyx_check_suboffsets(buf, i, ndim, spec)) goto fail; } if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, new_memview != NULL) == -1)) { goto fail; } retval = 0; goto no_fail; fail: Py_XDECREF(new_memview); retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn___pyx_t_5numpy_float64_t(PyObject *obj) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, PyBUF_RECORDS, 2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* BytesContains */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character) { const Py_ssize_t length = PyBytes_GET_SIZE(bytes); char* char_start = PyBytes_AS_STRING(bytes); char* pos; for (pos=char_start; pos < char_start+length; pos++) { if (character == pos[0]) return 1; } return 0; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(unsigned int) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned int), little, !is_unsigned); } } /* None */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif /* None */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float denom = b.real * b.real + b.imag * b.imag; z.real = (a.real * b.real + a.imag * b.imag) / denom; z.imag = (a.imag * b.real - a.real * b.imag) / denom; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(a, a); case 3: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(z, a); case 4: z = __Pyx_c_prodf(a, a); return __Pyx_c_prodf(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } r = a.real; theta = 0; } else { r = __Pyx_c_absf(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif /* None */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif /* None */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double denom = b.real * b.real + b.imag * b.imag; z.real = (a.real * b.real + a.imag * b.imag) / denom; z.imag = (a.imag * b.real - a.real * b.imag) / denom; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(a, a); case 3: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(z, a); case 4: z = __Pyx_c_prod(a, a); return __Pyx_c_prod(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } r = a.real; theta = 0; } else { r = __Pyx_c_abs(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) -1, const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(enum NPY_TYPES) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); } } else { if (sizeof(enum NPY_TYPES) <= sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), little, !is_unsigned); } } /* MemviewSliceCopyTemplate */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object) { __Pyx_RefNannyDeclarations int i; __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct __pyx_memoryview_obj *from_memview = from_mvs->memview; Py_buffer *buf = &from_memview->view; PyObject *shape_tuple = NULL; PyObject *temp_int = NULL; struct __pyx_array_obj *array_obj = NULL; struct __pyx_memoryview_obj *memview_obj = NULL; __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); for (i = 0; i < ndim; i++) { if (from_mvs->suboffsets[i] >= 0) { PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " "indirect dimensions (axis %d)", i); goto fail; } } shape_tuple = PyTuple_New(ndim); if (unlikely(!shape_tuple)) { goto fail; } __Pyx_GOTREF(shape_tuple); for(i = 0; i < ndim; i++) { temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); if(unlikely(!temp_int)) { goto fail; } else { PyTuple_SET_ITEM(shape_tuple, i, temp_int); temp_int = NULL; } } array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); if (unlikely(!array_obj)) { goto fail; } __Pyx_GOTREF(array_obj); memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( (PyObject *) array_obj, contig_flag, dtype_is_object, from_mvs->memview->typeinfo); if (unlikely(!memview_obj)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) goto fail; if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, dtype_is_object) < 0)) goto fail; goto no_fail; fail: __Pyx_XDECREF(new_mvs.memview); new_mvs.memview = NULL; new_mvs.data = NULL; no_fail: __Pyx_XDECREF(shape_tuple); __Pyx_XDECREF(temp_int); __Pyx_XDECREF(array_obj); __Pyx_RefNannyFinishContext(); return new_mvs; } /* CIntFromPy */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(unsigned int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (unsigned int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0]) case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) { return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) { return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) { return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(unsigned int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, +digits[0]) case -2: if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -3: if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -4: if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; } #endif if (sizeof(unsigned int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else unsigned int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (unsigned int) -1; } } else { unsigned int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (unsigned int) -1; val = __Pyx_PyInt_As_unsigned_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned int"); return (unsigned int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned int"); return (unsigned int) -1; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { const char neg_one = (char) -1, const_zero = (char) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(char) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (char) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (char) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(char) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) case -2: if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -3: if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -4: if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; } #endif if (sizeof(char) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else char val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (char) -1; } } else { char val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (char) -1; val = __Pyx_PyInt_As_char(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to char"); return (char) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to char"); return (char) -1; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(PyObject *obj) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT | PyBUF_WRITABLE), 2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* ModuleImport */ #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; py_name = __Pyx_PyIdentifier_FromString(name); if (!py_name) goto bad; py_module = PyImport_Import(py_name); Py_DECREF(py_name); return py_module; bad: Py_XDECREF(py_name); return 0; } #endif /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) { PyObject *py_module = 0; PyObject *result = 0; PyObject *py_name = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; py_name = __Pyx_PyIdentifier_FromString(class_name); if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); Py_DECREF(py_name); py_name = 0; Py_DECREF(py_module); py_module = 0; if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if (!strict && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. Expected %zd, got %zd", module_name, class_name, basicsize, size); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } else if ((size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s has the wrong size, try recompiling. Expected %zd, got %zd", module_name, class_name, basicsize, size); goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(py_module); Py_XDECREF(result); return NULL; } #endif /* InitStrings */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if CYTHON_COMPILING_IN_CPYTHON && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { #if PY_VERSION_HEX < 0x03030000 char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; #else if (__Pyx_PyUnicode_READY(o) == -1) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (PyUnicode_IS_ASCII(o)) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif #endif } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { PyNumberMethods *m; const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (PyInt_Check(x) || PyLong_Check(x)) #else if (PyLong_Check(x)) #endif return __Pyx_NewRef(x); m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = PyNumber_Int(x); } else if (m && m->nb_long) { name = "long"; res = PyNumber_Long(x); } #else if (m && m->nb_int) { name = "int"; res = PyNumber_Long(x); } #endif if (res) { #if PY_MAJOR_VERSION < 3 if (!PyInt_Check(res) && !PyLong_Check(res)) { #else if (!PyLong_Check(res)) { #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", name, name, Py_TYPE(res)->tp_name); Py_DECREF(res); return NULL; } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(x); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ pyresample-1.8.1/pyresample/ewa/_ll2cr.pyx000066400000000000000000000273601324347254000205720ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2016 # Author(s): # David Hoese # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . """Map longitude/latitude points to column/rows of a grid. """ __docformat__ = "restructuredtext en" from pyproj import _proj, Proj import numpy cimport cython from cpython cimport bool cimport numpy # column and rows can only be doubles for now until the PROJ.4 is linked directly so float->double casting can be done # inside the loop ctypedef fused cr_dtype: # numpy.float32_t numpy.float64_t cdef extern from "numpy/npy_math.h": bint npy_isnan(double x) class MyProj(Proj): """Custom class to make ll2cr projection work faster without compiling against the PROJ.4 library itself. THIS SHOULD NOT BE USED OUTSIDE OF LL2CR! It makes assumptions and has requirements that may not make sense outside of the ll2cr modules. """ def __call__(self, lons, lats, **kwargs): if self.is_latlong(): return lons, lats elif isinstance(lons, numpy.ndarray): # Because we are doing this we know that we are getting a double array inverse = kwargs.get('inverse', False) radians = kwargs.get('radians', False) errcheck = kwargs.get('errcheck', False) # call proj4 functions. inx and iny modified in place. if inverse: _proj.Proj._inv(self, lons, lats, radians=radians, errcheck=errcheck) else: _proj.Proj._fwd(self, lons, lats, radians=radians, errcheck=errcheck) # if inputs were lists, tuples or floats, convert back. return lons, lats else: return super(MyProj, self).__call__(lons, lats, **kwargs) def projection_circumference(p): """Return the projection circumference if the projection is cylindrical. None is returned otherwise. Projections that are not cylindrical and centered on the globes axis can not easily have data cross the antimeridian of the projection. """ lon0, lat0 = p(0, 0, inverse=True) lon1 = lon0 + 180.0 lat1 = lat0 + 5.0 x0, y0 = p(lon0, lat0) # should result in zero or near zero x1, y1 = p(lon1, lat0) x2, y2 = p(lon1, lat1) if y0 != y1 or x1 != x2: return 0.0 return abs(x1 - x0) * 2 @cython.boundscheck(False) @cython.wraparound(False) @cython.cdivision(True) def ll2cr_dynamic(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, cr_dtype fill_in, str proj4_definition, double cell_width, double cell_height, width=None, height=None, origin_x=None, origin_y=None): """Project longitude and latitude points to column rows in the specified grid in place This function is meant to operate on dynamic grids and is theoretically slower than the `ll2cr_static` function. Dynamic grids are those that have one or more set of parameters unspecified like the number of pixels in the grid (width, height) or the origin coordinates of the grid (origin_x, origin_y). This function will analyze the provided lon/lat data and determine what the missing parameters must be so all input swath data falls in the resulting grid. :param lon_arr: Numpy array of longitude floats :param lat_arr: Numpy array of latitude floats :param grid_info: dictionary of grid information (see below) :param fill_in: Fill value for input longitude and latitude arrays and used for output :param proj4_definition: PROJ.4 string projection definition :param cell_width: Pixel resolution in the X direction in projection space :param cell_height: Pixel resolution in the Y direction in projection space :param width: (optional) Number of pixels in the X direction in the final output grid :param height: (optional) Number of pixels in the Y direction in the final output grid :param origin_x: (optional) Grid X coordinate for the upper-left pixel of the output grid :param origin_y: (optional) Grid Y coordinate for the upper-left pixel of the output grid :returns: tuple(points_in_grid, cols_out, rows_out, origin_x, origin_y, width, height) Steps taken in this function: 1. Convert (lon, lat) points to (X, Y) points in the projection space 2. If grid is missing some parameters (dynamic grid), then fill them in 3. Convert (X, Y) points to (column, row) points in the grid space Note longitude and latitude arrays are limited to 64-bit floats because of limitations in pyproj. """ # pure python stuff for now p = MyProj(proj4_definition) # Pyproj currently makes a copy so we don't have to do anything special here cdef tuple projected_tuple = p(lon_arr, lat_arr) cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] cdef double proj_circum = projection_circumference(p) cdef unsigned int w cdef unsigned int h cdef double ox cdef double oy # indexes cdef unsigned int row cdef unsigned int col # index bounds cdef unsigned int num_rows = lon_arr.shape[0] cdef unsigned int num_cols = lon_arr.shape[1] cdef cr_dtype xmin = cols_out[0, 0] cdef cr_dtype xmax = cols_out[0, 0] cdef cr_dtype ymin = rows_out[0, 0] cdef cr_dtype ymax = rows_out[0, 0] cdef cr_dtype x_tmp cdef cr_dtype y_tmp cdef unsigned int points_in_grid = 0 for row in range(num_rows): for col in range(num_cols): x_tmp = cols_out[row, col] y_tmp = rows_out[row, col] if x_tmp >= 1e30: # pyproj library should have set both x and y to the fill value # we technically don't ever check for the fill value, but if fill values are valid lon/lats then WTF continue elif x_tmp < xmin or npy_isnan(xmin): xmin = x_tmp elif x_tmp > xmax or npy_isnan(xmax) or xmax == 1e30: # Note: technically 2 valid points are required to get here if there are a lot of NaNs xmax = x_tmp if y_tmp < ymin or npy_isnan(ymin): ymin = y_tmp elif y_tmp > ymax or npy_isnan(ymax) or ymax == 1e30: # Note: technically 2 valid points are required to get here if there are a lot of NaNs ymax = y_tmp # Check if we cross the antimeridian if proj_circum != 0 and xmax - xmin >= proj_circum * .75: # xmax will increase, but we need to reset xmin so that it gets properly detected if xmin < 0: xmin = xmax for row in range(num_rows): for col in range(num_cols): x_tmp = cols_out[row, col] if x_tmp < 0: x_tmp += proj_circum cols_out[row, col] = x_tmp # xmax won't increase unless we've added the circumference if x_tmp > xmax: xmax = x_tmp elif x_tmp >= 1e30: continue elif x_tmp < xmin: # xmin could change with any of the remaining entries xmin = x_tmp if origin_x is None: # upper-left corner ox = xmin oy = ymax else: ox = origin_x oy = origin_y if width is None: w = int(abs((xmax - ox) / cell_width)) h = int(abs((oy - ymin) / cell_height)) else: w = width h = height for row in range(num_rows): for col in range(num_cols): x_tmp = cols_out[row, col] y_tmp = rows_out[row, col] if x_tmp >= 1e30: cols_out[row, col] = fill_in rows_out[row, col] = fill_in continue x_tmp = (x_tmp - ox) / cell_width y_tmp = (y_tmp - oy) / cell_height if x_tmp >= -1 and x_tmp <= w + 1 and y_tmp >= -1 and y_tmp <= h + 1: points_in_grid += 1 cols_out[row, col] = x_tmp rows_out[row, col] = y_tmp # return points_in_grid, x_arr, y_arr return points_in_grid, lon_arr, lat_arr, ox, oy, w, h @cython.boundscheck(False) @cython.wraparound(False) @cython.cdivision(True) def ll2cr_static(numpy.ndarray[cr_dtype, ndim=2] lon_arr, numpy.ndarray[cr_dtype, ndim=2] lat_arr, cr_dtype fill_in, str proj4_definition, double cell_width, double cell_height, unsigned int width, unsigned int height, double origin_x, double origin_y): """Project longitude and latitude points to column rows in the specified grid in place :param lon_arr: Numpy array of longitude floats :param lat_arr: Numpy array of latitude floats :param fill_in: Fill value for input longitude and latitude arrays and used for output :param cell_width: Pixel resolution in the X direction in projection space :param cell_height: Pixel resolution in the Y direction in projection space :param width: Number of pixels in the X direction in the final output grid :param height: Number of pixels in the Y direction in the final output grid :param origin_x: Grid X coordinate for the upper-left pixel of the output grid :param origin_y: Grid Y coordinate for the upper-left pixel of the output grid :returns: tuple(points_in_grid, cols_out, rows_out) Steps taken in this function: 1. Convert (lon, lat) points to (X, Y) points in the projection space 2. Convert (X, Y) points to (column, row) points in the grid space Note longitude and latitude arrays are limited to 64-bit floats because of limitations in pyproj. """ # pure python stuff for now p = MyProj(proj4_definition) # Pyproj currently makes a copy so we don't have to do anything special here cdef tuple projected_tuple = p(lon_arr, lat_arr) cdef cr_dtype [:, ::1] rows_out = projected_tuple[1] cdef cr_dtype [:, ::1] cols_out = projected_tuple[0] cdef double proj_circum = projection_circumference(p) # indexes cdef unsigned int row cdef unsigned int col # index bounds cdef unsigned int num_rows = lon_arr.shape[0] cdef unsigned int num_cols = lon_arr.shape[1] cdef cr_dtype x_tmp cdef cr_dtype y_tmp cdef unsigned int points_in_grid = 0 for row in range(num_rows): for col in range(num_cols): x_tmp = cols_out[row, col] y_tmp = rows_out[row, col] if x_tmp >= 1e30: cols_out[row, col] = fill_in rows_out[row, col] = fill_in continue elif proj_circum != 0 and abs(x_tmp - origin_x) >= (0.75 * proj_circum): # if x is more than 75% around the projection space, it is probably crossing the anti-meridian x_tmp += proj_circum x_tmp = (x_tmp - origin_x) / cell_width y_tmp = (y_tmp - origin_y) / cell_height if x_tmp >= -1 and x_tmp <= width + 1 and y_tmp >= -1 and y_tmp <= height + 1: points_in_grid += 1 cols_out[row, col] = x_tmp rows_out[row, col] = y_tmp # return points_in_grid, x_arr, y_arr return points_in_grid pyresample-1.8.1/pyresample/geo_filter.py000066400000000000000000000052771324347254000205730ustar00rootroot00000000000000import numpy as np from . import _spatial_mp from . import geometry class GridFilter(object): """Geographic filter from a grid :Parameters: grid_ll_x : float Projection x coordinate of lower left corner of lower left pixel grid_ll_y : float Projection y coordinate of lower left corner of lower left pixel grid_ur_x : float Projection x coordinate of upper right corner of upper right pixel grid_ur_y : float Projection y coordinate of upper right corner of upper right pixel proj4_string : string mask : numpy array Mask as boolean numpy array """ def __init__(self, area_def, filter, nprocs=1): self.area_def = area_def self._filter = filter.astype(np.bool) self.nprocs = nprocs def get_valid_index(self, geometry_def): """Calculates valid_index array based on lons and lats :Parameters: lons : numpy array lats : numpy array :Returns: Boolean numpy array of same shape as lons and lats """ lons = geometry_def.lons[:] lats = geometry_def.lats[:] # Get projection coords if self.nprocs > 1: proj = _spatial_mp.Proj_MP(**self.area_def.proj_dict) else: proj = _spatial_mp.Proj(**self.area_def.proj_dict) x_coord, y_coord = proj(lons, lats, nprocs=self.nprocs) # Find array indices of coordinates target_x = ((x_coord / self.area_def.pixel_size_x) + self.area_def.pixel_offset_x).astype(np.int32) target_y = (self.area_def.pixel_offset_y - (y_coord / self.area_def.pixel_size_y)).astype(np.int32) # Create mask for pixels outside array (invalid pixels) target_x_valid = (target_x >= 0) & (target_x < self.area_def.x_size) target_y_valid = (target_y >= 0) & (target_y < self.area_def.y_size) # Set index of invalid pixels to 0 target_x[np.invert(target_x_valid)] = 0 target_y[np.invert(target_y_valid)] = 0 # Find mask filter = self._filter[target_y, target_x] # Remove invalid pixels filter = (filter & target_x_valid & target_y_valid).astype(np.bool) return filter def filter(self, geometry_def, data): lons = geometry_def.lons[:] lats = geometry_def.lats[:] valid_index = self.get_valid_index(geometry_def) lons_f = lons[valid_index] lats_f = lats[valid_index] data_f = data[valid_index] geometry_def_f = \ geometry.CoordinateDefinition(lons_f, lats_f, nprocs=geometry_def.nprocs) return geometry_def_f, data_f pyresample-1.8.1/pyresample/geometry.py000066400000000000000000001514241324347254000203030ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010-2016 # # Authors: # Esben S. Nielsen # Thomas Lavergne # Adam Dybbroe # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Classes for geometry operations""" import warnings from collections import OrderedDict from logging import getLogger import hashlib import numpy as np import yaml from pyproj import Geod, Proj from pyresample import _spatial_mp, utils, CHUNK_SIZE try: from xarray import DataArray except ImportError: DataArray = np.ndarray logger = getLogger(__name__) class DimensionError(ValueError): pass class IncompatibleAreas(ValueError): """Error when the areas to combine are not compatible.""" class Boundary(object): """Container for geometry boundary. Labelling starts in upper left corner and proceeds clockwise""" def __init__(self, side1, side2, side3, side4): self.side1 = side1 self.side2 = side2 self.side3 = side3 self.side4 = side4 class BaseDefinition(object): """Base class for geometry definitions .. versionchanged:: 1.8.0 `BaseDefinition` no longer checks the validity of the provided longitude and latitude coordinates to improve performance. Longitude arrays are expected to be between -180 and 180 degrees, latitude -90 to 90 degrees. Use `pyresample.utils.check_and_wrap` to preprocess your arrays. """ def __init__(self, lons=None, lats=None, nprocs=1): if type(lons) != type(lats): raise TypeError('lons and lats must be of same type') elif lons is not None: if not isinstance(lons, (np.ndarray, DataArray)): lons = np.asanyarray(lons) lats = np.asanyarray(lats) if lons.shape != lats.shape: raise ValueError('lons and lats must have same shape') self.nprocs = nprocs self.lats = lats self.lons = lons self.ndim = None self.cartesian_coords = None def __eq__(self, other): """Test for approximate equality""" if other.lons is None or other.lats is None: other_lons, other_lats = other.get_lonlats() else: other_lons = other.lons other_lats = other.lats if self.lons is None or self.lats is None: self_lons, self_lats = self.get_lonlats() else: self_lons = self.lons self_lats = self.lats try: return (np.allclose(self_lons, other_lons, atol=1e-6, rtol=5e-9) and np.allclose(self_lats, other_lats, atol=1e-6, rtol=5e-9)) except (AttributeError, ValueError): return False def __ne__(self, other): """Test for approximate equality""" return not self.__eq__(other) def get_area_extent_for_subset(self, row_LR, col_LR, row_UL, col_UL): """Calculate extent for a subdomain of this area Rows are counted from upper left to lower left and columns are counted from upper left to upper right. Args: row_LR (int): row of the lower right pixel col_LR (int): col of the lower right pixel row_UL (int): row of the upper left pixel col_UL (int): col of the upper left pixel Returns: area_extent (tuple): Area extent (LL_x, LL_y, UR_x, UR_y) of the subset Author: Ulrich Hamann """ (a, b) = self.get_proj_coords(data_slice=(row_LR, col_LR)) a = a - 0.5 * self.pixel_size_x b = b - 0.5 * self.pixel_size_y (c, d) = self.get_proj_coords(data_slice=(row_UL, col_UL)) c = c + 0.5 * self.pixel_size_x d = d + 0.5 * self.pixel_size_y return a, b, c, d def get_lonlat(self, row, col): """Retrieve lon and lat of single pixel Parameters ---------- row : int col : int Returns ------- (lon, lat) : tuple of floats """ if self.ndim != 2: raise DimensionError(('operation undefined ' 'for %sD geometry ') % self.ndim) elif self.lons is None or self.lats is None: raise ValueError('lon/lat values are not defined') return self.lons[row, col], self.lats[row, col] def get_lonlats(self, data_slice=None, **kwargs): """Base method for lon lat retrieval with slicing""" if self.lons is None or self.lats is None: raise ValueError('lon/lat values are not defined') elif data_slice is None: return self.lons, self.lats else: return self.lons[data_slice], self.lats[data_slice] def get_boundary_lonlats(self): """Returns Boundary objects""" side1 = self.get_lonlats(data_slice=(0, slice(None))) side2 = self.get_lonlats(data_slice=(slice(None), -1)) side3 = self.get_lonlats(data_slice=(-1, slice(None))) side4 = self.get_lonlats(data_slice=(slice(None), 0)) return (Boundary(side1[0], side2[0], side3[0][::-1], side4[0][::-1]), Boundary(side1[1], side2[1], side3[1][::-1], side4[1][::-1])) def get_cartesian_coords(self, nprocs=None, data_slice=None, cache=False): """Retrieve cartesian coordinates of geometry definition Parameters ---------- nprocs : int, optional Number of processor cores to be used. Defaults to the nprocs set when instantiating object data_slice : slice object, optional Calculate only cartesian coordnates for the defined slice cache : bool, optional Store result the result. Requires data_slice to be None Returns ------- cartesian_coords : numpy array """ if self.cartesian_coords is None: # Coordinates are not cached if nprocs is None: nprocs = self.nprocs if data_slice is None: # Use full slice data_slice = slice(None) lons, lats = self.get_lonlats(nprocs=nprocs, data_slice=data_slice) if nprocs > 1: cartesian = _spatial_mp.Cartesian_MP(nprocs) else: cartesian = _spatial_mp.Cartesian() cartesian_coords = cartesian.transform_lonlats(np.ravel(lons), np.ravel(lats)) if isinstance(lons, np.ndarray) and lons.ndim > 1: # Reshape to correct shape cartesian_coords = cartesian_coords.reshape(lons.shape[0], lons.shape[1], 3) if cache and data_slice is None: self.cartesian_coords = cartesian_coords else: # Coordinates are cached if data_slice is None: cartesian_coords = self.cartesian_coords else: cartesian_coords = self.cartesian_coords[data_slice] return cartesian_coords @property def corners(self): """Returns the corners of the current area. """ from pyresample.spherical_geometry import Coordinate return [Coordinate(*self.get_lonlat(0, 0)), Coordinate(*self.get_lonlat(0, -1)), Coordinate(*self.get_lonlat(-1, -1)), Coordinate(*self.get_lonlat(-1, 0))] def __contains__(self, point): """Is a point inside the 4 corners of the current area? This uses great circle arcs as area boundaries. """ from pyresample.spherical_geometry import point_inside, Coordinate corners = self.corners if isinstance(point, tuple): return point_inside(Coordinate(*point), corners) else: return point_inside(point, corners) def overlaps(self, other): """Tests if the current area overlaps the *other* area. This is based solely on the corners of areas, assuming the boundaries to be great circles. Parameters ---------- other : object Instance of subclass of BaseDefinition Returns ------- overlaps : bool """ from pyresample.spherical_geometry import Arc self_corners = self.corners other_corners = other.corners for i in self_corners: if i in other: return True for i in other_corners: if i in self: return True self_arc1 = Arc(self_corners[0], self_corners[1]) self_arc2 = Arc(self_corners[1], self_corners[2]) self_arc3 = Arc(self_corners[2], self_corners[3]) self_arc4 = Arc(self_corners[3], self_corners[0]) other_arc1 = Arc(other_corners[0], other_corners[1]) other_arc2 = Arc(other_corners[1], other_corners[2]) other_arc3 = Arc(other_corners[2], other_corners[3]) other_arc4 = Arc(other_corners[3], other_corners[0]) for i in (self_arc1, self_arc2, self_arc3, self_arc4): for j in (other_arc1, other_arc2, other_arc3, other_arc4): if i.intersects(j): return True return False def get_area(self): """Get the area of the convex area defined by the corners of the current area. """ from pyresample.spherical_geometry import get_polygon_area return get_polygon_area(self.corners) def intersection(self, other): """Returns the corners of the intersection polygon of the current area with *other*. Parameters ---------- other : object Instance of subclass of BaseDefinition Returns ------- (corner1, corner2, corner3, corner4) : tuple of points """ from pyresample.spherical_geometry import intersection_polygon return intersection_polygon(self.corners, other.corners) def overlap_rate(self, other): """Get how much the current area overlaps an *other* area. Parameters ---------- other : object Instance of subclass of BaseDefinition Returns ------- overlap_rate : float """ from pyresample.spherical_geometry import get_polygon_area other_area = other.get_area() inter_area = get_polygon_area(self.intersection(other)) return inter_area / other_area class CoordinateDefinition(BaseDefinition): """Base class for geometry definitions defined by lons and lats only""" def __init__(self, lons, lats, nprocs=1): if not isinstance(lons, (np.ndarray, DataArray)): lons = np.asanyarray(lons) lats = np.asanyarray(lats) super(CoordinateDefinition, self).__init__(lons, lats, nprocs) if lons.shape == lats.shape and lons.dtype == lats.dtype: self.shape = lons.shape self.size = lons.size self.ndim = lons.ndim self.dtype = lons.dtype else: raise ValueError(('%s must be created with either ' 'lon/lats of the same shape with same dtype') % self.__class__.__name__) def concatenate(self, other): if self.ndim != other.ndim: raise DimensionError(('Unable to concatenate %sD and %sD ' 'geometries') % (self.ndim, other.ndim)) klass = _get_highest_level_class(self, other) lons = np.concatenate((self.lons, other.lons)) lats = np.concatenate((self.lats, other.lats)) nprocs = min(self.nprocs, other.nprocs) return klass(lons, lats, nprocs=nprocs) def append(self, other): if self.ndim != other.ndim: raise DimensionError(('Unable to append %sD and %sD ' 'geometries') % (self.ndim, other.ndim)) self.lons = np.concatenate((self.lons, other.lons)) self.lats = np.concatenate((self.lats, other.lats)) self.shape = self.lons.shape self.size = self.lons.size def __str__(self): # Rely on numpy's object printing return ('Shape: %s\nLons: %s\nLats: %s') % (str(self.shape), str(self.lons), str(self.lats)) class GridDefinition(CoordinateDefinition): """Grid defined by lons and lats Parameters ---------- lons : numpy array lats : numpy array nprocs : int, optional Number of processor cores to be used for calculations. Attributes ---------- shape : tuple Grid shape as (rows, cols) size : int Number of elements in grid lons : object Grid lons lats : object Grid lats cartesian_coords : object Grid cartesian coordinates """ def __init__(self, lons, lats, nprocs=1): super(GridDefinition, self).__init__(lons, lats, nprocs) if lons.shape != lats.shape: raise ValueError('lon and lat grid must have same shape') elif lons.ndim != 2: raise ValueError('2 dimensional lon lat grid expected') def get_array_hashable(arr): """Compute a hashable form of the array `arr`. Works with numpy arrays, dask.array.Array, and xarray.DataArray. """ # look for precomputed value if isinstance(arr, DataArray) and np.ndarray is not DataArray: return arr.attrs.get('hash', get_array_hashable(arr.data)) else: try: return arr.name.encode('utf-8') # dask array except AttributeError: return np.asarray(arr).view(np.uint8) # np array class SwathDefinition(CoordinateDefinition): """Swath defined by lons and lats. Parameters ---------- lons : numpy array lats : numpy array nprocs : int, optional Number of processor cores to be used for calculations. Attributes ---------- shape : tuple Swath shape size : int Number of elements in swath ndims : int Swath dimensions lons : object Swath lons lats : object Swath lats cartesian_coords : object Swath cartesian coordinates """ def __init__(self, lons, lats, nprocs=1): if not isinstance(lons, (np.ndarray, DataArray)): lons = np.asanyarray(lons) lats = np.asanyarray(lats) super(SwathDefinition, self).__init__(lons, lats, nprocs) if lons.shape != lats.shape: raise ValueError('lon and lat arrays must have same shape') elif lons.ndim > 2: raise ValueError('Only 1 and 2 dimensional swaths are allowed') self.hash = None def __hash__(self): """Compute the hash of this object.""" if self.hash is None: hasher = hashlib.sha1() hasher.update(get_array_hashable(self.lons)) hasher.update(get_array_hashable(self.lats)) try: if self.lons.mask is not np.bool_(False): hasher.update(get_array_hashable(self.lons.mask)) except AttributeError: pass self.hash = int(hasher.hexdigest(), 16) return self.hash def get_lonlats_dask(self, chunks=CHUNK_SIZE): """Get the lon lats as a single dask array.""" import dask.array as da lons, lats = self.get_lonlats() if isinstance(lons.data, da.Array): return lons.data, lats.data else: lons = da.from_array(np.asanyarray(lons), chunks=chunks) lats = da.from_array(np.asanyarray(lats), chunks=chunks) return lons, lats def _compute_omerc_parameters(self, ellipsoid): """Compute the oblique mercator projection bouding box parameters.""" lines, cols = self.lons.shape lon1, lon2 = np.asanyarray(self.lons[[0, -1], int(cols / 2)]) lat1, lat, lat2 = np.asanyarray( self.lats[[0, int(lines / 2), -1], int(cols / 2)]) proj_dict2points = {'proj': 'omerc', 'lat_0': lat, 'ellps': ellipsoid, 'lat_1': lat1, 'lon_1': lon1, 'lat_2': lat2, 'lon_2': lon2} lonc, lat0 = Proj(**proj_dict2points)(0, 0, inverse=True) az1, az2, dist = Geod(**proj_dict2points).inv(lonc, lat0, lon1, lat1) del az2, dist return {'proj': 'omerc', 'alpha': float(az1), 'lat_0': float(lat0), 'lonc': float(lonc), 'no_rot': True, 'ellps': ellipsoid} def _compute_generic_parameters(self, projection, ellipsoid): """Compute the projection bb parameters for most projections.""" lines, cols = self.lons.shape lat_0 = self.lats[int(lines / 2), int(cols / 2)] lon_0 = self.lons[int(lines / 2), int(cols / 2)] return {'proj': projection, 'ellps': ellipsoid, 'lat_0': lat_0, 'lon_0': lon_0} def get_edge_lonlats(self): """Get the concatenated boundary of the current swath.""" lons, lats = self.get_boundary_lonlats() blons = np.ma.concatenate([lons.side1, lons.side2, lons.side3, lons.side4]) blats = np.ma.concatenate([lats.side1, lats.side2, lats.side3, lats.side4]) return blons, blats def compute_bb_proj_params(self, proj_dict): projection = proj_dict['proj'] ellipsoid = proj_dict.get('ellps', 'WGS84') if projection == 'omerc': return self._compute_omerc_parameters(ellipsoid) else: new_proj = self._compute_generic_parameters(projection, ellipsoid) new_proj.update(proj_dict) return new_proj def compute_optimal_bb_area(self, proj_dict=None): """Compute the "best" bounding box area for this swath with `proj_dict`. By default, the projection is Oblique Mercator (`omerc` in proj.4), in which case the right projection angle `alpha` is computed from the swath centerline. For other projections, only the appropriate center of projection and area extents are computed. """ if proj_dict is None: proj_dict = {} projection = proj_dict.setdefault('proj', 'omerc') area_id = projection + '_otf' description = 'On-the-fly ' + projection + ' area' lines, cols = self.lons.shape x_size = int(cols * 1.1) y_size = int(lines * 1.1) proj_dict = self.compute_bb_proj_params(proj_dict) if projection == 'omerc': x_size, y_size = y_size, x_size area = DynamicAreaDefinition(area_id, description, proj_dict) lons, lats = self.get_edge_lonlats() return area.freeze((lons, lats), size=(x_size, y_size)) class DynamicAreaDefinition(object): """An AreaDefintion containing just a subset of the needed parameters. The purpose of this class is to be able to adapt the area extent and size of the area to a given set of longitudes and latitudes, such that e.g. polar satellite granules can be resampled optimaly to a give projection. """ def __init__(self, area_id=None, description=None, proj_dict=None, x_size=None, y_size=None, area_extent=None, optimize_projection=False, rotation=None): """Initialize the DynamicAreaDefinition. area_id: The name of the area. description: The description of the area. proj_dict: The dictionary of projection parameters. Doesn't have to be complete. x_size, y_size: The size of the resulting area. area_extent: The area extent of the area. optimize_projection: Whether the projection parameters have to be optimized. rotation: Rotation in degrees (negative is cw) """ self.area_id = area_id self.description = description self.proj_dict = proj_dict self.x_size = x_size self.y_size = y_size self.area_extent = area_extent self.optimize_projection = optimize_projection self.rotation = rotation def compute_domain(self, corners, resolution=None, size=None): """Compute size and area_extent from corners and [size or resolution] info.""" if resolution is not None and size is not None: raise ValueError("Both resolution and size can't be provided.") if size: x_size, y_size = size x_resolution = (corners[2] - corners[0]) * 1.0 / (x_size - 1) y_resolution = (corners[3] - corners[1]) * 1.0 / (y_size - 1) if resolution: try: x_resolution, y_resolution = resolution except TypeError: x_resolution = y_resolution = resolution x_size = int(np.rint((corners[2] - corners[0]) * 1.0 / x_resolution + 1)) y_size = int(np.rint((corners[3] - corners[1]) * 1.0 / y_resolution + 1)) area_extent = (corners[0] - x_resolution / 2, corners[1] - y_resolution / 2, corners[2] + x_resolution / 2, corners[3] + y_resolution / 2) return area_extent, x_size, y_size def freeze(self, lonslats=None, resolution=None, size=None, proj_info=None, rotation=None): """Create an AreaDefintion from this area with help of some extra info. lonlats: the geographical coordinates to contain in the resulting area. resolution: the resolution of the resulting area. size: the size of the resulting area. proj_info: complementing parameters to the projection info. rotation: rotation in degrees (negative is cw) Resolution and Size parameters are ignored if the instance is created with the `optimize_projection` flag set to True. """ if proj_info is not None: self.proj_dict.update(proj_info) if self.optimize_projection: return lonslats.compute_optimal_bb_area(self.proj_dict) if not self.area_extent or not self.x_size or not self.y_size: proj4 = Proj(**self.proj_dict) try: lons, lats = lonslats except (TypeError, ValueError): lons, lats = lonslats.get_lonlats() xarr, yarr = proj4(np.asarray(lons), np.asarray(lats)) corners = [np.min(xarr), np.min(yarr), np.max(xarr), np.max(yarr)] domain = self.compute_domain(corners, resolution, size) self.area_extent, self.x_size, self.y_size = domain return AreaDefinition(self.area_id, self.description, '', self.proj_dict, self.x_size, self.y_size, self.area_extent, self.rotation) class AreaDefinition(BaseDefinition): """Holds definition of an area. Parameters ---------- area_id : str ID of area name : str Name of area proj_id : str ID of projection proj_dict : dict Dictionary with Proj.4 parameters x_size : int x dimension in number of pixels y_size : int y dimension in number of pixels rotation: float rotation in degrees (negative is cw) area_extent : list Area extent as a list (LL_x, LL_y, UR_x, UR_y) nprocs : int, optional Number of processor cores to be used lons : numpy array, optional Grid lons lats : numpy array, optional Grid lats Attributes ---------- area_id : str ID of area name : str Name of area proj_id : str ID of projection proj_dict : dict Dictionary with Proj.4 parameters x_size : int x dimension in number of pixels y_size : int y dimension in number of pixels rotation: float rotation in degrees (negative is cw) shape : tuple Corresponding array shape as (rows, cols) size : int Number of points in grid area_extent : tuple Area extent as a tuple (LL_x, LL_y, UR_x, UR_y) area_extent_ll : tuple Area extent in lons lats as a tuple (LL_lon, LL_lat, UR_lon, UR_lat) pixel_size_x : float Pixel width in projection units pixel_size_y : float Pixel height in projection units pixel_upper_left : list Coordinates (x, y) of center of upper left pixel in projection units pixel_offset_x : float x offset between projection center and upper left corner of upper left pixel in units of pixels. pixel_offset_y : float y offset between projection center and upper left corner of upper left pixel in units of pixels.. proj4_string : str Projection defined as Proj.4 string lons : object Grid lons lats : object Grid lats cartesian_coords : object Grid cartesian coordinates projection_x_coords : object Grid projection x coordinate projection_y_coords : object Grid projection y coordinate """ def __init__(self, area_id, name, proj_id, proj_dict, x_size, y_size, area_extent, rotation=None, nprocs=1, lons=None, lats=None, dtype=np.float64): if not isinstance(proj_dict, dict): raise TypeError('Wrong type for proj_dict: %s. Expected dict.' % type(proj_dict)) super(AreaDefinition, self).__init__(lons, lats, nprocs) self.area_id = area_id self.name = name self.proj_id = proj_id self.x_size = int(x_size) self.y_size = int(y_size) self.shape = (y_size, x_size) try: self.rotation = float(rotation) except TypeError: self.rotation = 0 if lons is not None: if lons.shape != self.shape: raise ValueError('Shape of lon lat grid must match ' 'area definition') self.size = y_size * x_size self.ndim = 2 self.pixel_size_x = (area_extent[2] - area_extent[0]) / float(x_size) self.pixel_size_y = (area_extent[3] - area_extent[1]) / float(y_size) self.proj_dict = proj_dict self.area_extent = tuple(area_extent) # Calculate area_extent in lon lat proj = _spatial_mp.Proj(**proj_dict) corner_lons, corner_lats = proj((area_extent[0], area_extent[2]), (area_extent[1], area_extent[3]), inverse=True) self.area_extent_ll = (corner_lons[0], corner_lats[0], corner_lons[1], corner_lats[1]) # Calculate projection coordinates of center of upper left pixel self.pixel_upper_left = \ (float(area_extent[0]) + float(self.pixel_size_x) / 2, float(area_extent[3]) - float(self.pixel_size_y) / 2) # Pixel_offset defines the distance to projection center from origen # (UL) of image in units of pixels. self.pixel_offset_x = -self.area_extent[0] / self.pixel_size_x self.pixel_offset_y = self.area_extent[3] / self.pixel_size_y self._projection_x_coords = None self._projection_y_coords = None self.dtype = dtype @property def proj_str(self): return utils.proj4_dict_to_str(self.proj_dict, sort=True) def __str__(self): # We need a sorted dictionary for a unique hash of str(self) proj_dict = self.proj_dict proj_str = ('{' + ', '.join(["'%s': '%s'" % (str(k), str(proj_dict[k])) for k in sorted(proj_dict.keys())]) + '}') if not self.proj_id: third_line = "" else: third_line = "Projection ID: {0}\n".format(self.proj_id) return ('Area ID: {0}\nDescription: {1}\n{2}' 'Projection: {3}\nNumber of columns: {4}\nNumber of rows: {5}\n' 'Area extent: {6}').format(self.area_id, self.name, third_line, proj_str, self.x_size, self.y_size, self.area_extent) def create_areas_def(self): to_dump = OrderedDict() res = OrderedDict() to_dump[self.area_id] = res res['description'] = self.name res['shape'] = OrderedDict([('height', self.y_size), ('width', self.x_size)]) res['area_extent'] = OrderedDict([('lower_left_xy', list(self.area_extent[:2])), ('upper_right_xy', list(self.area_extent[2:])), ('units', 'm') ]) return ordered_dump(to_dump) def create_areas_def_legacy(self): proj_dict = self.proj_dict proj_str = ','.join(["%s=%s" % (str(k), str(proj_dict[k])) for k in sorted(proj_dict.keys())]) fmt = "REGION: {name} {{\n" fmt += "\tNAME:\t{name}\n" fmt += "\tPCS_ID:\t{area_id}\n" fmt += "\tPCS_DEF:\t{proj_str}\n" fmt += "\tXSIZE:\t{x_size}\n" fmt += "\tYSIZE:\t{y_size}\n" fmt += "\tROTATION:\t{rotation}\n" fmt += "\tAREA_EXTENT: {area_extent}\n}};\n" area_def_str = fmt.format(name=self.name, area_id=self.area_id, proj_str=proj_str, x_size=self.x_size, y_size=self.y_size, area_extent=self.area_extent) return area_def_str __repr__ = __str__ def __eq__(self, other): """Test for equality""" try: return ((self.proj_str == other.proj_str) and (self.shape == other.shape) and (np.allclose(self.area_extent, other.area_extent))) except AttributeError: return super(AreaDefinition, self).__eq__(other) def __ne__(self, other): """Test for equality""" return not self.__eq__(other) def __hash__(self): return hash(( self.proj_str, self.shape, self.area_extent )) def colrow2lonlat(self, cols, rows): """ Return longitudes and latitudes for the given image columns and rows. Both scalars and arrays are supported. To be used with scarse data points instead of slices (see get_lonlats). """ p = _spatial_mp.Proj(self.proj4_string) x = self.projection_x_coords y = self.projection_y_coords return p(y[y.size - cols], x[x.size - rows], inverse=True) def lonlat2colrow(self, lons, lats): """ Return image columns and rows for the given longitudes and latitudes. Both scalars and arrays are supported. Same as get_xy_from_lonlat, renamed for convenience. """ return self.get_xy_from_lonlat(lons, lats) def get_xy_from_lonlat(self, lon, lat): """Retrieve closest x and y coordinates (column, row indices) for the specified geolocation (lon,lat) if inside area. If lon,lat is a point a ValueError is raised if the return point is outside the area domain. If lon,lat is a tuple of sequences of longitudes and latitudes, a tuple of masked arrays are returned. :Input: lon : point or sequence (list or array) of longitudes lat : point or sequence (list or array) of latitudes :Returns: (x, y) : tuple of integer points/arrays """ if isinstance(lon, list): lon = np.array(lon) if isinstance(lat, list): lat = np.array(lat) if ((isinstance(lon, np.ndarray) and not isinstance(lat, np.ndarray)) or (not isinstance(lon, np.ndarray) and isinstance(lat, np.ndarray))): raise ValueError("Both lon and lat needs to be of " + "the same type and have the same dimensions!") if isinstance(lon, np.ndarray) and isinstance(lat, np.ndarray): if lon.shape != lat.shape: raise ValueError("lon and lat is not of the same shape!") pobj = _spatial_mp.Proj(self.proj4_string) xm_, ym_ = pobj(lon, lat) return self.get_xy_from_proj_coords(xm_, ym_) def get_xy_from_proj_coords(self, xm, ym): """Find closest grid cell index for a specified projection coordinate. If xm, ym is a tuple of sequences of projection coordinates, a tuple of masked arrays are returned. Args: xm (list or array): point or sequence of x-coordinates in meters (map projection) ym (list or array): point or sequence of y-coordinates in meters (map projection) Returns: x, y : column and row grid cell indexes as 2 scalars or arrays Raises: ValueError: if the return point is outside the area domain """ if isinstance(xm, list): xm = np.array(xm) if isinstance(ym, list): ym = np.array(ym) if ((isinstance(xm, np.ndarray) and not isinstance(ym, np.ndarray)) or (not isinstance(xm, np.ndarray) and isinstance(ym, np.ndarray))): raise ValueError("Both projection coordinates xm and ym needs to be of " + "the same type and have the same dimensions!") if isinstance(xm, np.ndarray) and isinstance(ym, np.ndarray): if xm.shape != ym.shape: raise ValueError( "projection coordinates xm and ym is not of the same shape!") upl_x = self.area_extent[0] upl_y = self.area_extent[3] xscale = (self.area_extent[2] - self.area_extent[0]) / float(self.x_size) # because rows direction is the opposite of y's yscale = (self.area_extent[1] - self.area_extent[3]) / float(self.y_size) x__ = (xm - upl_x) / xscale y__ = (ym - upl_y) / yscale if isinstance(x__, np.ndarray) and isinstance(y__, np.ndarray): mask = (((x__ < 0) | (x__ > self.x_size)) | ((y__ < 0) | (y__ > self.y_size))) return (np.ma.masked_array(x__.astype('int'), mask=mask, fill_value=-1, copy=False), np.ma.masked_array(y__.astype('int'), mask=mask, fill_value=-1, copy=False)) else: if ((x__ < 0 or x__ > self.x_size) or (y__ < 0 or y__ > self.y_size)): raise ValueError('Point outside area:( %f %f)' % (x__, y__)) return int(x__), int(y__) def get_lonlat(self, row, col): """Retrieves lon and lat values of single point in area grid Parameters ---------- row : int col : int Returns ------- (lon, lat) : tuple of floats """ return self.get_lonlats(nprocs=None, data_slice=(row, col)) def get_proj_vectors_dask(self, chunks=CHUNK_SIZE, dtype=None): import dask.array as da if dtype is None: dtype = self.dtype target_x = da.arange(self.x_size, chunks=chunks, dtype=dtype) * \ self.pixel_size_x + self.pixel_upper_left[0] target_y = da.arange(self.y_size, chunks=chunks, dtype=dtype) * - \ self.pixel_size_y + self.pixel_upper_left[1] return target_x, target_y def get_proj_coords_dask(self, chunks=CHUNK_SIZE, dtype=None): # TODO: Add rotation import dask.array as da target_x, target_y = self.get_proj_vectors_dask(chunks, dtype) return da.meshgrid(target_x, target_y) def get_proj_coords(self, data_slice=None, cache=False, dtype=None): """Get projection coordinates of grid. Parameters ---------- data_slice : slice object, optional Calculate only coordinates for specified slice cache : bool, optional Store the result. Requires data_slice to be None Returns ------- (target_x, target_y) : tuple of numpy arrays Grids of area x- and y-coordinates in projection units """ def do_rotation(xspan, yspan, rot_deg=0): rot_rad = np.radians(rot_deg) rot_mat = np.array([[np.cos(rot_rad), np.sin(rot_rad)], [-np.sin(rot_rad), np.cos(rot_rad)]]) x, y = np.meshgrid(xspan, yspan) return np.einsum('ji, mni -> jmn', rot_mat, np.dstack([x, y])) def get_val(val, sub_val, max): # Get value with substitution and wrapping if val is None: return sub_val else: if val < 0: # Wrap index return max + val else: return val if self._projection_x_coords is not None and self._projection_y_coords is not None: # Projection coords are cached if data_slice is None: return self._projection_x_coords, self._projection_y_coords else: return self._projection_x_coords[data_slice], self._projection_y_coords[data_slice] is_single_value = False is_1d_select = False if dtype is None: dtype = self.dtype # create coordinates of local area as ndarrays if data_slice is None or data_slice == slice(None): # Full slice rows = self.y_size cols = self.x_size row_start = 0 col_start = 0 else: if isinstance(data_slice, slice): # Row slice row_start = get_val(data_slice.start, 0, self.y_size) col_start = 0 rows = get_val( data_slice.stop, self.y_size, self.y_size) - row_start cols = self.x_size elif isinstance(data_slice[0], slice) and isinstance(data_slice[1], slice): # Block slice row_start = get_val(data_slice[0].start, 0, self.y_size) col_start = get_val(data_slice[1].start, 0, self.x_size) rows = get_val( data_slice[0].stop, self.y_size, self.y_size) - row_start cols = get_val( data_slice[1].stop, self.x_size, self.x_size) - col_start elif isinstance(data_slice[0], slice): # Select from col is_1d_select = True row_start = get_val(data_slice[0].start, 0, self.y_size) col_start = get_val(data_slice[1], 0, self.x_size) rows = get_val( data_slice[0].stop, self.y_size, self.y_size) - row_start cols = 1 elif isinstance(data_slice[1], slice): # Select from row is_1d_select = True row_start = get_val(data_slice[0], 0, self.y_size) col_start = get_val(data_slice[1].start, 0, self.x_size) rows = 1 cols = get_val( data_slice[1].stop, self.x_size, self.x_size) - col_start else: # Single element select is_single_value = True row_start = get_val(data_slice[0], 0, self.y_size) col_start = get_val(data_slice[1], 0, self.x_size) rows = 1 cols = 1 # Calculate coordinates target_x = np.arange(col_start, col_start + cols, dtype=dtype) * \ self.pixel_size_x + self.pixel_upper_left[0] target_y = np.arange(row_start, row_start + rows, dtype=dtype) * - \ self.pixel_size_y + self.pixel_upper_left[1] if self.rotation != 0: res = do_rotation(target_x, target_y, self.rotation) target_x, target_y = res[0, :, :], res[1, :, :] else: target_x, target_y = np.meshgrid(target_x, target_y) if is_single_value: # Return single values target_x = float(target_x) target_y = float(target_y) elif is_1d_select: # Reshape to 1D array target_x = target_x.reshape((target_x.size,)) target_y = target_y.reshape((target_y.size,)) if cache and data_slice is None: # Cache the result if requested self._projection_x_coords = target_x self._projection_y_coords = target_y return target_x, target_y @property def projection_x_coords(self): return self.get_proj_coords(data_slice=(0, slice(None)))[0] @property def projection_y_coords(self): return self.get_proj_coords(data_slice=(slice(None), 0))[1] @property def proj_x_coords(self): warnings.warn( "Deprecated, use 'projection_x_coords' instead", DeprecationWarning) return self.projection_x_coords @property def proj_y_coords(self): warnings.warn( "Deprecated, use 'projection_y_coords' instead", DeprecationWarning) return self.projection_y_coords @property def outer_boundary_corners(self): """Returns the lon,lat of the outer edges of the corner points """ from pyresample.spherical_geometry import Coordinate proj = _spatial_mp.Proj(**self.proj_dict) corner_lons, corner_lats = proj((self.area_extent[0], self.area_extent[2], self.area_extent[2], self.area_extent[0]), (self.area_extent[3], self.area_extent[3], self.area_extent[1], self.area_extent[1]), inverse=True) return [Coordinate(corner_lons[0], corner_lats[0]), Coordinate(corner_lons[1], corner_lats[1]), Coordinate(corner_lons[2], corner_lats[2]), Coordinate(corner_lons[3], corner_lats[3])] def get_lonlats_dask(self, chunks=CHUNK_SIZE, dtype=None): from dask.array import map_blocks dtype = dtype or self.dtype target_x, target_y = self.get_proj_coords_dask(chunks, dtype) target_proj = Proj(**self.proj_dict) def invproj(data1, data2): return np.dstack(target_proj(data1, data2, inverse=True)) res = map_blocks(invproj, target_x, target_y, chunks=(target_x.chunks[0], target_x.chunks[1], 2), new_axis=[2]) return res[:, :, 0], res[:, :, 1] def get_lonlats(self, nprocs=None, data_slice=None, cache=False, dtype=None): """Returns lon and lat arrays of area. Parameters ---------- nprocs : int, optional Number of processor cores to be used. Defaults to the nprocs set when instantiating object data_slice : slice object, optional Calculate only coordinates for specified slice cache : bool, optional Store result the result. Requires data_slice to be None Returns ------- (lons, lats) : tuple of numpy arrays Grids of area lons and and lats """ if dtype is None: dtype = self.dtype if self.lons is None or self.lats is None: # Data is not cached if nprocs is None: nprocs = self.nprocs # Proj.4 definition of target area projection if nprocs > 1: target_proj = _spatial_mp.Proj_MP(**self.proj_dict) else: target_proj = _spatial_mp.Proj(**self.proj_dict) # Get coordinates of local area as ndarrays target_x, target_y = self.get_proj_coords( data_slice=data_slice, dtype=dtype) # Get corresponding longitude and latitude values lons, lats = target_proj(target_x, target_y, inverse=True, nprocs=nprocs) lons = np.asanyarray(lons, dtype=dtype) lats = np.asanyarray(lats, dtype=dtype) if cache and data_slice is None: # Cache the result if requested self.lons = lons self.lats = lats # Free memory del(target_x) del(target_y) else: # Data is cached if data_slice is None: # Full slice lons = self.lons lats = self.lats else: lons = self.lons[data_slice] lats = self.lats[data_slice] return lons, lats @property def proj4_string(self): """Returns projection definition as Proj.4 string""" items = self.proj_dict.items() return '+' + ' +'.join([t[0] + '=' + str(t[1]) for t in items]) def combine_area_extents_vertical(area1, area2): """Combine the area extents of areas 1 and 2.""" if (area1.area_extent[0] == area2.area_extent[0] and area1.area_extent[2] == area2.area_extent[2]): current_extent = list(area1.area_extent) if np.isclose(area1.area_extent[1], area2.area_extent[3]): current_extent[1] = area2.area_extent[1] elif np.isclose(area1.area_extent[3], area2.area_extent[1]): current_extent[3] = area2.area_extent[3] else: raise IncompatibleAreas( "Can't concatenate area definitions with " "incompatible area extents: " "{0} and {1}".format(area1, area2)) return current_extent def concatenate_area_defs(area1, area2, axis=0): """Append *area2* to *area1* and return the results""" different_items = (set(area1.proj_dict.items()) ^ set(area2.proj_dict.items())) if axis == 0: same_size = area1.x_size == area2.x_size else: raise NotImplementedError('Only vertical contatenation is supported.') if different_items or not same_size: raise IncompatibleAreas("Can't concatenate area definitions with " "different projections: " "{0} and {1}".format(area1, area2)) if axis == 0: area_extent = combine_area_extents_vertical(area1, area2) x_size = int(area1.x_size) y_size = int(area1.y_size + area2.y_size) else: raise NotImplementedError('Only vertical contatenation is supported.') return AreaDefinition(area1.area_id, area1.name, area1.proj_id, area1.proj_dict, x_size, y_size, area_extent) class StackedAreaDefinition(BaseDefinition): """Definition based on muliple vertically stacked AreaDefinitions.""" def __init__(self, *definitions, **kwargs): """Base this instance on *definitions*. *kwargs* used here are `nprocs` and `dtype` (see AreaDefinition). """ nprocs = kwargs.get('nprocs', 1) super(StackedAreaDefinition, self).__init__(nprocs=nprocs) self.dtype = kwargs.get('dtype', np.float64) self.defs = [] self.proj_dict = {} for definition in definitions: self.append(definition) @property def x_size(self): return self.defs[0].x_size @property def y_size(self): return sum(definition.y_size for definition in self.defs) @property def size(self): return self.y_size * self.x_size def append(self, definition): """Append another definition to the area.""" if isinstance(definition, StackedAreaDefinition): for area in definition.defs: self.append(area) return if definition.y_size == 0: return if not self.defs: self.proj_dict = definition.proj_dict elif self.proj_dict != definition.proj_dict: raise NotImplementedError('Cannot append areas:' ' Proj.4 dict mismatch') try: self.defs[-1] = concatenate_area_defs(self.defs[-1], definition) except (IncompatibleAreas, IndexError): self.defs.append(definition) def get_lonlats(self, nprocs=None, data_slice=None, cache=False, dtype=None): """Return lon and lat arrays of the area.""" llons = [] llats = [] try: row_slice, col_slice = data_slice except TypeError: row_slice = slice(0, self.y_size) col_slice = slice(0, self.x_size) offset = 0 for definition in self.defs: local_row_slice = slice(max(row_slice.start - offset, 0), min(max(row_slice.stop - offset, 0), definition.y_size), row_slice.step) lons, lats = definition.get_lonlats(nprocs=nprocs, data_slice=(local_row_slice, col_slice), cache=cache, dtype=dtype) llons.append(lons) llats.append(lats) offset += lons.shape[0] self.lons = np.vstack(llons) self.lats = np.vstack(llats) return self.lons, self.lats def get_lonlats_dask(self, chunks=CHUNK_SIZE, dtype=None): """"Return lon and lat dask arrays of the area.""" import dask.array as da llons = [] llats = [] for definition in self.defs: lons, lats = definition.get_lonlats_dask(chunks=chunks, dtype=dtype) llons.append(lons) llats.append(lats) self.lons = da.concatenate(llons, axis=0) self.lats = da.concatenate(llats, axis=0) return self.lons, self.lats def squeeze(self): """Generate a single AreaDefinition if possible.""" if len(self.defs) == 1: return self.defs[0] else: return self @property def proj4_string(self): """Returns projection definition as Proj.4 string""" return self.defs[0].proj4_string def _get_slice(segments, shape): """Generator for segmenting a 1D or 2D array""" if not (1 <= len(shape) <= 2): raise ValueError('Cannot segment array of shape: %s' % str(shape)) else: size = shape[0] slice_length = int(np.ceil(float(size) / segments)) start_idx = 0 end_idx = slice_length while start_idx < size: if len(shape) == 1: yield slice(start_idx, end_idx) else: yield (slice(start_idx, end_idx), slice(None)) start_idx = end_idx end_idx = min(start_idx + slice_length, size) def _flatten_cartesian_coords(cartesian_coords): """Flatten array to (n, 3) shape""" shape = cartesian_coords.shape if len(shape) > 2: cartesian_coords = cartesian_coords.reshape(shape[0] * shape[1], 3) return cartesian_coords def _get_highest_level_class(obj1, obj2): if (not issubclass(obj1.__class__, obj2.__class__) or not issubclass(obj2.__class__, obj1.__class__)): raise TypeError('No common superclass for %s and %s' % (obj1.__class__, obj2.__class__)) if obj1.__class__ == obj2.__class__: klass = obj1.__class__ elif issubclass(obj1.__class__, obj2.__class__): klass = obj2.__class__ else: klass = obj1.__class__ return klass def ordered_dump(data, stream=None, Dumper=yaml.Dumper, **kwds): class OrderedDumper(Dumper): pass def _dict_representer(dumper, data): return dumper.represent_mapping( yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, data.items(), flow_style=False) OrderedDumper.add_representer(OrderedDict, _dict_representer) return yaml.dump(data, stream, OrderedDumper, **kwds) pyresample-1.8.1/pyresample/grid.py000066400000000000000000000207631324347254000173760ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2014, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or #(at your option) any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Resample image from one projection to another using nearest neighbour method in cartesian projection coordinate systems""" from __future__ import absolute_import import numpy as np from pyresample import geometry, _spatial_mp try: range = xrange except NameError: pass def get_image_from_linesample(row_indices, col_indices, source_image, fill_value=0): """Samples from image based on index arrays. Parameters ---------- row_indices : numpy array Row indices. Dimensions must match col_indices col_indices : numpy array Col indices. Dimensions must match row_indices source_image : numpy array Source image fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked Returns ------- image_data : numpy array Resampled image """ # mask out non valid row and col indices row_mask = (row_indices >= 0) * (row_indices < source_image.shape[0]) col_mask = (col_indices >= 0) * (col_indices < source_image.shape[1]) valid_rows = row_indices * row_mask valid_cols = col_indices * col_mask # free memory del(row_indices) del(col_indices) # get valid part of image target_image = source_image[valid_rows, valid_cols] # free memory del(valid_rows) del(valid_cols) # create mask for valid data points valid_data = row_mask * col_mask if valid_data.ndim != target_image.ndim: for i in range(target_image.ndim - valid_data.ndim): valid_data = np.expand_dims(valid_data, axis=valid_data.ndim) # free memory del(row_mask) del(col_mask) # fill the non valid part of the image if fill_value is not None: target_filled = (target_image * valid_data + (1 - valid_data) * fill_value) else: if np.ma.is_masked(target_image): mask = ((1 - valid_data) | target_image.mask) else: mask = (1 - valid_data) target_filled = np.ma.array(target_image, mask=mask) return target_filled.astype(target_image.dtype) def get_linesample(lons, lats, source_area_def, nprocs=1): """Returns index row and col arrays for resampling Parameters ---------- lons : numpy array Lons. Dimensions must match lats lats : numpy array Lats. Dimensions must match lons source_area_def : object Source definition as AreaDefinition object nprocs : int, optional Number of processor cores to be used Returns ------- (row_indices, col_indices) : tuple of numpy arrays Arrays for resampling area by array indexing """ # Proj.4 definition of source area projection if nprocs > 1: source_proj = _spatial_mp.Proj_MP(**source_area_def.proj_dict) else: source_proj = _spatial_mp.Proj(**source_area_def.proj_dict) # get cartesian projection values from longitude and latitude source_x, source_y = source_proj(lons, lats, nprocs=nprocs) # Find corresponding pixels (element by element conversion of ndarrays) source_pixel_x = (source_area_def.pixel_offset_x + source_x / source_area_def.pixel_size_x).astype(np.int32) source_pixel_y = (source_area_def.pixel_offset_y - source_y / source_area_def.pixel_size_y).astype(np.int32) return source_pixel_y, source_pixel_x def get_image_from_lonlats(lons, lats, source_area_def, source_image_data, fill_value=0, nprocs=1): """Samples from image based on lon lat arrays using nearest neighbour method in cartesian projection coordinate systems. Parameters ---------- lons : numpy array Lons. Dimensions must match lats lats : numpy array Lats. Dimensions must match lons source_area_def : object Source definition as AreaDefinition object source_image_data : numpy array Source image data fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked nprocs : int, optional Number of processor cores to be used Returns ------- image_data : numpy array Resampled image data """ source_pixel_y, source_pixel_x = get_linesample(lons, lats, source_area_def, nprocs=nprocs) # Return target image return get_image_from_linesample(source_pixel_y, source_pixel_x, source_image_data, fill_value) def get_resampled_image(target_area_def, source_area_def, source_image_data, fill_value=0, nprocs=1, segments=None): """Resamples image using nearest neighbour method in cartesian projection coordinate systems. Parameters ---------- target_area_def : object Target definition as AreaDefinition object source_area_def : object Source definition as AreaDefinition object source_image_data : numpy array Source image data fill_value : {int, None} optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked nprocs : int, optional Number of processor cores to be used segments : {int, None} optional Number of segments to use when resampling. If set to None an estimate will be calculated. Returns ------- image_data : numpy array Resampled image data """ if not isinstance(target_area_def, geometry.AreaDefinition): raise TypeError('target_area_def must be of type AreaDefinition') if not isinstance(source_area_def, geometry.AreaDefinition): raise TypeError('source_area_def must be of type AreaDefinition') if not isinstance(source_image_data, (np.ndarray, np.ma.core.MaskedArray)): raise TypeError('source_image must be of type ndarray' ' or a masked array.') # Calculate number of segments if needed if segments is None: rows = target_area_def.y_size cut_off = 500 if rows > cut_off: segments = int(rows / cut_off) else: segments = 1 if segments > 1: # Iterate through segments for i, target_slice in enumerate(geometry._get_slice(segments, target_area_def.shape)): # Select data from segment with slice lons, lats = target_area_def.get_lonlats( nprocs=nprocs, data_slice=target_slice) # Calculate partial result next_result = get_image_from_lonlats(lons, lats, source_area_def, source_image_data, fill_value, nprocs) # Build result iteratively if i == 0: # First iteration result = next_result else: if isinstance(next_result, np.ma.core.MaskedArray): stack = np.ma.row_stack else: stack = np.row_stack result = stack((result, next_result)) return result else: # Get lon lat arrays of target area lons, lats = target_area_def.get_lonlats(nprocs) # Get target image return get_image_from_lonlats(lons, lats, source_area_def, source_image_data, fill_value, nprocs) pyresample-1.8.1/pyresample/image.py000066400000000000000000000362521324347254000175330ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Handles resampling of images with assigned geometry definitions""" from __future__ import absolute_import import numpy as np from pyresample import geometry, grid, kd_tree, bilinear class ImageContainer(object): """Holds image with geometry definition. Allows indexing with linesample arrays. Parameters ---------- image_data : numpy array Image data geo_def : object Geometry definition fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked nprocs : int, optional Number of processor cores to be used Attributes ---------- image_data : numpy array Image data geo_def : object Geometry definition fill_value : int or None Resample result fill value nprocs : int Number of processor cores to be used for geometry operations """ def __init__(self, image_data, geo_def, fill_value=0, nprocs=1): if type(geo_def).__name__ == "DynamicAreaDefinition": geo_def = geo_def.freeze() if not isinstance(image_data, (np.ndarray, np.ma.core.MaskedArray)): raise TypeError('image_data must be either an ndarray' ' or a masked array') elif ((image_data.ndim > geo_def.ndim + 1) or (image_data.ndim < geo_def.ndim)): raise ValueError(('Unexpected number of dimensions for ' 'image_data: ') % image_data.ndim) for i, size in enumerate(geo_def.shape): if image_data.shape[i] != size: raise ValueError(('Size mismatch for image_data. Expected ' 'size %s for dimension %s and got %s') % (size, i, image_data.shape[i])) self.shape = geo_def.shape self.size = geo_def.size self.ndim = geo_def.ndim self.image_data = image_data if image_data.ndim > geo_def.ndim: self.channels = image_data.shape[-1] else: self.channels = 1 self.geo_def = geo_def self.fill_value = fill_value self.nprocs = nprocs def __str__(self): return 'Image:\n %s' % self.image_data.__str__() def __repr__(self): return self.image_data.__repr__() def resample(self, target_geo_def): """Base method for resampling""" raise NotImplementedError('Method "resample" is not implemented ' 'in class %s' % self.__class__.__name__) def get_array_from_linesample(self, row_indices, col_indices): """Samples from image based on index arrays. Parameters ---------- row_indices : numpy array Row indices. Dimensions must match col_indices col_indices : numpy array Col indices. Dimensions must match row_indices Returns ------- image_data : numpy_array Resampled image data """ if self.geo_def.ndim != 2: raise TypeError('Resampling from linesamples only makes sense ' 'on 2D data') return grid.get_image_from_linesample(row_indices, col_indices, self.image_data, self.fill_value) def get_array_from_neighbour_info(self, *args, **kwargs): """Base method for resampling from preprocessed data.""" raise NotImplementedError('Method "get_array_from_neighbour_info" is ' 'not implemented in class %s' % self.__class__.__name__) class ImageContainerQuick(ImageContainer): """Holds image with area definition. ' Allows quick resampling within area. Parameters ---------- image_data : numpy array Image data geo_def : object Area definition as AreaDefinition object fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked nprocs : int, optional Number of processor cores to be used for geometry operations segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated Attributes ---------- image_data : numpy array Image data geo_def : object Area definition as AreaDefinition object fill_value : int or None Resample result fill value If fill_value is None a masked array is returned with undetermined pixels masked nprocs : int Number of processor cores to be used segments : int or None Number of segments to use when resampling """ def __init__(self, image_data, geo_def, fill_value=0, nprocs=1, segments=None): if not isinstance(geo_def, geometry.AreaDefinition): raise TypeError('area_def must be of type ' 'geometry.AreaDefinition') super(ImageContainerQuick, self).__init__(image_data, geo_def, fill_value=fill_value, nprocs=nprocs) self.segments = segments def resample(self, target_area_def): """Resamples image to area definition using nearest neighbour approach in projection coordinates. Parameters ---------- target_area_def : object Target area definition as AreaDefinition object Returns ------- image_container : object ImageContainerQuick object of resampled area """ resampled_image = grid.get_resampled_image(target_area_def, self.geo_def, self.image_data, fill_value=self.fill_value, nprocs=self.nprocs, segments=self.segments) return ImageContainerQuick(resampled_image, target_area_def, fill_value=self.fill_value, nprocs=self.nprocs, segments=self.segments) class ImageContainerNearest(ImageContainer): """Holds image with geometry definition. Allows nearest neighbour to new geometry definition. Parameters ---------- image_data : numpy array Image data geo_def : object Geometry definition radius_of_influence : float Cut off distance in meters epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked reduce_data : bool, optional Perform coarse data reduction before resampling in order to reduce execution time nprocs : int, optional Number of processor cores to be used for geometry operations segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated Attributes ---------- image_data : numpy array Image data geo_def : object Geometry definition radius_of_influence : float Cut off distance in meters epsilon : float Allowed uncertainty in meters fill_value : int or None Resample result fill value reduce_data : bool Perform coarse data reduction before resampling nprocs : int Number of processor cores to be used segments : int or None Number of segments to use when resampling """ def __init__(self, image_data, geo_def, radius_of_influence, epsilon=0, fill_value=0, reduce_data=True, nprocs=1, segments=None): super(ImageContainerNearest, self).__init__(image_data, geo_def, fill_value=fill_value, nprocs=nprocs) self.radius_of_influence = radius_of_influence self.epsilon = epsilon self.reduce_data = reduce_data self.segments = segments def resample(self, target_geo_def): """Resamples image to area definition using nearest neighbour approach Parameters ---------- target_geo_def : object Target geometry definition Returns ------- image_container : object ImageContainerNearest object of resampled geometry """ if self.image_data.ndim > 2 and self.ndim > 1: image_data = self.image_data.reshape(self.image_data.shape[0] * self.image_data.shape[1], self.image_data.shape[2]) else: image_data = self.image_data.ravel() resampled_image = \ kd_tree.resample_nearest(self.geo_def, image_data, target_geo_def, self.radius_of_influence, epsilon=self.epsilon, fill_value=self.fill_value, nprocs=self.nprocs, reduce_data=self.reduce_data, segments=self.segments) return ImageContainerNearest(resampled_image, target_geo_def, self.radius_of_influence, epsilon=self.epsilon, fill_value=self.fill_value, reduce_data=self.reduce_data, nprocs=self.nprocs, segments=self.segments) class ImageContainerBilinear(ImageContainer): """Holds image with geometry definition. Allows bilinear to new geometry definition. Parameters ---------- image_data : numpy array Image data geo_def : object Geometry definition radius_of_influence : float Cut off distance in meters epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked reduce_data : bool, optional Perform coarse data reduction before resampling in order to reduce execution time nprocs : int, optional Number of processor cores to be used for geometry operations segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated Attributes ---------- image_data : numpy array Image data geo_def : object Geometry definition radius_of_influence : float Cut off distance in meters epsilon : float Allowed uncertainty in meters fill_value : int or None Resample result fill value reduce_data : bool Perform coarse data reduction before resampling nprocs : int Number of processor cores to be used segments : int or None Number of segments to use when resampling """ def __init__(self, image_data, geo_def, radius_of_influence, epsilon=0, fill_value=0, reduce_data=True, nprocs=1, segments=None, neighbours=32): super(ImageContainerBilinear, self).__init__(image_data, geo_def, fill_value=fill_value, nprocs=nprocs) self.radius_of_influence = radius_of_influence self.epsilon = epsilon self.reduce_data = reduce_data self.segments = segments self.neighbours = neighbours def resample(self, target_geo_def): """Resamples image to area definition using bilinear approach Parameters ---------- target_geo_def : object Target geometry definition Returns ------- image_container : object ImageContainerBilinear object of resampled geometry """ if self.image_data.ndim > 2 and self.ndim > 1: image_data = self.image_data.reshape(self.image_data.shape[0] * self.image_data.shape[1], self.image_data.shape[2]) else: image_data = self.image_data.ravel() try: mask = image_data.mask.copy() image_data = image_data.data.copy() image_data[mask] = np.nan except AttributeError: pass resampled_image = \ bilinear.resample_bilinear(image_data, self.geo_def, target_geo_def, radius=self.radius_of_influence, neighbours=self.neighbours, epsilon=self.epsilon, fill_value=self.fill_value, nprocs=self.nprocs, reduce_data=self.reduce_data, segments=self.segments) try: resampled_image = resampled_image.reshape(target_geo_def.shape) except ValueError: # The input data was 3D shp = target_geo_def.shape new_shp = [shp[0], shp[1], image_data.shape[-1]] resampled_image = resampled_image.reshape(new_shp) return ImageContainerBilinear(resampled_image, target_geo_def, self.radius_of_influence, epsilon=self.epsilon, fill_value=self.fill_value, reduce_data=self.reduce_data, nprocs=self.nprocs, segments=self.segments) pyresample-1.8.1/pyresample/kd_tree.py000066400000000000000000001306461324347254000200700ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2014, 2015 Esben S. Nielsen # Adam.Dybbroe # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Handles reprojection of geolocated data. Several types of resampling are supported""" from __future__ import absolute_import import sys import types import warnings from logging import getLogger import numpy as np from pyresample import _spatial_mp, data_reduce, geometry, CHUNK_SIZE logger = getLogger(__name__) try: from xarray import DataArray import dask.array as da except ImportError: DataArray = None da = None if sys.version < '3': range = xrange else: long = int kd_tree_name = None try: from pykdtree.kdtree import KDTree kd_tree_name = 'pykdtree' except ImportError: try: import scipy.spatial as sp kd_tree_name = 'scipy.spatial' except ImportError: raise ImportError('Either pykdtree or scipy must be available') class EmptyResult(ValueError): pass def which_kdtree(): """Returns the name of the kdtree used for resampling """ return kd_tree_name def resample_nearest(source_geo_def, data, target_geo_def, radius_of_influence, epsilon=0, fill_value=0, reduce_data=True, nprocs=1, segments=None): """Resamples data using kd-tree nearest neighbour approach Parameters ---------- source_geo_def : object Geometry definition of source data : numpy array 1d array of single channel data points or (source_size, k) array of k channels of datapoints target_geo_def : object Geometry definition of target radius_of_influence : float Cut off distance in meters epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time nprocs : int, optional Number of processor cores to be used segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated Returns ------- data : numpy array Source data resampled to target geometry """ return _resample(source_geo_def, data, target_geo_def, 'nn', radius_of_influence, neighbours=1, epsilon=epsilon, fill_value=fill_value, reduce_data=reduce_data, nprocs=nprocs, segments=segments) def resample_gauss(source_geo_def, data, target_geo_def, radius_of_influence, sigmas, neighbours=8, epsilon=0, fill_value=0, reduce_data=True, nprocs=1, segments=None, with_uncert=False): """Resamples data using kd-tree gaussian weighting neighbour approach. Parameters ---------- source_geo_def : object Geometry definition of source data : numpy array Array of single channel data points or (source_geo_def.shape, k) array of k channels of datapoints target_geo_def : object Geometry definition of target radius_of_influence : float Cut off distance in meters sigmas : list of floats or float List of sigmas to use for the gauss weighting of each channel 1 to k, w_k = exp(-dist^2/sigma_k^2). If only one channel is resampled sigmas is a single float value. neighbours : int, optional The number of neigbours to consider for each grid point epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time fill_value : {int, None}, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time nprocs : int, optional Number of processor cores to be used segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated with_uncert : bool, optional Calculate uncertainty estimates Returns ------- data : numpy array (default) Source data resampled to target geometry data, stddev, counts : numpy array, numpy array, numpy array (if with_uncert == True) Source data resampled to target geometry. Weighted standard devaition for all pixels having more than one source value Counts of number of source values used in weighting per pixel """ def gauss(sigma): # Return gauss function object return lambda r: np.exp(-r ** 2 / float(sigma) ** 2) # Build correct sigma argument is_multi_channel = False try: sigmas.__iter__() sigma_list = sigmas is_multi_channel = True except: sigma_list = [sigmas] for sigma in sigma_list: if not isinstance(sigma, (long, int, float)): raise TypeError('sigma must be number') # Get gauss function objects if is_multi_channel: weight_funcs = list(map(gauss, sigma_list)) else: weight_funcs = gauss(sigmas) return _resample(source_geo_def, data, target_geo_def, 'custom', radius_of_influence, neighbours=neighbours, epsilon=epsilon, weight_funcs=weight_funcs, fill_value=fill_value, reduce_data=reduce_data, nprocs=nprocs, segments=segments, with_uncert=with_uncert) def resample_custom(source_geo_def, data, target_geo_def, radius_of_influence, weight_funcs, neighbours=8, epsilon=0, fill_value=0, reduce_data=True, nprocs=1, segments=None, with_uncert=False): """Resamples data using kd-tree custom radial weighting neighbour approach Parameters ---------- source_geo_def : object Geometry definition of source data : numpy array Array of single channel data points or (source_geo_def.shape, k) array of k channels of datapoints target_geo_def : object Geometry definition of target radius_of_influence : float Cut off distance in meters weight_funcs : list of function objects or function object List of weight functions f(dist) to use for the weighting of each channel 1 to k. If only one channel is resampled weight_funcs is a single function object. neighbours : int, optional The number of neigbours to consider for each grid point epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time fill_value : {int, None}, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time nprocs : int, optional Number of processor cores to be used segments : {int, None} Number of segments to use when resampling. If set to None an estimate will be calculated Returns ------- data : numpy array (default) Source data resampled to target geometry data, stddev, counts : numpy array, numpy array, numpy array (if with_uncert == True) Source data resampled to target geometry. Weighted standard devaition for all pixels having more than one source value Counts of number of source values used in weighting per pixel """ try: for weight_func in weight_funcs: if not isinstance(weight_func, types.FunctionType): raise TypeError('weight_func must be function object') except: if not isinstance(weight_funcs, types.FunctionType): raise TypeError('weight_func must be function object') return _resample(source_geo_def, data, target_geo_def, 'custom', radius_of_influence, neighbours=neighbours, epsilon=epsilon, weight_funcs=weight_funcs, fill_value=fill_value, reduce_data=reduce_data, nprocs=nprocs, segments=segments, with_uncert=with_uncert) def _resample(source_geo_def, data, target_geo_def, resample_type, radius_of_influence, neighbours=8, epsilon=0, weight_funcs=None, fill_value=0, reduce_data=True, nprocs=1, segments=None, with_uncert=False): """Resamples swath using kd-tree approach""" valid_input_index, valid_output_index, index_array, distance_array = \ get_neighbour_info(source_geo_def, target_geo_def, radius_of_influence, neighbours=neighbours, epsilon=epsilon, reduce_data=reduce_data, nprocs=nprocs, segments=segments) return get_sample_from_neighbour_info(resample_type, target_geo_def.shape, data, valid_input_index, valid_output_index, index_array, distance_array=distance_array, weight_funcs=weight_funcs, fill_value=fill_value, with_uncert=with_uncert) def get_neighbour_info(source_geo_def, target_geo_def, radius_of_influence, neighbours=8, epsilon=0, reduce_data=True, nprocs=1, segments=None): """Returns neighbour info Parameters ---------- source_geo_def : object Geometry definition of source target_geo_def : object Geometry definition of target radius_of_influence : float Cut off distance in meters neighbours : int, optional The number of neigbours to consider for each grid point epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time nprocs : int, optional Number of processor cores to be used segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated Returns ------- (valid_input_index, valid_output_index, index_array, distance_array) : tuple of numpy arrays Neighbour resampling info """ if source_geo_def.size < neighbours: warnings.warn('Searching for %s neighbours in %s data points' % (neighbours, source_geo_def.size)) if segments is None: cut_off = 3000000 if target_geo_def.size > cut_off: segments = int(target_geo_def.size / cut_off) else: segments = 1 # Find reduced input coordinate set valid_input_index, source_lons, source_lats = _get_valid_input_index(source_geo_def, target_geo_def, reduce_data, radius_of_influence, nprocs=nprocs) # Create kd-tree try: resample_kdtree = _create_resample_kdtree(source_lons, source_lats, valid_input_index, nprocs=nprocs) except EmptyResult: # Handle if all input data is reduced away valid_output_index, index_array, distance_array = \ _create_empty_info(source_geo_def, target_geo_def, neighbours) return (valid_input_index, valid_output_index, index_array, distance_array) if segments > 1: # Iterate through segments for i, target_slice in enumerate(geometry._get_slice(segments, target_geo_def.shape)): # Query on slice of target coordinates next_voi, next_ia, next_da = \ _query_resample_kdtree(resample_kdtree, source_geo_def, target_geo_def, radius_of_influence, target_slice, neighbours=neighbours, epsilon=epsilon, reduce_data=reduce_data, nprocs=nprocs) # Build result iteratively if i == 0: # First iteration valid_output_index = next_voi index_array = next_ia distance_array = next_da else: valid_output_index = np.append(valid_output_index, next_voi) if neighbours > 1: index_array = np.row_stack((index_array, next_ia)) distance_array = np.row_stack((distance_array, next_da)) else: index_array = np.append(index_array, next_ia) distance_array = np.append(distance_array, next_da) else: # Query kd-tree with full target coordinate set full_slice = slice(None) valid_output_index, index_array, distance_array = \ _query_resample_kdtree(resample_kdtree, source_geo_def, target_geo_def, radius_of_influence, full_slice, neighbours=neighbours, epsilon=epsilon, reduce_data=reduce_data, nprocs=nprocs) # Check if number of neighbours is potentially too low if neighbours > 1: if not np.all(np.isinf(distance_array[:, -1])): warnings.warn(('Possible more than %s neighbours ' 'within %s m for some data points') % (neighbours, radius_of_influence)) return valid_input_index, valid_output_index, index_array, distance_array def _get_valid_input_index(source_geo_def, target_geo_def, reduce_data, radius_of_influence, nprocs=1): """Find indices of reduced inputput data""" source_lons, source_lats = source_geo_def.get_lonlats(nprocs=nprocs) source_lons = np.asanyarray(source_lons).ravel() source_lats = np.asanyarray(source_lats).ravel() if source_lons.size == 0 or source_lats.size == 0: raise ValueError('Cannot resample empty data set') elif source_lons.size != source_lats.size or \ source_lons.shape != source_lats.shape: raise ValueError('Mismatch between lons and lats') # Remove illegal values valid_input_index = ((source_lons >= -180) & (source_lons <= 180) & (source_lats <= 90) & (source_lats >= -90)) if reduce_data: # Reduce dataset if (isinstance(source_geo_def, geometry.CoordinateDefinition) and isinstance(target_geo_def, (geometry.GridDefinition, geometry.AreaDefinition))) or \ (isinstance(source_geo_def, (geometry.GridDefinition, geometry.AreaDefinition)) and isinstance(target_geo_def, (geometry.GridDefinition, geometry.AreaDefinition))): # Resampling from swath to grid or from grid to grid lonlat_boundary = target_geo_def.get_boundary_lonlats() # Combine reduced and legal values valid_input_index &= \ data_reduce.get_valid_index_from_lonlat_boundaries( lonlat_boundary[0], lonlat_boundary[1], source_lons, source_lats, radius_of_influence) if (isinstance(valid_input_index, np.ma.core.MaskedArray)): # Make sure valid_input_index is not a masked array valid_input_index = valid_input_index.filled(False) return valid_input_index, source_lons, source_lats def _get_valid_output_index(source_geo_def, target_geo_def, target_lons, target_lats, reduce_data, radius_of_influence): """Find indices of reduced output data""" valid_output_index = np.ones(target_lons.size, dtype=np.bool) if reduce_data: if isinstance(source_geo_def, (geometry.GridDefinition, geometry.AreaDefinition)) and \ isinstance(target_geo_def, geometry.CoordinateDefinition): # Resampling from grid to swath lonlat_boundary = source_geo_def.get_boundary_lonlats() valid_output_index = \ data_reduce.get_valid_index_from_lonlat_boundaries( lonlat_boundary[0], lonlat_boundary[1], target_lons, target_lats, radius_of_influence) valid_output_index = valid_output_index.astype(np.bool) # Remove illegal values valid_out = ((target_lons >= -180) & (target_lons <= 180) & (target_lats <= 90) & (target_lats >= -90)) # Combine reduced and legal values valid_output_index = (valid_output_index & valid_out) if isinstance(valid_output_index, np.ma.MaskedArray): valid_output_index = valid_output_index.filled(False) return valid_output_index def _create_resample_kdtree(source_lons, source_lats, valid_input_index, nprocs=1): """Set up kd tree on input""" """ if not isinstance(source_geo_def, geometry.BaseDefinition): raise TypeError('source_geo_def must be of geometry type') #Get reduced cartesian coordinates and flatten them source_cartesian_coords = source_geo_def.get_cartesian_coords(nprocs=nprocs) input_coords = geometry._flatten_cartesian_coords(source_cartesian_coords) input_coords = input_coords[valid_input_index] """ source_lons_valid = source_lons[valid_input_index] source_lats_valid = source_lats[valid_input_index] if nprocs > 1: cartesian = _spatial_mp.Cartesian_MP(nprocs) else: cartesian = _spatial_mp.Cartesian() input_coords = cartesian.transform_lonlats(source_lons_valid, source_lats_valid) if input_coords.size == 0: raise EmptyResult('No valid data points in input data') # Build kd-tree on input if kd_tree_name == 'pykdtree': resample_kdtree = KDTree(input_coords) elif nprocs > 1: resample_kdtree = _spatial_mp.cKDTree_MP(input_coords, nprocs=nprocs) else: resample_kdtree = sp.cKDTree(input_coords) return resample_kdtree def _query_resample_kdtree(resample_kdtree, source_geo_def, target_geo_def, radius_of_influence, data_slice, neighbours=8, epsilon=0, reduce_data=True, nprocs=1): """Query kd-tree on slice of target coordinates""" # Check validity of input if not isinstance(target_geo_def, geometry.BaseDefinition): raise TypeError('target_geo_def must be of geometry type') elif not isinstance(radius_of_influence, (long, int, float)): raise TypeError('radius_of_influence must be number') elif not isinstance(neighbours, int): raise TypeError('neighbours must be integer') elif not isinstance(epsilon, (long, int, float)): raise TypeError('epsilon must be number') # Get sliced target coordinates target_lons, target_lats = target_geo_def.get_lonlats(nprocs=nprocs, data_slice=data_slice, dtype=source_geo_def.dtype) # Find indiced of reduced target coordinates valid_output_index = _get_valid_output_index(source_geo_def, target_geo_def, target_lons.ravel(), target_lats.ravel(), reduce_data, radius_of_influence) # Get cartesian target coordinates and select reduced set if nprocs > 1: cartesian = _spatial_mp.Cartesian_MP(nprocs) else: cartesian = _spatial_mp.Cartesian() target_lons_valid = target_lons.ravel()[valid_output_index] target_lats_valid = target_lats.ravel()[valid_output_index] output_coords = cartesian.transform_lonlats(target_lons_valid, target_lats_valid) # pykdtree requires query points have same data type as kdtree. try: dt = resample_kdtree.data.dtype except AttributeError: # use a sensible default dt = np.dtype('d') output_coords = np.asarray(output_coords, dtype=dt) # Query kd-tree distance_array, index_array = resample_kdtree.query(output_coords, k=neighbours, eps=epsilon, distance_upper_bound=radius_of_influence) return valid_output_index, index_array, distance_array def _create_empty_info(source_geo_def, target_geo_def, neighbours): """Creates dummy info for empty result set""" valid_output_index = np.ones(target_geo_def.size, dtype=np.bool) if neighbours > 1: index_array = (np.ones((target_geo_def.size, neighbours), dtype=np.int32) * source_geo_def.size) distance_array = np.ones((target_geo_def.size, neighbours)) else: index_array = (np.ones(target_geo_def.size, dtype=np.int32) * source_geo_def.size) distance_array = np.ones(target_geo_def.size) return valid_output_index, index_array, distance_array def get_sample_from_neighbour_info(resample_type, output_shape, data, valid_input_index, valid_output_index, index_array, distance_array=None, weight_funcs=None, fill_value=0, with_uncert=False): """Resamples swath based on neighbour info Parameters ---------- resample_type : {'nn', 'custom'} 'nn': Use nearest neighbour resampling 'custom': Resample based on weight_funcs output_shape : (int, int) Shape of output as (rows, cols) data : numpy array Source data valid_input_index : numpy array valid_input_index from get_neighbour_info valid_output_index : numpy array valid_output_index from get_neighbour_info index_array : numpy array index_array from get_neighbour_info distance_array : numpy array, optional distance_array from get_neighbour_info Not needed for 'nn' resample type weight_funcs : list of function objects or function object, optional List of weight functions f(dist) to use for the weighting of each channel 1 to k. If only one channel is resampled weight_funcs is a single function object. Must be supplied when using 'custom' resample type fill_value : int or None, optional Set undetermined pixels to this value. If fill_value is None a masked array is returned with undetermined pixels masked Returns ------- result : numpy array Source data resampled to target geometry """ if data.ndim > 2 and data.shape[0] * data.shape[1] == valid_input_index.size: data = data.reshape(data.shape[0] * data.shape[1], data.shape[2]) elif data.shape[0] != valid_input_index.size: data = data.ravel() if valid_input_index.size != data.shape[0]: raise ValueError('Mismatch between geometry and dataset') is_multi_channel = (data.ndim > 1) valid_input_size = valid_input_index.sum() valid_output_size = valid_output_index.sum() # Handle empty result set if valid_input_size == 0 or valid_output_size == 0: if is_multi_channel: output_shape = list(output_shape) output_shape.append(data.shape[1]) if fill_value is None: # Use masked array for fill values return np.ma.array(np.zeros(output_shape, data.dtype), mask=np.ones(output_shape, dtype=np.bool)) else: # Return fill vaues for all pixels return np.ones(output_shape, dtype=data.dtype) * fill_value # Get size of output and reduced input input_size = valid_input_size if len(output_shape) > 1: output_size = output_shape[0] * output_shape[1] else: output_size = output_shape[0] # Check validity of input if not isinstance(data, np.ndarray): raise TypeError('data must be numpy array') elif valid_input_index.ndim != 1: raise TypeError('valid_index must be one dimensional array') elif data.shape[0] != valid_input_index.size: raise TypeError('Not the same number of datapoints in ' 'valid_input_index and data') valid_types = ('nn', 'custom') if not resample_type in valid_types: raise TypeError('Invalid resampling type: %s' % resample_type) if resample_type == 'custom' and weight_funcs is None: raise ValueError('weight_funcs must be supplied when using ' 'custom resampling') if not isinstance(fill_value, (long, int, float)) and fill_value is not None: raise TypeError('fill_value must be number or None') if index_array.ndim == 1: neighbours = 1 else: neighbours = index_array.shape[1] if resample_type == 'nn': raise ValueError('index_array contains more neighbours than ' 'just the nearest') # Reduce data new_data = data[valid_input_index] # Nearest neighbour resampling should conserve data type # Get data type conserve_input_data_type = False if resample_type == 'nn': conserve_input_data_type = True input_data_type = new_data.dtype # Handle masked array input is_masked_data = False if np.ma.is_masked(new_data): # Add the mask as channels to the dataset is_masked_data = True new_data = np.column_stack((new_data.data, new_data.mask)) if new_data.ndim > 1: # Multiple channels or masked input output_shape = list(output_shape) output_shape.append(new_data.shape[1]) # Prepare weight_funcs argument for handeling mask data if weight_funcs is not None and is_masked_data: if is_multi_channel: weight_funcs = weight_funcs * 2 else: weight_funcs = (weight_funcs,) * 2 # Handle request for masking intead of using fill values use_masked_fill_value = False if fill_value is None: use_masked_fill_value = True fill_value = _get_fill_mask_value(new_data.dtype) # Resample based on kd-tree query result if resample_type == 'nn' or neighbours == 1: # Get nearest neighbour using array indexing index_mask = (index_array == input_size) new_index_array = np.where(index_mask, 0, index_array) result = new_data[new_index_array].copy() result[index_mask] = fill_value else: # Calculate result using weighting. # Note: the code below has low readability in order # to avoid looping over numpy arrays # Get neighbours and masks of valid indices ch_neighbour_list = [] index_mask_list = [] for i in range(neighbours): # Iterate over number of neighbours # Make working copy neighbour index and # set out of bounds indices to zero index_ni = index_array[:, i].copy() index_mask_ni = (index_ni == input_size) index_ni[index_mask_ni] = 0 # Get channel data for the corresponing indices ch_ni = new_data[index_ni] ch_neighbour_list.append(ch_ni) index_mask_list.append(index_mask_ni) # Calculate weights weight_list = [] for i in range(neighbours): # Iterate over number of neighbours # Make working copy of neighbour distances and # set out of bounds distance to 1 in order to avoid numerical Inf distance = distance_array[:, i].copy() distance[index_mask_list[i]] = 1 if new_data.ndim > 1: # More than one channel in data set. # Calculate weights for each channel weights = [] num_weights = valid_output_index.sum() num_channels = new_data.shape[1] for j in range(num_channels): calc_weight = weight_funcs[j](distance) # Turn a scalar weight into a numpy array # (no effect if calc_weight already is an array) expanded_calc_weight = np.ones(num_weights) * calc_weight weights.append(expanded_calc_weight) # Collect weights for all channels for neighbour number weight_list.append(np.column_stack(weights)) else: # Only one channel weights = weight_funcs(distance) weight_list.append(weights) result = 0 norm = 0 count = 0 norm_sqr = 0 stddev = 0 # Calculate result for i in range(neighbours): # Iterate over number of neighbours # Find invalid indices to be masked of from calculation if new_data.ndim > 1: # More than one channel in data set. inv_index_mask = np.expand_dims( np.invert(index_mask_list[i]), axis=1) else: # Only one channel inv_index_mask = np.invert(index_mask_list[i]) # Aggregate result and norm weights_tmp = inv_index_mask * weight_list[i] result += weights_tmp * ch_neighbour_list[i] norm += weights_tmp # Normalize result and set fillvalue result_valid_index = (norm > 0) result[result_valid_index] /= norm[result_valid_index] if with_uncert: # Calculate uncertainties # 2. pass to calculate standard deviation for i in range(neighbours): # Iterate over number of neighbours # Find invalid indices to be masked of from calculation if new_data.ndim > 1: # More than one channel in data set. inv_index_mask = np.expand_dims( np.invert(index_mask_list[i]), axis=1) else: # Only one channel inv_index_mask = np.invert(index_mask_list[i]) # Aggregate stddev information weights_tmp = inv_index_mask * weight_list[i] count += inv_index_mask norm_sqr += weights_tmp ** 2 values = inv_index_mask * ch_neighbour_list[i] stddev += weights_tmp * (values - result) ** 2 # Calculate final stddev new_valid_index = (count > 1) if stddev.ndim >= 2: # If given more than 1 input data array new_valid_index = new_valid_index[:, 0] for i in range(stddev.shape[-1]): v1 = norm[new_valid_index, i] v2 = norm_sqr[new_valid_index, i] stddev[new_valid_index, i] = np.sqrt( (v1 / (v1 ** 2 - v2)) * stddev[new_valid_index, i]) stddev[~new_valid_index, i] = np.NaN else: # If given single input data array v1 = norm[new_valid_index] v2 = norm_sqr[new_valid_index] stddev[new_valid_index] = np.sqrt( (v1 / (v1 ** 2 - v2)) * stddev[new_valid_index]) stddev[~new_valid_index] = np.NaN # Add fill values result[np.invert(result_valid_index)] = fill_value # Create full result if new_data.ndim > 1: # More than one channel output_raw_shape = ((output_size, new_data.shape[1])) else: # One channel output_raw_shape = output_size full_result = np.ones(output_raw_shape) * fill_value full_result[valid_output_index] = result result = full_result if with_uncert: # Add fill values for uncertainty full_stddev = np.ones(output_raw_shape) * np.nan full_count = np.zeros(output_raw_shape) full_stddev[valid_output_index] = stddev full_count[valid_output_index] = count stddev = full_stddev count = full_count stddev = stddev.reshape(output_shape) count = count.reshape(output_shape) if is_masked_data: # Ignore uncert computation of masks stddev = _remask_data(stddev, is_to_be_masked=False) count = _remask_data(count, is_to_be_masked=False) # Set masks for invalid stddev stddev = np.ma.array(stddev, mask=np.isnan(stddev)) # Reshape resampled data to correct shape result = result.reshape(output_shape) # Remap mask channels to create masked output if is_masked_data: result = _remask_data(result) # Create masking of fill values if use_masked_fill_value: result = np.ma.masked_equal(result, fill_value) # Set output data type to input data type if relevant if conserve_input_data_type: result = result.astype(input_data_type) if with_uncert: if np.ma.isMA(result): stddev = np.ma.array(stddev, mask=(result.mask | stddev.mask)) count = np.ma.array(count, mask=result.mask) return result, stddev, count else: return result class XArrayResamplerNN(object): def __init__(self, source_geo_def, target_geo_def, radius_of_influence, neighbours=8, epsilon=0, reduce_data=True, nprocs=1, segments=None): """ Parameters ---------- source_geo_def : object Geometry definition of source target_geo_def : object Geometry definition of target radius_of_influence : float Cut off distance in meters neighbours : int, optional The number of neigbours to consider for each grid point epsilon : float, optional Allowed uncertainty in meters. Increasing uncertainty reduces execution time reduce_data : bool, optional Perform initial coarse reduction of source dataset in order to reduce execution time nprocs : int, optional Number of processor cores to be used segments : int or None Number of segments to use when resampling. If set to None an estimate will be calculated """ if DataArray is None: raise ImportError("Missing 'xarray' and 'dask' dependencies") self.valid_input_index = None self.valid_output_index = None self.index_array = None self.distance_array = None self.neighbours = neighbours self.epsilon = epsilon self.reduce_data = reduce_data self.nprocs = nprocs self.segments = segments self.source_geo_def = source_geo_def self.target_geo_def = target_geo_def self.radius_of_influence = radius_of_influence def transform_lonlats(self, lons, lats): R = 6370997.0 x_coords = R * da.cos(da.deg2rad(lats)) * da.cos(da.deg2rad(lons)) y_coords = R * da.cos(da.deg2rad(lats)) * da.sin(da.deg2rad(lons)) z_coords = R * da.sin(da.deg2rad(lats)) return da.stack( (x_coords.ravel(), y_coords.ravel(), z_coords.ravel()), axis=-1) def _create_resample_kdtree(self): """Set up kd tree on input""" source_lons, source_lats = self.source_geo_def.get_lonlats_dask() valid_input_idx = ((source_lons >= -180) & (source_lons <= 180) & (source_lats <= 90) & (source_lats >= -90)) # FIXME: Is dask smart enough to only compute the pixels we end up # using even with this complicated indexing input_coords = self.transform_lonlats(source_lons, source_lats) input_coords = input_coords[valid_input_idx.ravel(), :] # Build kd-tree on input input_coords = input_coords.astype(np.float) valid_input_idx, input_coords = da.compute(valid_input_idx, input_coords) if kd_tree_name == 'pykdtree': resample_kdtree = KDTree(input_coords) else: resample_kdtree = sp.cKDTree(input_coords) return valid_input_idx, resample_kdtree def _query_resample_kdtree(self, resample_kdtree, target_lons, target_lats, valid_output_index, reduce_data=True): """Query kd-tree on slice of target coordinates.""" def query_no_distance(target_lons, target_lats, valid_output_index): voi = valid_output_index shape = voi.shape voir = voi.ravel() target_lons_valid = target_lons.ravel()[voir] target_lats_valid = target_lats.ravel()[voir] coords = self.transform_lonlats(target_lons_valid, target_lats_valid) distance_array, index_array = resample_kdtree.query( coords.compute(), k=self.neighbours, eps=self.epsilon, distance_upper_bound=self.radius_of_influence) # KDTree query returns out-of-bounds neighbors as `len(arr)` # which is an invalid index, we mask those out so -1 represents # invalid values # voi is 2D, index_array is 1D good_pixels = index_array < resample_kdtree.n voi[voi] = good_pixels res_ia = np.full(shape, fill_value=-1, dtype=np.int) res_ia[voi] = index_array[good_pixels] return res_ia res = da.map_blocks(query_no_distance, target_lons, target_lats, valid_output_index, dtype=np.int) return res, None def get_neighbour_info(self): """Return neighbour info. Returns ------- (valid_input_index, valid_output_index, index_array, distance_array) : tuple of numpy arrays Neighbour resampling info """ if self.source_geo_def.size < self.neighbours: warnings.warn('Searching for %s neighbours in %s data points' % (self.neighbours, self.source_geo_def.size)) # Create kd-tree valid_input_idx, resample_kdtree = self._create_resample_kdtree() if resample_kdtree.n == 0: # Handle if all input data is reduced away valid_output_idx, index_arr, distance_arr = \ _create_empty_info(self.source_geo_def, self.target_geo_def, self.neighbours) self.valid_input_index = valid_input_idx self.valid_output_index = valid_output_idx self.index_array = index_arr self.distance_array = distance_arr return valid_input_idx, valid_output_idx, index_arr, distance_arr target_lons, target_lats = self.target_geo_def.get_lonlats_dask() valid_output_idx = ((target_lons >= -180) & (target_lons <= 180) & (target_lats <= 90) & (target_lats >= -90)) index_arr, distance_arr = self._query_resample_kdtree( resample_kdtree, target_lons, target_lats, valid_output_idx) self.valid_output_index, self.index_array = \ da.compute(valid_output_idx, index_arr) self.valid_input_index = valid_input_idx self.distance_array = distance_arr return (self.valid_input_index, self.valid_output_index, self.index_array, self.distance_array) def get_sample_from_neighbour_info(self, data, fill_value=np.nan): # FIXME: can be this made into a dask construct ? cols, lines = np.meshgrid( np.arange(data['x'].size), np.arange(data['y'].size)) try: self.valid_input_index = self.valid_input_index.compute() except AttributeError: pass vii = self.valid_input_index.squeeze() try: self.index_array = self.index_array.compute() except AttributeError: pass # ia contains reduced (valid) indices of the source array, and has the # shape of the destination array ia = self.index_array rlines = lines[vii][ia] rcols = cols[vii][ia] slices = [] mask_slices = [] mask_2d_added = False coords = {} try: coord_x, coord_y = self.target_geo_def.get_proj_vectors_dask() except AttributeError: coord_x, coord_y = None, None for i, dim in enumerate(data.dims): if dim == 'y': slices.append(rlines) if not mask_2d_added: mask_slices.append(ia == -1) mask_2d_added = True if coord_y is not None: coords[dim] = coord_y elif dim == 'x': slices.append(rcols) if not mask_2d_added: mask_slices.append(ia == -1) mask_2d_added = True if coord_x is not None: coords[dim] = coord_x else: slices.append(slice(None)) mask_slices.append(slice(None)) try: coords[dim] = data.coords[dim] except KeyError: pass res = data.values[slices] res[mask_slices] = fill_value res = DataArray(da.from_array(res, chunks=CHUNK_SIZE), dims=data.dims, coords=coords) return res def _get_fill_mask_value(data_dtype): """Returns the maximum value of dtype""" if issubclass(data_dtype.type, np.floating): fill_value = np.finfo(data_dtype.type).max elif issubclass(data_dtype.type, np.integer): fill_value = np.iinfo(data_dtype.type).max else: raise TypeError('Type %s is unsupported for masked fill values' % data_dtype.type) return fill_value def _remask_data(data, is_to_be_masked=True): """Interprets half the array as mask for the other half""" channels = data.shape[-1] if is_to_be_masked: mask = data[..., (channels // 2):] # All pixels affected by masked pixels are masked out mask = (mask != 0) data = np.ma.array(data[..., :(channels // 2)], mask=mask) else: data = data[..., :(channels // 2)] if data.shape[-1] == 1: data = data.reshape(data.shape[:-1]) return data pyresample-1.8.1/pyresample/plot.py000066400000000000000000000231351324347254000174230ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010-2015 # # Authors: # Esben S. Nielsen # Thomas Lavergne # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . from __future__ import absolute_import import numpy as np def ellps2axis(ellps_name): """Get semi-major and semi-minor axis from ellipsis definition Parameters --------- ellps_name : str Standard name of ellipsis Returns ------- (a, b) : semi-major and semi-minor axis """ ellps = {'helmert': {'a': 6378200.0, 'b': 6356818.1696278909}, 'intl': {'a': 6378388.0, 'b': 6356911.9461279465}, 'merit': {'a': 6378137.0, 'b': 6356752.2982159676}, 'wgs72': {'a': 6378135.0, 'b': 6356750.5200160937}, 'sphere': {'a': 6370997.0, 'b': 6370997.0}, 'clrk66': {'a': 6378206.4000000004, 'b': 6356583.7999999998}, 'nwl9d': {'a': 6378145.0, 'b': 6356759.7694886839}, 'lerch': {'a': 6378139.0, 'b': 6356754.2915103417}, 'evrstss': {'a': 6377298.5559999999, 'b': 6356097.5503008962}, 'evrst30': {'a': 6377276.3449999997, 'b': 6356075.4131402401}, 'mprts': {'a': 6397300.0, 'b': 6363806.2827225132}, 'krass': {'a': 6378245.0, 'b': 6356863.0187730473}, 'walbeck': {'a': 6376896.0, 'b': 6355834.8466999996}, 'kaula': {'a': 6378163.0, 'b': 6356776.9920869097}, 'wgs66': {'a': 6378145.0, 'b': 6356759.7694886839}, 'evrst56': {'a': 6377301.2429999998, 'b': 6356100.2283681016}, 'new_intl': {'a': 6378157.5, 'b': 6356772.2000000002}, 'airy': {'a': 6377563.3959999997, 'b': 6356256.9100000001}, 'bessel': {'a': 6377397.1550000003, 'b': 6356078.9628181886}, 'seasia': {'a': 6378155.0, 'b': 6356773.3205000004}, 'aust_sa': {'a': 6378160.0, 'b': 6356774.7191953054}, 'wgs84': {'a': 6378137.0, 'b': 6356752.3142451793}, 'hough': {'a': 6378270.0, 'b': 6356794.3434343431}, 'wgs60': {'a': 6378165.0, 'b': 6356783.2869594367}, 'engelis': {'a': 6378136.0499999998, 'b': 6356751.3227215428}, 'apl4.9': {'a': 6378137.0, 'b': 6356751.796311819}, 'andrae': {'a': 6377104.4299999997, 'b': 6355847.4152333336}, 'sgs85': {'a': 6378136.0, 'b': 6356751.301568781}, 'delmbr': {'a': 6376428.0, 'b': 6355957.9261637237}, 'fschr60m': {'a': 6378155.0, 'b': 6356773.3204827355}, 'iau76': {'a': 6378140.0, 'b': 6356755.2881575283}, 'plessis': {'a': 6376523.0, 'b': 6355863.0}, 'cpm': {'a': 6375738.7000000002, 'b': 6356666.221912113}, 'fschr68': {'a': 6378150.0, 'b': 6356768.3372443849}, 'mod_airy': {'a': 6377340.1890000002, 'b': 6356034.4460000005}, 'grs80': {'a': 6378137.0, 'b': 6356752.3141403561}, 'bess_nam': {'a': 6377483.8650000002, 'b': 6356165.3829663256}, 'fschr60': {'a': 6378166.0, 'b': 6356784.2836071067}, 'clrk80': {'a': 6378249.1449999996, 'b': 6356514.9658284895}, 'evrst69': {'a': 6377295.6639999999, 'b': 6356094.6679152036}, 'grs67': {'a': 6378160.0, 'b': 6356774.5160907144}, 'evrst48': {'a': 6377304.0630000001, 'b': 6356103.0389931547}} try: ellps_axis = ellps[ellps_name.lower()] a = ellps_axis['a'] b = ellps_axis['b'] except KeyError as e: raise ValueError(('Could not determine semi-major and semi-minor axis ' 'of specified ellipsis %s') % ellps_name) return a, b def area_def2basemap(area_def, **kwargs): """Get Basemap object from AreaDefinition Parameters --------- area_def : object geometry.AreaDefinition object \*\*kwargs: Keyword arguments Additional initialization arguments for Basemap Returns ------- bmap : Basemap object """ from mpl_toolkits.basemap import Basemap try: a, b = ellps2axis(area_def.proj_dict['ellps']) rsphere = (a, b) except KeyError: try: a = float(area_def.proj_dict['a']) try: b = float(area_def.proj_dict['b']) rsphere = (a, b) except KeyError: rsphere = a except KeyError: # Default to WGS84 ellipsoid a, b = ellps2axis('wgs84') rsphere = (a, b) # Add projection specific basemap args to args passed to function basemap_args = kwargs basemap_args['rsphere'] = rsphere if area_def.proj_dict['proj'] in ('ortho', 'geos', 'nsper'): llcrnrx, llcrnry, urcrnrx, urcrnry = area_def.area_extent basemap_args['llcrnrx'] = llcrnrx basemap_args['llcrnry'] = llcrnry basemap_args['urcrnrx'] = urcrnrx basemap_args['urcrnry'] = urcrnry else: llcrnrlon, llcrnrlat, urcrnrlon, urcrnrlat = area_def.area_extent_ll basemap_args['llcrnrlon'] = llcrnrlon basemap_args['llcrnrlat'] = llcrnrlat basemap_args['urcrnrlon'] = urcrnrlon basemap_args['urcrnrlat'] = urcrnrlat if area_def.proj_dict['proj'] == 'eqc': basemap_args['projection'] = 'cyl' else: basemap_args['projection'] = area_def.proj_dict['proj'] # Try adding potentially remaining args for key in ('lon_0', 'lat_0', 'lon_1', 'lat_1', 'lon_2', 'lat_2', 'lat_ts'): try: basemap_args[key] = float(area_def.proj_dict[key]) except KeyError: pass return Basemap(**basemap_args) def _get_quicklook(area_def, data, vmin=None, vmax=None, label='Variable (units)', num_meridians=45, num_parallels=10, coast_res='c', cmap='jet'): """Get default Basemap matplotlib plot """ if area_def.shape != data.shape: raise ValueError('area_def shape %s does not match data shape %s' % (list(area_def.shape), list(data.shape))) import matplotlib.pyplot as plt bmap = area_def2basemap(area_def, resolution=coast_res) bmap.drawcoastlines() if num_meridians > 0: bmap.drawmeridians(np.arange(-180, 180, num_meridians)) if num_parallels > 0: bmap.drawparallels(np.arange(-90, 90, num_parallels)) if not (np.ma.isMaskedArray(data) and data.mask.all()): col = bmap.imshow(data, origin='upper', vmin=vmin, vmax=vmax, cmap=cmap) plt.colorbar(col, shrink=0.5, pad=0.05).set_label(label) return plt def show_quicklook(area_def, data, vmin=None, vmax=None, label='Variable (units)', num_meridians=45, num_parallels=10, coast_res='c', cmap='jet'): """Display default quicklook plot Parameters --------- area_def : object geometry.AreaDefinition object data : numpy array | numpy masked array 2D array matching area_def. Use masked array for transparent values vmin : float, optional Min value for luminescence scaling vmax : float, optional Max value for luminescence scaling label : str, optional Label for data num_meridians : int, optional Number of meridians to plot on the globe num_parallels : int, optional Number of parallels to plot on the globe coast_res : {'c', 'l', 'i', 'h', 'f'}, optional Resolution of coastlines Returns ------- bmap : Basemap object """ plt = _get_quicklook(area_def, data, vmin=vmin, vmax=vmax, label=label, num_meridians=num_meridians, num_parallels=num_parallels, coast_res=coast_res, cmap=cmap) plt.show() plt.close() def save_quicklook(filename, area_def, data, vmin=None, vmax=None, label='Variable (units)', num_meridians=45, num_parallels=10, coast_res='c', backend='AGG', cmap='jet'): """Display default quicklook plot Parameters ---------- filename : str path to output file area_def : object geometry.AreaDefinition object data : numpy array | numpy masked array 2D array matching area_def. Use masked array for transparent values vmin : float, optional Min value for luminescence scaling vmax : float, optional Max value for luminescence scaling label : str, optional Label for data num_meridians : int, optional Number of meridians to plot on the globe num_parallels : int, optional Number of parallels to plot on the globe coast_res : {'c', 'l', 'i', 'h', 'f'}, optional Resolution of coastlines backend : str, optional matplotlib backend to use' """ import matplotlib matplotlib.use(backend, warn=False) plt = _get_quicklook(area_def, data, vmin=vmin, vmax=vmax, label=label, num_meridians=num_meridians, num_parallels=num_parallels, coast_res=coast_res) plt.savefig(filename, bbox_inches='tight') plt.close() pyresample-1.8.1/pyresample/spherical_geometry.py000066400000000000000000000335551324347254000223410ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2015 Martin Raspaud # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Classes for spherical geometry operations""" from __future__ import absolute_import import math import numpy as np try: range = xrange except NameError: pass EPSILON = 0.0000001 # FIXME: this has not been tested with R != 1 class Coordinate(object): """Point on earth in terms of lat and lon. """ lat = None lon = None x__ = None y__ = None z__ = None def __init__(self, lon=None, lat=None, x__=None, y__=None, z__=None, R__=1): self.R__ = R__ if lat is not None and lon is not None: if not(-180 <= lon <= 180 and -90 <= lat <= 90): raise ValueError('Illegal (lon, lat) coordinates: (%s, %s)' % (lon, lat)) self.lat = math.radians(lat) self.lon = math.radians(lon) self._update_cart() else: self.x__ = x__ self.y__ = y__ self.z__ = z__ self._update_lonlat() def _update_cart(self): """Convert lon/lat to cartesian coordinates. """ self.x__ = math.cos(self.lat) * math.cos(self.lon) self.y__ = math.cos(self.lat) * math.sin(self.lon) self.z__ = math.sin(self.lat) def _update_lonlat(self): """Convert cartesian to lon/lat. """ self.lat = math.degrees(math.asin(self.z__ / self.R__)) self.lon = math.degrees(math.atan2(self.y__, self.x__)) def __ne__(self, other): if(abs(self.lat - other.lat) < EPSILON and abs(self.lon - other.lon) < EPSILON): return 0 else: return 1 def __eq__(self, other): return not self.__ne__(other) def __str__(self): return str((math.degrees(self.lon), math.degrees(self.lat))) def __repr__(self): return str((math.degrees(self.lon), math.degrees(self.lat))) def cross2cart(self, point): """Compute the cross product, and convert to cartesian coordinates (assuming radius 1). """ lat1 = self.lat lon1 = self.lon lat2 = point.lat lon2 = point.lon res = Coordinate( x__=(math.sin(lat1 - lat2) * math.sin((lon1 + lon2) / 2) * math.cos((lon1 - lon2) / 2) - math.sin(lat1 + lat2) * math.cos((lon1 + lon2) / 2) * math.sin((lon1 - lon2) / 2)), y__=(math.sin(lat1 - lat2) * math.cos((lon1 + lon2) / 2) * math.cos((lon1 - lon2) / 2) + math.sin(lat1 + lat2) * math.sin((lon1 + lon2) / 2) * math.sin((lon1 - lon2) / 2)), z__=(math.cos(lat1) * math.cos(lat2) * math.sin(lon1 - lon2))) return res def distance(self, point): """Vincenty formula. """ dlambda = self.lon - point.lon num = ((math.cos(point.lat) * math.sin(dlambda)) ** 2 + (math.cos(self.lat) * math.sin(point.lat) - math.sin(self.lat) * math.cos(point.lat) * math.cos(dlambda)) ** 2) den = (math.sin(self.lat) * math.sin(point.lat) + math.cos(self.lat) * math.cos(point.lat) * math.cos(dlambda)) return math.atan2(math.sqrt(num), den) def norm(self): """Return the norm of the vector. """ return math.sqrt(self.x__ ** 2 + self.y__ ** 2 + self.z__ ** 2) def normalize(self): """normalize the vector. """ norm = self.norm() self.x__ /= norm self.y__ /= norm self.z__ /= norm return self def cross(self, point): """cross product with another vector. """ x__ = self.y__ * point.z__ - self.z__ * point.y__ y__ = self.z__ * point.x__ - self.x__ * point.z__ z__ = self.x__ * point.y__ - self.y__ * point.x__ return Coordinate(x__=x__, y__=y__, z__=z__) def dot(self, point): """dot product with another vector. """ return (self.x__ * point.x__ + self.y__ * point.y__ + self.z__ * point.z__) class Arc(object): """An arc of the great circle between two points. """ start = None end = None def __init__(self, start, end): self.start, self.end = start, end def center_angle(self): """Angle of an arc at the center of the sphere. """ val = (math.cos(self.start.lat - self.end.lat) + math.cos(self.start.lon - self.end.lon) - 1) if val > 1: val = 1 elif val < -1: val = -1 return math.acos(val) def __eq__(self, other): if(self.start == other.start and self.end == other.end): return 1 return 0 def __ne__(self, other): return not self.__eq__(other) def __str__(self): return str((str(self.start), str(self.end))) def angle(self, other_arc, snap=True): """Oriented angle between two arcs. Parameters ---------- other_arc : Arc snap : boolean Snap small angles to 0. Allows for detecting colinearity. Disable snapping when calculating polygon areas as it might lead to negative area values. """ if self.start == other_arc.start: a__ = self.start b__ = self.end c__ = other_arc.end elif self.start == other_arc.end: a__ = self.start b__ = self.end c__ = other_arc.start elif self.end == other_arc.end: a__ = self.end b__ = self.start c__ = other_arc.start elif self.end == other_arc.start: a__ = self.end b__ = self.start c__ = other_arc.end else: raise ValueError("No common point in angle computation.") ua_ = a__.cross(b__) ub_ = a__.cross(c__) val = ua_.dot(ub_) / (ua_.norm() * ub_.norm()) if snap: if abs(val - 1) < EPSILON: angle = 0 elif abs(val + 1) < EPSILON: angle = math.pi else: angle = math.acos(val) else: if 0 <= val - 1 < EPSILON: angle = 0 elif -EPSILON < val + 1 <= 0: angle = math.pi else: angle = math.acos(val) n__ = ua_.normalize() if n__.dot(c__) > 0: return -angle else: return angle def intersections(self, other_arc): """Gives the two intersections of the greats circles defined by the current arc and *other_arc*. """ if self.end.lon - self.start.lon > math.pi: self.end.lon -= 2 * math.pi if other_arc.end.lon - other_arc.start.lon > math.pi: other_arc.end.lon -= 2 * math.pi if self.end.lon - self.start.lon < -math.pi: self.end.lon += 2 * math.pi if other_arc.end.lon - other_arc.start.lon < -math.pi: other_arc.end.lon += 2 * math.pi ea_ = self.start.cross2cart(self.end).normalize() eb_ = other_arc.start.cross2cart(other_arc.end).normalize() cross = ea_.cross(eb_) lat = math.atan2(cross.z__, math.sqrt(cross.x__ ** 2 + cross.y__ ** 2)) lon = math.atan2(-cross.y__, cross.x__) return (Coordinate(math.degrees(lon), math.degrees(lat)), Coordinate(math.degrees(modpi(lon + math.pi)), math.degrees(-lat))) def intersects(self, other_arc): """Says if two arcs defined by the current arc and the *other_arc* intersect. An arc is defined as the shortest tracks between two points. """ return bool(self.intersection(other_arc)) def intersection(self, other_arc): """Says where, if two arcs defined by the current arc and the *other_arc* intersect. An arc is defined as the shortest tracks between two points. """ for i in self.intersections(other_arc): a__ = self.start b__ = self.end c__ = other_arc.start d__ = other_arc.end ab_ = a__.distance(b__) cd_ = c__.distance(d__) if(abs(a__.distance(i) + b__.distance(i) - ab_) < EPSILON and abs(c__.distance(i) + d__.distance(i) - cd_) < EPSILON): return i return None def modpi(val): """Puts *val* between -pi and pi. """ return (val + math.pi) % (2 * math.pi) - math.pi def get_polygon_area(corners): """Get the area of the convex area defined by *corners*. """ # We assume the earth is spherical !!! # Should be the radius of the earth at the observed position R = 1 c1_ = corners[0] area = 0 for idx in range(1, len(corners) - 1): b1_ = Arc(c1_, corners[idx]) b2_ = Arc(c1_, corners[idx + 1]) b3_ = Arc(corners[idx], corners[idx + 1]) e__ = (abs(b1_.angle(b2_, snap=False)) + abs(b2_.angle(b3_, snap=False)) + abs(b3_.angle(b1_, snap=False))) area += e__ - math.pi return R ** 2 * area def get_intersections(b__, boundaries): """Get the intersections of *b__* with *boundaries*. Returns both the intersection coordinates and the concerned boundaries. """ intersections = [] bounds = [] for other_b in boundaries: inter = b__.intersection(other_b) if inter is not None: intersections.append(inter) bounds.append(other_b) return intersections, bounds def get_first_intersection(b__, boundaries): """Get the first intersection on *b__* with *boundaries*. """ intersections, bounds = get_intersections(b__, boundaries) del bounds dists = np.array([b__.start.distance(p__) for p__ in intersections]) indices = dists.argsort() if len(intersections) > 0: return intersections[indices[0]] return None def get_next_intersection(p__, b__, boundaries): """Get the next intersection from the intersection of arcs *p__* and *b__* along segment *b__* with *boundaries*. """ new_b = Arc(p__, b__.end) intersections, bounds = get_intersections(new_b, boundaries) dists = np.array([b__.start.distance(p2) for p2 in intersections]) indices = dists.argsort() if len(intersections) > 0 and intersections[indices[0]] != p__: return intersections[indices[0]], bounds[indices[0]] elif len(intersections) > 1: return intersections[indices[1]], bounds[indices[1]] return None, None def point_inside(point, corners): """Is a point inside the 4 corners ? This uses great circle arcs as area boundaries. """ arc1 = Arc(corners[0], corners[1]) arc2 = Arc(corners[1], corners[2]) arc3 = Arc(corners[2], corners[3]) arc4 = Arc(corners[3], corners[0]) arc5 = Arc(corners[1], point) arc6 = Arc(corners[3], point) angle1 = modpi(arc1.angle(arc2)) angle1bis = modpi(arc1.angle(arc5)) angle2 = modpi(arc3.angle(arc4)) angle2bis = modpi(arc3.angle(arc6)) return (np.sign(angle1) == np.sign(angle1bis) and abs(angle1) > abs(angle1bis) and np.sign(angle2) == np.sign(angle2bis) and abs(angle2) > abs(angle2bis)) def intersection_polygon(area_corners, segment_corners): """Get the intersection polygon between two areas. """ area_boundaries = [Arc(area_corners[0], area_corners[1]), Arc(area_corners[1], area_corners[2]), Arc(area_corners[2], area_corners[3]), Arc(area_corners[3], area_corners[0])] segment_boundaries = [Arc(segment_corners[0], segment_corners[1]), Arc(segment_corners[1], segment_corners[2]), Arc(segment_corners[2], segment_corners[3]), Arc(segment_corners[3], segment_corners[0])] angle1 = area_boundaries[0].angle(area_boundaries[1]) angle2 = segment_boundaries[0].angle(segment_boundaries[1]) if np.sign(angle1) != np.sign(angle2): segment_corners.reverse() segment_boundaries = [Arc(segment_corners[0], segment_corners[1]), Arc(segment_corners[1], segment_corners[2]), Arc(segment_corners[2], segment_corners[3]), Arc(segment_corners[3], segment_corners[0])] poly = [] boundaries = area_boundaries other_boundaries = segment_boundaries b__ = None for b__ in boundaries: if point_inside(b__.start, segment_corners): poly.append(b__.start) break else: inter = get_first_intersection(b__, other_boundaries) if inter is not None: poly.append(inter) break if len(poly) == 0: return None while len(poly) < 2 or poly[0] != poly[-1]: inter, b2_ = get_next_intersection(poly[-1], b__, other_boundaries) if inter is None: poly.append(b__.end) idx = (boundaries.index(b__) + 1) % len(boundaries) b__ = boundaries[idx] else: poly.append(inter) b__ = b2_ boundaries, other_boundaries = other_boundaries, boundaries return poly[:-1] pyresample-1.8.1/pyresample/test/000077500000000000000000000000001324347254000170465ustar00rootroot00000000000000pyresample-1.8.1/pyresample/test/__init__.py000066400000000000000000000034411324347254000211610ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2014, 2015 Martin Raspaud # Author(s): # Martin Raspaud # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """The test base. """ from pyresample.test import ( test_geometry, test_grid, test_image, test_kd_tree, test_plot, test_spherical_geometry, test_swath, test_utils, test_ewa_ll2cr, test_ewa_fornav, test_bilinear, test_data_reduce, ) import unittest def suite(): """The global test suite. """ mysuite = unittest.TestSuite() # Use the unittests also mysuite.addTests(test_geometry.suite()) mysuite.addTests(test_grid.suite()) mysuite.addTests(test_image.suite()) mysuite.addTests(test_kd_tree.suite()) mysuite.addTests(test_plot.suite()) mysuite.addTests(test_spherical_geometry.suite()) mysuite.addTests(test_swath.suite()) mysuite.addTests(test_utils.suite()) mysuite.addTests(test_ewa_ll2cr.suite()) mysuite.addTests(test_ewa_fornav.suite()) mysuite.addTests(test_bilinear.suite()) mysuite.addTests(test_data_reduce.suite()) return mysuite def load_tests(loader, tests, pattern): return suite() pyresample-1.8.1/pyresample/test/test_bilinear.py000066400000000000000000000247251324347254000222560ustar00rootroot00000000000000import unittest import numpy as np from pyproj import Proj import pyresample.bilinear as bil from pyresample import geometry, utils, kd_tree class Test(unittest.TestCase): @classmethod def setUpClass(cls): cls.pts_irregular = (np.array([[-1., 1.], ]), np.array([[1., 2.], ]), np.array([[-2., -1.], ]), np.array([[2., -4.], ])) cls.pts_vert_parallel = (np.array([[-1., 1.], ]), np.array([[1., 2.], ]), np.array([[-1., -1.], ]), np.array([[1., -2.], ])) cls.pts_both_parallel = (np.array([[-1., 1.], ]), np.array([[1., 1.], ]), np.array([[-1., -1.], ]), np.array([[1., -1.], ])) # Area definition with four pixels target_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 4, 4, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) # Input data around the target pixel at 0.63388324, 55.08234642, in_shape = (100, 100) cls.data1 = np.ones((in_shape[0], in_shape[1])) cls.data2 = 2. * cls.data1 lons, lats = np.meshgrid(np.linspace(-5., 5., num=in_shape[0]), np.linspace(50., 60., num=in_shape[1])) cls.swath_def = geometry.SwathDefinition(lons=lons, lats=lats) radius = 50e3 cls.neighbours = 32 input_idxs, output_idxs, idx_ref, dists = \ kd_tree.get_neighbour_info(cls.swath_def, target_def, radius, neighbours=cls.neighbours, nprocs=1) input_size = input_idxs.sum() index_mask = (idx_ref == input_size) idx_ref = np.where(index_mask, 0, idx_ref) cls.input_idxs = input_idxs cls.target_def = target_def cls.idx_ref = idx_ref def test_calc_abc(self): # No np.nan inputs pt_1, pt_2, pt_3, pt_4 = self.pts_irregular res = bil._calc_abc(pt_1, pt_2, pt_3, pt_4, 0.0, 0.0) self.assertFalse(np.isnan(res[0])) self.assertFalse(np.isnan(res[1])) self.assertFalse(np.isnan(res[2])) # np.nan input -> np.nan output res = bil._calc_abc(np.array([[np.nan, np.nan]]), pt_2, pt_3, pt_4, 0.0, 0.0) self.assertTrue(np.isnan(res[0])) self.assertTrue(np.isnan(res[1])) self.assertTrue(np.isnan(res[2])) def test_get_ts_irregular(self): res = bil._get_ts_irregular(self.pts_irregular[0], self.pts_irregular[1], self.pts_irregular[2], self.pts_irregular[3], 0., 0.) self.assertEqual(res[0], 0.375) self.assertEqual(res[1], 0.5) res = bil._get_ts_irregular(self.pts_vert_parallel[0], self.pts_vert_parallel[1], self.pts_vert_parallel[2], self.pts_vert_parallel[3], 0., 0.) self.assertTrue(np.isnan(res[0])) self.assertTrue(np.isnan(res[1])) def test_get_ts_uprights_parallel(self): res = bil._get_ts_uprights_parallel(self.pts_vert_parallel[0], self.pts_vert_parallel[1], self.pts_vert_parallel[2], self.pts_vert_parallel[3], 0., 0.) self.assertEqual(res[0], 0.5) self.assertEqual(res[1], 0.5) def test_get_ts_parallellogram(self): res = bil._get_ts_parallellogram(self.pts_both_parallel[0], self.pts_both_parallel[1], self.pts_both_parallel[2], 0., 0.) self.assertEqual(res[0], 0.5) self.assertEqual(res[1], 0.5) def test_get_ts(self): out_x = np.array([[0.]]) out_y = np.array([[0.]]) res = bil._get_ts(self.pts_irregular[0], self.pts_irregular[1], self.pts_irregular[2], self.pts_irregular[3], out_x, out_y) self.assertEqual(res[0], 0.375) self.assertEqual(res[1], 0.5) res = bil._get_ts(self.pts_both_parallel[0], self.pts_both_parallel[1], self.pts_both_parallel[2], self.pts_both_parallel[3], out_x, out_y) self.assertEqual(res[0], 0.5) self.assertEqual(res[1], 0.5) res = bil._get_ts(self.pts_vert_parallel[0], self.pts_vert_parallel[1], self.pts_vert_parallel[2], self.pts_vert_parallel[3], out_x, out_y) self.assertEqual(res[0], 0.5) self.assertEqual(res[1], 0.5) def test_solve_quadratic(self): res = bil._solve_quadratic(1, 0, 0) self.assertEqual(res[0], 0.0) res = bil._solve_quadratic(1, 2, 1) self.assertTrue(np.isnan(res[0])) res = bil._solve_quadratic(1, 2, 1, min_val=-2.) self.assertEqual(res[0], -1.0) # Test that small adjustments work pt_1, pt_2, pt_3, pt_4 = self.pts_vert_parallel pt_1 = self.pts_vert_parallel[0].copy() pt_1[0][0] += 1e-7 res = bil._calc_abc(pt_1, pt_2, pt_3, pt_4, 0.0, 0.0) res = bil._solve_quadratic(res[0], res[1], res[2]) self.assertAlmostEqual(res[0], 0.5, 5) res = bil._calc_abc(pt_1, pt_3, pt_2, pt_4, 0.0, 0.0) res = bil._solve_quadratic(res[0], res[1], res[2]) self.assertAlmostEqual(res[0], 0.5, 5) def test_get_output_xy(self): proj = Proj(self.target_def.proj4_string) out_x, out_y = bil._get_output_xy(self.target_def, proj) self.assertTrue(out_x.all()) self.assertTrue(out_y.all()) def test_get_input_xy(self): proj = Proj(self.target_def.proj4_string) in_x, in_y = bil._get_output_xy(self.swath_def, proj) self.assertTrue(in_x.all()) self.assertTrue(in_y.all()) def test_get_bounding_corners(self): proj = Proj(self.target_def.proj4_string) out_x, out_y = bil._get_output_xy(self.target_def, proj) in_x, in_y = bil._get_input_xy(self.swath_def, proj, self.input_idxs, self.idx_ref) res = bil._get_bounding_corners(in_x, in_y, out_x, out_y, self.neighbours, self.idx_ref) for i in range(len(res) - 1): pt_ = res[i] for j in range(2): # Only the sixth output location has four valid corners self.assertTrue(np.isfinite(pt_[5, j])) def test_get_bil_info(self): t__, s__, input_idxs, idx_arr = bil.get_bil_info(self.swath_def, self.target_def) # Only 6th index should have valid values for i in range(len(t__)): if i == 5: self.assertAlmostEqual(t__[i], 0.684850870155, 5) self.assertAlmostEqual(s__[i], 0.775433912393, 5) else: self.assertTrue(np.isnan(t__[i])) self.assertTrue(np.isnan(s__[i])) def test_get_sample_from_bil_info(self): t__, s__, input_idxs, idx_arr = bil.get_bil_info(self.swath_def, self.target_def) # Sample from data1 res = bil.get_sample_from_bil_info(self.data1.ravel(), t__, s__, input_idxs, idx_arr) self.assertEqual(res[5], 1.) # Sample from data2 res = bil.get_sample_from_bil_info(self.data2.ravel(), t__, s__, input_idxs, idx_arr) self.assertEqual(res[5], 2.) # Reshaping res = bil.get_sample_from_bil_info(self.data2.ravel(), t__, s__, input_idxs, idx_arr, output_shape=self.target_def.shape) res = res.shape self.assertEqual(res[0], self.target_def.shape[0]) self.assertEqual(res[1], self.target_def.shape[1]) def test_resample_bilinear(self): # Single array res = bil.resample_bilinear(self.data1, self.swath_def, self.target_def) self.assertEqual(res.shape, self.target_def.shape) # There should be only one pixel with value 1, all others are 0 self.assertEqual(res.sum(), 1) # Single array with masked output res = bil.resample_bilinear(self.data1, self.swath_def, self.target_def, fill_value=None) self.assertTrue(hasattr(res, 'mask')) # There should be only one valid pixel self.assertEqual(self.target_def.size - res.mask.sum(), 1) # Two stacked arrays data = np.dstack((self.data1, self.data2)) res = bil.resample_bilinear(data, self.swath_def, self.target_def) shp = res.shape self.assertEqual(shp[0:2], self.target_def.shape) self.assertEqual(shp[-1], 2) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite pyresample-1.8.1/pyresample/test/test_data_reduce.py000066400000000000000000000166301324347254000227250ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2018 Pytroll Developers # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . """Testing the data_reduce module.""" import unittest import numpy as np from pyresample import geometry from pyresample.data_reduce import (get_valid_index_from_cartesian_grid, swath_from_lonlat_grid, swath_from_lonlat_boundaries, swath_from_cartesian_grid, get_valid_index_from_lonlat_grid) class Test(unittest.TestCase): """Unit testing the data_reduce module.""" @classmethod def setUpClass(cls): """Get ready for testing.""" cls.area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) def test_reduce(self): data = np.fromfunction(lambda y, x: (y + x), (1000, 1000)) lons = np.fromfunction( lambda y, x: -180 + (360.0 / 1000) * x, (1000, 1000)) lats = np.fromfunction( lambda y, x: -90 + (180.0 / 1000) * y, (1000, 1000)) grid_lons, grid_lats = self.area_def.get_lonlats() lons, lats, data = swath_from_lonlat_grid(grid_lons, grid_lats, lons, lats, data, 7000) cross_sum = data.sum() expected = 20514375.0 self.assertAlmostEqual(cross_sum, expected, msg='Reduce data failed') def test_reduce_boundary(self): data = np.fromfunction(lambda y, x: (y + x), (1000, 1000)) lons = np.fromfunction( lambda y, x: -180 + (360.0 / 1000) * x, (1000, 1000)) lats = np.fromfunction( lambda y, x: -90 + (180.0 / 1000) * y, (1000, 1000)) boundary_lonlats = self.area_def.get_boundary_lonlats() lons, lats, data = swath_from_lonlat_boundaries(boundary_lonlats[0], boundary_lonlats[1], lons, lats, data, 7000) cross_sum = data.sum() expected = 20514375.0 self.assertAlmostEqual(cross_sum, expected, msg='Reduce data failed') def test_cartesian_reduce(self): data = np.fromfunction(lambda y, x: (y + x), (1000, 1000)) lons = np.fromfunction( lambda y, x: -180 + (360.0 / 1000) * x, (1000, 1000)) lats = np.fromfunction( lambda y, x: -90 + (180.0 / 1000) * y, (1000, 1000)) grid = self.area_def.get_cartesian_coords() lons, lats, data = swath_from_cartesian_grid(grid, lons, lats, data, 7000) cross_sum = data.sum() expected = 20514375.0 self.assertAlmostEqual( cross_sum, expected, msg='Cartesian reduce data failed') def test_area_con_reduce(self): data = np.fromfunction(lambda y, x: (y + x), (1000, 1000)) lons = np.fromfunction( lambda y, x: -180 + (360.0 / 1000) * x, (1000, 1000)) lats = np.fromfunction( lambda y, x: -90 + (180.0 / 1000) * y, (1000, 1000)) grid_lons, grid_lats = self.area_def.get_lonlats() valid_index = get_valid_index_from_lonlat_grid(grid_lons, grid_lats, lons, lats, 7000) data = data[valid_index] cross_sum = data.sum() expected = 20514375.0 self.assertAlmostEqual(cross_sum, expected, msg='Reduce data failed') def test_area_con_cartesian_reduce(self): data = np.fromfunction(lambda y, x: (y + x), (1000, 1000)) lons = np.fromfunction( lambda y, x: -180 + (360.0 / 1000) * x, (1000, 1000)) lats = np.fromfunction( lambda y, x: -90 + (180.0 / 1000) * y, (1000, 1000)) cart_grid = self.area_def.get_cartesian_coords() valid_index = get_valid_index_from_cartesian_grid(cart_grid, lons, lats, 7000) data = data[valid_index] cross_sum = data.sum() expected = 20514375.0 self.assertAlmostEqual( cross_sum, expected, msg='Cartesian reduce data failed') def test_reduce_north_pole(self): """Test reducing around the poles.""" from pyresample import utils area_id = 'ease_sh' description = 'Antarctic EASE grid' proj_id = 'ease_sh' projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' x_size = 425 y_size = 425 area_extent = (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625) area_def = utils.get_area_def(area_id, description, proj_id, projection, x_size, y_size, area_extent) grid_lons, grid_lats = area_def.get_lonlats() area_id = 'ease_sh' description = 'Antarctic EASE grid' proj_id = 'ease_sh' projection = '+proj=laea +lat_0=-90 +lon_0=0 +a=6371228.0 +units=m' x_size = 1000 y_size = 1000 area_extent = (-532684.0625, -532684.0625, 532684.0625, 532684.0625) smaller_area_def = utils.get_area_def(area_id, description, proj_id, projection, x_size, y_size, area_extent) data = np.fromfunction(lambda y, x: (y + x), (1000, 1000)) lons, lats = smaller_area_def.get_lonlats() lons, lats, data = swath_from_lonlat_grid(grid_lons, grid_lats, lons, lats, data, 7000) cross_sum = data.sum() expected = 999000000.0 self.assertAlmostEqual(cross_sum, expected, msg='Reduce data failed') def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite if __name__ == '__main__': unittest.main() pyresample-1.8.1/pyresample/test/test_ewa_fornav.py000066400000000000000000000157261324347254000226210ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2016 # Author(s): # David Hoese # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . """Test EWA fornav module. """ import sys import logging import numpy as np if sys.version_info < (2, 7): import unittest2 as unittest else: import unittest LOG = logging.getLogger(__name__) class TestFornav(unittest.TestCase): def test_fornav_swath_larger(self): """Test that a swath larger than the output grid fills the entire grid. """ from pyresample.ewa import _fornav swath_shape = (1600, 3200) data_type = np.float32 # Create a fake row and cols array rows = np.empty(swath_shape, dtype=np.float32) rows[:] = np.linspace(-500, 2500, 1600)[:, None] cols = np.empty(swath_shape, dtype=np.float32) cols[:] = np.linspace(-2500, 1500, 3200) rows_per_scan = 16 # Create a fake data swath data = np.ones(swath_shape, dtype=data_type) out = np.empty((1000, 1000), dtype=data_type) grid_points_covered = _fornav.fornav_wrapper(cols, rows, (data,), (out,), np.nan, np.nan, rows_per_scan) one_grid_points_covered = grid_points_covered[0] # The swath was larger than the grid, all of the grid should have # been covered by swath pixels self.assertEqual(one_grid_points_covered, out.size, msg="Not all grid pixels were filled") # The swath was all 1s so there shouldn't be any non-1 values in the # output except outside the swath self.assertTrue(((out == 1) | np.isnan(out)).all(), msg="Unexpected interpolation values were returned") def test_fornav_swath_smaller(self): """Test that a swath smaller than the output grid is entirely used. """ from pyresample.ewa import _fornav swath_shape = (1600, 3200) data_type = np.float32 # Create a fake row and cols array rows = np.empty(swath_shape, dtype=np.float32) rows[:] = np.linspace(500, 800, 1600)[:, None] cols = np.empty(swath_shape, dtype=np.float32) cols[:] = np.linspace(200, 600, 3200) rows_per_scan = 16 # Create a fake data swath data = np.ones(swath_shape, dtype=data_type) out = np.empty((1000, 1000), dtype=data_type) grid_points_covered = _fornav.fornav_wrapper(cols, rows, (data,), (out,), np.nan, np.nan, rows_per_scan) one_grid_points_covered = grid_points_covered[0] # The swath was smaller than the grid, make sure its whole area # was covered (percentage of grid rows/cols to overall size) self.assertAlmostEqual(one_grid_points_covered / float(out.size), 0.12, 2, msg="Not all input swath pixels were used") # The swath was all 1s so there shouldn't be any non-1 values in the # output except outside the swath self.assertTrue(((out == 1) | np.isnan(out)).all(), msg="Unexpected interpolation values were returned") def test_fornav_swath_smaller_int8(self): """Test that a swath smaller than the output grid is entirely used. """ from pyresample.ewa import _fornav swath_shape = (1600, 3200) data_type = np.int8 # Create a fake row and cols array rows = np.empty(swath_shape, dtype=np.float32) rows[:] = np.linspace(500, 800, 1600)[:, None] cols = np.empty(swath_shape, dtype=np.float32) cols[:] = np.linspace(200, 600, 3200) rows_per_scan = 16 # Create a fake data swath data = np.ones(swath_shape, dtype=data_type) out = np.empty((1000, 1000), dtype=data_type) grid_points_covered = _fornav.fornav_wrapper(cols, rows, (data,), (out,), -128, -128, rows_per_scan) one_grid_points_covered = grid_points_covered[0] # The swath was smaller than the grid, make sure its whole area # was covered (percentage of grid rows/cols to overall size) self.assertAlmostEqual(one_grid_points_covered / float(out.size), 0.12, 2, msg="Not all input swath pixels were used") # The swath was all 1s so there shouldn't be any non-1 values in the # output except outside the swath # import ipdb; ipdb.set_trace() self.assertTrue(((out == 1) | (out == -128)).all(), msg="Unexpected interpolation values were returned") class TestFornavWrapper(unittest.TestCase): """Test the function wrapping the lower-level fornav code.""" def test_fornav_swath_larger_float32(self): """Test that a swath larger than the output grid fills the entire grid. """ from pyresample.ewa import fornav swath_shape = (1600, 3200) data_type = np.float32 # Create a fake row and cols array rows = np.empty(swath_shape, dtype=np.float32) rows[:] = np.linspace(-500, 2500, 1600)[:, None] cols = np.empty(swath_shape, dtype=np.float32) cols[:] = np.linspace(-2500, 1500, 3200) # Create a fake data swath data = np.ones(swath_shape, dtype=data_type) out = np.empty((1000, 1000), dtype=data_type) # area can be None because `out` is specified area = None grid_points_covered, out_res = fornav(cols, rows, area, data, rows_per_scan=16, out=out) self.assertIs(out, out_res) # The swath was larger than the grid, all of the grid should have # been covered by swath pixels self.assertEqual(grid_points_covered, out.size, msg="Not all grid pixels were filled") # The swath was all 1s so there shouldn't be any non-1 values in the # output except outside the swath self.assertTrue(((out == 1) | np.isnan(out)).all(), msg="Unexpected interpolation values were returned") def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(TestFornav)) mysuite.addTest(loader.loadTestsFromTestCase(TestFornavWrapper)) return mysuite if __name__ == '__main__': unittest.main() pyresample-1.8.1/pyresample/test/test_ewa_ll2cr.py000066400000000000000000000214221324347254000223320ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2016 # Author(s): # David Hoese # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see B?BR?B?B?B@B\@B@B ABfABAB3BBBBCBCBDBDBEBEBHFBFB{GBHBHBqIBJBJBKBRLBMBMBNBfOB3PB QBQBRBSBfTBHUB)VB WBWBXBYBZB[B{\B\]BH^B3_B`B aBaBbBcBdBeBfBqgBRhB3iBjBjBkBlBmB\nB)oBpBpBqB\rBsBsBtBHuBvBvBRwBwBxB3yByB\zBzBq{B{Bq|B|B>B ?B=?Bq?B?B?BH@B@B@BHABABBBBBCB{CBCB{DB EBEB)FBFBfGB HBHB\IB JBJB{KB3LBLBMBNBROBPBPBQBRBqSBRTB)UB VBVBWBXBYBZBq[B\\BH]B3^B_B `B`BaBbBcBdBeBqfBRgB=hBiBjBjBkBlBqmB=nBoBoBpB{qB=rBsBsB{tB3uBuBvB=wBwB{xByByBHzBzB\{B{BR|B|B>B>B?B\?B?B?B)@B{@B@B3ABABBBqBBBB\CBCBfDBDB{EBFBFBHGBGBHB=IBIBJB\KBLBLBMBfNB3OBPBPBQB{RB\SB3TBUBUBVBWBXBYBqZB\[BH\B)]B^B_B_B`BaBbBcBdBqeBRfB=gBhBiBiBjBkB{lBRmB)nBnBoBpB\qBrBrBsB\tBuBuBqvBwBwBfxByByB)zBzB={B{B=|B|B>B>B ?BH?B?B?B@Bf@B@BAB{ABAB\BBBBHCBCBHDBDBfEBEBFB3GBGB{HB)IBIBJBHKBLBLBMBRNBOBOBPBQBfRB=SBTBTBUBVBWBXBqYBRZB=[B)\B]B^B^B_B`BaBbBcBfdBReB=fBgB hBhBiBjBkB\lB=mB nBnBoB{pBHqB rBrBsBHtBtBuB\vBwBwBHxBxB{yB zBzB{B{B|B|B>B>B>B)?Bf?B?B?BH@B@BABfABAB=BBBB)CBCB3DBDBHEBEB{FBGBGBfHB IBIBqJB)KBKBLBqMB3NBOBOBPBqQBHRB)SBTBTBUBVBWBqXBRYB=ZB)[B \B\B]B^B_B`BaB{bBfcBRdB=eBfB gBgBhBiBjBqkBHlBmBmBnBoBfpB)qBqBrBqsB)tBtBuB=vBvBwB3xBxBfyByBzB {B{B |B{|B{>B>B>B?BR?B?B?B3@B@B@BRABAB)BBBBCBCBDBDB3EBEB\FBGBGBHHBHBIB\JBKBKBLBRMBNBNBOBPB\QB3RB SBSBTBUBVBqWBRXB=YBZB [B[B\B]B^B_B`B{aBfbBRcB3dBeB fBfBgBhBiB{jBRkB)lBmBmBnB{oBHpBqBqBrBRsBtBtB{uB)vBvBqwBxBxBHyByBfzBzBq{B{B\|Bf>B>B>B>B=?B{?B?B@Bq@B@B3ABAB BBBBCB{CBDBDBEBEBHFBFBGB3HBHBIB=JBJBKB{LB=MBNBNBOBqPB=QBRBRBSBTBUBqVBRWB=XBYB ZBZB[B\B]B^B_Bq`B\aBHbB3cBdB eBeBfBgBhB{iB\jB=kBlBlBmBnBfoB)pBpBqB{rB=sBsBtB\uB vBvB\wBxBxB)yByBHzBzBR{B{BH|BH>B{>B>B>B?Bf?B?B@B\@B@BABABABfBBBBfCBCBqDBEBEB)FBFBqGBHBHBqIB)JBJBKB\LBMBMBNBOBRPB)QBRBRBSBTBqUBRVB=WBXB YBYBZB[B\B]B^Bq_B\`BHaB3bBcBdBdBeBfBgBhBfiBHjBkBkBlBmB{nBHoBpBpBqBfrBsBsBtBHuBuBvB=wBwB{xByByB3zBzB={B{B)|B3>B\>B>B>B ?BR?B?B?B=@B@BABqABABRBBBBHCBCB\DBDB{EBFBFBRGBHBHB\IB JBJBKBHLB MBMBNBfOB=PB QBQBRBSB{TB\UB=VBWB XBXBYBZB[B\B{]Bf^BR_B=`B)aBbBcBcBdBeBfBgBfhBHiB)jB kBkBlBmB\nB3oBoBpBqBHrB sBsB{tB)uBuBvB)wBwBfxBxByBzBzB{B{B|B>BH>B{>B>B>B3?B?B?B)@B@B@BRABAB3BBBB3CBCB=DBDBfEBFBFB=GBGBHB=IBIBJBfKB)LBLBMBNBROBPBPBQBRBSB\TB=UBVB WBWBXBYBZB[B{\Bf]BR^B=_B)`BaBbBbBcBdBeBfBqgBRhB3iBjBjBkBlBqmBHnBoBoBpBqqB3rBrBsB\tBuBuBfvB wBwBHxBxBqyBzBzB{B{{B{B>B3>B\>B>B>B?Bf?B?B@Bq@B@B=ABABBBBBCBCB)DBDBHEBEB{FBGBGBqHB)IBIBJBRKBLBLBMBfNB3OB PBPBQBRBfSBHTB)UB VBVBWBXBYBZBq[B\\BH]B3^B_B `B`BaBbBcBdBeBqfBRgB3hBiBiBjBkBlB\mB)nBnBoBpBRqBrBrBsBHtBtBuBRvBvBwB)xBxBRyByBfzBzBf{B{B=B>BH>B>B>B?BR?B?B?BR@B@BABABBB{BBCBCB DBDB3EBEBfFB GBGB\HB IBIB{JB3KBKBLBMBRNBOBOBPBQBqRBRSB)TB UBUBVBWBXBYBqZB\[BH\B3]B^B _B_B`BaBbBcBdBqeBRfB=gBhBiBiBjBkBflB=mBnBnBoBqpB=qBrBrBqsB)tBtBuB3vBvB{wBxBxB=yByBRzBzBH{B{B=B>B3>Bf>B>B>B3?B?B?B=@B@B AB{ABABfBBBBfCBCBDBEBEBRFBFBGB=HBHBIB\JBKBKBLBfMB3NBOBOBPB{QB\RB3SBTBTBUBVBWBXBqYB\ZB=[B)\B]B^B^B_B`BaBbBcBqdBReB=fBgBhBhBiBjB{kBRlB)mBmBnBoB\pBqBqBrB\sBtBtBquBvBvB\wBwBxByByB3zBzB3{B{B=B=B>BR>B>B>B?Bq?B?B)@B@B@B\ABABRBBBBRCBCBfDBEBEB3FBFB{GB)HBHBIBHJBKBKBLBRMBNBNBOBPBfQB=RBSBSBTBUBVBWBqXBRYB=ZB)[B\B]B]B^B_B`BaBbBfcBRdB=eBfB gBgBhBiBjB\kB3lB mBmBnB{oB=pB qBqBrB=sBsBtBRuBvBvBHwBwBqxB yByBzBzB{B{B=B=B>B3>B{>B>B?BR?B?B @Bf@B@B=ABAB)BBBB3CBCBHDBDBqEB FBFBRGBHBHBfIBJBJBKB\LB)MBMBNBOB\PB3QBRBRBSBTBUBqVBRWB=XB)YB ZBZB[B\B]B^B_B{`BfaBRbB=cBdB eBeBfBgBhB{iB\jB3kB lBlBmBnBRoBpBpBqB\rBsBsB{tB)uBuB{vBwBwBRxBxBqyByB{zBzBf{B=B=B=B>B\>B>B>B=?B?B?BR@B@B)ABABBBBBCBCB)DBDBREBEBFB=GBGBHBHIBJBJB{KBHLB MBMBNBqOBHPBQBQBRBSBTBqUBRVB=WBXB YBYBZB[B\B]B^B{_B\`BHaB3bBcB dBdBeBfBgBhB\iB=jBkBkBlBmBfnB3oBpBpBqB=rBsBsBftBuBuBfvBwBwB3xBxBRyByB\zBzBR{Bq=B=B=B >BH>B>B>B?B{?B?B3@B@B ABABAB{BBCBCBDBDB=EBEB{FBGBGB{HB3IBIBJBfKB)LBLBMBNB\OB)PBQBQBRBSB{TB\UB=VBWB XBXBYBZB[B\B]Bq^B\_BH`B3aBbB cBcBdBeBfBgBfhBHiBjBkBkBlB{mBHnBoBoBpBfqB)rBrBsBHtBtBuBHvBvBwBxBxB=yByB=zBzB3{B\=B=B=B=B)>Bq>B>B ?B\?B?B@B@B@BfABAB\BBBBfCBCBDBEBEBfFB GBGBfHBIBIBJBHKB LBLBMBqNB=OBPBPBQBRB{SB\TB=UBVB WBWBXBYBZB[B{\Bf]BR^B=_B)`BaBbBbBcBdBeBfBfgBHhB)iB jBjBkBlBfmB3nBoBoBpBRqB rBrB{sB3tBtBuB)vBvBfwBxBxByByB)zBzB{BH=Bq=B=B=B>BR>B>B>BH?B?B@Bq@B@BRABABHBBBBRCBCBqDB EBEBHFBFBGBHHBIBIBqJB3KBKBLBMBRNB)OBOBPBQBRBfSB=TB)UB VBVBWBXBYBZB{[Bf\BR]B=^B)_B`BaBaBbBcBdBeBqfBRgB3hBiBiBjBkB{lBHmBnBnBoBqpB3qBqBrBfsBtBtBquBvBvBRwBwB{xByByB zBzB{B)=BR=B=B=B=B=>B>B>B)?B?B?BR@B@B3ABAB)BBBB3CBCB\DBDBEB)FBFB{GB3HBHBIBRJBKBKBLBqMB=NB OBOBPBQBfRBHSB)TB UBUBVBWBXBYBqZB\[BH\B3]B^B _B_B`BaBbBcBdBqeBRfB3gBhBhBiBjBkB\lB3mBnBnBoB\pBqBqBrBHsBtBtBRuBuBvB3wBwB\xBxBqyByBqzBzB=B==Bq=B=B=B>Bq>B>B?Bq?B?B=@B@BABABBBBBCBCB=DBDBqEBFBFBfGBHBHBIB=JBKBKBLBRMBNBNBOBPBqQBRRB)SB TBTBUBVBWBXBqYB\ZBH[B3\B]B ^B^B_B`BaBbBcBqdBReB=fBgBhBhBiBjBqkBHlBmBmBnB{oB=pBqBqB{rB3sBsBtB=uBuB{vBwBwB=xBxBRyByBRzBzBBR>B>B>BR?B?B@B@BAB{ABAB{BBCBCB)DBDB\EBEBFBHGBGBHBfIBJBJBKBqLB3MBNBNBOBPB\QB3RBSBSBTBUBVBWBqXB\YB=ZB)[B\B]B]B^B_B`BaBbBqcBRdB=eBfBgBgBhBiB{jBRkB)lBmBmBnB\oB)pBpBqB\rBsBsBqtBuBuBfvBwBwB)xBxB=yByB3zBzBB>B>B=?B?B @Bq@B@B\ABAB\BBBB{CB DBDB=EBEBFB3GBGBHBHIB JBJBKBRLBMBMBNBOBfPB=QBRBRBSBTBUBVBqWBRXB=YB)ZB[B\B\B]B^B_B`BaBfbBRcB=dBeB fBfBgBhBiBfjB=kB lBlBmB{nBHoB pBpBqBHrBsBsB\tBuBuBHvBvB{wB xBxByByBzBzBBq>B>B?B?B?B\@B@BHABABHBBBB\CBCBDB)EBEBqFBGBGB{HB3IBIBJBqKB=LBMBMBNBqOBHPB)QBRBRBSBTBUBfVBRWB=XBYB ZBZB[B\B]B^B_B{`BfaBRbB=cBdB eBeBfBgBhBqiBHjBkBkBlBmBfnB)oBoBpBqqB)rBrBsB=tBtBuB3vBvBfwBwB{xB yByBzB{zBB\>B>B ?Bq?B?B=@B@B)ABAB)BBBBHCBCBqDB EBEBRFBGBGB\HBIBIBJB\KBLBLBMBNB\OB3PB QBQBRBSBTBfUBRVB3WBXB YBYBZB[B\B]B^B{_Bf`BHaB3bBcB dBdBeBfBgB{hBRiB3jB kBkBlB{mBHnBoBoBpBRqBrBrB{sB)tBtBquBvBvBHwBwBfxBxBqyByB\zBB>B>BR?B?B)@B@BABABBBBB)CBCBRDBDBEB3FBFBGBHHBIBIB{JB=KBLBLBMBqNB=OBPBPBQBRBSBqTBRUB3VBWB XBXBYBZB[B\B]Bq^B\_BH`B3aBbBcBcBdBeBfB{gB\hB=iBjBjBkBlBfmB3nBnBoB{pB=qBqBrB\sB tBtB\uBvBvB)wBwBHxBxBRyByB=zB{B{>B>B=?B?B @B@B@B{ABABBBCBCB=DBDB{EBFBFB{GB)HBHBIB\JBKBKBLBMBRNB)OBPBPBQBRBqSBRTB3UBVBWBWBXBYBZB[B\Bq]B\^BH_B)`BaBbBbBcBdBeBfBfgBHhBiBiBjBkB{lBHmBnBnBoBfpBqBqBrBHsBsBtB=uBuB{vBwBwB3xBxB3yByB)zBfBf>B>B?B?B?Bf@B@B\ABABfBBBBCBDBDB\EBFBFB\GBHBHBIBHJB KBKBLBfMB=NB OBOBPBQB{RBRSB=TBUBVBVBWBXBYBZB{[Bf\BR]B=^B)_B`BaBaBbBcBdBeBffBHgB)hB iBiBjBkB\lB3mBnBnBoBHpB qBqB{rB)sBsBtB)uBuBfvBvBwBxBxByByB zBHB>B ?Bq?B?BH@B@BHABABRBBBBqCB DBDBHEBEBFBHGBGBHBfIB)JBJBKB{LBRMBNBNBOBPB{QB\RB=SBTBUBUBVBWBXBYBqZB\[BH\B3]B^B _B_B`BaBbBcBdBfeBRfB3gB hBhBiBjBqkBHlBmBmBnBqoB3pBpBqB\rBsBsBftB uBuBHvBvBqwBxBxByB{yByB3B>B>BR?B?B3@B@B)ABAB3BBBBRCBCBDB)EBEB{FB)GBGBHBRIBJBJBKBfLB3MBNBNBOBPBfQB=RBSBTBTBUBVBWBXBqYB\ZBH[B3\B]B ^B^B_B`BaBbBcBqdBReB3fBgBgBhBiBjB\kB)lBmBmBnBRoBpBpBqBHrBrBsBRtBtBuB)vBvBRwBwBfxBxBfyByBBq>B>B=?B?B@B@B ABABBBBB=CBCBqDB EBEB\FB GBGB{HB3IBIBJBKBHLBMBMBNBOBqPBHQB)RB SBSBTBUBVBWBqXBRYB=ZB)[B\B]B]B^B_B`BaBbBfcBRdB3eBfBgBgBhBiBfjB=kBlBlBmB{nB=oBpBpBqqB)rBrBsB3tBtB{uBvBvB=wBwBHxBxBHyByBB\>B>B?B?B@B{@B@B{ABBBBBCBCBRDBDBEBHFBFBGB\HBIBIBJBfKB3LBMBMBNB{OBRPB3QB RBRBSBTBUBVBfWBRXB=YB)ZB[B\B\B]B^B_B`BaBfbBRcB3dBeBfBfBgBhB{iBRjB)kBkBlBmB\nBoBoBpB\qBrBrBqsBtBtB\uBuBvBwBwB3xBxB)yByB;BB>B ?Bq?B?B\@B@B\ABABqBB CBCB=DBDBEB)FBFBGBHHBIBIBJBHKBLBLBMBNB\OB=PBQBQBRBSBTB{UBfVBRWB3XBYB ZBZB[B\B]B^B_B{`BfaBRbB3cBdBeBeBfBgBhB\iB3jB kBkBlB{mBHnB oBoBpB=qBqBrB\sBtBtBHuBuBqvB wBwBxBxByByB;B;B)B>B>B\?B?BH@B@BHABAB\BBBBCBDBDBfEBFBFBqGB)HBHBIBfJB3KBLBLBMBqNBHOBPBPBQBRBSB{TBfUBHVB3WBXB YBYBZB[B\B]B^B{_Bf`BRaB3bBcBdBdBeBfBgBfhBHiBjBjBkBlB\mB)nBnBoBqpB)qBqBrB=sBsBtB)uBuB\vBvB{wBxB{xBxBqyB;B;B Bf>B>B=?B?B)@B@B)ABAB=BBBBfCB DBDBHEBEBFB\GBHBHBIBRJBKBKBLBMBRNB)OBPBPBQBRBSBfTBHUB3VBWBXBXBYBZB[B\B]Bq^B\_BH`B3aBbBcBcBdBeBfBqgBRhB)iBjBjBkB{lBHmBnBnBoBRpB qBqB{rBsBsBqtBuBuB=vBvB\wBwBfxBxBRyB;B;B;B)B>B)?B?B@B@BABAB)BBBBRCBCBDB3EBEBFB=GBGBHBqIB3JBKBKBLBfMB=NBOBOBPBQBRBfSBHTB3UBVBWBWBXBYBZB[B\Bq]B\^BH_B3`BaBbBbBcBdBeB{fB\gB3hBiBiBjBkB\lB)mBmBnB{oB=pBpBqB\rB sBsB\tBtBuB)vBvBHwBwBHxBxB=yB;B;B;BB>B ?B{?B?Bq@B@B{AB BBBB3CBCBqDBEBEBqFB)GBGBHB\IBJBJBKB{LBHMBNBNBOBPBQBfRBHSB3TBUBVBVBWBXBYBZB{[Bf\BR]B=^B)_B`BaBaBbBcBdB{eBffB=gBhBhBiBjB{kBHlBmBmBnBfoBpBpBqB=rBrBsB=tBtB{uB vBvB)wBwB3xBxByBf;B;B;B;B3B>B>Bf?B?B\@B@BfABABBBCBCB\DBEBEBRFB GBGB{HB=IBJBJBKB\LB3MBNBNBOBPBqQBRRB3SBTBUBUBVBWBXBYB{ZBf[BR\B=]B)^B_B`B`BaBbBcBdBfeBHfB)gBhBhBiBjB\kB)lBlBmBnBHoB pBpB{qB)rBrB{sBtBtB\uBuBvBwBwBxBxByB\;B{;B;B;BBq>B>BR?B?BH@B@BRABABqBB CBCBHDBDBEBHFBGBGBqHB3IBIBJBKBRLB)MBMBNBOBPBfQBHRB)SB TBTBUBVBWBXB{YBfZBR[B=\B3]B^B _B_B`BaBbBcB{dB\eB=fBgBgBhBiBjBRkBlBlBmB{nB=oBpBpBfqBrBrBqsBtBtBRuBuB{vBwBwB xBxBxB=;Bf;B;B;B B>B=?B?B3@B@B=ABAB\BBBBCB3DBDB{EB)FBFBGBRHBIBIBJBfKB=LB MBMBNBOBfPBHQB)RB SBSBTBUBVBWB{XBfYBRZB=[B)\B]B^B^B_B`BaBbB{cB\dB=eBfBgBgBhBiBfjB=kB lBlBmBfnB)oBoBpBRqBrBrB\sBtBtB3uBuB\vBvBqwBwBfxBxB);BR;B{;B;B;B3B>B?B?B@B@BABAB=BBBBqCBDBDBfEBFBFB{GB=HBIBIBJBRKBLBLBMBNBqOBRPB3QB RBRBSBTBUBVBqWB\XBHYB3ZB[B \B\B]B^B_B`BaB{bB\cBHdB)eB fBfBgBhB{iBRjBkBkBlBmBHnB oBoBpB3qBqBrB=sBsBtBuBuBHvBvBRwBwBRxBxB ;B3;Bf;B;B;BB>B ?B{?B@B{@B ABAB)BBBB\CBCBDBHEBEBFBfGBHBHBIBqJB3KBLBLBMBNB\OB3PBQBQBRBSBTBUBqVB\WBHXB3YBZB [B[B\B]B^B_B`B{aB\bBHcB)dB eBeBfBgBhB\iB3jB kBkBlBfmB3nBnBoBfpBqBqB{rB)sBsBftBuBuB)vBvB=wBwB3xBxB:B;BH;B{;B;BB{>B>Bf?B?Bf@B@B{AB BBBB=CBCBDB3EBEBFBHGB HBHBIBRJBKBKBLBMBfNB=OBPBPBQBRBSBTBqUB\VB=WB)XBYBZBZB[B\B]B^B_Bq`B\aBHbB)cBdBdBeBfBgBqhBHiBjBjBkBlBRmBnBnBoBRpBqBqBfrB sBsBRtBtBuBvBvBwBwBxBxB:B;B3;Bf;B;B;B)B>BH?B?BH@B@B\ABABBB)CBCBfDBEBEB{FB3GBGBHBqIB3JBKBKBLBqMBHNB)OBPBPBQBRBSBqTBRUB=VB)WBXBYBYBZB[B\B]B^Bq_B\`BHaB)bBcBcBdBeBfB{gBRhB)iBjBjBkBqlB3mBnBnB{oB3pBpBqBHrBrBsB3tBtBfuBuBvB wBwBxBqxB:B:B;BH;B;B;BB>B3?B?B3@B@BHABABqBB CBCBRDBEBEB\FBGBGBHBRIBJBJBKBLB\MB3NB OBOBPBQBRBqSBRTB=UBVB WBWBXBYBZB[B\B{]Bf^BR_B=`B)aBbBbBcBdBeBfB\gB=hBiBiBjBkBRlBmBmBnBfoBpBpBqB3rBrB{sBtBtBHuBuBfvBvBqwBwB\xB:B:B;B3;Bq;B;B;BHB>B?B?B@B@B)ABABRBBBBCB3DBDBEBHFBGBGB{HB=IBJBJBKBfLB=MBNBNBOBPBQBqRBRSB=TBUB VBVBWBXBYBZB[B{\Bf]BR^B=_B)`BaBaBbBcBdBeBffBHgBhBhBiBjBqkB=lBmBmBnBHoBpBpBfqBrBrBfsBtBtB3uBuBRvBvBRwBwB=xB:B:B:B;BR;B;B;B3B>B?B{?B@B@BABAB=BBBB{CBDBDBqEB)FBFBGB\HBIBIBJB{KBRLB)MBNBNBOBPBqQBRRB=SBTB UBUBVBWBXBYBZBq[B\\BH]B3^B_B `B`BaBbBcBdBqeBRfB)gB hBhBiBjBRkBlBlBmBqnB3oBoBpBRqBrBrBHsBsBtBuBuB3vBvB=wBwB)xBq:B:B:B;B=;B{;B;BB>B\?B?Bf@B@BABBBBB\CBDBDB\EB FBFBGBHHB IBIBJBfKB3LB MBMBNBOB{PB\QB=RBSBTBTBUBVBWBXBYBqZB\[BH\B3]B^B _B_B`BaBbBcBqdBReB3fBgBgBhBiBqjB=kB lBlBmB\nBoBoBpB3qBqBrB3sBsBftBuBuBvBvBwBwB xB\:B:B:B:B;Bf;B;B;BRB>BH?B?BR@B@BqABBBBB=CBCBDB=EBEBFBfGB)HBHBIB{JBHKBLBLBMBNB{OB\PB=QBRBSBSBTBUBVBWB{XBfYBRZB=[B)\B]B^B^B_B`BaBbB{cB\dB=eBfBfBgBhBiBRjB)kBkBlB{mB=nBoBoBqpBqBqBqrBsBsBRtBtB{uBvBvB wB{wBwB=:Bf:B:B:B ;BH;B;B;B3B>B)?B?B3@B@BRABABBB)CBCB{DB)EBEBFBRGB HBHBIBfJB3KBLBLBMBNBfOB=PBQB RBRBSBTBUBVBqWB\XBHYB=ZB)[B\B]B]B^B_B`BaB{bB\cB=dB)eBfBfBgBhBfiB=jB kBkBlBfmB)nBnBoBRpBqBqB\rBsBsB3tBtB\uBuBqvBvBfwBwB):BR:B{:B:B:B3;B{;B;BB>B?B?B@B@B=ABABqBB CBCB\DB EBEB{FB3GBGBHB{IBHJBKBKBLBMBqNBHOB)PB QBQBRBSBTBUBqVB\WBHXB3YBZB [B[B\B]B^B_B`B{aB\bBHcB)dB eBeBfBgB{hBRiBjBjBkBlBHmB nBnBoB=pBpBqB=rBrBsBtBtBHuBuBRvBvBHwBwB :B3:Bf:B:B:B;B\;B;BB{>B>B{?B@B@BABABRBBBBCB=DBDBEB\FBGBGBHBfIB)JBKBKBLB{MBRNB3OB PBPBQBRBSBTBqUBRVB=WB)XBYB ZBZB[B\B]B^B_Bq`B\aBHbB)cB dBdBeBfBgB\hB3iB jBjBkBqlB3mBmBnBfoBpBpB{qB)rBrBfsBtBtB)uBuB=vBvB3wBwB9B:BH:B{:B:B;BH;B;B;B=B>B\?B?Bq@BABAB3BBBB{CB)DBDBEB=FBGBGBHBHIBJBJBKBLB\MB3NBOBOBPBQBRBSBfTBRUB=VB)WBXBYBYBZB[B\B]B^Bq_B\`BHaB)bBcBcBdBeBfBqgBHhBiBiBjBkBRlBmBmBnBRoB pBpBfqB rBrBRsBsBtBuBuBvBvBwBwB9B:B3:Bf:B:B:B);B{;B;B)B>BH?B?B\@B@BABBBBBfCB DBDBqEB)FBFBGBfHB)IBIBJBKBqLBHMBNBNBOBPBQBRBfSBRTB3UBVB WBWBXBYBZB[B\B]Bq^B\_B=`B)aBbBbBcBdBeB{fBRgB3hBiBiBjBqkB=lBmBmB{nB3oBoBpBHqBqBrB3sBsBftBtBuB vBvBwBqwB9B9B:BH:B:B:B;B\;B;B B>B)?B?B=@B@BfABBBBBHCBCBDBREB FBFBGBHHBIBIBJB{KBRLB)MBNBNBOBPBQBfRBRSB3TBUB VBVBWBXBYBZB[B{\Bf]BR^B=_B)`BaBaBbBcBdBeBffB=gBhBhBiBjB\kBlBlBmBfnBoBoBpB3qBqB{rBsBsBRtBtBfuBuBqvBvB\wB9B9B:B3:Bq:B:B:BH;B;B;BRB>B ?B?B@B@BHABABBB)CBCBDB=EBEBFBqGB3HBHBIBJBfKB3LB MBMBNBOBPBfQBHRB3SBTBUBUBVBWBXBYBZB{[Bf\BR]B=^B)_B `B`BaBbBcBdBfeBHfBgBhBhBiBqjB=kB lBlBmBHnB oBoBqpBqBqBfrBsBsB3tBtBRuBuBRvBvB=wB9B9B9B:BR:B:B:B);B{;B;B=B>B{?B @B@B3ABABqBBCBCBqDBEBEBFBRGBHBHBIB{JBHKBLBLBMBNBOBfPBRQB3RBSBTBTBUBVBWBXBYBqZB\[BH\B3]B^B _B_B`BaBbBcBqdBReB3fB gBgBhBiB\jB)kBkBlBqmB3nBnBoBRpBqBqBHrBrBsBtBtB3uBuB=vBvB)wBq9B9B9B:B=:B{:B:B;Bf;B;BB>B\?B?B{@BABABRBBBBCBRDBEBEB{FB=GBHBHBIB\JB)KBLBLBMBNBqOBRPB3QBRBSBSBTBUBVBWB{XBfYBRZBH[B3\B]B ^B^B_B`BaBbB{cB\dB3eBfBfBgBhBqiB=jB kBkBlB\mBnBnBoB=pBpBqB3rBrBqsBtBtBuBuBvBvB wB\9B9B9B9B:B\:B:B:BH;B;BB>BH?B?Bf@BABAB3BBBBCB3DBDBEB\FBGBGBHBqIB=JBKBKBLBMBqNBROB3PBQBRBRBSBTBUBVB{WBfXBRYB=ZB)[B\B]B]B^B_B`BaB{bB\cB=dBeBfBfBgBhB\iB)jBjBkBlB=mBnBnBqoBpBpB{qBrBrBRsBsB{tBuBuB vB{vBvB=9Bf9B9B9B :BH:B:B:B3;B;B;BRB>B)?B?BH@B@B{ABBBBBqCBDBDBEBHFBGBGBHB\IB)JBJBKBLB{MB\NB=OBPBQBQBRBSBTBUBqVB\WBHXB3YBZB [B\B\B]B^B_B`B{aB\bBHcB)dB eBeBfBgBqhB=iB jBjBkBflB)mBmBnBRoB pBpB\qBrBrB=sBsB\tBtBquBuBfvBvB)9BR9B{9B9B9B):Bq:B:B;Bq;B;B3B>B?B?B3@B@BfABBBBBRCBDBDBqEB)FBFBGBqHB=IB JBJBKBLBfMB=NBOBPBPBQBRBSBTBfUBRVB=WB3XBYB ZBZB[B\B]B^B_B{`B\aBHbB)cB dBdBeBfB{gBRhB)iBiBjBkBRlBmBmBnB=oBoBpBHqBqBrBsBsBHtBtBRuBuBHvBvB 9B39Bf9B9B9B:B\:B:B;BR;B;BB>B?B@B@BHABABBB3CBCBDBREB FBFBGB\HBIBIBJBKBqLBHMB)NBOBOBPBQBRB{SBfTBRUB=VB)WBXBYBYBZB[B\B]B^Bq_B\`BHaB)bBcBcBdBeBfBfgB=hB iBiBjBqkB3lBlBmBqnBoBoBpB)qBqBqrB sBsB)tBtB=uBuB3vBvB8B9BR9B9B9B:BH:B:B:BH;B;B B>Bq?B @B@B=ABABBB)CBCBDBHEBFBFBGBRHBIBIBJBKBfLB=MBNBOBOBPBQBRBqSB\TBHUB3VBWB XBXBYBZB[B\B]B^Bq_BR`B=aB)bB cBcBdBeBfB\gB3hBiBiBjBfkB)lBlBmBfnBoBoB{pBqBqB\rBrBsBtBtB)uBuB)vBvB8B 9B39Bf9B9B9B):B{:B:B);B;B;B\B>B\?B?B@BABABfBBCBCBqDB)EBEBFBqGB3HBIBIBJBqKBHLB)MBNBNBOBPBQBqRB\SBHTB3UBVB WBWBXBYBZB[B\B{]Bf^BR_B=`B)aB bBbBcBdBeBffB=gBhBhBiBjBRkBlBlBmBHnBoBoB\pB qBqBHrBrB{sB tBtBuBuB vB{vB8B8B9BR9B9B9B:Bf:B:B;Bq;B;B=B>B=?B?Bf@BABABHBBBBCB\DBEBEBFBRGBHBHBIBJB\KB3LB MBMBNBOBPBqQB\RB=SB)TBUBVBVBWBXBYBZB[B{\Bf]BR^B=_B`B aBaBbBcBdB{eBRfB)gBhBhBiBqjB3kBkBlB{mB3nBnBoBHpBpBqB3rBrB\sBsB{tBtB{uBuBfvB8B8B9B39Bq9B9B9BH:B:B:BR;B;B)B>B)?B?BR@B@BAB3BBBBCB=DBDBEBqFB3GBHBHBIBfJB=KBLBLBMBNBOBqPB\QB=RB)SBTBUBUBVBWBXBYBZBq[B\\BH]B3^B_B `B`BaBbBcB{dB\eB3fBgBgBhBiBRjBkBkBlB\mBnBnB{oB)pBpB{qBrBrBHsBsB\tBtB\uBuBHvB8B8B8B9BR9B9B9B):B:B:B=;B;B B ?B?B3@B@BqABBBBBqCBDBDBEB\FBGBGBHB{IBRJBKBLBLBMBNBqOB\PB=QB)RB SBSBTBUBVBWBXB{YBqZB\[BH\B3]B^B _B_B`BaBbBcBfdBHeBfBfBgBhBqiB=jBkBkBlBHmBnBnBfoBpBpB\qBrBrB)sBsBHtBtBHuBuB3vB{8B8B8B9B=9B{9B9B:Bf:B:B;B;B;BfB>B?B@B@BRABABBBRCB DBDB{EB=FBGBGBHBfIB3JB KBKBLBMB{NB\OB=PBQB RBRBSBTBUBVBWB{XBfYBRZB=[B)\B]B^B^B_B`BaBbBqcBRdB)eB fBfBgBhBRiBjBjBkBqlB3mBmBnBRoBpBpBHqBqB{rBsBsB)tBtB3uBuBvB\8B8B8B8B9Bf9B9B9BH:B:B ;Bq;B;BHB>Bf?B@B@B=ABABBB=CBCBDBfEBFBFBGB{HBHIBJBJBKBLB{MB\NB=OBPB QBQBRBSBTBUBVBqWB\XBHYB=ZB)[B\B]B]B^B_B`BaBqbBRcB3dBeBeBfBgBqhB=iB jBjBkB\lBmBmBnB3oBoBpB)qBqBfrBrBsBtBtBuBuBvBH8Bf8B8B8B 9BH9B9B9B3:B:B:BR;B;B3B>BH?B?B{@BABABqBBCBCBDBHEB FBFBGB\HB)IBJBJBKBLBfMBHNB)OB PBPBQBRBSBTB{UBfVB\WBHXB3YBZB [B[B\B]B^B_B`BqaB\bB=cBdBdBeBfBgBRhB)iBiBjB{kB=lBmBmBqnBoBoBqpBqBqBRrBrBqsBsB{tBuBquBuB)8BR8B{8B8B8B)9Bq9B9B:Bq:B:B3;B;BB>B3?B?Bf@BABABRBBCBCBqDB)EBEBFB{GBHHBIBIBJBKBqLBHMB)NB OBOBPBQBRBSB{TBfUBRVB=WB)XBYB ZBZB[B\B]B^B_Bq`B\aB=bBcBdBdBeBfBfgB=hB iBiBjBfkB)lBlBmBRnBoBoB\pBqBqB3rBrB\sBsBftBtB\uBuB 8B38Bf8B8B8B9B\9B9B:BR:B:B;B;B;BqB?B?BH@B@BAB=BBBBCBRDBEBEBFB\GB)HBHBIBJB{KBRLB3MB NBNBOBPBQBRBqSB\TBHUB3VB)WBXBYBYBZB[B\B]B^Bq_B\`B=aB)bB cBcBdBeB{fBRgBhBhBiBjBHkB lBlBmB=nBnBoB=pBpBqBrBrB=sBsBHtBtBHuBuB7B8BH8B{8B8B8B=9B9B9B=:B:B;Bq;B;BRB>B?B)@B@BqABBBBBCB=DBDBEB{FBHGB HBHBIBJB\KB3LBMBMBNBOBPBQBqRB\SBHTB3UBVB WBWBXBYBZB[B\B]Bq^B\_B=`B)aB bBbBcBdBeBffB3gB hBhBiBqjB3kBkBlBqmBnBnB{oB)pBpBfqBrBrB)sBsB3tBtB)uBuB7B8B38Bf8B8B8B)9Bq9B9B:B:B:BR;B;B=B>B{?B@B@B\ABBBBBfCBDBDBEB\FB)GBGBHBIBfJB=KBLBLBMBNBOBPBqQBRRB=SB)TBUBVBVBWBXBYBZB[B{\Bf]BR^B=_B)`B aBaBbBcBdBqeBHfBgBgBhBiBRjBkBkBlBRmB nBnBfoB pBpBRqBqB{rB sBsBtBtBuBuB7B7B8BH8B8B8B 9B\9B9B :Bf:B:B3;B;BB>B\?B?B@B=ABABBBHCBDBDBEBHFB GBGBHB{IBRJB)KBLBLBMBNBOBfPBRQB=RB)SBTBUBUBVBWBXBYBZB{[Bf\BR]B=^B)_B `B`BaBbBcB{dBReB3fB gBgBhBqiB=jBkBkBlB=mBmBnBRoBoBpB3qBqBfrBrB{sBtBtBtBquB7B7B7B38Bf8B8B8B=9B9B9BH:B:B;B;B B>B=?B?B{@BABAB{BB3CBCBDBfEB)FBFBGBHB\IB3JB KBKBLBMBNBfOBRPB3QBRB SBSBTBUBVBWBXBYBqZB\[BH\B=]B^B _B_B`BaBbBcBfdB=eBfBfBgBhB\iB)jBjBkBflBmBmBnB3oBoBpBqBqBRrBrBfsBsBftBtBRuB7B7B7B8BR8B8B8B)9B{9B9B3:B:B;Bq;B;BfB>B)?B?Bf@B ABABfBBCBCBDBHEBFBFBGBqHBHIBJBJBKBLBMBqNBROB3PBQB RBRBSBTBUBVBWB{XBqYB\ZBH[B3\B]B ^B^B_B`BaBbBfcBHdB)eBfBfBgB{hBHiB jBjBkBRlB mBmBqnBoBoBfpB qBqB3rBrBRsBsBRtBtB=uBq7B7B7B7B38Bq8B8B 9B\9B9B:B{:B:B\;B;BHB ?B?BH@B@BABHBBBBCBqDB3EBEBFBGBRHB)IBJBJBKBLBqMBRNB3OBPBQBQBRBSBTBUBVB{WBfXBRYB=ZB)[B\B ]B]B^B_B`BaBqbBRcB3dB eBeBfBgB\hB)iBiBjB{kB3lBlBmB\nBoBoBRpBpBqBrBrB3sBsB3tBtBuB\7B{7B7B7B8B\8B8B8B=9B9B:Bf:B:B=;B;B3B>B?B)@B@B{AB)BBBBCBRDBEBEBFBqGB=HB IBIBJBKBqLBRMB3NBOBPBPBQBRBSBTBUBqVB\WBHXB=YB)ZB[B\B\B]B^B_B`BqaB\bB=cBdBdBeBfBqgBHhBiBiBjB\kBlBlBmB=nBnBoB3pBpBqqBrBrBsBsBtBtB uB=7Bf7B7B7B8B=8B8B8B)9B9B9BH:B:B;B;BB>Bq?B@B@BfABBBBB{CB=DBDBEBFBRGBHBHBIBJB{KB\LB=MBNBOBOBPBQBRBSB{TBfUBRVB=WB3XBYB ZBZB[B\B]B^B_B{`B\aB=bBcBdBdBeBfB\gB)hBhBiBjBHkB lBlBqmB)nBnB{oBpBpBRqBqB{rBsBsB tB{tBtB7BH7B{7B7B7B)8Bq8B8B 9Bf9B9B):B:B ;B{;BB>BR?B?B@BHABABBBfCBDBDBEBfFB3GB HBHBIBJB\KB=LBMBNBNBOBPBQBRBqSB\TBRUB=VB)WBXBYBYBZB[B\B]B^B{_B\`BHaB)bB cBcBdBeBqfBHgBhBhBiBqjB3kBkBlB\mB nBnBfoB pBpB=qBqB\rBrBqsBsBftBtB 7B37B\7B7B7B 8BR8B8B8BH9B9B:B{:B:Bf;B;BfB>B=?B?B@B)ABABBBHCBDBDBEBRFBGBGBHBIBfJBHKB)LBMBMBNBOBPBQBqRB\SBHTB3UBVB WBXBXBYBZB[B\B]Bq^B\_BH`B)aB bBbBcBdBeB\fB)gBgBhBiBRjBkBkBlBHmBmBnBHoBoBpB)qBqBHrBrBRsBsBHtBtB6B7B=7Bq7B7B7B38B8B8B39B9B9B\:B:BH;B;BHB?B?Bf@BABABqBB)CBCBDBqEB3FBGBGBHB{IBRJB)KB LBLBMBNBOB{PBfQBRRB=SB)TBUB VBVBWBXBYBZB[B\Bq]B\^BH_B)`BaBaBbBcBdBfeB=fBgBgBhB{iB=jBkBkB{lB)mBmBnB3oBoBqpB qBqB3rBrB=sBsB3tBtB6B6B)7B\7B7B7B8Bf8B8B9Bq9B9BH:B:B);B;B)B?B?BH@B@BAB\BBCBCBDBREBFBFBGBHB\IB3JBKBKBLBMBNB{OBfPBRQB=RB)SBTBUBUBVBWBXBYBZB[Bq\B\]B=^B)_B`B`BaBbBcB{dBReB)fBfBgBhB\iB)jBjBkB\lBmBmBqnBoBoB\pBpBqBrBrB)sBsBtBtB6B6B 7B=7B{7B7B8BR8B8B8B\9B9B):B:B;B;BB>B?B3@B@BAB=BBBBCBqDB3EBFBFBGBqHB=IBJBJBKBLBMB{NBfOBHPB3QBRB SBSBTBUBVBWBXBYB{ZBf[BR\B=]B)^B_B_B`BaBbBcB\dB3eB fBfBgB{hBHiB jBjBkBHlBlBmB\nBoBoBHpBpBqqBrBrB sBsBtBqtB6B6B6B)7B\7B7B7B38B8B8B=9B9B:B:B:Bq;B;B{B>Bq?B@B@BqABBBBBCB\DBEBEBFB{GBRHB)IBJBJBKBLB{MB\NBHOB3PBQBRBRBSBTBUBVBWBXBqYB\ZBR[B=\B)]B ^B^B_B`BaBbBfcBHdBeBeBfBgBfhB)iBiBjBqkB)lBlBmB=nBnBoB)pBpB\qBqBqrBrBqsBsB\tB6B6B6B7BH7B7B7B8Bq8B8B)9B9B9Bf:B:B\;B;BfB>B\?B@B@B\AB BBBBCB=DB EBEBFBfGB=HBIBIBJBKBLBfMBHNB3OBPBQBQBRBSBTBUBVBWBqXB\YBHZB=[B)\B]B^B^B_B`BaB{bBRcB3dB eBeBfBgBRhBiBiBjB\kBlBlB{mB)nBnB{oBpBpBHqBqB\rBrB\sBsBHtBq6B6B6B6B37Bq7B7B8BR8B8B 9Bq9B9BR:B:B=;B;BHB>B=?B?B@B=ABABBBfCB)DBDBEB{FBRGBHBHBIBJBKBfLBHMB3NBOBPBPBQBRBSBTBUB{VBfWBRXBHYB3ZB[B \B\B]B^B_B`B{aB\bB=cBdBdBeBfBfgB3hBiBiBjBHkBlBlBfmBnBnB\oBpBpB)qBqB=rBrBHsBsB)tBR6B{6B6B6B7BR7B7B7B=8B8B8B\9B9B3:B:B);B;B3B?B?Bq@BABABBBHCB DBDBEBfFB3GB HBHBIBJBqKBRLB3MBNBOBOBPBQBRBSBTBqUB\VBRWB=XB)YBZB [B[B\B]B^B_B{`BfaBHbBcBdBdBeBfBRgBhBhBiBqjB)kBkBlBRmBmBnBHoBoB{pBqBqB)rBrB)sBsBtB=6B\6B6B6B6B=7B{7B7B8B{8B8B=9B9B:B:B ;B;BB ?B?BR@B ABABqBB3CBCBDB{EBHFBGBGBHBIBqJBRKB3LBMBNBNBOBPBQBRB{SBfTBRUBHVB3WBXBYBZBZB[B\B]B^B{_Bf`BHaB)bB cBcBdBeBffB=gB hBhBiBRjBkBkBlB3mBmBnB)oBoBfpBpBqBrBrBsBsBtB6BH6Bq6B6B6B7Bf7B7B8B\8B8B9B9B:Bq:B:Bq;B;BB>B?B=@B@BAB\BBCBCBDBfEB)FBGBGBHB{IB\JB=KBLBMBMBNBOBPBQBqRB\SBRTB=UB)VBWB XBXBYBZB[B\B]B{^Bf_BR`B3aBbBbBcBdB{eBRfBgBgBhB{iB=jBkBkBqlBmBmBqnBoBoBRpBpBqqBqB{rBrBqsBsB6B)6BR6B6B6B7BH7B7B7BH8B8B 9Bq9B9B\:B:BR;B;BfB>Bq?B@B@BAB=BBBBCB{DBHEBFBFBGBHBfIB=JBKBLBLBMBNBOBPBqQB\RBHSB3TBUBVBWBWBXBYBZB[B\B{]Bf^BR_B3`BaBaBbBcBdBfeB3fB gBgBhBfiB)jBjBkBRlBmBmB\nBoBoB3pBpB\qBqBfrBrB\sBsB5B6B=6Bq6B6B6B37B{7B7B)8B8B8BR9B9B=:B:B=;B;BRB>B\?B@B@BfABBBBBCBfDB)EBEBFBGBqHBHIB)JBKBKBLBMBNB{OBfPBRQB=RB)SBTB UBUBVBWBXBYBZB[B{\Bf]BH^B3_B`BaBaBbBcBqdBHeBfBfBgBhBHiB jBjBkB=lBlBmB=nBnBoBpBpB=qBqBHrBrB=sBsB5B5B6BR6B6B6B7B\7B7B 8Bf8B8B=9B9B:B:B;B;B3B=?B?B@BHABBBBBCBHDBEBEBFB{GBRHB)IB JBJBKBLBMB{NBfOBHPB3QBRBSBTBTBUBVBWBXBYBZBq[B\\BH]B3^B_B`B`BaBbBcB\dB3eB fBfBgBqhB3iBiBjBqkBlBlBmB)nBnBfoBpBpB)qBqB3rBrB)sBsB5B5B 6B=6Bq6B6B6BH7B7B7BR8B8B9B9B :B:B;B;BB?B?B{@B3ABABBBfCB)DBDBEBFBfGB=HBIBIBJBKBLB{MB\NBHOB3PBQB RBRBSBTBUBVBWBXB{YBqZB\[BH\B3]B^B_B_B`BaBbBfcBHdBeBeBfBgBRhBiBiBjBRkB lBlBfmBnBnBRoBoBpB qBqBrBrBsBsB5B5B5B6B\6B6B6B)7B{7B7B38B8B9Bq9B9Bf:B:Bq;BB ?B?Bf@BABABBBRCBDBDBEBqFBHGBHBHBIBJBKB{LB\MBHNB)OBPBQBQBRBSBTBUBVBWB{XBfYBRZB=[B)\B]B^B^B_B`BaBqbBRcB)dBeBeBfBqgB=hBiBiBjB=kBkBlBRmBmBnB=oBoBfpBpB{qBrBrBrBfsB{5B5B5B6B=6B{6B6B 7Bf7B7B8B{8B8B\9B9BH:B:BR;B;BqB>B?BH@B@BABqBB3CBCBDBEB\FB)GBHBHBIBJB{KB\LB=MB)NBOBPBPBQBRBSBTBUB{VBqWB\XBHYB=ZB)[B\B]B]B^B_B`B{aB\bB=cBdBdBeBfB\gB)hBhBiBfjB)kBkBlB=mBmBnBoBoBRpBpBfqBqBfrBrBRsBf5B5B5B5B6B\6B6B6BH7B7B8Bf8B8B=9B9B3:B:B=;B;BRB>B{?B)@B@BABRBBCBCBDBqEB=FBGBGBHBIB{JB\KB=LB)MB NBNBOBPBQBRBSBTBqUBfVBRWBHXB3YBZB [B[B\B]B^B_B`BfaBHbBcBcBdBeBqfB=gB hBhBiBRjB kBkBqlBmBmBqnB oBoB3pBpBRqBqBRrBrB=sBH5Bq5B5B5B 6BH6B6B6B)7B7B7BH8B8B9B9B:B:B;B;B=B>B\?B @B@B{AB=BBBBCBDBREBFBFBGBHBIBfJBHKB)LB MBMBNBOBPBQBRB{SBqTB\UBHVB=WB)XBYB ZBZB[B\B]B^B_Bf`BHaB)bB cBcBdBeB\fB)gBgBhB{iB=jBjBkB\lB mBmBRnBnBoBpBpB3qBqB=rBrBsB35BR5B{5B5B5B)6Bq6B6B7Bf7B7B)8B8B 9B{9B9B{:B;B;BBH?B?B@B\ABBBBBCBqDB=EB FBFBGBHBfIBHJB)KB LBLBMBNBOBPBQBqRBfSBRTB=UB3VBWBXBYBYBZB[B\B]B^Bf_BR`B3aBbBbBcBdBqeBHfBgBgBhBfiBjBjBkBHlBlBmB=nBnBqoB pBpBqBqBrBrB sB5B=5Bf5B5B5B 6BR6B6B6BR7B7B8B{8B8Bf9B9B\:B:Bq;BB)?B?B@BHABBBBBCBRDBEBEBFBGBqHBHIB)JB KBKBLBMBNBOB{PBfQB\RBHSB3TB)UBVB WBWBXBYBZB[B\B]Bf^BR_B3`BaBaBbBcBdB\eB)fBfBgBhBHiB jBjB{kB)lBlB{mBnBnB\oBoB{pB qBqB rBrBrB4B5BH5B{5B5B5B=6B6B6B37B7B7B\8B8BH9B9BH:B:BR;B;B{B ?B?Bq@B)ABABBBqCB3DBEBEBFB{GBRHB3IBJBJBKBLBMBNB{OBfPBRQB=RB)SBTB UBVBVBWBXBYBZB[B{\Bf]BR^B=_B`BaBaBbBcBqdB=eBfBfBgBqhB3iBiBjB\kBlBlBfmB nBnBHoBoBfpBpBqqBqBfrBrB4B5B)5B\5B5B5B6Bf6B6B7Bq7B7BH8B8B)9B9B):B:B=;B;BfB>B?BR@B ABABBBRCBDBDBEBFB\GB=HBIBIBJBKBLBMBqNB\OBHPB3QB)RBSBTBTBUBVBWBXBYBZB{[Bf\BR]B=^B_B`B`BaBbB{cBRdB)eBeBfBgB\hBiBiBjBHkBkBlBRmBmBnB)oBoBRpBpB\qBqBRrBrB4B4B5BH5B{5B5B6BR6B6B6B\7B7B)8B8B 9B9B :B:B;B;BHB>B?B=@B@BABqBB3CBDBDBEBqFBHGBHBIBIBJBKBLBqMB\NB=OB3PBQB RBRBSBTBUBVBWBXBYBqZB\[BR\B3]B^B _B_B`BaBbBfcB=dBeBeBfB{gB=hBiBiB{jB3kBkBlB3mBmB{nBoBoB3pBpBHqBqB3rBrB4B4B4B)5Bf5B5B5B36B6B6B=7B7B 8B{8B8Bq9B9B{:B;B;B)B>Bf?B@B@BABRBBCBCBDB{EBRFB)GBHBHBIBJBKBfLBRMB=NB)OBPBQBQBRBSBTBUBVBWB{XBqYB\ZBH[B3\B]B ^B^B_B`BaBqbBRcB)dBdBeBfB\gB)hBhBiBfjBkBkB{lBmBmBfnBoBoBpBpB)qBqBrBrB4B4B4B 5BH5B5B5B6Bf6B6B7B7B7Bf8B8BR9B9B\:B:B{;BBR?B@B@B{AB=BBCBCBDBfEB3FB GBGBHBIBJBfKBRLB=MBNB OBOBPBQBRBSBTBUBVBqWBfXBRYB=ZB3[B\B]B]B^B_B`B{aB\bB3cB dBdBeB{fBHgB hBhBiBHjBkBkB\lB mBmBHnBnB{oB pBpBqBqB rB{rBq4B4B4B4B)5Bf5B5B6BR6B6B 7Bf7B7BH8B8B39B9B=:B:B\;B;BB3?B?B@B\ABBBBBCB{DBHEBFBFBGBHBIBfJBRKB3LBMB NBNBOBPBQBRBSBTB{UBfVB\WBHXB=YB)ZB[B\B\B]B^B_B`BfaB=bBcBcBdBeBffB3gBgBhB{iB3jBjBkBHlBlBmB3nBnB\oBoB{pBpB{qBqBfrBR4B{4B4B4B5BR5B5B5B36B6B6BR7B7B)8B8B9B9B:B:B=;B;BqB?B?B@B=ABBBBBCB\DB)EBFBFBGBHBqIBRJB3KBLBMBMBNBOBPBQBRBSBqTB\UBRVB=WB3XBYB ZB[B[B\B]B^B_Bf`BHaB)bBcBcBdBeBRfBgBgBhB\iBjBjBkB3lBlB{mBnBnBHoBoB\pBpB\qBqBHrB=4B\4B4B4B4B35B{5B5B6Bq6B6B37B7B 8B8B9B9B :B:B);B;B\B>B?Bf@B)ABABBBqCB=DBEBEBFBGBqHBRIB3JBKBLBLBMBNBOBPBQB{RBfSBRTBHUB3VB)WBXB YBYBZB[B\B]B^Bq_BR`B3aBbBbBcBdBfeB3fBgBgBhBHiBjBjBfkBlBlBfmBnBnB3oBoBHpBpBHqBqB3rB4BH4Bq4B4B4B5B\5B5B6BR6B6B7B7B7Bf8B8Bf9B9B{:B ;B;B=B>B?BH@B ABABBB\CB)DBDBEBFB{GB\HB3IBJBKBKBLBMBNBOB{PBqQB\RBHSB=TB)UBVB WBXBXBYBZB[B\B]Bq^BR_B=`BaBaBbBcB{dBReBfBfBgBqhB3iBiBjBRkBlBlBHmBmBnBoBoB3pBpB3qBqBrB4B)4BR4B4B4B5B=5B5B5B36B6B6Bf7B7BH8B8BH9B9B\:B:B;BB>Bq?B)@B@BABqBB3CBDBDBEB{FB\GB3HBIBIBJBKBLBMBNBqOB\PBHQB=RB)SBTB UBVBVBWBXBYBZB[B\Bf]BR^B3_B`BaBaBbBcB\dB3eBfBfBgBRhBiBiBjB3kBkBlB3mBmBfnBoBoBpBpBqBqBrB3B 4B34Bf4B4B4B)5Bq5B5B6B{6B6BH7B7B)8B8B)9B9B=:B:Bf;BBR?B @B@BABRBBCBCBDBEBfFB=GBHBIBIBJBKBLB{MBfNBROB=PB3QBRBSBTBTBUBVBWBXBYBZB{[Bf\BR]B=^B_B`B`BaBbBqcBHdBeBeBfB{gB=hBhBiBqjBkBkBqlBmBmBRnBnBqoBpBpBqB{qBqB3B3B4BR4B4B4B 5BR5B5B6B\6B6B)7B7B8B8B 9B9B:B:BH;B;BB=?B?B@BqAB3BBCBCBDBqEBHFBGBHBHBIBJBKB{LB\MBHNB=OB)PBQB RBRBSBTBUBVBWBXBYB{ZBf[BR\B3]B^B _B_B`BaBbB\cB3dBeBeBfB\gBhBhBiBRjB kBkB\lBmBmB=nBnB\oBoBfpBpB\qBqB3B3B4B34Bf4B4B4B=5B5B5B=6B6B7B{7B7Bq8B8B{9B:B:B);B;BfB?B?B@BRABBBBBCBDBREB)FB GBGBHBIBJBqKB\LBHMB3NBOB PBQBQBRBSBTBUBVBWBXBqYB\ZBH[B3\B]B ^B^B_B`BaBfbB=cBdBdBeBfBHgB hBhBiB=jBjBkBHlBlBmBnBnBHoBoBRpBpBHqBqB3B3B3B4BR4B4B4B5Bq5B5B)6B6B6Bf7B7BR8B8B\9B9B{:B;B;BHB?B?B{@B=ABBBBBCBfDB=EBFBFBGBHBIBqJB\KB=LB)MBNBOBOBPBQBRBSBTBUBVB{WBfXBRYBHZB3[B\B ]B]B^B_B`BqaBRbB)cBdBdBeBffB3gBgBhBqiBjBjBkB)lBlBqmB nBnB)oBoB=pBpB3qBqB{3B3B3B3B34Bq4B4B5BR5B5B 6Bq6B6BH7B7B38B8B=9B9B\:B:B;B3B>B?B\@BABABBB{CBHDBEBEBFBGBHBqIBRJB=KB)LB MBNBNBOBPBQBRBSBTB{UBqVB\WBHXB=YB)ZB[B\B\B]B^B_B{`B\aB3bBcBcBdBeBRfBgBgBhBRiB jBjBfkBlBlBRmBmBnBoBoBpBpBqBqB\3B3B3B3B4BR4B4B4B35B5B5BR6B6B)7B7B8B8B9B9B=:B:Bq;BB>B?B=@BABABBB\CB3DBEBEBFBGBqHBRIB=JBKB LBLBMBNBOBPBQBRB{SBqTB\UBRVBHWB3XBYBZB[B[B\B]B^B_Bf`BHaBbBbBcBdBqeB3fBgBgBhB=iBiBjBRkBlBlB=mBmBqnBoBoB pBpBqBqqBH3Bf3B3B3B3B=4B{4B4B5Bq5B5B36B6B 7B7B8B8B 9B9B):B:BR;B;BBf?B@B@BABqBB=CBDBDBEBFB{GBRHB=IBJB KBKBLBMBNBOBPBQBqRBfSBRTBHUB3VB)WBXB YBYBZB[B\B]B^Bq_BR`B)aB bBbBcBdBReBfBfBgBfhB)iBiBjB=kBkBlB)mBmBRnBnBqoBoBqpBpB\qB)3BH3Bq3B3B3B4Bf4B4B5BR5B5B6B6B6Bf7B7Bf8B8B{9B :B:B=;B;BBH?B @B@BAB\BB)CBCBDBEB{FB\GB=HBIBJBJBKBLBMBNBOB{PBfQB\RBHSB=TB)UBVB WBXBXBYBZB[B\B]Bq^BR_B3`BaBaBbBcBqdB=eB fBfBgBRhB iBiBqjBkBkBqlB mBmB=nBnBRoBoB\pBpB=qB 3B33B\3B3B3B4BH4B4B4B=5B5B6Bf6B6BH7B7BH8B8B\9B9B:B;B;BfB)?B?B@BqAB=BB CBCBDBEBfFB=GBHBIBIBJBKBLBMB{NBqOB\PBRQB=RB3SBTBUBVBVBWBXBYBZB[B\Bq]BR^B=_B`B`BaBbBcBRdB)eBeBfB{gB=hBhBiB\jB kBkB\lBlBmB)nBnB=oBoB=pBpB)qB2B3B=3Bq3B3B3B)4Bq4B4B5B{5B5BH6B6B37B7B)8B8B=9B9Bf:B;B;BHB?B?B@B\ABBBBBCBDBfEBHFBGBHBHBIBJBKBLBqMBfNBROB=PB3QBRBSB TBTBUBVBWBXBYBZB[Bq\BR]B=^B_B`B`BaBbBfcB=dB eBeBfBfgBhBhBiBHjBjBkB=lBlB{mB nBnB)oBoB)pBpBqB2B2B3BR3B3B3B 4B\4B4B5B\5B5B)6B6B7B7B 8B8B9B9BH:B:B;B)B>B?Bq@B=ABBBBBCB{DBREB)FB GBGBHBIBJBKBqLB\MBHNB3OB)PBQB RBRBSBTBUBVBWBXBYB{ZBf[BR\B=]B)^B _B_B`BaB{bBRcB)dBdBeBfBHgB hBhB{iB)jBjBkB)lBlB\mBmBnB oBoBpBpBpB2B2B 3B33Bq3B3B3B=4B4B4BH5B5B6B6B6Bq7B7B{8B9B9B):B:Bf;BB>B?B\@BABABBBCB\DB3EB FBFBGBHBIB{JBfKBRLB=MB)NBOB PBQBQBRBSBTBUBVBWBXB{YBfZBR[B=\B)]B ^B^B_B`BaBfbB=cB dBdBeBqfB3gBgBhBfiBjBjBqkBlBlBHmBmBqnBnB{oBoBqpBpB2B2B2B3BR3B3B3B4Bq4B4B)5B5B5Bf6B6BR7B7B\8B8B{9B:B:BR;B;BB>B{?B=@BABABBBfCB=DBEBEBFBGBHB{IBfJBHKB3LBMBNBOBOBPBQBRBSBTBUBVB{WBqXB\YBHZB3[B\B ]B]B^B_B`BqaBHbBcBcBdBeBRfBgBgBhBHiBjBjBRkBkBlB3mBmBRnBnBfoBoB\pBpB2B2B2B3B33Bq3B3B4BR4B4B 5Bq5B5BH6B6B37B7B=8B8B\9B9B:B3;B;BB\?B@B@BAB{BBRCBDBEBEBFBGB{HB\IBHJB3KBLB MBMBNBOBPBQBRBSBTBUBqVBfWBRXBHYB3ZB[B \B\B]B^B_B{`B\aB3bB cBcBdBqeB=fBgBgB{hB3iBiBjB=kBkB{lBmBmB=nBnBHoBoB=pBpBf2B2B2B2B3B\3B3B3B=4B4B4BR5B5B)6B6B7B7B8B8B=9B9Bq:B;B;BfB=?B@B@BABfBB3CB DBDBEBFB{GB\HBHIB)JBKBLBLBMBNBOBPBQBRBSB{TBfUB\VBHWB=XB)YBZB[B[B\B]B^B_Bf`B=aBbBbBcBdB\eB)fBfBgBfhBiBiB{jB)kBkBflBmBmB)nBnB3oBoB)pBpBH2Bf2B2B2B3B=3B{3B3B4Bq4B4B35B5B 6B6B7B{7B 8B8B9B9BR:B:B;BHB)?B?B@B{ABHBBCBCBDBEB{FB\GB=HB)IBJBJBKBLBMBNBOBPBQB{RBfSB\TBRUB=VB3WBXBYBZBZB[B\B]B^Bq_BH`B)aBbBbBcB{dBHeB fBfBgBHhBiBiBfjB kBkBRlBlB{mB nBnBoBoBpBpB)2BR2B{2B2B2B3Bf3B3B4BR4B4B5B5B5Bf6B6Bf7B7Bq8B 9B9B=:B:B;B)B ?B?B@B\AB)BBBBCBDBEBfFB=GB)HB IBIBJBKBLBMBNBOB{PBfQB\RBRSB=TB3UB)VBWB XBXBYBZB[B\B]Bq^BR_B3`BaBaBbBcB\dB)eBeBfB{gB3hBhBiBHjBjBkB=lBlBfmBmB{nBoBoBoBfpB2B32B\2B2B2B3BH3B3B3B=4B4B5Bf5B5BH6B6BH7B7B\8B8B9B:B:Bf;B B>B?Bq@B=AB BBBBCBDBfEBHFB)GB HBHBIBJBKBLBMB{NBqOB\PBRQB=RB3SB)TBUB VBWBWBXBYBZB[B\Bq]B\^B=_B`B`BaBbB{cBHdBeBeBfB\gBhBhBiB3jBjBkBlBlBRmBmBfnBnBfoBoBRpB1B2B=2Bq2B2B2B)3Bq3B3B4B{4B4BH5B5B)6B6B)7B7B=8B8Bf9B:B:BH;B;BB>B?B\@BABABBBCBqDBHEB)FB GBGBHBIBJBKBLBqMB\NBROBHPB3QB)RBSB TBUBUBVBWBXBYBZB[Bq\B\]B=^B_B`B`BaBbB\cB3dBeBeBfBHgBhBhBqiBjBjBfkB lBlB3mBmBRnBnBRoBoB=pB1B1B)2BR2B2B2B 3B\3B3B4B\4B4B)5B5B6B6B 7B7B8B8BH9B9B:B);B;BB{?B=@B ABABBB{CBRDB3EB FBFBGBHBIBJB{KBfLBRMBHNB3OB)PBQB RBSBSBTBUBVBWBXBYBZBq[B\\B=]B)^B _B_B`BaB{bBHcBdBdBeBqfB3gBgBhBRiBjBjBRkBkBlBmBmB=nBnB=oBoBpB1B1B 2B32Bq2B2B2B=3B3B3B=4B4B 5B{5B5Bq6B6B{7B8B8B)9B9Bf:B ;B;BfB\?B@B@BABBB\CB3DBEBEBFBGBHBIBqJB\KBHLB=MB)NBOB PBQBQBRBSBTBUBVBWBXB{YBqZB\[B=\B)]B ^B^B_B`BaB\bB3cBdBdBeB\fBgBgBhB=iBiBjB=kBkBqlB mBmBnBnBoBoB pB1B1B1B2BR2B2B2B3Bq3B3B)4B4B4Bf5B5BR6B6B\7B7B{8B 9B9BH:B:B;BHB=?B@B@BABqBB=CBDBDBEBFBGBHBfIBRJB=KB3LBMB NBOBOBPBQBRBSBTBUBVBWB{XBfYBRZB=[B)\B]B]B^B_B`BqaBHbBcBcBdB{eB=fBgBgBqhB)iBiB{jBkBkB\lBlBmB nBnB oBoBoB1B1B1B2B32Bq2B2B3BR3B3B 4Bq4B4BH5B5B36B6B=7B7B\8B8B9B):B:B{;B3B?B?B@B{ABRBB)CBDBDBEBFB{GBfHBRIB=JB)KBLBMBMBNBOBPBQBRBSBTBUB{VBqWB\XBHYB=ZB)[B\B\B]B^B_B{`BRaB)bBcBcBdBfeB)fBfBgB\hB iBiBfjB kBkBHlBlBfmBmB{nBnBfoBoBf1B1B1B1B2B\2B2B2B=3B3B3BR4B4B)5B5B6B6B)7B7BH8B8B{9B:B:Bf;BB ?B?B@BfAB=BBCBCBDBEBFBqGBRHB=IB)JBKBLBLBMBNBOBPBQBRBSBTB{UBqVB\WBRXB=YB)ZB[B\B\B]B^B_Bq`BHaBbBbBcBdBReBfBfBgBHhBiBiBRjBkBkB3lBlB\mBmBfnBnB\oBoBH1Bq1B1B1B2B=2B2B2B3Bq3B3B34B4B5B5B6B6B 7B7B)8B8B\9B9B:BR;BB>B?B@BRABBBBBCBDBEBqFBRGB=HBIB JBJBKBLBMBNBOBPBQBRB{SBqTB\UBRVBHWB3XBYBZB[B[B\B]B^B{_BR`B3aB bBbBcBqdB=eBfBfB{gB3hBhBiB=jBjBkBlBlB=mBmBRnBnBHoBoB31BR1B{1B1B1B2Bf2B2B3B\3B3B4B4B4Bf5B5Bf6B6B{7B 8B8B=9B9B:B3;B;BB>B?Bf@B3ABBBBBCBDBqEBRFB3GBHB IBIBJBKBLBMBNBOBPB{QBqRB\SBRTBHUB=VB)WBXB YBYBZB[B\B]B{^B\_B=`BaBaBbBcB\dB)eBeBfBfgBhBhB{iB)jBjBqkB lBlB)mBmB3nBnB)oBoB1B31B\1B1B1B2BH2B2B2B=3B3B4Bf4B4BH5B5BH6B6B\7B7B8B9B9Bf:B;B;B{B{?BH@BABABBBCBqDBREB3FBGBHBHBIBJBKBLBMBNB{OBfPB\QBRRBHSB=TB)UBVBWBXBXBYBZB[B\B]Bf^BH_B)`BaBaBbB{cBHdB eBeBfBRgB hBhBfiBjBjBRkBkBlBmBmBnBnBoBoB0B1BH1Bq1B1B1B)2B{2B2B3B{3B3BH4B4B35B5B)6B6B=7B7Bf8B9B9BH:B:B;B\B\?B)@B@BABBB{CB\DB3EBFBGBGBHBIBJBKBLB{MBfNB\OBRPBHQB3RB)SBTBUB VBVBWBXBYBZB[B\Bf]BR^B3_B `B`BaBbB\cB)dBdBeB{fB3gBgBhBRiBiBjB=kBkBqlBmBmB nBnBoBqoB0B1B)1BR1B1B1B2B\2B2B3B\3B3B)4B4B5B5B 6B6B7B7BH8B8B9B):B:B;B=BH?B @B@BABBB\CB=DBEBFBFBGBHBIBJB{KBqLB\MBRNB=OB3PB)QBRBSB TBTBUBVBWBXBYBZB[Bq\BR]B3^B_B_B`BaB{bBHcBdBdBeBffBgBgBhB3iBiBjB)kBkBRlBlBqmBmBqnBnB\oB0B0B 1B=1Bq1B1B1B=2B2B2BH3B3B4B{4B4Bq5B5B{6B7B7B)8B8Bf9B:B:Bq;BB)?B?B@BABfBBHCBDBEBEBFBGBHBIBqJB\KBRLB=MB3NB)OBPBQBRBRBSBTBUBVBWBXBYB{ZBf[BR\B=]B^B_B_B`BaB\bB3cBdBdBeBHfB gBgBqhBiBiBqjB kBkB=lBlBRmBmB\nBnB=oB0B0B0B1BR1B1B1B2Bq2B2B)3B3B3Bf4B4BR5B5B\6B6B{7B 8B8BR9B9B:BR;B B ?B?B@B{ABRBB)CBDBDBEBFBGB{HBfIBRJBHKB3LB)MBNB OBPBPBQBRBSBTBUBVBWBXB{YBfZBR[B=\B]B^B^B_B`BqaBHbBcBcBdBqeB3fBfBgB\hB iBiB\jBjBkB)lBlB=mBmB=nBnB)oB0B0B0B1B31Bq1B1B2BR2B2B 3Bq3B3BH4B4B35B5B=6B6B\7B7B8B39B9B:B3;B;BB>B?B@B\AB3BB CBCBDBEBFB{GBfHBRIB=JB)KBLB MBNBNBOBPBQBRBSBTBUBVBWBqXB\YBRZB=[B\B ]B]B^B_B`B\aB3bBcBcBdB\eBfBfBgBHhBhBiB=jBjB{kB lBlB)mBmB)nBnBoBf0B0B0B0B1B\1B1B1B32B2B2BR3B3B)4B4B5B5B6B6B=7B7Bq8B9B9Bf:B;B;BB>B?Bq@B=ABBBBBCBDBEBqFB\GBHHB3IBJB KBLBLBMBNBOBPBQBRBSBTBUB{VBfWB\XBHYB3ZB[B \B\B]B^B_Bq`BHaBbBbBcB{dBHeBfBfB{gB)hBhBiB)jBjBfkBkBlBmBmBnBnBnBH0Bq0B0B0B1B=1B{1B1B2Bq2B2B33B3B 4B4B5B{5B6B6B7B7BR8B8B9BH:B:B;BfB{?BR@BABABBBCBDBqEB\FB=GB)HBIBJBJBKBLBMBNBOBPBQBRBSB{TBfUB\VBRWB=XB)YBZB [B[B\B]B^B{_BR`B)aBbBbBcBfdB)eBeBfB\gBhBhBqiBjBjBHkBkBqlBlB{mBmBqnBnB30BR0B{0B0B0B1Bf1B1B2BR2B2B3B{3B3Bf4B4B\5B5Bq6B7B7B38B8B{9B):B:B;BRBf?B3@B ABABBBCBqDBREB=FB)GB HBHBIBJBKBLBMBNBOBPBQBqRBfSB\TBRUBHVB3WB)XBYBZBZB[B\B]B^B\_B=`BaBaBbBcBRdBeBeBfBHgBhBhBRiBiBjB3kBkB\lBlBfmBmB\nBnB0B30B\0B0B0B1BH1B1B1B32B2B2B\3B3BH4B4B=5B5BR6B6B{7B8B8Bf9B :B:Bq;B3BH?B@B@BABBB{CB\DB=EBFB GBGBHBIBJBKBLBMBNB{OBqPBfQB\RBRSBHTB3UB)VBWB XBYBYBZB[B\B]Bf^BH_B`BaBaBbBqcB3dBeBeB{fB3gBgBhB=iBiBjBkBkB=lBlBRmBmBHnBnB/B0B=0Bq0B0B0B)1Bq1B1B2B{2B2BH3B3B)4B4B)5B5B36B6B\7B8B8BH9B9B:B\;BB)?B?B@BAB{BB\CB=DBEBFBFBGBHBIBJBKBLB{MBqNB\OBRPBHQB=RB3SB)TBUBVBWBWBXBYBZB[B\Bq]BR^B3_B `B`BaBbBRcBdBdBeBffBgBgB{hB)iBiBfjB kBkB)lBlB3mBmB)nBnB/B0B0BR0B0B0B 1BR1B1B2B\2B2B)3B3B 4B4B 5B5B6B6BH7B7B8B)9B9B:B=;B;BB ?B?B@BAB\BB=CBDBEBEBFBGBHBIBJB{KBfLB\MBRNBHOB=PB3QB)RBSBTBUBUBVBWBXBYBZB[Bq\B\]B=^B_B_B`BaBqbB=cB dBdBeBHfBgBgBfhB iBiBRjBjBkBlBlBmBmBnBnB/B/B 0B30Bq0B0B0B31B1B1B=2B2B 3B{3B3Bf4B4Bq5B6B6B)7B7Bf8B 9B9Bf:B;B;BB>B?B@BfABHBBCBDBDBEBFBGBHB{IBfJB\KBRLB=MB3NB)OBPBQB RBSBSBTBUBVBWBXBYBZBq[B\\B=]B^B_B_B`BaB\bB)cBcBdBqeB3fBfBgBRhBhBiB=jBjBqkBlBlB mBmBnBqnB/B/B/B0BR0B0B0B1Bf1B1B2B2B2B\3B3BH4B4BR5B5Bq6B 7B7BH8B8B9BH:B;B;B{B>B?B{@BRAB)BB CBCBDBEBFBGBqHB\IBRJB=KB3LB)MBNBOB PBQBQBRBSBTBUBVBWBXBYBqZB\[B=\B)]B ^B^B_B`BqaB=bB cBcBdB\eBfBfBgB3hBhBiB)jBjBRkBkBqlBlBqmBmB\nB/B/B/B0B30Bq0B0B1BR1B1B2Bf2B2B=3B3B)4B4B35B5BR6B6B7B)8B8B{9B):B:B;B\B?B\@B3AB BBBBCBDBEB{FBfGBRHBHIB3JB)KBLB MBNBNBOBPBQBRBSBTBUBVBWB{XBfYB\ZB=[B)\B ]B]B^B_B`BRaB)bBbBcBdBHeBfBfBqgBhBhBqiB jBjB=kBkB\lBlB\mBmB=nBf/B/B/B/B0BR0B0B0B31B1B1BH2B2B3B3B4B4B5B5B36B6Bf7B 8B8B\9B:B:B;B=Bf?B=@BABABBBCBDB{EB\FBHGB=HB)IBJB KBLBLBMBNBOBPBQBRBSBTBUBVBqWBfXBRYB=ZB)[B\B\B]B^B_Bf`B=aBbBbBcBqdB3eBeBfB\gB hBhB\iBiBjB)kBkB=lBlB=mBmB)nBH/Bf/B/B/B/B30B{0B0B1Bf1B1B)2B2B3B{3B3Bq4B4B5B6B6BH7B7B8B=9B9B:Bf;B)BH?B@B@BABBBCBqDB\EBHFB3GBHB IBJBJBKBLBMBNBOBPBQBRBSBTB{UBfVB\WBHXB=YB)ZB[B[B\B]B^B{_BR`B)aBaBbBcBRdBeBeBfB=gBgBhB=iBiB{jBkBkB)lBlB)mBmBnB)/BH/Bq/B/B/B0B\0B0B0BH1B1B 2Bq2B2B\3B3BR4B4Bf5B5B6B37B7B{8B9B9B:BH;B B3?B@B@BABBBqCB\DB=EB)FBGBHBHBIBJBKBLBMBNBOBPBQB{RBqSBfTB\UBRVB=WB3XBYB ZBZB[B\B]B^B\_B=`B aBaBbB{cB=dBeBeBqfB)gBgBhB)iBiBfjBjBkBlBlBmBmBnB /B3/B\/B/B/B/B=0B0B0B)1B1B1B\2B2B=3B3B34B4BH5B5Bq6B7B7B\8B 9B9Bq:B);B;BB?B?B@BAB{BB\CB=DBEB FBFBGBHBIBJBKBLBMBNBOB{PBqQBfRB\SBRTB=UB3VB)WBXB YBYBZB[B\B]Bq^BH_B`B`BaBbB\cB)dBdBeB\fBgBgBqhBiBiBRjBjBqkBlB{lBmBqmBmB.B/B=/Bf/B/B/B0Bf0B0B1Bq1B1B=2B2B3B3B4B4B)5B5BR6B6B7B=8B8B9BR:B ;B;BB>B?B@B{AB\BB=CBDB EBEBFBGBHBIBJBKBLB{MBqNBfOB\PBRQBHRB=SB3TB)UBVB WBXBXBYBZB[B\Bq]BR^B3_B `B`BaB{bBHcB dBdBeBHfBgBgBRhBhBiB3jBjB\kBkBflBlB\mBmB.B.B/BH/B/B/B0BH0B0B0BR1B1B2B2B3B{3B4B4B 5B5B=6B6B{7B8B8B{9B3:B:B;BqB>B?B@B\AB=BBCBDBDBEBFBGBHBIBJBqKBfLB\MBRNBHOBHPB=QB3RB)SBTB UBVBVBWBXBYBZB[B{\B\]B=^B_B_B`BaBfbB3cBcBdB{eB3fBfBgB=hBhBiBjBjBHkBkBRlBlBHmBmB.B.B/B3/Bf/B/B/B30B0B0B31B1B2Bq2B2B\3B3Bf4B4B5B6B6B\7B8B8Bf9B:B:B;B\B?Bq@BHAB)BB CBCBDBEBFBGBHB{IBfJB\KBRLBHMB=NB3OB)PBQBRB SBTBTBUBVBWBXBYBZB{[Bf\BH]B)^B_B_B`BaBRbBcBcBdBfeBfBfB{gB)hBhBqiB jBjB3kBkB=lBlB3mBmB.B.B.B/BH/B/B/B0Bf0B0B1B{1B1BR2B2B=3B3BH4B4Bf5B6B6B=7B7B8BH9B:B:B{;B=B{?BR@B)AB BBBBCBDBEBFB{GBfHB\IBRJBHKB3LB)MB)NBOBPB QBRBRBSBTBUBVBWBXBYB{ZBf[BH\B3]B ^B^B_B`BqaB=bBcBcBdBHeBfBfBfgBhBhB\iBiBjBkBkB)lBlBmBmB{.B.B.B.B)/Bf/B/B/BH0B0B0B\1B1B32B2B)3B3B)4B4BH5B5B{6B7B7Bq8B)9B9B:B\;BB\?B3@B ABABBBCBDBEBqFB\GBRHB=IB3JB)KBLBMB NBOBOBPBQBRBSBTBUBVBWBXB{YBfZBR[B3\B]B]B^B_B`BRaBbBbBcBqdB3eBeBfBRgBhBhB=iBiBqjBkBkB lBlBmBqmB\.B.B.B.B /BH/B/B/B)0B{0B0B=1B1B2B2B 3B3B 4B4B)5B5B\6B7B7B\8B 9B9B{:B=;BB=?B@B@BABBBCB{DBfEBRFBHGB3HB)IBJB KBLBLBMBNBOBPBQBRBSBTBUBVBWBqXB\YBHZB3[B\B]B]B^B_Bf`B=aB bBbBcB\dBeBeBfB=gBgBhB)iBiB\jBjBqkBkB{lBlB\mB=.Bf.B.B.B.B)/Bq/B/B 0B\0B0B1B1B1Bq2B2Bf3B3B{4B 5B5BH6B6B7B=8B8B9B\:B;B;BB?B?B@BABBB{CBfDBHEB=FB)GBHB IBJBJBKBLBMBNBOBPBQBRBSBTBUB{VBfWB\XBHYB3ZB[B\B\B]B^B{_BR`B)aBaBbBcBHdBeBeBqfBgBgBqhBiBiBHjBjB\kBkB\lBlBHmB).BH.Bq.B.B.B /BR/B/B/B=0B0B1Bf1B1BR2B2BH3B3B\4B4B5B)6B6Bq7B8B8B9B=:B;B;BB?B?B@BAB{BB\CBHDB3EBFB GBHBHBIBJBKBLBMBNBOBPBQBRBSB{TBqUB\VBRWB=XB3YBZB[B[B\B]B^Bf_B=`B aBaBbBqcB3dBdBeB\fB gBgB\hBiBiB)jBjBHkBkBHlBlB3mB .B).BR.B{.B.B.B3/B{/B/B)0B0B0BH1B1B32B2B)3B3B=4B4Bf5B 6B6BR7B8B8Bf9B:B:B;BqB>B?B@B{AB\BB=CB)DBEBFBFBGBHBIBJBKBLBMBNBOBPB{QBqRBfSB\TBRUBHVB3WB)XBYBZBZB[B\B]Bq^BH_B`B`BaBbBRcBdBdBeBHfBfBgBHhBhBiBjBjB3kBkB3lBlBmB-B .B3.B\.B.B.B/B\/B/B 0Bf0B0B31B1B2B2B 3B3B4B4BH5B5B6B37B7B8BH9B :B:B;BRB?B{@B\AB=BB)CB DBDBEBFBGBHBIBJBKBLBMB{NBqOBfPBfQB\RBRSBHTB=UB)VBWB XBYBYBZB[B\B{]B\^B3_B `B`BaB{bB=cBdBdB{eB)fBfBgB)hBhBfiBjBjBkBkBlBlBmB-B-B.BH.B{.B.B.B=/B/B/BH0B0B1B{1B1Bq2B2B{3B4B4B)5B5Bq6B7B7Bq8B)9B9B:Bq;B3B?B\@B=ABBB CBCBDBEBFBGBHBIBJB{KBqLBfMB\NB\OBRPBHQB=RB3SB)TBUBVBWBWBXBYBZB[B\Bf]B=^B_B_B`BaB\bB)cBcBdB\eBfBfBqgBhBhBRiBiB{jBkBkBlB{lBlB-B-B-B).B\.B.B.B/Bq/B/B)0B0B0Bf1B1BR2B2B\3B3B{4B5B5BR6B6B7BR8B 9B9B:BR;BBf?BH@BAB BBBBCBDBEBFBGB{HBqIBfJB\KBRLBHMBHNB=OB3PB)QB)RBSBTB UBUBVBWBXBYBZB[Bf\BH]B)^B_B_B`B{aBHbB cBcBdBHeBfBfB\gBhBhB=iBiBfjBjBqkBkBflBlB-B-B-B .B=.B{.B.B /BR/B/B 0Bf0B0BH1B1B32B2B=3B3B\4B4B5B36B6B7B=8B8B9Bq:B3;BBH?B)@B ABABBBCBDBEB{FBqGBfHBRIBHJB=KB=LB3MB)NBOBPBQB RBSBSBTBUBVBWBXBYBZBq[BR\B3]B^B^B_B`BfaB3bBbBcB{dB3eBeBfBHgBgBhB)iBiBHjBjB\kBkBRlBlBq-B-B-B-B.B\.B.B.B3/B/B/BH0B0B)1B1B2B2B3B3B=4B4Bq5B6B6Bf7B8B8B9BR:B;B;BB)?B @B@BABBBCBDBqEBfFBRGBHHB=IB3JB)KBLBMB NB OBPBPBQBRBSBTBUBVBWBXBYBqZBR[B=\B]B]B^B_B{`BHaBbBbBcB\dBeBeBfB)gBgBqhB iBiB3jBjBHkBkB=lBlBR-Bq-B-B-B.B=.B{.B.B/Bq/B/B30B0B 1B{1B1B{2B3B3B4B4BR5B5B6BH7B8B8Bq9B3:B:B;BB ?B?B@BABBB{CBfDBREBHFB3GB)HBIBJB KBLBMBMBNBOBPBQBRBSBTBUBVBWB{XBqYBRZB=[B\B]B]B^B_Bf`B3aBbBbBcBHdBeBeBffBgBgB\hBhBiBjBjB)kBkBlBlB3-B\-B{-B-B-B.B\.B.B.BR/B/B0B{0B0B\1B1B\2B2Bq3B4B4B35B5B{6B)7B7B8BR9B:B:B;BqB>B?B@BAB{BB\CBHDB=EB)FBGB HBIBIBJBKBLBMBNBOBPBQBRBSBTBUBVB{WBfXBRYB=ZB)[B \B\B]B^B{_BR`BaBaBbBqcB3dBdBeBRfBgBgBHhBhB{iB jBjBkBkB lB{lB-B=-B\-B-B-B.BH.B.B.B3/B/B/B\0B0B=1B1B=2B2BR3B3B{4B5B5B\6B 7B7B{8B39B9B:B;BRB?B@BqAB\BBHCB3DBEB FBGBGBHBIBJBKBLBMBNBOBPBQBRBSBTB{UBqVB\WBRXB=YB)ZB [B[B\B]B^Bf_B3`B aBaBbB\cBdBdBeB=fBfBgB3hBhB\iBiB{jBkB{kBkBflB-B-BH-Bq-B-B-B).Bq.B.B/Bq/B/B=0B0B1B1B2B2B33B3B\4B4B5B=6B6B7B\8B9B9B:Bf;B3B?Bq@B\AB=BB)CBDBEBEBFBGBHBIBJBKBLBMBNBOBPBQB{RBqSBfTB\UBRVBHWB3XBYB ZBZB[B\B]Bq^BH_B`B`BaBbBHcBdBdBqeB)fBfB{gBhBhBHiBiBfjBjBfkBkBRlB,B-B)-BR-B-B-B .BR.B.B.BR/B/B0B0B1B{1B2B2B3B3B=4B4B{5B6B6B7B=8B8B9B:BH;BB{?B\@B=ABBB CBCBDBEBFBGBHBIBJBKBLBMBNB{OBqPBqQBfRB\SBRTBHUB=VB)WBXB YBYBZB[B\B{]B\^B3_B `B`BaBfbB)cBcBdB\eB fBfB\gBhBhB3iBiBRjBjBRkBkB=lB,B,B -B3-Bf-B-B-B3.B.B.B3/B/B0Bq0B0B\1B1Bf2B2B3B4B4B\5B 6B6Bf7B8B8B9Bf:B);B;BB\?B=@BABBBBBCBDBEBFBGBHBIBJB{KBqLBqMBfNB\OB\PBRQBHRB=SB3TB)UBVBWBXBXBYBZB[B\Bf]BH^B_B_B`BaBRbBcBcBdBHeBeBfBHgBgBhBiBiB3jBjB=kBkBlB,B,B,B-BH-B-B-B.Bf.B.B/B{/B/BR0B0B=1B1BH2B2Bf3B4B4B=5B5B6BH7B8B8B{9BH:B ;B;BB=?B@BABABBBCBDBEBFBGB{HBqIBfJB\KB\LBRMBHNBHOB=PB3QB3RB)SBTBUB VBVBWBXBYBZB[Bq\BR]B)^B_B_B`BqaB=bBcBcB{dB3eBeBfB3gBgBqhB iBiBjBjBkBkB lB,B,B,B,B)-Bf-B-B-BH.B.B.B\/B/B30B0B1B1B)2B2BH3B3B{4B5B5B{6B)7B7B8B\9B):B:B;BB?B@B@BABBBCBDBEBqFBfGB\HBRIBHJBHKB=LB3MB3NB)OB)PBQBRB SBTBTBUBVBWBXBYBZB{[B\\B3]B^B^B_B`B\aBbBbBcBfdBeBeBqfBgBgB\hBhB{iB jBjB kBkBkBf,B,B,B,B -BH-B-B-B).B{.B.B=/B/B0B0B1B1B 2B2B)3B3B\4B5B5B\6B 7B7B{8B=9B :B:B;BqB?B?B@BABBBCBqDBfEBRFBHGB=HB3IB3JB)KBLBMBNBOB PBQBRBRBSBTBUBVBWBXBYB{ZB\[B=\B]B]B^B_B{`BHaB bBbBcBHdBeBeB\fBgBgB=hBhBfiBiB{jBjBqkBkBH,Bf,B,B,B,B)-Bq-B-B .B\.B.B/B/B/Bf0B0Bf1B1B{2B 3B3B=4B4B5B=6B6B7B\8B9B9B:B;BRB>B?B@BAB{BBfCBRDBHEB=FB3GB)HBIBJB KB LBMBNBNBOBPBQBRBSBTBUBVBWBXB{YB\ZBH[B)\B ]B]B^B_B\`B)aBaBbB{cB3dBdBeBHfBfBgB)hBhBRiBiBfjBjB\kBkB),BH,Bq,B,B,B -BR-B-B-B=.B.B/Bf/B/BH0B0BH1B1B\2B2B3B4B4Bq5B6B6B7B=8B9B9B:Bf;B3B?B@BqAB\BBHCB=DB)EBFBGB HBIBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBqXB\YBHZB)[B \B\B]B^B{_BH`BaBaBbB\cBdBdBeB3fBfB{gBhBhB=iBiBHjBjB=kBkB ,B),BR,B{,B,B,B3-B{-B-B.B{.B.BH/B/B)0B0B)1B1B=2B2Bf3B4B4BR5B6B6Bf7B)8B8B9B{:BH;BB?Bq@BRAB=BB)CBDB EBFBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB{VBfWB\XBHYB3ZB[B[B\B]B^B\_B3`BaBaBbBHcBdBdBqeBfBfBfgBhBhB)iBiB3jBjB)kBkB+B ,B3,Bf,B,B,B-B\-B-B.B\.B.B)/B/B0B0B 1B1B2B2BR3B3B4B35B5B6BR7B 8B8B9Bf:B3;B B{?B\@BHAB3BBCB DBEBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTB{UBqVB\WBHXB3YBZB [B[B\B]B{^BR_B`B`BaB{bB=cBcBdB\eB fBfBRgBgBhBiBiBjBjBkBkB+B+B,BH,B{,B,B,B=-B-B-B=.B.B /B{/B/Bq0B0B{1B2B2B33B3Bq4B5B5B{6B37B7B8B{9BH:B;B;BB\?B=@B)ABBBCBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQB{RBqSBfTB\UBRVBHWB3XBYB ZBZB[B\B]Bf^B=_B `B`BaBfbBcBcBdBHeBeBfB=gBgBqhBiBiB jBjBkBqkB+B+B+B),B\,B,B,B-Bq-B-B.B.B.B\/B/BR0B0B\1B1B{2B3B3BR4B4B5B\6B7B7B8B\9B):B:B;BB=?B@B ABABBBCBDBEBFBGBHBIBJBKBLBMB{NB{OBqPBfQBfRB\SBRTBHUB=VB)WBXB YBYBZB[B\Bq]BR^B_B_B`BaBHbB cBcB{dB3eBeBfB)gBgB\hBhBqiBiBqjBjB\kB+B+B+B ,B=,B{,B,B-BR-B-B.Bf.B.B=/B/B30B0B31B1B\2B2B3B34B4B5B=6B6B7B{8B=9B :B:B;BB?B@B@BABBBCBDBEBFBGBHB{IBqJBqKBfLBfMB\NB\OBRPBRQBHRB=SB3TB)UBVBWBXBXBYBZB[B{\B\]B3^B _B_B`BqaB3bBbBcBfdBeBeBqfB gBgB=hBhB\iBiB\jBjBHkBq+B+B+B+B,B\,B,B,B3-B-B-BH.B.B/B/B0B0B1B1B=2B2Bq3B4B4Bf5B6B6B7B\8B9B9B:B;BfB?B?B@BABBBCBDB{EBqFBqGBfHB\IB\JBRKBRLBHMBHNB=OB=PB3QB3RB)SBTBUB VBVBWBXBYBZB[Bf\BH]B^B^B_B`B\aBbBbBcBRdBeBeBRfBfBgB)hBhBHiBiBHjBjB3kBR+Bq+B+B+B,B3,B{,B,B-Bf-B-B).B.B/B{/B/Bq0B0B1B2B2BR3B3B4BH5B6B6B{7B=8B9B9B:Bq;BHB>B?B@BABBB{CBqDBfEB\FBRGBHHBHIB=JB=KB3LB3MB)NB)OBPBQBRB SBTBTBUBVBWBXBYBZBq[BR\B)]B ^B^B_B{`B=aB bBbBcB=dBdBeB=fBfB{gBhBhB3iBiB3jBjBkB3+BR+B{+B+B+B,B\,B,B,BH-B-B .Bq.B.BR/B/BR0B0Bf1B2B2B33B3B{4B)5B5B6B\7B8B8B9B{:BR;B)B?B@BABqBB\CBRDBHEB=FB3GB)HB)IBJBKBLBMBNB OB PBQBRBRBSBTBUBVBWBXBYBqZB\[B3\B]B]B^B_Bf`B)aBaBbBqcBdBdBeB)fBfBfgBhBhBiBiBjBjBkB+B3+B\+B+B+B+B=,B,B,B)-B-B-BR.B.B3/B/B30B0BH1B1Bq2B3B3B\4B 5B5B{6B=7B8B8B9B\:B3;B B?B{@BfABRBBHCB3DB)EBFBGBHB IB JBKBLBLBMBNBOBPBQBRBSBTBUBVBWBXBqYB\ZB=[B\B]B]B^B{_BH`BaBaBbBRcB dBdBfeBfBfBRgBgB{hBiBiB jB{jBjB*B+B=+Bq+B+B+B,Bf,B,B -Bf-B-B3.B.B/B/B0B0B)1B1BR2B2B3B=4B4B5B\6B7B7B8Bq9B=:B;B;BBq?B\@BHAB3BB)CBDB EBFBGBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBqXB\YBHZB)[B \B\B]B^Bf_B3`BaBaBbB=cBcBdBReBfBfB=gBgBfhBhBqiBiBfjBjB*B*B+BH+B+B+B,BH,B,B,BH-B-B.B.B.Bq/B/B{0B 1B1B32B2B{3B4B4B5B=6B7B7B8BR9B:B:B;BBR?B=@B)ABBB CBDBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB{VBfWB\XBHYB)ZB [B[B\B]B{^BR_B`B`BaBfbB)cBcBdB=eBeBfBgBgBHhBhB\iBiBRjBjB*B*B+B)+Bf+B+B+B),B{,B,B)-B-B-Bf.B.BR/B/B\0B0B{1B2B2B\3B4B4Bf5B6B6B7Bf8B39B:B:B;BB3?B@B ABBBBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSB{TBqUBfVBRWB=XB)YBZBZB[B\B]Bf^B3_B`B`BaBRbBcBcB{dB)eBeBqfB gBgB3hBhBHiBiB=jBjB*B*B*B +BH+B{+B+B ,B\,B,B -Bq-B-BH.B.B3/B/B=0B0B\1B1B2B=3B3B4BH5B6B6B7BH8B9B9B:B;BqB?B@B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOB{PB{QBqRBfSB\TBRUBHVB=WB)XBYBYBZB[B\B{]BH^B_B_B`B{aB=bBbBcBfdBeBeB\fBfBgBhBhB3iBiB)jBjB{*B*B*B*B+B\+B+B+B=,B,B,BR-B-B).B.B/B/B0B0B=1B1B{2B3B3Bq4B)5B5B6Bf7B)8B8B9B:Bq;BRB?B?B@BABBBCBDBEBFBGBHB{IB{JBqKBqLBqMBqNBfOBfPB\QB\RBRSBHTB=UB3VBWB XBXBYBZB[B\B\]B3^B _B_B`BfaB)bBbBcBHdBdBeBHfBfB{gB hBhBiBiB jBjB\*B{*B*B*B+B=+B+B+B,Bq,B,B)-B-B .B{.B.B{/B0B0B1B1B\2B3B3BR4B 5B5B6BH7B 8B8B9B{:BR;B3B?B@BABBBCB{DB{EBqFBfGBfHB\IB\JB\KB\LBRMBRNBROBHPBHQB=RB3SB)TBUBVB WBWBXBYBZB[Bq\BH]B^B^B_B`BRaB bBbBcB3dBdBeB)fBfB\gBgB{hBiBiBiBfjB=*B\*B*B*B*B+Bf+B+B+BR,B,B -B{-B-B\.B.B\/B/Bq0B1B1B32B2B3B34B4B5Bf6B)7B7B8B9B\:B3;BB?B@BAB{BBqCBfDB\EBRFBRGBHHBHIB=JB=KB=LB=MB3NB3OB3PB)QB)RBSBTB UBVBVBWBXBYBZB{[BR\B3]B ^B^B_Bq`B3aBaBbBqcBdBdBqeBfBfBHgBgBfhBhBfiBiBRjB*B=*Bf*B*B*B+B=+B+B+B3,B,B,B\-B-B=.B.B=/B/BR0B0B{1B2B2Bf3B4B4B5B=6B 7B7B8Bq9B=:B;B;BB?B{@BfAB\BBRCBHDB=EB3FB3GB)HB)IB)JBKBLBMBNBOBPBQB RBSBSBTBUBVBWBXBYB{ZB\[B=\B]B]B^B_B\`BaBaBbBRcB dBdB\eBfBfB3gBgBRhBhBRiBiB=jB*B*BH*Bq*B*B*B+Bf+B+B,Bq,B,B3-B-B.B.B/B/B30B0B\1B1B2BH3B3B4Bf5B6B6B7B{8BR9B:B;B;BBq?B\@BHAB=BB3CB)DBEBFBGBHB IB JB KB LBMBNBOBOBPBQBRBSBTBUBVBWBXB{YBfZBH[B)\B]B]B^B{_B=`B aBaBbB=cBcBdBHeBeBfBgBgB=hBhB=iBiB)jB)B*B)*BR*B*B*B+BH+B+B+BH,B,B-B-B.B{.B.B/B 0B0B=1B1B{2B)3B3B4BH5B6B6B7B\8B39B:B:B;BBR?B=@B3ABBBCB DBEBFBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWB{XBfYBHZB3[B \B\B]B^B\_B)`B`BaBqbB)cBcBdB3eBeBqfB gBgB)hBhB)iBiBjB)B)B *B3*Bf*B*B*B)+B{+B+B),B,B,Bf-B-B\.B.Bf/B/B0B1B1B\2B 3B3Bq4B)5B5B6Bq7B=8B9B9B:B;B{B3?B@BABBBBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVB{WBfXBRYB3ZB[B[B\B]B{^BH_B`B`BaB\bBcBcBqdBeBeB\fBfBgB hBhBiBiBjB)B)B)B*BH*B*B*B +B\+B+B ,Bq,B,BH-B-B=.B.B=/B/Bf0B1B1B=2B2B3BH4B 5B5B6BR7B8B8B9B:B{;B\B?B@B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTB{UBqVB\WBHXB3YBZB[B[B\B]Bf^B3_B`B`BaB=bBbBcB\dBeBeBHfBfBqgBgB{hBiBqiBiB)B)B)B)B)*Bf*B*B*B=+B+B+BR,B,B)-B-B.B.B/B/BH0B0B{1B2B2B{3B)4B4B5Bf6B37B8B8B9B:B\;B=B>B?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRB{SBqTBfUB\VBHWB3XBYBZBZB[B\B{]BH^B_B_B`BqaB)bBbBcBHdBdBeB)fBfB\gBgBfhBhB\iBiBf)B)B)B)B *BH*B*B*B+Bq+B+B3,B,B -B{-B-B{.B/B/B0B0B\1B2B2B\3B 4B4B5BH6B7B7B8B9Bf:B=;BB?B@BABBBCBDBEBFBGBHBIB{JB{KB{LB{MB{NB{OBqPBqQBfRB\SB\TBRUB=VB3WBXBYBYBZB[B\B\]B3^B_B_B`BRaBbBbB{cB3dBdB{eBfBfB=gBgBRhBhBHiBiBH)Bf)B)B)B)B*Bf*B*B+BR+B+B,B{,B,B\-B-B\.B.Bq/B0B0B=1B1B2B=3B3B4Bf5B)6B6B7B8Bf9BH:B;BB?B@BABBB{CBqDBqEBfFBfGBfHBfIBfJBfKBfLB\MB\NB\OB\PBRQBRRBHSB=TB3UB)VBWBXBXBYBZB[Bq\BH]B^B^B_B{`B=aBbBbBfcBdBdBfeBfBfB)gBgB=hBhB3iBiB))BH)Bf)B)B)B*BH*B*B*B3+B+B+B\,B,B=-B-B=.B.BR/B/B{0B1B1Bf2B3B3B4BH5B 6B6B7Bq8BH9B):B;B;BB?B{@BqABfBB\CB\DBREBRFBHGBHHBHIBHJBHKBHLBHMBHNB=OB=PB=QB3RB)SB)TBUB VBWBWBXBYBZB{[B\\B3]B^B^B_Bf`B)aBaBbBRcBdBdBReBeBfBgBgB)hBhBiBiB)B)BH)Bq)B)B)B*Bf*B*B +Bf+B+B3,B,B-B-B.B.B)/B/B\0B0B1BH2B2B3Bf4B5B5B6B{7BR8B)9B:B:B;BBf?B\@BRABHBB=CB3DB3EB)FB)GB)HB)IB)JB)KB)LBMBNBOBPBQBRB SBTBTBUBVBWBXBYB{ZB\[B=\B]B]B^B_BH`B aBaBbB3cBcBdB3eBeBffBfBgB hBhBiBqiB(B)B))BR)B)B)B*BH*B*B*BH+B+B,B,B,Bq-B-B{.B /B/B30B0B{1B)2B2B3BH4B5B5B6B\7B38B 9B9B:B;BBH?B=@B3AB)BBCBDBEBFB GB HB IB JB KB LB MB NB OBPBQBQBRBSBTBUBVBWBXBYBfZBH[B\B\B]B^Bf_B3`B`BaBfbBcBcB{dBeBeBRfBfBqgBgBqhBhB\iB(B(B )B3)Bf)B)B)B)*B{*B*B)+B+B+Bf,B,BR-B-B\.B.B{/B0B0B\1B 2B2Bf3B)4B4B5Bq6B=7B8B8B9B:B;BfB)?B@BAB BBCBDBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBfYBRZB3[B \B\B]B^BR_B`B`BaBRbB cBcB\dBeBeB=fBfB\gBgB\hBhBHiB(B(B(B)BH)B)B)B *B\*B*B +Bf+B+BH,B,B3-B-B=.B.B\/B/B0B=1B1B2BH3B 4B4B5BR6B7B7B8B9B:Bf;BHB?B@B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBfXBRYB3ZB[B[B\B]Bq^B=_B`B`BaB=bBbBcBHdBdBeB)fBfB=gBgBHhBhB3iB(B(B(B(B))B\)B)B)B3*B*B*BH+B+B,B,B-B-B.B.B=/B/B{0B1B1Bq2B)3B3B4Bf5B36B7B7B8B9Bf:BH;B)B>B?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB{VBfWBRXB=YBZB[B[B\B]B\^B)_B_B`BqaB)bBbBcB3dBdBqeB fBfB)gBgB3hBhBiBf(B(B(B(B )B=)B)B)B*Bq*B*B)+B+B,B{,B,Bq-B.B.B/B/BR0B1B1BR2B 3B3B4BH5B6B6B7B8Bf9BH:B);B B?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSB{TBqUB\VBRWB=XBYB ZBZB[B\Bq]B=^B _B_B`B\aBbBbBqcBdBdB\eBeBfBgBgBhBhB iBH(Bf(B(B(B(B)B\)B)B)BH*B*B +Bq+B+BR,B,BR-B-Bf.B/B/B30B0B1B32B2B3Bf4B)5B5B6B7Bq8BH9B):B ;B;BB?B@BABBBCBDBEB{FB{GB{HB{IBJBKBLBMBNB{OB{PB{QBqRBqSBfTBRUBHVB3WBXB YBYBZB[B\B\]B)^B^B_B`B=aBaBbB\cB dBdBHeBeBqfBgBgB hB{hBhB)(B=(Bf(B(B(B)B=)B)B)B)*B*B*BR+B+B3,B,B3-B-BH.B.B{/B0B0Bf1B2B2B3BH4B 5B5B6B{7BR8B)9B :B:B;BB?B{@B{ABqBBfCBfDBfEBfFBfGBfHBfIBfJBfKBfLBfMBfNBfOBfPB\QB\RBRSBHTB=UB3VBWB XBXBYBZB[Bq\B=]B^B^B_Bf`B)aBaBbBHcBcBdB3eBeB\fBfBqgBgBfhBhB(B(BH(Bq(B(B(B)Bf)B)B *Bf*B*B3+B+B,B,B-B-B).B.BR/B/B0BH1B1B2Bf3B)4B4B5B6B\7B38B 9B9B:B;BBq?Bf@B\ABRBBRCBHDBHEBHFBHGBHHBHIBHJBHKBHLBHMBHNBHOBHPBHQB=RB=SB3TB)UBVBWBWBXBYBZB{[BR\B)]B^B^B_BR`BaBaBbB3cBcB{dBeBeBHfBfB\gBgBRhBhB'B(B)(BR(B(B(B)BH)B)B)BH*B*B+B{+B+Bq,B,B{-B .B.B3/B/B{0B)1B1B2BH3B 4B4B5Bf6B37B 8B8B9B:B;B{BR?BH@B=AB3BB3CB)DB)EB)FB)GB)HB)IB)JB3KB3LB3MB3NB3OB)PB)QB)RBSBTB UBVBVBWBXBYBZBf[B=\B]B]B^B{_B=`BaBaBfbBcBcBfdB eBeB3fBfBHgBgB=hBhB'B'B (B3(Bf(B(B(B))Bq)B)B)*B*B*B\+B+BR,B,B\-B-B{.B/B/B\0B1B1Bf2B)3B3B4B{5BH6B7B7B8B9B:Bq;B\B3?B)@BABBBCBDB EB FB GB HBIBJBKBLBMBNBOBPBQB RBSBTBTBUBVBWBXBYBqZBH[B)\B]B]B^Bf_B)`B`BaBRbBcBcBRdBdBeBfBfB3gBgB)hBhB'B'B'B(BH(B{(B(B )BR)B)B*Bf*B*B=+B+B3,B,B=-B-B\.B.B/B=0B0B1BH2B 3B3B4B\5B)6B6B7B8B9Bq:BR;B=B?B @BABABBBCBDBEBFBGBHBIBJBKBLBNBNBOBPBQBRBSBTBUBVBWBXBqYBRZB3[B \B\B]B^BH_B `B`BaB=bBbBcB=dBdBqeB fBfBgBgBhBhB'B'B'B'B(B\(B(B(B3)B)B)BH*B*B+B+B ,B,B-B-B=.B.Bq/B0B0Bq1B)2B2B3Bq4B35B 6B6B7B8Bq9BR:B3;BB>B?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWB{XB\YB=ZB[B[B\B]Bf^B3_B_B`BqaB)bBbBcB)dBdB\eBeB{fBgBgBhBqhBf'B'B'B'B(B=(B{(B(B)Bf)B)B)*B*B+Bq+B+Bq,B,B-B.B.BR/B/B0BR1B 2B2B3BH4B5B5B6B7Bq8BR9B3:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBqWB\XBHYB)ZB[B[B\B]BR^B_B_B`B\aBbBbBfcB dBdBHeBeBffBfBqgBgB\hB='B\'B'B'B'B(B\(B(B(BH)B)B*Bq*B*BR+B+BR,B,Bf-B-B.B3/B/B0B31B1B2Bf3B)4B4B5B6Bq7BR8B39B:B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTB{UBqVB\WBHXB)YB ZBZB[B\Bq]B=^B _B_B`BHaBaBbBRcBcBdB3eBeBRfBfBRgBgB=hB'B='Bf'B'B'B'B=(B(B(B))B)B)BH*B*B3+B+B),B,BH-B-Bq.B/B/Bf0B1B1B2BH3B 4B4B5B{6BR7B38B 9B9B:B;BB?B@BABBB{CB{DB{EB{FBGBHBIBJBKBLBMBNBOBPBQBRB{SBqTBfUBRVBHWB)XBYBYBZB[B\B\]B)^B^B_Bq`B)aBaBbB=cBcBdBeBeB=fBfB=gBgB)hB'B'BH'Bq'B'B'B(Bf(B(B)B\)B)B)*B*B +B+B ,B,B-B-BR.B.B/B=0B0B1Bf2B)3B3B4B5B\6B37B 8B8B9B:B;BBq?Bf@BfABfBB\CB\DBfEBfFBfGBfHBfIBqJBqKBqLBqMBqNBqOBqPBqQBfRBfSB\TBRUB=VB)WBXBXBYBZB[Bq\B=]B ^B^B_B\`BaBaB{bB)cBcBqdBeBeB)fBfB)gBgBhB&B'B'BR'B{'B'B'B=(B(B(B=)B)B *B{*B*Bf+B+Bq,B-B-B3.B.Bq/B0B0B1BH2B3B3B4Bf5B=6B7B7B8B9B:B;B{BR?BR@BHABHBBHCBHDBHEBHFBHGBHHBRIBRJBRKB\LB\MB\NB\OB\PBRQBRRBHSB=TB3UB)VBWBXBXBYBZB{[BR\B)]B]B^B_BH`BaBaBfbBcBcBRdBdBeB fBfBgBgBhB&B&B'B)'B\'B'B'B(Bq(B(B)B{)B)B\*B*BH+B+BR,B,Bq-B .B.BR/B0B0Bf1B2B2B3B{4BH5B6B6B7B8B9B{:Bf;B\B3?B3@B)AB)BB)CB)DB)EB)FB)GB3HB3IB3JB=KB=LB=MB=NB=OB=PB=QB3RB3SB)TBUB VBVBWBXBYBZBf[B=\B]B]B^Bq_B3`B`BaBRbBbBcB=dBdBqeBeB{fBgB{gBgB&B&B&B 'B='B{'B'B(BH(B(B)B\)B)B3*B*B)+B+B3,B,BR-B-B.B3/B/B0BH1B2B2B3B\4B)5B6B6B7B8B{9B\:BH;B=B?B@B AB BB CB DB EB FBGBHBIBJBKBLB)MB)NB)OB)PBQBRBSB TBUBUBVBWBXBYBqZBR[B)\B\B]B^B\_B`B`BaB=bBbBcB)dBdBReBeBffBfBfgBgB{&B&B&B&B'BR'B'B'B)(B{(B(B=)B)B*B*B +B+B,B,B3-B-Bq.B/B/Bq0B)1B1B2Bf3B34B 5B5B6B7Bq8BR9B=:B);BB>B?B@BABBBCBDBEBFBGBIBJBKB LB MB NB OB PB QBRBSBSBTBUBVBWBXB{YB\ZB3[B\B\B]B{^B=_B`B`BqaBbBbBqcBdBdB=eBeBRfBfBRgBgB\&B{&B&B&B'B3'Bq'B'B (B\(B(B)B)B)Bf*B*Bf+B+B{,B-B-BH.B.B/BR0B1B1B2BH3B4B4B5B6Bq7BR8B39B:B ;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBfYBHZB[B[B\B]Bf^B)_B_B`B\aB bBbB\cBdBdB)eBeB=fBfB3gBgB=&B\&B{&B&B&B'BR'B'B'B=(B(B(Bf)B)BH*B*BH+B+B\,B,B-B).B.B{/B)0B0B1Bf2B)3B3B4B5Bq6BR7B38B9B:B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBfXBHYB)ZB [B[B\B]BR^B_B_B`BHaBaBbBHcBcBdBeBeB)fBfBgBgB&B=&B\&B&B&B&B3'B{'B'B(B{(B(B=)B)B)*B*B+B+B=,B,Bf-B .B.B\/B 0B0B{1B=2B 3B3B4B{5BR6B37B8B8B9B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB{VBfWBRXB3YBZBZB[B\Bf]B3^B_B_B{`B3aBaBbB3cBcBfdBeBeBfBfB gB{gB%B&B=&Bf&B&B&B 'BR'B'B'BR(B(B)B)B*B{*B+B+B,B,B=-B-B.B3/B/B0BR1B2B2B3B{4BR5B)6B 7B7B8B9B:B;BBq?Bq@BqABqBBqCBqDBqEB{FB{GBHBIBJBKBLBMBNBOBPBQBRBSB{TBqUB\VBHWB3XBYBYBZB[B{\BH]B^B^B_B\`BaBaBqbBcBcBRdBdBqeBeB{fBfBfgB%B%B&B=&Bq&B&B&B3'B'B'B3(B(B(Bf)B)B\*B*Bf+B+B,B-B-Bf.B/B/B{0B31B1B2B3B\4B35B 6B6B7B8B9B:B{;BfBR?BR@BRABRBBRCBRDBREB\FB\GBfHBfIBqJBqKB{LB{MB{NB{OB{PB{QBqRBfSB\TBRUB=VB)WBXBXBYBZB[Bf\B3]B^B^B_BH`B`BaB\bBcBcB3dBdB\eBeBffBfBRgB%B%B%B&BR&B&B&B'B\'B'B (Bq(B(BH)B)B3*B*B=+B+Bf,B-B-BH.B.B/B\0B1B1B2Bf3B=4B5B5B6B7B8B{9Bf:BR;BHB3?B3@B3AB3BB3CB3DB=EB=FBHGBHHBRIBRJB\KB\LB\MB\NB\OB\PB\QB\RBRSBHTB=UB)VBWBXBXBYBZB{[BH\B]B]B^Bq_B)`B`BaB=bBbBcBdBdBHeBeBHfBfB=gB%B%B%B&B3&Bf&B&B&B='B'B'BR(B(B))B)B*B*B+B+B=,B,B{-B.B.B{/B30B0B1B{2BH3B4B4B5B6B7Bq8B\9BH:B3;B)B?B@BABBBCBDBEBFB)GB)HB3IB3JB=KB=LBHMBHNBHOBHPBHQB=RB3SB)TBUBVBWBWBXBYBZB\[B3\B ]B]B^B\_B`B`B{aB)bBbBqcB dBdB3eBeB3fBfBgBq%B%B%B%B &BH&B&B&B'Bq'B'B)(B(B)B{)B)Bq*B+B+B,B,B\-B.B.B\/B0B0B1B\2B)3B3B4B5B6Bf7BR8B=9B):B;B B>B?B@BABBBCBEBFB GBHBIBJBKB)LB)MB)NB)OB)PB)QB)RBSBTB UBUBVBWBXBYBqZBH[B\B\B]B^B=_B`B`BfaBbBbB\cBcBdBeBeBfBfB gBR%Bq%B%B%B%B)&Bf&B&B&BR'B'B (Bq(B(BR)B)BR*B*Bf+B,B,B=-B-B.B=/B/B0Bq1B=2B 3B3B4B5Bf6BH7B38B9B :B:B;BB?B@BABBBCBDBEBFBGBHBJBKB LB MBNBOBPBQB RBSBTBTBUBVBWBXB{YB\ZB3[B \B\B]Bf^B)_B_B`BRaBbBbBHcBcBqdBeBeB fBfBfB3%BR%Bq%B%B%B&BH&B&B&B)'B'B'BR(B(B3)B)B3*B*BH+B+B{,B-B-Bf.B/B/B0BR1B2B2B3B4Bf5BH6B)7B8B8B9B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBfYB=ZB[B[B\B]BR^B_B_B`B=aBaBbB3cBcB\dBdBqeBeBqfBfB%B)%BR%B{%B%B%B&Bf&B&B 'Bf'B'B)(B(B)B)B *B*B)+B+BR,B,B-BH.B.B/Bq0B31B1B2B3Bq4BH5B)6B 7B7B8B9B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBfXBHYB)ZB[B[B\Bq]B=^B_B_Bq`B)aBaB{bBcBcBHdBdB\eBeB\fBfB$B %B)%BR%B%B%B&BH&B&B&B='B'B (B{(B(Bf)B)Bq*B+B+B3,B,B{-B).B.B/BH0B 1B1B2B{3BH4B)5B 6B6B7B8B9B:B;BB{?B{@B{ABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBfWBRXB3YBZBZB[B\B\]B)^B^B_B\`B aBaBfbBcBcB3dBdBHeBeBHfBfB$B$B %B3%Bf%B%B%B&Bq&B&B'B'B'B\(B(BH)B)BR*B*Bq+B,B,B\-B.B.Bq/B)0B0B1B2BR3B)4B 5B5B6B7B8B9B{:Bq;BfB\?B\@B\ABfBBfCBqDBqEB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBTB{UBfVBRWB3XBYBYBZB[B{\BH]B ^B^B_BH`B`BaBHbBbBcBdBdB3eBeB3fBfB$B$B$B%BH%B{%B%B&BR&B&B'B\'B'B3(B(B))B)B3*B*BR+B+B,B3-B-B.BH/B 0B0B1Bf2B33B 4B4B5B6B7B{8Bf9B\:BR;BHB=?B=@B=ABHBBHCBRDBREB\FBfGBqHBqIB{JBKBLBMBNBOBPBQBRB{SBqTBfUBRVB=WBXBYBYBZB[Bf\B3]B]B^B{_B3`B`BaB3bBbBqcB dBdBeBeBfBfB$B$B$B$B%B\%B%B%B)&B{&B&B='B'B(B(B)B)B *B*B3+B+Bq,B-B-Bq.B)/B/B0Bq1B=2B3B3B4B5B6Bq7B\8BH9B=:B3;B)B?B@BAB)BB)CB3DB=EB=FBHGBRHB\IB\JBfKBfLBqMBqNBqOBqPBqQBfRBfSB\TBHUB3VBWB XBXBYBZB{[BH\B]B]B^B\_B`B`B{aBbBbB\cBcB{dB eBeBfB{fBf$B$B$B$B%B3%B{%B%B &B\&B&B'B'B'Bf(B(Bf)B)B{*B +B+BH,B,B-BR.B /B/B0BR1B2B2B3B4B5Bf6BR7B=8B)9B:B;B B?B@BAB BB CBDBEB)FB)GB3HB=IBHJBHKBRLBRMBRNB\OB\PBRQBRRBHSB=TB3UBVB WBWBXBYBZB\[B3\B]B]B^BH_B`B`BfaB bBbBHcBcBfdBdBqeBeBffBH$B\$B$B$B$B%BR%B%B%B=&B&B&B\'B'BH(B(B=)B)B\*B*B+B),B,B{-B).B.B/Bf0B31B2B2B3B4Bf5BH6B)7B8B 9B:B:B;BB?B@BABBBCBEB FB GBHBIB)JB)KB3LB=MB=NB=OB=PB=QB3RB3SB)TBUBVBVBWBXBYBqZBH[B\B\B]Bq^B3_B_B`BHaBaBbB3cBcBRdBdB\eBeBHfB$B=$B\$B$B$B$B3%B{%B%B&Bq&B&B='B'B(B(B)B)B3*B*Bf+B ,B,B\-B .B.B/BH0B 1B1B2B3B\4B=5B)6B 7B7B8B9B:B;BB?B@BABBBCBDBEBFBHBIB JBKBLBMBNBOBPBQBRBSB TBUBUBVBWBXBYB\ZB3[B\B\B]B\^B_B_B`B3aBaB{bBcBcB=dBdBHeBeB3fB$B$B=$Bf$B$B$B %BR%B%B%BR&B&B'B'B(B{(B)B)B*B*B=+B+B,B3-B-B.B\/B0B0B1B2Bf3B=4B5B6B6B7B8B9B:B;BB?B@BABBBCBDBEBFBGBHBIBJBLBMB NB OB PB QBRBSBSBTBUBVBWBXBfYBHZB[B[B\B]BH^B_B_Bq`BaBaBfbBcBcB)dBdB3eBeBfB#B#B$BH$Bq$B$B$B3%B{%B%B)&B&B&Bf'B'BR(B(B\)B)B*B+B+Bf,B-B-B{.B=/B0B0B1Bq2BH3B4B5B5B6B7B8B9B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBqXBRYB)ZB[B[B\Bq]B3^B^B_B\`B aBaBRbBbBcBdBdBeBeB fB#B#B#B$BR$B$B$B %B\%B%B &Bq&B&B='B'B3(B(B=)B)Bf*B+B+BH,B,B-B\.B/B/B0B{1BH2B3B4B4B5B6B7B8B{9Bq:Bq;BfBf?Bq@BqAB{BBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBqWB\XB=YBZBZB[B\BR]B^B^B_BH`B`BaB=bBbBqcBdBdB eBeBeB#B#B#B$B3$Bf$B$B$B=%B%B%BH&B&B'B'B(B(B)B)B=*B*B{+B,B,B-B=.B.B/B0BR1B)2B3B3B4B5B6B{7Bf8B\9BR:BH;BHBH?BR@BRAB\BBfCBqDB{EB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBqVB\WB=XBYBZBZB[Bq\B=]B^B^B{_B)`B`BaB)bBbB\cBcBqdBdBqeBeB{#B#B#B#B $BH$B$B$B%Bf%B%B)&B&B'Bq'B'Bq(B(B)B*B*B\+B,B,B\-B.B.B/Bf0B31B 2B2B3B4B5Bf6BR7BH8B=9B3:B);B)B)?B3@B3AB=BBHCBRDB\EBfFBqGB{HB{IBJBKBLBMBNBOBPBQBRBSB{TBqUB\VBHWB)XB YBYBZB[B\\B)]B]B^Bf_B`B`BqaBbBbB=cBcB\dBdB\eBeBR#Bq#B#B#B#B$B\$B$B$BH%B%B&Bf&B&BR'B'BH(B(Bf)B)B*B3+B+B,B=-B-B.B{/BH0B1B1B2B3B{4B\5BH6B37B)8B9B:B ;B B ?B@BABBB)CB3DB=EBHFBRGB\HBfIBqJBqKB{LB{MBNBOBPBQB{RBqSBfTBRUBHVB)WBXBXBYBZB{[BH\B]B]B^BH_B`B`B\aBaBbB)cBcBHdBdB=eBeB3#BH#Bq#B#B#B$B=$B$B$B%B{%B%BH&B&B)'B'B)(B(B=)B)Bq*B+B+Bf,B-B-B.BR/B0B0B1B2B{3B\4B=5B)6B7B 8B8B9B:B;BB?B@BBB CBDBEB)FB3GB=HBHIBRJB\KB\LBfMBfNBfOBfPBfQBfRB\SBRTB=UB)VBWBWBXBYBZB\[B3\B\B]B{^B3_B_B`B=aBaBbBcBcB3dBdB)eBeB#B)#BH#Bq#B#B#B$B\$B$B%B\%B%B)&B&B 'B'B (B(B)B)BR*B*B+BH,B,B-Bq.B3/B0B0B1B{2BR3B34B5B 6B6B7B8B9B:B;BB?B@BABBBCBEB FBGBHB)IB3JB=KBHLBHMBRNBROBRPBRQBHRB=SB3TB)UBVBVBWBXBYBqZBH[B\B\B]Bf^B_B_B`B)aBaBfbBcBcBdBdBeBeB"B #B)#BR#B#B#B#B=$B$B$B3%B%B&Bq&B&B\'B'Bq(B(B)B)*B*Bq+B,B,B-BR.B/B/B0B1B\2B33B4B5B5B6B7B8B9B:B;BB?B@BABBBCBDBEBFBHB IBJBKB)LB3MB3NB3OB3PB3QB3RB)SBTB UBUBVBWBXBYB\ZB3[B\B\B]BR^B _B_Bq`BaBaBRbBbB{cBdBdBeB{eB"B"B#B)#B\#B#B#B$B\$B$B %Bq%B%BH&B&B3'B'B=(B(Bf)B*B*BH+B+B,Bf-B.B.B/B{0BR1B)2B 3B3B4B5B6B7B8B9B:B{;B{B?B@BABBBCBDBEBFBGBHBIBJBLB MB NBOBPB QB RBSBSBTBUBVBWBXBfYB=ZB[B[B\Bq]B3^B^B_BH`B`BaB3bBbB\cBcBfdBdB\eB"B"B"B#B3#Bf#B#B#B=$B$B$BH%B%B&B&B'B'B(B(B=)B)B{*B)+B+B,B=-B.B.B/B\0B31B 2B2B3B4B5B6B{7Bq8Bf9B\:B\;B\Bq?Bq@B{ABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBqXBHYB)ZBZB[B\B\]B^B^B_B3`B`BaBbBbBHcBcBRdBdBHeB{"B"B"B"B#BH#B#B#B$Bf$B$B)%B%B&Bq&B&Bq'B'B(B)B)B\*B+B+Bf,B-B-B.Bf/B=0B 1B1B2B3B4B{5Bf6B\7BR8BH9B=:B=;B=BR?BR@B\ABfBBqCB{DBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBqWBRXB3YB ZBZB[B{\B=]B^B^Bq_B`B`BqaB bBbB3cBcB=dBdB)eB\"Bq"B"B"B"B)#Bf#B#B#BH$B$B%Bf%B%BR&B&BH'B'Bf(B(B)B3*B*B+B=,B,B-B{.BH/B0B0B1B2B3Bf4BR5BH6B37B)8B)9B:B;BB3?B3@B=ABHBBRCBfDBqEB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBqVB\WB=XBYBYBZB[Bf\B)]B]B^B\_B `B`BRaBaBbBcBcB)dBdBeB3"BR"Bq"B"B"B#B=#B#B#B)$B{$B$BH%B%B)&B&B)'B'B=(B(Bq)B*B*Bf+B,B,B-B\.B)/B/B0B1B2Bf3BH4B35B6B7B 8B9B:B;BB?B@BAB)BB=CBHDBREB\FBfGBqHBIBJBKBLBMBNBOBPBQBRBSBTBqUB\VBHWB)XBYBYBZB[BH\B]B]B^BH_B_B`B=aBaBqbB cBcBdBdBeB"B3"BR"B{"B"B"B#B\#B#B$B\$B$B%B%B &B&B'B'B(B(BR)B)B*BH+B+B,Bq-B3.B/B/B0B1B\2B=3B)4B5B6B6B7B8B9B:B;BB?BAB BBCB)DB3EB=FBRGB\HBfIBqJB{KB{LBMBNBOBPBQBRB{SBfTB\UBHVB)WB XBXBYBZBf[B3\B]B]B{^B)_B_B`B)aBaB\bBbB{cBdB{dBdB!B "B)"BR"B"B"B"B=#B#B#B3$B$B%Bq%B%B\&B&Bf'B'B(B))B)Bq*B+B+B,BR-B.B.B/B0B\1B=2B3B 4B4B5B6B7B8B9B:B;BB?B@BABCB DBEBFB3GB=HBHIBRJB\KBfLBfMBqNBqOBqPBqQBfRB\SBRTB=UB)VBWBWBXBYBZBR[B\B\B]B\^B_B_Bq`BaBaBHbBbBfcBcBfdBdB!B!B "B3"B\"B"B"B#Bf#B#B$Bq$B$BH%B%B=&B&BH'B'Bf(B )B)BR*B+B+Bq,B)-B-B.B/Bf0B=1B2B3B3B4B5B6B7B8B9B:B;BB?B@BABBBCBDB FBGBHB)IB3JB=KBHLBRMBRNB\OB\PBRQBRRBHSB=TB)UBVBVBWBXBYBfZB=[B \B\B]BH^B_B_B\`BaBaB3bBbBRcBcBRdBdB!B!B!B "B="Bq"B"B"B=#B#B#BR$B$B)%B%B&B&B'B'BH(B(B)B)*B*B+BH,B -B-B.Bq/B=0B1B1B2B3B4B5B6B7B8B{9B{:B;BB?B@BABBBCBDBEBFBHBIBJB)KB)LB3MB=NB=OB=PB=QB3RB)SBTB UBUBVBWBXB{YBRZB)[B[B\B{]B3^B^B_BH`B`BaBbBbB=cBcB=dBdB!B!B!B!B"BR"B"B"B#Bq#B#B)$B$B%B{%B%Bq&B'B'B(B(B\)B *B*Bq+B),B,B-B{.BH/B0B0B1B2B3B4B{5Bq6Bf7Bf8B\9B\:Bf;BfB{?B@BABBBCBDBEBFBGBHBJB KBLBMBNBOB)PBQBRBSB TBTBUBVBWBXBfYB=ZB [B[B\Bf]B^B^B_B3`B`BqaB bBbBcBcBdBdBf!B{!B!B!B!B)"Bf"B"B"BH#B#B $Bq$B$BR%B%BR&B&Bf'B(B(B=)B)B*BH+B,B,B-BR.B)/B0B0B1B2B{3Bq4B\5BR6BH7B=8B=9B=:B=;BHB\?Bq@B{ABBBCBDBEBFBGBHBIBJBKBMB NB OB PB QBRBRBSBTBUBVBWBqXBRYB)ZBZB[B\BH]B ^B^Bq_B`B`B\aBaBbB cBcB dBdB=!B\!B{!B!B!B "BH"B"B"B)#B#B#BH$B$B3%B%B)&B&BH'B'B{(B)B)Bq*B)+B+B,Bf-B3.B/B/B0B1Bq2B\3BH4B=5B36B)7B8B9B:B;B)B=?BR@B\ABfBBqCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVB{WB\XB3YB ZBZB[Bq\B3]B]B^B\_B`B`BHaBaBqbBbB{cBcBqdB!B3!BR!B{!B!B!B"Bf"B"B#B\#B#B)$B$B %B%B &B&B'B'BR(B(B)BH*B+B+B{,BH-B .B.B/B0Bq1BR2B=3B)4B5B 6B7B8B9B:B;B B?B3@B=ABHBB\CBfDBqEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBfWBHXBYBYBZB[B\\B]B]B^B=_B_B`B3aBaB\bBbBfcBcB\dB B!B3!B\!B!B!B"B="B"B"B=#B#B$Bq$B$Bf%B%Bq&B'B'B3(B(B{)B)*B*B+B\,B-B-B.B/Bq0BR1B32B3B 4B4B5B6B7B8B9B:B;BB?BAB BBCB)DB=EBHFB\GBfHBqIB{JBKBLBMBNBOBPBQBRBSB{TBfUBRVB3WBXBXBYBZBf[B)\B\B]Bf^B_B_Bf`BaBaB)bBbB=cBcB)dB B B B!B=!B{!B!B!BH"B"B"BR#B#B)$B$B%B%B)&B&BH'B'B(B3)B)B*BR+B,B,B-B{.BR/B)0B 1B1B2B3B4B5B6B7B8B9B:B;BB?B@BABCB DBEB)FB=GBHHB\IBfJBqKB{LB{MBNBOBPBQB{RBqSB\TBRUB3VBWBXBXBYBZBR[B\B\B]BR^B_B_BR`B`BaBbBbB)cBcBdB B B B B!BR!B!B!B"Bq"B"B)#B#B$B{$B$B{%B&B&B)'B'Bf(B )B)Bq*B)+B+B,B-BR.B)/B 0B0B1B2B3B4B5B{6B{7B{8B{9B:B;BB?B@BABBBCBEBFBGB)HB=IBHJBRKB\LBfMBfNBqOBqPBfQB\RBRSBHTB3UBVBWBWBXBYBfZB3[B\B\B{]B3^B^B_B=`B`BqaBbBbBcBcBdBf B B B B B)!Bf!B!B"BR"B"B #Bq#B#BR$B$BR%B%Bq&B'B'B=(B(B)BR*B +B+B,B\-B3.B /B/B0B1B2B{3Bq4Bf5B\6B\7B\8B\9B\:Bf;BqB?B@BABBBCBDBEBGBHBIB)JB3KB=LBHMBRNBROBRPBRQBHRB=SB3TBUB VBVBWBXB{YBRZB[B[B\Bf]B^B^B{_B`B`B\aBaB{bBcB{cBcBH B\ B{ B B B !BH!B!B!B)"B"B"BH#B#B3$B$B3%B%BH&B&B{'B(B(Bq)B)*B*B+Bq,B=-B .B.B/B0B1Bq2B\3BR4BH5B=6B=7B=8B=9B=:BH;BRBq?B@BABBBCBDBEBFBGBIBJBKB)LB3MB3NB3OB3PB3QB)RBSBTBUBUBVBWBXBfYB=ZB [B[B\BR]B ^B^Bf_B `B`BHaBaBfbBbBfcBcB B= B\ B B B B!Bf!B!B"B\"B"B)#B#B $B$B %B%B&B&BR'B'B(BR)B *B*B+BH,B-B-B.B/B{0Bf1BH2B=3B)4B5B6B7B8B9B:B);B3BR?Bf@BqABBBCBDBEBFBGBHBIBKB LBMBNBOBPBQBRB SBTBTBUBVBWB{XBRYB)ZBZB[B{\B=]B]B^BR_B_B`B3aBaBHbBbBRcBcB B B3 B\ B B B!B=!B!B!B="B"B#Bq#B#Bf$B$Bq%B&B&B3'B'B{(B))B)B*B\+B),B,B-B.B{/B\0B=1B)2B3B 4B5B5B6B7B8B:B ;BB3?BH@BRABfBB{CBDBEBFBGBHBIBJBKBLBNBOBPBQBQBRBSBTBUBVBWB\XB=YB ZBZB[Bf\B)]B]B^B=_B_B`BaBaB3bBbB=cBcBBB B3 Bf B B B!Bf!B!B"Bq"B"BH#B#B=$B$BH%B%Bq&B 'B'B\(B )B)B{*B=+B,B,B-B{.BR/B30B1B 2B2B3B4B5B6B7B8B9B:B;B=B >B?B)@B3ABHBB\CBqDB{EBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBqWBHXBYBYBZB[BR\B ]B]B{^B)_B_Bf`BaBaBbBbBcBcBBBB B= B{ B B BH!B!B!BR"B"B)#B#B$B$B)%B%BH&B&B'B3(B(B)BR*B+B+B,B{-BR.B3/B0B0B1B2B3B4B5B6B7B8B9B:B;BB @BAB)BB=CBRDB\EBqFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBqVBRWB3XB YBYBZBq[B=\B\B]Bf^B _B_BR`B`BaB bBbB cBcBBBBB BR B B B!Bq!B!B)"B"B#B{#B#Bq$B%B%B)&B&Bf'B (B(Bq)B3*B*B+B,B\-B3.B /B/B0B1B2B3B4B5B6B7B8B9B:B;BB?BAB BBCB3DBHEBRFBfGBqHBIBJBKBLBMBNBOBPBQBRBSBTBqUB\VB=WBXBXBYBZB\[B\B\B]BH^B^B_B=`B`BfaBaB{bBbBqcBqBBBBB) Bf B B BH!B!B "Bq"B"BR#B#BR$B$Bf%B&B&B='B'B(BR)B *B*B+B\,B3-B .B.B/B0B1B2B{3Bq4Bq5Bq6Bq7Bq8B{9B:B;BB?B@BABCB DBEB3FBHGBRHBfIBqJB{KBLBMBNBOBPBQBRB{SBfTBRUB=VBWBXBXBYB{ZBH[B \B\B]B3^B^B_B)`B`BRaBaBfbBbB\cBHB\B{BBB BH B B B)!B!B!BH"B"B)#B#B)$B$BH%B%B{&B'B'Bq(B))B)B*Bq+B=,B-B-B.B/B0B{1Bf2B\3BR4BH5BH6BH7BR8BR9B\:Bf;B{B?B@BABBBCBEBFB)GB3HBHIBRJB\KBqLBqMB{NB{OB{PB{QBqRBfSBRTB=UB)VB WBWBXBYBfZB3[B[B\Bf]B^B^Bq_B`B`B=aBaBRbBbBHcB)B=B\BBBB Bf B B!B\!B!B"B"B #B#B$B$B%B%BR&B&B'BR(B)B)B*BH+B,B,B-B.B/Bf0BR1BH2B33B34B)5B)6B)7B38B39B=:BH;B\B?B@BABBBCBDBEB GBHB)IB=JBHKBRLB\MB\NBfOB\PB\QBRRBHSB=TB)UB VBVBWBXB{YBRZB[B[B\BR]B ^B^B\_B`B`B)aBaB=bBbB3cBBB3B\BBBB= B B B3!B!B"Bf"B"B\#B#Bf$B$B%B)&B&B{'B)(B(B)B\*B)+B+B,B-B{.B\/BH0B31B2B3B 4B 5B 6B 7B 8B9B:B);B3Bf?B{@BABBBCBDBEBFBHB IBJB)KB3LB=MBHNBHOBHPBHQB=RB3SBTB UBUBVBWBXBfYB3ZB[B[B\B=]B]B^BH_B_B`BaBaB)bBbBcBBBB3BfBBB Bf B B!Bq!B!BH"B"B3#B#BH$B$Bf%B &B&BR'B(B(B{)B=*B+B+B,B{-B\.B=/B0B 1B2B2B3B4B5B6B7B8B:B ;BBH?B\@BqABBBCBDBEBFBGBHBJB KBLBMB)NB)OB)PB)QBRBSB TBTBUBVBWB{XBRYBZBZB[Bq\B)]B]B^B3_B_Bf`BaBaBbBbBcBBBBB=BqBBB= B B BH!B!B"B"B#B#B$B$BH%B%B&B)'B'B(BR)B*B*B+B{,B\-B3.B/B0B0B1B2B3B4B5B6B7B8B9B:B;B =B>B)?B=@BRABfBB{CBDBEBFBGBHBIBJBLB MB NBOBPB QB RBSBSBTBUBVBWBfXB3YB ZBZB[B\\B]B]Bq^B_B_BR`B`BqaBaB{bBbBBBBBBRBBB Bf B B)!B!B!Bq"B"Bq#B#B$B%B%B\&B 'B'Bq(B))B)B*B+B\,B3-B.B.B/B0B1B2B3B4B5B6B7B8B9B:B;BB@BAB)BB=CBRDBfEB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB{VBRWB3XB YBYBZBf[B)\B\B]BH^B^B_B)`B`BHaBaBRbBbBHB\B{BBBB=BBB B{ B B=!B!B"B"B#B#B=$B$Bq%B&B&Bq'B)(B(B)Bq*B=+B,B,B-B.B/B{0Bq1Bf2B\3B\4B\5B\6Bf7Bq8B{9B:B;BB?B@B BBCB3DBHEB\FBqGBHBIBJBKBLBMBNBOBPBQBRBSBTB{UB\VB=WBXBXBYBZBR[B\B\B]B3^B^B{_B`B`B3aBaB=bBbBB3BRB{BBBB\BBBR B B!B!B"B{"B#B#B$B$BH%B%B&BH'B(B(B{)BH*B+B+B,B-B.Bq/B\0BR1BH2B=3B=4B=5B=6BH7BH8B\9Bf:Bq;BB?B@BABCBDB)EB=FBRGBfHBqIBJBKBLBMBNBOBPBQBRBSB{TBfUBHVB)WBXBXBYB{ZB=[B\B\Bq]B^B^Bf_B`B`BaBaBbBbBBB3BRBBBB3BBB) B B Bf!B!BR"B"B\#B#B$B)%B%Bq&B'B'B(B\)B*B*B+B,B{-Bf.BH/B=0B)1B2B3B4B5B6B7B)8B39BH:BR;BfB?B@BABBBCB EBFB3GBHHB\IBfJBqKBLBMBNBOBPBQB{RBqSB\TBHUB3VB WBWBXBYB\ZB)[B[B\BR]B^B^BR_B_B{`B aBaB bBbBBB B3B\BBBB\BB Bf B B=!B!B)"B"B=#B#B\$B%B%BH&B'B'Bq(B3)B*B*B+B{,B\-B=.B)/B0B 1B2B2B3B4B5B7B 8B9B:B3;BHB?B@BABBBCBDBFBGB)HB=IBHJB\KBfLBqMBqNBqOBqPBqQBfRB\SBHTB3UBVBVBWBXB{YBHZB [B[B\B=]B]B^B3_B_Bf`B`B{aBaBqbBBBB B3BfBBB3BBB= B B!B!B "B"B#B#B=$B$B{%B)&B&B'BH(B)B)B*B{+B\,B3-B.B/B/B0B1B2B3B4B5B6B7B8B:B;B)Bf?B{@BABBBCBDBEBGB HBIB3JB=KBHLBRMB\NB\OB\PBRQBHRB=SB)TBUBVBVBWBXBfYB3ZBZB[Bq\B)]B]B^B_B_BR`B`BfaBaB\bBBBBB BHB{BB B\BB B B Bf!B!Bf"B"B{#B$B$BR%B&B&Bf'B)(B(B)B*B\+B3,B-B-B.B/B0B1B2B3B4B5B6B7B8B9B:BBH?B\@BqABBBCBDBEBFBGBIBJBKB3LB3MB=NB=OB=PB=QB3RB)SBTBUBUBVBWB{XBHYBZBZB[B\\B]B]Bf^B _B_B=`B`BRaBaBHbBfB{BBBBB\BBB=BBB\ B B=!B!B="B"BR#B#B$B3%B%B&BH'B(B(B)B\*B3+B ,B,B-B.B/B0B1B2B3B4B5B6B7B8B9B:B;BB?B=@BRABfBB{CBDBEBFBGBHBIB KBLBMBNB)OB)PBQBRB SBTBTBUBVBWBfXB3YBZBZB[BH\B]B]BR^B^B_B)`B`B=aBaB3bB=BRBqBBBB3B{BBBfBB3 B B!B!B"B"B3#B#Bf$B %B%Bf&B'B'B(Bf)B=*B+B+B,B-B.B/B{0Bq1Bf2Bf3Bf4Bq5B{6B7B8B9B:B;BB@BAB)BBHCB\DBqEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB{VB\WB3XB YBYBZB\[B\B\B{]B)^B^Bf_B`B`BaBaB bBB B)BHB{BBB)BqBBB{BBR B BH!B!BR"B"B{#B$B$Bf%B&B&B'BR(B)B)B*B+B{,Bf-BR.B=/B30B)1B2B3B)4B)5B36B=7BH8B\9Bq:B;BB?B@B BB)CB=DBREBfFB{GBHBIBJBKBLBMBNBOBPBQBRBSBTBUBfVBHWBXBXBYBZBH[B\B\Bf]B^B^BR_B_Bq`B`B{aBaBBBBBRBBBBHBBB\BB) B B!B!B)"B"BR#B#B$B=%B%B&Bf'B)(B(B)B*B{+B\,B=-B).B/B 0B1B2B3B4B 5B6B7B)8B=9BR:Bf;B{B?B@BAB CBDB3EBHFBfGBqHBIBJBKBLBMBNBOBPBQBRBSBTBqUBRVB)WBXBXBYBqZB3[B[B\BR]B^B^B=_B_B\`B`BfaBaBBBBB)B\BBB)B{BB3BB B{ B B{!B"B"B)#B#Bq$B%B%B&BH'B (B(B)B{*BR+B3,B-B.B.B/B0B1B2B3B4B5B6B 8B9B):B=;BRB?B@BABBBDBEB3FBHGB\HBfIB{JBKBLBMBNBOBPBQBRB{SBqTBRUB3VBWBWBXBYB\ZB[B[B\B=]B]B^B)_B_BH`B`BRaBaB{BBBBB3BqBBBRBB BqBBR B BR!B!Bq"B #B#BH$B$B%B\&B'B'B(B{)BR*B3+B,B,B-B.B/B0B1B2B3B4B5B6B7B8B :B;B3B{?B@BABBBCBDBFB)GB=HBRIB\JBqKB{LBMBNBOBPBQBqRBfSBRTB=UBVBWBWBXB{YB=ZB[B[B{\B)]B]Bq^B_B_B3`B`B=aBaB\BqBBBB BHBBB)BBBHBB) B B)!B!BH"B"B{#B$B$B{%B3&B&B'B(B\)B3*B +B+B,B-B.B/B0B1B2B3B4B5B6B7B8B9B;BB\?B{@BABBBCBDBEB GBHB3IBHJBRKB\LBfMBqNBqOBqPBfQB\RBRSB=TBUB VBVBWBXB\YB)ZBZB[B\\B]B]B\^B^B_B`B`B)aBaB3BHBfBBBBBfBBB\BBBB B B!B!B"B"BR#B$B$B\%B&B&B'B\(B3)B *B*B+B,B-B.B{/Bq0Bq1Bq2Bq3B{4B5B6B7B8B9B:B;B =B)>B=?B\@BqABBBCBDBEBFBHBIB)JB3KBHLBRMBRNBROBRPBRQBHRB3SBTB UBUBVBWB{XBHYBZBZB[BH\B\B]BH^B^B{_B `B`BaBaB BB=B\BBBB=BBB3BBBfBB\ B Bf!B!B"B3#B#B{$B3%B%B&Bq'B=(B )B)B*B+B,Bq-B\.BR/BR0BH1BR2BR3B\4Bf5Bq6B7B8B9B:B;BB?B=@BRABqBBCBDBEBFBGBHB JBKB)LB3MB3NB=OB=PB3QB)RBSB TBTBUBVBWBfXB3YBZBZB{[B3\B\B]B3^B^Bf_B_B{`BaBqaBBBB=BfBBBBfBB BqBBHBB3 B BH!B!Bq"B #B#B\$B %B%B&BH'B(B(B)B*B{+Bf,BR-B=.B3/B30B)1B)2B33B=4BH5BR6Bf7Bq8B9B:B;BB@BAB3BBRCBfDBEBFBGBHBIBJBKBMB NB OB PBQBRBRBSBTBUBVBfWB3XB YBYBZBR[B \B\Bf]B ^B^B=_B_BR`B`BHaBBBBBBRBBBBfBBBBBfBBf B B!B"B"Bf#B $B$B{%B=&B'B'B(Bq)BR*B3+B,B -B-B.B/B0B1B2B3B5B 6B7B38BH9B\:B{;BB?BABBB3CBHDBfEB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBqVBHWBXBXBYB{ZB=[B[B\BR]B]B^B)_B_B=`B`B3aBqBBBBB)BfBBB=BBB\BBHBBH B B\!B!B"B=#B#B$BR%B&B&B'B{(BR)B)*B +B+B,B-B.B/B0B1B2B3B4B5B7B8B)9B=:BR;BqB?B@BABCB3DBHEB\FB{GBHBIBJBKBLBMBNBOBPBQBRBSBTB{UB\VB3WB XBXBYBfZB)[B[B\B=]B]B{^B_B_B)`B`BaBHB\B{BBBB=B{BBBqBB3BBBB B B3!B!Bq"B#B#Bq$B)%B%B&B{'BR(B))B *B*B+B,B-B.B/B0B1B2B3B4B5B6B7B9B:B3;BRB?B@BABBBDB)EBHFB\GBqHBIBJBKBLBMBNBOBPBQBRBSB{TB\UB=VBWBWBXBYBRZB [B[B{\B)]B]Bf^B_B_B`B`B aB)B=BRB{BBBBRBBBHBBB{BBqBB{ B!B!BH"B"B#BH$B%B%B&B\'B)(B)B)B*B+B,B-B{.B{/B{0B{1B2B3B4B5B6B7B8B9B;B)B?B@BABBBCB EB)FB=GBRHBfIB{JBKBLBMBNBOBPBQBRB{SBfTBHUB)VBWBWBXBqYB=ZBZB[Bf\B ]B]BR^B^B{_B`B{`B`BBB)BRB{BBB)B{BBBBBRBBHBBR B B{!B"B"Bq#B$B$B%Bf&B3'B(B(B)B*B+Bq,Bf-B\.BR/BR0BR1B\2Bf3Bq4B5B6B7B8B9B:B Bf?B{@BABBBCBDB FBGB3HBHIB\JBqKB{LBMBNBOBPB{QBqRB\SBHTB3UBVBVBWBXB\YBZBZB[BR\B\B]B=^B^Bf_B_Bf`B`BBB B)BRBBBBRBBB\BB)BBBB3 B B\!B!B"BH#B$B$B{%B=&B 'B'B(B)B{*B\+BH,B=-B3.B3/B30B31B=2BH3BR4B\5Bq6B7B8B9B:B;B =B)>BH?B\@B{ABBBCBDBEBGBHB3IB=JBRKB\LBfMBqNBqOBfPBfQBRRBHSB3TBUBUBVBWB{XBHYB ZBZB[B3\B\B]B)^B^BH_B_BR`B`BBBBB)B\BBB)B{BB3BB B{BB{B B B3!B!Bq"B#B#B$BR%B&B&B'B(Bq)BR*B3+B),B-B .B /B 0B 1B2B3B)4B=5BR6Bf7B{8B9B:B;BB?B=@B\AB{BBCBDBEBFBHBIB)JB3KBHLBHMBRNBROBRPBHQB=RB)SBTBUBUBVBWBfXB3YBYBZBq[B\B\Bq]B^B^B3_B_B=`B`BBBBB B3BqBBBRBB BqBBRBBRBBq B !B!BR"B"B#Bf$B)%B%B&B'Bf(BH)B)*B+B,B,B-B.B/B0B1B3B 4B5B)6BH7B\8Bq9B:B;BB@BAB=BB\CB{DBEBFBGBHBIBKB LBMBNBOBPBQB RBSBSBTBUBVBfWB3XBYBYBZB=[B[B\BH]B]B{^B _B_B`B`B3BHBfBBBBBfBBB\BBBBB{BBB B BR!B"B"B\#B$B$B%Bq&B='B(B(B)B*B+B,B-B.B/B0B1B2B3B4B5B7B8B39BH:Bf;BB?BABBB=CB\DBqEBFBGBHBIBJBKBMBNBOBPBQBQBRBSBTBUB{VBRWBXBXBYBqZB)[B[B\B3]B]Bf^B^B{_B`B{`BBB=BfBBBB=BBB3BBBfBBRBBfBB B3!B!B"B3#B#B$B{%BH&B'B'B(B)B*B+B,B{-B{.B{/B{0B1B2B3B4B5B6B7B 9B):BH;BfB?B@BBBCB=DB\EBqFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUB\VB3WB XBXBYB\ZB[B[Bq\B]B]BR^B^Bf_B_Bf`BBBB=BfBBBB\BB BfBB=BB)BB=BBf B !B!B\"B #B#B$BR%B&B&B'B(B)B{*Bf+B\,BR-BR.BR/BR0B\1Bq2B{3B4B5B6B7B8B :B);BHB?B@BABCBDB=EBRFBqGBHBIBJBKBLBMBNBOBPBQBRBSBTBfUBHVBWBWBXBYBHZB[B[B\\B]B]B=^B^BR_B_BR`BBBBB=BqBBB3BBB=BBBBBBBB= B B!B3"B"B#B\$B)%B%B&B'B(Bf)BR*B=+B3,B3-B).B)/B30B=1BH2B\3Bf4B{5B6B7B8B9B;B)B?B@BABBBDBEB3FBRGBfHB{IBJBKBLBMBNBOBPBQBRBSBqTBRUB3VB WBWBXBqYB)ZBZB[BH\B\B]B)^B^B=_B_B=`BBBBBBHBBB B\BBB{BB\BB\BB{B B B\!B "B"B{#B=$B%B%B&B{'B\(B=)B)*B+B,B -B .B /B 0B1B2B33BH4B\5Bq6B7B8B9B:BBf?B@BABBBCBEBFB3GBHHBfIBqJBKBLBMBNBOBPBQB{RBqSBRTB=UBVBVBWBXBRYBZBZB[B3\B\B{]B^B^B)_B_B)`BqBBBBBB\BBB3BBBRBB3BB3BBRBB B3!B!B"BR#B$B$B%B{&B\'B3(B)B *B*B+B,B-B.B/B0B2B3B4B35BR6Bf7B8B9B:B;B=B>BH?Bf@BABBBCBDBFBGB3HBHIB\JBfKBqLB{MBNBOB{PBqQBfRBRSB=TBUBVBVBWB{XB=YBZBZBq[B\B\Bf]B^B^B_B_B`BHB\BqBBBB3BqBB BfBB)BB BB BB)BBf B !B!Bq"B)#B#B$B{%BR&B3'B(B(B)B*B+B,B-B.B/B0B1B2B4B5B)6BH7Bf8B9B:B;BB)?BH@BfABBBCBDBEBFBHB)IB=JBRKB\LBfMBfNBfOBfPB\QBRRB=SB)TB UBUBVBWB\XB)YBYBZB\[B \B\BR]B]B{^B_B_B`BB3BHBqBBB BHBBB=BBBqBB\BBqBBB= B B!BH"B#B#B$B\%B)&B 'B'B(B)B*B+B,B-B.B/B0B1B2B3B4B 6B)7B=8B\9B{:B;BB @B)ABHBBfCBDBEBFBGBHB JBKBLB)MB3NB3OB3PB)QBRB SBSBTBUBVBfWB3XBYBYB{ZB)[B[B\B]B]BH^B^B\_B_BBBBBHB{BBB=BBBHBBBB BBBBHBB B=!B!B"Bq#B=$B %B%B&B'B{(Bf)B\*BR+BH,BH-BH.BR/B\0Bq1B{2B3B4B5B6B8B9B=:B\;B{B?B AB)BBHCBfDBEBFBGBHBIBJB LBMBNBOBPB QBRBRBSBTBUB{VBRWBXBXBYBfZB[B[Bq\B ]B]B3^B^BH_B_BBBBBBRBBBBfBBBBBfBBfBBBBBf B!B!B"BH#B$B$B%B&Bq'B\(BH)B3*B)+B),B-B).B3/B=0BH1B\2Bq3B4B5B6B7B8B:B=;B\B?B@B BB)CBHDBfEBFBGBHBIBJBKBLBNBOBPBPBQBRBSBTBUBfVB3WBXBXBYBHZB[B[BR\B\B]B^B^B)_B_B{BBBBB)B\BBB=BBB\BB=BB=BB\BBB= B B!B\"B#B#B$B%Bf&BH'B3(B)B *B+B,B-B.B /B0B1B32BH3Bf4B{5B6B7B8B9B;B=B?B@BAB CB)DBHEBfFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBqUBHVBWBWBXB{YB3ZBZB[B=\B\B{]B ^B^B_B_BRBfBBBBB3B{BBBfBB3BBBBBB3BBqB B B{!B3"B"B#B$Bf%B=&B'B (B(B)B*B+B,B-B.B/B1B2B)3B=4B\5B{6B7B8B9B:BB?B@BABBB DB)EBHFBfGB{HBIBJBKBLBMBNBOBPBQBRBSB{TB\UB3VB WBWBXBfYBZBZB[B)\B\Bf]B]B^B_B{_B3B=B\B{BBBB\BBBHBBB{BBqBBBBBRBB B\!B"B"B#B{$BR%B)&B 'B'B(B)B*B+B,B-B.B/B0B2B3B34BH5Bf6B7B8B9B:BB{?B@BABBB DB)EB=FB\GB{HBIBJBKBLBMBNBOBPBQBRBSBqTBRUB)VBWBWBXB\YBZBZB{[B\B\B\]B]B{^B^Bq_B BB3BRBBBB)B{BBB{BBRBBHBB\BBB)BB{ B3!B!B"B{#BR$B)%B&B&B'B(B)B*B+B,B-B.B/B0B1B2B 4B)5BH6Bf7B8B9B:B;B=B=>B\?B@BABBBCB EB)FB=GB\HBqIBJBKBLBMBNBOBPBQBRBqSB\TB=UBVBVBWBXBHYBZBZBf[B \B\BH]B]Bf^B^B\_BBB B)BRBBBBRBBBRBB)BBBB3BB\BBBR B !B!B"BR#B)$B%B%B&B'B(B)B{*B{+B{,B{-B.B/B0B1B2B3B5B6B=7Bf8B9B:B;BB=?Bf@BABBBCBDB FB)GB=HBRIBfJB{KBLBMBNBOBPB{QBqRB\SB=TBUBVBVBWBfXB)YBYBZBR[B[B\B3]B]BR^B^BH_BBBBB)B\BBBBqBB)BBB{BB{B BB3BB{B) B B!Bf"B)#B$B$B%B&B{'Bf(B\)BR*BR+BR,BR-B\.Bq/B{0B1B2B3B4B6B7B=8Bf9B:B;BB@B)ABHBBqCBDBEBFBGBIBJB)KB3LB=MB=NB=OB=PB3QB)RBSBSBTBUBVB\WB)XBXBYB\ZB [B[B\\B\B]B ^B^B _B=BHBfBBBBB\BBBRBBBBB{BBBBB\BBBf B!B!B"B#B\$B=%B&B'B'B(B)B*B+B,B-B/B0B)1B=2B\3B{4B5B6B7B9B):BH;BqB?B AB)BBRCBqDBEBFBGBHBIB KBLBMB)NB)OBPBQB RBRBSBTBUBqVBHWBXBXBYBHZBZB[BH\B\Bq]B]B{^B^BBB=B\BBBB3B{BBBBB\BBRBB\BBB)BBB= B B!B"B\#B3$B%B%B&B'B(B)B*B+B,B-B.B/B1B2B33BR4Bq5B6B7B8B:B);BRB?B@B BB3CBRDBqEBFBGBHBIBJBLB MB NB OB PBQBQBRBSBTBUB\VB3WBWBXB{YB3ZBZB[B)\B\B\]B]Bf^B^BBBB3B\BBB BRBBB\BB3BBBB3BBfBBB\B B B!B\"B3#B $B$B%B&B'B(B)B*B+B,B-B.B/B0B1B3B34BR5Bq6B7B8B9B ;B3B?B@BABCB3DB\EB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBTBqUBHVBWBWBXBfYBZBZB{[B\B\BH]B]BR^B^BBBB B3BfBBB)B{BB3BBB{BB{B BB3BBB3BB Bf!B3"B #B#B$B%B&B{'Bq(Bf)Bf*Bf+Bq,B{-B.B/B0B1B2B 4B)5BR6Bq7B8B9B:B B?B@BABBBDB=EB\FB{GBHBIBJBKBLBMBNBOBPBQBRBSB{TB\UB3VBWBWBXBRYB ZBZB\[B\B\B3]B]B=^B^BBBBB B=BqBBBHBBBfBBRBBRBBqB BB\B BB{ B=!B "B"B#B$B{%Bf&BR'BH(B=)B=*B=+BH,BR-Bf.B{/B0B1B2B3B 5B)6BR7Bq8B9B:B;B=B=>Bf?B@BABBBDBEB=FB\GBqHBIBJBKBLBMBNBOBPBQBRB{SBfTB=UBVBVBWB{XB=YBYBZBH[B[B\B]B]B)^B^BfB{BBBB BHBBBB{BB=BB)BB)BBHBBB)BBBR B!B!B"B#Bq$BR%B=&B)'B(B)B*B+B,B3-B=.BR/Bf0B1B2B3B4B 6B)7BR8B{9B:B;BBH?Bq@BABBBCBEBFB=GB\HBqIBJBKBLBMBNBOBPBQB{RBfSBHTB)UBVBVBWBfXBYBYBZB3[B[Bq\B ]B]B^B^B=BRBfBBBBB\BBBRBBBBB{BBBBB\BBBfB) B B!B"Bf#BH$B)%B&B'B'B(B)B*B,B -B.B3/BH0B\1B{2B3B4B5B 7B38B\9B:B;BB)?BR@BqABBBCBDBFBGB=HBRIBfJB{KBLBMBNBOBPB{QBfRBRSB3TBUBUBVBWBRXB YBYB{ZB[B[B\\B\B{]B^B{^BB)B=B\BBBB3B{BBBBB\BBHBB\BBB3BBB=B B B!B\"B=#B$B%B%B&B'B(B)B*B+B,B-B /B0B=1B\2B{3B4B5B6B 8B39B\:B;BB @B3AB\BBCBDBEBFBHBIB3JB=KBHLBRMB\NBROBRPBHQB3RBSBTBTBUBVB\WBXBXBYBHZBZB[B3\B\BR]B]BR^BBBB B3BfBBB)BqBB)BBB{BB{B BB3BBB3BBBq B=!B "B"B#B$B%B&B{'B{(B{)B{*B+B,B-B.B/B0B2B33BR4B{5B6B7B8B:BH;BqB?BAB=BBfCBDBEBFBGBIBJB)KB3LB=MB=NB=OB3PB)QBRB SBSBTBUB{VBHWB XBXBYB3ZBZB[B\B\B=]B]B=^BBBBB B3BqBBBHBBBfBBRBBRBBqB BB\B BB{BH B!B!B"B#B$Bq%B\&BR'BR(BR)BR*B\+Bq,B-B.B/B0B1B 3B34BR5B{6B7B8B9B);BRB?B@BBBHCBfDBEBFBGBHBIB KBLBMBNBOBPBQBRBRBSBTBUB\VB)WBWBXBqYBZBZBq[B \B\B)]B]B)^BfB{BBBB BHBBBB{BB=BBBB)BBHBBB)BBBRB B B!B"Bq#B\$BH%B3&B)'B)(B))B3*B=+BH,B\-Bq.B/B0B1B2B 4B35B\6B7B8B9B;B3B?B@BBB)CBRDBqEBFBGBHBIBJBLB MB NB OBPBPBQBRBSBTBqUBHVBWBWBXBRYB ZBZB\[B[B\B]B]B^B=BRBfBBBBB\BBBHBBB{BBqBBBBB\BBBfB)BB B!Bf"BH#B3$B%B &B'B(B)B *B+B,B3-BH.Bf/B0B1B2B3B 5B36B\7B8B9B:B B?B@BAB CB3DBREBqFBGBHBIBJBKBLBMBNBOBPBQBRBSBTB\UB3VBWBWBXB=YBYBZB=[B[Bq\B]B]B^BB)B=B\BBBB3B{BBB{BBRBBHBB\BBB)BBB=BBB Bf!B="B#B $B$B%B&B'B(B)B*B+B -B.B=/B\0B{1B2B3B4B6B=7Bf8B9B:B;B=BH>Bq?B@BABBBDB3EBRFBqGBHBIBJBKBLBMBNBOBPBQBRBSBqTBHUBVBVBWBqXB)YBYBZB)[B[B\\B\Bq]B]BBBB3B\BBBBHBBBRBB)BBBB3BB\BBB\BBBBf B=!B"B"B#B$B%B&B'B(B)B*B+B,B.B/B30BR1B{2B3B4B5B7BH8Bq9B:B;BBR?B{@BABBBCBEB=FB\GBqHBIBJBKBLBMBNBOBPBQBRBqSBRTB3UBVBVBWB\XBYBYBqZB[B[BH\B\B\]B]BBBB B3B\BBBBqBB)BBBqBBqBBB3BB{B3BBBqB= B!B!B"B#B$B%B&B'B(B)B*B+B,B-B.B0B31BR2B{3B4B5B6B8BR9B{:B;BB3?B\@BABBBCBDBFB=GBRHBqIBJBKBLBMBNBOBPBQBqRB\SB=TBUBUBVBWBHXBYBYB\ZB[B[B3\B\BH]B]BBBBBB3BqBBBHBBBfBBHBBHBBfB BBRBBB{BHB B B!B"B#Bq$Bf%B\&B\'B\(Bf)Bq*B+B,B-B.B/B 1B32BR3B{4B5B6B8B)9B\:B;BB@BHABqBBCBDBEBGBHB3IBHJB\KBfLBqMBqNBqOBfPB\QBHRB)SB TBTBUBVBRWBXBXBYB3ZBZBq[B \B\B]B]B=BHBfBBBBBRBBB=BBBqBBfBB{B BBHBBB\BBBB B\!BH"B)#B$B %B&B'B(B )B*B)+B=,BR-Bq.B/B0B1B3B)4BR5B{6B7B8B :B3;BfB?BABHBBqCBDBEBFBGB IBJB3KB=LBHMBHNBHOB=PB3QBRB SBSBTBUBqVB3WBWBXBfYBZBZB\[B[B{\B]B]BBB3BRB{BBBBfBBBqBBHBB=BBHBB{BBB{B3BBBB\ B3!B"B#B#B$B%B&B'B(B)B+B,B)-BH.Bf/B0B1B2B4B35B\6B7B8B9B;BHB?BAB)BBRCB{DBEBFBGBHB JBKB)LB)MB3NB3OB)PBQB RBRBSBTBUB\VBWBWBXBRYBZBZBH[B[Bf\B\Bq]BBB B)BRBBBB=BBBHBBBB BBBBRBBBHBBBB\B3 B !B!B"B#B$B%B&B'B(B)B*B+B -B.BH/Bf0B1B2B3B 5B36Bf7B8B9B:B)B?B@B BB3CB\DB{EBFBGBHBIBKB LBMBNBOB PBQBQBRBSBTBqUB=VB WBWBXB=YBYBZB3[B[BR\B\B\]BBBBB)BRBBBB\BBB{BBfBBfBBBBBqBBBB\B)B B B!B"B#B$B%B&B'B(B)B*B+B,B.B/B=0Bf1B2B3B4B6BH7Bq8B9B:BB?B@BABCB=DB\EBFBGBHBIBJBKBLBNBOBOBPBQBRBSBTB\UB)VBVBWBqXB)YBYB{ZB[B[B=\B\BH]BBBBBB)B\BBB3BBBRBB3BB3BB\BBB=BBBqB3BBB B!B{"Bq#B\$B\%B\&B\'Bf(Bq)B*B+B,B-B.B0B=1Bf2B3B4B5B7BR8B{9B:B;B=B=>Bq?B@BABBBDB=EBfFBGBHBIBJBKBLBMBNBOBPBQBRBSBfTB=UBVBVBWB\XBYBYBfZB[B[B)\B\B3]BfBqBBBBB3BqBB B\BBBB BB BB)BBfBBBB=B BBB Bq!BR"B=#B3$B3%B3&B3'B=(BH)B\*B{+B,B-B.B/B1BH2Bq3B4B5B7B)8B\9B:B;BBR?B{@BABBBDB)EBHFBfGBHBIBJBKBLBMBNBOBPBQBRBqSBRTB)UBVBVBWBHXBYBYBRZBZB[B\B\B]B3BHB\B{BBBBHBBB3BBBfBB\BBfBBB=BBBRBBBBB\ B=!B)"B#B $B %B &B 'B(B)B3*BR+Bf,B-B.B/B0B2BH3B{4B5B6B 8B=9Bq:B;BB3?B\@BABBBCB EB)FBHGBfHB{IBJBKBLBMBNBOBPBQB{RB\SB=TBUBUBVBqWB3XBXBYB=ZBZBq[B\B\B]B BB)BHBqBBBB\BBBfBB3BB)BB=BBqBBBqB)BBB{BRB3 B!B"B"B#B$B%B&B'B(B *B)+B=,B\-B.B/B0B1B)3BR4B5B6B7B9BH:B{;BB@BRAB{BBCBDBEBGB)HBHIB\JBfKBqLB{MB{NB{OBqPB\QBHRB)SB TBTBUBVBHWBXBXBfYBZBZBH[B[B\\B\BBBBBBHB{BBBRBB BqBBRBBRBB{BBBfBBBBRB)BBB B!B"B#B$B%B&B'B(B)B*B+B-B3.B\/B0B1B2B 4B=5Bq6B7B8B :B=;BqB@B)AB\BBCBDBEBFBHB)IB=JBRKB\LB\MB\NB\OBRPBHQB3RBSBSBTBUBqVB3WBWBXBRYBZBZB3[B[BH\B\BBBBBBBRBBB)B{BB=BB)BB)BBHBBB3BBBfB)BBBB B{!Bf"B\#B\$B\%Bf&Bq'B{(B)B*B+B,B .B3/B\0B1B2B3B5BH6B{7B8B9B;BHB?B AB=BBfCBDBEBFBGB IBJB3KB=LBHMBHNBHOB=PB)QBRBSBSBTBUBRVBWBWBXB=YBYBZB[B[B3\B\B\BfB{BBBBBfBBBRBBBBBqBBBBB\B BBqB3BBBBBf BR!B="B3#B3$B3%B=&BH'BR(Bf)B*B+B,B-B /B30Bf1B2B3B4B)6B\7B8B9B:B)B?B@BBBHCBqDBEBFBGBHB JBKBLB)MB)NB)OBPBQBRBRBSBTBqUB=VBWBWB{XB)YBYBqZB [B[B\B\B)B3BRBfBBBB3B{BBB{BBRBBHBB\BBB)BBBHB BBB{BRB= B)!B"B #B $B %B &B'B)(B=)B\*B{+B,B-B.B0B=1Bq2B3B4B6B37Bf8B9B:B B?B@BBB)CBRDB{EBFBGBHBIBKB LBMBNBOB PBPBQBRBSBTB\UB)VBVBWBfXBYBYB\ZBZB[B \B\BB BB=BfBBB BHBBBRBB)BBBB)BB\BBB\BBBBqBHB)B B B!B"B#B$B%B&B(B)B3*BR+Bq,B-B.B/B1BH2B{3B4B5B7BH8B{9B:B;B=BR>B{?B@BAB CB3DB\EB{FBGBHBIBJBKBLBMBNBOBPBQBRBSBqTBHUBVBVBWBHXBYBYBHZBZBq[B[Bq\BBBBB3BfBBBBqBBBBBqBBqBBB3BB{B3BBB{BHBBBB B!B"B#B$B%B&B'B(B *B)+BH,Bq-B.B/B0B2BR3B4B5B6B8B\9B:B;BB\?B@BABBBDB=EBfFBGBHBIBJBKBLBMBNBOBPBQBRB{SB\TB)UBUBVB{WB3XBXBYB3ZBZB\[B[B\\BBBBB B3BqBBB=BBB\BB=BB=BBfBBBRBBB{BHBBBBB B!B"B#B$B%B&B'B(B)B+B,BH-Bq.B/B0B1B)3B\4B5B6B8B39Bq:B;BB=?Bq@BABBBCBEBHFBfGBHBIBJBKBLBMBNBOBPBQBRBfSB=TBUBUBVBfWBXBXB{YBZBZBH[B[BH\B{BBBBB B=B{BBBfBB)BBBBBB3BB{BBBBRBBBBBBq Bf!B\"B\#B\$Bf%Bq&B'B(B)B*B+B-BH.Bq/B0B1B 3B=4Bq5B6B7B9BH:B;BB@B=ABqBBCBDBEB GB)HBHIB\JBfKBqLB{MB{NBqOBfPBRQB=RBSBTBTBUBfVB)WBWBXB=YBYBqZB[B[B \BBB B)BRB{BBB3BBB=BB BBBBBBHBBBHB BBBfB=BBBB B!B"B#B$B%B 'B(B=)B\*B+B,B-B/B30Bf1B2B3B5B=6Bq7B8B9B;BRB?BABRBBCBDBEBFB HB)IB=JBHKB\LB\MB\NB\OBHPB=QB)RB SBSBTBUBRVBWBWB{XBYBYB\ZBZB{[B[BBBBBBRBBB BRBB BqBBRBB\BB{BBBfBBBBfB3B BBBB B!B"B#B$B%B&B'B)B3*B\+B{,B-B.B 0B=1Bq2B3B4B6BR7B8B9B:B3B?BAB3BBfCBDBEBFBGB IBJB3KB=LBHMBHNB=OB3PBQB RBRBSBTBqUB=VBVBWBfXB YBYBHZBZBf[B[BBBBBBBRBBB)B{BB=BB)BB)BBHBBB=BBBqB3B BBBBB B!B{"B#B$B%B&B'B(B *B3+B\,B-B.B/B1BH2B3B4B5B)7Bf8B9B:B B?B@BBBHCBqDBEBFBGBHB JBKBLB)MB)NB)OBPB QBQBRBSBTB\UBVBVBWBRXBXBYB3ZBZBR[B[BfBqBBBBB)BfBBBRBBBBBqBBBBB\B BB{B=B BBBB{BfB\ BR!BR"B\#Bf$Bq%B&B'B(B)B +B3,B\-B.B/B0B)2B\3B4B5B 7B=8B{9B:B;B)=B\>B?B@BAB)CBRDB{EBFBGBHBIBKB LB MBNB OBPBPBQBRBSBqTBHUB VBVBWB=XBXBYBZBZB=[B[B3B=BRBqBBBB3B{BBB{BBRBBHBB\BBB3BBBHBBBBBfBRB=B3 B)!B)"B)#B3$BH%B\&B{'B(B)B*B ,B3-Bf.B/B0B2B33Bq4B5B6B8B\9B:B;B=B=>Bq?B@BAB CB3DB\EB{FBGBHBIBJBKBLBMBNBOBPBQBRBSB\TB)UBUBVBqWBXBXBqYB ZBZB)[B[B BB)B=BfBBBBHBBBHBBBBBB)BB\BBB\BBBB{B\B3BB B B B!B#B $B%B3&BH'Bf(B)B*B+B -B=.Bq/B0B1B3BH4B5B6B7B39Bq:B;BBR?B@BABBBDB=EB\FBGBHBIBJBKBLBMBNBOBPBQBRBqSBHTBUBUBVB\WB XBXB\YBYBZB[B[BBBBB3BfBBBBfBBBBBfBBfBBB)BB{B3BBB{BRB)B BBBB B!B"B#B$B &B'B=(Bf)B*B+B,B.BH/B{0B1B2B4B\5B6B7B9BH:B;BB)@B\ABBBCBDB FB)GBHHB\IBqJBKBLBMBNBOB{PBfQBHRB)SBTBTBUB\VBWBWB{XBYBYBHZBZBR[BHBRBfBBBB BHBBB3BBB\BBRBBfBBB=BBB\BBBBB{BfBRBHBH BH!BR"B\#Bq$B%B&B'B(B *B=+Bf,B-B.B 0B=1B{2B3B4B)6Bf7B8B9B;B\B@B=ABqBBCBDBEB GB)HBHIB\JBfKBqLBqMBqNBfOB\PBHQB3RBSBSBTBUBHVBWBWBfXB YBYB3ZBZB=[BB)B=BRB{BBBB\BBB\BB3BBBB3BBfBBBqB3BBBBqBRB=B)BB B!B"B3#B=$B\%Bq&B'B(B)B+B=,Bq-B.B/B1BR2B3B4B 6BH7B8B9B;B=B?BABRBB{CBDBEBFB HB)IB=JBHKBRLB\MB\NBROBHPB3QBRBRBSBTBqUB3VBVBWBHXBXBYBZBZB)[BBB B)BHBqBBB)B{BB)BBBqBB{B BB=BBBHBBBBfB=BB BBBB B!B#B$B)%BH&Bf'B(B)B*B,BH-B{.B/B0B)2Bf3B4B5B7B\8B9B:BB?B@B)BB\CBDBEBFBGB IBJB3KB=LB=MB=NB=OB)PBQBRBRBSBTBRUBVBVBWB3XBXB{YB ZBZB[BBBBBBHB{BBBHBBB\BBHBBHBBqB BB\BBBB\B3BBBBBBB B!B"B#B%B&B='Bf(B)B*B+B-BR.B/B0B2B=3B{4B5B7B=8B{9B:B;B3=Bq>B?B@B BB=CBfDBEBFBGBHB JBKBLB)MB)NBOBPBQBQBRBSBqTB=UBVBVBqWBXBXB\YBYB{ZB[BBBBBBBHBBBBqBB3BBBBBB=BB{B)BBBfB3BBBBBBBB B!B"B#B$B%B'B=(Bf)B*B+B,B3.Bf/B0B1B3B\4B5B6B8B\9B:B;B=BH>B?B@BABCBRDBqEBFBGBHBIBJB LB MB NB OBOBPBQBRBSB\TB)UBUBVB\WB XBXBHYBYBfZBZB\BfB{BBBBBRBBB=BBBqBB\BBqB BBRBBBqB3BBBBB{BqBfB\Bf Bq!B{"B#B$B%B&B(B=)Bf*B+B,B .B=/B{0B1B2B34Bq5B6B7B39Bq:B;BBf?B@BABCB3DB\EB{FBGBHBIBJBKBLBMBNBOBPBQBRBqSBHTBUBUBVBHWBWBXB3YBYBRZBZB)B3BHBfBBBBBfBB BfBB=BB3BBHBB{BBBB=BBBBBfBRB=B3B3B3 B=!BR"Bf#B{$B%B&B'B)B=*Bq+B,B-B/BR0B1B2B 4BR5B6B7B9BR:B;BBH?B{@BABBBDB=EB\FBGBHBIBJBKBLBMBNBOBPBQBRB\SB3TBUBUB{VB3WBWBXBYBYB=ZBZBB BB3BRBBBB3BBB3BB BBBBBBHBBBRB BBBqBRB3BBB BB B!B"B3#BR$Bq%B&B'B(B*BH+B{,B-B.B)0Bf1B2B3B)5Bf6B7B8B):Bq;BB@BRABBBCBDB FB)GBHHB\IBqJBKBLBMBNB{OBqPB\QB=RBSBSBTB{UB=VBVBWBHXBXB{YBZBZBq B{ B B B B BB\BBBHBB BqBBfBB{BBB\B BB{B=B BBBBBB{B{B{B B!B"B#B$B&B='Bf(B)B*B,B=-B{.B/B0B32B{3B4B6B=7B8B9B ;BHB@B3ABfBBCBDBEB GB)HBHIB\JBfKBqLBqMBqNBfOBRPB=QBRBSBSBTBfUB)VBVBWB3XBXBfYBYBqZB= BH BR Bq B B B B)BqBBBqBBHBB3BBHBBB)BBBHBBBBB{BfBRBHBHBRB\ Bf!B"B#B$B%B 'B=(Bq)B*B+B-BR.B/B0B 2BR3B4B5B7B\8B9B:B)B?BABHBB{CBDBEBFB HB)IB=JBHKBRLB\MBRNBHOB=PB)QB RBRBSBTBRUB VBVBqWBXBXBRYBYB\ZB B B) B= B\ B B BB=BBB=BBBB BBBBRBBB\BBBBB\BHB3B)BBBB) B=!BR"Bq#B$B%B&B(B=)B{*B+B,B).Bf/B0B1B)3Bq4B5B6B=8B{9B:BB?B@B)BB\CBDBEBFBGB IBJB3KB=LB=MB=NB3OB)PB QBQBRBSBqTB=UBUBVB\WBXBXB3YBYBHZB B B B B3 B\ B B B B\BB BqBBRBB\BB{BBBqB)BBB{BRB3BBBBBBB B !B)"BH#Bf$B%B&B'B)BH*B+B,B.B=/B{0B1B3BH4B5B6B8B\9B:B;B=B\>B?B@B BB=CBfDBEBFBGBHB JBKBLBMBNBOB PBPBQBRBSB\TBUBUBVBHWBWBXBYBYB3ZB B B B B B) B\ B B B)B{BB=BBBB)BBHBBB=BBB{BHBBBBBBBBBB B!B#B3$B\%B&B'B(B*B\+B,B-B/BR0B1B2B4Bf5B6B7B39B{:B;B=B=>B{?B@BABCBHDBqEBFBGBHBIBJBLB MB NBOBOBPBQBRB{SBHTB UBUBVB3WBWB{XB YBYBZB{ B B B B B B) Bf B B BHBB B{BBqBBBBB\B BBBHBBBBBBBBBBB B!B"B $B3%B\&B'B(B)B3+Bq,B-B.B30Bq1B2B4BH5B6B7B9B\:B;BB\?B@BABCB)DB\EB{FBGBHBIBJBKBLBMBNBOBPBQBRB\SB3TBTBUBqVBWBWBfXBXBYB ZBH BR B\ B{ B B B B3 B{ B BBqBBHBB=BBRBBB)BBBRBBBBBBqBfB\B\BfBqB B!B"B#B %B3&Bf'B(B)B +BH,B-B.B 0BH1B2B3B5Bf6B7B8B3:B{;BB3@BqABBBCBEB)FBHGBfHB{IBJBKBLBMBNBOB{PBfQB=RBSBSBTBqUB)VBVBWB)XBXBHYBYB B B B B B) B\ B B B) B{ B B=BB)BB)BBRBBBHBBBBRB)B BBBBBBBBB!B3"BR#B{$B%B&B(BH)B*B+B -BH.B/B0B2Bf3B4B5B=7B8B9B;BRB@BRABBBCBDB FB)GBHHB\IBqJBKBLBMBNB{OBfPBHQB)RBSBSBTB\UBVBVBqWB XBXB3YBYB B B B B B B3 Bf B B BR B B B{BBqBBBBBfBBBBRBBBBBBBBBBBB B"B#BH$B{%B&B'B)BR*B+B,B.B\/B0B1B33B{4B5B7B\8B9B:B)B?B)AB\BBCBDBEB GB)HB=IBRJB\KBfLBfMBfNB\OBHPB3QB RBRBSBTBHUBVBVB\WBWBXBYBYBR B\ Bf B B B B B3 B{ B B B{ B BHBB=BBRBBB3BBBRBBBBBB{BqBfBfBqB{BB B!B"B$BH%B{&B'B(B)*Bf+B,B-B3/B{0B1B3B\4B5B6B38B{9B:B B?B AB=BBqCBDBEBFB HBIB3JBHKBRLBRMBHNB=OB3PBQBQBRBSBfTB)UBUBVB=WBWB{XB YBYB B) B3 BR Bq B B B BH B B BH B BBB BBBBRBBBfBBBBBqB\BHB=B3B3B=BRBfB{ B!B"B#B%BR&B'B(B*B=+B,B-B /BR0B1B2B34B{5B6B8B\9B:B;B)=Bq>B?B@BBBRCB{DBEBFBGB IBJB)KB3LB3MB3NB)OBPBQBQBRBSBRTBUBUBVB)WBWBfXBXB{YB B B B B= Bf B B B B\ B B Bq B B\BB\BBBBB{B3BBBB\B=B)BB BB BBB3BR Bq!B"B#B$B)&B\'B(B)B+B\,B-B.B30B{1B2B 4B\5B6B7B39B{:B;B =BH>B?B@BBB3CBfDBEBFBGBHBJB KBLBMBNB OBPBPBQBRBqSB=TBUBUBqVBWBWBRXBXBfYB B B B B B3 Bf B B B) B{ B B= B BBB)BBRBBBHBBBBRB)B BBBBBBBB B BH!Bf"B#B$B%B3'Bq(B)B*B3,Bq-B.B 0BR1B2B3B35B{6B7B9B\:B;BBf?B@BABCBHDBqEBFBGBHBIBJBLBMBNBNBOBPBQBRB\SB)TBTBUB\VBWBWB=XBXBRYB B B B B B B3 Bf B B BH B B B{ B BqBBBBB\BBBBRBBBBBBBBBBBBB!B="Bf#B$B%B'B=(B{)B*B ,BH-B.B/B)1Bq2B3B 5B\6B7B8B3:B{;BBH?B@BABBB)DBREB{FBGBHBIBJBKBLBMBNBOBPBQBqRBHSBTBTBUB=VBVBWB)XBXB=YB\ B\ Bq B B B B B3 B{ B B Bq B BH B B=BBRBBB)BBBRBBBBBB{BqBqBqB{BBBB B "B=#Bf$B%B&B(BR)B*B+B-Bf.B/B1BR2B3B4B36B{7B8B:B\;BB)@BfABBBCBDBFB=GB\HB{IBJBKBLBMBNBOBqPBRQB)RBSBSBTBHUBVBVBHWBWBqXBYB B B B B B3 B\ B B B) B{ B B= B B B BBBHBBB=BBBBRB)B BBBBBBBBB3BR B{!B"B#B%BR&B'B(B*B\+B,B-B=/B0B1B)3Bq4B5B7B\8B9B:B=B @B=AB{BBCBDBFB)GB=HB\IBqJB{KB{LB{MB{NBfOBRPB3QBRBRBSB{TB3UBUBVB3WBWB\XBXB B B B B B B) Bf B B BH B B Bq B Bf B B{BBB\B BBBRBBBBBBBBBBBBB) BR!B{"B#B$B)&Bf'B(B)B3+B{,B-B/B\0B1B3BR4B5B6B=8B9B:BB?BAB\BBCBDBEB GB)HB=IBRJB\KBfLBfMB\NBROB=PBQBRBRBSBfTBUBUB{VBWBWBHXBXB\ B\ Bf B{ B B B B3 Bq B B Bf B B= B B3 B BHBB{B)BBBRBBBBBBB{B{B{BBBBBB!BR"B#B$B%B3'B{(B)B +BR,B-B.B30B1B2B)4B{5B6B8Bf9B:B;B==B>B?BAB=BBqCBDBEBFB HBIB3JBHKBHLBHMBHNB3OBPB QBQBRBSBHTB UBUBfVB WBWB3XBXB) B) B3 BH Bf B B B B= B B B3 B B B{ B B BBBHBBB\BBBBBqB\BRBHBHBHBRBfBBBB B"BR#B$B%B 'BH(B)B*B),Bq-B.B0B\1B2B4BR5B6B7B=9B:B;B=Bf>B?B@BBBRCB{DBEBFBGB IBJB)KB3LB3MB)NBOB PBPBQBRBqSB3TBTBUBRVBVBWBXBXBBB B B3 B\ B B B BR B B Bf B BH B BH B BqBBBfB)BBBB\B=B)BBBBBB3BRBqBB B!B)#B\$B%B&B(Bf)B*B+BH-B.B/B31B2B3B)5B{6B7B9Bf:B;B=B=>B?B@BBB3CB\DBEBFBGBHBJB KBLBMBNB OBOBPBQBRB\SBTBTBUB=VBVB{WB XBXBBBBB B) B\ B B B Bq B B3 B B B B B B=BBB3BBB{BRB)B BBBBBBB BB=BfB B!B"B3$Bq%B&B'B=)B*B+B-Bq.B/B1Bf2B3B 5BR6B7B8BH:B;BBf?B@BABCB=DBqEBFBGBHBIBJBLBMBMBNBOBPBQBqRBHSB TBTB{UB)VBVBfWBWB{XBBBBBBB B\ B B B= B B Bf B B\ B Bq B BBRBBB{BHBBBBBBBBBBBB B3Bf B!B"B$B=%B&B'B )B\*B+B,BH.B/B0B=2B3B4B36B7B8B:Bq;BBH?B@BABBB)DBREB{FBGBHBIBJBKBLBMBNBOBPBQB\RB)SBSBTBfUBVBVBRWBWBfXBRB\BfB{BBBB) Bf B B B\ B B3 B B) B B= B BqBBBBHBBBBBBB{B{B{BBBBBB3 Bf!B"B#B%BR&B'B(B)*B{+B,B.Bq/B0B2Bf3B4B 6B\7B8B:BH;BB@B\ABBBCBDBFB=GB\HB{IBJBKBLBMBNB{OB\PB=QBRBRBSBqTB)UBUB{VBWBWB)XBBBBBBBHBBB Bf B B B B B B B B3 B B{B)BBBqBHBBBBBBBBB B)BHBqBB B "BH#B$B%B'B\(B)B*BH,B-B.BH0B1B2BH4B5B6B=8B9B:B3B@B=AB{BBCBDBFB)GBHHB\IBqJB{KB{LB{MBqNB\OBHPB)QBRBRBSB\TB UBUBfVBWBWBXBBBBBBBBRBBB) B B BR B BH B B\ B B B=BBBqB=B BBBBBBBBBBBB=BqB B!B#B\$B%B&B3(B{)B*B,Bq-B.B0Bq1B2B4Bq5B6B8Bq9B:B B?BAB\BBCBDBEB GB)HB=IBRJB\KBfLB\MBRNBHOB3PBQBQBRBSB=TBTBUBHVBVB{WBXBHBRB\BqBBBBB\BBBR B B B B B B) B B\ B BB{B=BBBBBB{BqBqB{BBBBB B=Bq B!B"B)$Bq%B&B(BR)B*B+BH-B.B/BH1B2B3BR5B6B7BH9B:B;B3=B{>B?BAB=BBqCBDBEBFB HBIB3JB=KBHLBHMB=NB3OBPBPBQBRBfSB)TBTBUB3VBVBfWBWBBBB3BRB{BBBBfBB B{ B B\ B Bf B B B) B BB=BBBB{BfBRBHB=B=BHB\BqBBBB B= B{!B"B#B=%B&B'B))Bq*B+B-Bq.B/B1B{2B3B)5B{6B7B)9B{:B;B=B\>B?B@BBBRCB{DBEBFBGB IBJB)KB)LB)MB)NBOBPBPBQBRBRSBTBTB{UBVBVBRWBWBBBBBBHBqBBB3BBBH B B) B B) B BR B B BRB BBBfBHB)BBB B BB)B=B\BBBB BH!B"B#B%B\&B'B(BH*B+B,BH.B/B0BR2B3B5B\6B7B9BR:B;BB{?B@BAB3CB\DBEBFBGBHBJB KBLBMB NBOBOBPBQBqRB=SBTBTBfUB VBVB=WBWBBBBBBBHB{BB B\BB B B B{ B B B) B B{ B)BBB{BHB)B BBBBBB B)BHBqBBB B=!B{"B#B%BR&B'B(B=*B+B,B=.B/B0BH2B3B5BR6B7B9BR:B;BB{?B@BAB3CB\DBEBFBGBHBJB KBLBMB NBNBOBPBQBqRB=SBSBTB\UB VBVB3WBWB{B{BBBBB BHBBBB{BBR B BH B B\ B B B= B BBqB=BBBBBBBBBBBB=BfBBB !BH"B#B$B&Bq'B(B*Bf+B,B.Bq/B0B2B{3B4B)6B7B8B):B{;BB\?B@BABCB=DBqEBFBGBHBIBJBKBLBMBNBOBPBQB\RBSBSBTBHUBUBVBWBWBHBHBRBfBBBB BRBBBHBB B B B B) B B\ B B B{B=B BBBBBBBBBBBB B3BfBB B"B\#B$B%B='B(B)B=+B,B-BH/B0B2BR3B4B 6B\7B8B :B\;BB=@B{ABBBCBEB=FB\GB{HBIBJBKBLBMBNBOBfPBHQBRBRBSB\TB UBUBRVBVBqWBBBBBBB3BfBBBHBBBqBBf B B{ B B Bf B B BBfB=BBBBBBBB B)BHBqBBB BH B!B"B$Bf%B&B (Bf)B*B,Bq-B.B)0B1B2B=4B5B6BH8B9B:BHB@B\ABBBCBDBFBHGBfHB{IBJBKBLBMBNBqOBRPB)QBRBRBSBHTBTBUB=VBVB\WBfBfBqBBBBB3BqBB BfBB3BB) B BH B B{ B) B B B\B)BBBBBBBBBBBB=BfBBB B\!B"B#B=%B&B'B3)B*B+BH-B.B0B\1B2B4Bq5B6B)8B{9B:BB@B=AB{BBCBDBFB)GBHHB\IBqJB{KB{LBqMBfNBROB=PBQBQBRB{SB3TBTBUB)VBVBHWB3B3B=BRBqBBBB3BBB)BBBqBB{ B B BH B B Bf B)BBBBBB{B{B{BBBBB B3BfBBB)!Bq"B#B %B\&B'B )Bf*B+B-B{.B/B31B2B3BH5B6B8B\9B:BB?BAB\BBCBDBEB GB)HB=IBRJB\KB\LB\MBRNB=OBPBQBQBRB\SBTBTBqUBVBVB3WBBB BB3B\BBBBHBBB\BB=BB= B Bq B B Bq B) B BBBqB\BHBHBHBHBRBfBBBBB=BqBB B="B#B$B3&B'B(B3*B+B,BR.B/B 1Bf2B3B)5B6B7B39B:B;B)=B{>B?BAB=BBqCBDBEBFB HB)IB3JB=KBHLB=MB3NB)OB PBPBQBRBHSBTBTB\UBVBVBWBBBBBBBRBBB B\BBBBBB B B3 B B B3 B B BB\B=BBB B BBB3BRB{BBB B=BB B "B\#B$B&BR'B(B *Bf+B,B.B/B0B=2B3B5B\6B7B 9Bf:B;B =BR>B?B@BBBRCBDBEBFBGB IBJB)KB)LB)MBNB OBOBPBQBqRB3SBSBTBHUBUB{VB WBBBBBBBBRBBB)BBBRBBHBB\ B B BH B B B{ BHBBBBBBBBBBB=BqBBB BRB B!B)#B{$B%B)'B(B)B=+B,B-B\/B0B2B{3B4B36B7B8BH:B;BB{?B@BBB3CBfDBEBFBGBHBJB KBLBMB NBNBOBPBQB\RBSBSBTB3UBUBfVBVBRBRB\BqBBBBBRBBBHBBBB BB) B Bf B B B{ BH BBBBBBBBBBBB B3BfBBBBf B!B#BR$B%B&BR(B)B +Bq,B-B3/B0B1BR3B4B6Bq7B8B:Bq;BB\?B@BABCBHDBqEBFBGBHBIBJBKBLBMBNBOBPB{QBHRB SBSBqTBUBUBRVBVBBB)B=BRB{BBBBfBBBqBBRBB\BB B) B B BH B B BBB{BqBfBfBqB{BBBBB3BqBBB3 B{!B"B$Bq%B&B)(B)B*BH,B-B /Bf0B1B)3B4B5BH7B8B:BR;BB=@B{ABBBCBEBHFBfGBHBIBJBKBLBMBNB{OB\PB3QBRBRBSB3TBTB{UBVBVB{B{B{BBBBB3BqBB BfBB3BB)BB=BB{ B) B B B\ B3 B BBBBBBBBBB3BfBBBBRBB B="B#B$B=&B'B)B\*B+B-B.B/BR1B2B4B{5B6B38B9B:B=B@B\ABBBCBEB)FBHGBfHB{IBJBKBLBMB{NBfOBHPBQBQBRBqSBTBTBfUBVBVB=B=BHBRBqBBBB3B{BB)BBBqBBqBBB= B B B\ B) B B BBBBBBBBBBB3BfBBBBfB B "B\#B$B&Bq'B(B3*B+B,B\.B/B)1B2B3BR5B6B8Bq9B:BB@B=AB{BBCBDB FB3GBHHB\IBqJB{KB{LBqMBfNBHOB)PBQBQBRBRSB TBTBRUBUB{VB BB BB3B\BBBBHBBBRBB3BB=BBfB B Bf B) B B B B{B\BRBRBRB\BqBBBBB3BfBBB3B B!B)#B$B%B='B(B*Bf+B,B3.B/B1Bf2B3B)5B6B7BH9B:B;BH=B>B?BAB\BBCBDBEBGB3HBHIBRJB\KB\LB\MBHNB3OBPBPBQBRB=SBSBTB=UBUBfVBBBBBBBHBBB B\BBBBB{BBB)BB{ B) B B B B\ B=B)BBBBB3BRBqBBBB3BqBBBR B!B#BR$B%B'Bq(B)B=+B,B .Bq/B0B=2B3B5Bf6B7B)9B{:B;B)=Bq>B?BAB=BBqCBDBEBFBHB)IB=JBHKBHLB=MB3NBOBPBPBQBqRB)SBSBTB)UBUBRVBBBBBBBBHBBBB{BBHBB=BBRBBB= B B B{ BH B BBBBBBBBB3B\BBBB=BBB Bq!B"B)$B%B&BH(B)B+B{,B-BH/B0B2B{3B4B=6B7B9B\:B;B =BR>B?B@BBBRCBDBEBFBGBIBJB)KB)LB)MBNBOBOBPBQBRRBSBSBqTBUBUB=VB\B\B\BqBBBB BHBBB=BB BBBBBBRB B B{ B= B B B BBBBBBBBB)B\BBB BRBBBH!B"B#BR%B&B(B{)B*BH,B-B/B0B1BR3B4B6B{7B8B=:B;BB{?B@BBB3CBfDBEBFBGBHB JBKBLB MBNBNBOBPB{QB=RBSBSB\TBUBUB)VBBB)B3BRBqBBBB\BBBfBBHBBRBB{BBB{ B= B B B B B{BqBqBqB{BBBBBB\BBBBqBB!Bf"B#B)%B&B'BR)B*B,B-B.B\0B1B)3B4B5BR7B8B:Bq;BB\?B@BABCBHDB{EBFBGBHBIBJBKBLBMBNBOBPBfQB)RBRBSBHTBTBUBVBBBBBB3BfBBBBqBB)BB BBBB=BBB= B B B Bq BR B=B3B3B3B=BRBqBBBB)B\BBB=BB B="B#B$B\&B'B)B*B+B\-B.B30B1B3Bf4B5B37B8B9BH;BB)@BfABBBCB EB3FBRGBqHBIBJBKBLBMB{NB\OB=PB QBQBRBRSBTBTB3UBUB=B=B=BHBfBBBBBfBB BqBBRBBRBB{BBBB= B B B B B B{BqB{BBBBBB3BfBBB3BBB3 B!B"BH$B%B'B{(B)BR+B,B).B/B1Bq2B3B=5B6B 8Bf9B:BB @BHABBBCBDBFB=GBRHBfIB{JB{KB{LBqMB\NBHOBPBPBQBRB=SBSBTBUBUBBBBB)BHBqBBB)B{BB3BBBBBB=BBBHB B B Bq B\ BH B=B=B=BHB\B{BBBB3BqBBBRBB B\!B"B$B{%B&BR(B)B)+B,B.Bq/B0BH2B3B5B{6B7BH9B:BB?B)ABfBBCBDBEBGB=HBRIB\JBfKBfLB\MBHNB)OB PBPBQBfRBSBSBqTB UBUBBBBBB B3BfBBB=BBB\BBRBBfBBBRB BB B\ B= B B BBBB B)B=BfBBBB=BBBBqBB)!B"B#BR%B&B(B)B*Bf,B-B=/B0B2B3B4B\6B7B9B{:B;B)=B{>B?B ABHBBCBDBEBGBHB3IBHJBHKBHLB=MB3NBOBOBPBQBRRB SBSB\TBTBUBBBBBBBB)BfBBBRBBBBBB)BBfBBBBR B B B B B BBBBB B)B\BBB BHBBB=BB BR"B#B%B&B'B\)B*B=,B-B/B0B1B\3B4B36B7B9B\:B;B =B\>B?B@B)BBfCBDBEBFBHBIB)JB3KB3LB)MBNBOBOBPB{QB=RBRBSBHTBTBqUBRBHBRB\BqBBBB)BqBBB{BB\BB\BBB)BBBHB B B B B B BBBBBBBBRBBBBfBB BfB B"B#B$B\&B'B3)B*B ,B{-B.B\0B1B33B4B 6Bq7B8B3:B;BB?B@B BBHCB{DBEBFBGBIB JBKBLB MBNBNBOBPBfQB)RBRBSB3TBTB\UBBBBB3B\BBBB3BBB=BBBBBBHBBBRB BB B Bf BR BH BRBRB\BqBBBBBRBBB)B{BB3B B!BR#B$B)&B'B)Bq*B+BR-B.B30B1B 3B{4B5BR7B8B:Bq;BBf?B@BAB)CB\DBEBFBGBHBIBKBLBLBMBNBOBPBRQBRBRB{SBTBTBHUBAAAABBHB{BBBHBBBfBB\BBqB BB\BBBBq BH B) B B BBB)B=B\B{BBBB\BBBHBBB\ B!B#B$B%Bf'B(BH*B+B)-B.B 0B{1B2BR4B5B)7B8B9BH;BA>AfAAAAAA=BBBHBBBB)BBRBBB\BBBB Bq Bf B\ B\ BfBqBBBBB3BqBBBRBBB\BB)!B"B#Bf%B&BH(B)B)+B,B.B/B0Bf2B3BH5B6B8B9B:B=B)@BqABBBCBEB=FB\GBqHBIBJBKBLBMBqNBROB)PBPBQBqRBSBSBfTBTBAAAAARAAApABRBB BqBBfBB{BBBfBBBBqBR B3 B) B B B)B3BRBqBBBB=BBBBqBB)BB B\"B#B3%B&B(B)B+Bq,B-B\/B0B=2B3B5B6B7B\9B:BB @BHABBBCBDBFB=GB\HBqIB{JB{KB{LBfMBRNB3OB PBPBQB\RB SBSBRTBTB\AHA\ApAAA(AzAAA BfBB3BBBB=BB{B)BBBfB3B B B B B B BBB3B\BBBBHBBB=BBBRB B)"B#B%Bq&B'B\)B*BH,B-B3/B0B2B3B4Bf6B7B=9B:B;BH=B>B?B)ABfBBCBDBFBGB=HBRIB\JBfKB\LBRMB=NBOBOBPBQBHRBRBSB=TBTBAAAAA\AAAzA AA)BBBfBBfBBB3BBB\B)BBB B B B B BBBBBRBBB B\BBB\BBB B!Bf#B$BH&B'B))B*B,B-B /B{0B1Bf3B4B=6B7B9Bq:B;B)=B{>B?B ABHBBCBDBEB GBHB3IBHJBHKBHLB=MB)NB OBOBPBqQB3RBRBSB)TBTBfARAfAzAAAAAAAAAHBB)BB)BBRBBB\BBBBB{ Bq Bf Bf Bq BBBBBBRBBBBqBB)BBBR B!B3#B$B&B'B)B{*B+Bf-B.BR0B1B=3B4B6B7B8BR:B;B =B\>B?B@B)BBfCBDBEBFB HBIB)JB3KB)LBMB NBNBOBPB\QBRBRBqSBTBTBAAAA(ARAA AAAAHA BqBBfBB{BBBfBBBB{BRB= B) B) B) B3 BHB\B{BBBBRBBB=BBBRBB B!B#Bq$B%B\'B(BH*B+B3-B.B)0B1B3B4B5B\7B8B):B;BB?B@B BBHCB{DBEBFBGBIB JBKBLB MBMBNBOBPBHQBRBRB\SBTBTBpA\A\ApAAA(AA AA(AAA3BBBB=BB{B)BBBfB=BB B B B B B BBHBqBBBBfBBB\BBBBB\!B"B=$B%B)'B(B*B+B -B.B0Bq1B2B\4B5B=7B8B :Bf;BBf?B@BAB)CB\DBEBFBGBHBIBKBKBLBMBNBOBfPB3QBQBRBHSBSB{TBAAAAA\AAAzA AARA AAfBBfBBB3BBB\B)BBBB B B B B BB B3BfBBB)B{BB)BBBRBB)!B"B $B%B&Bq(B)Bf+B,B\.B/BH1B2B34B5B7B{8B9BH;BB)@BqABBBCBEB=FB\GB{HBIBJBKBLB{MB\NB=OB PBPBQBHRBRBSB)TB AAA A4A\AAAzA AARA AAAAfBBB3BBB\B)BBBBB B B B B BB=BqBBB=BBBHBB B{BBR B!B=#B$B3&B'B3)B*B),B-B)/B0B2B3B 5B{6B7BR9B:BB @BRABBBCBDBFBHGB\HBqIB{JB{KBqLBfMBHNB)OBOBPB{QB3RBRB{SBTBAzAzAAAA4AAAzAAAA\A>A4A)BBRBBB\BBBBB{BqBq Bq B{ B B BBB=B{BB B\BB BqBB=BB B!B #B$B&B'B)B{*B,B{-B.Bq0B1Bf3B4BR6B7B)9B:B;BH=B>B?B3ABqBBCBDBFB)GB=HBRIB\JB\KB\LBHMB3NB OBOBPBfQBRBRBfSBTBAAAA(AfAA AAAAHAAAAAAqB BB\BBBB{BRB=B3B) B3 B= BR Bq BBBB=B{BBB{BB3BB B{BBf!B"BR$B%BR'B(BR*B+BR-B.BH0B1B=3B4B)6B7B 9Bq:B;B)=B{>B?B ABRBBCBDBEB GB)HB=IBHJBHKB=LB3MBNBNBOBPBRQB RBRBRSBSBAAAAAA>AA AA(AAAfAHARA\A=BB{B)BBBqBHBB BB B B B B= BfBBB BRBBBHBB B{BBRBB=!B"B3$B%B3'B(B3*B+B3-B.B30B1B)3B4B6B7B8B\:B;B=Bf>B?BAB=BB{CBDBEBGBHB)IB3JB=KB3LB)MB NBNBOBPBHQBRBRBHSBSBA A AA4ApAAAA AARA AAAAAAB=BBB\B)BBBBBB B B B B)B\BBBBfBBBqBB=BBBB !B"B$B%B'B(B*B+B -B.B0B1B3B{4B5B\7B8B3:B;BB?B@BBB\CBDBEBFBHBIBJBKBLB MBMBNBOBqPB3QBQBRB3SBSBAAAAAA4AAAAAAA\A>AHARApARBBB\BBBBBB{B{B B B B B BBRBBB)B{BB3BB B{BB\B BR"B#BR%B&BR(B)BR+B,B\.B/B\1B2BR4B5B=7B8B :Bq;BBq?B@BBB=CBqDBEBFBGBHBJB KBLBLBMBNBOB\PBQBQB{RBSBSB(AAAA>AfAA AAAAHAAAAAAABBfBBBB{B\BHB=B=B= BR Bf B B BBBRBBB=BBBfBB=BB)B B"B#B%B&B(B)B)+B,B).B/B31B2B)4B5B7B8B9BR;BBR?B@BABCBRDBEBFBGBHBIBJBKBLBMBNB{OBHPB QBQBfRB SBSBAAAAAA>AAAAAAARA4A>AHAfAAqBBBBfB=BB BBB B B) BH Bq BBBBfBB BfBB)BB B{BBq B!Bf#B$Bq&B'Bq)B*B{,B.B/B1B2B4B{5B6B\8B9B);BAAAAAAA A)BBBRBBBBBBBB B B B) B\BBB)BqBB)BBB\BBHBB3 B!B3#B$B=&B'BH)B*BR,B-B\/B0B\2B3BR5B6B38B9B ;BfA\AAABRBBBBBB{BqB{B B B B BB\BBB3BBBRBB)BB BB B!B#B$B &B'B)B*B,B-B)/B0B32B3B)5B6B8B{9B:BHB=@BABBBCB)EBRFBqGBHBIBJBKBLB{MB\NB3OBPBPB{QB)RBRB\SB(AAAA(AfAA ApAAA4AAAAAAAAHARB BBBqBRB=B3B3B=BH Bf B B B BB\BBBRBBB{BB\BBRBBH!B"BR$B%B\'B(Bq*B+B{-B/B0B 2B3B5B{6B7B\9B:BB@BfABBBCB EB3FBRGBqHB{IBJBKB{LBfMBHNBOBOBPBfQBRBRBHSBAAAAAA(AzAApAAApA>AAAA>AAABBB\B3BBBBBB B BH Bq B BBBqBBB{BBHBB)BBBB!B"B$B%B3'B(B=*B+BR-B.B\0B1B\3B4BR6B7B39B:BB@BHABBBCBDBFB=GBRHBfIBqJBfKB\LBHMB)NB OBOBPBRQBRBRB3SBA AA AA\AAAfAApA(AAAAAAAA>AABHBBBBBBBBB B B) Bf BBB)BBB=BB B{BBfBB\B Bf"B#Bq%B'B(B *B+B-B.B)0B1B33B4B)6B7B 9B{:B;B3=B>B?B)ABfBBCBDBFBGB3HBHIBRJBRKBHLB3MBNBNBOBPB=QBQBRBSBAzAzAzAAAApAAfAAARAAA AA4AfAA A=BBBBBqBfBfB{BB B B B B\BBBHBBBfBB=BB3BB)B B3"B#B=%B&BR(B)Bf+B,B{.B0B1B 3B4B6B{7B8BR:B;B=Bf>B?BABHBBCBDBEBGBHB3IB3JB3KB)LBMBNBNBOBfPBQBQBqRB SBAAAAARAAA\AAfA AAAAzAAAAAABBBfBHB3B)B)B3BHB\ B{ B B BBfBB B\BB)BB B{BBqBB{ B"B#B %B&B)(B)B=+B,BR.B/B\1B2B\4B5BR7B8B):B;BB?B@B)BBfCBDBEBFBHBIBJBKBLBMBMBNBOBRPB QBQB\RBRBApApApAAAAfAAHAAAHAAAAA(A\AAApA{BHBBBBBBBB B= Bf B B B)BqBBBBB\BB=BB=BB= B!BR#B$Bf&B'B)B +B,B.B/B31B2B=4B5B)7B8B :Bq;BB{?B@B BBHCB{DBEBFBGBHBJBKBLBLBMBNB{OB=PBPBQBHRBRB AAAA A4AAA>AA\AAAAfApAzAAAApAA3BBBBBBBBBB B) B\ B BB3BBBHBBBB BBBB B!B#B$B3&B'BR)B*Bf,B-B{/B 1B2B4B5B 7B{8B9BH;BB\?B@BAB)CB\DBEBFBGBHBIBJBKBLBMBNBfOB)PBPBQB3RBRBAfAfAfAzAAAHAA>AApA(AAAAA A>AAARAABB{BfB\B\BfB{BB B B B\ BBBHBB BqBBRBBHBBRBB\!B"B{$B&B'B)B*B=,B-BR/B0Bf2B3Bf5B6BR8B9B);BAAAzA\ARA\AzAAARAA\A{BRB3BBBB)B3BRB{ B B B BfBB BfBB3BBBBBBBB)!B"BH$B%B\'B(B{*B ,B-B)/B0B=2B3B=5B6B)8B9B;BfAAAAfAAAAAAAAfAAHAA3B BBBBBBB B3 Bf B B BBqBB)BBBfBB\BB\BBfB B"B $B%B3'B(BR*B+Bq-B.B0B2B3B5B6B 8Bq9B:B=BH@BABBBDB3EB\FB{GBHBIBJBKBLBqMBHNBOBOBPBRQBQBRBAAAAAA\AAAA4AAA\A>A4A>A\AAAHAA>AABBBBBBBBB B\ B B B3BBBRBB)BBBBBB3B BH"B#Bq%B'B(B*B+B=-B.B\0B1Bq3B4Bf6B7BR9B:BB@BfABBBCBEB=FB\GBqHBIBJB{KBqLB\MB3NB OBOBPB=QBQB{RBzARA>ARAfAAAAAAAHAAAAAAAA\AA(AAHA{B\BRBHBHB\BfBBB B B\ B BBHBBB{BBfBBfBBqBB B"B#B=%B&B\(B)B+B-B.B30B1B=3B4B=6B7B)9B:BB@BHABBBCBDBFB=GB\HBfIBfJBfKB\LB=MBNBNBOBqPB)QBQBfRBAAAAAA>AA AAAApA>AAAA>ApAA(AAAA3BB BBBB)B=BfB B B B\ BB BqBB=BB)BB)BB3BBR B!Bq#B %B&B)(B)BR+B,Bq.B0B1B3B4B6B7B 9Bq:B;B3=B>B?B)ABqBBCBDBFB)GB=HBHIBRJBRKB=LB)MBNBNBOB\PB QBQBRRB\AHA4A4AHApAAAzAAA(AAAAAAAA>AA AA(AABBBBBBB)BR B B B BqBB)BBB{BBqBB{BBB B!B=#B$Bf&B(B)B+B,BH.B/Bf1B2Bq4B5Bq7B8BR:B;B=Bq>B?B ABRBBCBDBEB GBHB3IB3JB3KB)LB MBMBNBOBHPBPBQB=RBAAAAAA4AAAfAAARAAAAAARAA AzAAAHAB{BqB{BBBBB BH B B B3BBBRBB=BB3BB=BBRBBq!B #B$B3&B'B\)B*B,B.B/B=1B2BH4B5BH7B8B):B;BB?B@B3BBfCBDBEBFB HBIBJBKB LBLBMBNBqOB3PBPBQB)RBRA(AA(A>AfAAA\AAfA AAApAfApAAAAzAApA AAHB3B)B3B=BRBqBBB BR B B BHBBBBB{BB{BBBBB=!B"Bf$B&B'B3)B*B\,B-B{/B 1B2B4B5B7B8B:Bq;BB{?B@BBBHCBDBEBFBGBIBJBKBKBLBMBNB\OBPBPBqQBRBAAAAAAAfAAHAAzA4AAAAAA4AzAA\AAzA(ABBBBBB)BRBB B BR B B BqBBHBB=BB=BBRBBqB !B"B3$B%Bf'B)B*B),B-BR/B0Bq2B3B{5B6Bq8B9BH;BB\?B@BAB3CBfDBEBFBGBHBIBJBKBLBMB{NBHOBPBPB\QBQBHAA A AAHAAA>AAHAAApARAHARAAAA\AARAAApABBBBBBBRB B B Bq BB3BBBB BB BB)BBHB Bq"B $B%B='B(Bq*B ,B-B3/B0BR2B3B\5B6BR8B9B3;BAApAAAfB\BfBqBBBB BH B B B3 BBB\BBHBBHBB\BB{BB B="B#Bq%B 'B(B=*B+Bq-B/B0B)2B3B35B6B)8B9B ;BqAA4AAARABBB)BHBfBBB BH B B BRBBBB BB BBBBHBBq B "B#B=%B&B{(B*B+B=-B.Bq0B2B3B 5B6B 8B{9B:BRAAAAAAAA>AAAA>AAAABBBBBHB{BB BR B B BqBBRBBRBB\BB{B BB= B!Bq#B %B&BH(B)B{+B-B.B=0B1B\3B4Bf6B7BR9B:B)B3@B{ABBBCB)EBHFBfGB{HBIBJBKBqLBRMB)NBNBOBfPB QBQBAAAAA AHAAAzA AAfA4AA AA4AfAA AAAApA4AABBBBBB3B{B B Bf B B3BBBB BBBB=BBfB B!B=#B$Bq&B(B)BH+B,B{.B0B1B33B4B=6B7B39B:B B@B\ABBBCB EB3FBRGBfHBqIBqJBfKBRLB3MB NBNBOBRPBPBQBAfA>A>ARAzAA ApAAzAAAApAfApAAAAzAAAAAAzA=BHBRBqBBBB3B{ B B B BB\BBRBBRBBqBBB3BBf!B#B$B=&B'B{)B+B,BR.B/B{1B 3B4B6B7B 9B{:B;BH=B>B?B=AB{BBCBDBFB3GBHHBRIB\JBRKB=LBMBMBNBOB=PBPBQBAAAAAA(AzAA\AAzA4AAAAAA4AAA\AAA>AAAAB B)BHBqBBB3 B B B= BBBB BBBB3BB\BBB3!B"Bq$B &B'BR)B*B,B.B/BR1B2Bq4B5Bq7B8BR:B;B=B{>B?BAB\BBCBDBEBGB3HB=IB=JB3KB)LB MBMBNBqOB)PBPBqQBpAHA4AA4A\AAA>AAHAAApARAHARApAAAHAARAAApA\A\ABBBB)BfBBB= B B BfBBRBBRBBfBBB)BB\B B"B=$B%B{'B)B*B\,B-B/B)1B2BH4B5BH7B8B3:B;B=B\>B?BAB=BB{CBDBEBGBHBIB)JBKB LBLBMBNB\OB PBPB\QBAAAAAA AHAA(AA\AAAAAAAA\AA(AA\AAAAAfB{BBBBB\BB BR B B)BBBBBB)BBRBBBB Bf"B$B%BH'B(B*B),B-Bf/B1B2B4B5B7B8B :B{;BB?B@BBB\CBDBEBFBGB IB JB KBKBLBMBNBHOBOBPB=QBRA(AAAA>AfAAAA(AApA>AAAA>ApAA(AAAAzARA(A(AB3BHBqBBBB\B B B{ B BRBBRBB\BB{BBBHBB B)"B#Bq%B'B(B\*B,B-B3/B0Bf2B3B{5B6Bq8B9BR;BBq?B@BBB=CB{DBEBFBGBHBIBJBKBLBMBfNB)OBOBPB)QBAApApAAAA(AA AA(AAAAAAAA(AA AA(AAAAAABB)BRBBBBq B B3 B BBB BBBB=BBqBBBR B!B#B=%B&B(B)*B+Bq-B /B0B32B3BR5B6BR8B9B3;BAAAfAAAHAA AA ABBB BHBBB) B B B\ BBHBBRBBqBBB3BB{B B!Bf#B %B&BR(B)B+B=-B.B{0B 2B3B)5B6B)8B9B ;BqB=@BABBBDB3EBRFBqGBHBIBJB{KBfLB=MB NBNBOB=PBPBAHA4AA4A\AAA(AA4AAzAHA(AA(AHAzAAAA(AAA\A4A4AHApABB)BfBBBRB B B BBBBBBBHBBB)BBqB!B"Bq$B&B'Bf)B +B,BR.B/B1B3B4B36B7B)9B:B B@BfABBBCBEB=FBRGBfHBqIBqJBfKBHLB)MBMBNB{OBPBPBAAAAAAA4AAAA4AAAAzAAAAAAAA4AAAAAAABBBBfBB Bq B BH B B=BBHBBqB BBHBBB=B B"B3$B%B'B3)B*B,B).B/B\1B2B4B 6B7B 9B{:B;BH=B>B@BHABBBCBDBFB=GBRHB\IBRJBHKB3LBMBMBNB\OB PBPBRA(AAAA(ARAAApAAAHAAAAAAHAAA\AAARA(AAAARA=BfBBBBfBB) B B B{ BB{B BB3BBfB BBRBB BR"B$B%B\'B)B*BR,B-B/B31B2B\4B5Bf7B8BR:B;B)=B>B?B)ABqBBCBDBFBGB3HB=IB=JB3KBLBLBMBNBHOBOBPBAApApApAAAAfAA\AAApARAHARApAAAHAARAAAApApAAAABRBBBB{BBH B B3 BB=BB\BBB)BBqBBBq B"B#B{%B)'B(B{*B,B-Bq/B 1B2B34B5B=7B8B3:B;B =Bf>B?B ABRBBCBDBEBGBHBIBJBKBLBLBMB{NB3OBOBPB4AAAAAAApAA>AA\AAAAAAAAHAA(AA\AAAAAAAHABB=BBB3BB Bq B BqBBBBBHBBB3BBB= B!B#BH%B&B(BH*B+B-B=/B0Bq2B 4B5B7B8B :B{;BB?B@B3BBqCBDBEBFBHB IB JBKBKBLBMBfNBOBOBqPBAfA>A>A>AfAAA4AA(AApA>AAA A(ApAAAAAAzARA>A>ARAzAABBB=BBBHB B) B B)BB=BBqB BBRBBBRB B!B\#B %B&Bf(B*B+Bq-B/B0BH2B3Bf5B6Bq8B9B\;BB{?B@BBBRCBDBEBFBGBHBIBJBKBLBMBRNB OBOB\PBAAAAAAA>AA AA(AAAzApAzAAAApAAzA(AAAAAAAA3BfBBBHBBBq B Bf B BqBBB)BBqBBBfBBB{!B)#B$B&B=(B)B+B=-B.B0B2B3B=5B6BH8B9B3;BB\?B@BAB3CBfDBEBFBGBHBIBJBKBLBqMB3NBNBOBHPBpA4AA A A4A\AAAfAAA>AAAAAA(ApAARAAA4A AAAAHAAAB\BBBRBB) B B B B)BBRBBB3BBB)BBB=!B"B$BR&B (B)Bf+B -B.B\0B1B3B5B6B8B9B;B{AA4AAAzARAfAzAAA4ABB\BB BqBBR B B\ BB{B BBHBBBHBBBRB !B"Bq$B&B'B)B3+B,B.B)0B1B\3B4B{6B8B{9B:B\AAAAAA(AfAA4AARAAAAAAAA(AA AA>AAAAAAARAABB BfBB)BB B B BB3BBfB BB\B BBfBB B"B3$B%B'BR)B+B,B\.B0B1B33B4BR6B7BR9B:B3BH@BABBB DB=EB\FB{GBHBIBJBqKBRLB)MBMBNBfOB PBApAHA4A4A\AAAAA AARAAAAA A>AAAfAAA\AA AA4A\AAA3BqBBBqBBHB B= B BRBB{BBBfBBBqBBB B="B#B%Bf'B)B*B{,B.B/Bf1B3B4B6B7B)9B:B B@BqABBBCBEB=FBRGBfHBfIBfJBRKB3LB MBMBNBHOBOBAAAAAAAAAAfA AAzA\A>AHAfAAA>AAHAAAAzAzAAA A\AABqBBBBBq B B{ B BB=BB{B)BBB3BBBR B "B#B{%B3'B(B*BH,B-B/B=1B2Bq4B5B{7B9B{:B;BH=B>B@BRABBBCBDBFB=GBHHBRIBHJB=KBLBLBMB{NB3OBOBzA>AAAAA>AAAHAAfA AAAAAAA>AAAARAAAAAA(AfAAABB{BB=BB) B B3 B B\BBB=BBBHBBBfB B!B#BH%B&B(Bf*B,B-Bq/B1B2BH4B5B\7B8BR:B;B)=B>B?B)ABqBBCBDBFBGB3HB3IB3JBKB LBLBMBfNBOBOBAAApApAAAA>AA4AAzA4AAAAARAAAzAAApAHA4A4AHAAAAABB)BBBfBBf B B{ BBBRBBBRBBBqB)BB!BR#B %B&B{(B3*B+B-B=/B0B2B4B5B37B8B):B;B =Bf>B?B ABRBBCBDBEBGBHBIBJB KBKBLBMBRNB OBOBHA AAAAA AHAAAAAAApARA\AzAAARAA\A AAAAAAAAAA3BBB=BBBB B B3 BBqBBBfBBB{B3BBB\!B#B$B&BH(B*B+Bf-B/B0BR2B3B{5B 7B8B :B{;BB?B@B3BBqCBDBEBFBHBIBJBJBKBLB{MB=NBNBOBAfA>A(A(A>AfAAApAAzA4AAAAAA ARAA4AAfA(AAAAA>AzAAHAA3BBB\BBRB B\ B BB)BBqBBBB=BBBqB)!B"B$B\&B(B)B+B=-B.B0B)2B3B\5B6Bf8B9BR;BB{?B@BBBRCBDBEBFBGBHBIBJBKBLBfMB)NBNB{OBAAAAAAAARAAHAAAHA(A AA4AfAA AAAAA\AHAHApAAA>AA4AB=BBBBB B B BHBBB3BBBHBBBqB3B B"Bf$B)&B'B)BR+B -B.B\0B2B3B)5B6B=8B9B3;BB\?B@BAB3CBfDBEBFBGBHBIBJBKBLBRMBNBNBfOBpA4A AAA AA\AA(AA4AAApAfApAAA AfAApAAAAAAAAHAAAABBRBB=BB= B B\ BBB=BBBRB BB{B3BB Bq"B3$B%B'Bf)B)+B,B.B30B1Bq3B5B6B8B9B ;B{BR@BABBBDB=EB\FB{GBHBIB{JB\KB=LB MBMBNB)OBA\A4A A AAHApAA(AAHAAAAfApAAA AfAApAAAAAAA AHAA(AA\ABfBBRBB\B B B BBqBBBBHBBBBHB B!B#BR%B'B(B*BH,B.B/BR1B2B4B6B7B)9B:BB)@B{ABBBCBEBHFB\GBfHBfIB\JBHKB)LBLBMBqNBOB AAAfAfAzAAAAAAAHAAAAAAAfAA4AAzA>AAAA(AfAA AAAABBB BBB B= B BB)BBBHBBBBHB BB!BR#B%B&B(B\*B,B-B{/B1B2B\4B5B{7B9B{:B;BR=B>B @B\ABBBCBEB)FB=GBRHBRIBHJB3KB LBLBMBRNBOBfAAAAAAA(AzAA\AAA\A(AA(A4AfAAAA(AAA\A\A\AAAAfAApAAfBB=BB=BB\ B B B3BBBHBBB{B=B BBB\!B#B$B&Bf(B)*B+B-BR/B0B2B34B5BR7B8BR:B;B3=B>B?B=AB{BBCBDB FB)GB3HB3IB)JBKBKBLBMB=NBNBApAHA4AA4AHAAA>AAHAAAAfApAAA AfAApAAAAAAA A\AA>AApAB{BBfBB{B B BH B BBRB BB{B=BBBBRB!B"B$Bq&B3(B)B+Bq-B/B0Bq2B 4B5B)7B8B3:B;B=Bq>B?BAB\BBCBDBEB GBHBIBJBKBKBLBqMB)NBNBAAAAzAAAA4AAAAHAAAAAA AfAA4AAfA(AAAA(AfAAAA(AAA)BBBB)BB\ B B BRB BB{B=BBBBRBB B"Bq$B=&B(B)B+B=-B.B0B=2B3B{5B7B8B :B{;BB?BAB=BB{CBDBEBFBHBIBJBJBKBLB\MBNBNBzA>AAAAAA>AAA\AAA\A(AAA4AfAA AAAAA\AHA\AAAAfAApA(AABRBBRBBqB B B\ B BB{B3BBBBHBBB Bq"B=$B &B'B)BR+B -B.Bq0B2B3BR5B6Bf8B9B\;BB?B@BBB\CBDBEBFBGBHBIBJBKBLBHMBNBNBAA\A4A4A4A\AAA>AAHAAAAfApAAAAfAApA AAAAAA A\AA>AAA>ABB{BBB)B Bf B BB{B3BBB{B=B BBBq B="B $B%B'B\)B+B,B.B=0B1B3B5B6B=8B9B3;BBf?B@BBB=CBqDBEBFBGBHBIBJBKBfLB3MBMBNB4AAAAAAAA4AAAAHAAAAAA ARAA4AAfA(AAAA(AfAAAA(AAA3BB)BB=BB{ B B B{B3BBBqB3BBBBfB3 B"B#B%Bf'B))B*B,Bf.B0B1B\3B4B6B8B9B;BAAA\AAAHA(A AAARAA AzAAApA\AHA\AAAAfAAA(AAA\BBfBBB) B B B3BBBfB)BBBB\B)BB!B#Bf%B)'B(B*B{,B3.B/B1B33B4Bf6B7Bq9B:B\AAHAAApARA\AzAAARAA\A AAAAAA A\AA>AAARAA BBBB=BB B3 B BBfBBBB{BHBBBB!B\#B)%B&B(B*BH,B.B/Bf1B 3B4B=6B7BR9B:B=AAAARAAAAAAfAA AA(AAAzAB3BBRBBB= B B B\BBBBqB=B BBB{BR!B#B$B&B(B\*B,B-B/B31B2B{4B6B7B)9B:BB=@BABBBDB)EBHFBfGBfHBfIBRJB=KB LBLBMB=NBARAAAAAA>AzAA\AAzAHAAAA A>AAAfAAA\AHA4AHApAAAfAAA(AAAfBBqBBBHB B BR BBBB\B)BBBBqBHB!B"B$B&B\(B)*B+B-B\/B 1B2BR4B5B{7B9B{:B;B\=B>B@BfABBBCBEB3FBHGBRHBRIB=JBKBKBLB{MB)NBAApAHAHAHA\AAA(AA4AAA\A>AHAfAAA>AAHAAAAzAAAAHAA>AAARA4ABBBBRBB BR B BBBRBBBBB\B3B B B"B$BR&B)(B)B+Bq-B)/B0B2B)4B5BR7B8B\:B;B==B>B?BHABBBCBDBFB)GB3HB3IB)JB KBKBLBfMBNB\A AAAAAAAAAAzAAAAAAAA(AAAA>AAAAAARAA AA(AAAzApA=BBfBBBR B B B{B=B BBBqBHBBBB B{"BH$B&B'B)B+BH-B/B0B\2B4B5B)7B8B3:B;B=B{>B?B)ABqBBCBDBEBGBHBIB JBJBKBLBRMBNBARAAAAAA(AfAAHAAfAAAAAA(ApAA>AAAHAAA4A\AAAfAAA>A AAABBBB\B B B{ B=BBBBfB=B BBBBq BH"B$B%B'B)B\+B-B.B0B32B3B{5B 7B8B:B;B=Bf>B?B ABRBBCBDBEBGB HB IBIBJBKB{LB=MBMBAApAHA4A4AHApAAAAAAfAHA(AA>ApAAAAAAAzAfAzAAAHAA(AAARA4A(AB3BBfBBBq B3 B BBBRBBBBB{B\B3 B "B#B%B'B\)B)+B,B.B\0B 2B3BH5B6Bq8B9Bf;BB?B@B3BBqCBDBEBFBGBHBIBJBKBfLB)MBMB\A AAAzAAAA ApAAfA AAApAfAAAA\AAfAAAAAAA>AAAA(AAAAAHBBqBBBqB) B B BqB=B BBBBfB=BBB!B#B%B\'B))B*B,B{.B30B1B3B5B6BH8B9BH;BB{?B@BBBRCBDBEBFBGBHBIBJBKBRLB MBMBARAAAAAAAfAAAARA AAAAAAHAA(AA\AA AA A4AAARAApA(AAAAABBBqBB B B\ B)BBBBqBHBBBBB!Bq#BH%B'B(B*B,BH.B0B1B\3B4B6B8B9B;BB\?B@BAB3CBfDBEBFBGBHBIBJBqKB=LBLBMBAApAHAAA4ApAAAzAAARAAA AAHAAApAAAfARA>ARAAAAAAApARA4A(AHA3BBqBBB BH B BBB{BRB)BBBBB{B\!B3#B%B&B(B*B\,B.B/B1B)3B4Bf6B7B{9B;BqAAAfAHARA\AAA4AA>AAAAAAAAfAApAAAAAAAB{BBBB= B B BB\B3B BBBB{B\B=B!B#B$B&B(B\*B),B-B/BR1B3B4B=6B7B\9B:BRAA AA(AAAAAAAAzAAA4AAAAAA\AA(AA\AAAAAAB)BB{B3BB B{ BHBBBBB{B\B=BBB B"B$B{&B\(B)*B+B-Bq/B)1B2B{4B6B7B39B:B)BR@BABBBDB=EB\FBfGBqHBfIBRJB)KBKBLBfMBAA\A4AA AAHAAARAApA(AAAAAAfAA4AAzA>AAA(ARAA ApAAA\A>AA(AHA3BB{B)BBB\ B) B BBB{B\B=BBBBB B"Bf$BH&B(B)B+B-BH/B1B2BR4B5B7B 9B:B B3@B{ABBBCBEB=FBRGBRHBHIB3JBKBKBLBRMB\AAAzAfAfAfAAA4AAAApA>AAA4ARAAAzAAAA\A\ApAAA>AAHAAAAzApAAA{B)BBBRB B B BB\B3BBBBBBBf BR"B3$B&B'B)B+BR-B/B0B{2B)4B5B\7B8Bf:B;BR=B>B @B\ABBBCBEBFB3GB=HB3IBJBJBKBLB=MBARAAAAAAA(AzAA\AAAAfA\AfAAA>AAHAAAAAAA4AAAA4AAAAAA A)BBB=BB B B\ B3B BBBBB{B\BHB) B"B#B%B'B)B\+B)-B.B0BR2B3B5B37B8BH:B;B3=B>B?B=ABBBCBDB FBGBHBIBJBJBKBqLBMBAAHAAAA A4ApAA(AAHAAAAAAA(AAAA>AAAAA(AzAAHAAzAHAA AA4AfAB{B3BBBq B= B BBBBBfBRB3BB BB!B#B%B{'B\)B)+B,B.Bq0B)2B3Bq5B 7B8B:B;B =Bq>B?BABfBBCBDBEBGB HBIBIBJBKB\LB MBHAAAfARA>ARAzAA ApAAA4AAAAAA\AA>AAAHAAA4ApAAAAAAA\ARA\AzAA{B)BBB\B B B BB{B\B=B)B BBBBB!B#Bf%BH'B)B*B,B.BH0B1B3BH5B6Bq8B9Bq;BB?BABHBB{CBDBEBFBGBHBIBJBKBHLBLBA>AAAAAAAA>AA4AAzAHA(AA(A\AAAA AAzAfAfAzAAA\AAfA AAAAAA A)BBBHB BB B{ BRB3BBBBBBBBqB\!BH#B3%B'B(B*B,BR.B0B1B{3B5B6BH8B9BR;BB?B@B)BBfCBDBEBFBGBHBIBJBqKB3LBLBAA4AAAAA A4AAAzA AAzA\AfApAAAHAARAAAAAAA>AA AARAAAAAARAA{B3BBBBR B) BBBBBBBqB\BHB3B!B #B$B&B(B*B\,B).B/B1BH3B4B6B8B9B);BBf?B@B BBHCBqDBEBFBGBHBIBJBRKBLBLB4AAzARA(AA(A>AzAA4AARAAAAAAAAzAAA4AAAAA4AAARAAARA4A>AHAfAAA)BBBfB3B B B BB{BfBRB=B)BB BB B"B$B&B(B\*B),B-B/Bq1B3B4Bf6B8B9B ;B{A AAAAARAA4AAzA>AAA>AfAAAA(AAAzAAAAA>ABBHB BB B Bf BHB3BB BBBBBB B"B$Bq&BR(B)*B+B-B/B=1B2B4B=6B7B\9B:B\AApA>AAAARAAAfAAApA\A\ApAAARAApAAAAAAA>AA{B3BBBB\ B= B BBBBBBBBB{Bq B\"BH$B3&B(B)B+B-B\/B1B2Bq4B6B7B=9B:B3AAApAAAARAHAfAAA(AA4AAAAAAA4AAAA\A(A AAA>AAABBBfB3B B B BBBB{BfB\BRBHB=B) B"B$B&B'B)B+Bf-B)/B0B2BH4B5B7B9B:BB=@BABBBDB)EBHFBRGBRHB=IB)JBJBKBqLBfAAApAHA4A4A\AAA>AAHAAAAAAAApAAzA(AAAAAAfAAHAAA\ARAHAfAAA(AABHBBBB B{ BfBRB=B3BBB BBBB!B#B%B'B)B\+B3-B.B0Bq2B4B5B\7B8Bq:B;B\=B>B@BqABBBCB EB)FB3GB3HB)IB JBJBKB\LBAHAAAAzAzAAA ApAAzA4AAAAAAHAAAA\AA A AA\AAAAAAAAAAAApAA)BBBBfBH B) BBBBBBBBBBB!B#B%Bq'BR)B)+B-B.B0B=2B3B5B37B8BR:B;B==B>B@BRABBBCBDB FBGBHBIBIBJBKBHLBAA>AA¿AA¿AؿAARAA4AAfA4AAAA4AzAAHAAARA>A>ARAAAHAAfA AAAAAA\AA(ABBfB=BB B B BBBBBBB{B{BqBf!B\#BR%B='B)B*B,B.B\0B2B3Bq5B 7B8B):B;B=B>B?B3ABqBBCBDBEBGBHBHBIBJB{KB3LB>AؿApA4A AAAAHAAAfAAAfAHA>AHAfAA AzAAAApApAAAAzAAARAAA A(A\AAApA{B=B BBB B B{ BfB\BRBHBHB=B=B3B3B)!B)#B%B'B(B*B,Bf.B)0B1B3B=5B6B{8B:B;BB?B ABRBBCBDBEBFBGBHBIBJBfKBLBAAAzARA>A>ARAzA̾A4AA(AAAzApAzAAA>AAHAAAAAAAHAA>AAAfAHARApAAAHAABBBBqBR B= B) BBB BBBBBBB B"B$B&B(B*Bf,B3.B0B1Bq3B5B6BR8B9B\;BB?B@B3BBqCBDBEBFBGBHBIBJBHKBLB̾AfAA½AApApAA½AAfAApAAAAAAAApAAzA(AAAAA(AAApAAAAAAAA4AAAAB\B=BB B B BBBBBBBBBB B"B$B&B{(B\*B3,B.B/B1B=3B4B6B)8B9B3;BB{?B@BBBRCBDBEBFBGBHBIBqJB3KBKBAAHAA̼AAAAA4AAAA4AAAAAA4AAAAHA AAA AHAAAzAAAAAAAA>AAAABBBBB{ Bq BfB\B\BRBRBRB\B\B\B\ BR"BR$B=&B)(B *B+B-B/BH1B3B4BR6B7B{9B;B{AAAAA(AfA̼A4A½AfAAAAAAfAA4AAfA>AAA>AzAA4AARA AAAAA>AAAfAABBqBRB=B) B BB B B B BBBBB B"B$B &B'B)B+B-BR/B1B2B4B)6B7BR9B:BRAAAA>ApAA(AA4AfB=BBBB B B BBBBBBBBBB!B#B%B'B)B+B\-B)/B0B2BR4B6B7B)9B:B3B=@BABBBDBEB=FBHGB=HB)IBJBJBKBAA>AA¹AAAAعAAfAA\AAAAzAAAAHAARAAAAAAARAAHAAAAzAAAAHAA(AA\ABfBRB=B3 B) B BB)B)B3B=B=BHBRB\B\!B\#B\%BH'B3)B+B,B.B0BH2B4B5BH7B8Bf:B;B\=B>B@BqABBBCB EBFB)GBHB IBIBJBqKBRAعAA4AAA̸AA AHAAAA4AA̼AAAؿAAzAApAAAAAA4AAAzAAAAAAAAzAApAAA)B BBBB B BBBBBBB BBB!B)#B%B'B)B*B,B.B\0B2B3B{5B7B8BH:B;B==B>B@BRABBBCBDBFB GB HBHBIBJB\KBAAAfA(AAAA>AzA̸A4A¹AfAAAAA A>AA AARAAAA(ARAAAA>A AAAAAfAA4AA>AABBBBB{ B{ BBBBBBBBBB B"B$B&B(B*B,B\.B)0B1B3BR5B6B8B:B;B=B{>B?B)ABqBBCBDBEBFBGBHBIBJBHKBAfAAApAHAHAHApAAAfAAARAAA A>ApAA>AApAHAA4AHAAARAApA>AAAARAAAfAAA4AqB\BHB3B)B) B) B3B3BHBRB\BqB{BBB B"B$B&B(B{*B\,B).B0B1B{3B)5B6Bf8B9B{;BB?B ABRBBCBDBEBFBGBHBIBqJB3KBAA4AAAzAzAzAAA4AA(AApARA4A>A\AAA\AAAfARARAzAA ApAAA\A>AHARAAA(AA4AAzABBBBB B B BBBBB)B3BHBRBf Bq"Bq$Bf&B\(B=*B,B.B/B1BH3B5B6B=8B9BR;BB?B@B3BBqCBDBEBFBGBHBIB\JBKB\A̶AfAAصAAAAصAAfA̶AHAAApAfA\AA½AAAAAApApAAA>AAAAApAzAAAA\AAfAAApABBB{B{ B B BBBBBBBBB B)"B3$B)&B(B *B+B-B/Bf1B3B4B{6B8B9B3;BB{?B@BBBRCB{DBEBFBGBHBqIB=JBKBAAAHA AAAA A4AAAzAA·AAAAAA>AAHAAAAAAA\AARAAAAAAA4AAAAHAAAHB3B)B)B) B3 B= BHB\BfB{BBBBBB!B#B%B'B)B+B-Bf/B31B2B4BR6B7B9B ;BAAAA(AfAAAA>AA·AAA̺AA\AAfAAAAAA(AzAApA(AAAAAAfAAHAAzA(AABBBBB B BB BB3BHB\B{BBB!B#B%B'B)B+Bf-B=/B1B2B{4B)6B7B\9B:BfA³AHAAAzAfAzAA̲A ApAAAHAAAAARAAAARA(AAA(AfAA4AAfA4A(AA>AAA>AAHAAAzA)BBBBB3 B= BRBfBBBBBB BB3!B=#B=%B='B3)B+B-B.B0Bf2B4B5Bq7B 9B:BBR@BABBB DB)EB=FB=GB3HBIBIBJBpAAzA(AرAAAA±AA>AAAAfA4AAA>ApA̺A>AؽApAHAA4AHAAARAAAfAHARApAAApAAzA(AAAABBBB B BBB3BRBfBBBBB B#B %B'B(B*B,B.Bq0B=2B3B5BH7B8Bq:B;Bf=B>B)@B{ABBBCB EBFBGBHBHBIBJBA(AA\A AA̰A̰AAA\A±A>AAARAHA>A\AAA\AAAfA>ARAfAA AAAAAfApAAA4AAAA\AAAAfBfBfBqB B B BBBBB=B\B{BB B"B$B&B(B*B,Bq.BH0B 2B3B{5B7B8BR:B;BH=B>B @B\ABBBCBDBFB GBHBHBIB{JBA\AAA>AAAAA>AAApAAAAfA\AzAA AzAAAA\ApAAA(AA4AAAAAAARAAHAAARA(AABB BB) B= B\ BqBBBBBB3BRBq B"B$B&B(B{*B\,B=.B0B1B3BR5B6B8B):B;B)=B>B?B=AB{BBCBDBEBFBGBHBIB\JBAAAApAHAAA4ApAAAAAرAAAzAA̶A(AAA̼AAzAAAAHAARAAAAAA(AAAzAAAApA\ABBBBB B BB=BfBBBBBB3 BH"BR$BR&BR(B=*B),B .B/B1Bq3B)5B6Bq8B:B;B=Bq>B?BAB\BBCBDBEBFBGBHBIBHJBRA¯AHAAAfARARAfAA̮A4AA>AA±AAAAAHAA>AAAAAAAfAApAAAAAAHAAAAHA AAAAHBHBRBfB{B B BBBB=B\BBBBB"B$B&B(B *B+B-B/B{1B=3B4B6BH8B9Bf;BB?BAB=BBqCBDBEBFBGBHBqIB3JBAAzAA­AApApAAAARA̮A\AAA±AAسA AfAطA\A A̼AAAAAAAzA4AAAA4AzAAHAAzA(AAAAABB BB= B\ B{BBBBB=BfBBB!B#B%B'B)B+B-B{/BR1B3B4B{6B8B9B=;BB?B@BBB\CB{DBEBFBGB{HBRIBJBA(AAHAAAAAAAAAAzA4AAAرAA(ApAAzA(AAؽAؿAA>AA AARAAAARAAAfAAA\A4A A A ABBBB B B)BRB{BBBBBHBfB!B#B%B'B)B+Bq-BR/B1B2B4BR6B7B9B;BBf?B@BBB=CBfDB{EBFB{GBfHB=IBJBA\A̬AfA(AA«A«AثAA>AA AARA AAAAHAAAA4AAAA A\AA(AApA>A4A>ApAAAA4AAAfA>A>A>A)B=BRBfB B B BB)BRB{BBBB)BH!B\#Bf%Bf'Bf)BR+B=-B/B0B2Bq4B)6B7Bf9B:BqAA4A̪AzA>AAAA>AzAAHAثAzAHA(AA>ApAA(AA\A4A AA4AAARAAAzApAzAAAfAApAAAAAAAfB{BBBB B) BRBBBBBHB{BB B"B$B&B(B*B,B.B0B\2B4B5B{7B9B:B)AA(A>AAApAAAAzAAAAA AARAAAAAA BB3B\B{B B BB3BfBBBB3B\B B"B$B&B(B*B,B.Bf0B32B3B5BR7B8B:B B=@BABBBCBEBFBGBHBHBIBAApA AAzARA>ARAzAA ApAAApARAHARAAARAسAAHA4A4A\AAAzA AAAAAA4AA(AApAHAA A AAHABBBBR B{ BBBBHBBBBB= B\"Bq$B&B(B{*Bq,BR.B30B2B3B{5B)7B8B\:B;B\=B>B@BqABBBCBDBFBGBGBHBIB©AAA(AاAApA\ApAA§A(AAA©AzA\ARApAAA\AAARA>A>AfAAAA(AAAAAARAAHAAAfARA>A>ARAzA\B{BBB B) B\BBBB3BqBBB B"B3$BH&BH(BH*B=,B.B0B1B3BR5B7B8B3:B;B3=B>B@BRABBBCBDBEBFBGBHB{IBARA§A\AAAAzAAAA4AA(ĄAAzApAzAAAfAAA\AHAHApA½A(AA4AAAAAApAAfAAAApApApAAABB=BfB B BB=BqBBBB\BBB!B#B &B(B*B,B-B/B1Bf3B)5B6B{8B:B;B=B>B?B)ABqBBCBDBEBFBGBHB\IBApAAzAAإAAAA¥AARAAHAAAAzAAAApA AAfARAfAzA̼A4AA>AAAAAAzAAAAAAAAAAABBB B= Bq B BBB\BBBBHB{B!B#B%B'B)B+B-B/Bq1B=3B4B6BR8B9Bq;BB?B ABRBBCBDBEBFBGB{HBHIB4AAAAHAA̤AAAAApAإARAA§AAAA«AAzAAAA\ApAAػA>AAHAAAA A>AA AA>AAAAAAAA)BRB{BBB BR BBB BRBBBB3B\!B{#B%B'B)B+B-Bf/B=1B 3B4B6B)8B9BR;BB?B@B3BBfCBDBEBFBGBfHB3IBfA¥A4AAfAAAأAأAA(AzAApAA̦AAAA̪A(AAAAAfAzAAAHA¿ARAAAAAHAA(AA\AAAAAAAHAABBRBB B B=B{BBB=BBBB!B=#BR%B\'Bf)B\+BR-B3/B1B2B4BR6B8B9B);BB{?B@BBBHCBfDB{EB{FBqGBRHBIBAARAأAA4A AAA AHAAAzAAإAAAAA4AA(A¯AApApAAARA̾A\A(AAAAfAA4AAzA>AAAA(ARAzAABBB)Bf B BB)BqBBB3BqBB B"B%B)'B))B)+B-B/B0B2Bq4B)6B7Bq9B;BAAA̮AAzAzAAA\AؽAfAAA A(ApAARAAA\A4AA4AHApAAA)B\BBB BH BBBB\BBB)BfB B"B$B&B(B*B,B.B0B2BH4B6B7BH9B:B\ARAfAAA4ABB)BfB B B3B{BBB\BBBBR B{"B$B&B(B*B,B.B{0BR2B4B5B7B)9B:B=A(ARAzAAAA>AAأAA¥AA>AA4A̬AAzAAAA\AػAzA4AAA>AAAfAAAApA\ApAAAARA\BBB BR B B B)BqBB BRBBB B3"B\$Bq&B{(B*B{,Bf.BH0B2B3B5B\7B9B:BBR@BABBBCBEBFB GBGBHBApA̠ARAAApAHAHA\AA؟A>AAHAA̢A£A̤AAHAA(AثAAAAAAfAApA>AA(AHAAApAAAAzAzAAAA4AAA)BfBBB= B BBBqBB BRBBB!B$B3&BH(BH*BH,B3.B0B1B3B{5B37B8Bf:B;Bf=B>B3@B{ABBBCBDBFBFBGBHB4AAApA AAzAfARAfAAAHAŸARA AءA̢AأAA>AA4AAAzAAAA\AعAzAHA(A4ARAA AA(AAAAAAAAfAAAB BHBB B) B{BBBqBB BHBB!B#B%B (B*B ,B.B/B1B3BR5B 7B8BH:B;BH=B>B @B\ABBBCBDBEBFBGBHBRAA AA(AAApApApAAARA̞A\AAAءAAAHAA(AةAAAAAAfAAA>AA(A\AAAA4AAAAAAA4AAARAfBBB3B B BBqBBBqBBB=Bq!B#B%B'B)B+B-B/B1Bf3B)5B6B8B:B;B)=B>B?B=AB{BBCBDBEBFBGBqHBpA̞A(AA4AAAzAzAAAAHAAfA AA̠AءA A>AA4ĄAAzAzAAA\AطAzA4A(A4ARAA AA>AAAAAAARAA ApAB=BBB Bq BBB{BBBqBBB)!B\#B{%B'B)B+B-B/Bf1B33B4B6B\8B9B;B=Bq>B?BAB\BBCBDBEBFBGB\HBA؝AHAARAAAAAA›AARA̜A\AAA؟AAAHAA(AاAApAAAAfAApA>AA(A\AAAAHA AAAA A4ApAA>AABBBqB B BqBBB{BB)BqBB B#B=%BR'Bf)Bf+Bf-BR/B31B3B4B6B38B9B\;BB?BAB=BBfCBDBEBFBqGB=HBAARA؛A\A A̚AAAAA A\A؛AfAAA̞A؟AA>AAA̦AAzAzAAA\AصAzA4A(A4ARAAAARAAAAAARAAA\AA)BqBBBf B BBqBB)BBB)BfB B"B%B'B))B3+B)-B/B1B2B4B\6B 8B9B3;BB?B@BBBRCBfDB{EBqFBRGB)HB̜AApAAzAAؙAAAA™AAfAApAAAA̞AA4AA(A¥AApApAAARA̴ApA(AA(A\AAAA\AAAA A4ApAAAzAAA B\BB B\ B BB{BB3BBBB\ B"B$B&B(B*B,B.B0B2Bq4B36B7B{9B;BBf?B@BBB3CBRDB\EBRFB=GBHBAAzAAAAAAAA̘A A\AؙAfAA؛A̜AAA>AAAAzAfAfAAAHA³AfAAAARAAAARA(AAAA>AzAA4AA(AABBHBB Bf BBBBB=BBB BR"B{$B&B(B*B,B.B0B{2BH4B6B7B\9B:BqAA AA>AA—AAAؗAAfAApAAA›A̜AA4AAAApA\A\AA­A>AA\AA AAHAAAA\A4A A AA\AAARAAHAA=BBBHB B BfBB3BBBHBBB "B=$B\&B{(B*B,B.Bf0BH2B4B5B7B39B:BHARAzAA4AARA AA ARAAAAfA(AAA>AfAAApAAfA AB)BBBH B B B{BBHBBBHBB!B$B&B=(BR*BR,BH.B30B2B3B5B\7B 9B:B)B=@BABBBCBDBEBFBGB>ApA̖A>A•A\A AAAAA A\AؕARAA—AAA̚AA\AAzA>A(A(ARAA AA(AAAA(AA AARA(AA(A>AzAA4AAAAHAB\BBB B B\BB3BBBfBBB=!B{#B%B'B)B+B-B/B1B3BR5B 7B8BR:B;B\=B>B@BfABBBCBDBEBFBGBHAAؕAHA̔AfAAؓA“A“AؓAAfA̔AHAAAAAAARA؝ApA4A AAHAAAzAAA̶AAAzAAA\A4AA4AHAAA>AA4AAzAABRBB B BBqBBHBBBfBB!B3#Bf%B'B)B+B-B/B1B\3B)5B6B8B):B;B3=B>B@BHAB{BBCBDBEBFB{GBRAAARA“A\A AAAA̒AAHAA>AAAzAAAؙA4AARAAAA(AfAA\AA̲AµA̸AApAAA>AAA(ARAAAHAA>AAA>ABBRBB) B B BBB\BBBqB B"B%BH'B\)Bq+Bq-Bf/BR1B)3B4B6B\8B:B;B =B{>B?B)AB\BBCBDBEBFBfGBpAAA\A̒AfAAؑA‘AA‘AA>AA4AؓAApAfAA̘A(AA4AAAA A\A©A>AAAA·AARAAA4AA AAHAAARAA\AAA\AB{BB\B B= BB)BB BqBBBq B"B$B 'B))B3+B=-B3/B1B2B4B6B38B9Bf;BB?B AB=BBfCB{DBEBqFBHGBzAAAfAؑApAAAAA̐AA4AA(A̒AAfA\AzAA AA(AAŸA¡AA>AA4AحAAAAAHAAfA(AAA(ARAAA\AAzAAAABBBBf B B\BBHBB)BBB) Bf"B$B&B(B+B-B/B0B2B4B\6B 8B9BH;BB?B@BBBHCBfDBfEBRFB3GBAAA\AAfAA؏AAAAA(AAAAzAHARA\AAApA A̜AAA̢AAAAAAzAA̸A>A¿A\AA A AAHAAAfAAA(AAA=BBBB B BB{BBfBB3BBB"B\$B&B(B*B,B.B0B2Bq4B36B7B9B;BB{?B@BBB3CBHDBHEB=FBGBA‘A AfA؏ApAA̎AAAAAAAAA\A>A4ARAAARAAAAAAAzAAAfA\AzA·AAARAAAAARAAApAAAHAAAA=BB)B B BBBBBBBHBB!B$BH&Bq(B*B,B.B0Bf2B=4B6B7B\9B:B{A\AAAA4A AAA AHAAAzA AARAAAABHBB= B BHBBHBB3BBBRB!B#B &B3(BR*B\,B\.BR0B32B 4B5B7B=9B:B\AAAzA(AAAAA>AAAAAApA(A AAfBB\BB\ B BfBBqBBRBB BR!B#B%B'B*B),B).B0B 2B3B5Bf7B9B:B3A AAAfAطA\A AAAAA4AAAzAAAzAHAA ABqBB{B B B BBBBBfBB !BR#B%B'B)B+B-B/B1B3B{5B=7B8B:BBH@BABBBCBDBEBFBAAAzAApA AAAzAzAAAHAARA A؍A̎A؏A AfAؓApA4A A A4AAAfA AAAAHAA>AAAAAA(AzAAAAAARA4AAB BBB B) BB=BB=BBBqB B #BH%B{'B)B+B-B/B1B3BR5B7B8B\:B;Bf=B>B)@BqABBBCBDBEBFBAA(ApAAfAAAApApAA؉A(AA4AAAAAAHAARAAAAARA̠AHAAAAA(AAA̼AAAAAApAAzAAAApARA4ABBBB3 B BRBBfBB\BB)B{ B"B %B='B\)B{+B-B/Bq1BR3B5B6B8B3:B;BH=B>B @BRABBBCBDBEBFB̌AAAzA؉A\AAAzAfAfAzAA AAÅAAAA̎AAAAAAAA4AAA̤AAAAAfAAAAAAAAfAApAAAAzA\ARA\A3BBHB Bf BBBBB B{BB3 B"B$B'B))B=+BR-BR/B=1B3B4B6Bq8B :B;B=B>B?B3ABfBBCBDBEBfFB‹AA(ApÄARAAApAHAHApAAAfAAAzApAzAAAfAAAAAAAzAAAfApAAدAHAAAfAfAzAAA\AAzAAAAAfApAfABHBBq B BB)BB=BB)BBB="B$B&B(B +B-B/B 1B2B4B6BH8B9B{;B=Bf>B?BABHBBfCBqDBqEBRFB̊AAAfA؇AHAAARA>A>ARAAAHA؇AA\A>AHAzA؍AHA̐AAfAfAA̚AHAŸAfAHA>A\AA(AApAHAHA\AAARAApAAAAAAzAARBBqB B B3BBfBBfBBHBB!B=$B{&B(B*B,B.B0B2B4Bf6B8B9BR;BB?B@B)BBHCB\DBREB3FB؉AAA\ĂA>A؅AAHAAA4ApA…A(AApA(AA(A\AAAA\A4A4A\AAAA4AA A>AAAARA(A(A>AzAAHAAfA AAAAAAABqB BB= B BqB BBBBB\B!B$B=&Bq(B*B,B.B0B2Bq4B36B7B9B3;BB?B@B BB3CB=DB3EBFB̈AAAfA…A4AAfA(AAAARAA AA>A AAA(ApAAzA(AAA(AzAA\AAAإA ARA¯ApAA A AA\AA(AA\AAAAAAAAqBBB=B B{ BBB=BB=BBBf!B#B%B3(BR*Bq,B{.Bq0B\2B=4B 6B7Bq9B ;BBf?B@BABCBDBEBFB‡AAA\AA(AA\AAAA A4AAAzAAĂA؇AARAAHAA̐A̒AAHAA(AAAAاAAA>AAعAؽAA>AA AA>AAAAAAAABB3BBq B BBRBBqBB\BB!Bq#B%B'B*B3,B=.B=0B32B 4B5B7BH9B:BfAA؁A؁AAAfÂAHAAAAA؇AAAAAAA“AAzAAAzApAAApA A̴AAAAAAAA4AAAAAAAA A)BBfB B B\BBBBBB{B B3#B{%B'B)B,B .B 0B2B3B5Bq7B9B:BHApAA>AدAAAAAAfAApA(AAAAAAAA(ABRBB BR BBB3BBHBB3B B"B3%Bq'B)B+B-B/B1B3B5BH7B8B:BApAAAA\A4A4AHAAAA4AA A(AA AAfARAfAAAHAARA AAAAAAAAHA=BBB= B BB=BBfBBqBBH B"B$B3'Bf)B+B-B/B1B{3BR5B7B8Bq:BB3@BqABBBCBDBEBAAAAfAA~A}Ap}A }A|A|AH}A}A~AAfA4AA A>AAAzA(AAAARA̔AHAA̜AŸAARAةApA4AA4A\AAAA4AAAAAAAA ARAB{BBB B3BB{BBBBB B\"B$B&B))BH+Bf-Bq/Bf1BR3B)5B6B8BH:B;BR=B>B@BRABBBCBDBEBAÀAA~A}A||A{A4{AzAzAzA {A{AP|AH}A~AAA؁AA>AA4AAAA̎AAAAAAA¡A AA>AAAA>AAApAAAAAAAAAA\A\B BBfB B B{BBBHBBHBB"Bf$B&B(B+B)-B3/B31B3B4B6B{8B:B;B3=B>B?B3ABfBB{CB{DBfEBAAA}A|A\{AhzAyAxA|xAPxAPxAxA yAyAzA(|A}A\AAA AfAAAApAA؏ARA̔ApARAHAzAأA\AA̮AA̶A A\AARAAAAAzAAAAAfAABHBB Bq BBBfBB{BBfB!B$Bq&B(B*B,B/B1B2B4B6BR8B9B;B =B{>B?BABHBB\CBfDBREBA4Ap}A{AhzA yA(xA\wAvAA(ARAA AA(A AA4AAA©AAAAعA(AA4AAApAfApAzAAA(AAABBBR B BBfB BB)BBB!B#B)&Bf(B*B,B.B0B2B4Bf6B)8B9Bf;BB?B@B)BBHCBHDB3EB A }A4{AyA(xAvAuAtAPtAtAsAsAtA|tA uAvA4wAxAhzAP|A~AAApAAAA A\AA>AA—A̚AAHA̤AzARARAfAAApAAApARAHARApAAA4AAABfB)B B B\B BBHBB\BB=!B#B%B)(B\*B{,B.B0B2Bq4B=6B8B9B=;BB?B@B BB)CB)DBEB|AzA yA\wAuAtAsArArAqAHqAHqApqAqArAsAtAvAwAyA|Ah~AA(AƒAAAAAfAAAfA\AAApAAAA AHAA(AApA>AAAA>AAAApAA)BBBq B3 BBBHBB{BB{B BH#B%B'B*B=,BR.B\0BR2B34B 6B7B{9B;BBq?B@BAB CB DBEBzAxAvAHuAsAhrAHqA|pAoA4oA oAnA4oAoA(pA qAA AAHAA(AإAAAرAAfAAA>A AAAA4AfAA AzAABqB=B B BB=BBBBB)B B#B\%B'B)B,B.B)0B2B 4B5B7BR9B:B{AA“A̖AA\AAAfAfAA̴A4AARA AAAAA(A\AAAAA=BBBB\ B)BBB3BB\BBR B"B%B\'B)B+B-B/B1B3B5Bq7B)9B:BRB3@BqABBBCBDBrApAnAPlAjApiA(hA4gAhfAeApeApeApeAeAhfA4gAPhAiA4kA mA4oAqAPtA\wAzA<~A AApA؇ARAA؏A̒AApAAAAAA ApAAApARA\AfAAA(AAAzAAABqBHB B BBqBBB\BBqB!B=$B&B(B+B=-BR/BR1BH3B)5B6B8BR:B;B\=B>B@BRAB{BBCB{DBpAmAkAjA|hA gAeAdAdAcA cAbA cA\cAdAdAeA4gAhAjAlA oAqAtAxA{AA؁AAzAAAzAAAAA\AHAHApA¯A(AApA>AA(AHAfAA AzAApA AA)BBB B BRBBBqB BBB!B$BR&B(B*B-B/B1B3B4B6B8B):B;B==B>B?B3AB\BBfCB\DBmAkAiAgAAA(A\AARAAAA(AzAAA(A AAAAHAAA\AAfAAABBfBH B BBBfBBBHBBH!B#B &B\(B*B,B.B0B2B4B6B\8B:B;B=B>B?BAB=BBHCB=DBkApiA\gAeAcAhbA aA(`A4_A^A<^A^A^Ah^A^A_A`AaAcAHeA\gAiA|lA\oArAAA‹A̎AA\AAAAĄAAA>AA¿AAAAApAA>AA\A AA3BBBB BBRB BB\BBB!Bq#B%B(B\*B,B.B0B2B4Bq6B)8B9Bq;BB?B@BBB)CB)DBHiA4gA eA4cAaA(`A^A]A\A(\A[A[A[A[AP\A ]A^A\_A`AbAdA4gAiAlApAsA\wA{AAfAAAfApAAAA\A4AHAAثARAAAzApAAAA>AAAARAAApABBfBH BBBB\B BB3B B#B%B'B*BR,Bq.B{0B{2Bf4B=6B8B9BH;BB?B@BBBCB DB gAdAbA`A4_A]A|\A\[AhZAYAHYA YA YAHYAYAZA[A\A<^A`AbA|dA gAjAHmApAtAxAH}A AA(AAAHAA>AA؝AA(AzA AAfA4A>AHAzAAAAAAHAAAzAB BB B BBHBBBRBBf B"B=%B'B)B,B3.BH0BH2B34B6B7B9B);BBq?B@BABBBCBdAbA|`A^A\A\[AZAXAXA\WAVAVAVAVA4WAXAXAZA[Ap]A_AaAPdA\gAjAnAqAuAhzA4AAAAA؍AHA̔AAzAA̤A4AARA AAAAHAAA\AAzA(AAApABBBq BR BBBB\BBB B"B$BR'B)B+B.B0B2B 4B5B7B\9B;BAApAAAAzA)BBB B BBBHBBB=BBH"B$B'B\)B+B-B/B1B3B5B{7B39B:BfAAARAApAAAAAzA3B3B3B) B BBBBHBBB)B!B$B&B(B+BR-Bq/B{1Bq3B\5B)7B8B:BB=@BfABBB{CB[ApYA4WA UA\SAQAPPA4OANAHMALA|LAPLA|LALApMAAA±AA»AA>AAAARAAAAApApABBB BB\B)BBBHBBf!B#B=&B(B*B-B3/BH1B=3B)5B7B8B\:B;Bq=B>B@BHABfBBfCBpYA WATARAPA\OAMALAKAJAB?B)ABHBBHCB WATAhRA|PANALA\KAJA IA(HAGA4GA GA4GAGAHAHAIA\KALANA QASAVAYA ]A`AdAHiAnA sAPxA}AAHAARAAA(AzAApA(A AAARAAAA>AAAApA\A\ApABBB B BBfB3BBB3B BH#B%B(Bf*B,B.B0B2B4B6Bf8B:B;B)=B>B?B AB)BB)CBTAARAfA=BRBRBR BH B)BBBB=BB{ B#Bq%B'B*B\,B.B0B2B4Bq6B=8B9B{;B=Bf>B?B@B BB CBhRAPAMAKAIAHAhFA EADA CAhBAAAAAAABABA\CA|DAEA\GAHIAKAMAPASA4WA [A _AcA(hA mAhrAxA~ARAA\AAAHAAAA\A>AHAfAA AzAAAAHA4AA4A4A\ABBB B BBBqB3BBB) B"B)%B'B)B,BR.Bq0Bq2Bf4BH6B 8B9B\;BB?B@BABBBPAMA4KA IA4GApEACABApAA|@A?A\?A ?A ?A\?A?A@AAA CADAhFAHA KAMAPAPTAXA(\A|`AHeAjA\oAtA {ÀA>A؇AAA“AAA4AAAA ARAA4AAzA>AAAAA(ARA=B\BfBq Bf B\B=BBBB=BBf"B$BH'B)B+B.B30B=2B34B6B7B9B3;BB{?B@BABBBMA4KAHAFADABAHAA@A>A=A =AA(@AAACAEA(HAJAMApQA UA YAp]ABR?B@BABBB4KAHAhFA(DAAp=A(A@ABAHEAHA KAhNARAVAZA4_AdAHiAnAtA{A4ĀAAA̐AAA>A AA A>AA AA(AAAAAAAA(AzA\B{BB BBqBHBBBB3B!BH$B&B)Bf+B-B/B1B3B5B7BH9B:BqARBqBB B BB{BRBBBB)!B#B)&B(B*B)-BR/Bq1Bq3B\5B37B8B:B)B3@B\ABfBBDAHAA>AAAA EAHALA QAUAZA_ApeAkAqAxAAAAAzAAAzAAAحA4AARAAAAAAA>AzAA4ABBB) B3 B)BBBBB3B Bf#B%BR(B*B,B/B=1B=3B)5B 7B8Bq:BB@B=ABHBBpAA>APABAEAIAMARA\WA\AB?BAB)BB ?APABAFAJAOAPTApYA _A eAkArAyAAAA\AAApAzAAARAAAHA4AA4A\AAA(AA AABB= BR BRBHB3B BBB3 B"BR%B'B)*Bq,B.B0B2B4B6Bq8B:B;B3=B>B?BABBB|B?B@BAB:A\7A4Ah2A(0A<.AP,A*Ap)A((A4'A&A&A%A%A&A&A'A(A)A+A-A0A2Ap5A8APBR?B@BABh2A/A,A*A((A&AP$A"A !AAAApA A AHAAhAA Ah"AP$A&A(A+A /A2Ah6A:A4?ADA IANATA4[AbApiA qAHyAAHAAAAAA\AAzA>A(A(A>AzAA4AA(AApAA\BBB B B)B3BBBBB=!B#Bf&B(B3+B{-B/B1B3B5B7BR9B:B{A AAARA¡AHAA̲AAAAApAARAAA>A AAB\B B BBBBB{B=B B#B&B(B*B=-B{/B1B3B5Bf7B)9B:BRB)@B=AB*A'A %A"A( AAA<AA\A<AHAA(AA(A|AHAA\AAAA\A"AH%A(A|,A0AH5A9A ?A|DAJAPAXA4_A gA4oAwARAA‰AAؓAAA(AةA¯AA»AARAA4AAfAAAApA BRBB BBBBBBBH B"B%B(Bq*B,B/B)1B=3B35B 7B8B{:B B @BAB(A %Ah"AApA4A A\AA|A4AhAAHAA ApAA A(AAAAAA!Ap%A )AH-A1A6A;A AA GAMA|TA[AcAkAPtA }A4AA A(AAAARA(A(ARAzAAHAAfAAAAARABBBH BfB{BB{B\B3BB"B3%B'B)*B,B.B0B 3B5B6B8BR:B;BR=B>B?BABp%A"AA AA|AhA|AApAPA\AA<A AAhAAAAhAPAhAAAA"A%A)Ah.A 3A(8A=ACAJAPAPXA(`APhApAyAARA\AzAؕA\AAAAA̸A A\AAfA AAAAfA4ABRBB B BBBBBBBR"B$Bq'B)BH,B.B0B2B4B6B{8B):B;B3=B>B?B@B"AAAhAAAAAAAp AP A A4 A A A4 A A A A4AA ApA(A4AAh"A&A +A/A4A:A(@AFApMATA\AdAHmAA4AAqBBBR B BBBBB{BHB"B$B)'B)B ,BR.B0B2B4B6BR8B:B;B =Bf>B?B@B( A A<AA AAAA A Ah Ap AAAAAAAp A A A AAAAA4AA #A'A(,A 1A6AB?B@BpAhAAAhAA A A< AA\AhAAAAAApA<A4AAh AP AApAPAAAA$A(A-A 3A8A?AhFAMApUA]ABf?B@BAAAAA A AA4AAPA\AhAAApAAAAAHA AA\ A AAPAAA| A$A)A/Ap5A;ABAJAQAZAbAkAtA~AzAA AARA(A(ARAAApAAAAzApAzAAAA)BBB BHBfB{B{BfB=B!B#BR&B(B=+B-B/B2B 4B5B7B9B;BB=?Bf@B(AAA\A A< A(AAPAApAPA@p@@x@@@`@AAAAA Ap AA|A|AAp!Ah&A+A1A(8A ?AhFAA4AB{BB B\BBBBBB\ B#B%BH(B*B-B\/B1B3B5Bq7B39B:BRA\AAAAABBRB B BB=BHBHB)B B"Bf%B(B{*B,B)/BR1Bf3Bf5BH7B 9B:B3B@BA A AA(AA@@@@0@P@@@@@@H@@0@ @@@h@@AAA A AAhA\A A&A -A4A\;A CA\KATA\AhfAPpAzAAAA\A\ApAAAA4AAAAAAHAAAAAfBB) Bq BBBBBBBq"B%B'B3*B,B.B1B33B35B7B8B:B B?B A AAA Ap@@x@@ @@@@p@(@@@@0@x@h@@@`@@@h@hAA A<AAA A"AH)A(0A7A\?AGA(PAHYAbA|lAvAA(A؋AAAAAfAAAfAHA>A\AAA4AzAAABHB B B3B\B{B{BqBRB"B$Bf'B)B\,B.B0B3B5B6B8B\:B;BR=B>B?Bh A AAAx@`@@h@@@@@H@@p@x@@@x@@`@@@P@x@@`@@hA<A A AAHA4A%AP,A3A;ACAPLApUA^AhA sA}ARAA؏AؕAA>AAHAA̼AAAA4AAA4AzAAHBB Bq BBB BBBB!B{$B'B)B,Bq.B0B2B4B6B8B3:B;B)=B{>B?B4AAA@@@(@@@P@ @@P@@@ @ @@@P@@@H@p@@P@h@@A A APAAA"A(A(0A8AP@AHARA[AeAoAzÂAzARARAAA\AAAAAAA(AA AfAAABfBB) BqBBBBBB!BR$B'B)B,BR.B0B2B4B6B{8B:B;B=Bq>B?B|A A@@P@@@@@@@(@@P@@h@h@@@H@@@@@h@0@@@@@4AA| AAAA$AP,A(4A|A AAAA\AA(AA AfAA\BBRB BB=BfB{B{BqBH!B $B&B=)B+B.B\0B2B4B{6BH8B:B;B=BH>B{?BAx@@@@@ @@@`@@P@@@@P@@`@@@@@x@`@@@@H@@@h@@AA AA<A !A|(A(0A|8A AAB\?Bp@@P@@@x@@@p@@p@@@@@@@@@@0@p@P@@@x@@@@@@AA AA<A A|$AP,A|4AH=AhFAPAYAPdA oAB3?B@@@@(@h@@@@@@@@@(@@@@@@(@@@(@P@ @@@@`@@`@@AA A<A A| AP(A|0AH9AhBALAUAP`A4kAAAAAAA4A3BB) B BBB=BRBRB= B #B%Bf(B*B\-B/B1B3B5B7B{9B;BAHAQAP\A4gAhrA}AA A\AؗAzAHA(A4AfAA4AAfAAAHAAAB)B B BfBBBBBB"B{%B(B*B-Bq/B1B3B5B7BR9B:BfB(@ @h@@@@x@`@@@@h@@@@ @(@@ث@x@@@@@p@H@@0@@@`@@P@@(@A< AAPA( AP(A 1A<:ACAMAPXA4cAhnAzAAAAAApAfAAAAA4AAARAApAA BB B BB3BfBBBBf"B)%B'Bf*B,B3/Bq1B3B5Bq7B)9B:BHBh@@P@@@h@@(@@@@Ь@@@h@ @x@x@ @h@P@@@@@@H@@`@@P@@(@@A A(AAP$A,A<6A?AIAPTA4_AhjAvA A4AAA̚AAA¯A AfAAA\A4AAA(AAqB BB BqBBBB3B)B"B$B'B*B,B.B31B\3B\5B=7B9B:BBP@H@@@@@@@@Ь@H@@0@@`@@p@p@@@@0@h@@h@@@@`@@@H@@`@AAAA( A(A2A;AEA(PA [AhfArA~AHAA(AAŸA̦AAHAARAAAAAHAARAB{B B BBHBBBBB!B$B='B)BR,B.B1B3B)5B7B8B{:BB@0@x@@@@(@@@h@@`@x@@P@@h@@@@H@؛@@@@@ث@@@`@@@H@@@@A AAA$A-A7AAALAVAAAAA(AA AAfARA>AAAA A=BB{B BqBBBRBqBqB\!B3$B&B)B,B{.B0B2B4B6B8BR:B;B3=Bq>Bx@ @@@H@@@@أ@@؛@P@p@0@H@@@@`@P@@(@@@@أ@@@`@`@@@0@@0@PAA\AAP A)A43AH=AGARA^AiAuA4AA>A AAARA±AHAAAAAAzA(AAHARBB{ B B\BBB BB !B#B&BH)B+B=.B0B2B4B6B{8B):B;B=BH>Bh@@@H@@ @`@@@p@@ @@h@(@@@@@`@@@@@x@`@@@؛@@@@@`@@@h@@P@\A A\A(AH%A.A 9ACANAYAeAqAh~AARAAA4AzAAAHAAA4A4A AAzAAB\B Bq BB3B{BBB B#BR&B)B+B.BR0B2B4B6BR8B:B;BBP@@@0@x@h@@@@@@@@@ @@H@P@@P@H@@Є@`@@@ؓ@@@@@@@@@@@@@@A AA A*A4A\?AB@@@@Ь@h@@@@Д@@@`@@@{@w@t@q@@q@@q@0s@u@y@`@@@؋@H@@@h@@@@ @@@p@hA A\AA<&AP0A:AEApQAH]ApiAvAA>AA(A\AARAAػAAAA(A(AAAAB=BBf BBHBBBBB"B%Bf(B+B{-B/B2B)4B)6B8B9B=;BAzAAAAzA>ABBRB BfBB)BfBBB"B\%B(B*B=-B/B1B3B5B7B9B;B{ARAAAA4A4AAAHB BB\ BBRBBB)B3B3"B %B'Bq*B,B\/B1B3B5B7B\9B:B\AABBH B B\BBBRB{B{!Bf$B3'B)Bq,B.B)1B\3Bf5BH7B9B:B@I@`V@ e@t@@Ќ@@أ@@`@@@P@pA AHAA +A6ABA OA\AHiA wAA‰A4AAAA̰AAA(AA AHApAApABfB) B B\BB=BBB B#B&BH)B+B\.B0B2B5B6B8BR:B;B=B@@@~@p@0c@`V@J@`?@ 5@+@0#@@ @`@ @@@ @ @`@ @p @0@@@"@,@7@ E@S@b@s@؃@@@@@ @p@@H@hA|A4Ah&A1A=AJA\WAdArARAAA̖AAAAHA¿AfAApAAAAABBB= BB\BBBHBf B\#B=&B)B+B.B{0B2B4B6B8B):B;BAzAAARB3BB BRBBRBBB B #B%B(B\+B-B=0B{2B4B6BR8B:B{;B@`O@b@w@@Д@@@@@@@@ AAA|(A4A AANA[ApiAwA4ÅAAzAAApAAAA(AAA4A\A\ABfB) BBfBB=B{BB"B%Bf(B+B-B0BH2Bf4B\6B)8B9BR;BA AAzA ApAAAABB BHBBfBBB=BR"BH%B(B*B\-B/B 2B34B)6B8B9B);B{@0S@j@@@P@`@@@@@0@PAA4A\+A8A EARA`A4oA}AAzAzAA4A¯AAARA AA(AAAAfBRB B B{BBfBBB "B%B'B*B-B/B1B4B6B7B{9B;B\ARAAA­AAAzAHAAA A\AABB BH BBBBRBB!B$B'B=*B,BR/B1B3B5B7BR9B:B3>>>>>>>>??@?i??`???@@0@I@ e@@@@p@@ @@|APA|AH)Ah6A(DAAAAA»AAAA\AAfAAqBqB\B) BBB BqBB B#B&B)BR,B.B)1B\3Bf5BH7B9B:B;BD@2@!@@@`?@?`??}?R?+??>>M>=t=< < <<=>a>>>?L?@? ? ?@? @0@5@@Q@n@@@@h@@P@@4 A\A($Ap1A4?AHMA\A4kAzA\AAAAAAعAAAAARAAHAABB B\BBBBRB B#B&B\)B ,B.B0B)3B35B7B8Bf:B;B`6@ %@@@?@???p?@??>>>$=tMvWt$=.>>?5?k????@@!@<@@Z@@z@h@@س@P@@x@A<A AP,A:APHA WA8><̽a;@ ܾ<M>>@?@\???? @P(@E@e@؃@@@@0@@A AA4'A4A4CARAHaA qAAAARAHAzAصAA>A\ARAAARAA{BBq BHBBBB{BB"B%B(B{+B .B{0B2B4B6B{8B:Bq;B@ @?`?`??c?.?>>=a);GL@OLE@8#@ ׾̽=>@ ?R????0@0@P@r@@@0@@`@@AA!A/A>ALAP\A(lAP|AA4AAAfA³AAfAAApA>AA\ABB B B{BBBB\B"B%Bq(B3+B-B=0B2B4B6BR8B9BH;B@??@??f?)?>l>$=@;Wk}`@@`nW@8;W l>?R??`? ?@;@p]@@(@P@@x@(@hA4AA*A8AGA4WA gAwA(ǍA•AA>AAAzAAAAA\AAB=B= B BBB3BBB)"B3%B(B*B-B0BH2Bf4B\6B)8B9B);B@ ?`??i?+?>W> WǾ@@8@\}`@ `` @a58>>W? ??`@%@G@0l@H@p@@@H@@ A4A %A3ABARAbArAAfA\AAAAAzAA AA AAfAqBBB BfBBB3BB!B$B'B*B=-B/B 2B34B)6B7B9B;B?? ?@s?.?>M>#R{` ຿ ſ˿п@ӿ@ӿп˿¿T#Ҿ.>?c??@?@1@`V@|@@@h@@@PAAA<.AH=ALA\ApmAh~AA ARA£ApA AAA4ARA\A>AApABB BBB=BB)Bf!B$B{'BR*B-B{/B1B4B6B7Bf9B:B??}?@8?>M>$@3c@пݿ```ݿп@@u;$8> ?@x???0@@@`f@`@М@@0@@@P A<A(A8AGAWAPhApyAAAAAHAAzAA\AAAA\AA=B\B\ BHBBBRBB!B)$B)'B*B,B=/B1B3B5B7B=9B:B?`?E?>a>=pѿ@  p `@ӿ ࣿL$a>@!?@??@)@P@Px@@@@@@AA\#A2ABAhRA cAPtA A(AA4A A̲AzAApAAAAAABB BBB=BBRB B#B&B)Bq,B/B\1B3B5Bq7B9B:B`?T?@ ?> B{`౿@ʿ@ @ @! ` ̿౿T>;? ??0@8@@a@@М@x@ @@ A4AA,AA\ARA AB B BBBB\BB= Bq#B{&Bf)B),B.B1B\3Bf5B=7B8B\:Bf??><vB`@ӿ 00#(p-@103331.)# ܿ຿Wt>@\??`?!@@J@ u@H@@@@@p A(A\'A47AGA|XAiA{A4AAzAzAfA>AAAAzAAAAB\B B BqB=BBqBB#B)&B)B+B{.B0B3B35B7B8B3:B.?>=M@ٿ@`@0 %p- 5:@CEGG EB>70'00`@RҾ<??@? @03@^@p@ @@@0@AhA!A1AAARA|dAvAA>AA(A(AAAA4AAA AAfBBB BBBqBBfB"B%B(B+B3.B0B2B5B6B8B :B>>@8}ݿ@ ",`6`?`FLQ`VX@Z@ZX`VQ0L E0<@1`& ÿE>)???@`F@0s@H@@@(@`@@ AA+AP¾+u޿p '03>PH@QX`_dhkpmpml@j`f`YP`F;. ¿0a>Y??@.@[@ @@P@@@AA&A6AGAYAkA~AAA\AAAAA\AAfAAAAHBB BBBqBBB!B%B(B+B-B)0B{2B4B6B38B9Bi ޿p+P8DPYbjqw{~PP~@z un`f0\@QD 50#`>??`@0C@r@@(@`@@A(A( A0ABATAhfApyAzAAA4A\AApA\A AAAHARABB B)BBBB)B!B$B'B*Bf-B/B=2B\4BR6B 8B9Bl Y@` ܿ``.0<IU@ak u| `@@H {qgZK@:%`u=.?`??@*@Y@@@0@@p@< A<A +APpMZgrp}hؓxxx؃p}@qaPp='`@T>k?@?@@@r@0@@0@@A(A$Ah6A|HA [AhnAApAAfAA A4AHAAAzAA4ABB B BBBBHB B$B'B*B,Bf/B1B3B5B7B39B0@пp `0@P^0lx@xДxhhx@؃xgT>% ڿ+?`??'@Y@@@@@x@@A A|0ABAHUAhA|AA\A؝ARAAAAA AA>AA\BB BR BqB\B)BBR B#B&B)B,B)/B1B3B5B{7B9Bnɿ p`/@@Q``op} 0@(hPФh `0l`V>0#˿>@J??@@@s@p@@@`@AAh*A@??%@@Z@P@ @0@@AA($A6AIA ]AqAHAA̘ApAAzAA AA AA>AARBB B=BHB)BB{B"B&B)B+B.B1BR3BR5B7B8B`ٿ)<N`@q`(`(P(`мp (xP0 Ќn U8 B@? ?@P8@p@ @@@ @ AA|0ACA WA kAA(AA4AةAzA AAA>ARA>AAB)B BBBBfBB="Bf%B\(B)+B-B30Bq2B4B{6BH8B ο`@%9L`_pp0pػnR4@>@a?@?@ U@@h@h@@pAA*AH=A QAHeAyA\AAA\AA̼ApAARAzAzA>ABqB B)B=B)BB{B!B%B(B*B{-B/B32BR4BH6B8B0 @!5Ip]phx@0@P0@x kN. @ʿp>?0@:@ u@H@H@@@ A#A 7AJA4_AtAA4AA̤AAzA4AARAAAABB3 BBBBqBBf!B$B'B*B)-B/B1B4B6B7B0E@ZpmPH@@p @ HhPH`xPPhG % .$=@O??`@Y@@ث@p@@ AHA0ADA YAnAAfAHA>AAAAARAAAAHBB B BBBBB!B=$BR'B3*B,Bf/B1B3B5B7B *@U@j~00@` `@hh(س b@@ Ǿ>?@>@{@@@0@AA<*Ah>A SAhAp}AAAAAAAA>AAA4AA=BB= B{BBfBB B#B&B)B,B/B{1B3B5B{7B$:P`fz`H((ػ@(pHx@ppP@Мhp}Z5p ſRLB?`?"@`@P@@@p@@@(A#A8ALAaAwAA‘AAA4A>AHAAA4ApA\A{BB BBBBB Bq#B&B)BH,B.B31Bf3Bq5BR7B4J@a`v0(д x@P xp؛(`v@Q)@>?`@C@@@(@@x@H A Ap1A`?@ @J@@0@P@@\A$A 9ANAdA\{A AzAApAARAAA\AA>ABB BB=BRB)BB="Bq%B{(BR+B-Bq0B2B4B6Bcz(H P H 4  4<  x@xpФ~S' 8;??p-@q@М@@@PA Ah2A(HAh^A uAAA4ĄAfAؿA4AfA\AAzAHBB BRBBBBRB!B%B(B+B-B)0Bq2B4B{6BsHx`(@@| P |<H ( (  xPp@qC#>?@T@@@@@HAA+ApAAWAnAAARAA±ApAA(AHA(AAA\B B B B3BBB\!B$B'B*Bf-B/B32BR4BH6BФ p p < \ < \H\ @H(`a1 `MB??`6@~@x@@(@A|$A:AHQAPhAAApAHAAAzAA4A(AAAB\B BfBBB\B BH$Bf'B\*B-B/B1B4B6B@pP00x h  \  H!H! !P 4h<p (0hP˿.>`?@`_@p@x@ @AHA3AhJAaAHyAzAzAzAfARAAA A(AA\ABBH BB B BB{ B#B 'B*B,BR/B1B3B5B@h@(x\ \<H "P$%& '\' '&p%$! P  hh p`n; W@O??@@@p@h@PAA|,ACAZArA\ApAAAAAHAAAAABB BBqBB\B Bq#B&B)Bq,B /Bq1B3B5Bh((P |P\hH!#<&(()\+P,,H- -,+h*|(&4#4(  pHдZ$Կ@3>?@!@l@@@@AH%A|AzAzA>AA AA3BHB BB3BfB\BB"B%B(B+B{.B0B)3B35B00(\P <hh<"%(,.H13H56(88p9p9 9|8475\30p-)H%P |p h d*ڿ0>?p-@|@@@@hA-AEAh^A wAAzA ApAعAAAAAAAqB\ BBBBBB)"B{%B(B{+B).B0B2B5BxP( 4#\' +h.p1P46 9 ;<>>???>=(<:7P40|,'"H `hpK@? @0\@@@`@Ah&A>A4WAPpAA\AAAApAA\AAAABBf BB=BHBB!B%B=(B)+B-B\0B2B4Bػ H \ ( |$(,P0369|<>@BDDEEEHEPDB@h>\;73.p)\#| l`/ݿ&>?;@`@@@ AA47APAHiA\A(AAARAA A AAAABB BHBBBBH!B$B'B*B-B0Bf2B4BxH p| %)-15 9P<\?BDF|HJ4KKPL(LKJpIGHEhB>:<60*($ h`hأ@Q$@?@pm@@@`@@ A/AHAADGhJLNPHQRRRhRQPPNPLpIFB G4K ORV Y[h^`hbd ee ?:@@@@A)A(DA^AyAzAAA̲AAAHA\AAfABB BfBBBB{"B%B )B+B.B1BR3B  #)4/|49>C(H|LPTPX[^a|dfhDHpMQ?@Q@H@0@@A4APAkAAAHAAzAAzAA AAB=BR BBBBB!B%BR(BR+B .B0B2B4p!'-\3 9>D INRW[_c\gjmp s u w|xyC IhNSPX\HaepiHmpsvHy{p} zz~|zv4sni(d]hV~4{vr|lf^ WAfAAB BBBBHB) B#B'B=*B-B/B2B"H)/6P<hBPHNSX<^4chlp ux|(4̆\‡H؅H AAB B)BB{BBBR#B&B)B,Bf/B1B| \'.4 ;HA\GpM4SXh^chm̊4\HzHHH}4wPph(`VPL@44' h{`&`>?\@أ@@ A<&A\CA`A<~A؍AzAAAAfApAAAB=Bf BHBBBB"BR&B{)Bf,B/B1B <H%(,2p9@>4‡HyqHi`UJ<>0" h@N ?5@P@@PAHA:A|XAhvAAAAAAAAAAB\B BB3BBBf"B%B)B,B.B=1B")07h>D\KQW]c insx}4\ppHz؍( ‘>z\zH‰4R zrpi4_(T(H:,H p`Pxp{?p @y@x@@(A1APAAHA(A̲A AARAHAAB{B BBBBB!Bq%B(B+B{.B0BP '.5|<4CIPPV\ chn(tpy~fzzfzzHؕ(R>HfHؑ{rh]QD6' xػGпt?@Q@@@ A(A\GAeA>AAApAAAAAAAB B BBRBBf!B%BR(B\+B).B0B$(,\3h:pA(HNpU[Ap]A||AA AA̺AAAfAHAAB BHB)BBB B$B'B+B-B\0Bp)0(84?—4fpR ؝4zp(R4\P|qfHY\KP<,h(>౿> ?p@@@<AH5ATA(tA‰A\AAAA>AAA\AB3 B{BqB B\B\ B$B{'B*B{-B0B<.5<(D4KH؇{PpcU G6H% @ @j ܾ`?E@h@0@| A,AKAkAAA A>A A\A4AzA4ABRB BBfBBB#B'B=*B)-B/B2h:AH(P4W^dkrPx~R4̊pf ̜z\zR\p£4\Ȟ̚zn|`QAP0 1`?@H@h@Ah"ABAbAAA\A̰AؿAfAzAAABfB BBB)BRB#B&B)B,B{/B74?FM UP\4cjp\w}f ؗ>>ءp̤\p4أ¡\p•zx\k\L;(`@@`_?g@@@A 9AYAzAAAHAA\AAAABqB B)B BBB"B3&B{)Bq,B)/BP<DKRZHaPh\ov|̄؍pHpp4RfH\4̬(ة>R\>>H‡AAA>AA{B BfBRBB)B"B%B)B,B.B AHPPW4_hfm|t\{ Rf (z̤̦Rث4fp>̰4\Hfp>̬ ›\zr4c@@@(Ap%A GAhA4AAAµA AA(AAAqB3 BBBHBB!BH%B(B+B{.BEMHU\Pdkryfƒfp(̞H((ح\̰4ppسH\̠—z(~n]K8 # Hh׾?`_@@0@4AH=A_ÀAAA(AAApAHAzAqBH BBBBB!B$B=(B\+B).BJR…HHfpR (̴̮p4f̸ر z\ppucPP; %H @0s <@0@@A(A(LA\oA AAAAAAAAHBRB BHB3BBB#B\'B*B{-B|TP\(dls {Hzp̒(\z\(pد(fff(»4zz ( pسRRاHfo\H1p-B?W@@@hABAeAzAؕA̦AHAHAAHA4A)BRB B{B{BBfBR#B&B)*B-BHYHaHi qx(4̎> Rpz\4ط½pRpf4p>zfػ\z>(| iT>&p px` ſ?'@@`@A7A[AAA̢AAAAzAAAHB) BBB{BB"Bq&B)B,B<^hffRHR \\̢> fuaK4`@?P@@(A,AQAR\(f³z>H\nXHA(H J ?`O@@H@!A\GA|lAzARA«AAAAHA4AB= BB3BBB!B{%B(B,BhPpPx((p>f̮·z4¿(z>4f\( f\pRRH{@@H@hAPp  ؽ4>R>fpR\p fpfR4>zs|\C(| (x03`?z@@ AH1AWAp}AHA\AAAApAABB BBBHB B{$B(B3+Brhz\\p\H4zzر>\R44zH4> pR H(حf>4p̀jQ 7P@jG?G@@p@%ALA4sAAAA>AAzA4AA B BBBBB#B'B*B4w؛\(>p\4(fz(>R‡x_pE ) @@@x@AAAhAAzA̬AfA\A\AfAAB BBBB\Bf#B'B\*B(|R̖̒z>p>4pp 4 H>(4̢H̎hn(T7pPu?`v@0@ A6A]AAؕAzAzAA(AAAB BBHB3BB"B&B)BHpp\(·4>H> f4ppHR HH>44(R©R̊ } cF|(Pp ?@@@HA<*ARAzAAAzAAAA\AB BBqB{BBH"B&B)B4‹(>RRR>دHRf\H\\4R(zz4ffRp4pH(ARApApAA\BBBBBqB!B%B)B…(f 44 R f4RH\H 4\H>H(\>zffط̀eG4' `o`?0s@@HA\;AdĂAAARAARAABB BBBB!B%B(Bf \صp> R\4\\>pzH(>\zH( z4\pu\W47 @>9@@(A.AHYApA•ApA>A(AAAAB BB)BB B$B(B\“Rz>pf(4( R4\pH 4zpH((\4gGH%H`O.?@ @<"AHMAwAAAARAAAAqB BB\B\BB#B'Bf \دػ¿\ >f(\pHR= 4z>Hp4xX5Կ?@q@H@A@APlA\AAAfAAAA3B BBBB=Bf#B)'B>ءfR4RpfHp\ R{q)HHp\H4fRz4fhF"HH+$=4@(@4A(4AP`A؅AA A>ARAHAABBBBBB"B&B\؛>4pع4z\  z pR\ q)3\(>(z4 z(X4 0n{?h@@@&ATA(AARAAzAAABB BB BB="B&Bz\«R̼ z>\>f  =){{3 3 \zzp\؅iE\H@T?n@@A GAPtA>A\AAzARAAfAHB BB=B)B!B%B(H¥(H¿((4ff))33 ) ) = )  H{fz>Hf̬f{Wp1x`FW.@h@ A9AhAA>AARAAAA B BBfBqB B%Bpzpص(zHHHHR\Hf)H\f R ) q R  {q f(zHؗ fzzf>\f 3f { =H{f  )f{Rf ff f|V. @!?0l@@pAMA }A\AAAAApA\Bf BBBBB#B>z\p4pf H R{3)3)f { 3\4pfjHAb(@@A@APpAAAAAA(AB)BBBBB=#B>p p(z  zH \  qq{=R) Rz} U)``Ͽ ?@@1A cAAfAAfA\AAAB BBHB=B"Bf Rpf4>fffR>q3{  {=\fR)\fR{f qH R{>R\؛Hi=3>@j@p@"AHUA4AAAA\A\AAB{ BBfB{B"Bfر4ؿfpR HRq  ={\  R{{Rff{ R fHH\4}hR#hE"@ػ@AFAHyA̔AAA4AAA)BH BBBBR!B\\zp>HHH{\3 f 3q  ) =R={R=\ fp4p>pg8H?@A7AkAAA>AAA\AB BBBB Bحp>R\Rf\H3 fH=3\qfHR !)!)! )3H ff 44>( }hN P8>h@@(A ]AA>AARAAA3BBBBBBRH( \)) \\f){ !\""q## $$##)#q"q!= \qH )\ H\ |d 3@`@ANAHA(AAAARAHA\B\BB=B)B4\pz {H\{\!="=#$$%)&&&'&&\&%$#f" f{ (H4ؕH}K!?p@AHf{ q\3 )R !=#$% ')())**+,,,,,,=,+*)(\&=$!\\f\( zF<`ƿ @@A4SAAAA4AA>AB= BB3BBz\> \Hfq ) H Rff\H3 H "$%&=({)*+,-H..f///0/{/..-+)*)(%#3 = (h^<&0<c?@ABA {ARA4A(A4AfABBB3BBfpf\R4z44\ )=HH=) f!#$H&'=)*+-=.=/)001=222 332H210q/-,)H'=$  4fz\w>\([@@H1AkApAAAAzAzAfBBBBHRHRH( f=R )33) !#=%&(*+,R./0123q45556665 53431 0-+(H%q! =p z(X(( @@ A4[A(AAHAARAABf B BB(4>4 R 3 H   !#%f')*\,-\/0 2H3f4q5\6377{88)9H9=98{87653 2/-)&!q HPPh@JW@`@7AtAA4AHA\AHAB BBB(4(4( f3 = R "$&()+{-=/02456H89:;<=H>>H????R?>>=;:852/+3'"3{ \(fk+ ? @$AdAAAAzAAB) B{BB>H>H>q= H\"$&(*,-/q1)34q67f9:<R=q>q?\@)AARBBBBB\BA@?)>R< :f7=40R,f'!H =4G{>P@|ARAAأAA\AAAB)BB (HR\f\) R  \3q!# &()*),.013q5)78\:;R=>?A3B)CDD\EEF3FFE\EDC)B{@f>;8{5q1,R'!H zcR@h@4?A~AApAA(A>AB BBfR\zH=) f){ R!#% ()*3,=.30)2457q9;<R>?3ABCDEFG\HHHI{IIRIHRHfG)FDBf@=R:6 2,& =ff\< 5?H@4+AlA̔AA>A\A(AHBf B\BH(\zf\ H)H3!q#%' *),=.R0R2R4=689;{=)?@HBCEqFGHIJ\KLqLLLLL L=K)JHGDHB3?;\7q2,)& R  Z @=@AAA{B BB(p4f{ qHq #R%'),).H0f2q4q6q8\:=<>?A3CDHFGI\JKLM\NOOP=PHPPOONLHKRIF D@<82=,%HzRyp1x̿`O@@hFAA(A½AAHABR BBf>p{) 3) {= "$=')+.30\2{468:<{>\@)BCEHGHRJK MHNqOqP\QRR=SSSSfSRRPOMKHEA=\8R2\+\#H={(RدPY?@H1ApuA(AA AzA4AB\B\H{= R\\="q$&)q+-/32f468:<>@BDRF HI\KL\NO Q=R\SRT)UU{VV)W3W WVV US)RPMJ)GC>f81*R!3 fq$$p@AaAAAA\A AB BRRqH q  {!#R&( +\-/134q68:<>ACDFH{J3LM{OQqRS U=VHW3X YY3ZZZZfZYYWVTfROfL{HCq>80\(H\FP@4ALAAAfAAAB\ BH\H { =RR H#%)(*,H/1336q8:<?A3C=E3G)I KLN\P RSUVWY3Z=[\\{]]3^H^^]]\Z)YWTQMIqDf>q7f/f&3 zh|?@6A}AApA(AAB B> f3{ R{  "%'*q,.=13538{:<>)AHCfE{G{I{KfMHOQRT3VW=YZ[]=^3_ ``Haaaaa a=`)_][{YVRS=OfJD>f6-{#f f­R8PǾ@A iA̖AAAAB B4qq  \)R!\$&\)+R.0)357=:<> AHCqEGIKMOQS\UWXfZ[f]^ `3a=b)ccdefe{e\ee\dfcbf`R^[XTRPJDf=)5H+=3 z ]PH@pARAHAApApAA3B>H\ \ H{ !#)&(3+-)025{79=<>@)CfEGIK NPRTUWY\[ ]^)`ab)dHeHf)gghhiihfhg{fec`]qZ3V)Q=K\D<3'H R '`?x@4;AAAzAA4AHB4= RR3 "\%'{* -/ 247f9;3>@B=EGIKNHP\RqTqVfXRZ)\]_RabfdegRhfi\j3kkfllllflkjige)c_\RWQ=KC:0#{p(H ML@@!APpARAAARA=B>\ HRH!$)')R,.f13f68\;=3@BDRGIKN\PRTVXZ\^{`Hbde)gh jRk{lmqn=ooRpppfpoo nljRh\eaf]3XR KB\8q,3 u >7@<AXAzA̴A4A A B4f)f )HR!#H&(+.0=35R8:H=?3BDG\IK NRPRTVY)[3]3_)a cdfRhi{klHnopqrHss3t\tRtt\s{r3qoqmjfg\c^X3R)J@35 (̾\8G?@?A؇A(A(ApApA\H  \ Hf #%f( +-H02q58:=?BDGqIK3NPRU\WY[]_bdegi\k mn)pqrt=u3vww)xqx{xRxwwvtr)p mHid\_YRQH=\0!\fRX;@.A\A\AA4AAR\ ) q3\"${'*,q/24R79q<?A DF I{KMHPRURWY[ ^=`\bqd{fqhfj=lnoqq stu=wfx{yfz){{)|\|R||q{zRywfur)okf `X3PE9+R`FJ@AhjAAAAA\R HR !#{&3)+.=136)9;\>@{CFH KMOfRT)WY[^\`bdfhjlnpr=tuqwxHz{|}~R€$€ ~|zxtqlgH`3XNC5%RExi? @(PA̒AzA>AHA3  { Hq= "{%3(*-R035\8;==@BfEGJ MO R{TVRY[ ^\`bdg=i\kqm{oqq\s3uwx\z{R}~€k€€€€R{}z3wsmg`W\L?0 z\PtÿH@3AAHA A\Af= {H!f$)'),f/24{7):<{?BD\GI{L OQTVYq[]=`bd3gqikmor tvwy{3}~.€€))׃ €€€€€\€a€}Rytng_{UqI;)*q4̒3Є`/@AtA4AAA3 qH R#&(+f.136H9<>\ADFHIK{N QSVX[] `qbd)g{ikn=pfrtvxzq|H~܀€k€€ǃ\€M€€€ ҅€k҄€{{uog{^)SEf5\"3 e>@pYA>AAA{ R3 \)"%'*\-025\8;=@3CEH3KMqP SU)XZ3]_)bd gfikn\prtwy){3})€pM$€\€€{͇$)€€=€R€ǂ€ǀ|woRg\O@\.М@4;A>AAzA= {R)!#&{)H, /14f7):<?\B EGqJMOfRUW3Z\H_aRdf=ik nfpru=w{y{}€€҂€€€k€8€€€=€Lj€B€$€8.€3€€…€€ǁR~wofZKR:% (R@<AAA>A qR3"{%R()+-03\6)9;>qA)DFIRLOQ\TWY3\^\acqfhqkmHpr u\wy{~$3€=€=3$ €€€8€{vҋ€€BM3€v€NJ܉ €€\xRo)dV3F2(@|dAA4AR 3 f!H$'*,/{2H58:={@=CFH{K3NPSHVX[=^`qcfhkmprt\wy |\~M€f{€€{\€8 ͊)€€B€B€a€a3܍M R€8€€G=xm=aQ?* \:0LМ@DA>A4A {\H) #%(+.\134 79<{?HB EGJ\MPRU=XZ]=`behj=moHrt=wy|q~€a€ƒׄ€€€€҉€\€ҍ€p€€8€k€p3€Ǐ$€Bv€€B€B{qwkq]HLf8 pr @A…A(A\ H3 !$'q*R-30 358;f>=A DFIqL3OQTqW)Z\_=bdg)jl\oq{tw{y{\~€f€€€€3€B€G€G€=.€€€p€€€G€‘$€k€€{.܏€Ҋ$\uhXF. Rh@ kAأA{ f#H&3),.147{:R=)@CEH{KHN QSV\Y\^a=dfi=ln{qtv3y{3~W€€‚€€€B€f€€€k€B €Ǒ€p €€a€”€)€€€B€€LjׄsdT>!RV0(@RA=D)G JLORUfX=[^`cfRilnqftwy|3€€=€܄$€f€$\€€€3€B€G€B3€€Ǚ€8כ€aҜ)\€p€a €€€€€€= R{x` Cq f$WA"%{(q+q.f1\4H7=:)=@ CEHKNQ{T\W=Z]_beqhHknpsfv)y{~R€B҉€W€€ǎ)M€p€€€a.€€3€$€p€v€€ם€€€€$€‚oS3 (pH@!$'*- 0 368;>ADGJMqP\SHV)Y \^adg\j)mprufx){}R €f€€\€=€Ž3€f€€€€€$€€͝€R€€v€€͡€€=€\ €R׈~dE\"(H@1@"%(+.147:=@{CqFfI\LHO3RU XZ]`cffi=loqtw\z)}\€€v͆$v€NJ€€f€3€pܔ 3R€p€€€€a€=€€a€€k€ǣ€€ǣW€{€€ǝ€€€G܅t{X7 h^==H!H$H'H*R-R0H3H6H9H<=?3B3E)HKNQSVY\_b{e\h=knqsvy\|)\€ƒ$܇€8€€€8ҏ€€a€€M{€ǚ€ €סv)€ǤR€¥€€BR€=€€a{)\€דM€8j L'fд"%(+.147:=@CFILORUX[^{afdRg3jmprux{{R~€€a€DŽ)€€GR€B€Ҕ€R€€™€€€=\€p{{€fM€€€.$€f€€€p€\€G€¤€¢.€8€ǘ€a|`>H)R\!f$q'q*{-0369<?BEHKNQ{TqWfZ\]R`=c3fi lnqtwzf}€€€a€Dž.€W€€€k€€€f€€G͙€8€k€€נ€€€€¦€R€€v€€ܪ€€€BR$€G€k€͐ tqTR,"%) ,/25)83;3>3A=D=G=J=M=P3S3V3Y)\_b ehjmpsvyq|R€€a͆3€€f€Ǎ$ܑ3ܕ)v€€B{€€3M€a€p€p€kW€8€ª€kvҬ€.€€€€€€€€ǡ€p€k€܃jCH!)$3'=*H-R0\3f6q9{<{?BEHKNQTWZ]`{cqffi\lRo=r3ux {}€k܁M€)€€kҋ€8€€a€€€p€ǖ€€k€B€$M€p€€€p€=€)€3€=€€ܭ€¬€Bܥv€€\€8]0"%(+.148 ;>A)D3G3J=M=PHSHVHYH\H_=b=e3h3k)nqtwy|\҂€B$€€p׌€B€€pғ.€€=€€.v€€8€k€€ǥ€ €).$ €€f€Wv.€ǯ€3ͩ€M€M)sHI3$='R*f-q0369<?BEHKNQTW[^adgjlorux{~׀M€ƒ€8€€€k܍€G€{€€BWW€3v€€€G€k€€\$ұ€p€f€dzM€€€p€f$€ǃ\a0%(+. 25)83;H>RAfDqG{JMPSVY\_behknqtwz}€G€€=)€€€k܎€G€€R€v͜){͠€€f€.€f€€ª€€$$€Ҳ€€B€€a€µҵ€aҲ.€) Rx=LH'\*q-0369<?BFIL)O=RHURX\[\^faqdqg{j{m{p{s{v{yq|q3)€€ €f׏€G€$€€a€Ǚ)€€B€€G€€)€k€€€=€f€€€€€p€BM€Ƿ€€B€=v€€M\€€.)€=g(+/235H8\;q>{ADGJMPSVZ ]`c)f)i3l3o=r=u=x={=~€€€€€ v€€aҐ€G€$€€kҚ€8€\€€€k€€\€$\€€€€€€ €€{$€$€k€p€€€ܶM€G€=€k€f*{-0369<@C)F=IRLfO{RUX[^adgjmpswz }{v€€f€W͑€B$€€pܛ€B€vҢ3€€8ת€€a€ܯ€€8\{€€€\.€€€{€€Ǽ€€.€Ƕ$€€€€p+ /)2=5R8q;>ADGJM QT)W=ZR]\`qc{filorux{~€€f€€k€€f€€a܌WҏM€’€8$€v€M€€€€G\R€ܯ€W€ܵ € ׻\vҾ€a׽MW€€€€B€${-0369=@3CRFfI{LORUX[^ be)h=kHnRqftqw{z}€B€ǁM̈́M҇R͊M͍€G€€=€.€€v€R€)€\€§€{ҫ){€ǯ€W€Ҵ3W€p€pM€€ǿ\$M€€€8€ͷ€B /)2H5\8{;>ADGKN3QHT\WqZ]`cfilo sv)y3|=$.3€8€€83.$€€€p€W€¡3€€pҨ€8€€M€B€Ҵ€MҺ€€€.€)€p€B€€€pW\€=€f)0369 =)@HCfF{ILORUY\)_Hb\eqhknqtwz}{ €€€€€€€€€€€€€€k€W€Ǣ€8€{€€G €f€°€€k€M€ǹ$€G€a€pv€pW.€€€{.\€G€€f€)2H5f8;>ADGK3NRQfTWZ]`cgj)m=pRsfv{y|W܂€f€€p{v€€fܠR€£€8€€W€€ܱ€8€€3€¹€=€p€€€€€€€M€€k€€€€.€¼3369=3@RCqFILORVY=\R_qbehknqux){=~3€€B€džM׉\€€f€€k€€p€€p€€k€€f€\ҡ€G€3€€a€Ǯ.€R\€={€€3M\\R.€G€€$)€W€€=5\8;>ADHK=N\Q{TWZ]`d)gHj\m{psvy| €€.€8€€G͐MғWזWיWלRҟM€Ǣ€=€.€€fү€8€€f€Ƕ${ͺ€€k€)\€€€W{€€B€k€B€p€)69 =3@RCqFILORV3YR\q_behkor3uRxf{{~̀W€€k€€€$.€8€€=€€B€€=€€8€3$€€€fҰ€=€v׷€8€€€B€ܿ$€a€€.€83€€€B€B)M€R8{;>AD H)KHNfQTWZ] a)dHgfjmpsvy }€€)€€B͇W€€k€{€€€€$))$€€€€{€€aұ€B€€€G\M€ €8€f€€€{M€$€)9=)@RCqFILOSV=Yf\_behlo=r\u{x{~€€p€.€€B͎Wܑ€f€v €€€€€ €p€WͲ€=€€R€€p€€€k€€=v€€€€G€€kW€Mvf;>ADH)KHNqQTWZ]a=d\g{jmpswz3})€€G҄€a€v€€.€€=€ǕRט\€€f€€p€vv€p€€k€€aװM€³3€€W€€3€€f .MWW€G€€€.€€€€)€<@=CfFILOSVHYf\_behl3o\r{ux{~€3€M׋€a€{€€)€8€€G͟RҢWץ\ܨ\׫WҮM€DZ€=)€€€W€$€€B€€€= €=€k€€€f.\€f€{>ADGK=NfQTWZ^aHdfgjmpsw3zR}€8€ǁW€v€€€8€Mܒ€f€{€€$.€8€€=€€=€€=€€8)€€v€R€$€MR€€.€f€€€€€p€p€$€a @3C\F{ILORV=Yf\_behl=ofrux{~€$€B҈€a€{ €$€8€–Mי€a€v €€€€€€€€€€€€€{€€f׽€G€€M\€G€€€€8€G€G€8€€€€€kRADG K3N\QTWZ]a=dfgjmpsw=z\}€Bҁ€a€€€.€M׏€f €$€8€€GҠ\€€f€€p{{v€€fܻR€¾3€{€€G €a€ W€€€B€f{W€€WR C=FfILOR V3Y\\_behl=ofrux{~ €.€M܈€k€3€“Rܖ€f €€.€€=€ǧMҪW׭\ܰ\ܳ\׶Wҹ€G€¼€8€€€k€=€a€€€a€)€a€€€. .€DGJNHQqTWZ] a3d\gjmpsw=zf}€Bׁ€f€€8€njW€v€€€8€šRܝ€f€{€€€.3€€8€€8€3)€€{€W€.€W €a€8€p€€.€\FILOS3V\Y{\_beiHlqorux |))€M܅€k€€€=͐\€{ €$€=€ǞRܡ€f€{€€€).3.)€€ {€€a€8€k€${€€a€)€BRM€8€=€G K=NfQTWZ ^3a\dgjmptHwqz}\€€€8€ljW€{ €)€€Gҗ€a€{ €€€8€¥MҨ\€€k€v{€p€\€B€€W€€€k€€\€€€8\€pv€k€G€€kfILORV=Yf\_be i3l\orux{$€Gׅ€k€€€BҐ€a€€€.€€GҞ€a€v€€€)€8€¯€GͲRҵW׸\ܻW׾R€G€€8€€€k€8€WR€€€=€f€€v€B€€JNHQqTWZ]a=dfgjmp t3w\z}R€{ €3€‰R€v€)€€Gח€f€€)€BͥW€€k€€€€)))$€€€€f€G€{€€=€€€=€=€f€€€p.MqLORUYH\q_behl=ofrux{ €€=҅€a€€=͐\€{€€)€€Gמ€a€{ €€3€€GүWܲ€f€€p€v{v€p€€fW€€=€€W€€v€€k.\€W€MQRT{WZ]`dHgqjmpsw=zf}€G܁€k€$€€G܌€k€€€Bҗ€a€€€)€Bͥ\€€p€€€.€8€€=€¼€B€¿€B€€=€3$€ €\€.€€RM€€€Gv€€€k){ORUY)\R_{behkoHrqux{~ €.€…W€{ €.€R€v€$€BҞ\€{€€3€€Gү\€€k€v v€€a€G€)€€a€$$€p€.\€€€v€=€Q)TRW{Z]`d)gRj{mpsvzH}3€ǁ\€€€8͌€a€€3€—W€v€€€8€ǥR€€k €€.€8€€B€ǼMͿMM€€G€€8)€€€\€.€€M€B€8€a€p€B{RUX\)_Rb{ehknrHuqx{~€€B׈€f€€Bғ€a€3€žRܡ€k€€)€€BͯRܲ€f€v €€ v€€a€B€€W€€€k€€\€€€8W€k€k\3T)WRZ{]`cg)jRm{psvy}€€G܄€p€)€M܏€p€$€BҚ€a€€€)€€BҨ\€€p€€$.€€=€¼€B€ǿ€GM€€G€€=€3€€€p€€G€{.€€f )€B€G€8€€{UX[_)bRe{hknquHxq{~܀€p€.€R€v €)€Mܖ€p€€€=€ǡW€€p€.€€BͲWܵ€f€€p{v€€aM€.€€k3€€€B€€$€f€ €€W)ZR]{`cfimHpqsvy| €.€„W€{€€3€W€v €)€€Gם€f€€.€€Gҫ\€€p€€€)3€€8€€=€€=€3)€€v€R€$€MM€€$\€€€{X[^aeHhqknqtx={f~€€W€€€8€Nj\€€€3€–R€€p€€€=€ǤW€€p€€)€8€µMҸWܻ€a€€k€€p€€p€€k€€aW€B)€€k€=€WM€€€G€k€€€kY]H`qcfilp=sfvy|€€8͇\€€€8€ǒ\€{ €)€€Gנ€f€€€)€=€ǮRܱ€f€v €€€€€€€€€€€€{€€a€B€€M\€B€€€=RR€G)q[^adh=kfnqtw{)~€8̓€a€€€=͎\€€3€™R€€p€3€§Mܪ€f€{€€€)€8€€B€Ǿ€GMRM€€G€€8)€€€\€.€RW€.€k€€€\`=cffilos)vRy{|€a€€=Ҋ€a€€€8€ǕW€v€$€Bͣ\€v€.€€=€ǴR׷\€€k€v{{{v€€k€\€B€)€€k€8€R€G€€€B€p€€f^adgk)nRq{twz}€€=҆€a€€8͑\€{ €)€€Gן€f€ €$€=€ǭRܰ€f€v €€€€$$$€€€€v€\€€8 v€8€€€G€€.€p€ .€BM€G3_ c3fRi{loruy3|\€B҂€f€€=͍€a€€€.€Mܛ€k€.€€Gש€a€v€€$.€€=€½€B€€GMM€€B€€8)€€k€B€v3€3€ €G{€€€\a{dgjmq=t\wz}€f€€=҉€a€€3€”R€€p€€€8€ǢR€€k€€$3€€BͶR׹\€€f€€k€€p€€p€€k€€aR€B)€€p€G€€k€$v€€\€€€8\€p{v€fbei=lforux{€€B҅€a€€8€ǐW€v€$€=͞\€v€.€€BͯWܲ€f€v €€€€€€€ {€€fR€3€ v€B\€ \€.€f€€€ Hdfgjmpsw=zf}€Bҁ€f€€8€njW€v €$€BҚ€a€{€€€8€¨M׫€a€v €€€$.333.$€€€v€\€€8€ €p3€€€B€€3v€€$M€p€€ehloHrfux{~€€8͈\€{ €)€€Gז€a€ €)€=ͤW€€k €€)€8€€B€ǻM;RRRM€€B€€8$€€€\€3€€a€€{$€p€€=v €€)gRjqmpsvy}€€=̈́\€€€.€€Gג€f€€.€€GҠ\€v€€)€8€±€GʹWܷ€a€€f€€k€€p€€p€€k€€aW€G€.€€€W€)€€MW€=€)R€p€€hknruHxf{~Ҁ€a€€€.€M܎€k€.€Mל€a€{€€3€€BͭRܰ€a€€p{ v€€aM€3€{€M€{3.{€€Bv€ jm=p\s{vy|{ €)€€G׊€a€€€)€€BҘ\€v€.€€=€ǩRܬ€a€€p{ €€€€€€€€€€€p€W€=€\€)€€G€€G€€$€f.€G\€a€aMqknqtw{~€.€M܆€f€€.€€Gה€a€{€€3€€Gҥ\€€k{€€€€$)...)€€€v€\€8€{€M€€k€€v€€\€€€M{€€€los3vRyq|R€€p€3€Mܐ€f €$€8€žMס€a€v€€€)3€€=€¸€B€ǻ€G€Ǿ€G€€G€€B€€8)€€v€W€.€€k.€€€G€€€B€€W€€€€)€=€B€=)Hnfq{twz}v€€€8€ljR€€k€€)€B͚W€€k€€€)€8€€B€DZMҴW׷\ܺ\€€a\WM€€B€.€€€pM€€€R€€k€€€k€€G€3\{€€oruy|3)€Bͅ\€v€€3€€GҖ\€€p€€€3€€B€ǪMҭ\€€f€€k€€p€vv€p€€k€€aW€G€.€€a€8 €k.€€=€€.v€€8€k€€€€€ q3tRwfz}M܁€f€ €$€8€Rܒ€f€{€€€)€=€£MҦW€€f€€p{ {€€k€\€G€.€ {€R€$€M\W€.€k.M€f€pv€kWrux{~€€.€€B͋W€€p€€€3€€B͟Wܢ€f€€p€€€€€€€€€€€€€€€€p€\€B$€€f€8€€f€${){€€W€€€B€k€€€s wz3}$€8€„M܇€f€{€€€)€=€ǘMכ€a€€p{€€€€$).333.$€€€ €k€R€€8€€R€€€€=€€€G€€€8€€=v€$..$€Rufx{{~Ҁ\€€p€€$€8€€GҔW€€k€{€€€)3€8€€=€±€B€Ǵ€G€Ƿ€G€Ǻ€B€½€=€€8.€€ €f€G€$€€f3€W €f€ W€.€k 3W€p{€fvy| €€3€€B͍Wܐ€f€v€€€)3€€=€§€GͪMҭRװW׳\ܶ\׹WҼRͿ€G€€=€.€€v€\€€8€{€€G €k$){€€R€ €=€k€€€€x3{=~3€€B͆R܉€f€v €€)3€€B€ǠMңWܦ\€€f€€k€€k€€k€€k€€k€€a€\M€€=€.€€k€G€$\€$€€=€€€B€€.v€3€k€€€€$3€83$ y|W€€f€v€€€)€8€€B€ǙRל\€€f€€k€v{{v€€k€€aR€€=$€ {€\€3€€k3€R\M€€\€$€G€f{€vWz}€€€.€=€€G͒Rܕ€a€€k€v{€€€€€€€€€€€ {€p€€aM€3€€k€B€{€€G €f€€v€€€f€B€)W€€=|R.€8€€B͈R׋\€€f€€p{ €€€€€€€$$))$€€€€€€p€\€B€)€ {€R€$€W€€{3€3€€a€€R€$..$€€}W܁€a€€k€v{ €€€€€$)33€€8€€=€€=€€8€€83)$€€€€kR€€8€€a3€€f.€€B€€G€€3{€€B{ .M€fv{{€pW€8 €€€€€$)3€€8€€=€š€G€ǝ€G͠MͣRҦRҩRͬMͯ€G€Dz€B€µ€=€3$€€v€€a€G€$€€p€B€v€=€W \M€$€a€3\€€€€€€)3€8€€=€Š€G€ǍM͐RғWז\ܙ€a€€a€€f€€f€€f€€f€€a€\ױWҴM€Ƿ€B€3$€€€p€R€3€{€R€€€M €f€€€p€€€f€=€.\€€€€€€׀\܃€a€€a€€f€€k€€p€vv{{{{{{v€€p€€f€\׶R͹€B€3€€ {€€a€B€\€.€\€€v.){€€W€€R$€=M\\W€G) €€€€€€€€€€€€€€€€€€€€ {€p€€aܸRͻ€B€.€€kM€)€€k€8€€f€)€€=€€€=€)€p€8€p.R€p€€€k€G...333333..)$€€€€€€p€€a׺R€ǽ€=$€ {€W€3€ v€€G€v€8€€MM€€€=€R€€.\€€€€€܂WׅW׈W׋W׎RґRҔR͗M͚M€ǝ€G€ €B€€=€3.$€€€ €p€\Ҽ€G€.€€f€B€€R€€€€B\ €aR€€)€k€€R€ €)..$ €€{{v€p€€p€€k€€f€€aܟ\עRͥM€Ǩ€B€€8)€€ €k€W;€=$€€p€M€$€\€)€€R €f€€€p€€€a€B€€=€p€€8R€f€pv€p€aM).)$€€€€€€€ {v€€k€€aܧWҪ€G€­€=.€€{€€f׽M€.€€€W€.€€k3€\€€v)$v€€W€€W€€€€G€f€€€f€8ׄR͇€G€NJ€B€€8€3)$€€€€€ v€€k€\׬M€ǯ€=)€€€p€WͿ€=€€f€8€v€B€f€$3€3€€k3€p€€€B€k€€€€€€€€p€a܆W҉M€nj€B€€8.$€€€€€p€€fܨWͫ€G€3€€ €fܻM€.€€{€W€.€€f3€\€€v).€€f€8v€€R€€$))€€€v€€f€\בR͔€G€€8.€€€{€k€\ҭ€G€3€€v€\ͽ€=€€a€8€ €p€=€f€$€8€€€8€.v€M€=€p€€€.€G\€f€k€f\€G.$€€€ v€€f€Wҙ€G€œ€=.€€ €p€\ͯ€B€.€€€f׼€G€$€€k€B€{€€G€€p.€€€B€€€G€€€=€€a€€W€€€€8\v€€€a€= R€Lj€B€.€€€v€€f€W͞€G€3€€€€k€W€DZ€=$€v€W€¾3€ {€M€€€R€€{€8€MW€G€€)€p3€p €8\€€€€€€€€p€8€k€Wҍ€G€3$€€v€€aנM€£€8$€€€fܰM€³3€€aҽ€=€€W€)€\€$€€B\ €aW€€=€ €G€)W€€€€$$€ €€k€€€p€\Ғ€G€3€€ €€fܢR€ǥ€8$€ {€€aҲ€B$€€p€M€$€€f3€€f.€€M €f€€€k€€€fM€€\€€€B€p€€€€)€=R\€a\R€B)€€=$€€€k€R€Ǘ€=)€€€k€R€ǧ€8€€v€W€´3€€\€Ǿ3€€p€B€€p€8€W€€€p€$v€€p€€\€.€p€$\€€€€3R€k€€€€v\€8܉R€Œ€8€€v€€aҙ€G€.€€€kܦR€©3€€f׳€G$€€fҽ€=€{€M€{€€B€a€€{..€€k€B€€=v3Wv€€€€€f€8€€a׎€G€)€€€fכM€.€€fר€G€)€ {€W€µ3€ v€M€€€W€$€M€€p)€8€€€8)v€ R€€R€$Mv€€€ €€€€€€f)€€€p€R€“3€€kܝM€.€€€€aҪ€B€€€f״€B€€\€¾.€€a€.€W€€{3€€€B€€€B€€€8€€a€)€f€ €=€k€€€€)€8€B€G€G€=.€€€€W€.€€{€\͕€=€€kܟM€.€ {€W€Ǭ3€€{€R€)€€kҽ€= €p€8€€a€$€€=€MM€B€)€p€8{€$W$€=W€kv€p€a€G$€\͍€8€€aҗ€B€€€kס€G€$€€pܫ€G€$€€fҵ€=€{€€G€{€€G €p.€€€GW\R€€3€ M€€8€p€$€B€a€€€€vR$€€f׏€B€€fҙ€B€€fң€=€€aͭ€8€{€M€€€W€$€R€€{€8€R €a€€€f€ \€B€\€€R€€€€=€f€€€€€€€R€€€pܑ€G€€fқ€=€€\€ǥ3€ v€M€$€€a€Ƕ3€€fͽ3€€a€$€€G\€€€k€€€p€€€f€R€€)€k€)€f€3\€€€€$)$€€€B3€ vܓ€G€€a͝€8€{€R€$€€fͮ€8 €pܵ€B€vܼ€B €k3€€R€€k€€v){$v€€\€€8{€€=v€€Mv€€€ $€8MW\€a\R€=)€p€Ҏ€8 vܕ€G€€\€Ÿ.€€kצ€B€{€M€€€W€$€R€{€=€\€€v)3.€€k€G€M€.€a€€€ )€G€av€€€€€pW3 €)ÀkҐ€8 €pܗ€B€€R€$\€Ǩ.€€fͯ3€€fͶ3€€a€½)€M €k€$3€€€=€€€8)v€ R€€€a€€€G{)M€k€€€€€€a3€;€kҒ€8€€kי€= €pܠ€B€{€€G€€M€{€€G€€p׼€8€\€€v3€€B€€€G€€€B€€3€€a€.€p€$\€€€€€B€k€€€€€a)€@OÀ€f͔3€€f͛3€€f͢3€€fͩ3€€a€ǰ.€\€€€€G €k€)€€=€MRR€€B€$€p€=€€8€p €8€a€€$.3€83)€€€R@aÀ8€€a€ǖ)€W€$€R€€€M€{€€B €pҶ3€W€€{3€€M\ €a \M€€3{€ M€€€G€€€M{€€ $€=M\€f€k€k€fW€G. €{@u͑.€W€€€€G€vܣ€=€kͪ3€\€$€€G €kͼ)€€BW€€f€€€k€€€f€ \€B€\€€€\€3€f€€€ )€G€av€€€€€v\€8€€.Àf€“$€M€€pҞ€8€€a€¥$€M€vװ€8€\€€ܻ€=€R €f€€v${$v€€€fM€€$€k€.€k€€M{)€G€k€€€€€a€8€@ÀW€€{י€8€\€$€€G €kͫ.€€R€€pҶ3€€M €f€€v)..$v€€\€3{€€={€€)€a€€€€€B€f€€€€€a)€RÀÀ€M €f€Ǜ)€€G €k€Ǧ)€M €kͱ)€€G€a€€v.€€8€€€=€€€=€€3€€f€B€M€€€=v 3\€€€$.€8€=€83)€€R@ cÀB€\€€vҝ3€€M €kͨ)€€G€f€³€ܷ€8€€M\€€€f€€€k€€€f€ \€G€$€k€8{€3€k €8€f€€€€8R€a€p{v€kW€=€€€#À}ה3€€G\€€vң3€€M€f€®€ܲ€8€€M€a€€€p€€v${$v€€€k€ W€€3{€€G €B€€€R€€=\v€€€€€f€B€€5@Àf€–€vҚ.€€B€W€€k€ǩ)€€=€R €f€¸€vͼ)3€3€3){€€€a€B€W€€W€€3€f€€€€€8\{€€€€€€€€€€k€B€G@R\€€€k€Ǡ$ܤ3€€€G\€€€k€dz${׷3€€=€€€B€€€G€€€B€€€8$€p€R€€$€f€)€f€€G{.W{€€€ €€€€€€€€k3€Y€€8€€€B€M\€€€k€Ǫ€{׮.€€=€€€GRWWR€G€€3€€a€3v€€8v€$\€€€€€G€p€€€$3€BMRRM€B3€€€€\ ÀkÀÀÀ€p€Ǚ€v͝${ҡ.ܥ€8€€€B€MW €a€€€f€€€k€€€k€€€aW€B€$€k€€B€ M€€8€p €8€a€.€G\€kv{€p€aM3€€€{À&RRW\€€f€€€k€ǯ€vͳ${ҷ)׻)׿)$v€€€f€R€€3{€ R€€\€€M€€€M{€€3R€k€€€v\€8€05À8ܚ3ܞ.ܢ3ܦ3€€8€€€=€€€B€€€B€€€B€€€=€€€8){€€€a€B€€€a€)€k€$\€3€a€€€€3R€p€€€€€€€€a3€€B@@EÀ˜€€f€€€a \\\\ \ \\R€G€€€=$€p€ R€€.€p€€={€3€p€€€G{)M€p€€€ €€€€ €\)€€TÀÀTR€€€B€€€8€3ܧ.׫)ү){ҳ${ͷ€€p€ǻ€€k€€€aM€€€8€€f€=€ M€ €G€€)\€€€€€B€f€€)€8€B€GM€G€B€8)€McÀcܙ){͝€€k€€€aWR€G€€€B€€€=€€3Ҿ$v€€€aM€€.v€M€€\€€W€€=€p.\€ $€8M\€kv{{{€p€fR€=€€p€u@#@sÀfR€€€=€€3Ҩ$v€Ǭ€€k€€€aWM€€€=)v€€\€=€\€.€p€.€k€€R€€€€G€p€€€ )€B\€p€€€€€f€G$€)@3À€=מ$€p€¢€€aM€€€B€€3ҳ$v€Ƿ€€fR€€=$€p€R€€)€p€=€€={€.€a€.\$€B€a€€€€€€pM€€€;@@{€ǜ€\€B€ܥ.{€ǩ€€f€W€B€€3Һ€€k€ W€€=€€f€=€ M€€R€€=v€€€Gv€€B€a€€€€€€ €€€€p€G€@JÀÀ@OM€€.v€£€\€B€€.{€ǰ€€fR€€€8׽$€p€R€€.{€ M€€€a€$€a€€R€)\€€€€8\€€€€)3€8€=€=€83$€€€€€k€8@\ ^Àҝ€€f€B€צ$€p€ W€€=׳$€p€ W€€=€€f€G€€€a€3v€€8v€.€f€ €=€p€)Rv€€€)€=M\€f€k€p€p€k€aR€=$ €€€W Àk@nÀW€€.v€¤ W€€3ͭ€€a€G€ܶ)v€º W€€8€\€3v€€B€ €G€€={€€R€€€€=€f€€3M€av€€€€€€{€fM. €{{ÀÀ+{Àܞ$€k€=ҧ€€a€Bװ€€kM€€)v€ R€€)€p€€G€W€€\€€R€3€f€)W€3R€k€€€€€€vW3€.@8@ÀÀ€a€.v€M€ܪ$€k€G€ܳ$€k€€G€ܼ$€k€B€\€)€k€3€p€)€f€€€G{€€€B€p€€€€3R€p€€€€€€€W)€@@@G€)€k€8€¨ R€€)€p€€G€׶€€k€Bҿ€\€.v€€B€€G€€={€$\€€)W)M€p€€€€€)...)€€€€{M€€@OÀÀWÀ$€f€.€p€=€ǫ€R€€)€p€€Bҹ€€a€3{€€G€€W€€\€€R€€€8€p€€=€p€€€€B€f€€€)€8€GR\\€a\R€G€8$ €€€€p€=^c@À€)€f€.€p€=€Ǯ R€ܳ$€f€8€Ǽ R€€€a€.€p€3€p€.€f€R€€$W€ €8\€€€€8M€a€p{€€v€aM3€€€€\n@@s@ )€k€)€f€.€p€8{€±M€Ҷ€\€)€p€=€€G€ €G€€B€.€f€€8€k€$Mv€€€$€=W€p€€€€€€€€v\€8€€€@!À}.€$€f€$€a€$€f€.v€€=€¹ M€Ҿ€W€€€a€$€a€€W€ €B{€€R€€€=€f€€$€B\{€€€€€€€€€€€€€a€8 €0ÀÀ=@#)€a€ܤ€W€ҩ€R€Ү€W€ܳ€\€€$€f€.€p€3v3v€.€f€€R€.€a€€€€M{€€€8Wv€€€€€€€€ €€€W)€€=À@GÀÀ.€€W€ͧ €G€Ǭ€B€±€G€Ƕ Mͻ€M€€R€€M€ €B€.€f€€€Bv €8€f€€€ .Rv€€€€.€8€=€B€G€B€=3)€€€{M€LÀTÀ@;$\€ҥ €G€€8v3€p€3€p€3€p€.€p€.€k€$\€€€G€€$W€€€$R$M€p€€€.€BR€a€k€pvv€p€k€aR€=) €€€€k€8@\@@c@Eܣ€M€3€p€$€a€ܳ€\€׸€W€ҽ€R€ €G€€=v€)€a€€=€p €8€f€€€€€=€f€ $€=R€fv€€€€€{€fR3€€€€W Àk@p@ R$W€€¦3€k€€W€ұ €G€¶€={€€8v€)€f€€W€€B{€€W€€€R3W€€ )€B\v€€€€€vW€8€€v@{ÀÀ+À}^ÀҤ€=v€€R€€ǯ€={€.€f€€\€ҿ€M€€8v€$\€€8€k €8€k€€€Mv€€€)€G€a€€€€€€€€\3€€+@@8@À#iÀM€€W€€ǭ€8€p€€W€͸ €G€3€k€€W€€=v€€R€€€R€€€8€f€$€B€f€€€€€)...)$€ €R$€€;GÀÀ0uÀ€ǥ.€a€€ǫ€8€kܱ€M€¶3€p€€W€€={€$\€€8€k€ €8€k€)R€€=€a€€€€.€=€GRW\\\WM€B3€€€v€G€@JÀÀTÀ@À=ÀÀ€B€pש €=€pܯ€€G€€)€a€Һ €B{€€)€a€ €B{€€R€€$W€€€€B€k€€€€€8\€€€)€=R€a€p{{€k\€G.€€€€€f3€Y @a@G€€€€G{€€€G€€W€€Ǹ3€kܾ€M€)€a€€8€p €=€p€.\.Rv€€€3€G€av€€€€€€€kR3€€€R@ iÀÀn ÀT3\€€€€R€€€R€)€a€ͼ€=€p€€M€€$W€€)\€€€€Gv€€G€p€€€3R€k€€€€€€€€€€vW3 €p€u){^{Ҩ.€a€€€$W€€$W€€º.€f€€8€p€€Bv€€€Bv €8€f€€€€€=€f€€8W€p€€€€€€€€€€€€{W.€€€&5#Àk€€GvҬ.\€€²€$W€€$\€€¾.€a€€3€f€3€a€€$R.W€€3Wv€€€€$.€8€B€B€G€G€B€8.€€€€€{M€€5ÀÀBÀ0uÀk€€€€€B€k€Ͱ)\€€$R€€€R€€$W€€€R€€€B€p€€€Mv€€€€3R€p€€€)€8€GW€a€k€pvv€p€k€fW€G€8€€€€€p€=E@@O@;ÀÀ 3\ܮ €8€f€€´€$R€€€M€€€G{€€B€p3€a€€€€€=€f€€€)M€p€€€3€G\€p{€€€€€€€p\€G) €€€\)€€T@\ÀG@W{ͫ€€Gv€Ͳ)W€€€€G{ܿ €=€p€3€a€€€$R.\$€G€k€€ $€=W€k€€€€€€€kR. €€G€@aÀÀiRÀÀͨ€€€=€a€€ €8€a€€€€€Gv׽€8€f€€)W€€€€B€p€$M{€€B€f€€)€G€a{€€€€€€€€€vR.€€fp@@!uÀ^À=€aҭ$Mv€€Ǵ$M{׻3€a€€€€M{ €8€f€€€€€B€k€€€€€8€a€€.€G€f€€€ €€)...)$€€€€€vM$€€@!À}À0ÀÀ@!iҪ€€B€f€ܲ.\ܹ €8€f€€€€€Gv.\€€€8€a€€€ 3W€€ .M€k€€€$3€=€GRW\\\WM€B€8$€€€€p€B€€0ÀÀ=@À+u@$€G€fү€€G€k€€€€€=€k€€½€€€Gv€)R.\)Rv€€€ )M€k€ $3€GW€f€p{{€k€aM€8€€€€€f3€€=À@@J@À@8À€׬€€=€aҴ$Mv€€ǻ€€Gv€$M{)R{$€G€p€€€)M€k€€€.€BW€k{€€€€€v\€B$R€LW@ÀB@@@ $€B€fͱ€€€8€a׹)R{$M{$Mv€€€€€B€k€€$€G€k€€€€8R€f{€€€€€€€€€€f€G)€p€8€Y cÀ@OÀÀv€Ү€€3W{€€¶€€€8\׾)R{€Mv€€€€€=€f$€G€f€ $€B\v€€€€€€€€ €€€€k€G$€€R@ iÀÀp@ÀY@#À€€=\{€€€$M€p€€€ 3W$Mv€€€€€=€a€€B€f€ )€G€a{€€€€€)3€8€=€B€B€B€=€8.€€€€€k€B€€€p€u@){ÀcÀÀ+W€p€€ǰ€$€G€fҹ€€=€f)Mv€€€€€8€a€€B€f€€.M€f€€€€€3€BMW€a€f€k€p€p€k€f€aW€G€8$ €€a3€€&À@@3#n@@3ÀǬ€€.M€k€Ƕ€€.Rv€€¾€ 3W{€€€€=€a€€B€f€€.M€k€€ €3€GW€fv€€€€€€€€p\€G3€R€€@3@@0@xÀÀ=3M€f{€ҳ€€.M€k€Ҽ€€=€a€€B€f€€B€f€€3R€p€€€€.€BW€k{€€€€€€€€€€pW€8€€p€=€€B@L;@@ G€ͯ€€€8R€p€͹€€.Rv€€$€G€p€€$€G€k€€€8Wv€€€€8R€f{€€€€€€€€{\€=€€€€\$€@OÀÀÀYÀE@ÀÀRÀ$€8M€f€€Ҷ€€)M€kͿ€€3W{€€€)M€p€€€8\{€€€€)€B\v€€€€€€$))$$€€€€€€a€8€€{€=@\@@cRÀ@\{€€Ͳ€€3R€k€Ǽ€$€G€f€€3Wv€€€€=€a€€€3M€f€€€€€.€8€B€GRRWWRM€G€=.€€€€\3€\ Àk@pÀ@\)cÀ €3M€a{€͹€$€=\€€€€=€a€€)€G€f€€€€=W€p€€€$€8€GR€a€kv{{€p€fW€G3€€€{R$€{@@x)À}@@Àf@@3nM€a€p€€µܶ€)€B€a{€€€3R€p€€€3R€p€€ )€B€a{€€€€$€8M\€k{€€€€€p\€B) €€€€p€B €)5@À)@s@À;@xÀ€ǰױ€€)€=W€k€€׽€€)€G€f€€€€=\{€€€3M€k€€€3M\€p€€€€€€€€€€kM.€€€€€a)€5ÀÀBÀÀ@3À}ÀE$.€=R€av€͹€€.€G€f€€€.M€k€€€€=\v€€€€.€B\€p€€€€ €€€ €€€€€pR. €€G E@L@À=@@O@€€´׵€€)€=W€p€€€)€G€a€€€.M€f€€€ $€=R€k€€€€€€$.3€8€=€=€=€83.$€ €€vR)€€f)€RÀÀYÀGÀÀYÀÀ €)€8€G\€p€€ǽ€€.€G€a{€€$€=\v€€€€3M€a{€€€ €)€8€BMW\€f€f€k€k€k€f€aWM€B3€ €€vM€€€€G€^@Àf@ÀT@@#@a@W€a€p{€€͹€ €€8R€f€€€€8R€k€€)€B\v€€€€3€BR€a€kv€€€€€€€v€k\€G3€€€€k€=€€€a@Àk@s^ÀÀ.ÀkÀÀ€Dzҳܴ€ €)€=R€f{€€€€€8R€k€€€€€8R€k€€€$3€GW€k{€€€€€€€€€€€€€kW€=€€\.€@@x)À}@i@8u$.€8€BMW€fv€€Ҿ€€)€=W€k€€€€3M€f€€ €3€G\€p€€€€€€€€€€€{€a€B$M€€€+5@@)@s@À}@€€€€¸ҹ€€€)€=R€f{€€€€3M€f{€€€ €3M€a€p€€€ €€€$$$$$€€ €€€€f€G€€€k3@8ÀÀÀBÀÀ@3À}@ @JÀ €$.€=M\€k€€€ $€8R€f€€€ €3M€av€€€€€)3€=€BMRRWWRM€G€B€8)€ €€€f€B€€€M€E@@@O@@@@ÀÀT@@RW\€a€kv€€¾׿€ €3€G\€p€€ €€8M€av€€€€€.€=€GR€a€f€pv{{v€k€aR€B3€€€a€8 €k.€RÀYÀ@JÀÀ@@\ÀÀ€€€¶€ǷҸܹ€€ €)€8M\€p€€€€$€=R€f{€€€€€)€8€GW€f€p€€€€{€kW€B)€€W)€€G€^Àf@ÀTÀ&Àf@ÀÀ€€$).€8€BMW€a€p€€€€ €3€GW€k€€€ €3€BR€av€€€€€€€€€€€fM3€€{€G€€€fÀk@pÀ^0pÀ{{{€€€€ǿ€€€€3€BW€f{€€€€)€8M\€p€€€€€€ €€€€€ €€€vW€8€€€€€f3€@x)À}@i@@;@x@Àܴܷܵܶ€€€€€)3€BR€a€p€€€€€3€BW€f{€€€ €€).€8€8€=€B€B€=€=€83)€€€€{W3€€€R€€€+5@À)@sÀÀÀBÀÀ@À=€=€8€=€=€B€GMR\€f€p{€€€€€€.€BR€fv€€€€€€.€8€BMW\€a€f€k€p€p€p€k€k€f\R€G€=.€€€€{W.€p3€@8À@ÀÀ@3À}@ L@ÀÀ€€€€€€€€€€ €)€8€GW€fv€€€€ €$3€BM\€f€p{€€€€€€€€€€€p€fR€B.€€€€{R$€R€E@L@À=@ÀWÀ@€€€€€€€€€)€8€BR\€k{€€€€€€.€=M\€fv€€€€€€€€€€€€€€v€aM3€€€€k€=€€k)€@OÀÀWÀGÀ^@ WM€G€G€G€G€GMMRW€a€f€p{€€€€ €$3€BR€a€k{€€€€€€€€€€€€p\€=€\.€€G€@\@cR@)iÀ€€€€€€€€ €$3€=M\€fv€€€€€€ €€€$$)))$$€€ €€€€a€B${M€€a@iÀÀn@@\À0pÀ  €€€)3€=€GR€a€kv€€€€€ €€)3€8€B€GMRWWWWWRM€G€B€8.€€€€€f€B€€€k3€{@u@À&{@Àf@;{@À&Àp€f\WRMMMMMRW\€a€f€kv€€€€€€€€)3€=€GRW€a€k€pv{{v€k€aW€G€8$€€€€f€=€€€R€€)À@0À&pÀBÀ@.ͷ€¸€€€€€€€€€€$.€8€BMW€a€kv€€€€€€€€€€€p€aM€8€€€a€8 €k35@ÀÀ=@0{@ LÀ5)€€ €€€$)3€=€GR\€f€p{€€€€€€€€€€€€€€€€€v\€G)€€W)€M€€B@@G@À;@ÀWÀ@ À=v€k€aWRM€G€G€G€B€G€GMMRW\€a€k€p{€€€€€€ €€€€€€€€€€ €€€€€kM3€€€€v€G€€k)€@OÀTÀ@E@@^ÀGܸҹ€º€€€€€€€€€€€€€€€€€€$.3€8€=€B€G€GMMMM€G€G€B€=3.$€ €€€€pW3€€€€€f3€€BÀY@@ ^@À@OÀ@À&iÀ@À@OÀ8)€€€€€€€€€€€€€ €€€).€8€=€BMRW€a€f€k€pvv{{{{v€p€k€aWM€B3$€€€vW3 €M€€\ ÀfÀkÀ ÀYÀ0pÀ@!WÀv€f\R€G€B€=€8333.333€8€=€=€B€GMR\€a€f€kv{€€€€€€€v€k\€G€8$ €€€vR)€€k3€v€@s@!uc@8{@@À+^Àܺͻ€€€€{{{{€€€€€€€€€€€€€€€€€€€€p\€G3€€€€p€G€€€R€€€&.À@!n@ÀÀBÀ@3ÀfÀG3$€€€€€€€€€€€€€€ €€€€€€€€€€ €€€€€pW€=€€€€k€=€€k.€@3@8À+@xÀL@À;nÀv€fWM€B€8.$€€€€€€€€€€€€€€€€$)..3€8€=€=€B€B€G€G€G€G€G€G€G€B€=€83.$€€€€€{€a€B$\.€M €€=E5À@ÀTÀ ÀBu€ͼ€€€{v€k€f€a\WWWRRRWWW\\€a€a€f€k€k€p€pvv{{{{{{{{vv€p€k€a\R€G€8.€€€€€€f€B${€G€€€f$€@J@O@@À@^ÀÀ@JÀ}M€8$€€€€€€€€€€€€€€€€€€€€{€p€fW€G€8$€€€€f€B€€€€f3€€=W@\À@J#ÀfÀ@R€v€fR€B3$€€€€€€€€€€€€€€€€€€€€€€€€€€p\M3€€€f€=€€€R€€WcÀf@ÀT@.pÀ#ÀY€ͽ€€v€f\R€G€=€83.)$$€€€€€€€€€€€€€€€€€€€€€€€ €€€€€€p\€B) €\3€k3€€p€ppÀ^5@x@@À+@aÀR€8€ €€€€{v€p€k€f€a€a\\\\WWWWWWWWWRRRMM€G€B€=€83)€€ €€€€€fM.€€R$€M€@!{À)À}@@i@@À5i@€p\€G3€€€€€€€€€€€€€€€€€€{v€p€f€aWM€B€8)€€€€€€pR3€€€€€p€B€€k.€.5ÀÀ&@sÀ@J@@À=p€€Ǿ€€p\M€=3$€€ €€€€€€€€€€€€€€€{€p€aW€G€8$€€€vW3€€€€€a.€€G€;ÀÀ@0À}@RÀ E@xÀM3€€€€{€p€aWM€G€=€8.)$€€€€€€ €€€€€€€€€p€aM€8$ €€€{W.M€€€a€G@J;@\@ÀÀL@€fM€8€ €€€€€{€p€k€f€a\WRM€G€B€B€=€8€83.)$€€€€€€€€€v€a€G.€€€vR)€€k3€{€8€RÀÀW@EÀ@!c@@ÀT@׾€€€pW€B3€€€€€€€€€€{v€p€k€f€a\WRM€G€=€8.$€€€€€€€pW€=€€€€€p€G€€€M€€R^ @a@À@O@)nÀ#@\@W3€€€€v€aR€B€8)€€ €€€€€€€€€{€p€f\R€B€8)€ €€€€fM. €€€€k€B€€p€8€€p€n@pÀ@@\À@3u@.c€f€G.€€€€{€p€aWM€B€8.)€€€ €€€€€€€€€p€aR€B3€ €€€pM. €€€a.€€R€@!{À&{ÀÀf@À=5Àk@׿€€{€a€G3€€€€€v€p€f\WM€G€=€8.)$€€€€€€€€€€k\€G3€€€€pM){M€€€k.€.@3#pÀGÀÀ=@sÀÀG)€€€{€fR€=)€€€€€€v€p€f€aWR€G€B€8.)€€ €€€€€€p\€B)€€€€€pM$€€k€8€€G€@8À=@.{@ @O@ E{ÀvW3€€€€€p\M€8)€€€€€€€€€v€k€aWM€B€8.€€€€€€fR3€€€€k€B€€€R€€€a€E@J@À@8ÀÀYÀÀÀLÀÀÀ€€a€G)€€€€€{€k\R€B3)€€ €€€€€€v€f\M€=.€€€€€vW€=€€€a€8 €p€8€{€8€RÀTÀÀB@@a@@ÀT@ÀÀ8€€€€pW€=$€€€€€v€f\M€B€8.$€€€€€€€{€k\M€8$€€€€a€=€W)€R€€R€^@ ^LÀ@À&ÀkÀ#@\@€a€=€€€€kW€=)€€€€€€p€f\R€G€8.$€€€€€€€v€aR€=$€€€a€B€v€G€€€p3€€k@ii@ W@À0@s@À+cÀ€f€B$€€€kW€B3€€€€€€€€{€p€fWM€B3)€€€€€€€{€aM3€€€€a€=€€€€€a3€M €@u@!uÀ@aÀ@@8À}À5Àk@ÀÀ)€€kM.€€€€€p€aM€=.€€€€€€€p€fWM€=.€€€€v\€B$ €€a€8€€M€€€f$€€)À+@ÀkÀÀBÀÀ=u@@ vM$€€v\€=$ €€€{€fW€G€8)€€€€€{€k\M€=.€ €€€€fM.€€W.€€k3€€B@3@8@@)u@J@ EÀ}@À€€p€G$€€€fM3€€€€€v€fW€G€8)€€€€€€€{€kW€G3€ €€€€pR3€€€€vM€€€R€€\€@ÀBÀÀ@3@ÀTL@À€€€€k€G$€€€v\€G3€€€€€€p€aR€B3$€ €€€€€p\€G3€€€vW3€€€€€k€=€€k3€v.€LLÀ=@À@\@ÀT\.€€kM) €€€€p\€B3€ €€€v€fW€G€8)€ €€€€p\€B)€€€{W3 €€\)€M€€€GWÀYÀG@@!ÀfÀ#@\À@À&{M$€€pR3€€€€€kW€G3€€€€€{€kW€G€8$€€€€€kR€8€€€vR){€G€€k)€€a@ c@cR@À+nÀ+c@@.€€€p€G€€vW€8€€€€€kW€G3$€€€€v€fR€B.€€€€v\€=€€€€vM$€€€f3€€G€vn@n@@\À@3@x@@@3Àk@3À=€€€€€f€=€€€{€a€B)€€€€€kW€G3$€€€€€kW€B.€€€€€f€G$€€€€k€B€€€M€€€a€€@!{À&@x@ÀÀf@À=À;@s@ ;\)€a€=€€€€fM€8€ €€€{€fW€B3€ €€€€p\€B.€€€€k€G)€€€a3€€k3€{€8€.@0ÀÀ#n@G@@ÀB{ÀÀBv€G€€€\€8€€€p\€B.€€€€v€aR€=)€€€€€kW€=$€€€k€G$R$€€M€€R €;À;@À+@xÀ@ @O@@JÀ@À@GÀ€€€€a€8€€€€{\€8€€€€{€fM€8$€€€€€kW€G3€€€€{€a€G.€€€€k€G€€€p€B€€k.€€k$E@@GÀ5ÀÀWÀ@ÀÀT@@#@OÀf3{R)€€{\€=€€€€€pW€B.€€€€v\€G3€€€€pR3€€€f€B€€€€€a.€€G €€=€RÀR@@À@@a@!@\)WM€€€€€k€G€€€{\€=$ €€€{€aM€8$ €€v€a€G3€€€{\€=€€a€8€€M€€€a$€€R@\@@\À@JÀÀ&iÀÀ)cÀ@À0@\€€€a3€a€=€€{\€B)€€€€kR€=)€€€v\€B)€€€€a€=€W.€€f.€€=€k@iÀÀf@ÀT.@s@0Àk@@8cÀB v€G€€€€{W3€€€{€a€G.€€€€pW€B)€€€€€kR€8€€€€a€=€{M€€€M€€W€@@s@pÀ^@8{ÀÀ@8@s@@ÀkR€€€\.€€€pM) €€{€a€G.€€€€kW€=)€€€€{\€B$€€€a€8€€€€€f€8 €€f.€€p)€€€&À}À){ÀÀf@ÀÀ@{Ep€€a.€€p€G€€f€G) €€{€a€G.€€€€kW€=$ €€€fM. €€\3 €W$€€€G €B0@@3#pÀG GÀ@ÀL@xÀ€p€=€€\3€€€€a€B$€€{€a€G.€€€€fM3€€€€€pR3€€€W.v€B€€€a$€\€€€=ÀÀ=@@.{ RÀÀÀ@O@@#RÀ}\$€€R€€€€€pM$€€{\€=€€€€{€a€G.€€€€{€a€G)€€€€vW3€€€€vM$€€€a.€€=€v.€GGÀ@8ÀÀÀY@@WÀ+ÀY€k.€€€a3€a€=€€€pR€8€€€€v\€B)€€€pR€8€€€{W3€€€€€k€B€€€G€€\€€€B€TÀÀT@ÀBcÀÀ#^À@À@3@a@Àv€= €p€G€€€€vR. €€€kM3€€€pW€=$€€{\€B$€€€{W3 €€€€a3€€f.€v3€\^@ ^ÀL@À&ÀkÀ+Àf@@ ;Àf.€€€G€€W)€f€B$€€€€f€G)€€€€€kM3€€€f€G) €€€{W.R€€€€G €M€v€ÀkÀi@ÀT@0u@3nÀ@@@nÀv€8€W$€€€€f€=€€€€{W€8€€€{\€=$€€{\€B$ €€€pM. €€€vM$€€p€= €€a)€€f€u@!@sÀ^@@8À}À=uGuÀ{€=€€a.{M$€€kM) €€€pR€8€€€€kM3€€€vR. €€€€p€G€€€€\)€€€B€€8€€+ÀÀ+À}@i@ÀBEÀ}À@O{À€€G€€p€=€€€a€8€€€\€=€€€€f€G) €€{\€=€€€vR. €€€€f€8 {€B€€\€€R€5@5À&@sÀ@J@@@LÀ@À&ÀTÀÀÀB€M€€{M€€€€€p€G$€€pR.€€€vW€8€€€€f€B$€€€vR.\.€€€a)€v€8€f€@@@0{ ÀTÀÀT.@\@@€B€€W€€€W)W3€€€€a€B€€€€f€G) €€kM)€€€vM){M€€€G€€R€€€8€L@@J@À@8@@\@@\ÀÀ@3c@@À€G €\)€€€f€8 €€€€k€B€€€pR.€€€€pR3€€€pR. €€€€p€G€€€€k€8€€a)€€k)€€MWÀÀTÀÀB@cÀ&c@À@ ;i €€G€€€f3€€p€B€€€€vR. €€€a€=€€€\€=€€€vR. €€€€k€=€€€W$€€€B€€B€f c@ ^L@)n0Àk@@ÀBp@M €M€€k€8 {R$€a€=€€€kM. €€€f€G$€€€vR.€a3v€B €€a€€€\€€{nÀi@ W@À0u@@@8@sÀG@xÀM €R€v€B€€\3 €€€€p€G$€€€{W€8€€€pM) €€€vR)W$€€\)€€{€=€€p)€€@!@x@@!@sÀ^À@;ÀÀ@{@À@OÀ}€G €€R€€{€G€€€€€f€=€€€€{W3€€€€a€B€€€vR. €€€vM$v€G€€{€B €W€€B.ÀÀ+À}@@i@ÀÀB@@ GÀÀ&WÀÀ€G €W€€R$€€€p€G€€a€=€€€k€G)€€€{W. €€€€p€G€€€€€f3€€a)€€p.€\€€@8@@8ÀÀ&@sÀL@@O@À@À+^@R €€G€W$€€\){R)€€€k€G$€€vR. €€€{W. €€€€f€=€€R€€{€B €G€v)EÀÀB0À}@ÀTÀÀÀW@@3cÀÀÀM€€B€\)€€€a3\3€€€€vR. €€€{W3€€€€{W.\3€p€= €€a$€€a€€=€@OÀ@L@À;@@\@@!^À;ÀkÀÀ€G€€B€€a)€€€f€8€€€€€f€=€€€\3€€€\€8€€€€{R)R$€€€\$€{€=€{3€W€ÀYWÀÀB@À@!ÀfÀ)Àf@À@ÀB@s@@À€=€€B€€a.€€p€B€€€€€k€G€€a€=€€\€8€€€€vM$€€p€B€€{€B €W€€M€€k@Àf@@aLÀ@)n@@@3n@G@xÀ@R €{€8€{€B€€f3v€G€€€€vM$€f€B€\€8€€€€€p€B€€€€€a3€€a)€v3€€f€€pÀÀk@ W@À@3@x;u@@OÀ€G€v3€{€B €€f€8{M${R.€€€k€B€\€8€€€€€f€=€€R€€{€B €M €3€€€&{@#uÀ@aÀ@;ÀÀÀBÀ}@#W@€8€€k)€v€8€€f3{M${R.€€€f€B€W.W)€€k€8€\€€€a€€€G.ÀÀ+À}@i@ÀB@@ GÀ)@\@@  €v.€€a$€€p€8€€f€8{R$W.€€€€k€B€{R){M€€€R€€v€8€{€8€€a€€@8@5#p@J@@OÀ0cÀG€k$€€\€€€p€8€€k€8 W)\3 €€€€k€B€€€€vM€€€€k€= €p€=€W€€R €v)EÀ@@.{ RÀÀWÀÀ@8iÀ€8€\€€W€€€k€8€€k€8 W.\3 €€€€f€=€€€€€k€B€€€\)€€W$€€p3€€k$€€B€@O@@J@À@8ÀÀ@\@@!^ÀÀ@ @pÀv)€€R€€R€€k3€€k€= €\.\3 €€€€f€=€€€€€f€8 {€G€€v€=€M €€=€WÀYÀÀTÀ@ÀBc)Àf@@E@xÀÀ#€f€€€G€M€€€f3€€k€=€€\.\3 €€a€8 €W)€€f3€\€€€f$€€W €€p@Àf ^À@JÀ&n@0nÀLÀ}ÀÀ)À=€W€€€=€€G €€f3€€k€=€€\.\.\.{M€€€R€€v€=€€=€k$€pi@ÀT0u@@8u@!ÀT@@ 0{.€€G€v3€{€=€€a.€€k€=€€\.W.R$€€k€= €p€=€W€€W€€8€€€&{@@!@sÀ^@8À}ÀÀBÀ}@À&ÀYÀ@5À€f€€8€€k)€€p€8€€€a.€€€f€8 W.R)v€G€€€€\)€€\$€€p3€p.€€R0ÀÀ+À}ÀÀfÀB@@ @J@.@aÀÀ;R€€p)€€€a€€€k3€€\)€€€f€8 W){M€€€€k€=€€{M€€v€=€R€€G€f€€;@5#pÀ@J@R5iÀ@@ÀB.€=€€a€€W€€€f.€W$€€€a3R$€€p€B€€€€€a.€€k€8€\$€€k)€€a€3€EÀ@@.{À RÀÀÀYÀ@À=n@@!GÀk€€v)€€R €€G €\$€€R€€€€€a.{M€€€€€k€=€€R€€€W€€{€=€€B€v.€€€GRÀ@@J@@8ÀÀ@\@@!@a@ ÀBuÀÀ)@OR€a€€B€€=€€W€€M€€€\)€€p€B€€€€€a3€p€B€v€=€\€€€€a€€€G\@\ÀÀT@@Àc)iÀ@JÀ}À.ÀTÀ€8€€M€v3€€p3€M€€{€G€€W$€€€k€=€€R$€€€a.€€\$€v€8€{3€\€€vÀf ^À@JÀÀ&Àk@@3pÀ@RÀ@@ 5ÀYÀ€€p€€=€€f$€€f)€{€G€v€B€M€€€€€a3v€G€€M€€{€B €R€€M €v)@pi@ÀTÀ.u@;@x@À#W@;@aWW €€p)€€W€€\€€v€= €€k€8 v€G€€€W)€€€k€8€p€8€\$€€p.€€f€€€B€€€&{@@!@sÀ@@\À@8À}ÀÀB@À+^À@ÀfÀ€8€€€B€\€€G €M€€k3€€f3€€k€=€M€€€\)€€W$€{€B€M €€8€W €0ÀÀ+À}ÀÀf@@@ @JÀ0ÀfGÀkÀ€p€€v)€€G€{€8€€B €€a.€€\)€€€f3€p€B€€{€G€€v€B €\$€€f$€€R €€p€€=5À#n@ÀGR@@À@8nÀ&L@sR\€€{3€€k)€€p€8€€W$€€R€€€\)€€€f3€€k€8€€a)€{€=€€=€k€€8€G@@@À+@xÀ@ RÀÀÀY@ @@sÀÀÀ+R@xÀ=€€8€€€G€f$€\€€€f)€€M€€{€G€€M€€€W$€€W$€€G €W€€W€€8€€MRÀ@@JÀ5À@ÀÀY@@!@a@G{À@0ÀYÀ}v€€€k€€{.€€R€M €W€€v€B €p€= €p€B€v€G€€v€B €€a)€v3€p)€€R€a@\ÀÀT@@@À@@aÀ)iLÀ@@ @8^ÀRM€a€€B€{€8€M€€k3€€f.€€f3€€f3€€a)€€€G €R€€B€f€{Àf ^GÀ@#Àk0pÀÀÀT@ÀÀ=Àf@À.3€€€G€€p.€€k)€v€=€€a)€W$€€W$€€W€€€G€€€a)€€k)€\€3€€@pi@R@À.@s@@;@x@À&@\@ÀEÀk@À€€f€€€f€€{3€\€€W€€f.€R€€{€G€€{€G€€v€B €€f.€€B€€B€v.€€€G)À}@@!@sÀ@@\À5{ÀÀB.@aÀ@!@JpÀM€€€=€€€G\€€B€€B€€W€€v€= €€k€8€€f3€€\)€€€G€€\€€\€€B\ €0ÀÀ+{@c@À=À@ GÀÀ@3i@À&@O@x@)v€{)€€G€€p.€€p3€€G€€€f.€€\$€€R€€€G€€€f.€v€8€v3€\€€v$€=@5À@!n@G@R@@À;pÀÀ.WÀ}@À€aR\€€v.€\€€\€€€p€8€€W€€M€€v€B €€f.€€G€€R€€€G€€p)€8€GÀÀ=@@À+u@OÀÀÀY@ ÀBuÀ@3@\ÀÀ€€83€€=€\€€G €M€€\$€€G€€p€8€€a)€M€€f)€€p.€€a€€=€€MRÀ@GÀÀ@3@W@@!@aÀ@JÀ}@@;c@)€k€€€f€€€p$€€B€v3v€8€M€€k€8€€\$€€M€€k3€€G €€G€{3€W€€f@\ÀR@À=À@a)i@À@O@ÀÀ@i@@Àa€G€€€B€€R€v.€€a€€€€a)€v€=€\$€€€G€€k3€R€€€a$€€a€€M€€k€{Àf @\ÀEÀ#i0pÀÀ@!W@À@EnÀ@À3{$v$€8€\€€M €R€€€a)€€€G€€k3€€W€€€p3€€B€{€8€f€3€€@pÀfÀ@OÀÀ+p@@8@x@À&^@@!Lu@À€k WR€f€€B€v3€{€=€R€€k3€€W€€v€=€€R€€\€€R€€3€€M){@p ÀYÀ@3@xÀ@.cÀ@)R{@€€=€.3€€€G€p)€€a€€€f)€v€=€€W€€v€=€\$€€p3€v€8€k)€€M€a€€@3À){@aÀÀ=ÀGÀÀ5Àk.ÀYÀ@À8€p€€€a €a€€v.€€W€€G M€€€a)€{€B €€a)€{€=€€R€€R€€B€f€€{$€=@@3ÀÀkÀE@@@O@@À=@sÀ5^À@Àk€G€€€=€€€B€W€€€=€p3€v€8€M€€€f.€€G€€\$€€k.€€k)€€W€€{.€€€=€GÀÀÀ=@)@sÀLWÀ ÀB{ ;Àf@ÀÀ€={€€€k€€€p€€=€f$€\€€€a$€€p€8€M€€f.€€{€B€€G €€B€€p)€€€GRRG0À}@WÀ^@À@J@ÀÀ@Àk@@€p R€€G€€M€f€€M €€B€€G€€\€€€p€8€M€€\$€€f$€\€€B\€€€f@\R@;@^ÀÀ&Àf@ÀRÀÀGpÀÀ@€=€$v€{.€€M€v3€€k)€€p3€€B €W€€€k3€{€=€€B€v3€\€€v${Àf@@ @\@E@À@!ÀfÀ0nÀ@!ÀY@À@@!L@xÀÀ=€p€WR\€€v.€€\€€R€€W€€f)€{€=€R€€\€€\€€M€€p)€8€€pÀÀc@L@)n@@8u@)^À@À&ÀTÀ}@ÀÀp €B€.)€8€W€€€=€{€8€{€=€M€€\$€€p3€{€8€v3€€f€€=€R){nÀ@ W@0@xÀ@À}0Àf@@.ÀYÀÀ@@€8v€€\W€f€€8€€f$€€€a€€€a$€€p3€€B€€R€€W€€M €€8€W €€f€€@3)@xÀ^@;GÀÀ5nÀ@3@a@À@€k €G€33€€€B€f€€M €€G€€G €W€€€a$€€k.€€p3€€k$€M€€k€{)€=@@@3À@@i@ÀB@@O@À=u@ ;Àf@@À€€8v€€€a €a€€€p$€€G€v.€€k)€€k.€v€8€€G €M€€M €€=€f€3€€€=€GÀÀÀ=ÀÀ&p@J@ÀWÀ E{@ÀkÀ@ÀÀ8€k€G€€€8€€8€€M€€p)€€W€€R€€R€€\€€€f)€€k)€€f$€€W€€3€€MRREÀ0{ ÀTÀ@^@ÀÀLÀÀG@s@ÀÀÀk€€8v€€€f€€€f€€v)€€M €€8v3v€8€{€=€€B€€G€€B€€p)€€M€a€€€k@ @\@OÀ@8ÀÀ@\@À&Àf@ÀR@ÀL@x@À@À3€f€G€€€8€€€B€W €v.€€a€€W€€W€€\€€€a$€€f$€€\€€B€f€€{)€Àf@@ ÀYÀBcÀ.nÀÀ@!ÀY@À&ÀT@@À€f€3v€€€f€€€k€3€€W€€B€{€8€{€8€€=€€B€€=€v3€\€€{.€€€=€€pÀÀc@JÀÀ&Àk@5u@)@a@ÀÀ+ÀYÀ@À€.€€a€G€€€=€€€B\€€€8€€f$€€\€€\€€\€€€€a€€\€€M€v.€€€GR){nÀTÀ.u@ÀÀ=À}0iÀ@3@a@@ÀÀ3€\€3v€€€k€€€p€€8€\€€G€€=€€=€€=€€=€v3€€f€€€G€a€€€k€€@3)@x^@8À}ÀEÀÀ@8pÀÀ@ ;i@À&Àa€$€€a€€G€€€=€€€G€a€€=€k)€€a€€€\€€\€€\€€R €€8€\€€v$.€=@@0@@Àf@@ L@@@xÀ@@nÀÀÀ@ À+À)€W€€.€p€€€k€€€p$€=€€a€€M €€B€€=€{€=€v3€€k$€€R €v)€€=€€€B€GÀÀ;@#pÀ@J@ÀÀTÀ GÀ}@ÀG@s0ÀW€€€\€€B€€€=€€M€a€€B€p.€€a$€€\€€W€€R€€B€k$€€BRWREÀ@.@xÀ@ RÀ@^@ÀÀLL{@@8€M€)€€p€€€f€€€p$€=€f€€M €€B€{€=€v3€€k)€€\€€=€W €€k€€€k@ @\@OÀ5À@ÀÀY#Àf@@ÀT@À&ÀTÀ@@À=$€M€{€R€€B€€€=€€M€f€€B€€p.€€a€€€\€€R€€G€v.€€W €€p$.€Àf@@ ÀYÀ@@@À@@aÀÀÀ+nÀ#@\À+ÀYÀÀ@!ÀBW€{€€B€€€€k€€€f€€€p$€B€f€€R €€B€{€8€p.€€a€€€G€€k$€8€€€B€€pÀ@aÀ@JÀ@#Àk@@3@s@)cÀ@@3@a@À&G€€=€p M€€€=€€€=€€M€f€€B€€p.€€a€€W€€G€{€8€€a€€8€€RW){@ÀkR@À.@s@À={0i@À@8ÀfÀ@ .L€B€k€€8v€€€f€€€f€€€p$€B€f€€M €€=€v3€€f$€R €{3€€R€€f€€€p€€@3À&uÀ@@\À5{ÀEÀÀÀ@8pÀ@@@nÀÀÀ@@3RÀ€p€.€€f€B€€€8€€8€€€G€f€€B€p)€\€€M €€=€k$€M€€k€..€=@@0ÀcÀ=À@ L@@@@x@ÀE@s@À@8ÀYÀ€3€\€.€p€€€a €a€€€p$€=€f€€M€{€8€k)€€W€€B€f€3€€€B€€€B€GÀ;À@!nE@ÀT@ EÀ}@L{À@@À=^ÀB€a€€€W€€=€33€€€G€a€€=€k$€€W€€B€v.€\€€3€€MWWR@ÀBÀ+u@OÀÀ@\ÀÀL@!RÀÀÀ@!ÀBcÀp€€M€$€€f W\ €€k€€=€€a€€G€v3€€a€€M€v.€€M€a€€€p€€€k@ @\ÀL@@3@W@@@!c@ÀÀTÀ)W@ÀÀ&@JiÀ)€M€{€M€€3).€€€B\€€8€f€€M €€8€€f€€€G€f€€{).€Àf@WÀ=À^)ÀkÀ@!@\À@À.^@@À+@OnW€{€€=v€€\RW€f€€8€\€€=€k)€€W€€€8€€a€€{.€€€B€€€G€€p@aE@À@!ÀfÀ@3@s)cÀ@À5cÀÀ @3ÀT@s€€8€f€€=€)v${)€=€W€€{3€\€€B€€p)€€R €v.€€€GW\){@Ài@À@OÀ@)p@;{@0i@@ ;ÀkÀÀ@8ÀY{)€B€f€.€€f R€€G€M€a€€{.€€W €{€8€€a€€€G€€p$€€G€a€€€k€€€p€€@3À#@s W@À@3@xÀÀBÀÀ@8p@ÀBp@@ÀÀ=^R€€k€$€W€€3v€€€p€€€p$3€€R€v.€€W€€€8€€a€€=€a€€v)3.€=@.À}@@aÀ@;@J@ÀÀ=@xG@x@@ÀBÀf €)€R€€€W€€B€€€=€€€GW €v)€M€€p)€€W€€3€W€€v)€€=€€€G€€€B€G@8i@ÀB@R@@ EÀ}À@OÀ}ÀÀ#@JÀk@€8€R€{€€B€$€€k€€€a€€€k€€{.€€€G€k$€€G€€p)€€R€€p)€€BW\ WR@@@@@)@sÀ@JÀÀYLÀ#ÀT@À+@Op@€f€€€8€k €G€€€8€3€€€=€€M€k€€B€f€€€G€k$€€B\€€€k€€v€€€k@ @\À@JÀÀ0{ ÀTÀ@@aÀÀTÀ@À+@\@@@@ 0ÀTuÀ €€€=€f€3€p€€\W€a€€€p$€=€a€€=€€a€€=€\€€v$33€cÀT@;À@\@À&iÀ@!@\À@À0@aÀ@5ÀY{À3€€G€f€$€\€€8){)3€€€B€a€€3€W€€{3€€W €v)€=€€€G€€G€€n@^À@ÀBc.pÀ)@aÀ@8iÀÀ=^@Àa€€p€$€M€€€€aM€MR€f€3€€R €v.€€M€€p$€€=€R\ \)@x@ÀÀfLÀ&Àk5@x@.i@ À=n@@@@ÀBÀfÀÀ€€.€M€{€€G€.v€€€p€{)€=€W €v)€€M€€k$€€B\€€€p€v$v€€@3À#@s@ W0uÀ@@8pÀEu@#GÀkÀÀ€BW€v €8€p€R€€B€€€B€€€G\€€v)€€G€f€€=€\€€v$3€€€8€3€=@.{À^@8À}ÀGÀÀ=@xÀÀLÀ}À)LpÀ€k€€3€€a€3v€€€f€€€a€€€k€{.€€€G€f€€8€W€€v)€=€€MM€€G€G5@i@@ @O@@ EÀ@!RÀ@.ÀTuÀ€€€8€\€$€\€€=€33€=€€M€f€€8€€W €v)€€BW€a€€€f€\R@@ÀÀ&pÀ@J@ÀWÀLÀ@À&ÀY@ @3ÀYÀ}@À=€M€a€€€G€€€€f WR\ €€k€€8€€R €€p$€€B\ €€k€{${$€p@ @\À@J.@xÀ@ R@^@ÀÀT.^@À;^ÀÀf€v€€B€p €G€.{€v${.€=€W €€p$€B\€€€p$3€€€=€€€8€€ÀfÀT@@8À@ÀYÀ&ÀfÀ@!@\À@@3ÀfÀÀÀ@cÀ€€)€B€f€3€k R€€B€€€B€€M\€€€p$€B\€€v)€=€€MRM€n@@\@@À@@aÀÀ.nÀÀ&@a@;Àk@@EÀkÀ€B€R€k€$€W€€.v€€€f€€€f€€€k€{.€€B\€€v)€€BW€a€€€f€€€a )@x@Àf@@JÀ@#Àk@5u@.i@À ÀB@s@@#Lp@À€k€{€$€M€{€W€€=€33€=€€M€a€€{)€€B\ €€k€{))v€€@3À@!pÀR@ÀÀ+@s@À=À}À5pÀG@xÀ+RuÀ@À€€.€M€p €={€€€aRR\ €€k€{.€€€G\€€v$3€€€=€€€=€3€=@À+@x@\À5{ÀEÀÀ=@xÀ@@O@0W{À@À=€€BW€v€.€€a€€=€)v€€€p€{)€8€€M€a€€{)€€=€€MRR€G€GÀ5À@ÀcÀ=À@ L@EÀ}@!ÀT@ 5@\À@Àf€€k €.€W€$€€a€G€€€=€€€=€€€GW€€f€.€€€BW€f€€€k€€€f€€\@O@À=@#nÀE@@ÀTÀ@@JÀ@)@\;c@ÀÀ€€€3€R€{€€G€$€€k€€€a \ €€f€€€p$€8€€€G\€€€p€{).$€p@ ÀY@GÀ@À+uLÀÀ@\@ÀR.@aÀÀÀBi@ÀÀ€8€€B\€{ €€8€k €G€€3))3€€€B€€R€f€€v)€8€€€B€€€B€€€8€€c@ÀR5@W@@!c@ÀYÀ@À5iÀ@GnÀ@À€a€€k€€3€\€.€k R€G€€€GR\ €€k€.€€€B€€MWWR€nÀ ÀYÀ@À=@^À)ÀkÀÀ&@aÀÀ=nÀ&L@sÀ@ €€€3€W€€R€€.v€€€k€€€f€€€k€{)€8€€M\ €€f€€€p€€€p€€€f €&@xcG@À@!ÀfÀ0@s@.i@À@ÀBuÀÀÀ+ÀT{À3€8€€B\€{€€=v€R€€=€33€€8€€€GR€f€€v$...{€€0Àn@@OÀ@)n@@@8{@@3nÀ@J{ÀÀ0ÀYÀ\€a€€k€3€a€3€p€€\RRW€a€€€p€.€=€€€B€€€G€€€B€€3;@À)uÀ ÀY@0@xÀBÀÀ;uÀ@@OÀ@@ @8^@À €€€8€\€€€W€€8{$€€p€€€p€€v€.€8€€€GR\\W€G€EÀ@3@aÀ@@8@J@ÀBÀ}#W@ÀÀ=c@@ .3€€B\€€€B{€€W€€B€€€8€€€8€€€=€€€GR€a€€€k€€€p€€v€€€k€€\@O;Ài@ÀB@R@ @JÀ@)@\@ÀÀBÀkWW€€f€€8€f€€8{€€€a WW\€a€€€p€{)33€3)€pÀY@E)@sÀ@J@ÀÀYÀÀR@À0cÀ@Gp@{€€3€\€$€\€€=)v€€v€v$.€8€€€B€€€G€M€€G€€€=€c@@O@À0{ R@@a@@W@À5i@@@#@Ou@@@$$.€=\€€€B€{€€\€G€€€=€€€=€€€=€€€GR\€a€€€a€€\R€@Àk@ W;ÀÀYÀ&iÀ#^ÀÀ=p@À+ÀTÀ}@À@!MMR€a€€€8€f€€={€€€f€\W\ €a€€€k€€€p€{${$v€€€f €&uÀ@a@ÀBÀ@cÀ.pÀ+Àf@À@E@x0ÀYÀ@À@ ){ €€€=€f€.€k M€€€8€..3€8€€€=€€€G€€€G€€G€€€=€)5À#pRÀ)p@;{5pÀÀ@O@@@;c@@.$$.€€B€a€€R€)€€k€WM€M€MRW\ €a \R€€=€@@À+@x@ÀYÀ@3@xÀÀBÀÀÀ=@x@@!ÀT@ÀÀ@i@À@@3M€MW€k€€Bv€€G€.v€€€k€€€f€€€f€€€k€€€p€€v$v$v€€€f€R@JÀ5À@ÀcÀ@;@J@@E@À&@\ÀEn@@8€p€€p{€€€=€f€.€k M€€€8€...3€8€€€8€€€8€3{$€€fÀT@@!ÀkÀÀB@R@L@.@aÀ@@!Lu@#@À€€€€€)€=\€€€R€)€€k€WM€€G€€G€MRRM€€G€€€8{@^ÀGÀ@À+uÀLÀÀYÀÀÀTÀ@3i@À&R{@@ )EÀB€€=€€=€M€a€€€=€p€€G€.v€€€k€€€f€€€f€€€f€€€f€€€f€€€f€\M€€ÀfR@3À} ÀTÀ@@!@a@@ÀYÀ;n@.W@.@JÀk€€a€€a€€p€€8€a€.€k M€€€8€.))).){$€p€€€a@!p @\À@À=@@\@À)iÀ&@a@À ÀBu@3^À@3@OÀ €€€€8€W€€M€)€€k€WM€€€G€€€B€€€B€€€B€€€B€€€8€.v€€€+{@cE@c0p.i@GÀ} @8c@À@8ÀTÀ3.3€€BW€{€€8€p €G€)v€€€f€€€a \ \\WR€€B€)5@!n@@OÀ&Àk@8@x@@@3pÀÀ@OÀÀ@i@@!À=ÀYWRW€f€{ €.€\€)€€f€G€€€8){$v$v€€v€€€p€€€f€W€€=€@@@)uÀ W@.uÀ@;@x@!W@ÀÀEpÀÀ&ÀB^{v{€€.€R€{€€G€$€€f R€€G€€€=€€€=€€€8€3.{$€€k€R@JÀ@3@@a@8À}ÀGÀBÀ}@À&@\@ÀLu@ À+Gc)€€€€$3€M€€p€3€f€B€)€p€€€a WWRM€€B€€€8$€€fR@À=@Ài@@@ @O@@ @J@.c@À&R{@0@OiM€€B€€=€€GW€€p€)€R€$€€a€B€3{$v€€€k€€€k€€€f \M€€€8{ @\À@E)pÀGÀWÀRÀ5i@@ÀÀ+WÀÀ@@5ÀTnv€€f€€a€€k€{€$€Gv €B€€€€aM€€€=€€€8.){$€p€€€a M€€ÀfÀ@O@À0{À@ @OÀÀ@^@ÀYÀ;pÀ@3^@;ÀYuÀ€ €€)€B€f€.€€a€€=€€€f€\R€€G€€€B€€€8€.{€€€a@!pÀ ÀY;À@ÀY@#ÀfÀÀ#^ÀÀ ÀBu@@ @8c@@!@^{À€8..3€€G€f€M€€€W€€=€)v€€€k€€€a \R€€B€€3v€€€+{À@a@ÀBÀÀ@aÀÀ+nÀ+Àf@@@JÀ}@À=iÀ@À&GcÀ\RMW€€k€€=€k€€8v€€W€€B€€3){$€€p€€€f€\€G€.5ÀÀkÀ@JÀ@#i@3u@3n@À@OEpÀÀÀ@ À+Li v€€p{€€8€\€$€W€3v€€€aR€€B€€€8€3$€p€€\€€B€€=À)@s@ ÀT@À+pÀ=À}À@8u@!W@À@Ju@3Rn@.€€€€€€$€8€W€{€€Bv€R€€3{€€€k€€\R€€G€€€=€)€p€R€G0À}@\À@3@xÀÀEÀ@À}@À&@\#RÀ}À@@8W@s@R€€=€€8€€8€€G\€v €3€€a€.€k€R€€€8€)v€€€k€€€aR€€=€)€€f€R@;@Àf;À@ L@ GÀÀ.c@)WÀÀÀ@@À=@\{Àv€€a\\€€f€{ €)€R€€M€)€€k€W€€B€€€8)v€€€f€W€€={ @\ÀB@À#nÀE@@ÀTÀÀ@O@À5ÀkÀ0@\ÀÀ@!ÀB@aÀÀ€€€)€€G€p€3€k €G€)€p€€\M€€B€€3$€€k€R€€Àf@LÀ.uLÀ@\@@ÀW;p5c@@À&GiÀ3$€€€$3€€G€f€$€R€$€€a€B€.v€€€f€W€G€€€8$€€f@!nÀ@ W@À5@ÀTÀ@!c@!^À@ ÀB@xÀ À=iÀÀ@ .@On@ÀW€G€€B€€GR€f€€B€p €B€€€€a€G€€3$€p€€€aM€€€8{€€€+@x^À@@@\@À)ÀkÀÀ)c@À@JÀ}@ÀÀBpÀÀÀ@@3ÀT@s@v€€f€\€a€€k€€3€W€€€W€3€p€€\€G€€3$€p€€\€B€$€0À}ÀcEÀ@@aÀÀ.nÀ+iLÀE@s5Wu$€€€€.€R€v €=v€M€€.v€€€aM€€€=€)€p€€W€€8;À@!n@ÀLÀ#i@5u@@3pÀ@ÀTÀL@x@À;@\{@ÀG€3$€€)€8€M€p€)€\€.€€f€G€€.v€€€f R€€B€)€k€M€€BÀ+uÀ ÀTÀÀ+@sÀ=À}ÀÀ;@x@À#ÀY@À@#R@@@a@@Àk€R€G€€B€€GW€€k€€G€v€€G€$€€a€G€€3{$€€k€W€€=€$€€aL@@3@À^À5{ÀEÀBÀ}@@À+@a@À+ÀYÀ#GÀfÀÀv€€f€€a€€f€v€€€=€f€.€€a€€=€€€aM€€€8$€€k€W€€8vWÀ=@ÀÀfÀ=À@ L @J@0Àf@@0^@)LnÀ$€€€€€€8€\€€€G€€€W€€8{€€€f R€€=€$€€k M€@aG@À&p@E@@ÀTÀÀÀR@8n5c@ .R@s€G€3)$.€=W€{ €3€f€€8€p€R€€8{€€€f R€€8€€€a€@i@À@O@À.@xLÀ@\@@ÀWÀ@@u@ À=ÀkÀ@5W@x@€kR€G€€G€M\€v€)€R€€€R€€.€k R€€€8$€€f R€€3€p€€&@s ÀY@8@ÀTÀ@!c@!^ÀÀ@E{ÀÀBp@;@\À}@@Àv€€k€€f€€k{ €$€G€p€€8€k €G€$€€f R€€€8$€€f€G€$€.À}@@aÀ@@^À)ÀkÀÀ)Àf@@ÀLÀÀ@J@x@@cÀ@ÀÀ=$€€ €€€)€B€a$€R€$€€a€€=€$€€f R€€€8{€€\€€8@8Àk@JÀ@!ÀfÀ0@s@@0n@RÀ@!@OÀ}@!EiÀÀ@Àa€B€.))3€€B€a€€€=€p €={€€W€€=$€€f M€€3€p€M€€B@@)@sÀRÀ@)n@@8{@8u#ÀY@ÀÀ&WÀÀÀ&@JnÀ@€€fR€G€€GR€a€{ €.€\€$€W€3€p€R€€8{€€€a€G€$€€aLÀÀ0À}ÀY0uÀ@ÀÀÀ@{)@a@À.@\@.R@sÀÀ€€p€€f€€f€€p€€)€M€v€€=v€M€)€k R€€3{€€\€€8vÀT@;@ÀcÀ@@8À}ÀG@@GÀÀ@0Àf@@À@3@a@ @3W@xÀÀÀ€8€€  €€€)€€G€k€)€W€€)€€f€B€$€€f M€€.€p€M€^À@ÀB@À#Àk@@@ @O@L@À5n@8iÀÀ@8@\À}ÀW€€=.$)3€€G€a€€Bv€€B€€€\€€=€€€a€B€$€€a€@iL@À+@sÀ@J@ÀWÀÀÀTÀ=@s@@@n@À=@aÀÀ@ {€\M€€G€€GR€f€€3€€a€)€\€3€p€R€3v€€W€€8v€#pÀ@ ÀT@À@3À}@ RÀ@^@@@\ E{ÀEu@ÀBÀf@@.€ €k€€f€€f€€p€€.€R€{€€Bv€M€)€k M€€.€p€M€$€.{À^@À=ÀÀY@À&ÀfÀÀ&cÀÀ@JÀ@L{À#@Jn@ M€.€€ €€€.€€G€k€.€\€.€€f€B€$€€a€B€$€€a€€8@8@i@EÀ@@aÀ.n.ÀkÀ@ÀRÀ@!RÀÀ)@O@sÀ@ ÀpM€3)$)3€€G€f€€Gv€€G€€€\€€8{€€W€€8v€M€@ÀÀ&pL@#i5u5p@!ÀY@À)ÀY@.ÀT@xÀ@@ À€k€W€G€€B€€GR€f€€8€a€)€€a€3€p€R€€.€p€M€)€€a@J.@x WÀÀ+pÀ=À}ÀÀ;@x@)^À@À.^ 5ÀYÀ}@@ €€v€€f€€a€€a€€p€€.€R€{€€B{€M€)€€f€G€$€€a€€8€pÀT@À@8À^À@3{ÀÀEÀB.Àf@@À5cÀÀÀ;^À@À €B€€ €€.€€G€k€.€\€.€€f€=€€\€€8v€M€@@\@@ÀÀfÀ=À@ L @JÀÀ5Àk@ ;ÀkÀÀ@ÀfÀ@ÀÀ @ €a€B)€€€€$3€€G€f€€Gv€€G€€€W€3€p€M€)€€a€€Àf@À@JÀÀ&p@ÀE@ÀTÀÀÀR@@À;@s@ÀBpEÀk@@À @! À€€a€G€€=€€8€€B€M€f€€€8€a€)€\€3€p €G€$€€a€€=v€#pR@À0@xLÀ@\@@@ÀYÀ@@ ÀB{G@xÀÀ#LpÀÀ À& 3€ {€€fWRW€f€{ €)€M€v €=€p €B€€€W€3€p€M€€€)uÀ ÀYÀ5À} R@@a@@@\ÀÀ@GÀ}@@L{)@Ou@À ) R€)€€v€€p€v €$€B€f€$€W€$€\€3€p€M€$€\€3@3@@aÀÀ=ÀÀYÀ&ÀfÀ&c@@ÀL@!RÀ@.ÀT{À . ÀpM€.€€€€€€€€)€=\€€€=€p€=v€M€$€€a€€8€p€€G€€=ÀÀkÀG@@@aÀÀ.n.Àk@ÀTÀ&ÀY@ 5@\ @ @3 À€kM€€8..3€€B\€v €.€W€€€R€)€€a€€8v€M€$€W€E)@sÀ@O#i@5u@5@s#@\.^À;@a@ @! @8 €€k€WM€€GR€a€v€$€G€p €€8€k€=v€M€)€€a€€8€k€@O@À0{@WÀÀ+@sÀ=À}ÀÀ={)@aÀÀ@3cÀÀ@Àf@@@ À& À= €=€v€€k€€f€€k{€€€=€a€€R€€€W€€)€€f€€=v€€G€ ÀY;@@a5{ÀÀEEÀ@0iÀ;ÀkÀ@EÀk@À@@ À+ ÀB \€€8€€ €€€€8€W€{€€8€k€3€k €B{€R€$€\€€@a@ÀB@!iÀ=À@ L @JÀ@8pÀ@@@p@@#@Jp@À@À 0 G À{€W€€8)€€$)€=€R€€p€)€R€€M€€€W€.€€f€€8€p ÀkÀL)p@E@@ÀTÀÀÀR@@À=uÀ@ÀG@xÀÀ)R@x@ÀÀÀ 5 L 3€v€W€G€€=€€=€€GW€€k€€B€k€3€f€3€k €B{€M€€€)@s@ ÀT0@xLÀ@\@@@ÀY EÀ}@@LÀ}ÀÀ.WÀ}@À  ; R R€$€v€€f\\€a€€p€3€\€€€G€{€M€€€W€€)€€a€30À}À^;À@@ÀTÀ@!c#@a@ÀLÀ@!ÀTÀ@@ 5@\ÀÀ@ À& @ W Àp€B$€ vv€€.€M€v€3€€a€.€€a€3€k €=v€€B;@ÀfÀB@@\@À)ÀkÀÀ)iÀR@)ÀY@@À;@aÀ@ À+ E @\ À€a€B)€€€€€€€€3€M€f€M€{€€Bv€€G€€€R€$€W€E@@À&p@À@JÀc0@s@@0nÀÀ@!ÀY.@a@ÀÀ@i@@ÀÀ 0 @J @a €€\€B€3.3€=€M€f€€€8€a€)€\€)€€a€3€f€€8€k€LÀ.@xÀ@ ÀTÀ@)n@8@x@8u@À&@aÀ5Àf@EnÀ@ÀÀ 5 @O Àf €8€€{€€aRMMW€f€ €.€R€{€€=€p €=v€€G€{€M€@ W@@8À@À@\0u@À@ÀÀ@À}@@.ÀfÀ;Àk@@@@!L@sÀÀ  ; ÀT n ÀW€)€ €p€€f€€f€€p €$€G€k€)€W€€€W€$€\€)€\€€^À@@À@cÀ@@8À}ÀG@G5nÀ@ÀB@s@À)R@xÀ # @ ÀY @s Àv€G€)€€€€$€=\€€€B€k€€8€k€€8€p €=€p i@@J@#Àk@@@ @O@@@@O@À;@sÀ@ÀG@xÀ.WÀ@ ) E ^ @x .€€f€G€.$€€€$.€€BW€v €.€W€€M€€M€€€R€€€€&@sÀR@.uÀGÀWÀT@@ ÀB{À@L@@ @3@\@ . @J c À} M€€€aM€€=€€8€€=€€G\€€p€€€G€p€3€a€.€€f€3€f€3€0{ÀY5À}@ @OÀÀ@^@\ÀÀ@@JÀ@@!ÀT@;c@ÀÀ @3 @O i À Àk€8€€f€\WW€a€v€€8\€€€G€{€€G€{€€G€{€€B@8@ÀcÀ=W@@#ÀfÀÀÀ&c@@@O@)ÀYÀ@i@ÀÀ @8 ÀT n €W€.€€v€€p€€p{€€3€R€v €3€€a€)€\€)€\€$€W€€B@!ÀkÀEÀÀ@aÀ+n.ÀkÀW@.@a@EnÀ @! À= ÀY @s €pM€.€€€ €€€€3€M€k€€€G€v€€=€p €=€p €€8€kL@À+uÀ@O@#iÀ@3u@3@s#^À5Àf@!@J@s@ À& ÀB ^ @x À)€€f€G€3)).€8€M€a€€€8€a€$€R€€€R€€M€{@ ÀT@3À}@WÀ+p@@;À}ÀÀ;@xÀ+c@;nÀ&R{@@ À+ G c À} À€G€€fR€€B€€B€€GR€f€{ €)€R€v€€8€k€3€f€.€€a€^@À=@^À@3@xÀÀBÀÀBÀ@@3ÀkÀ ÀB@sÀ.WÀ 0 L i À @ €f3€€k€€a\€a€€k{ €$€B€f€$€R€€€G€{€€Bv @ÀfE@@!i;@J@@ @JÀ@8pÀG{ÀÀ@3@\À 5 ÀT n @ $€W€.€{€€$€=\€€€=€k€.€€a€)€\€€€€&pÀ@OÀ@)p@E@@RÀÀÀR@@@xÀ@@O@ @8c@@ ; ÀY @s À À= €pM€3€€€€€€€)€=€W€v€.€R€€€Bv €=€k€30{@ÀY@À@3{LÀÀY@@@ÀY G@@!ÀT@ÀÀ@i@@ @! @ ^ { À \€)€€kM€€83.3€€BW€€p€€€B€k€.€\€€€R€€€G@8@@aÀ@;À@@ÀTÀ@@a@!@aÀÀ@OÀ@)@\ÀÀÀEnÀ À& E c À {€B€€fWM€€GM\€€p€3€W€€€B€p€3€f€.€W€€B@!Àk@ÀB@@\@À&iÀÀ)i@@ÀT.@aÀÀ@@Ju@À@ À+ @J i À€a€3€€p€€f€€a€€f€v€€.€M€p€.€W€€€G€{€€=€kL@)@sLÀcÀ.p0nÀ@!@\À@5iÀ@@À&R{@ 0 R n @ À€€R€.€€€€€)€€B€a€€B€k€.€\€$€R€@ ÀT@3{ ÀT@@À&Àk@5@x@@@8u@)cÀ;n@ÀÀ+W@@ @8 W @s @ 3€€k€G€.€€€€€€€.€€B\€{ €.€W€€€B€p €€8€f€€^@;À@\.@s@À=@À}0i@ ÀBuÀ0@\À@@ À= @\ @x À ÀR€€€fM€€833€8€€G\€v€$€G€k€.€W€€M€v€@ÀfEÀcÀ@8{ÀEGÀ5pÀG{À@@ @8@a@ÀÀ@! ÀB @a À} À @ @ À€p€=€€€fWMMR€a€€p€€8\€€€B€k€3€\€€€&pÀLÀÀ&n@@@ L@@@L@ÀÀ=uÀÀ@OÀ@@@À=i À& G Àf À @ @ )€W€.€€€p€€f€€f€€k€v€3€R€€p€.€W€€€G€p €3€.@xÀ ÀTÀ.uÀG@ÀTÀT@@ EÀ}À@!ÀT@ÀBnÀ@ À+ L Àk À À ÀG€v€G€)€€ €€.€€G€f€€B€k€.€W€€€G@8ÀÀ^À5À}@ @OÀÀ@\@\À@J@À&@\@@J@s@À@ 0 R p À À Àf€)€€f€B€.€€€€€€$.€€G€a€{€€3€W€€€B€k€.€W€€B@ÀÀf@@W@@!cÀÀ#c@@R@À@.@aÀ#@O{@À @8 W u À €€G€€\€G€€833€8€€G\€v€$€G€k€)€W€€€B€k@JÀÀ&p@G@ÀÀ^À)ÀkÀ+ÀkÀY@5iÀ@)ÀT@À À= @\ { À @ À€a€.€ {€€aRM€MR€a€v€€8\€€€=€k€)€W€@ ÀT@À0@x@O@@!ÀfÀ0@s@@@3pÀÀ&^À@;n@.@\ ÀB c @ À€€M€$€{€€k€€f€€a€€k€v€3€R€€p€)€R€{€€=€f€@\À@8@WÀ+n@@8{;@xÀ+Àf ÀBuÀ5@a@@@À À& G i À €8€€f€=€€ {{ €€.€€G€f€€B€f€$€R€{€@Àf@@@À@aÀ@3uÀ@ÀÀÀÀBÀ@@3nÀ@G{ ;Àf@ À+ L n À @ @ R€€\€€=$€€€€€€€€.€€B\€{ €.€W€{€€8€a€$€#n@@JÀ@!i;ÀG@@@ @J;@sÀÀ@OÀ@@ÀkÀ 0 R @s @ @ À€p€8€ v€W€€=€3..€8€€G\€v€$€B€k€$€M€v €3€.@x@ RÀ)p@ÀÀB@ @O@O@@@{@@!ÀTÀG@s@ 5 W @x @ À À .€R€$€€p€\M€€G€€GR\€€p€€8€\€€€8€a€€G@8@@\À@3@x@J@ÀWÀÀÀWÀ GÀÀ&@\L@x@@ ; ^ À} @ @ À À ÀG €k€=€v€€f€€a€a€€f€v€.€M€p€$€M€v €3€W€@@@cÀ@;À RÀ@^@@@!^@ÀÀ@O@.@aÀÀ&RÀ}@ @ c À @ À  Àf€$€W€3€€vv€€€)€€B€a€€€8€a€€B€k@J@#Àk@ÀB@@ÀÀY@#ÀfÀÀ&Àf@ÀT@À@3iÀÀÀ+ÀYÀ# G i À À @ €= v€M€3€€€€€€€€€.€€B\€{ €)€M€v €.€W€R@À+uÀ@J@@aÀÀ+n.nÀÀ@!@\À;n@À0^@@@À ) L n À @  À\€$€€fM€€8)))3€€BW€€p€€€=€a€€B€k€@\5À} ÀTÀÀ&i@3u5@s)c@À@ @@sÀÀ@8c@@@ . R @s À  À€v€=€€€fR€€B€€=€€B€M\€€k€3€R€v €.€W€{€@cÀ=À@\@.p@;À}ÀÀÀ={@0iÀG{@À=Àk@ @3 W @x À  @ .€€W€)€ {€€fWRW\€€k €$€B€f€€=€f€@!Àk@ÀEÀ@@a@3@xÀ@ÀÀÀÀBÀ5p@L@ÀÀBp@À @8 @\ À} @ @ @! À€G €p€B$€ €p€€k€€k€v €€€8€W€{ €.€R€v €.€€+@sÀLÀ@#Àk;ÀG@@@ @J;uÀ@R@ÀGu@@@À À= @a À @ @ @ À& €f€)€a€=€€€€€$€8€R€k€€€B€f€€B@3À} ÀTÀ+@s@ÀÀB@ @OR@ÀBÀ}#ÀY@!@O{À@@ E Àf @ À À À+ $€€B€{€W€€8)€€€€€)€8€M€f€€3€W€{ €.€W€€=^À@3{@J@ÀWÀÀÀW@@JÀÀ@)^À&ÀTÀÀ# @J n @ À À 0 À=€\€)€€k€R€€B€333€€=€M€a€{ €$€G€f€€B€fE@ÀfÀ=À RÀ@^@@@!^@ÀÀ@O@À0ÀfÀ@ÀÀ+ÀY@@ À+ @O @s À @   5 W€v€B€€k€WM€G€MW€f€v€€€8€\€{€€3€W€{@OÀ&pÀE@ÀY@#Àf)Àf@@W@5ÀkÀ@3@a@@@ 0 ÀT @x À @ @ # ; v.€\€3€€€p€€f€€a€€a€€k€{€€3€M€p€€€B€f@W0@xLÀ@aÀÀ+n.nÀ#^@À=@sÀ@8ÀfÀÀ@ 5 ÀY À} À @ @  ) @ À€€G€v€M€)€€{v{ €€.€€G€a€€3€W€{ €@a@8@ÀT@@À&i@3u5u@À+c ÀB@xÀ@À=ÀkÀÀÀ ; ^ À À @ À  . E €f€)€€f€B)€€€€€€€€€€.€€B\€v€$€€G€k€€@!i@ÀB@@\.@s@;À}ÀÀÀ={@0Àk@À@J@ÀE@s@@À @ Àf À À @ @3 @J À€€€B€€\€B€3)$)3€€BW€€p€€8\€{€€3€)@sÀ@JÀÀfÀ5{ÀÀBEÀÀ@8@sÀÀ@O@À@@J@x@@@! G Àk À  @! @8 @O À€=€\€.€v€\€G€€=€€=€€B€M\€€k€€.€M€p€€€B@3{À@ RÀ@À&n@@À=À@J L@À@@x@À@!W@À@!@OÀ}ÀÀÀÀ& L p @ À À& À= ÀT W€v€B€€€p€€aWRW€a€€p€€)€B€a€€3€W€;ÀÀ@\@0uE@@RÀÀÀR@@ E@)@\À&WÀ À+ R u À @ À  À+ ÀB ÀY À€p.€\€€8€{€€k€€k€€k€v€€$€=€W€v€$€G€fEÀ@cÀ@8À}ÀLÀÀYÀ@@ÀYÀL@.c@À.@\@@@ 0 W {  0 G ^ .€€G€v€M€.€€ €€$€8€R€k€€8€W€{LÀ@#Àk@@@ÀTÀ@@a@@@!@a@RÀ5iÀ@3@a@À@ 5 @\ @ 5 L c ÀG€a€)€€f€G€.€€€€€€€)€8€M€a€€€)€M€k WÀ.@sÀG@ÀÀ@\@À&i)iÀÀYÀ;p@ @8iÀÀÀÀ À= @a @  @! ; R i Àf€€{€B€€€a€G€€8..3€€=€M€a€v€€€=\€€€^À5À}À@ @O@@!cÀ.p0nÀ&@aÀÀ@ ÀBuÀ@@n@@À ÀB i @ @ À& @ W n 3€\€.€v€€aM€€G€€B€€GR€a€v€3€R€€p€€iÀ=ÀY)Àk@5@x@@@8u@À+Àf@ÀGÀ}ÀE@s@@@! G n @ À @ @ À+ E @\ @s À€M€v€B€€v€€f€\\€a€€f€v€€.€€G€f€3€)p@GÀÀ@aÀÀ0@s@À=À}@À}@@3n@@OÀ@@L{ÀÀÀÀ& L @s @ À @ À 0 @J @a u €f€)€\€€8€€{v€€p€v€€)€B\€v€$€B0@x@O@#i@@8{ÀEEÀ;uÀÀT@À@!RÀÀ À+ R @x @ À À @ 5 @O Àf { $€€B v€M€3€€€ €€€€)€=€R€€p€€8€W€;À@WÀ+p@À@ L@@L@@{#@\@)W@@ 0 ÀY À} @ À @! ; ÀT Àk À€=€\€$€€f€G€3$€€€€€$.€=€R€f€€.€€G€f€B@À@aÀ@3@xÀÀG@ÀTÀÀÀÀT@ GÀ@À+@a@À.^@@ @8 ^ À À @  À& @ ÀY p W€v€=€€€a€G€€=€33€8€€B€R€f€{ €$€=\€{LÀÀ@!i;@ @OÀÀ@\@@@@\ÀÀ@O@À@3i@@À@3cÀÀ À= c @ @ À+ E ^ u @ À€p.€W€)€v€€aRM€€GMW€f€{€€3€R€€p ÀT@À+p@ÀÀB@@W@@!@a#c@ÀÀT@@À@8n@ ;iÀ ÀB i @ @ À À 0 @J c { @ 3€€B €p€B€€v€€f€€a€€a€€a€€k{€€.€€G€f€€€^À@3@xL@^À)iÀÀÀ+i@!@\@@u@@@p@@! G n À @ À À 5 @O i À R€a€)\€8€€ {{€€€3€€G€a€{ €)@!i@À=@W@@À&iÀ@3@s@3@s)ÀfÀ@GÀ}G@xÀÀÀ& @O u @ @  ; W n @ Àk€€{€= v€R€€8$€€€€€€€€€$3€€B\€v€€€8€€+p@EÀ^.p@@8{À;{@0ÀkÀLÀ@À@@OÀ}ÀÀ . ÀT { @ À  # @ @\ u @ @ €8€W€$€€kM€€8.$$.€8€€GW€€p€.€M@3{À@OÀ@@!ÀfÀ5@xÀ@ÀÀÀÀBÀ@8@sÀÀT@À#ÀTÀ@ @3 @\ À À @ À @ ) E @a { @ À ÀR€€p€=€€€aM€€B€€=€€=€€B€M\€€k€€)€B\€€=À@W)n@@À=G@@@ @JÀ@{@À#ÀY@@)ÀY@@@ @8 @a À @  . @J Àf À À À€€k€$€R€)€ {€€fWRRW€a€€k €€€8€R€€pEÀ^ÀÀ0uE@@@OR@@ E@À+@a@À0@a@ÀÀ À= Àf À  @3 R Àk @ )€=€€k€B€€{€k€€f€€f€€k€v €€3€M€fLÀ@@!i@;L@ÀWÀÀÀÀYÀL0i@5ÀfÀÀÀ E Àk @ À @ ; W p @ @ À€B€W€€€W€€8€€ {{€€€3€€G€a€{€@W@À+pÀÀB@ÀTÀ@^@@@!^@ÀT@8n@ À=Àk@@@! @J p À @! @ @\ u @ À \€€p3€€pM€3€€€€€€€€€€$3€€B\€€p€€^ÀÀ@3@x@J@À@\@#ÀfÀ)Àf@ÀYÀ@À=uÀB@s@@À& @O @x À À  À& E @a { À À À€p)€M€€a€G€€8)$$.€8€€GW€€k€€)€@!i;À R@@!cÀÀ+n.nÀÀ&@a@À E{G@xÀÀÀ À+ ÀT À} À À+ @J Àf À 3€€B€€a€3€ {€€aM€€=€€8€€8€€=€MW€€k €$€=€€+p@ÀÀB@@ÀÀY)Àk@3u5u@À+i@@À@JÀÀ@@O@ 0 @\ À  0 @O Àk @ MW€€{€€G$€v€€aWMMR\€€k €€3€M@3@xL@@aÀÀ0@s@;À}ÀÀÀ={@3n@ÀRÀ#ÀT@@ @8 @a  5 ÀT p @ @ Àf€€€p.€€a€8€v€€k€€f€€a€€f€€p €€.€€G€a€;À@ÀTÀÀ&Àk@@8{ÀÀBEÀÀ;u@!W@À@)@\@À À= Àf @ À @ ; ÀY u @ À .€€G€v€M€.€€{v{ €€.€€BW€€pE@@\.@s@@À@J L@@{)^À@À0@aÀ ÀB Àk À @! ÀB ^ { À À À€€G€€a€)€€f€B€.€€€€ €€€€€.€€BW€€kLÀÀÀfÀ5{ÀG@@RÀÀR@ GÀÀ.Àf@@À5Àf@ @J @s À  À& G c À @ @ \€€v€=€{€\€B€.$€€$)3€€B€R€f€{ €@W@@)n@@À=À@ @OÀÀYÀ@ÀÀYÀ@O@ÀÀ5Àk@@ À=n@@# @O @x À+ L i @ @ À€v.€€W€)€€p€W€G€€8€3€8€€=€€GW€f€{€€€^À0uE@@WÀ@@a@@@!@a@ÀÀT@@À;@s@@ÀB@sÀÀ+ ÀT À} @  @3 R n @ À À À€8€€€G €k€=€€k€\R€G€MR\€€f€{€.€@!Àf@@8À}ÀL@^@À&i)iÀ@!@\@ ÀB@xG@x 0 ÀY À À @ @  @8 W @s @ À À M\€€€R€.€€€p€€f€€a€a€€f€€k{€€)€=€€+p@WÀ#ÀfÀ.p0pÀÀ&c@G@@O@ 5 @a À @ À= @\ { À @ À€f€€v€8€€k€B$€€{€p€€pv€€€)€8€R@3@xÀ@J@ÀÀ^@ÀÀ+n@5u@@@8u.i@O#ÀT@ ; Àf @ @ @! ÀB @a À @ ).€M€€W€€8$€€€  €€€€)€8€M€a€;À R@@!ÀfÀ@3u@À=À}@À}@5pÀÀTÀ)@\ ÀB Àk À @  À& G Àf À ÀB€€€G€f€.€€p€R€€8)€€€€€€$.€=€M€a€vE@@ÀÀY)n@;À}ÀEEÀ;@x@À#@\À0@aÀ@ G p À À @ À+ L Àk @ À À \\€€{€€B€€fM€€=€3..€8€€B€M\€€pL@cÀ0uÀÀB@ L L@ÀBÀ}@@À+@aÀ@À5Àf@! L @x À @ @3 R p @ À @ @  Àp€€v3€\€.€ {€€aR€G€€B€€B€€GR€a€€p €@W@@À&Àk;À}À@J@ÀTÀÀÀÀT @J@0iÀ;n) ÀT À} À À @8 W @x À @ @ @ 3€€€G €p€B€€v€€f€\WW\€€f€€p €€€^.@s@ÀÀB@ RÀÀ@\@@@@\ÀÀR@8pÀ@@ÀB@sÀÀ . ÀY À À @ @ À= ^ À} À @ À À  ÀM\€$€\€3€{€p€€k€€k€€p{€€€.€@!ÀfÀ5{@J@ÀY@@!@a#c@@W@uÀ@ÀG{ÀÀ @3 ^ À @! ÀB c À À À À À €a€€v€8€€pM€.€€ €€€.€€B€+p@ RÀ@aÀ)iÀÀÀ+iÀ@!^ÀÀ EÀ}@@@O @8 c @ @ À À& G i À  À ${.€M€€€a€B€.€€€€€€€€€€$3€€BR@3@xÀÀGÀÀY@À&iÀ0p@@@3pÀ)Àf@ÀÀLÀ@@!ÀTÀ @ Àk À  À+ L n @  À€=€€€B€f3€ v€W€B€3)$).€8€€BR€f€€=@ @OÀÀ@aÀ.p@@8@x@@8@x@0ÀkÀ@ÀR@@)@\ÀÀÀ E p À À 0 R @s @  # R\€€{€€G€€k€W€G€€=€€8€€8€€B€€GW€f€vE@@ÀW@@À&i5@xÀ@@À@8@s@!ÀY@.@aÀ @J u  5 W @x @ @  ) À€k€€€p.€\€3€€€k€\RMMR\€€f€vL@@a.@sÀ=ÀGGÀÀ={À&^5ÀfÀ@# R { À @ À ; ^ À} @ @ À  @ . ..€€G€v€G€$€ €p€€f€€a€€a€€f€€p{€€WÀ#i5{ÀÀE@ L@@@@O@E.Àf@;n@ÀÀ+ W À À @  ÀB c À @ À À @ @ @! @3 ÀG€€€G€\€$€\€8€€ {vv{€€€$€^À+pÀ=À@ L@ÀÀTWÀ@LÀ5ÀkÀ ÀB@sÀÀ 0 @\ À # G i À @ @ À& @8 \\€€€p€8€ v€R€3€€€  €€€€$3€#ÀfÀ5@xÀÀE@ÀTÀ@@\@\@ÀR@À;@sÀG{À@@ 5 c  ) L n @ À @ À À À+ À= v€€€p)€M€€f€G€3$€€€€€€€$)€8€€G€+p@@À=À@ @OÀÀ@\@#cÀÀÀ&c@ÀYÀ@@ ÀB{ÀÀL@@ À= i À À @ . R @s À @ @ À À 0 ÀB 3€€=€€f3€ {€\€G€€8...3€€=€€GW€@3@xÀE@WÀ@!cÀÀ+ÀkÀÀÀ+ÀkÀ#@a@@GÀ@!ÀT@ÀÀ ÀB n À À @ 5 W @x À @ À   5 G €G€W€{€€G€€€p€\M€€B€€B€€B€€GR\€€k€€=@ LÀ^@À)Àk0@s@@@3@sÀ+Àf@@OÀ@À&ÀYÀ@ G @s À ; @\ À À @ # ; L À €a€€€k.€\€3€€p€€aWRRW€a€€k{€E@WÀ@!Àf0@s@@8{;{@@3n@ÀTÀ@.@aÀ@@! @O { @ @ c À @  ) @ R $v)€€B v€G€)€€v€€k€€f€€f€€k€v€@ LÀ^@ÀÀ+n@8{À@ÀÀÀÀBÀ@8uÀ#@\À@@3ÀfÀ@@À& ÀT À À @! E i @  . E W À€8€€€=€W€€€€a€=$€€{{ €€€WÀ@!ÀfÀ@3u@À@ÀG@@@ @JÀ@{À+cÀ@;n@ . ÀY À À& @J n @  @ @3 @J @\ RR€€k€8€ v€R€€8$€€€€ €€€€€)@^ÀÀ+n@;À}ÀG@@@O@O@@ GÀÀ@0i@ @@sÀ @3 @a  À+ @O @s À @ @ @! @8 @O @a À€f€€€k€$€M€€fM€€8)$€€€€$.€8€#ÀfÀ@3@xÀB@ @OÀWÀWÀL@À@8pÀ@G@xÀ@@ @8 Àf 0 W @x À @ @ À& À= ÀT Àf .)€8€€a€3€ {€€aM€€=€333€8€€B€M€+p@@;À@JÀWÀ@@^^@@ÀT@@À=uÀL@ @ Àk À À  @8 @\ À} @ @ À À+ ÀB ÀY Àk ÀB€€€=€€M€v€G€€€p€\R€G€€B€€G€MR\€5@xÀÀB@@RÀ@^@#ÀfÀÀÀ&Àf@@\ EÀ}@ÀÀT@ E @s  À= @a À @ À @3 @J ^ p \R€f€)€\€3€€p€€a\WW\€€f€€p€=L@ÀÀY@#ÀfÀÀ+n.nÀÀ&@aÀLÀÀ&ÀYÀ @J @x @ ÀB Àf @ À @   @8 @O c u Àp€€€k€€{€=€€p€G€)€€v€€k€€k€€k€€p€v€E@ÀT@@aÀÀ+n@@3u5@s@.iÀR@@À+^@# R À} # G Àk @ @ @ # À= ÀT i { )3€€R€€\€=$€€{{ € @OÀÀ@\@À&Àk@3u@;À}ÀÀÀ={@@@3pÀÀÀYÀ@3ÀfÀ@) W À À ) L @s À À @ @ ) ÀB ÀY n À€€B€€€G€f3€€p€R€€8$€€€€€€€€€€€€€WÀ@!cÀ.@s@;À}ÀBÀÀBÀÀ;u@À&^@8Àk@ 0 @\ @  . ÀT @x À À @ À . G ^ @s W\€€{€€G€€fM€€8)$€€€$).@^À)n@5{ÀÀB@J@@@ @J@ÀBÀ}@@.ÀfÀ@ @@s 5 c @ @3 ÀY À} À À @3 L c @x @ €€k€€€p.€€W€)€v€\€G€€=€3.3€8€€=€#ÀfÀ0@s@À=@J@@OR@@ GÀ@@3ÀkÀ@E@xÀ@ ; i À  @8 ^ À À  @8 R i À} @ À..€€B€k€=€€p€\M€€G€€B€€B€€GR.p@@8À}ÀE@RÀÀWÀÀÀWÀ@O@@8@s@@JÀ}@ @ n À  À= c @  # À= W n À À €G€€€B€W€€€R€.€€€p€€aWWW\€a€5@xÀ@@ LÀÀYÀ@^@^@ÀÀT@@xÀ@R G @s @  E i @ ) ÀB @\ @s À À\W€€k3€€f€B$€ v€€k€€f€€f€€k€€p€=À@J@ÀTÀ@@a@À&ÀfÀÀÀ&Àf@\ G#W@À L { À # @J n  . G @a @x $€p€€€k€$€€G€{€W€€8€€€{{{G@@RÀÀ^@À&iÀ.n.nÀÀ&cÀÀLÀ@)^À@# R À ) @O u À @  @3 L Àf À} À8.€8€\€)€€kM€3€€€€€ €€€ @OÀÀY@#ÀfÀ.p@5u5@s@.iÀ@ÀÀTÀ0c@À+ ÀY @ @  . ÀT { @ @ @8 R Àk À M€€€B€€M €p€=€€\€G€3)€€€€€€$€WÀ@@aÀ+n@5@x@;À}ÀÀÀ={@5pÀÀ@!ÀY@5Àk@ 0 ^ @ @3 @\ À  # À= ÀY p @ ÀfW€a€€€R€$€€p€W€G€€83..3€^@À&i@3u@À=ÀÀBÀBÀÀ;@x@)@aÀÀ=p 5 c À  ; @a @ À @ ) ÀB ^ u @ @ {€€€k€€v3€€a€8€€k€WM€€B€€B€€B€€G€€&iÀ0@s@;À}ÀE@ @J @J@ÀBÀ}.i ÀBu@ À= Àk  @ Àf @ @ . @J c { À @ À.3€€G€v€M€)€ €k€\WRRW.p@@8{ÀÀB@ L@@RR@ @J5nÀÀ@JÀ}@ ÀB p @  E Àk @ À @3 @O i À À €B€€€G€\€$€a€=€€€p€€f€€f€€f€€f€@8@xÀ@À@J@ÀTÀÀÀYÀÀÀÀYÀ@OÀ;uÀ@OÀÀ G u @ # @J p @ À @ @8 ÀT n @ À À \\€€€p€8€ €p€M€3€€ {vv{@ÀÀG@@RÀÀ@\@@!@a@@@!@a@ÀW@ÀB{@À@!ÀT@À @O À} À ) R @x @ @ À @! À= ÀY @s @ @ €€p€€€p)€M€€a€B€.€€€  G@ @OÀÀY@@!cÀÀ&i)ÀfÀ@!^ÀÀ@@JÀÀ&@\@ÀÀ& ÀT À @  . W À} @ À  À& ÀB ^ @x @ À À3.€€=€€a€.€v€W€=€.$€€€€€€€@@OÀÀY@@@aÀ)ÀkÀ.p0nÀ)c@@@O@.@a@À+ ÀY @ 5 @\ À À @ À À+ G c À} À À M€€€B€R€v€B€€kR€€B€3.))ÀYÀ@@aÀÀ&iÀ0@s@5@x@@5u@@.ÀkÀ@W@À@3i@@ 0 @a @ À  ; @a @ @  0 L i À À À€aW €f€$€W€.€ {€€fR€G€€=€€=€€=€@aÀ&iÀ0p@@8{ÀÀ=À}ÀÀÀ=À}@5@s#@\;nÀ @8 Àf À À  @ i @ @  5 ÀT n @ @ @ )v€€€k€€{€8€€k€B€€v€€fWRMM)iÀ.p@@8{À@ÀÀEEÀÀ=@xÀ+c@À@ @u@ À= n @ @ @ E n À @ @ À @ ; ÀY @s À @ @ À=)3€€M€€R€3€v€€k€€a€\\€0@s@5@xÀ@ÀÀG@@ L L@@E0ÀkÀG{@À ÀB @s @ @ # L @s À À @ À # @ ^ @x À À À R€€€B€€€G€a€)€€f€B)€€{v€€p€€p€@8{À@ÀG@@ @OÀTÀÀÀÀT@ @JÀÀ@8p@LÀÀ @J @x À À ) R @x À À  ) G c À} À ÀfW\€€v€=€{€W€€8$€€€ ÀBÀG@@ @OÀWÀÀ@\@@@ÀYÀÀR@À=@xÀÀT @O À  . W @ À . L i @ @ €€€k€€€p)€R€$€€kM€€8$€€€€€€€@ @J@ @OÀWÀÀ@^@@!c@!@a@@ÀYÀ@@ EÀ}#ÀY@ÀÀ& W @ @ 5 @\ À @ À @3 R n @ @ @ À.)€€=€€f3€€{€€a€G€€8.$$RÀÀWÀ@@^@#ÀfÀ)iÀ)iÀÀ#^@LÀ@À+@aÀÀ+ @\ @ @ À @ ; c @ À @ À @8 W @s @ À À €B€€€=€€R€{€€G€€€p€\€G€€=€€83€ÀY@@^@#ÀfÀÀ+n0p0pÀ)Àf@ÀR@À0Àf@@ @3 @a À  @ i @ À À  À= @\ @x À @ À À WR€f€)€\€3€€k€\R€G€€B€@!cÀ&ÀfÀÀ+n@@3u@@8@x@@@8u@0nÀY@À@8n@À @8 i @ E n À À # ÀB @a À} À @ @ @ @  $€p€€€k€$€€B€v€M€.€€v€€k€€a€€a€0p@@3u@@8{ÀÀ@ÀÀÀEÀBÀÀ;@x@)c@À ÀB@xÀ ÀB p @ # @O u À À @ À+ @J i @ @ À À€8)€8€W€$€a€B$€€{v€€p€@8@x@;À}ÀÀBÀG@@@ L @J@ÀB0i@GÀ} G @x À À À+ ÀT À} @ @ 0 @O n @ À À  M€€€=€€€G€k3€ v€R€€8$€€€ @ÀÀÀB@J@ @O@RÀÀR@ @JÀÀ@8p@À@O@À@ L À} À À  0 ÀY À @ @ À 5 W @s @ À @   À€aR\€€{€€G€€f€G€3$€€€€€@ G@@@ L@@RÀÀWÀÀÀYÀÀÀÀYÀ@OÀÀ=@xÀT@À# ÀT @ 5 @a À @ @ ; @\ @x @ @ @ @ )v€€€f€€€p.€\€.€ v€\€G€€8.$RÀTÀÀYÀ@@^@@!@a@@@!@a@ÀWÀ@@ EÀ}À&@\@) ÀY @ @ À  À= Àf @ À À @! ÀB @a @ @ À @ @! ÀB){)€€B €p€B€€p€W€G€€=€€8€ÀYÀÀ@@\@@a@#ÀfÀ)i)ÀfÀ@!^À@JÀÀ+@a@À0 @a @ À À  ÀB Àk À @  À& G Àf @ À À À À& W€€€=€€€=€W€€€R€.€€€k€\M€G€@!@a@@#cÀÀ&iÀÀ+n0p0nÀ)Àf@@R@@3i 5 Àf  G p À À @ À+ L Àk @ À À  À À+ ÀkRR €k.€€f€=€€{€k€€aW€+ÀkÀÀÀ+Àk.p@@3u@@8@x@@5u@@0ÀkÀY@À@8n@ À= n @ @ @ # @O @x À @ 0 R p @ À  0 €€€f€€€f€€{€B€{€R€3€€{€p€€k€@3@s@@@3@s@8@x;À}ÀÀ@À=À}@5@sÀÀ&^À@u ÀB @s @ À ) ÀT À} À À @8 W @x À  # 5 À){${3€€W€$€f€B€)€€€ {;{;{ÀÀ@ÀÀÀBGEÀÀ={À+Àf@E{ G @x À 0 ÀY À À À À= ^ À} À  ) ; €€=€€€8€€€B€f3€ v€W€€=)€€€€ÀBÀÀÀÀBG@@ @J L@ L@@EÀ@@3nÀLÀÀ@ @O @ @ 5 @a @ À @! ÀB c À  @ . @ ÀR€GW€€{€€G€€fM€€8)€€ L@@@ L @O@RÀÀÀÀTÀÀÀÀT@@@JÀ;@sÀ@RÀ# ÀT @ ; Àf @ @ À À& G i À À @ @! 5 E €€f€ \€€k€)€€\€.€ {€€aM€€=€3€ÀTÀÀÀÀTÀÀÀWÀÀÀY@@@@\@@@ÀYÀÀR@@@{@À#ÀY@À@) @\  ÀB Àk À À  À+ L n À @  À& ; L À.{€€p€$€=€€k€B€€p€\M€€B€@\@@@@\@@^@@!@a#c#@a@@ÀYÀ G@)^À@À0 @a @ G p À À 0 ÀT @s À  À+ @ R €B€€3€8€€R€€R€.€€€p€\R€&c#cÀ&ÀfÀ)iÀÀÀ+ÀkÀÀÀ+iÀÀ#@a@ÀL@0Àf@@À 5 Àf @! L @x @ À 5 ÀY @x À À  @ 0 E W ÀW€€B€€€G€f€)€€f€B$€ €p€€f€.nÀÀÀ+ÀkÀÀ.n0p@@3@s@@0pÀ)ÀfÀÀT@5Àk@@ À= n ) ÀT À} À @ À À= ^ @ @! 5 @J @\ $€k€W\€€v€=€v€R€3€€ v€5u@@3@s@5u@@8@x@;{@@8@x@0nÀ@!@\ÀÀ=@s@@ ÀB @s À . ÀY À À À  ÀB c @ @ À& ; @O @a À8€€k€€€p)€R€€€f€G€.€€ @À}ÀÀ;{ÀÀ=À}À@ÀBÀ@À}À@8uÀÀ&@a@À ÀB{ G { À À  @3 ^ @ @ À # G i @ @ À À À+ @ ÀT Àf M€€.)€€=€€a€3€ v€W€€=)€€@ GEEGGGÀ@{@@.i@À@J@ @O ; c @ @  À+ L p @ À À 0 E ÀY Àk Àa€B€€€=€€R€v€B€€kR€€=.@O@ L L@@O@@@@O@@@@O@EÀ5n@À@O# ÀT À  @ Àk À À À @ 0 ÀT u À @   5 L ^ p Àp€WR€a€$€W€.€ {€€aM€€=€€WÀÀÀTÀÀÀÀTÀÀWWÀTÀ@L@;uWÀ) @\ À À À E p @ À À  5 ÀY { @ @ # ; R c u €€k€€€f€€v€8€€k€=€€p€\M€@!@a@@@\@@@@\@@^^@\@ÀÀT@ÀBÀ}À&@\ÀÀ0 @a À  L u @ @  ; ^ @ @ @  À+ @ W i { À€.{$v)€€G€{€R€.€€€p€€a€+iÀÀ#c#cÀ&ÀfÀÀÀ&ÀfÀÀ#c@@ÀYÀ@@JÀÀ.cÀ@À 5 i À @ À& R À} À @ @ @ c À @ À  0 G @\ n €B€€3€€=€\€$€€a€=$€ €p€@3pÀ+ÀkÀÀÀ+ÀkÀÀÀ+n.nÀÀ+ÀkÀ#@aÀÀ@O@À@3i@À@ À= n @ À À+ W À À À À @! G i À @ À À @ 5 L @a @s ÀM€€€=€€€G€f€.€€k€G)€€v€5@s.n.n.n.n.ÀkÀ&@a@R@À@3Àk@@ À= p @ @ À+ ÀY À # G Àk   @8 @O c u €€aR\€€v€=€{€W€€8€€€À={@@5u5u5u5u@3@sÀ+iÀ@@W@À;pÀ@@ ÀB u À  @3 ^ @ @ @ À ) @O p @ @ # À= ÀT i { À)v€€€f€€€k€)€R€$€€f€G€3€€EÀÀ=À}ÀÀÀ=À}ÀÀÀ=À}ÀÀÀ=À}À;{@@3pÀ#^@ @@x @J { À @ @ @8 c @ @ @ 0 ÀT @x À @ @ ) ÀB ÀY n À €=${$€8€€f3€ {€\€B€.@L@@GEEEÀÀBÀ;u@À+c@GÀ}@@ @O À @ @  À= Àk @ 5 ÀY À} À @ À 0 G ^ @s R€€€8€€8€€M€v€G€€k€R€€=€€ÀT@@O L L L@@ @JÀ@À}0ÀkÀL# W @  E p @ À ; ^ À @ @ 5 L c @x @ À€fM€M€a€$€W€.€ {€€fR€@!^@ÀWÀÀÀÀTÀÀÀÀTÀÀÀÀT@O@@ GÀ@8@sÀ@ÀT@) @\ @ @ @J u @ @ @ À @ c @  @! ; R i À} @ 3{€€€a\€€€p3€€k€=€€v€€a)Àf@^@@@@\@@@@\@@ÀÀYÀÀÀWÀ@O@ÀÀ=@x@À#@\0 @a À # @O À} À @ @! E Àk @ @ À& @ W n À À ÀB$€p€€€p€$€€G€{€R€.€€€p€0nÀÀ&Àf#c#@a@@@!@a@@^@ÀÀÀT@@ E@)@aÀ 5 i À @ ) W À À& L p À @ @ À+ E @\ @s @ W€€€8.€8€W€$€a€=$€ @8u@0nÀÀ+ÀkÀÀ)i)iÀ&Àf@@\ÀÀL@0iÀ À= n @ . @\ @ @  À+ R u À À @ À 0 @J @a @x @ @ Àk€G€€€=€€M €k3€ v€R€3€€ÀBÀ}@@8u@@3@s@0p0p.ÀkÀÀ&c@R5nÀ@ ÀB u À  5 @a @ @ @ @ 0 W { À À 5 @O i À} À @ €€\R\€€{€€G€€€a€B€. @JÀ@À}À;{@@8@x@@@8@x5@s.iÀÀYÀ=uÀ@À G { À @ ; i À @ @8 @\ À @! ; ÀT n À À À À À$€p€€€a€€€p.€€W€)€€p€W€€=€R@@@ GÀÀBÀ@@ÀÀ;{@@3p#^À ÀB{À@ @O À @  @ n À  À= c @ À  À& @ ÀY @s À €3$v$€=€€k€=€€fM€ÀYÀ@O@ @J@GGÀBÀÀ;@x@À+Àf@À@JÀ@@! ÀT @ À G @s @ @ @ ÀB i @ @ À+ E ^ @x @ À€G€€3€€8€€R€{€M€$€v€\€&@a@ÀWÀÀR@@@O@@@L@ @JÀBÀ}@3nÀ@À@OÀ@) @\  L { À @ @! G n À 0 L Àf À} À €\€G€€M€a€)€\€€8€€p€.iÀ@!^@@ÀÀYÀWÀÀTÀÀR@@ GÀÀ@8@sÀW@. @a À # R À À& @O @s @ À 5 R Àk À À À$€p€ \\€€v€8€€p€G€)€ 5pÀ)Àf@!@a@^@@\@ÀÀWÀ@O@{@À&^À@ @3 i À @ À+ ÀY @  . ÀT @x @ @  ; W p @ À€8€€k€€€p€)€M€€W€€8€€€À={@0nÀÀ)iÀÀ&ÀfÀ#c@@!^@ÀW@@ E@À+c@ ; n @ À 0 ^ @ @ @ @3 ÀY À  # @ @\ u @ @ @ M€€.)€8€\€)€€k€G€.€@ EÀÀ@8u@@0p.nÀÀÀ+Àk)Àf@@!@\ÀL@3Àk@ @ @s À  5 c À  @8 ^ @ À ) G @a { À @ @ À\€€B€€€8€€€G €k€8€{€W€€=@O@À@À}@8@x5u@@@3@s.nÀÀ&c@@ÀÀT@8p G { À À= Àk À  À= Àf @  0 L Àf À À À )€p€RM\€€€M€€kM€@W@@ GÀÀ@ÀÀÀ={;@x@@5@s@.ÀkÀÀYÀ@@@xÀ L @ À ÀB p @ @ @ E Àk @ @ @  5 R Àk @ À À À=€€f€ \€€€k.€\€.€ {€\#^À@O@ GEÀÀÀ@ÀÀ={@@5pÀÀ&@a@À EÀ}@À ÀT @ À @J u @ @ @! @J p @ À @ ; W p @ @ R€€)v€€€p€$€=€k€B€€k€€+Àf@ÀWÀÀ@O@ L@@@ GEÀÀ;@xÀ+Àf@@ÀLÀ& ÀY @! @O À} À ) @O u @ @ À @! @ @\ @x @ À À Àf€€=.3€€R€€R€.€ €@3nÀ#^@@ÀWÀÀR@@O@ @J@ÀB@@3n@ÀR@@À+ @a À& ÀT À @  . W À} @ À  À& E @a À} À À v€M€€€=€€€G€a€)€€a€=€€;uÀ+Àf@!^@@ÀYÀÀWÀÀR@@ @JÀÀ;u@!ÀYÀ@3 Àf À @ À À+ @\ @ @ @3 @\ À À @ . @J Àf À @ @ @ €€aRW€v€= v€M€.€@ ÀBÀ}@3pÀ)ÀfÀ#@a@@^@@ÀYÀÀ@O@@{)@a@ @8 Àk À @3 @a @ À  ; @a À @ @ À @3 @O Àk @ @ @ @  À€)v€€€f€€€k€$€M€€\€=LÀÀ;@x@0nÀÀ+iÀ&Àf@!@a@ÀWÀ@ GÀÀ.ÀfÀ@ @ @s À  @8 Àf À À À  @ Àf @ @ À @8 W @s À À À @ €=$v${€8€\€.€€pM€€ÀT@@ÀBÀ@8u@@3p.nÀÀ)ÀfÀ@!^À@OÀÀ5n@@ E @x À @ À= n @ @ @ E n À @ @ À  À= @\ @x À À À @ ÀM€€33€€€G €p€=€€\@!@\ @JÀ@À}À@8@x@5@s@0nÀÀ)c@ÀÀT@@À;@sÀ@ L @ À E @s @ @ @! @J @s À À @ À # ÀB @a À} @  À €€a€G€€€G€W€€€M€$€€p€)cÀÀR@@ GÀÀ@ÀÀÀ={@@8u@.Àk@!@\@@ ÀB{À@ R @ À @ @J @x À À À ) R @x À À @ ) G Àf À @ @ @ À À)€p€ \W €k.€\€3€€€0ÀkÀ@ÀYÀ@O@@ GÀBÀÀ=À}@5@sÀÀ&@a@@G@# W À @! R À  . W À} @ À @ . @O Àk À @ @! €=€€k€€€k€€{€=€p€B€€;@sÀ&@a@ÀWÀ@O@ @J@EÀÀÀ=@x@.i@@OÀ@) ^ À& W @ @ @3 @\ @ @ À 5 ÀT p À À À À& R€€.${.€€M€€W€.€ÀB{.iÀ@!^@ÀÀWÀÀR@ L@ÀBÀ@@3p@ÀT0 c @ À . @\ @ @ @ ; @a @ À @ À ; ÀY u @  À À+ À€a€B€€3€€B€€a€)€€f€B@@JÀÀ@5pÀ)Àf@^@@ÀÀYÀÀT@ @JÀ;uÀ#@\À@ 5 Àk À @3 c À  @ i @ À À  @ ^ À} À @ @  0 3v€R€€G€R€€p€8 v€R€€RÀ=@x@0nÀÀ&Àf@!@a@ÀYÀÀR@ÀBÀ}@)@aÀ À= p  @8 i @ E n À À # E c À @ À  # 5 ÀB€€fW €a€€€M€€€a@!ÀYÀEÀ@8u@.nÀÀ)ÀfÀ#@a@ÀWÀ GÀÀ@0i@ ÀB @x À @ @ n @ @ @! @J @s @ À  À+ @J i À À  ) ; W€€)v€€€k€€v3€\€.€€p€)@a@LÀÀ=À}@5u@0nÀ)iÀ@!^@À@O@À5nÀÀ @J À} À E u À À& R { @ À @ 0 R p À @ @ @ @ . @ Àf€€=){)€€B€k€=€€0iÀÀT@@ EÀÀÀ={@@8u@0pÀ)Àf@ÀÀT@@À=uÀ @O @ @ L { À . W À À 5 W u @ @ @ @! 5 E {€M€€€8€€€=€R€{€M€$€@8pÀÀ@!@\ÀL@EÀÀÀ=À}@8u@.ÀkÀ@!@\@ EÀ}@À@! W @ À @! R @  @3 @\ À À ; @\ { @ @ À À À À& ; @J €€aM€M€f€)€\€3€@@x@)c@ÀT@@L@EÀ@À}@5@sÀ)c@JÀÀ& @\ @ À À& W @ @8 c @ @ À  @ @a @ À À À À . @ @O À€)€p€ \\€€v€8€€k€B@GÀ0ÀkÀ@\ÀÀÀT@@L@@EÀÀ={@.iR@@. @a @ À . ^ À @ i @ À À& G Àf À @ @  @3 E ÀT €8€€p€€€p)€€G€€R€@O@ÀÀ@8@sÀÀ&c@@@\ÀÀT@L@@ÀBÀ@5pÀW@À@3 i @ @ À @3 c À À À E n À  À+ L Àk @ @ @ # @8 @J ÀY ÀM€€.)€8€\€$€€f@!W@@{@.ÀkÀ#@a@@@\ÀÀT@ @J;uÀ#^ ; n  ; i À @! @J @s @ À 0 R @s @ À À ) À= @O ^ €\€€B€€€8€€€G €k€8€ v€)@aÀ GÀÀ5@sÀ+iÀ#@a@@@\ÀÀR@@ÀBÀ}@@À+c@À@ @ u @ @ @ p À& R { @ @ À 5 W @x @ @ À À . ÀB ÀT c À)€p€RM\€€{€€G€€0i@ÀÀ@O@ÀÀ={@@3pÀ+iÀ#@a@@WÀ @J@@3ÀkÀ G { À E u À À À+ W @ À ; ^ À} @ @ À   @3 G ÀY i €=€€€a\€€k€)€W€)€@8p@@W@ EÀÀ;@x@@3pÀ+iÀ@!^@À@O@@8p@ L À @ L À} À À  @3 @\ À  ÀB c À @ À # @8 L ^ p M€)v€€€k€€{€8€€f€8@@x#^ÀÀL@ÀBÀ;@x@@3pÀ)Àf@W@@xÀ@ R @! R À @8 c @ À # G i À @  ) @ R c u À€a€€8).€M€v€€G@G@À+Àf@@ÀT@ @JÀ@À@8@x@0ÀkÀ@!@\ EÀ}# ÀY @ À À& ÀY @ À  À= i @  ) L n @ @ À  . E W i { .€p€€G€€€8€€€B€\€$€W€€@O@@3n@\ÀÀ@O@@ GÀ@À}@5@sÀ)cÀLÀ@) ^ À . ^ @ À À  E n À 0 R @s À @ @ À   @3 @J @\ n ÀB€€\MR€€k3€€k@!ÀY@@À;uÀ)c@@ÀYÀ@O@@ GÀÀ={@@0ÀkÀ@ÀÀT0 Àf @ @ À 5 Àf À @  @J u  5 ÀY { À @ À @ # ; @O c u R€$€k€ \ €f€€€€B€{€)@a@ ÀBÀ}@@0ÀkÀ#@a@ÀWÀÀ@O@EÀ5@sÀ@!ÀY@À @8 n @ @ ; Àk @ @ @ # @O { @  ; ^ À @ @ ) @ ÀT i { @ Àf€3€€p€€v.€€W€$0i@À@J@8@s)ÀfÀ@!^@ÀÀWÀ@L@ÀÀ=@x@À&@aÀ À= @s @ @ @ @s @ À À+ W @  ÀB c À @ À  . E ÀY n @ v€€G€..€€=€€f3€€@8p@ÀRÀ@{@@0nÀ)Àf@^@ÀR@E.Àf@ E { @ À G @x  0 @\ À # G i @ À @ À À @ @3 @J ^ @s À €W€€=€€€=€€R€v€B@ @@x@!ÀYÀ@@ GÀ@8u@.nÀÀ&c@@ÀY@@J5nÀÀ @J @ L À} @ @ @8 @a  ) L p @ À  @! @8 @O c @x @ À À€€fRM€a€$€R€@J@)@a@L@À@À}@5@s@.ÀkÀ#@aÀRÀ;@sÀ@ R @! ÀT @ @ À= i @ . R u À À& @ ÀT Àk À} @ €3{€€€a \€€€p3€€a€R@0iÀÀT@ GÀÀ={@5@sÀ+Àf@@WÀÀB{@À@! W À ) ÀY @  ÀB n À À @ 5 ÀY { @ À @  À+ E @\ p À À À€B$€p€€€p€$€€B €p#ÀY@@8pÀÀ@!@\ÀÀ@O@EÀÀ;@x@0nÀÀ#^ÀÀ@G@) ^ À . ^ @ @J @s À ; ^ @ À À  0 @J @a u À À €W€€3)3€€R€€€+@a@@@x@)c@@ÀWÀ@@L@ÀBÀ@8u)Àf@@À@O@. c À @ À @3 Àf # @O { @ @ c À À  @8 @O Àf { @ À$€f€B€€€8€€€B€a€)€@3i@G0Àk@!@\ÀÀR@@ @JÀ@{@0ÀkÀ@@ÀT@À5 Àk À  ; Àk @ ) ÀT À @! E i À  # À= ÀT Àk À À À3v€ WM€W€€p€8;pÀ@OÀÀ@8@sÀ)c@@ÀYÀ@O@EÀ@8@s@!@\À ; p À À @ @ @s . @\ À À& L p @ ) ÀB ÀY p À À €B€€f\ €f€$€M ÀB@xÀW@@@{@.ÀkÀ#@a@ÀWÀ@L@ÀÀ=@x)@a@À@ ÀB @x À @ À G @x À  5 @a  À+ R u @  . G ^ u @ ÀW€€)v€€€k€€v3€\€€@JÀ&^ GÀÀ5@sÀ+iÀ@!^@ÀÀT@@ E0i@À G À} @ À À L ; Àf @3 W { À À @3 L Àf { $€f€€=){)€€B€k@RÀ.ÀfÀÀ@O@ÀÀ={@0nÀ)Àf@ÀYÀ@@JÀ5n@ @O @ @! ÀT À @ n À À  @8 @\ À  @8 R Àk À @ À8v€M€€€8€€€=€€R€{€#ÀY@À5nÀ@ÀÀTEÀÀ@8u@.ÀkÀ#@aÀRÀÀ=uÀ ÀT @ @ À& ÀY @ À À G @s  À= c @  # @ ÀY p @ @ ÀG€\€G€M€a€$€€+@aÀ=u@!@\À@LÀ@À}@5@sÀ+i@@ÀYÀ@@ ÀBÀ}# ÀY @ . ^ À  L @x  E i @ ) E ^ u @ @ À W€$€p€ \\€€€p3€@3iÀ EÀ})c@ÀT@@ GÀÀ={@@3nÀ#^ÀÀ@@JÀ@À+ @a @3 Àf @ À& R À À # @J n @ À  . @J c { À @ À Àk€€8€€k€€€k€$€€G;pÀ@ÀLÀ0ÀkÀÀYÀ@O@EÀ@8u@À+Àf@@@O@À0 Àf @  ; Àk À À+ ÀY À À ) @O u @  5 @O i À @ @ {€€G€){${3€€W€@ÀB@x@ÀTÀ@8@sÀ&@a@ÀT@ @JÀ@À}@0Àk@W@ @8 n À @ @s À À 0 ^ @  0 ÀT { @  ; ÀT n @ À À€W€€€=€3€€€B€f€LÀ#ÀYÀ@{.iÀ@@\ÀÀR@@ GÀ@8@s#@\@ À= @s  E @x À @ @8 c À 5 @\ À  # @ ÀY @s @ @ @ À À€$€fM€€€G€R€vÀTÀ@À+@aÀÀ GÀÀ@@3pÀ&c@@ÀYÀ@L@ÀÀ={)c@À E { À À L À} @ @ À= Àk À À À ; @a @ À @ ) E @a { À @ @ €3{€€\W €f€$€€&@\@@3i@@À@O@;@x@.Àk@!^@ÀÀT@ E0i@À @J À  R À À ÀB p @ À @ Àf  . @J Àf À À À À€B€€k€€€f€€v3€.cÀ;p@WÀB@5pÀ)Àf@@\À@LÀÀ@8p@À R À À& ÀY @ À À @ @J u @  G n @  @3 R Àk @ @ À À €W€€.€v)€€B5ÀkÀ@ ÀB@x#^@@JÀ;@x@0nÀ#@aÀR@ÀÀ=@x@! W À @ À+ ^ À @ @! @O À} À À À& L @s @ À @ ; W p @ @ @ À€€a€€=.3€€M@ À=pÀ@GÀ})@a@@O@À@À}@5pÀ)Àf@ÀWÀB{@À# @\ 0 c À À& ÀT ) R u @ @ À @! À= ÀY u @ À À À.v€M€€€=€€€B€\€E@xÀ@@OÀ0iÀW@@ GÀ;@x@0ÀkÀ@!@\ÀÀ@GÀ@À+ @a À 5 i @ À À+ ÀY @  0 W À} @ À  À& E @a { À À À @ €B€€\MR€€k€L@ÀTÀ@8pÀÀ@!@\ÀÀ@O@ÀBÀ5@sÀ)cÀÀ@O@0 i À  À= p @ À 0 ^ @ 5 @\ À À @ À À+ @J Àf À @ @ÀR€$€k€ \ €a€€{@!ÀTÀ&@\ÀÀ=@x@)c@@ÀÀT@ @JÀÀ={@.ÀkÀ@@ÀT@ @8 n À @ ÀB u À  @8 Àf  ; @a À @  0 @O Àk @ @ À$€a€3€€p€€v.€)@\@À@.c@À E0ÀkÀ@\ÀÀ@O@EÀ@5pÀÀ@!@\À À= u À @ À G { @ À= Àk À À @ i @ À @  @8 ÀT p À À @ À3v€€B€.)€€=€0c@5Àk@ÀL@8@sÀÀ&c@@ÀWÀ@@JÀ=@x@)@a@À E { À @ @O À @ À E @s @  G n À @ @ À  À= ÀY u À À À @@!ÀB€ R€€€=€€€8€€M@8ÀkÀ=@sÀ@ÀT@ÀÀ={.ÀkÀ@!^@ÀR@@ÀBÀ}@.i@À @J À @ @! ÀT À @ @J @x @ # L @s À À @ À # ÀB @a À} @ À&W€€€fM€€€G\€@@@sÀÀ@E{@À#@\À@@ EÀ@5pÀ)c@@ÀYÀ @J5n@À R À @ ) @\ @ @! @O À} À À+ R { À À  ) G Àf À @ @ @ @À+Àf€.v€ \\€€kG{@LÀ)c@LÀ;@x@.ÀkÀ@!^@À@OÀ;uÀ W @ . @a À @ À& W @  0 ÀY À @ À @ . L Àk @ À @@!0v€€=€€k€€€k€€{@OÀÀT@@0ÀkÀÀT@@ÀBÀ@5@sÀ)Àf@@WÀB{À& ^ À @ @3 i À À . @\ @ @ 5 ^ À @ @ À 5 ÀT p À ÀÀÀ&5€ M€€.{${.€€&W@ÀÀ&@\@8pÀÀ@!@\ @JÀÀ={@0ÀkÀ@!@\ÀÀ@GÀÀ+ c À  ; n @ À @3 @a @ À  À= c @ À @ À ; ÀY u @ ÀÀ+;À€\€€=3€€=€.^@.cÀ@@@x@ÀÀ&@aÀÀR@ÀBÀ5@sÀ)cÀÀ@O@À@3 Àk @ @ @s À À @ @8 i À À ÀB i @ À  @ ^ À} @ @ @!0@€)€p€M€€€B€€M5ÀfÀ@3i@@G@.i@@WÀ @JÀ={@.ÀkÀ@@W@À @8 p À @  G { @ @ n @ @  G p À @ À À& E c À @ À À&5EÀ€8€€\R\€ À=n@;p@O5pÀÀ#^@ÀR@@EÀ@5pÀÀ@!@\@ @ @x À L @ À  E u @ @ # L u @ À À @ À+ @J i À ÀÀ+;@JÀ M€€€k€€€a€€€k€€EuÀÀ@ÀB@xÀW@ÀÀ=@x@)Àf@ÀYÀ@@JÀ=@x@)c@À@ E À} @  ÀT À @ L { À À+ ÀT { À @ 0 R p À @ @ @ 0ÀBR€\€€3€€p€€{@LÀ}@@JÀ&@\@@ E0nÀ@!^@ÀÀR@@ÀBÀ}.i@À L À À& ÀY @! R À  0 ÀY À @ À 5 W u @ @ @ @#5GWÀ)€k€B€..€#ÀTRÀÀ+c@JÀ@8@s)Àf@ÀYÀ @J5p@@ R @ À+ ^ À @ ) W @ @ 5 ^ À @ À À= @\ { À @ @ À À);L@\€8{€R€€€=€€€=€€+@\ÀÀ&ÀY@À@3ÀkRÀ@{@@0nÀ#^@À@OÀÀ=u@! ÀY @ À 0 Àf À À . ^ À  À= Àf @ À À @! ÀB @a À À.@R@a €G€€aM€R€@3cÀ@À+@aÀ;@sÀÀÀYÀ@@ EÀÀ@8@s)Àf@WÀBÀ}) ^ À @8 Àk  5 c  ÀB Àk À À À& G i À @ @ @3GWÀfÀ\€€)€p€ \€a€@ ;i@@3iÀ@ ÀB{@ÀÀ&@a@L@ÀÀ={@@0nÀ@!@\ÀÀ@@JÀÀ. Àf @ À @ À= @s À À @ ; Àk À @  G p À À @ À+ L n @ @À&@8L@\Àk.€k€€8€€k€€€p€ÀBpÀ;pÀ@@JÀ@.Àf@@ÀÀT@EÀÀ@8@sÀ)cÀÀ@O@ÀÀ5 Àk À @ E @x À @ @ p @ # @O @x À @ 0 ÀT @s @ À À ÀÀ+@R@apÀ={€€G€.{$€@J@xÀ@@ÀB@xÀÀRÀ5n@\À@LÀÀ={@.ÀkÀ@@W@@À ; @s @  @J @  G u ) ÀT À} À @8 ÀY @x @ À ÀÀ0EWÀfuM€W€€€=€3€€@!R@@J@@!W@À;uÀÀ&@aÀR@EÀ@5pÀ@!@\@@ ÀB @x À @ R @ À @ L À} À À  0 ÀY À À À À= ^ @ @ @!5@J@\nÀ}\€€€fM€€€B€)ÀY@ÀR)^@@ ÀBÀ}@@.i@@ÀY@@JÀ=@x@)c@@ G @! W @ # R À @ 5 @a @ À @! ÀB c @ @À&;@O@a@sÀÀp€3{€€\W€0@aÀ@À&ÀY@À@0Àf@J5pÀ#@aÀR@@ÀB0Àk @O À @ ) ^ @ ) ÀY @ @  À= Àf @ @ À À& @J Àk @ @ ÀÀ+@ÀTÀf@x€€B€€k€€€f€@ @8i@.@aÀ@@8nÀRÀ=@x@À+i@@ÀY@@J5pÀ@ ÀT À 0 c À À 0 ^ @ À À  ÀB Àk À À  À+ @O p @ À ÀÀ0GÀYnÀ}À€R€€.{€v@p@À5i@À=uÀÀYÀB@3nÀÀ#@a@ÀÀRÀÀ=@xÀ# @\ À @ 5 Àk  5 Àf À @ G @s @ À @ @3 ÀT u @ 5L@a@sÀÀ€€a€€=.€G@xÀ@ À=pÀ@EÀ}À&^ÀÀ@@JÀÀ@8u@À+Àf@W@@ EÀ}@) @a À @  À= p @ ; Àk @ @ @ # @O @x @ À @8 ÀY { @ @ À&À=RÀf@x€.€p€M€€€=€€@!@OE@xÀ@L@.Àf@@R@À}@0nÀ@!^ÀÀ@@JÀ@0 i ÀB @x À  ÀB @s @ @ À ) ÀT À} À @ À À= @a À @ @ @ À+ÀBWÀkÀ}@@À€=€€\M)WÀÀ@J@ÀT@À5n@@WÀ@@ GÀ@8u)c@@R@À5 n À @ À G À}  G @x À 0 ÀY À @! E Àf À À 0G@\pÀÀ M€€€k€ \0^À@!R#@\@À;u#^ÀL@À@{@@0ÀkÀ@@W@ À= u À À @O À @ À @ @O À} @ @ 5 @a @ @ À À& @J Àk @ À5LcuÀÀ€\€€.{€€€k€ @8ÀfÀÀ&ÀYÀÀ+cÀ@ ÀB{À+Àf@@ÀÀT@ EÀÀ5p#^@ ÀB { @ @! ÀT @ À # ÀT @ @ @ ; Àf @ @ @  À+ @O @s @ @ #;Ri{@À.€k€=){€@n@À.@aÀÀ@3i@À@JÀÀ@@3n@\À@LÀ=@x@)c @J À @ À& @\ @ @ ) ÀY @ À ÀB Àk À 0 ÀT @x À @ @ @)ÀBÀYnÀÀ@€={€M€€€8€@GuÀ5i@@;pR@À@8@sÀÀ&@aÀÀT@ÀB0Àk @O À+ @a @ À 0 @a @ G @s @ À  @8 @\ À} À @ @ À.G^@sÀ@ÀM€\€G€€#@OÀ}À@ À=p ÀB@xÀW@@{.iÀ@ÀY@@JÀ@8pÀÀ W @ À @3 i @ À 5 Àf @! L @x @ @ @ À À= @a À @ À5Lc@xÀÀ\€€$€k€WÀ+W@ÀE@xÀÀ@JÀ&^ GÀÀ@@3pÀ#@a@ÀÀRÀÀ=@x@À# @\ À À @8 n @ ; n @ ) ÀT À} @  ÀB Àf @ À @ @!;RiÀ.€k€3{€€€f€0^ÀÀLÀ}ÀÀ@OÀ.ÀfÀÀL;u@À+Àf@W@@ EÀ}@@À+ c @ @ @ u @ @ ÀB @s . ÀY À # @J n @ @ @ À&@Wn@À={€€B$v€ @8ÀfÀÀ@!ÀT@@!W@3nÀ@ÀÀT@@ÀBÀ}@3nÀ@!^ÀÀ@@J@0 i @ À @ E {  G @x À  @3 ^ @ @ @  À+ @O @s À À @ @À+E^u@@M€R€€3€@n@@@)@\@)^ÀÀ;@sÀ@!@\ GÀ@8u)c@@R @8 p  L À @ @O ; Àf @ 0 ÀT @x @ @ @ 0@Jc{@À\€€€a€B€€@Gu@0@aÀ0Àf@@ ÀB{@)cÀÀ@O@À@{@@0ÀkÀ@@W À= u À @ R À # ÀT  @ Àk @ 5 @\ À} @ À @ @@8RiÀ@ÀÀk€.€p€R#@OÀ}@8i@@À@8nÀ@JÀ.iÀW@ EÀÀ5p#^À E À} À # ÀY @ À ) @\ À À E @s @  ; @a À À @!À=Wn@{€€=€€a€À+WÀ@@p@ À=@s@À@O@À5pÀÀ@!@\ÀÀLÀ=@x@)cÀ @J À @ ) ^ À À . @a À  L @x @ ÀB Àf @ À À @ À&ÀB@\u@@@À€ M€$€p€@ @3^@@ÀG@xÀ@E{W@@ÀÀ=@x@)c@ÀT@ÀB0ÀkÀÀ R @ À @ 0 Àf À @ À 5 Àf À @ À& R À} @! G Àk @ @ @ @.G@a{À@ÀÀ€\€€3;Àf@OÀLÀ@À&^@@ EÀ}@@.ÀkÀ@ÀY@@JÀ@8pÀÀ W @ 5 Àk @ À @ ; n @ À À+ ÀY À ) L @s @ À @ @3@OiÀ@€)€k€B€€€ÀBnÀ#ÀT@ÀÀT@.Àf@J5p#@a@ÀÀ@OÀÀ=@x@ÀÀ& ^ @  À= @s À @ @ ÀB @s À À 0 ^ @  . ÀT @x @ À À @@8ÀTn@ÀÀ€8{€R€€@Ju@@ÀÀ+@\@À&@\@À5ÀkRÀÀ=@x@À+Àf@W@@ E@@À+ c @ À ÀB @x @ À G { À @ @ @8 c @ @3 ÀY À} @ @!À=ÀY@s@@@@@À €G€€a€&RÀ}@3cÀ.@a;@sÀÀYÀB@3nÀÀ@!^ÀÀ@@J@@3 Àk @  @J @ @ @O @ @ À= Àk À  ; ^ @ À @ )E^@xÀ@@@€W€$€p€.ÀY@ ;Àk@@5iÀ@ ÀB{@ÀÀ&^ÀÀ@@JÀÀ@8u)c@R @8 p @ À @O @! ÀT @ À  E p @ À @ Àf @ @ @.@JÀfÀ@À)€f€3 5^@ÀBpÀ;pÀG@@À+ÀfÀÀ@OÀ@{@.iÀ@@W@ À= @x À  ÀT @ @ À& ÀY À À @ @J u @  E Àk @ @ À À@3@OÀk@@@À €8v€€B€€À=ÀfÀÀÀG@x@@ÀBuÀ@À@O@@3ÀkÀ@@W@ EÀÀ@5pÀÀ@!@\ E À} # @\ . @a À @ @! @O { # @J p À @ @ À@8ÀTp@@@@@À €G€ R€€@EnÀ@@!@O@JÀ}@W@@8@s#^ÀÀ@LÀ;@x@)c @J À @ À+ @a @3 Àf @ @ À& ÀT À À À ) R u @ @ À@!À=@\u@ÀÀÀ@ÀW€€€a#Lu@)W@À@@OÀ&^À@{@)c@R@@ÀBÀ}@@0iÀ R @ À 0 Àf @  ; Àk @ . @\ @  0 W À} @ À À&E@a{ÀÀÀÀ@@)€f€)€p€€À+ÀTÀ}ÀÀ0^@#W.c@À G0ÀkÀ@ÀYÀ G5pÀÀ W @ @8 n À @ @s À  @3 @a @ 5 @\ À À @ À À+@JÀfÀ@@@@ÀÀ@!À8v€8€@ @3@\@5Àf@À+^À@3Àk@ÀLÀÀ5@s#@a@À@O@ÀÀ=@xÀÀ& ^ @  À= @s  G @x À @ @ ; i À À À ; c @ @ @3@OÀk@@@@@ À)ÀG€€G€;@a@À=n@@3ÀfÀ@;@s@@ÀT@ÀÀ=@x@À+Àf@ÀÀTÀBÀ}@@À+ c À E { À L @  @ n À À ÀB i @ @ @ À@8ÀT@sÀÀÀÀ@.W€€W€€€@iÀÀE@sÀ@8n@ ÀB@x@!@\À@@ E0n@!@\À@@JÀ@@3 Àk @ À @J À  R @  E @s @  G n À @ @ À À=@\@xÀÀÀÀ#@3Àf€€$€f@!GpÀL{À@ @@s@@J@)@a@@@JÀÀ@8@sÀÀ&cÀÀ@O@ @8 p À @ À R À À& ÀY À  L { À À À& L u À @ À#ÀB@aÀ}À@@@À)@8v€3v€€)@O@x@@À&ÀTÀ@ÀG{À@O@0i@RÀ@{@.i@@W@ @ @x @! W À @ À+ ^ À @ # R À À À+ ÀT { @ @ )@JÀfÀ@@À@0À=€€=@ 0WÀ.ÀY@@À@@OÀÀ@!W@À5pÀYÀ@@ EÀÀ@@3pÀÀ@!@\ E À} À& ^ À @ À @3 Àf @ ) ÀY @  0 ÀY À @ @0@On@ÀÀÀÀÀ&5ÀBÀ€M€@8^@@3@a#ÀT@À@)^ÀÀ=uÀ#^ÀÀLÀ;u@)c L À . c À @  @8 Àk @ 0 ^ @ @ @8 ^ À @ @ À5ÀT@s@À@ÀÀ+;@J€\€€@Àf@@@;i@)@\@@.c@À EÀ}@À+Àf@@R@@ÀBÀ}@@.iÀ R @ À @3 i @ @ À= @s  5 c À À À= Àf @ @ @;ÀY@xÀ@@ 0@@O€)€k@!EnÀÀÀBp@0c@5ÀkÀ@JÀ@@3nÀYÀ GÀ5pÀÀ ÀY @ À ; p À @  E @x À @ À= Àk À À ÀB Àk @ @ @!ÀB@aÀ}À@ÀÀ#5EÀTÀ€8{€€)Lu@@@J@xÀ@8ÀkÀ=@s@ÀR@À@8@s#@a@@O@;uÀÀ& ^ @  @ u @  @J À} @  ÀB p @ @! @J p À À @ À&GÀf@ÀÀÀÀ+;LÀY €G@ .ÀT{@#RÀ}@ @pÀ ÀB{@!ÀY@@{À+Àf@ÀÀTÀBÀ}@@À+ Àf @ E À} @ @ R À G @x À À& @O @x @ .LÀk@ÀÀ@0ÀBR^À€W€5@\ÀÀÀÀ+W@ÀE@xÀ@À@J@À&^À G@3n@!@\ GÀÀ@@3 Àk @ À L À @ # W @ À  @O À} À À À+ W À} @ @3R@s@À@ @!5GWÀfÀ)€f€€À=c@@@@3^À@L@À@RÀ.ÀfÀLÀÀ@8@sÀÀ&@aÀÀ@O@ @8 @s À @ R @ ) ^ À À& ÀT À @  @3 @\ À À @ @ @8ÀY@xÀÀÀÀ);L@\Àk€8v€@!EÀk @8ÀfÀÀ@#ÀT#W@À5nÀÀÀT@@@{.i@W@ @ @x @! ÀY @ 0 c @ À+ @\ @ @ @8 @a @ @À=^À}@@ÀÀÀ.@R@ap €G€)L@sÀÀÀÀ@n@@@)@\)^ÀÀ;@sÀ@!ÀYÀ@@ EÀÀ@@3pÀÀ@!@\ E @ ) ^ À 5 Àk @ 0 @a @ À À @ i @ @ #EcÀ@À@3GWiuÀW€ .ÀT@x@@Gu@0@aÀ0Àf@@ ÀB{@À&@a@LÀ;uÀ)c L À . Àf @  À= p  @8 Àf À À À E n À À @ )@JÀk@ÀÀ@#@8L^n{)€f€€5@\À@@#@O{@8i@@À@8ÀkÀGÀ@.i@@ÀT@@@À}@@.iÀ R À 5 Àk À @ ÀB u @ À= n @ @ @! @J @s @ À .@Op@ÀÀÀ+@Rc@sÀÀ8v€@À=@aÀ+WÀ@@pÀ@ À=@s@@O5nÀYÀ GÀÀ5pÀ ÀY @ À ; @s À @J À} @ À E @s @ @ À& R { @ 5WuÀ@@ÀÀ0EWi@xÀG€@!Ei@0@\@@ÀÀE@x@@E{ÀW@À;uÀÀ&@a@@O@;uÀÀ& ^ À @ ÀB @x À @ @O À À @J { À À . W @ @ ;@\À}@@À5@J^nÀ}W€)LpÀÀ@@8c@LLÀ@À&^@ÀBÀ}@@.iÀÀTÀBÀ}@@À+ Àf À  G À @! W @ À @! R @  @3 ^ À @@aÀ@ÀÀ@À&;@OcuÀf€@0ÀT@x@ÀkÀ@#ÀT@ÀÀT.c@@@JÀÀ@@3nÀ@!@\@@J@@3 n À  @O À @ ) @\ @ À À& W @ @ ; c @ À #GiÀ@ÀÀ+ÀBWi{@v€@8@\À@@G@sÀ+@\@À&ÀY@À@3Àk@@O@;uÀÀ&cÀÀ@O@ ; @s À À  ÀT À @ . c @ . ^ À @ i @ )Ln@@ÀÀ0G@\n@€@cÀÀ#@O{ÀÀÀ@3@aÀ@À+@aÀ;@sÀ@W@@{@@.i@W @ { @ À # @\ @ 5 i @ @ À @3 c À À E p À À 0R@sÀ@@À@8L@a@sÀÀÀ&Gi@@ÀÀÀ+ÀT@@ @8iÀ@3i@À@ @@xÀ#@\ GÀÀ@@3pÀÀ@!@\ G @ @ À+ @a À @  ; p  ; i À @! L u 5ÀY{À@@ À&À=RÀf{@@À À+@OpÀ@@ @3@\@@@p@À;nÀG@À+cÀL@;u)cÀ L @ 0 i ÀB u @ @ @ p À& R { @ ;^@À@@À+ÀBÀYn@€€@3ÀT@x@À@;c@G@xÀ @uÀ@@O@0ÀkÀÀT@@ÀBÀ}@@.iÀ ÀT @8 n À @  G À} À E u À À . W À À @ ÀBcÀ@À0G^@sÀ@À@;@\@@ÀkÀLÀ}@ÀGÀ}ÀÀTÀ@8pÀÀ@!@\ GÀÀ5pÀÀ ÀY À  À= u À À L À @ L À} À À  @3 ^ À #GÀkÀ@À5@Oc@x@@À€@!ÀBcÀ@G@s@@À&ÀT@@OÀ@#@\ÀÀ=@x@ÀÀ&@a@À@O@;uÀÀ& @a À E { @  ÀT À @! R À @ @ @8 c @ )Lp@@ #À=ÀTiÀ}@@ )@JÀk@ÀÀ&@O@xÀÀ+@\À@!ÀT@À+cÀ EÀ}@@.iÀÀT@ÀBÀ}@@À+ Àf @ À  @J À @ À& ÀY @ À À& ÀY @ À À @ Àk À À @ 0ÀTu@@@)ÀBÀYp@À0R@sÀ@.WÀ@3c)@\@3i@ÀL@3n@!@\ GÀÀ@@3 n À À R À+ @a À . ^ @ À À À E p À À À 5ÀYÀ}À@@À0G^u@@À@€@8W{@À @3@\@ ;iÀ@À0cÀ@8p@ÀR;uÀÀ&@aÀÀ@O@ @8 @s À  W @ À @3 Àf @ @ À @3 Àf À @  L u @ @ ;^ÀÀ@@5@OÀf{@@@ÀÀ@!@^À;c@@À@p@À5iÀ@ @@xÀÀYÀB{@@.iÀÀT@@ @ { @ À À& @\ À À @8 n @ À  ; Àk @ @ @ À& R À} À @ @ÀBÀf@@!;ÀTÀkÀ@@ )GÀfÀ@@ÀÀBÀkÀÀÀG@xÀÀ@ À=pÀÀ@GÀ}À&^ÀÀ GÀÀ@@3nÀÀ@!@\ E @ À+ c @  @ @s @ @ @ p @ À+ W À À À À #GÀk@@@ À&@ÀYp@@@0Ln@@!@J@s@@@!@OÀ}E@xÀ@L@.ÀfÀÀ@O@;uÀÀ&@a@ L @ @3 i @ À @ E { @ À G @x  @3 ^ @ @ @ À)@O@sÀÀ@À+G^@x@@À@À5ÀTu@@À)@O@x@À&WÀ@JÀ}@ÀT@À@3nÀ@ÀÀT@@@À}@@.iÀ ÀT @8 p À @J @ L À} @ @ @8 c @ @ @ @ .ÀT@xÀ@@3LÀfÀ}À@@ÀÀ@!À=@\À}@ 0WÀÀ.@\R@#ÀY@À;@sÀ@!@\ GÀÀ@@3pÀ ÀY À  @ u À @ R @! ÀT @  À= Àk À @5ÀYÀ}@À@@@8RÀkÀÀÀ@)EcÀÀ@5^@5cÀ@À&ÀYÀ+@aÀ@@{@)@a@@O@;uÀÀ& @a À À E À} À @! W À À& ÀY @  E p @ À;@aÀÀ#À=ÀYp@À@0LÀk@À@@À=Àf@@@À=ÀkÀ@À+^0i@G@.iÀÀT@@ÀBÀ}@@À+ Àf @ À  L À @ ) ^ À . ^  @J u @ @ @ @ÀBÀf@À )E^@x@@@@À@5ÀT@s@À@EÀkÀÀBp@@À@3ÀfÀÀ@8nÀÀ@O5p@!@\ GÀÀ@@3 n À @ À R @ À @ . c À À @3 Àf # R À} @!GÀk@@À@.@JcÀ}ÀÀ@ÀÀ=ÀY@xÀ@À&L@s@@@J@xÀ;n@À@ @uÀ@ÀT@À;uÀÀ&@a@À@O@ @8 @s À  W @ 5 Àk À  ; Àk @ À À+ W À À&L@s@À@5@OÀkÀÀÀE@a@À+R{@#R@@@sÀ@@EÀ}@À#@\À@ÀBÀ}@@.iÀÀT@@ @ { @ À& ^ @  ; p À À @ @s À À 0 @\ @ @ .ÀT@x@À;Wp@@@À@ LiÀÀ@@3ÀYÀÀÀ+WG{@LÀ)@a@À@GÀÀ@@3n@!@\ E @ À+ c @ À ÀB @x À @ À G @x À  5 c @ @3ÀYÀ}@À#@@\u@À@@@À@ÀTp@@À;@aÀ0^À@@OÀT@@0i@@À@O@;uÀÀ&@a@ L @3 Àk @  G À} @ À À L @ À= i À ;^@À@ )G@a{ÀÀÀÀ@À@\@xÀBi@@;ÀfÀ@À&W@ÀÀ&@\@@8pÀWÀBÀ}@@.ÀkÀ@À ÀT @ À ; @s À À R # ÀT @  E p ÀÀBÀf@0LiÀ@@@@@cÀ#@JpÀ@n@@À+^@À@.cÀ@@@xÀ#^ÀÀ@@J5pÀÀ@! @\ À @  ÀB { @ @! W À ) @\ À @ @J @x @ @ @!Gn@À@8ÀTp@@@@@À@!iÀÀÀ+R@x@GuÀ@3c@@3i E@À+cÀÀ@O@À=@x@À& @a @ @ G @ À& @\ 0 @a À # R À} À À À&L@sÀÀ=ÀYu@À@ À)p@À@@3WÀ}À@@#@O{À;Àk;pÀ@ÀLÀ@0ÀkÀ@@WÀBÀ}@@. i @ @ À @O . c À @ À 5 i À @ ) W @ À+ÀT{À#ÀB^{ÀÀ@!.@xÀ@@;^ÀÀ)WÀ@@@s @u@ÀTÀ@8@sÀÀ@!@\@@J5 n @ ÀT À @3 i À  ; n @ 0 ^ @ @ @ @3ÀYÀ@ À+@JÀfÀ@@@@@À&@3@À@Àf@@0@\@@ÀG@xÀGÀ}@À@!ÀY@@x@)cÀÀ@O@ ; u @! @\ À À ; p À @ @ ÀB u À  5 c À À @8@aÀ@0@OÀk@@À @À+@8À@À#Gn @8c@À@L@ÀÀ@O)@aÀ E@.i@@W ÀB { ) @a À @ @ u À @ À G { À= Àk À @ÀfÀ5ÀT@sÀÀ#@3@À@ À+@O@sÀÀÀÀ=Àk@#ÀT@À@!ÀT@@.ÀfÀL5pÀÀ@!@\ G À À 0 i @ À @ G À} @ À @ @O À @ À ÀB p @ @ @ @EÀk@ÀÀÀ=@\@xÀ@)@8EÀ@@@3W{@ÀEpÀ+@\@À&@\À5nÀÀRÀ;@x@)cÀÀ @O À À 5 n À  L À @ @! ÀT À À @J u @ #L@sÀÀ@À#ÀB@aÀ}À@@@ .À=@J@@@8@\À@@@!L@xÀ0@aÀ.@a@À=uÀÀYÀBÀ}@@.iÀ ÀT @ @ À À= u À @ ÀT @ @ ) @\ @ @! @O À} À )R@xÀÀ)@JÀf@À#5ÀBRÀ@cÀ)RÀÀ@8iÀ@3iÀ ÀB{@ÀÀ&^ÀÀ@@J5pÀÀ@! @\ À @ @ ÀB { @ À # ÀY @ . @a À À& ÀT À @ 0W@@0@On@ÀÀ);@JWÀÀ&GÀk@@.ÀY@@@@p@À;pÀ@@JÀ@À+Àf@ÀÀ@O@;uÀÀ& @a @ @ @J À @ ) @a 5 i À À . @\ @ @ 5^À@@À5ÀT@s@À@@ @0@@O@\@À À+@O@sÀ 5@a@ÀEuÀ ÀBuÀ@À@O@3ÀkÀ@@WÀBÀ}@@. i @  @O @ 0 Àf @  ; n @ À @3 @a @ À ;c@@@;@\@x@@#5EÀT@a@À@@3ÀT@xÀÀÀÀ=ÀfÀ@LÀ}@ÀGÀ}@W@;@sÀ@!@\ GÀÀ@@3 n @ W @ 5 n À ÀB u À À @ ; i À ÀÀBÀk@@@!ÀB@a@@À);L@\i@À;@\@ÀÀBnÀ#ÀT@@OÀ@À&^À@{@)cÀÀ@O@ ; u # @\ À  À= @s À G { @ @ n @ @ GpÀ@À&GÀf@À@.ÀBR@an@!@cÀ@@!@Ju@À+ÀY@@!ÀT@À+c@À G.iÀÀT @ { ) c @ À ÀB { À À @O À @ À  E u @ À&@OuÀ .@OnÀ@ @!5GWÀf@sÀÀ&GÀk@À)R{ÀÀÀ0@aÀ)@\À@3Àk@ÀL5pÀÀ@!@\ G À À 0 i @ À  @J À @! ÀT À @ L { À À+ÀTÀ}@@3ÀT@s@À&;L^Àk{À@.@OpÀ@.WÀ@@8Àf@.cÀ;p@ÀÀTÀÀ=uÀÀ&cÀÀ @O À À 5 p @ À @O À @ À& @\ @ @ # R À @ 0@\ÀÀ@;ÀY{@@À.@ÀTc@s@@5W@x@À 5^@@@À=n@À5iÀ@ @@x@!ÀYÀÀBÀ}@@.iÀ ÀT @ @ À À= u À  W À @ . @a À @ ) ÀY @ @8@a@@@aÀ@3GÀYi@x@À=@\@ÀÀ=Àf@EuÀ@ À=pÀ@GÀ})@aÀÀ@@JÀ5pÀÀ@! @\ À @ @ ÀB À} À& @\ À @ @3 i @ 0 ^ @ ÀÀ=Àf@@#EÀf@ #@8L^pÀ}#ÀBc@ÀÀBÀkÀ@L{À@ÀBuÀ@LÀ.Àf@@À@O@;uÀÀ& @a @ @ @J À @ À+ c À @  ; n @ À  5 Àf À À ÀEnÀÀ+Ln@À)@Rcu À+@JÀkÀ@!@J@s@#RÀ@@JÀ}@ÀÀTÀ5nÀ@@WÀBÀ}@@. i @ @  @O @ À @3 i @ @ u À À= Àk À @!@J@s@À 0R@sÀÀ0EÀYÀk{@@À@3RpÀ@À)R{@ÀÀ+ÀY@À@@O@#ÀY@À;u@!@\ GÀÀ@@3 n @ W @ @8 p À @  G { @  ÀB @s @ @ À&R{@@À5ÀY@xÀ5@J^pÀ@@@@8W@xÀÀ@.WÀÀ0^@#W@À+@aÀ@@ ÀB{)cÀÀ@O@ ; u # @\ @  @ u À L À À À @J @x À À À.W@ÀÀ=^ÀÀ@ À&À=Rcu@!À=^À}ÀÀ @3@\@5cÀ)@\@À@.Àf@À E@@À+Àf@@RÀ À= @x @ À& @a À @ ÀB { À @ R @ À @ L À} À À 0@\ÀÀBcÀ@À+ÀBWÀkÀ}@@ À&EcÀ@À;c@@À=ÀkÀ@À.@aÀ@5Àk@ÀL@@3nÀYÀ@@ E @ . Àf @ À  @J @ # W # ÀT À @ @8@a@@À#Gi@À0G@\pÀ@.LÀk@ÀÀBiÀÀÀBp@À5i@@;@s@ÀR;@s#^ÀÀ@ @J @3 n À  @O À @ ) ^ @ ) ÀY @ @ À À=i@À+Lp@5LcuÀÀÀ5R@s@@!GpÀ@@J@x@ ;n@ ÀB@x@!ÀY@{À+Àf@@ R ; @s À  W 0 c À À 0 @a @ À ÀEnÀ 0ÀTuÀ@ #À=ÀTiÀ}@@!À=ÀY@xÀÀ)@O@x@@#@O@ÀBuGÀ&^À G0ÀkÀ@@ W  @ { @ À # @\ À @ 5 Àk  5 Àf @ @Ju@8ÀYÀ}@ÀÀ+ÀBÀYnÀÀ@À&ÀB@aÀ@ .ÀTÀ}ÀÀ)WÀG{À@OÀ.ÀfÀLÀÀ@8@s# ^ À À G @ À+ c À  À= p À À @ À= n @ @ @ À&R{@ÀÀ=@aÀÀÀ0@J^uÀÀ@.@JÀfÀÀ@5@\À0^À@@OÀÀWÀ@3ÀkÀÀÀTÀÀ=@x@) c À À L @ 0 i @ ÀB @x À  ÀB @s À+WÀÀ@ÀBÀfÀÀ5@OÀf{@@5Rn@@À=c@@@ 5cÀ@#WÀÀ&@\@À;@sÀÀÀYÀ@@ E0 Àk À @ À ÀT @8 p À À @J À} @  @J { @3^ÀÀ&@Jn@@À#À=ÀTÀkÀÀ;WuÀ@@@ÀBiÀÀ=ÀkÀ@À+@\@À@.cÀ@@@x@ÀÀ&@aÀÀ@@J5 p À À @! ÀY À  À= u À @O @ À  @O @8c@À+@O@sÀÀ@@)ÀB@\pÀÀÀ@ÀB^{À@#@JpÀÀÀÀBp@0c@À@3i@G@@À+Àf@@RÀ À= @x @ À& @a À À E À} @ À @! W @ # W À=iÀÀÀ 0W@x@À@À0@J@a@x@@À@JÀfÀ@ÀÀ+@O@x@@J@xÀÀ@8i@@;pÀÀL@@3nÀ@@W ÀB À} @ @ . Àf @ À  @J À À& @\ @ À+ @\ À À ÀEpÀÀÀ@8@\@À@À@5@OÀfÀ}À@@OÀk@ 0WÀ}À@@#RÀ}@ À=p@ @u@ÀT@8@s#^ÀÀ@ @J @3 n À @ À R @ @ . c @ À 0 @a À @Ju@@@ÀÀ=cÀÀ@!;ÀTnÀÀÀ@@W@s@@À@8^ÀÀÀ+W@Eu@GÀ}@À@!ÀYÀ@{@)cÀÀ @O @ ; @s À  W @ À @3 i  @8 i À @ #RÀ}À@@Ei@ À&ÀB@\@s@@À^@x@À@c@@@0^@À@JÀ}LÀ)@aÀ E0ÀkÀ@@ W  @ { @ À& ^  ; p @ À= n @ À À+WÀÀÀ&@Jn@À@.G@a{@@@ÀcÀ@À@!EÀk@ @8c@!RÀÀT@@.Àf@ÀLÀ5pÀÀ@! @\ G @ À+ c @ À @ @ u À  E u À À 0^@@@À+RuÀ@@3@OiÀÀ@@ÀkÀ)LpÀ@ÀkÀÀ&W@À#ÀY@À5nÀÀRÀÀ=@x@) c À À L @3 Àk À  G À}  @J { À @ @ @8c@@ 0W{@@@8ÀTn@ÀÀ@sÀ@ .R@xÀEpÀ.^@ÀÀ+@a;@sÀÀYÀ@ÀBÀ}@@. i À ÀT @8 p @  L À @ À  R À @ @ À=Àk@8^ÀÀ#@ÀY@s@@@@À@xÀ5ÀYÀ@!L@xÀÀÀ@3c@À0Àf@À@ ÀB{@ÀÀ&@aÀÀ@@J5 p À À @! ÀY À  @ @x À  ÀT @ À # W @ Ep@À=cÀ )E@a{À@@ @@@À;@aÀÀÀÀ&RÀÀ@ ;Àk@@@8nÀG@À+Àf@@À@O@ ; u À À& @a À À E À} # ÀY @ @ À+ ^ @ @J@xEi@@0LÀfÀ@À@ÀÀBÀf@ÀÀ.ÀY@@@@p@ @@s@@O@@3nÀ@@W ÀB À} @ @ . Àf @ À À L À @ À+ @a @ À 0 c À #RÀ}ÀÀ#@JpÀ@À@À5Rn@@À ÀÀ&@Jn@@@ @3^@ÀG@xÀ@E{ÀÀT@8@s@!@\ G À À @ @3 n À @ À R @ À 0 Àf @  @8 i @ )WÀÀÀ+RuÀÀÀ=ÀY@s@À@!ÀÀ@ .@O@sÀÀ;Àf@LL#@\À@{@)cÀÀ @O @ ; @s À @! ÀY @ @8 n @ À= p @ À0^@0WÀ}@À#ÀB^@xÀÀ@ ÀÀ&ÀÀ@@3W{ÀBÀkÀ#ÀT@RÀ@À+c@À E.iÀ ÀT @ @  @ { @ À& ^ @  À= @s  E u À 5cÀ@5^ÀÀ@À À+GcÀ@À+@ÀÀ@À;@\ÀG@sÀ+ÀYÀ#ÀYÀ0i@ÀL5pÀÀ@! @\ G @ . Àf E {  @J À} @À=ÀkÀÀÀÀ=c@@@0@OÀk@À&@3@@!ÀBÀf@ÀÀÀ&R{À@3cÀ.@aÀ;@sÀ@W@@@{À+ Àf @ @  @O @ À @8 p  L À @ @! ÀT @ E@s@EÀkÀ@8W@sÀÀÀ @À+@8)@JÀk@@.WÀ@@ ;Àk@@3iÀ@ @@x#@\@ E0 Àk À @ @ W @  À= u À  ÀT @ @ À& ÀY À L{À#L@s@!@@\@xÀÀÀÀ#0À=@.@O@sÀ@ @3^@@p@À;nÀ@G@)c@LÀÀ@8 @s # @\ @ E À} # ÀY @ . @a À #RÀÀÀ+R@xÀÀ&EcÀ@@@À)@8EÀÀÀ5W@xÀ;c@G@xÀ @uÀ@@OÀ@0iRÀ À= @x @ ) c  @J À @ À+ @a 5 Àf À @ À+ÀY@0ÀYÀ .Li@@À@0À=@JÀ@;@\@@ÀkÀLÀ}@ÀG{À@ÀTÀ5pÀYÀ@@ E 0 i  R @ À 0 Àf  ; n @ À0^@@@8^À@@3Rp@ÀÀÀÀ&5ER@ÀÀ@!ÀBcÀ@Gp@@#ÀTÀÀLÀ@#@\@À=uÀ#^ÀÀ@ @J 5 p À  W @ @8 n À ÀB @s À @8ÀfÀÀÀÀ=ÀfÀ@À@8WuÀ@@ÀÀ+;@JW@ )@JÀkÀ#L@x@ÀÀ+ÀY@@!ÀTÀ@À+@aÀ@ ÀBÀ}À+Àf@@ R À À= @x À # ^ @  À= u À À G { @À=ÀkÀ@EÀk@@À@^{@@ @!@3ÀB@O@\@0@OpÀ@@ÀÀ+ÀTÀ}À0@aÀ@À&ÀY@0i@JÀÀ@0ÀkÀ@@ W  ÀB À} @ À+ c @ À E { À À @O À @ ÀE@s@@@!@J@sÀÀ@À&EcÀ@ÀÀ&@8GWc5W@xÀÀ@ @3@\@@ @8Àf.@aÀ@@8nÀ@O@ÀÀ@8@s# ^ À À @ @J À @ 0 Àk @ À @J À @ À @! ÀT À @@J@xÀÀ)R@x@ À+LÀkÀ.@@O@\iÀÀ=@\À}@@8@a@@À=n@@3Àf@À=uÀW@@@@x@) c À À @O @ À @8 p @ À R À @ ) @\ @ @ @!RÀ.WÀ@@3Rp@À @!@3EÀTcpÀ#ÀBcÀ@@iÀE@sÀ;n@ E{@À#@\@@ E0 Àk À @ @ W @  À= @x @! W @ . @a À @ )W@@ 5^À@8ÀY@xÀÀÀ&;@J@\iu@@À+@Ji@@EnÀÀ@@J{À@ @@sÀ@JÀ@À+c@L5 p À À @! @\ E À} @ À& ^ À @ 5 i @ .^À;c@@^À}@@ÀÀÀ.@R@an{@À@3RpÀÀ#Lu@#R@ÀG{ÀR@0iRÀ À= @x @ ) c  L À . c @  ; n @ À 5cÀÀBÀk@À#EÀf@À@3EWÀfuÀ@@8W@xÀÀ+R{À@À)W@ÀLÀÀ@!W@À@8pÀY ÀB À} 0 i À R @ À @3 Àk @ ÀB u À À=ÀkÀ@GpÀÀ+LÀk@@@#@8L^n{@!@^À}ÀÀ@ 0ÀYÀÀÀ0^À@!ÀTÀ&^ÀÀ=uÀ#^ÀÀ@ @J 5 p À À  ÀY @ À ; p À G { @ ÀB@s@#@O@xÀ@0R@s@ÀÀÀ+@Rc@sÀ@ )EcÀÀ@8^@@ 5ÀfÀÀ&ÀY@À@.c@@ EÀ}À+ÀfÀÀ @O À À= u À À& ^ @ @ @x À @O À À À@J@xÀÀÀ+ÀTÀ}ÀÀ@8ÀY@xÀ@0EÀYÀk{ÀÀ0LÀk@À@@À=Àf@@@À=ÀkÀ@.@aÀÀ@3Àk@À@JÀÀ@0ÀkÀ@@ W  ÀB À} @ @ À+ Àf @ G À @! ÀT @OÀ0@\À@@À=^@ @!@8L^p@ÀÀ5Rp@À@EÀkÀÀÀB@s@À@3Àf@@;pR@ÀÀ@8@sÀÀ@! ^ À À @ @J À @ @3 Àk À  @O À& @\ @ À À&W@@ @8@a@@ÀÀ@!EÀfÀ@)À=RÀfuÀ@@!À=ÀY@x@@#@J@s@@@J@xÀ;n@À@ @@xÀW@@À=@x@) c À À @O @ @8 @s À @ ÀT À @ . @a À+@\ÀÀ@i@)@JÀkÀÀ.EÀYÀkÀ}ÀÀ)ÀB@aÀ}@À+R@x@@#@O@@@sÀ@GÀ}À#^@@ E@0 Àk À @ @ W @  @ @x @ À # @\ @ @3 i @ @ À@3cÀEnÀ@ .R@s@À5@J^@sÀ@.@JÀf 0WÀ)W@ÀG{@L@À+c@@J5 p À À @! @\ E @ ) @a À @  ; n @8iÀ@!LuÀ5W@xÀ@À@ #;RÀf@x@ÀÀ@5@OnÀ@8^À0@\À@L@ÀT@À@0Àk@RÀ À= @x @ ) c  L @ 0 i @ u @ @@pÀ&RÀ}@;^À@@À+ÀBWÀkÀ}@;W@sÀÀ=c@ 5c@!ÀT#ÀY@8pW ÀB À} @ @ . i À R À 5 n À @  G À} ÀGuÀÀÀ.ÀYÀÀ@ÀBcÀ@À0G^@sÀ@ÀB@\{À@ÀEÀkÀÀ=iÀ@)ÀYÀ+@a@À=@x#^ÀÀ@ @J 5 p À À  ÀY  À= u À À @O À @LÀ}À@@3^@@À#GÀkÀ@À5@Oc@x@@ÀGcÀ#@JpÀÀÀBn@À.^.c@@ ÀB{)@a@ L À À @8 @s # ^ @ @ ÀB @x À  R @!RÀ @8c)Lp@#;ÀTiÀ}@@LiÀ+@Ou@GuÀ@3ÀfÀ5Àk@À@JÀ.iÀ ÀT @ @  @ { À+ c @ G @ # ÀY À À&W@ÀÀ@ÀkÀÀ@ 0ÀTu@@@)ÀBÀYp@ÀTpÀ@À 0WÀ}@@!@O{À@ ;Àk;p@OÀ5n ÀY À @ @ E 0 Àk  @O À À+ ^ À .^@ÀÀÀEp@ÀÀ5ÀYÀ}À@À0G@au@@ÀÀYu@À@8@\ÀÀÀÀ)ÀTÀ@@@sÀ ÀB@xÀW@À;uÀÀ& @a @  L À À @8 p À @ ÀT 0 Àf À @ À@3cÀ@@!L@x@@À=@aÀ@5@OÀfÀ}@aÀ}À@@ÀÀ=c@À.@\ÀÀG@xÀÀGÀ}À#@\À@ÀB{À+ Àf @ @  ÀT @ À À= @x À # @\ À @ À @8 n @ À ;Àk@@À&RÀ}@ÀBÀf@À@@!À=ÀTnÀ@ÀiÀÀ@!Ei@@@@ 5@a@ÀÀ@LÀÀ@O@)c@À@GÀÀ@@3 n  ÀY À @ @ E À} @ ) @a À  À= @s @ @@@s@.ÀYÀ#@Jn@ )ÀB@\@s@@Àn@ÀÀ&@JpÀÀ;iÀÀ@@!ÀT@ÀÀT@À@0i@@À@OÀÀ@8 @s # @a @ À @ @J À @ 0 i @ @ E { @ ÀG@xÀ@3@a@À+@O@s@À.@J@a@x@u@À@À .Ru@ÀBn@@@)ÀYÀÀ&@\5n@@ÀT@@ @ { À+ Àf @ @  R @ À 5 n À À @J @L ;Àf @3W{@ÀÀÀ5@OiÀ@À@{@@3WÀ}@@@G@s@@.^@À+@a@À=uÀ@!@\À@@ E @3 n @ W @  À= u @ R @!ÀTÀÀ@nÀÀ@8^ÀÀ@!;Wn@ÀÀÀÀ@@@À;^À#@O{5Àf@À@3iÀ ÀB{À&@a@ L À À @8 @s # ^ @ E À} @ À @! W À )@\ÀÀÀG@sÀ@cÀ@À@ À&ÀB@\u@@À@À@c@)ÀT@@ ;Àk@8nÀ@JÀ@.i@@ R À @ { ) c  @J À @ ) ^ À À .@aÀ@@!@O{À@@EÀk@@.Gc{À@@À@ @#GÀk@0@\@ÀB@s@ @uÀ@À@OÀ@3n ÀY À @ @ E 0 Àk  R @ @ . Àf À @ À5iÀ@@À&ÀTÀÀÀÀ&LpÀ@À@@3@OiÀÀÀÀ@ÀÀ@ À+LpÀ 5@aG@xÀE{ÀW@;u# ^ À À @ L À À @8 p À À  W @ 5 Àk @ À @ À=n@.@\@@À+R@x@À@;Wp@@À@ @0ÀT@x@ÀÀÀ=iÀ@OL@#@\À@@{À+ Àf @ @  R À À= @x @ À # ^ @  À= @s À @ @ÀBuÀ5@a@@ @3ÀYÀ}@À#@@\u@À@@À@@ÀÀ@@8ÀYÀ}@ÀÀBnÀ#ÀT@ÀRÀ@À+c@À GÀ0 Àk À @ @ ÀY À @ @ E À} @ @ À+ c @ À ÀB @x @J{ ;iÀ@8^@À )GcÀ}ÀÀ@ #ÀÀÀ=@a@@@Ju@À+@\À#ÀYÀ0i@ÀÀLÀÀ@8 @s # ^ À À @ @J @ @3 Àk @  @J @@OÀ@ÀÀBn@À@Àf@@0LiÀ@@@@)@À#EÀf@ÀÀ&@O{ÀÀÀ0@aÀ+^À@@8p@ÀÀT@À À= @x @ À+ Àf @ @  R @ @8 p @ À @O #WÀÀGu@GÀk@À@8ÀTp@@@#0@À@ À+@Jn@ÀÀ+WÀ@8ÀfÀ@À0ÀfÀ@À=uÀ@!ÀYÀ@@ E 0 Àk À @ @ W  @ @x  W À À+@\@@!@O{ÀÀ&L@sÀ=ÀYu@À @À+5@0R@sÀ@@ @3@\@@@À=nÀ@8Àk@ EÀ}À&@aÀÀ@ @J @8 @s # ^ À E À} À& @\ À 0c@À&ÀTÀÀÀÀ+ÀT{ÀÀ&E@aÀ}@ÀÀ#0À=À@@5W{À@@8cÀÀE@s@ À=pÀ@À@JÀ@.Àf@@ R À À= @x @ ) c À  L À . c À @ À@8Àk@À.@\@@@ @3ÀYÀ@À À+@JÀfÀ@@ À)@8ÀBÀ=^@iÀ@@J{À@@ÀB@xÀR@À@3nÀ@@ W  E 0 Àk À À R @3 i @ À @ À=pÀ@3c@À@8@aÀ@@@3Rn@ÀÀÀ@@!0À=@J@#ÀBcÀ@@EnÀ@@!@O@JÀ}@@!W@;@s# ^ À À @ @J 5 p À À  ÀY @ À ; p À @ E@x@ ;iÀ@Àf@@À@8Wu@ÀÀÀÀÀ&5E@OÀ À+@JÀkÀ#Lu@@À&W@@@OÀ&^À@@{@) c À À R À À= @x @ À À& ^ À @ @ @x @JÀ}@ÀBp@@@GnÀ@@@!@^{@@@ @.À=@JW@0@OpÀ@À)R{À.@\À#W@À+c@À G0 Àk À @ @ W  ÀB À} @ @ . Àf @ G À} @ R@ÀGu@#LuÀÀ&GcÀ@@@ÀÀ#@3ÀBR@\@ÀÀ5W@xÀÀ@0WÀÀ@3cÀ)@\À@3Àk@@ÀL5 p À À # ^ À À @ @J @3 n À  L #ÀY@À@OÀ}ÀÀÀ+ÀT{@ .LÀkÀÀ);@JWcÀÀÀ=@\À}À@5^@ ;iÀ@À0cÀ@8p@ÀÀTÀ À= @x @ ) c @  R ; @s À @ ÀT @ À À+^À&ÀTÀ@0ÀYÀ@3ÀTp@@@@ @0@@O@\iÀ&ÀBcÀÀ@À;c@@À@pÀ5i@ @@xÀ@!ÀYÀ ÀB À} @ @ 0 Àk À @ @ W  @ { @ À # @\ À @3ÀfÀ@À.@\@@@@8@aÀ@À;ÀY@xÀ@@#5GWcp@@À+@Ji@À@@ÀBÀkÀÀÀGuÀ@ ;pÀ@EÀ}À&@aÀÀ@ @J 5 p À # ^ À G @ À+ @a À @ @8ÀkÀ@3cÀÀÀ@Àf@ÀÀ@!@@a@@)À=L@\iuÀ@3@Op@@@!Gp@LÀ}À@ÀBuÀÀLÀ@.Àf@ÀÀ @O @ À= @x @ ) c À À L @ 0 i À @ @@sÀÀ@ ;i@EnÀ@À&GÀf@À@0ÀBÀTcpÀ}@@8Wu@@À&@O@x@@À&ÀTÀ@ÀGÀ}À@R@À@3nÀ@@ W  ÀB À} @ 0 Àk À @ À ÀT @8 n À @ E{À@@p@#Lu@ÀÀ@ .@On #@8@JÀYiuÀ@!À=@\{@.ÀTÀ}ÀÀÀ+ÀY@@@OÀÀ@!ÀY@;@sÀ@! @\ @J 5 p À À @! @\ À  À= u À @ L@ÀGuÀ)R{@@3ÀTu@ÀÀ)À=@O@apÀ}@ )EcÀ @3@\ÀÀ0^@@!ÀTÀ@)^@@{@) c À À @O @ À À= @x @ À& @a @ À E { @ ÀTÀ@OÀ}ÀÀ0ÀYÀ@;@\{ÀÀ@0EWÀfu@À.@Ji@À;@a@@@ @8ÀfÀ)@\@À@.Àf@À G@. i À W  ÀB À} @ @ . i @ À À @J À @ À&ÀY@#ÀT@ 5@a@@@aÀ@À@@ @!5@J@\nÀ}@À5Rn@À@Àf@À=Àk@@À.@aÀ@5Àk@ÀL5 p À À @! @\ À @ @J 5 n @ À R @ À+@aÀÀ+@\@@ÀÀ=Àf@@@ÀÀ&GiÀÀ@)À=RcuÀ@@!;WuÀ@!GnÀE@s@À5Àf@@;@s@ÀR ; u À À& c À À @O @ ; u @! ÀY @ À @3Àf@0@aÀEnÀÀ+@Op@@À.EWÀk{@À&ÀB^{@ÀÀ&L@s@@@J@x@ ;n@@ ÀB@x@!ÀY ÀB À} @ @ . i @ @ W  ÀB { À& ^ À@8n@À@8i@@Ju@À@@3ÀTu@À5@J^pÀÀ+GcÀ@ÀÀ+R{@#@O@@@s@GÀ}À&^ÀÀ G À À @ 5 p À À @! @\ À À G À . Àf @ À @ @u@ @pÀ&R{@;@\À}@@ #;RÀf@x@3LÀkÀÀ@@3ÀYÀ)W@ÀG{LÀ@.ÀfÀÀ @O @ ; u ) c À À @O À @3 Àk À G{@ÀEuÀÀ.WÀÀ@@@cÀÀ@ÀÀ+ÀBWÀkÀ}@À@8ÀTp@@À@8^À0@\@À@L@ÀT@À@3ÀkÀÀ ÀT @ @  ÀB À} @ @ . Àk À @ @ ÀT @ @ À ; @s À @ LÀ@LÀ}ÀÀ@3^ÀÀ#Gi@À@3@J^@sÀÀ@ÀYuÀ@ÀÀ@Àf@ 5c@!ÀT#ÀY@8@sÀÀ@! @\ G À 5 p À À @! @\ @  ÀB { ÀTÀ@!ÀTÀ@@@;Àf@@À+Lp@À@!@8@OÀf@x@@À@E@aÀ}@@À@!EÀkÀ@À=i)ÀYÀ+@a@@@x@ÀÀ& @a @  @O @ ; @x @ ) c @ @ G @ #ÀY@À)ÀY@ÀÀBÀkÀ 0ÀTu@À@ À&@WÀk@@LÀfÀ@@ÀÀ&LpÀÀÀÀBpÀ.@a0ÀfÀ E@@. i À ÀT @  ÀB À} @ @ . i @  @O À À+@a@À0@a@G@s@@8@\À}À@@À.E@\@sÀ@Rn@ÀÀ@ .R@x@GuÀ@3ÀfÀÀ@8n@ÀL@@3 n  @\ @J 5 p @ ÀT @3i@À5Àf#@O{@ÀÀ=@aÀÀ5Lc@xÀÀY@s@@@3WÀ}À@#@O{À@ ;ÀkÀÀ=@sÀ@ÀR ; u À À& @a @ À À @O @ ; u # @\ À À@8n@ À=n@À)ÀTÀ@!Ei@À@@!;ÀTÀkÀÀ^@x@@@8^ÀÀÀ)ÀTÀ@@@sÀÀ@ÀB{@!ÀY @ { À+ i À W  ÀB À} ) c @ @ @uÀBuÀÀÀ0@\ÀÀ&Lp@ )ÀBÀYpÀÀÀÀc@À@@c@À.@\ÀÀG@xÀÀ@JÀ&^À G À À @ @3 n À @! @\ À @ @J À À @ 0 i @ À @G{@J{À@@ @8c@@@.RuÀ@ÀÀ.G@a@x@@ÀÀÀk@@!EÀk@@@@ 5@a@ÀÀ@L@ÀÀ@OÀÀ+ÀfÀ L À À @8 u À À& c À À @O @ À @8 p LÀ@ÀRÀ@@À=iÀÀ@5ÀYÀ}ÀÀ5@OiÀ}ÀÀ@ÀÀ@pÀ)LpÀÀ@;ÀfÀÀ@!ÀT@À@!WÀ@3ÀkÀÀ ÀT @ @  @ { @ . i @ @ W @  À= u À ÀT@À@À&W@Ep@À;@aÀÀ@!À=WnÀ@@xÀ 0R@xÀBn@@)@\@)^ÀÀ;@sÀ@! @\ G 5 @s # ^ À À G @ À&@\.@aÀ@!L@xÀBi@ )ÀB^u@À@À}ÀÀ@À5ÀYÀ}@@Ju@0@aÀ.c@@ ÀB{@) @a @ À @O @ À À= @x À+ Àf @ À À L À .cÀÀ5ÀfÀ@@À&ÀTÀÀÀ#@JnÀ0@JcÀ}À@À;^À#@O{5ÀfÀ5Àk@@G@. i À ÀT  E 0 Àk À @ À ÀT À @3ÀkÀ;n@.ÀY@À+RuÀ@À5RÀkÀÀÀÀ@ @ÀÀÀBÀf@À+ÀTÀ@ À=n@;pÀ@O5 n À @! @\ À @ @J À À @8 @s @! ÀY À À;pÀ@@ÀBuÀ5@a@@@ @3WÀ}@ÀÀ@!À=Wp@@@@ÀÀÀÀ&GÀk@0@\ÀB@sÀÀ ÀB@x@ÀT ; u À À& @a À À R À @ { @ ) @a À @ ÀB@x@@J{ ;iÀ@8^ÀÀ@@ À&E^@xÀÀ@@@@À@À@ À+@OpÀ 5@aÀ@J{ÀÀGÀ}@À#@\À ÀB { @ . i @ @ W À @ @ E . i @ À GÀ}@@@OÀ@ÀÀBp@À@Àf@@@.@JÀfÀ@À@!@@À@@3ÀT@x@ÀÀÀ=iÀÀ@O@ÀÀ@O)@aÀÀ G À À @ @3 p À À @! ^ À À  L À 5 n @ @O#W@ÀÀ@Ju@GÀk@5RÀk@@@À&ÀÀ@@8ÀYÀ}@ÀÀBnÀ#ÀT@ÀÀT@@.i@ÀÀ @O À ; u ) c @ @  R À À= u À WÀÀ+^@À@@!@OÀ}ÀÀÀ&L@sÀÀ;ÀY@sÀÀ@!.@ÀÀ=@a@@J@s@À+@\@À&@\@À5nÀ@À ÀT @ @  @ À} @ @ 0 Àk À  ÀY À @ @ ÀB À} À&@\À0c@)W@.ÀT{À#ÀB^{ÀÀÀÀÀ @)5@À#EÀf@ÀÀÀ&@O{ÀÀÀ0@a@À+@a;@sÀ@! @\ À @ G À À 5 @s # ^ @ À @ @J À À+cÀ@@8Àk@0^@@@ @3@\ÀÀ@À À+@JÀfÀ@@@À#0;@ )@Jn@@ÀÀ+ÀTÀÀ@8iÀ@À@3Àf@À@ ÀB{@À& @a @  L @ À= @x @ À+ Àf @ @  @O @ À @3i@@ @@s5cÀ;@a@@À@3@On@@À@@ @)5ÀB@0R@s@@ 0@\@@@À=n@8nÀG@. i @ @ À ÀT @  ÀB @3 n @ W @ À;pÀ@E@xÀ@ À=ÀkÀÀÀBi@@@À@8W@s@À@!0À=GÀ@@5W@x@À@@8@a@ÀÀE@sÀ@ @@s@O@3 n  ÀY @J À À @8 @s # ^ @ @@xÀL@ÀE@s@!Gp@!@^{@À)@8E@O@À=@\ÀÀ=iÀÀ@J{ÀE{À@ÀT ; u À À& @a @ À À @O À @ { À+ c @GÀ}ÀÀT@À@@J@xÀÀÀ&@O@x@ÀÀ)GÀfÀ@@ 0À=@JW@#ÀBc@@EnÀ@@!@O@@JÀ#@\À @ { À+ Àf @ W @ @ E À @ 0 Àk @OÀ&ÀY@#RÀ.WÀ}À@.@OÀkÀÀÀÀÀ&5ER@\À )GiÀ@!@J@s@@À&W@ÀRÀ@)@aÀÀ G @ @3 n À @! ^ À À  L À À @8 @s À @ÀTÀ@.@aÀ@)ÀY@ 5^À@@À5ÀT@s@À@@@.À=LÀYcÀ0@OpÀÀ&@O{À.@\À#WÀ@0i@ÀÀ L À À @8 @s À ) c @  R @ @  @ @x @ À #@\@@3i@@0^@ÀÀ=c@@À=@\{@@@!@3ER^Àk@5ÀTu@.WÀ@3c)^5nÀÀ ÀT  @ { @ . Àk À @  ÀY À @ @ E @ @ À+cÀ@;pÀ@8ÀfÀÀÀÀBÀk@#ÀBc@À);@JÀYÀfpÀÀ;@\{ÀÀ @3@\@ @8iÀ@À0cÀ@À=uÀ ÀY À @ @ E À À @ 5 p # @a @  L @ 0i@ ÀBu@ À=n@@@!@J@sÀ)@JiÀ@0ÀBR@an@x#ÀB@aÀÀ;c@@nÀ5ÀkÀ ÀB{@ÀÀ& @a À À  L À ; @x @ À+ Àf À R @8pÀÀ@JÀ}ÀEu@ÀÀ&R{@À@0Rp@À@@#5GÀYÀf@s@ )GÀf@À@iÀEuÀ@ À=pÀ@@J@À+ Àf @ @  R @ @  ÀB À} @3 n  ÀY À @@x@@O@@L{À.W@@8ÀY@x@ÀÀÀ+À=@O^n{@À0LnÀ@EnÀÀ@L{À@@ÀBuÀ@@O@@3 n À @  ÀY À G À @8 @s À À& @a À À EÀ}À@!W@À#ÀTÀ@ 5^À@@^@@À@0EWÀfuÀÀ5ÀT@sÀÀÀ#Lu@#RÀÀGÀ}@ÀT @8 @s # ^ @ À @O @ À @ { À+ Àf @ @ ÀLÀ@)^@)ÀY@@ÀÀ=Àf@@#EÀf@ #@8@J@\n{À@!À=ÀY@xÀÀÀ+R{@À)W@@@OÀ@#@\À @ { @ À+ Àf @ À W @ @ E À À @ @3 n @ @ÀTÀ0cÀ0@aÀÀÀBnÀÀÀ+LnÀ@À)@Rc@sÀ@À#@@\À}@.ÀTÀ}ÀÀ+ÀY@ÀRÀ&^@ ÀB À} . i @ @ ÀY À G 5 p À W@À@3i@@À@3cÀÀ@GpÀÀ@ .Rp@À.ÀBWi@xÀ@)EcÀ @3@\ÀÀ@3@a@@#W.c@À@ G À À @ @3 n À À # ^ @ À @O @ À À= @x À #^ÀÀ@8n@ ;Àk@@#L@x@5W@x5@J^nÀÀÀ0Li@À;@a@@@ @8Àf@À+^À@3Àk@À @O À À ; u ) Àf @ À W  ÀB À} @ @ À+c@À@ @u@@ÀB@s@@À)ÀTÀ@ÀÀ=^ÀÀ@ À&À=RcuÀ@ÀÀ5Rp@À@Àf@À=Àk@À0cÀ;p@@ ÀT @ @  @ { @ @ 0 Àk @! @\ À À @ @J @ @3ÀkÀGÀ}G@x0@\À@!ÀBÀfÀÀ@ÀÀ+ÀBWÀkÀ}@@@!;WuÀEnÀE@s@5iÀ@ @@x@! @\ À @ @ G À À 5 @s À À& c À  R @8@s@@OÀ@À@O @8c@ÀÀ&@Jn@ÀÀ@@3@J^@sÀÀ&ÀB^{À@À&L@s@@@J@xÀ@ À=pÀ@EÀ}) @a @  L À= @x . i À @ @ W @@xÀT@@#WÀ@iÀÀ@ .R@sÀ@@ #;RÀf@x@@À.GcÀ@À+R@x@#@O@ÀBuÀÀLÀ. i @ @  ÀT @ @  ÀB @ @3 p À # ^ À À G@À&@\@À+^@ÀÀÀEp@ÀÀ5ÀY{@À@)ÀBWn@À@3LiÀ 0WÀ)WÀ@JÀ}À@R@À@3 n  ÀY À @J À ; @x @ ) Àf @ À ÀLÀ.c@3cÀ@@!L@x@@À=^ÀÀÀ0G^@sÀ@@@8ÀTpÀ@8^À.@\@À@@OÀÀ@!ÀY@ ; u # @a @ À @O @  ÀB À} 0 Àk À @ @ÀTÀ@3iÀ;Àk@)ÀT@ÀBÀf@@ÀÀ@8@OÀf{@À@@ÀYuÀ@ÀÀÀ=c@@@ 5c#ÀTÀ@)^@ @ { À+ Àf @ À W À @ G @8 @s @!@\À;pÀÀ @@sÀ.@\ÀÀ&@Jn@@@ À&@WnÀÀÀ@E^{À@ÀÀBi@;i@)@\@À@.c@À G 0 n @! @\ À  @O @ À À= @x @ )@a@À@ ÀB@x@ÀG{ÀÀ5@a@.Ru@À+E^@s@@ÀÀ@JÀfÀÀÀ#@JpÀÀBn@À.@aÀ@À5Àk@À L À À @8 @s À À& c @ @ À ÀT @ E 0i@ÀG@@@O@@À=iÀÀÀ@@3ÀYÀ}À@3Lc{@ÀÀRÀkÀÀÀ+@Ou@@GuÀ5i@@;p@À ÀT À À= { . Àk À  @\ À À @ L À À 5p@À@O#W@Ep@À;@aÀÀÀÀ;ÀTÀkÀÀÀÀWpÀ@À 0ÀT{@!L{À@ ;n@À@ @@xÀ@! ÀY À @ @ E À @ 5 p À& c @  R ÀÀ=uWÀ)@\@@J@x@ÀBÀf@ÀÀ@ À&ÀB@\@s@À@@@\@xÀ@À5@\ÀÀ&ÀT@ÀB@sÀ@GÀ}À& @a À À @ @J À ; @x @ . i À @  ÀY À @ @ EÀ}À&^À@À0c#RÀ}À#@Jn@À@.G@a{@À@@ÀcÀ}À@@ÀÀ=@aÀ.ÀYÀG{@L@. Àf @ @  R @  ÀB À} @ @3 p À # @a @ @JÀ.cÀ@@8Àk@ÀÀ+ÀYÀÀÀ+@OuÀ@À5@OiÀ@iÀÀ@ÀÀBÀf@3^À@L@@ÀT@À@3 n À @ @ W À @ G À ; u @ À+ Àf @ @ R@À@3Àk@ @@sÀ@3@a@@@ 0WÀ}ÀÀ;Wp@À n@ÀÀ@ÀÀ&GnÀ @8ÀfÀ@!ÀT#ÀY@ @8 @s # ^ À  @O @  @ À} 0 n ÀY@À;@sE@xÀ@ ;iÀ@8^ÀÀ@@ À&ÀB^@x@ÀÀ@ Àu@À@@ À+@O@sÀÀ@ÀkÀ@)ÀY@)^@ @ @x @ ) c @ @ À ÀT @ @ G À @8 @s À À&^À@ ÀB@xÀL@ÀBn@À@Àf@@@.@JÀfÀ}ÀÀÀÀ@{À@@0ÀT@xÀEpÀ.^0Àf@À E 0 Àk À  @\ À  @O @ À @ { À+Àf@À@JÀ@!ÀT@ÀGu@@Gn@5RÀk@@À@ #@@À@À5ÀYÀ@J@xÀÀ@3ÀfÀ5ÀkÀÀ L 5 p À& @a @  ÀT @ E À À @ @3nÀ@À@OÀ@)@\@@!@OÀ}ÀÀÀ&@O@sÀÀÀ=ÀY@s@@)@À@ÀÀ=@aÀÀ&RÀ}ÀÀ@ ;Àk;@s@À R À À= @x @ À+ i À @  @\ À  L ;@sÀW@.@aÀ@)W@.ÀT{@ÀÀÀ&ÀB^{ÀÀÀ@ ÀÀ&0ÀÀ@@!ÀBÀf@ÀÀÀ+WÀ@@@s ÀB@xÀ ÀY  ÀB À} @3 n À À& @a @  ÀT @ @ @{À&^À5i@@.^@@ 5@\ÀÀ@ .@JÀfÀ@@@À@!.@8@ÀÀ&GÀk@0@\@@ÀÀE@xÀGÀ}À& ^ À À @ @J À @8 u @ À+ i À @  ÀY GÀ.Àf@À=pÀ5cÀÀ=c@@À@3Rn@@@@@ À)@3@@@À@ À+LpÀ 5@a@ÀÀ@JÀ}LÀ@À+ c À À @O @ À À= { @ 0 n À À # @a @ LÀ@3Àk@À@ÀBu@ À=ÀkÀÀÀBÀkÀ@;ÀYu@À@!.;E@À0ÀT@x@ÀÀ=iÀÀ@!RÀÀT@@0 Àk À ÀT @  E À À @8 u À+ Àf ÀÀT@À;@sÀ@JÀ}ÀE@s@@@!@JpÀ@À#ÀB^À}@À&5ÀBLÀÀ@@8ÀYÀ}@ÀÀBnÀÀ&W@#ÀY@ @8 p À À  @\ @ @J À À= { @ 0 n À @!@\À@ÀB@xÀ@R@À@@J{ÀÀ)R@xÀ@ )@JÀfÀ@@À .À=@JÀTÀ@À=^À@G@s@ÀÀ+@\@ÀÀ+^ À= @x À À& @a @ À À R @ @  E À @8 @s À À&@a@@G@#ÀY@!R@0ÀYÀ@@0@On@ÀÀÀÀ&5E@O@\@ÀÀ#ÀBÀfÀ#@O{ÀÀÀ@3cÀ0Àf@À@ E À} @ À+ i @ ÀY À @ L À @ { @ @ .i@@OÀÀ+^À@)ÀY@ @8@a@8WuÀ@@.À=@JW@a@À@ )@JÀk@@ÀÀÀ+ÀTÀÀ@8i@À5Àk@À @J À À @ @3 n À @! ^ @ À À R @ @ E À À 5pÀW@0ÀfÀ0@a@ÀÀÀ=Àf@ÀÀ@^À}À@@#@3ER^iÀ@.@OpÀ@0ÀY@@À=n@ÀÀ=@s @O @ À @8 u À ) Àf @ @ ÀY @ L ;uÀ#@\ÀÀ@8n@À@8i@En@À&GÀf@ÀÀÀ);@JÀYÀfp@@À@3ÀTuÀÀ 5@a@ÀÀEuÀÀ ÀB@xÀ W @ @  @ { @ . Àk À # ^ @ À  R @ ÀBÀ}@@À+c@À@ @u@ @n@@#Lu@À .@On@ÀÀ@@@ 0ÀBR@an@x@ÀÀ;ÀYÀ}@À;ÀfÀÀÀ@J{@ÀGÀ}À# @\ @ @ E À À @ 5 @s À ) Àf @ @ ÀY @@J@@3ÀkÀG{ÀEuÀ+ÀTÀ}@5ÀTu@À&@8@JÀYi@sÀÀ@!@@aÀÀ@ÀÀBÀk@!@OÀ@ÀÀ@O@À+ c @  L À À= @x @ 0 n À # @a @ À À@O@8@sÀ@À@OÀ@LÀ}ÀÀ0@\ÀÀÀ=@\{ÀÀÀ.@R@an{À&EÀfÀ@G@s@@@À&W@À@!ÀT@@0 i @  R @ @  ÀB À @ 5 @s À+ Àf @ @W@@xÀT@À#ÀT@@ @8c@ÀÀ@!ÀBcÀ@À@ @3GÀYiuÀ@@À+LÀk@À#L@x@ÀÀ+@\@À&@\À5 p  ÀY À @ @J À À= { @ @ 0 n À À #^ÀÀ@G@À&@\@À+@\À@i@)@JÀk@@@À&;@O^pÀ}@À@À@3R@sÀ@@ÀÀ+ÀTÀ}À@3@aÀ@À+@a À= u # ^ @  @O @  ÀB À @8 u )Àf@@À@O@.cÀ@3cÀÀ@GpÀÀ 0R@sÀ.ÀBÀTÀfu@ÀÀ@8W@xÀÀ@0ÀYÀ@@ @8iÀ@À@3Àf@À@ ÀB { À+ Àf @ @ À W @ @J À @ { @ 0ÀkÀ@@ÀT@À5ÀkÀ@8ÀkÀ@@#@O@x@@À@8ÀY{À@À5@J@\nÀ}@\@xÀ@À5@\ÀÀ&ÀT@ÀB@sÀ@GÀ}À& @a À À @ @J À ; @x @ . i À @  ÀY À @ @ EÀ}À&^À@À0c#RÀ}À#@Jn@À@.G@a{@À@@ÀcÀ}À@@ÀÀ=@aÀ.ÀYÀG{@L@. Àf @ @  R @  ÀB À} @ @3 p À # @a @ @JÀ.cÀ@@8Àk@ÀÀ+ÀYÀÀÀ+@OuÀ@À5@OiÀ@¾8<l>>@?L?}???@???@@ @@@%@.@7@>@`F@pM@T@Z@`@`f@0l@p@ u@y@p}@P@@@(@Є@p@@@@@p@Є@(@0@@@~@@z@`v@q@l@g@a@0\@U@`O@G@@@8@0@P(@`@@ @@? ?????Y?)?>>=@ @u౿ ο@0 >>?@8?i????? ??@@@@#@,@5@>@E@pM@T@[@a@g@pm@0s@w@0|@P@@@؃@p@h@@P@@@@@@@@@@p@(@@@p}@x@s@n@i@0c@\@`V@`O@G@@@7@`/@`&@p@@ @@@?????u?E??>8>aܾ#Yࣿ ܿ` $$=>>#?T??????@?@@P@!@*@3@<@ E@L@T@[@b@h@`o@t@@z@~@@؃@@`@@@@0@؋@x@ @ @ @ @Ќ@(@0@@@@@@(@@@@z@u@p@@j@c@p]@`V@N@G@>@`6@p-@$@@@@`?? ????@a?0?>>==@s౿ ο@L>>@?@?p??????@ @@`@(@1@:@C@0L@S@[@b@i@p@`v@0|@@@p@`@H@@x@@@@P@@@@@P@@@@x@0@@@@@H@|@w@@q@j@d@p]@U@N@E@p=@4@+@!@P@@0@? ? ? ??}?L??>W>W׾@!Wࣿ ܿ t=>>+?@\?`??? ???@@@`&@0@9@B@J@0S@Z@b@i@p@w@p}@@(@@@@Ќ@h@@H@@@0@ؓ@(@x@x@(@ؓ@0@@@H@@@ @0@H@@Є@@@~@x@r@k@d@\@ U@L@D@;@2@(@`@ @ @@@?@? ? ??i?5??>=̽;@s౿ ο.>>?G?@x??? ? ?@?@`@@#@p-@7@@@I@Q@@Z@a@i@p@w@~@@@ @@@@x@h@P@@@Д@@@`@@@@@`@@@Д@ؓ@@@@@Ќ@@P@@@@y@r@k@c@0\@S@K@B@9@0@`&@0@@@`?@?@?@???R?@!?>a> <CҾWࣿݿ>>0?c?@???@?@?@ @`@ @*@4@>@G@P@X@@a@h@p@Px@~@@@@0@@@@ؓ@@@P@H@@@@0@@@0@@@@@@`@@(@@P@@؋@H@h@@P@y@r@j@0c@Z@R@I@@@7@p-@0#@@@0@`?`?@???p?=?@ ?>>;@s౿`Ͽ>?L??`???@?`?@@p@'@1@;@ E@N@W@`@Ph@p@w@`@@@H@(@@H@@p@`@H@@؛@М@@h@@@@@h@@ @(@@H@@@ؓ@@`@Ќ@@@؃@P@y@q@@j@a@Y@P@G@>@4@@*@ @ @@ @?`?`???`?Y?&?>v><C;Wࣿ@ݿ?5?i? ?`???`?0@@@$@.@8@B@0L@U@^@g@`o@w@~@0@h@@Ќ@@@@Д@@H@0@М@@`@@H@@@@@@@@H@@@h@ @@@@p@@P@p@@`@؃@P@y@@q@i@`@W@N@ E@;@@1@'@0@@@@?? ???u?B? ?>>;@s@`Ͽ@?R?? ?? ? ??@ @@ @+@5@@@I@0S@\@e@n@`v@~@0@@@@p@P@0@@P@@М@@P@@@(@Ф@p@@@@@p@ @(@0@@@@ @0@@h@ؓ@@@@@؃@P@Px@p@g@`_@U@0L@B@P8@.@0#@P@ @@@?@????^?)?>><8;W @@8?n??@?? ??@@@@'@2@<@G@@Q@Z@c@l@ u@p}@@@@@@@ؓ@@@؛@@P@@@أ@p@@@P@@@@@@H@@@@p@(@@@@x@@`@Д@@h@0@`@؃@@w@n@`f@\@0S@I@`?@ 5@@*@`@@@?@????{?E??>>;@s@T? ??`??@?@@ @P@#@.@9@C@N@PX@a@j@s@|@@@h@@@@H@x@`@@@ @`@@أ@@`@@@@0@(@Ь@ @p@p@ @Ь@(@0@@@@@@(@@@@p@@P@ @@@0@`@@~@`v@pm@c@Z@P@`F@0<@@1@`&@@@@`??? ??@a?.?>>$=8;W p?@??`??`?P@@`@*@5@@@J@ U@`_@h@q@z@@@@@H@Д@@0@@@@ @`@H@@x@@@@P@@@@@P@@@@x@0@@@@@H@h@؛@@p@@@@@@@p}@t@j@a@W@pM@0C@P8@p-@"@@ @? ??@???@J??>>;u`?@??? ?0@`@@`&@1@<@G@Q@0\@`f@p@x@@p@@p@H@Д@P@@@@(@@@@Ь@h@@H@@@0@س@(@x@x@(@س@0@@H@P@@ @0@H@@Ф@@@`@(@H@@@@h@@h@@@{@r@h@^@ U@@J@`?@4@)@@@`@@??@?? ?f?0?>>$=8;W?`??? ?@ @`@!@p-@8@C@N@X@0c@pm@w@@x@@ @@Д@P@؛@@@@ @@@@x@h@P@@@д@@@`@@@@@`@@@д@س@@@@@Ь@@P@@@@М@H@@@@@@H@y@p@e@0\@@Q@G@;@0@ %@@p @@?`?? ?@?L??>>;u???? @@@p@(@4@@@J@U@`@@j@t@~@@@x@@x@P@؛@`@@@@0@@@@س@@@P@H@@@@0@@@0@@@@@@`@@(@@P@@ث@H@h@@P@М@H@p@@p@H@Є@P@w@pm@0c@PX@N@B@7@0,@ @@P@???@?`?i?@3?>>L=8;Y?? ??0 @P@$@0@;@G@Q@\@g@@q@{@@@@@(@@؛@`@@@H@(@@H@@p@`@H@@ػ@ @@h@@@@@h@@ @(@@@@@س@@`@Ь@@@أ@P@М@@ @@Ќ@P@؃@~@t@@j@`_@ U@I@>@03@'@@`@@??`???@O??>$>=??@?`@0@`@+@7@B@N@X@c@n@x@H@@@`@@@@`@0@h@@Ь@@@@д@@H@0@м@@`@@H@@@@@@@@@@h@ @@@@p@@P@p@@`@أ@P@x@@x@P@؋@`@@{@@q@g@0\@@Q@E@@:@.@"@`@ @??`???k?@3?>>$=8;@!??@p @@@`&@2@>@I@ U@`@j@u@@Є@@h@@@0@@@@@p@P@0@@P@@м@@P@@@(@@p@@@@@@ @(@0@@@@ @0@@h@س@@@@`@أ@@(@P@ؓ@`@@@H@Px@n@0c@PX@L@@A@5@)@p@@@ ?????@O??>>??@@@!@p-@9@ E@@Q@0\@g@q@|@@P@ @@h@@@@h@@@@@س@@@ػ@@P@@@@p@@@@H@@@@@H@@@@p@(@@@@x@@`@x@@h@0@`@أ@@؛@`@@h@@Є@`@ u@@j@`_@S@PH@<@0@$@@ @ ?????k?5?>>$=8Ҿ?@@@P(@4@@@0L@PX@0c@n@x@@@؋@@p@@@@@h@@@@H@x@`@@@ @`@@@@`@@@@0@(@@ @p@p@ @@(@0@@@@@@(@@@@@@P@ @@@@`@0@`@@@@ @P@0@0|@@q@`f@Z@`O@C@7@+@@@ @?????R??>>?@@"@`/@;@G@S@`_@@j@u@@p@@`@(@@p@@@@@H@д@@@@@@ @`@H@@x@@@@P@@@@@P@@@@@0@@@@@H@h@ػ@@p@@@@@@@h@@@p@@؋@@@Px@pm@a@`V@J@>@2@%@@0 @??? ??n?5?>>$=C@@@)@`6@B@N@Z@`f@@q@|@؃@@@@@x@@ @H@p@H@д@P@@@H@(@@@@@h@@H@@@0@@(@x@x@(@@0@@H@P@@ @@H@@@@@`@(@@@@@h@@h@@@@@(@`@@@ @`@t@h@p]@Q@E@9@,@ @0@`@?? ?? ?R??>> @@#@0@p=@I@U@a@pm@Px@@`@x@@h@0@@x@@Ь@@д@P@ػ@@@@ @@@@x@h@P@@@@@@@`@@@@@`@@@ @@@@@@@@P@@@@м@H@@@@@@H@x@@@@@0@{@p@d@X@L@@@3@'@@@p @@ ?@? ?@?n?5?>><@@*@7@D@P@\@h@t@@p@@@ @@@@@@x@@x@P@ػ@`@@@@0@@@@@@@P@@@@@0@@@@@@@@@`@@(@@P@h@@H@h@@P@м@H@p@@p@H@Ф@@@h@H@(@@H@w@k@`@S@G@:@.@@!@@@@?`? ?@? ?R??>>@$@1@>@J@W@0c@`o@z@0@@@0@P@p@@@@@@س@@@`@@@@@@@@p@`@@@@@@h@@@@@h@@ @(@@@@@(@@`@@@@@P@м@@ @@Ь@P@أ@@@@ @@@Є@~@0s@g@[@N@B@5@(@@@@@`??`?@?n?5?>>@+@8@E@Q@^@j@`v@@@(@@@(@@@@@0@`@@`@@h@@x@`@@@@@@@@@`@P@H@@@@@@@@@@@h@ @@@@p@@P@p@@`@@P@x@@x@P@ث@`@@@@0@@P@@@z@n@b@U@I@<@0@0#@@P@???@? ?R??>%@2@@@L@X@e@q@p}@x@@@@ @@@x@H@@@@@@@h@@ @P@0@@P@@x@h@P@@@(@@p@@@@@@ @(@0@@@@ @0@@h@@@@@`@@P@(@P@س@`@@@H@(@@@(@h@@ u@i@\@P@C@7@@*@@`@@??`?@?n?@3?>,@9@G@S@`@l@x@@@@@0@@@0@@Ь@@@@@h@@h@@p@@@@H@@@@@@ @h@@P@@@@@@H@@@@p@(@@@@x@@`@@@h@0@`@@@ػ@`@@h@@Ф@@@ @@@(@|@p@d@W@J@>@@1@#@`@@???@? ?@O??3@@@N@Z@g@s@@@@H@@(@@@@P@ @@@@@@p@@(@`@@@@`@@@@`@@@@0@(@@ @p@p@ @@(@0@@@@@@(@@@@@@P@ @@@0@`@0@`@@@@ @P@0@@@0@p@@@w@k@^@Q@ E@P8@*@p@@@??`?@?k?@3?:@G@ U@a@n@z@@H@@Д@@@@ @@@@س@@ @@@@p@@x@@@@P@@ @`@H@@x@@@@P@@@@@P@@@@@0@@@@@H@@@@p@@@@@@@h@@@p@@ث@@@(@@@0@p@~@r@e@X@0L@`?@1@$@@@???@??@O?A@`O@0\@h@u@@@Ќ@@P@@0@@@@`@(@@ @H@ @@x@@0@h@H@@h@@@@h@@H@@@0@@(@x@x@(@@0@@H@P@@ @@H@@@@@`@(@H@@@@h@@h@@@@@(@`@@@ @@@@x@@@@y@l@`@0S@`F@8@+@@@@??`??k?H@`V@0c@p@|@x@@P@h@؛@@@(@H@h@0@@(@@@@x@P@@@@@@@(@h@P@@@@@@`@@@@@`@@@ @@@@@@@@P@@@@@H@@@@@@H@x@@@@@0@@@@@x@h@P@s@g@@Z@pM@@@2@ %@@@?????P@p]@@j@w@@@@ؓ@@`@ @@@д@@@0@@(@P@(@@@@@p@P@0@p@@@@p@@P@H@@@@0@@@@@@@@@`@@(@@P@h@@H@h@@P@@H@p@@p@H@@@@h@H@(@@H@@@@@؃@z@n@@a@T@G@9@0,@@@@??`??W@d@@q@~@p@@@@p@@@@0@P@p@@@@0@@@@@`@@@@@@H@@p@`@H@@@@@h@@@@@h@@ @(@@@@@(@@`@@@@@P@@@ @@@P@@@@д@@@@Ф@@H@@p@`@@ u@Ph@[@N@@@03@ %@@ @????^@k@Px@@@@ @0@@h@(@@@ػ@@@@@@0@`@@@@h@@x@`@@@@@@@@@`@PAAAHAHAHAHA AAPA@h@ @@@@p@@P@p@@`@@P@x@@x@P@@`@@p@P@0@@P@@М@@@@x@|@`o@b@ U@G@@:@0,@@@@?? ? e@r@`@@x@@@@x@@@@ @@@`@x@H@@@@@@@h@@ @P@0@@P@@x@h@(AApAAhAA A A4A AAAAAAPA@ @0@@h@@@@@`@@@(@@@`@@@@(@@H@ث@@P@@x@h@@@`v@i@0\@N@@A@03@%@@@?? ?0l@y@0@@@@(@@@@@0@@@@@@@@@@h@@h@@p@@@@H@@@(A AAA\AAPAAAAAAAPAA\AAAHAPA@x@@`@@@h@0@`@@@@`@@h@@x@@@@д@`@@أ@@@@@p@p}@p@0c@U@PH@@:@,@@@@?@?0s@P@@ @@@@@@H@@(@H@h@@P@ @@@@@@p@@(@`@@@@`@AAAA|A AAAhAAAAAhAAA AAA AA AA@@P@ @@@@`@0@`@@h@@ @P@0@@@@p@@@@p@`@@@@w@@j@\@`O@@A@3@%@@@?`?@z@؃@@@@@ @0@H@@д@@@@ @@@@@@ @H@p@@p@@x@@@@(ApAAAApA<AA\AA(APA|A|APA(AAAAhAAAAAAA@@@p@@@@@@@h@@p@@@@H@(@h@@0@ @@@@x@@~@@q@c@`V@PH@:@,@@@@`?@`@@(@@@@Ь@@P@@0@@@@`@(@@@H@ @@x@@0@h@AA4APApAhA4AAA A A A A< A< A A A AH AA(A\AAAAAhA A`@(@@@@@h@@h@@p@@(@`@@@@@@x@@@@x@h@@@@Px@j@p]@`O@A@3@%@@@?(@@H@@@(@@@P@@ػ@H@@(@H@@@@(@@@@x@@@@AhAAAA4A(AA Ah A A\ A A A A A A A\ A A A AH APAAhApA(AApAA@H@@@@@p@H@x@@@@@0@p@@@@(@@@@@ @h@`@q@d@`V@H@:@,@@@@@@h@Д@0@@@@س@@`@@@@@@@h@0@@(@P@(@@@@HAA(AAAAA A A A( A A Ap A A A A Ap AH A AP A A A< AH APA4AAA4AA(A@H@p@@p@H@@@0@h@H@(@@H@@@@@@p@@@@0@x@k@p]@P@A@3@ %@@P@0@@P@@ @0@H@`@ @@P@@0@P@ @@@@0@@@@@`@pA A|AA\AA A A A AH A AAA4AAAAA\A AAAp A A A A AAAhAAAA(A@@ @@@P@@@@@@@@@@H@0@p@@@@(@p@@@r@ e@W@H@:@0,@@`@@p@؛@@@@@ @@@h@@H@@@@@@@@0@`@0@@pA4AAhAA Ah A A| Ap AhA AAPAAAHApApAHA AAPAA4AA A A A Ap A(AAHAAA(Ax@@x@P@@@@@p@P@0@@P@@м@@@@x@@@@@@@y@0l@^@P@A@03@ %@`@@@@`@@(@@@h@(@@@@@@`@x@H@@@@@@@pA4AAA(A A A( AH AhA\A(AAAAAA A4A4A AAAAAAPAAA A| A4 A A|A ApAAAA(@@@`@@@@@@H@@@P@@@x@@@@0@x@@@P@0s@ e@W@H@@:@0,@p@@x@0@@@@(@@@p@0@@@@@@H@@@@h@HA4AAAPA A\ A A A A(A AAA\AAPAAAAAAAPAA\AAAHAPA\A<A A Ah AA4ApAAA@@`@@h@@x@`@@@@`@@@@@@@ @@@@@؃@@z@0l@^@P@@A@03@$@H@@@ @0@@@p@@@@(@H@h@@P@@@@A AAA|A A A AhAAAAAA|A AAAhAAAAAhAAAHAAA A<A AAAp A( A AA\ApAAA@@h@@ @@@@P@@ @`@@@ @@@@@@ @@`@@0s@ e@W@PH@@:@+@ @@@@@@ @0@@@x@@@@@@@@@ @AAAA|A< A Ap AA(ApAAAApA<AA\AA(APA|A|APA(AAA AhAAAAAAA\A AP A A A4ApA\AHAh@@p@@@h@H@@h@@@ @@@@(@@@@@@(@@z@0l@^@`O@@A@2@P@@p@س@@@P@h@x@@@@p@@P@p@@@@@(AhA|AhAPA< A A A4AAA4APApAhA4AAA AAAA<A<AAAAHAA(A\AAAAAhAAAA| A AA A A AAp@@(@@@@`@@(@h@P@@(@@@H@@؛@ @h@`@@0s@ e@`V@PH@9@أ@@@`@@@@@@@@h@@@@@`@A(A<A(A A A A\AAhAAAA4A(AAAhAA\AAAAAAA\A AAA APAAhAHA(AApAA<A A AAAAA|Ax@@@p@P@@p@@@(@@@@0@Ь@@`@@@0@(@@z@0l@p]@`O@@@`@@x@@H@`@p@@H@@x@@`@x@H@h@pAAAA A A AA AA(ApAAAAAAA(AA ApAAAAApA AAPAAAAHA(A AAA4AAAhA| A AAA|A<AA0@@@@h@@0@p@@@0@ @@P@@@(@p@@@@0s@d@`V@G@@@@h@@@@@@@@p@@@ @A4ApAA A A AAHAA|AA4A|AAAA|AHAAhAA4A\AAAA4AAAApAAA AAAAhAA\AA(AhA| Ah A|A<AAA@@x@`@@x@@@0@ @@@@@س@ @@@@@@0@(@@z@k@p]@N@h@ @@@P@h@x@@P@@@@h@@PAAA\Ap A A AAHA AA<AAA<A\A|ApA<A AA( A A AH!AH!AH!AH!A A AP AA4AAAAAApA(AAHAAA(A<A( A< AAAA A @@@p@@@@x@@@@(@@`@@@@0@x@@@@@r@d@U@@@@p@@@@@@@`@@@@A|AA A4 AH A\AHA AAhAApAAAHA<A4A( A Ap!A"Ah"A"A #A #A #A #A"A"A"A!A AP AAAA|A4AA|A ApAAAAA A AAHAAPA@h@@@@@@@(@@@H@@(@@@@H@@@0@(@y@k@\@p@(@@@`@@@@`@ @@P@p@HAA<AA A A A A AAAPAA4AAA A A A!A"A4#A#A($A|$A$A$A$A$A$AP$A#A\#A"A"AH!AP A\A<AAA<AA4ApAAAA A AH A AA<A`@@x@@H@@@@@0@@h@@H@@@М@@@@P@r@c@@@@x@@H@`@ @@@h@@|A AAAh A AAAAAAPAAAAhAA A!A"A#AP$A$A%A&Ah&A&A&A&A&Ah&A&A%A %A|$A#A #A"A !A AApAAAA4ApAAAAH A4 AAhAApAp@@@@@H@0@ @@P@@0@д@@@P@H@@@0@؃@y@j@x@0@@P@h@@@@@(@@`@<AA\A A( AhAAAAA|A<AAHAA( Ap!A"A#A$Ap%A<&A&A\'A'A((AP(A|(A|(AP(A((A'A'A&Ah&A%A$A#A"A!A| A4AAPAAA4AHA\AHA4A A A(AA4A|A@@P@@@@@@@@p@@P@@@أ@М@@@`@P@q@@@ @@@P@h@(@@@@p@pAAA A A A(AhA|AhAPA<AAA4A A!A4#AP$Ap%Ah&A4'A(A(A )A)A)A*A<*A<*A*A)A)AH)A(A((A\'A&A%A$A#Ah"A AAA|AAA A A AAAP A AAA<A`@@(@@P@@@(@@`@@@@ػ@ @@`@P@H@@@@؃@x@@@@@`@p@@@@@0@|A4AA|A AH AAA(A<A(AAAA\A Ah"A#A$A&A4'A((A(A)Ah*A*A\+A+A+A,A,A+A+A\+A +A*A)A )AP(A'Ah&AH%A($A"Ap!AA<A|AAAAAA|AA AH AAApA @@@@@@H@@x@@`@@@@أ@М@@h@`@@@@x@@@`@p@0@H@@<AAA< A A ApAAAAAAAA !A"A($Ap%A&A'A(A)A*A+A(,A,A -Ap-A-A-A-A-Ap-A -A,AP,A+A*A*AH)A((A 'A%A$A4#A!A AhA|AAAA|A<AAp A A|AA4APA0@ @`@H@0@@h@@@@(@ @h@`@P@H@@@@@H@@h@x@@@@@HAAAp A AhAA4ApAAAAAAH!A"A|$A%A4'A|(A)A*A+A|,AH-A-Ah.A.A4/A/A/A/A/A4/A /A.A.Ap-A,A,A +A)A(A'Ah&A$A\#A!A( A<APAhAPA<AAA4A A< AAAA@@@@@P@@@ @h@@@@@أ@М@p@h@@@@@@P@h@x@@(A AA|A4 A A(AAA4ApAAAAH!A #A$A<&A'A )A<*A+A|,Ap-Ah.A /A/AP0A0A0AH1AH1AH1AH1A 1A0AP0A/A4/A.A-A,A+A*Ap)A((A&A %A#A!A A<A(AAAAA AA Ap AAA Ax@h@P@@@@p@@@@0@(@p@h@`@P@@@@@P@@p@@@@@AAA< A AAA|AAA4AHA\AH!A #A$Ah&A(Ap)A*A,AH-A<.A4/A(0A0Ap1A2Ah2A2A 3A43A43A 3A2A2A2A1A0AP0A/A.A-A|,A4+A)A|(A 'Ap%A#A!A AAAAAHAAPA A4 A|AAAA@@@`@@@(@p@@@@@@أ@x@p@@p@@@@`@p@@AAAH A AAHAA<A|AAA A !A #A$A&AP(A)A4+A,A-A /A0A0A1A2A\3A3AP4A4A4A4A4A4A4AP4A3A\3A2A2AH1AP0A\/A<.A,A+A<*A(A4'Ap%A#A!AAAAHA AAAA A< AAAAp@`@H@@x@@@@@@0@x@p@h@`@@@@@`@@x@@@@ApAPA A A|A AAAhAAA A"A$A&AP(A*A+A,Ah.A/A0A1A2A3A|4A 5A5A6Ah6A6A6A6A6Ah6A6A5A 5A4A3A 3A2A 1A0A.Ap-A,A*A(A4'Ap%A#A!AAHA AAhAAHAA AH AhAA|A@@h@@@0@x@@@@@@@@x@ @x@@@@h@x@HAPA4A A AA<AA\AA(AhA| A"A$A&A|(A<*A+AH-A.A(0Ap1A2A3A4Ap5A<6A6A\7A7A(8AP8A|8A|8AP8A(8A7A7A6Ah6A5A4A3A2A1A|0A4/A-AP,A*A(A4'AH%A\#AH!A AAA(AA A|A A A(AHA<Ah@P@@@ @@@H@@@@x@p@h@@@@@@ @@@A AAA AApAAA AAA( Ah"A|$Ah&AP(A<*A,A-A4/A0A1A43AP4Ap5Ah6A47A8A8A 9A9A9A:A<:A<:A:A9A9AH9A8A(8A\7A6A5A4A3Ah2A0A/A.A|,A*A(A 'A %A #A AAPAA\AA<AA A A AAA@p@`@@@@@@@@@@@@@(@@@@@@p@AAA A A|A4AAPAAHAA!A($A<&A((A*A,A-A\/A0Ah2A3A4A6A47A(8A8A9Ah:A:A\;A;A;AA>A4?A?A?A?A?A\?A ?A>A>Ap=AA ?A?AP@A@A@AHAApAApAAHAA AA@AP@A?A4?A>A=AA4?A(@A@AAABABABA CA4CA4CA CABABABAAA@AP@A?A>A=A|A?A@AAAhBA CACA(DA|DADADADADA|DA(DACA4CABAAA AA(@A4?A>AA\?A@AAABACAPDADApEAEAAH=A;Ah:A8A 7AH5A\3Ap1A\/A -A*A(A<&A#A !AAA A<A\APAH A< A AAA@(@p@h@@@@@0@(@д@@ A|AA A AAAAA|A4A!A|$A 'Ap)A+A.AP0Ah2A|4Ah6A(8A9A;A =A>A@AHAAhBA\CA|DAHEAFAFA4GAGAHA(HAPHAPHA(HAHAGA\GAFAAP@AAA CA(DAHEAA|APA(AA@ABADAhFAHAIA KA|LAMANAOAPAQARA4SASA(TA|TATATATATA|TA(TASA\SARAQA QA(PA4OANALAKAJAHA GAHEACAAA?Ap=A\;A 9A6AP4A1A\/A,A)A4'AP$Ap!AhAAPAHAAA A(AAHA@@@@`@P@@ A\AAAA(A4A"A %A(A*Ap-A(0A2AH5A7A:APA@ABADAhFA(HAIA\KALAAP@AhBA|DAhFA(HAIAKA MANAPAHQAhRASA|TAHUAVAVA4WAWAXA(XAPXAPXAPXAXAWA\WAVAAA(A AA\CAEAGAIAKAMA4OAPARATAHUAVAWAXAYAZA\[A\A\A\AH]A]A]A]A]Ap]A ]A\A(\A[AZAZA YA(XA WAUA|TA SApQAOANAPLAhJA|HAhFA(DAAA?AH=A:A(8A5A2A0A -A<*A\'AP$A !AAAAPAA A AA4A`@P@@@@A(A\AA!A$A(A +A-A0A3Ah6A8A;A>A|@ABA EA\GApIAKApMA\OA QARAPTAUA WAPXApYAZA[A|\A ]A]Ah^A^A4_A\_A_A_A\_A4_A^Ah^A]AH]A\A[AZAYAXAWAA;A 9Ah6A3A0A-A*A'A$A!AhA AA|A A A< AA4A`@@@@PAA A<"Ap%A|(A+A.Ap1AP4A47A9A|A@A\CAEAPHAJALANAPARATAhVAXAYA [A|\A]A^A`A`AaAbA4cAcA(dA|dAdAdAdAdA|dA(dAcA\cAbAaA aA(`A4_A^A\A[AZAXA WAHUA\SAQAOApMA\KA IAFAPDAAA4?AA;A8A6A 3A(0A -A)A&A#AP A AAhAAA A|AAHA@(@A AP$A'A*A-A0A3A6A9A|A@ACAA\;A|8Ap5Ah2A\/A(,A(A%Ah"A AA(AAHA A< AA A@ #A<&A)A,A0A43A<6A 9A(A;A8A5A2A/AP,A )A%Ah"A AA(AA A A AhAA&A)A -AP0A3A6A9AApAAPDA4GAIA|LA4OAQA(TAhVAXAZA ]A _A`AbAdAA ;A8A4A1Ah.A +A'AP$A ApAAhAA4A AA+A4/Ah2A5A8AA;AP8A 5A1A.A4+A'A|$A ApAAhAA4A A\/A2A5AH9A|AHAAPDA\GAAAADAGAJAMAPASAABAHEAPHAKAhNApQAPTA WAYA|\A _AaAdAhfAhAjAlA oApArAtAARAfAfARA>AAAAHAAAA4A}A|A\{AyA|xAvA uA4sAHqA\oAHmA kAhAhfAdAaA^AP\AYAVASAPAMAJAGADApAA<>A:A7A(4A0AH-A)A<&A"A A\AA;A ?AhBAEAHAKA OAQATAWAZAp]A`AbA eAgAiAPlAhnApArA|tAhvA(xAyA\{A|A<~AARAA\AA(AzAAAA4AHAHAHAAÂAzA>A؁ApAAzAA~A }A{AAA A\AA؃AA(A(A(A(AA؃AApAAARA؁A\ÀA(A A}A|AhzAxAvAtArApAnAPlAiAgA eAhbA_A ]AA ;A7A(4A0AH-A)A&A"AA\A\?ABAEA IAPLAOARAUA|XA\[A<^A`AcAAAAAAAAA>AAAA A A A AĀAARAAA4AA>AA AfA\A}A(|AhzAxAvAtArAPpAnAkAHiAfAPdAaA^A\A YAA4;A7AP4A0AH-A)A&Ah"AABAFApIALAOA SAVA YA\A^AaA|dA4gAiAPlAnA qA\sAuAwAyA{Ap}A4AzAHAAAHA؃AfAA\AAARAAĂAAĂAAARAA…A\AAzAApÂA(ApAAA}A(|AAAA4ApAAA‡A‡AAApA4AAARA؅ApAARAA ARAAAA}A|AyAwAuA\sA qAnA(lAiAfA(dAHaAh^A[A|XApUAhRA4OALAHApEABA>A4;A7AP4A0A -A)A%A<"AhFAIALA(PA\SAVAYA\A_AhbAHeAhAjAHmAoAA AƒAzA AA(AAAA؇AARAzAAAAAzARAA؇AA4AARA…A4AAA4AfAAAA}A{AyA\wA uArAPpAmA\kAhAeA cA(`AH]AA\;A7A(4A0A -Ap)A%AIAHMA|PASAVAZA ]A(`A cAeAhAkAAApAAzAAHAA؉AA>ARAfAfARA>AAAAHAAAAAARAAA(A\AzAAA4A }A {AxAhvAtApqAnA(lApiAfAcA`A]AZAWA|TAHQANAJA\GADA|@AA4AAAAfAA‡ARAA\A‰A(AzAAAA4AHAHAHAAÅAzA(A؉ApAAfA؇AHAA؅AA>A\AzAAzA~A|AhzA(xAuA4sApAmA4kAPhApeAbA_A|\ApYAA\;A7A(4A0A,AH)ApMAPATA\WAZA]A`AcAfAiAPlA oAqAPtAvAHyA{A~AA4A(AAAA…AAHAAA4A‰A>AA A\AA؋AA(A(A(A(AA؋AA\AAARA؉AHAA(ApAAAA>A\AfA\ARA~A(|AyAwAtAhrAoAlAjA\gAPdAHaA<^A4[AXATAQAAAA(AA4AAARAǍAA AAA AǍAARAAA4AA(AAARAĂAAA>A4A>A4AA}A{A yAvAtAHqAnAkAhAeA cA_A\AYAhVA4SAOA|LA IAEABA>A ;A7A3AP0A,A QA|TAWA [A<^AHaA|dA\gAhjAHmApArApuAxAzA|A\AAA AAAĂAAfAA؉AzA AAAzAA4ApAA؍AAAAA؍AApA4AAzAAA AzA؉A4AzAAAAA(AAAAAH}AzAPxAuA sAPpAmAjAgAdAaA^A\[A(XATAQAA ;A\7A3A(0ATAXA\[A^AaAdAhAjAmApAsAhvAxA{A~ARApAAƒĀA؅ĂAAApA(AAA>ǍA\A؍A>AAA4ApAAAAAAApA4AAA>A؍A\AA>AAA>AAA‡AAAA؃AAAfAh~A{AHyAvAsA qAAAAA؏AARAzAAAAAzARAA؏AAAA>AA4AA؋AAfAAA‡ĂA…AAAzAHAA}A {APxAuArApAlAjAfAcA`Ap]AA:A\7A3A(XA[A^AbAHeA|hAkAnApqAPtA4wAyA|A4AAAHAfAAAAApARA4AAA\AAAAAAfAA A4A\ApAAApA\A4AAAfAAAAAApAAAHAfAAAAAAzA\A(AA\A|AzA\wAtAqAnAkAhAeAhbA4_A[AXAHUAQAhNAJA\GACAP@AAApAAzAAHAAAA>AfAfAfARA>AAؑAAHAAzAAAARAAA(AHAfAAAAzA\A>A A؁AA~A{A yAhvAsA|pAmAhjA\gA(dA`A]AhZA WASA(PALA IAEABAh>A:A47A[A _AhbAeAhAlA oArAtAwAzAp}AA\AA؃A A(AHARA\ARAHA(AAAzAAAfAA\AؑA(AzA̒AAAHAHAHAHAAA̒AzA(AؑA\AAfA؏A4AAA A(A\AfApAfA\A>AAAApA(A}AzA(xAHuAAAAA A(A4A>A4A(A A؍AA\AAAHA‘A>AAApAAAA(A(A(A(AAؓAA\A AA>AؑAHAAApAAAA>AHARAHA>AAĀAARA A\A|AyA wAtA qAmAjAgA|dA aA]AZA WASA(PALA IAEAAA<>A:A\_AbAeA iAPlAoArAuA|xA\{A<~AzA؁AAfAĂAA AAAA AAAA>AAA(AA4AAARAA̔AA AAA AAAA>AAA4AA(AAARAA̎AAA(A4A(AAAAAzA4AAAh~A{AxAuArAoAlApiAAbAAAA(A\AA‰ÅAAA؍A̎AAzAHAAA\AAzAA\A•AARAAA̖AAA̖AAARAA•A\AAzAA\AAA\AAAAAAAA؉AAA>AAARAA4AP|AHyAhvA4sA(pAlAiAhfA4cA_AP\AXApUAQAhNAJA4GACA@AdAhA4kAnAqAtAwAzA}AfAAAzA…A A>ApAAǍAA̎AAApA(AAA>A̔A\AؕA>AAA4ApAAA—A—AAApA4AAA>AؕA\A̔A>AAA>ApAAA̎A؍ǍA‹AAAfAA؅AAHA؁AzA~A {A(xAtAqAnAkA(hAdAaA^AZA4WASA(PA|LAHAHEAAAhfAiAlAPpAsAvAyA|AAHAAA\AAA4ARAAAAAAApARA AؓAzAAA>AAAAؗAARAzAAAAAzARAAؗAAAA>AAAzAؓAARAAAAAAAAfAHAĂApA(AA\AA|AyAvAsA|pAHmAiAfA4cA_A|\AXApUAQAAÄAAHAfAAAAApARA4AAA\AAAAAAfAA A4A\ApAAApA\A4AAAfAAAAAApAAA4AfAAAAAAzAHA(AAARA AA>ÀA~A{A|xApuAAApAAzAAHAAAA>AfAfAfARA>AAؙAAHAAzAAAARAAAAHAfApAzAAfA\A(A A‰AA4AAzAAA(AH}AA AAApAĂA\AAA A A|AxAuArA4oAkA|hA eAaA<^AZA4WASAPAPLAHApmApA(tA\wAzA}AfA؁A\ĀA>AAA>AAAA A(A4A>A4A(A AؕAA\AAAHA™A>AAApAAAA(A(A(A(AA؛AA\A AA>A™AHAAA\AAؕA A(AHA>AHA>AAǍAARAAA>AApAAfA}AzAwAPtApAmAAAAzA؉AAfAA̎AA AAAA AAAA>AAA(AA4AAARAA̜AA AAA AAAA>AAAAA(AAA>AA̖AA A(AA(AAAAAfA4A؉AAA…ARÂAHAA||AHyAvArA\oAlAhA eAaA<^AZA WASAOA(LApAPtAwAzA~AA(AAAAA\AAAHAzAA̐AAAAAA̖AAfAAؙAzA AAAzAA4ApAA؝AAAAA؝AApAA̜AzAAA AzAؙAAfAA̖AA AA AAAAAHAAApAAA4AA(AA<~A {AwA|tA qAmAhjAfAcA`AP\AXAHUAQAMArAvApyA|AAA AAApAA>AAA(A\AAA̒AAAؕA̖AAzAHAAA\AAzAA\AAARAAA̞AAA̞AAARAAA\AAzAA\AAAHAAA̖AAAAA‘AApA(AAARAAAAA AAA|AyAApAAA̔A•A̖AAApA(AAA>A̜A\A؝A>AAA4ApAAAŸAŸAAApA4AAA>A؝A\A̜A>AAA(ApAAA̖AؕA̔A“AAARA A؍AzA4A‰AfAApAAfAA~A\{AxAtAHqAmAhjAfA\cA_AP\AXA UApQAAAAA؟AARAzAAAAAzARAA؟AAAA>AAAzA؛AARApAAAAAAAfA4AAA\AAAHA؇ARĀAHAA(A }AyAhvA sAoA(lAhA eAaA^AhZAVA4SAxA\{A~AAA(AA4AAAAA>AA̐AA4AfAAAAApARA4AAA\AAAAAAfAA A4A\ApAAApA\A4AAAfAAAAAA\AAA4ARApAAAAAfAHAA̐AA>AAA(AA4AA(AA A~A{A(xAtApqAmAhjAfA\cA_A(\AXATApyA|AAAHAAfAA\ÅA>AAA>AA̒AAA>AHARAHA>AAAAA(A̞A\AAfAAHAAءAA>ARAfAfARA>AAءAAHAAzAAAARAAA(AHAfAAAAzA\A>A AؑAAHAAAAA>AA4AAAfA}AAAAzA؏A4AfAAAAA(A4A(AAAAAfA AARA̠AHA¡A(AzAAAA4AHAHA4AAAAzA(A¡A\AAfA؟A4AzAA A(AHAfApAfA\A>AAAApA(A̎ApAAAAAAzAAHA\A|AxA uAqAAA A\AAأAAA(A(AAAأAA\A AA>A¡AHAAA\AAA A(AHARAHA>AAA̔AARA AARAApAAzAA\AƒA(AzA}AhzAvAsApA|lAhAHeAaA^AhZA~A AARAAA AAAAA>AAA>ApAA—AAAAAAAApA(A̠ApAAAAAA>AzAAAA A AAAAzA>AAAAA(AAA>AA̞AA A(A4A(AAAAAzA4AAA4AARAA\A؇A>AA A\AA(|AxAHuAqAAAA4ĂAfAApAAfAA4AzAؓAARAAA™AA؛AAAAARA A¡AfAAAAfA̤AA\AA¥AإAAAA¥AApAA̤AzAAA AzAءAAfAA̞AA AA AAA—AA\AA̒ApAAA4A‹A>AAAAA>AA}AhzA wAsApA|lAhAHeAaA]AÂAzAAAHÅARA؍AHAAA\AAA4AfAAA›AAAAAfA4AAAHAأAfAAHAAARAzAA̦A̦A̦A̦AAzARAAA\AAzAA\AAAHAAA̞AAAAA™AApA>AAARAAAAAAAAfĀAAAA(|AxAHuAqAAإA\A̤A>AAA>ApAAA̞A؝A̜A›AAARAAؕAA4AؑAfAApAAfAAHAAARAA}AhzA wAsAoAPlAhA eApaAAA>A؇ApA AAAA AzAؓA4AzA—AA(A\AzAAAAzA\A(AAAfA AA(AAApA§AA>AfAAAAAfA>AA§ApAAA>AAAzAأAARApAAAAAAAfA4AAApAAAHA؏ARAAHA‰A(AAA4AAA(|AxAHuAqAnAhjAfA4cAƒApAAARAApAAzAA\AAA\AAؙA A>A\AfApAfA\A>A AأAAHAAzA AAARAAA4A\ApAAApA\A4AAAfAAAAAA\AAA4AfAAAAAAfAHAAAARAAA(AA4AA(AA ApA…AAfAA}AzA wA\sAoA(lAhAdAARAAA4ǍARA؏A\A̒A>AAA>AAAAA>AHARAHA>AAAApA(A̦A\AAfAA4AAةAA>ARAfAfARA>AAةAAHAAzAApAA>AAAAHAfApAzApAfAHA(AA™AzA4AؕAzA AAAA AAARAAAHAAA(|AxA uAqAmAhjAfAA4AAzAAA4AA>AAAzAؗAAfAA̜AAA(A4A(AAA̤AAfA AA>ĄAHA©A(AzAAAA4AHAHA4AAAAzA(A©A\AARA§AAzA¥AA(AHARA\ARAHA(A A؛AA\AAAHAAzAApAAfÅA4AA؅A(AzAA}AhzAvA\sAoA(lA|hAfAA‰ApA AAAAAAA\AAAHAAAAA AA AAA¥AzAHAAA4AA(AA A\AAثAAA(A(AAAثAA\A AA>A©A4AAA\AAإA A(A4A>A4A(A AAAA>AAA(A̔A\AؑARA̎AHAAAfAA A\AAA(|AxA uApqAmAAAA(ApAAŸAAAAAA¥AApA(ĄApAAAAAA>AzAAAA A AAAAzA>AAAAAAAA>AAAA AAAA AA̞AAfAA™AzA AA>AA4AA(AAAHAAA>AzAA}AhzAvA4sAoAlA>AAA4A̎ARAApAARA—AAzA›A ARAAA¡A̢AأA̤A¥AAARA AARAAAAfA̬AA\AA­AحAAAحA­AA\AA̬AfAAA AfA©AAfAA̦AAAAAA̠AAzAHAAA\AAAAAAA ApA‹A(AzĂAA\AAA(|AxAtAHqAmAÅAfAAA4A̒ARA•A4AAA\AAA4AfAAAAA¥AAAfA4AAAHAثAfAAHAAA>AzAAA̮A̮AAAzA>AAAHAAfAAHAAAHAzAA̦AإAAأA̢AAA\A(AAA>A̘ApAAzAApA؏ARAA A\AAA>AzAA}AAA̞AAHAfAAAAAAfAHAA̪AA(AAHA­A(AAA4A\AAAAAAA\AAAA(A­AHA̬A(AAA(A\AAAA¥AAAApA>A AAfAAARAA\AؓARAAAAA>AĂAA\AAA|A|xAtA qAAA(A؏ApAAAAAAfA›AAzAŸAA(AHAfAAzAAfA\A(AAAfA AA(AA ApA¯AA>AfAAAAAfA>AA¯ApAAA(AA AzA«A A>ApAAAAAApARAAAAHAAA4A—A>AA4AAAfǍAApAAA>AzAA}AA AثAAHAAzA AAARAAAAHApApApApAHAAAARAAA AAA\AAAARApAzAAzApARA4AA̠AA(AApAAAAAAzAAHAAARAAAA\AAA|APxAtAARAAA4A̔ARAؗAHA̚A(AAA>AAAAA(AHARAHA>AAAApA(A̮A\AAfAA4AAرAA(ARARARARA(AAرAA4AAfAApAA>AA̬AA4ARA\AfA\ARA4AAAAfA AARAApAAzAA\A‘A(AAA4ApA‡AA>AfAA}AzAhvAA4AAzAAA4AA(AA AzAŸAAfAA̤AAA(A4A(AAA̬AARA AA>A̰AHA±AAzAAAA4AHAHA4A AAAfAA±AHA̰ARA¯AAfAAAA4A>AHA>A4AAA£AAHAAA4A؛ARAA\AؕA>AA A\AAARAAAAHAA\A{A(xAfAA‘A\AAAAAAAA\AAAHAzAAAA AA AAAAzAHAAAAA(AA A\AAسAAA(A(AAAسAAHAAA>A±A4AAAHAA­AAAA(AAAAإAApA(A̠AAAA4A™A>AAAAA>AAA4ApA‡AA(AfAA}AyAHAAA>AؕApAAzAApA̞A>AAA(A\AA§AAAAAA­AA\A(A̰ApAAA AAA>AzAAAA A AAAAzA>AAAAAAAA(ApAAحAAA AAAاAAARA AARAAAAAAAAfA̒AApAAARAĂA AHApA\A{A(AؑAAAARAؙA\AARAŸAAzA£A A>ApAA©A̪AثA̬A­AAA>A AARAApAAfA̴AA\AAµAصAAAصAµAA\AA̴AfAAAAfA±A ARAAAحAAAAةAAAfA4AAA4A؟AfAAAAzAAHAAARAAA4ApAAA(ARAzAp}A AAfAAA4AA>AA4AAA\AAA4AfAAAAAAAAfA4AAA4AسAfAAHAAA>AzAAA̶A̶AAAzA>AAAHAAfAسAHAAA4AfAAA­A̬A«AAAzAHAA̤ApAAAHA؝AfAA\A—A(AAA4AA؍AARAĂA A4A\A4AAAHAAzAAAAAApAA>AA̦AA4AfAAAAAAfAHAA̲AA(AAHAµA(AAAA\AAAAAAA\AAAA(AµAHAA(AAA(A\AzAAAAAAA\A(AAAfA AA>A̞AHA›A>AA ApA“A(AfAAAHAAAAARAzA̒AzA(A—A\AAzAAAAfA£AAfAAA(AHAfApAzAAfAHA(AAAfA AA(AA ApA·AA>AfAAAAAfA>AA·ApA AA(AA AfA³A A>A\AzAAAAzApA>A AاAAHAAzAAA(AAAAARAA AHAA؍A(ARAĂAA4A\AA\A AA>A؛A\AAfAءAHAAAHAAةA A(AHARA\AfAHA(A AسAAHAAzA AAARAAAAHApApApApAHAAAARAAA AAAHAAAA>A\AzApAzA\ARAAAApA(A̤A\AAA AAAfA̘A4AAؓA(AzAAA4ApAA؅AA>AA>AAAAA>AŸAHAA(AAA(ApAAA A(AHA>AHA(AAAApA(A̶A\AAfAA4AAعAA>ARARARARA(AAعAA4AAfAApA̶A(AA̴AA4A>A\ARA\A>A4AA̪AARA AA>AApAAfAAHAAAfAA A\AA؍AARAAAAApAA̘AfAAAAA(AA AfA§A ARAA̬AA A(A4A(AAA̴AARA AA>A̸AHA¹AAzAAAA4AHAHA4A AAAfAA¹AHA̸ARAAAfAAAAA>AHA>AAAAAzA4AAAA£ARA̠AHAA(AAAHAAA>AzAAA4ApAA…AARAAAHAAzAAA AzAAHAAAHAzAA̮AA AA AAAAzAHAAAAA(AA A\AAػAAA(A(AAAػAAHAAA(AA4AAAHAAµAAAA(AAAA­AA\AĄApAAAAA(AA ApAؙA(AzA̔AA\AA؍AARAzAĀA4AAA(AA\AAzAA\A̦A(AAA(A\AA¯AAAAAAµAA\A(A̸ApAAAAAA>AzAAAA A AAAAzA>AAA AAAAA(ApAAصAAA AAAدAApA>AAARAAAAA AAARAA A\AAA>AzAAAA\AAAA™ApA AA>AءA\A̤A>AA AfA«A A>ApAA±A̲AسA̴AµAAA>A AARAApAAfA̼AA\AA½AؽAAAؽA½AA\AA̼AfAAAAfA¹A ARAAAصAAAAرAAARAAثAA4A§AfAApAAfA̞A4AAA>AAAA\AA؍AA>AfAAAARAAAAA>AAAAAHAAAARAAAAAAAAfA4AAA4AػAfAAHAAA>AzAAA̾A̾AAAzA>AAAHAAfAػAHAAA4AfAAAµA̴A³AAAfA4AAApAAAHA¥ARA̢AHAAAzA̚AApA•AA>AzAAAAHApAؙAA4AAzAAAAAApAA>AA̮AA4AfAAAAAAfAHAA̺AA(AAHA½A(AAA4A\AAAAAAA\AAAA(A½AHAA(AA̺AAHAzAAAAAAzAHAAAARAAA(AA4AA(AAA\AAARAAAA\AAAA(ARA̚AzAAŸA\AAzAApAARA«AAfAAA(AHAfApAzAAfAHA(AAAfA AA(AA ApA¿AA>AfAAAAAfA>AA¿ApA AA(AA AfAAA(A\AzAAAAzA\A(AA¯AzA4AثAfA AAAA ApA؟A>AAA4ApA•AA>AzAAA A4AA\AAA>AأA\AAfAةAHAAAHAAرA A(AHAfA\AfAHA>A AػAAHAAzA AAARAAAAHApApApApAHAAAARAAA AzAAHAAػA A>A\AfApAfA\A>A AرAA\AAAHAAfAApAأARAA ApA›AARAAAA\AAAAAA>A؟AAAA>A§AHAA(AAA(ApAAA A(AHA>AHA>AAAApA(A̾A\AAfAA4AAAA>ARARARARA(AAAA4AAfAA\A̾A(AAAAA>AHARAHA>AAAAA>AAA(A̪AHAاARAA4AAARAAA4AA•AA(AfAǍAApAA̠AfAAAAA(AA AfA¯A ARAA̴AA A(A4A(AAA̼AAfA AA>AAHAA(AzAAAA4AHAHA4A AAAfAAAHAA>AA AfAAAAA(A4A(AAA̴AAfAAدAzA AA(AA4AAAzA̠A4AA؛AAfAAA AHApAA؋ARAAAHAAzAAA AzAAHAAAHAzAA̶AA AA AAAAzAHAAA4AA>AA A\AAAAA(A(AAAAAHAAA(AAAAAHAzA½AAA AA AAAAzAHAAA\AAzA AAAzAA\AAAfAAAHAA•AA(ARAAA4AAA(A¥A\AAfAA\A̮A(AAA(A\AA·AAAAAA½AA\A(AApAAAAAA>AzAAAA A AAAAzA(AAA AAApAA(A\AA½AAAAAA·AA\A(AAA>A̮A\AAzAA\AإA>AAAHAA؛AAfAA̔A A4A\AAA¡ApA AA>A©AHA̬A>AA AfA³A A>ApAA¹A̺AػA̼A½AAARA AARAAAAfAAA\AAAAAAAAA\AAAfAApAARAA ARAAA½A̼AػA̺A¹AApA>A A³AfAAA>A̬A\AةA>AAApAءA(AfAAA4ApAAAA>AfAAARAAAAA>AAAAAHAAAARAAAAAAAAfA4AAAHAAfAAHAAA>AzAAAAAAAzA>AAAHAARAA4AAA4AfAAAAAAAARAAAAHAAAAA>AAAAARAA AHAA؛AARAA̔AAAHAءAA4A̦AfAAAAAApAA(AA̶AA4AfAAAAAAfAHAAAA(AAHAA(AAA4A\AAAAAAA\AAAA(AA4AAApAAAHAfAAAAAAfA4AA̶AA(AApAAAAAAfA̦A4AAA(AzAAA4ApAAؓAA(AAfAAA\AAzAApAARA³AAfAAA(AHAfApAzAAfAHA(AAAfA AA(AAApAAA>AfAAAAzAfA>AAApA AA(AA AfAAA(AHAfApAzApAfAHAAAAfA A³ARAApAAzAAHAAAfAA A\AA؛AARAzAAA AAHAAA>A«A\AARAرA4AAAHAAعA A(AHAfA\AfAHA>A AAAHAAzA AAARAAA4AHApApApApAHAAAARAAA AzAAHAAA A(AHARA\ARAHA(AA¹AAHAAA4A±ARA̮AHA«A(AAAHAAA>AzAAA4A\AA“AAzA(AاAAAA>A¯A4AAAAA(ApAAA A(AHARAHA>AAAApA(AA\AAfAAHAAAA>ARARARARA(AAAA4AAfAA\AA(ApAAA A(A4A>A4A(A AػAApA(A̶ApAAA4AA(AA ApAاA(AzA̢AA\AA؛AA>AzAA̒A\AAAfAAAAA(AA AfA·A ARAA̼AA A(A4A(AAAAAfA AARAAHAA(AzAAAA4AHAHA4A AAAfAAAHAA>AA ARAAAA A(AAA AAAARA AARAAAAA AAARAA A\AAA>AzAAAA\AAARAAAHAAzAAA AzAAHAAA4AzAA̾AA AA AAAAzAHAAA4AA>AA A\AAAAA(A(AAAAAHAAA(AAAAA4AzAAAA AAAA̾AAfA4AAA4AصAfAApAAfA̬A4AAA>AAAA\AA؛AA(AfAA\A AARAAA AAAAARAAA>ApAAؿAAA AAAAApA>AAAAAAAA>AzAAAA AAAAAfA(AApAAzAA\AAAHAzAAAAAAAARAAAAHAAAAA(AA AAثA>AAA4AA¡AA>AzAA̘A A4A>AAA4A̮AfAApAAfAطA4AAػAAfAAAAAAAAAARAAAfAAAAzAAA\AAAAAAAAAHA AARAA\AA>AAA(A\AzAAAAAAfA4AA̼AA(A̸ApAAzA AAARAAApA§AAfAAAAHAAAAAA̪AzAAAHA̲ARAصAHAAApAAAHAzAAAAAAAAzAHAAAHAAfAA\AAARAzAAAAAAAfA(AAA4AA>AAAzAA A>A\AzAAzAAfAHAAAAfA AARAA\AAfA̰A4AAARAAA4AA¡AA(AfAAAAAA\AAA(AA4AA(AAARAAA(A\AzAAAAAAzA\A(AAA(AAHAA>AAA4A\AAAAAApAHA AAzAAAAAA\AAAA>A\AfA\AfAHA(AA¿AAHAAA4A·A>A̴AHAAAzAA4AAاAAfAAA AHApAA—AAA>AدApA AAAA AzAػA4AzA¿A A>A\AzAAAAzA\A>A AAzA AA(AAAAAA>AfAzAAAzARA(AAA\AAzAApAA>AAAAA>AHA>AHA(A AAApA(A̼ApAAAAA(AAA\A­AAfAAAHAAAA(ARAzAA«ApAAARAApAAzAA\AAApAAAA>A\AzAAzA\ARAAAA\AAAAAAfAAAAHApApApA\AHA AAA>AA\AARAAAfAAAAA(A4A(A AAAARA AARAAAAAApAرA>AAAHAAاAARAA̠AA4A\AAARAAA4A̴ARAطA\A̺A>AAARAAAAA>A\AfA\ARA4AAAA>AApAAzAAHAAAA(ARARARA>A(AAApAAA>AA4AAAHAAAAA AA AAAAfA4AAA4A»AfAA\AصARAAAAحA(AzAAA4ApAA؟AA>AfAA4AAzAAAHAA>AAAzAؿA4AzAAAA4A>AHA>A4AAAAfAAARAA\AA(AzAAAA4A4A4AA AAARAAA4AA(AAA(ApAAAAAAAAAzAHAAApAAA4A¹A>AA4AAARAA AHAAاAARAAAAAHAfAA±A\AAA(AAAAA\AAA\AAAAAA(AAAAAAHAAA4AA>AA A\AAAAAAAAAAA4AAzAAA AfAA ARAAAAAAAAA\A(AAARAAAAAAAAzAA4AAA(AzAAA4ApAAŸAA(AHAAA>AApA AAApAARAAA>ApAAAAA AAAAApA>AAAAAAAA>AzAAAAAAAAAfAAA\AAfAAHAAA4AfAAAAAAApA>A AAzA4AؿAfAAAAzAA\A³AAzA̮A A\AAاAARAzAAA A(AرAA4A̶ARAApAAfA¿A4AAAARAAAAAAAAAARAAAfAAAAzAAA\AAAAAAAAAHAAA>AA\AA(AAAAHAfAAAAApARAAAA\AAAHAؽAfAA\AطA>AAAHAAA>AzAAAA\AAAA AAfAAA4A̺ARA½AHAAApAAAHAzAAAAAAAAzAHAAAHAAfAA\AAARAzAAAAAAAfA(AAAAA>AA AfAAA(AHAfApAzApARA4AAAA>AAA(AAHA»A>AAAAسA(AzA̮AA\AAاAA>AfAAAAAHAAA(AA4AA(AAARAAA(A\AzAAAAAAzA\A(AAA(AAHAA>AAA4A\AAAAAApAHA AAfAAAAAAHAAA A(AHARA\ARA4AAAAzAAAzA AA(AAAAAfAA A\AAA>AzAAAAHApAA̲AA(AطApA AAAA AzAA4AzAA A>A\AzAAAAzA\A>A AAzAAA(AAAAAA>AfAzAAAzARA(AAAHAAzAApAA(ApAAA A(A4A>A4AAAAAHAAA\AAzA AAAfAA4AAA>AA̮AA\AA§AA(ARAzA³ApA AARAApAAzAA\AAA\AAAA>A\AzApAzA\ARAAAA\AAAAAAfAAAAHA\ApApA\A4A AAA(AA\AARAA AfAAAA AAAAAAApA(AAA>AA\AAfAAHAAAzA̴AApAAA(AfAA̦A A4A\AARAAA4A̼ARAؿA\AA>AAA>AAAAA>A\AfA\ARA4AAAA>AApAAzAAHAAAA(ARARARA>AAAApA AA>AA4AAAHAzAAAAAAAAAARA AAzAAA>AAHA½A(AAA\AAARAA̮A AHAAAAA>AA4AAzAAA4AA>AAAzAA4AzAAAAA>AHA>A4AAAAfAAARAA\AA(AzAAA A4A4A4AAAAARAAAAAAAA(A\AAAAAAAAAfA4AAA\AAAAA(AA ApAعA>AAA4ApAAA(AfAAAAAfAA¹A\AAAAAAAA\AAA\AAAAAA(AAAAAAHAAA4AA>AA A\AAAAAAAAAApA4AAzAAAAfAA A>ApAAAAAAAzAHAAAA>AApAAA AAARAAApAµAARAA̮A AHApAAإAAHAAA>AؽApAAzAApAA>AAA>ApAAAAA AAAAApA>AAAAAAAA>AzAAAAAAAAAfAAA\AAfAAHAAAARApAAAAAzA\A(AAAfA AARAA\AAfA̾A4AAARAAA4ApAAAARAzAAA(AعAAAARAA\AARAAAzAAARAAAAAAAAAARAAAfAAAAzAAA\AAAAAAAAAHAAA>AAHAA(AAAA4ARApAzAAzA\A>A AAAHAAA4AA>AA4AAAzA̺A4AAµAARAA̮AA4A\AAA AAfAAA4AARAA4AAA\AAA4AfAAAAAAAAzAHAAAHAAfAA\AAA>AzAAAAAAAfA(AAAAA(AA AfAAAA4ARA\AfA\A>AAAApA(AApAAAAAAAA\AAARAAA4ApAAحAA>AfAAAAHAAzAAA4AAAAARAAA(A\AzAAAAAAzA\A(AAA(AAHAA>AAA4A\AAAAAApAHA AAfAAA AzAAHAAAA(A4A>AHA>AAAAARA AARAAAAzAApAؿA>AAA4AAµAARAzAAAAHApA̺AzA(A¿ApAAAAA AfAA4AzAA A>A\AzAAAAzA\A>A AAzAAA(AAAAAA>AfAzAAzAzARA(AAAHAAfAA\AA(ApAAA AAA(AAAAAzA4AAA4AAfAA\AARAAApA»AAfAAA4A\AA­AA(ARAA\A AARAApAAfAAHAAA\AAAA>A\AzApAzA\ARAAAA\AAAAAAfAAAAHA\ApApA\A4A AAzA(AA\AA>AA ARAAAAAA AAAAA\AAApAAAHAA>AA4AAARAAAHAAµAA>AzAAA A4AzA(AؿApA AA(AA4AAAAA(ApAAA A(AHARAHA>AAAAA(AA\AAfAA4AAAA(A>ARARA>AAAApA AA>AA4AAA4AzAAAAAAAAAARA AAfA AA>AA4AA(AAAHAAA>AzA̶A AHApAAحAA(A\A AARAAAAAAAAfAA ARAAAA A(A4A(AAAAAfA AA>AAHAAAfAAA AA4A4AAAAARAAAAAApAAA\AAAAAAAAAfA4AAAHAAAAAAA ApAA(AzA̼AA\AAAARAzAAA A>AAA4AAfAAAAzAAHAAA4AzAAAA AA AAAAAHAAA4AA(AA A\AAAAAAAAAApA4AAzAAAARAA A>ApAAAAAAAzAHAAAA(AApAAzAApAARAA A\AAA>AzAAA4A\AA­AAAAzAAAHAAfAA\AA(AAAA\AAAAAAAAAApA(AApAAAAAA>AzAAAAAAAAARAAA\AAfAAHAAAARApAAAAAzA\A(AAAfA AA>AA\AARAA4AAA>AAAA\AAصAA>AzAA̬AAA\AAA(AAHAA>AA AfAA A>ApAAAAAAAAARA AAfAAAAfAAA\AAAAAAAApA4AAA>AAHAA(ApAAA4ARApAzApAfA\A>A AAAHAAAAA>AA4AAAfAAApA½AA>AzAAAAHAAAAA>AAA AA(AAAAAHAAAARAAAAAAAAfA4AAAHAAfAAHAAA>AzAAAAAAARA(AAAAA(AA ARAAAA4ARA\ARAHA>AAAApA(AApAAAAAAzAAHAAARAAAA\AAصAA(ARAAApAAAfAAA AAApAA(AAAA4AfAAAAAAzAHAAAA(AAHAA(AAAA\AAAAAApAHA AAfAAA AzAAHAAAAA4A>A4A(AAAAARA AARAApAAzAA\AA(AAA4ApA½AA>AzAAA A4A\AARAAAHAAfAApAARAA AfAAA(AHAfAAzAAzA\A(AAAfA AA(AA ApAAA>AfAzAAzAfARA(AAAHAAfAA\AA(ApAAAAAAA AAAAzA4AAA4AARAA\AA>AA ApAAARAAAA\AAµAAA>AA4AAA(AAHAARAA4AAAHAAA A(AHAfApAfA\A>A AAAHAAzA AAARAAAAHA\ApA\A\A4A AAzA(AAHAA>AA ARAAAAAAAAAAA\AAApAAA4AA>AAAAA>AAA4AA½AA>AfAA̴AAAfAAApA AA(AA4AAAAA(ApAAA A(AHARAHA>AAAAA(AA\AAfAA4AAAA(A>ARARA>AAAA\A AA>AAAAA4AfAAAAAAAAApA>AAARAAAAAAAAfAAAAAARAAA AHApAAسAAHA AARAAA AAAAAfAA ARAAAA A(A4A(AAAAAfA AARAAHAA(AfAAA AA4A4AAAAA>AAAAAApAAAHAzAAAAAAAARAAAA4AAfAAAAzAAHAAARAAA4AA½AA(ARAAAA>AAA4AAfAAAAfAAHAAA4AzAAAA AA AAAAAHAAA4AA>AA A\AAAAAAAAAApAAAfAApAARAAA(A\AAAAAAAfA4AAApAAAHAARAAHAA(AAA4AAAARAA̼A A4A\AA³AAAzAAAHAAfAA\AA(AAAA\AAAAAAAAAApA(AAAAAAAA>AzAAAAAAAAARAAAHAARAA4AAA A>ApAzAAzApAfAHAAAA>AAA(AA4AA(AA ApAAAfAAA4ApAAAA>AzAAAA\AAA(AAHAA>AA AfAA A>ApAAAAAAAAARA AAfAAAAfAAA\AAAAAAAApA4AAA(AAHAAApAAAARA\AfA\ARAHAAAAzAAAzA AAAA AAA>AAAHAAAARAAAAAHApAAA>AApA AA(AAAAAHAAAARAAAAAAAAfA4AAAHAAfAAHAAA>AzAAAAAAARAAApA AA(AAARAAAA4A>AHA>A4A(AAAA\AAAHAAzAApAAfAAAAA(AfAAA4ApAAػAA(ARAApAAAfAAA AAApAA(AAAA4AfAAAAAAzAHAAAA(AAHAA(AAAA\AAAAAApA4AAARAAA AzAA4AzAAAAA(AAA AAApA>AAA(AA\AARAA4AAAfAA AHAAAARAzAAA A4AARAAAHAAfAApAARAA AfAAA(AHAfAAzAAzA\A(AAAfA AA(AAApAAA>AfAzAzAzAfARAAAAHAAfAA\AAA\AAAAA AAAAAARAAAzA AA>AA4AAAzAAHAAA(AzAAAA\AA»AAAA4AAzA(AAHAARAA4AAAHAAA A(AHAfApAfA\A>A AAAHAAzA AAARAAAAHA\ApA\AHA4A AAzA(AAHAA>AAA>AAAAAAAAAAzA4AAAHAAAAAAAA\AA(AzAA AHAAAA>AfAA̺AAfAAApA AA(AA4AAApAA(ApAAA A(AHARAHA>AAAAA(AApAAfAA4AAAA(A>ARA>A(AAAA\A AA(AAAzAAAfAAAAAAAAzA\AAAA(AApAAzAApAA>AAA\AAA(AfAAAAHApAAعAHAAARAAA AAAAAfAA ARAAAA A(A4A(AAAAAfA AARAA\AA(AzAAA AA4A4AAAAA>AAA AAA\AAAHAfAAAAAAA\A>AAAfA AA>AA\AARAAAAA(AzAA AHAAAA(ARAzAA(AAA4AAfAApAAfAAHAAA4AzAAAA AA AAAAAHAAA4AA>AA A\AAAAAAAAAApAAAfAApAA>AAA(AHAzAAAAzApA>AAAAHAAAAA>AA4AAAfAA A\AAA(AfAAA A4A\AA AAfAAAHAARAAHAA(AAAA\AAAAAAAAAApA(AAAAAAAA>AzAAAAAAAAARAAAHAARAAAzAA A>A\AfApAfA\ARAAAApA(AApAAAAAAzAAHAAA>AAA AHAAAAA>AfAAAHAAA(AAHAA>AA AfAA A>ApAAAAAAAAARA AAfAAAAfAAA\AAAAAAAApA4AAA(AA4AAA\AAAA>AHARAHA>A4AAAARA AARAApAAzAA\AA(AzAAA\AAA(AfAAAAAHAAA(AApA AA(AAAAAHAAAARAAAAAAAAfA4AAAHAAfAAHAAA>AzAAAAAAzARAAApA AAAAA>AAAAA(A4A(AAAAAzA4AAA4AARAA\AA>AAA\AAA>AAA A4ApAAAA(AA\A AARAApAAzAA\AA(ApAAA4AfAAAAAAfAHAAAA(AAHAA(AAAA\ApAAAAA\A4AAARAApAAfAAAfAAAA AA AAAAA\AAApAAA4AA>AAAAA>AAAApAAAARAzAAA AA>AAA4AARAA\AA>AA ARAAAAHAfApAzApAfAHA(AAAfA AA(AA ApAAA>ARAzAzAzAfA>AAAA4AARAAHAAAHAAAAAAAAAApA>AAARAAAAA AAAfAAApAAA>AAAA4A\AAAApAAAzAAA4AA>AAAAA4AzAAA(AHARA\AfAHA(A AAAHAAzA AAARAAAAHA\A\A\AHAAAAfAAA4AA(AAA(ApAAAAAAAAARAAAA4AAfAApAAfAA4AAARAAAA\AAAA>AfAAARAAA\AAAAAAAApAAA\AAA A(A4A>AHA(AAAApA(AA\AAfAA4AAAA(A>A>A>A(AAAAHAAAAA AfAA ARApAAAAAAAfA4AAApAAAHAARAAHAAAzAAApAAA>AzAAAAHApAA4AAA>AApAAzAApAARAAARAAAA AAA(A AAAARA AA>AAHAAAfAAA AAAA AAAzA(AApAAzAAHAAA4ARAAAAAAfAHAAAARAAA(AA4AA(AAA\AAARAAAA\AAAA(ARAzAAApAAARAA\AAfAA4AAA4AfAAAAAA AAAAzA4AAAAA(AAAHAAAAAAAAAA\A AARAA\AA(AAAA4ARApAzApAfAHA(AAAzAAAfA AAAA ApAA>AAA4ApAAA>AfAAA A4A\AAARAAA4AARAAHAAApAAAHAzAAAAAAAAA\A(AApAAA AAA(AfAAAAAAAAzA>AAA4AA>AA AfAAAA4ARA\ARAHA(A AAA\AAAHAAfAApAARAA ApAAARAAAAHAAAAA>AAA4AAzAAA4AA(AAARAAA(A\AAAAAAAApA>A AARAApAAfAA A\AAAAAAAA\AAAzAAAAAAHAAAAA4A>A4A(A AAApA>AAA(AAHAARAA4AAARAAA4ApAAA(AfAAAA AAzAAA\AAAAA AzAA4AAA ARApAAAAAAAfAAAA4AARAAHAAA>AfAAAAAAzA>AAA\AAzAApAA(ApAAAAAAA AAAARA AAfA AA(AA4AAAfAAAAAARAAA A4ApAAAAA\AAA>AApAAfAA\AAApAAA4ARApAAAAAfAHAAApAAA4AA(AAAAHApAAAApA\AAAA>AA\AARAA ARAAAAAAAAAAzA4AAAHAAzA AAAzAAHAAARAAA4ApAAAARAzAAAzA>AAAAARAA\AA>AAARAAAA4ARApAzApAfAHA(AAAfAAAAA ApAABB)B3B=B3B)BBBAAAARAA4AAA4AzAAAAAAAAzA\AAAA(AA\AAfAA\AA(AAA4AAAARAAAAA\AAA\AAAfAAA4AA>AAAzAA4AzAAAA4ARA\ARAHA(A AAAHAAzA AAA)BRBqBBBBBBBBqBRB3BBA4AAApAAAHAzAAAAAAA\A>AAAfA AA>AAHAA>AA ApAAAfAAA4ApAAAA>AfAARAAAHAAzAAAAAA\AAA\AAAAA4A>A4A(A AAApA(AA\AA3BfBBBBB BBBB BBBBBqB=B BAARAAA(A\AzAAAAzApA>A AAAHAAAAA(AAAAA>AAAHAAAA>AzAAA A4A\A4AAA(AA\AAzAApAA>AAA>AAAA AAAA AAAARA AABfBBB B3BRBfB{BBBB{BqBRB3BBBB{B3BA4AAA A>A\AzApAzA\ARAAAApA(AA\AAzA AAAfAAAAAAfAAAA\AAAAA>AAApA AA>AA\AARAA4AAAAfAAAAAAAAAAzA4AAHBBBBHB{BBBBBBBBBBBBBRBBBB\B BpAAAA>A\ARA\A>A4AAAARAAA>AA\AAfAAHAAARAAAHAAAA>AfAAAAAAARAAAAA>AA4AAApAAAHAzAAAAAAAAA\A BfBBBHBBBBB3BRB\BfBqBqBfBRB=BBBBB\BBB{B)BAAAA>A4A>AAAAAzA4AAzAAA>AAHAAAzAA4AAA(AfAAAAHApAAAAAA4AAzAAAAAAAARAAA(A\AAAAAAAApAB{BB)BqBBB)B\BBBBBBBBBBBBfB3BBBB=BBB=BAAAAAAAAAA\AAA\AAAAAAAA\AAAfAAAHAAAA(ARAzAAAAfAAA\AAzAAAAfAA4AzAA A>ApAAAAAAA)BBBHBBB)BfBBBBB3BHBRBRBRBHB3BBBBBqB=BBB\B BBHBAAAAAAAApA>AAA>AApAAzAApAA>AAAHAAA(AfAAA A4A\AAAAHAAA>AA\AAfAAHAAA\AAAARApAzAAAA3BBBfBB BRBBBB=BfBBBBBBBBBBqBHBBBBfBBB{BBBRBAAAAAAARA AAzAAARAA\AARAAApAA(AzAAA4ApAAAA>AfAAzA(AApAAA>AAHAA(AAARAAAA4ARApAzApA3BB BqBB)B{BB BHBBBBBB)B3B3B3B)BBBBBBRBBBB=BBB)BBRBAAAAAfA4AAA\AAA4AA>AA4AAARAA AHAAAARAAAAAHApA\A AAfAAAAA(AA AzAA4AzAAAA4ARA\A)BBBBBHBBB=B{BBBBHBfBBBBBBBBqBRB)BBBBHBBB\BBB3BBHBAAAfAHAAAA>AAAAAAAAzAA4AAA(AzAAA4ApAAAA(ARA>AAAHAAzAAA AAA\AAA\AAAAA4ABBBBB\BB B\BBB)BfBBBBB BBBB BBBBBqB3BBBqBBBqB BB3BB=BpAfAHA(AAAfAAARAApAAzAAHAAAfAA AHAAAA>AzAAAA4AAAzA(AA\AAfAApAA>AAA>ApAAAA BB BBBfBB)BBBB\BBBB)BRBfB{BBBB{BfBRB3B BBBqB)BBB=BB{BBB)BB)BHA(A AAAHAAA4AARAAHAA(AAAHAAA(AzAAAA\AAAAAAA\A AA>AA\AARAAAzAAAfAAAA{BB{BBfBB=BBBHBBBBHB{BBBBBBBBBBBB{BRBBBBRBBBRBBBBBBBB AAApA(AAAAA4AA(AA ApAA(AzAA AHAAAA(AfAAAA AAfAAA4AARAAHAA(AAAA\AAAqBB{BBqBBRBBBqBB BHBBBBB3BRBfBqBqBqB\BRB3BBBBBRB BBqBBB\BBB BB B{BAAARA AARAAAAA ApAA>AAAHAAAAfAAAA4A\AAAAAHAAA(AA4AA(AA AfAAA>ApARBBfBBqBBRBB)BBB3B{BBB3B\BBBBBBBBBBBB\B3BBB{B3BBB3BBfBB{BB{BB\BAfAAAA4AAfAApAARAAAAA(AzAAA4ApAAAA>AfAAAzA(AApA AAAA AzAAHAAAA)BBRBB\BBRBB3BBBRBBB3BqBBBBB3BHBRBRBRBHB3BBBBBqB3BBBRBBB=BBfBBqBB\BB=BHAAApAAA4AA>AA4AAARAA AHAAAARAAAAAHApAA\A AARAApAAzAA\AA(AAABB3BBHBBRBB=BB BfBBB\BBBBHBfBBBBBBBBBBfB=BBBB\BBBqBBBHBB\BB\BB=BBBAARAAAAAAAAzAA4AAA(AzAAA4A\AAAAA>AA>AAA4AARAA\AA>AA AfAAqB BB3BB=BB=BBB{BB3BBBBRBBBBBB)B3B3B3B)BBBBBBRBBBB3BBBBBHBBRBB=BBBBAzA4AAfAAAAzAA\AAAfAA AHAAAA>AzAAAAApAAAzAAA4AA>AA4AAAHAHBB{BBB3BB3BBBBBRBBB=BBBB)BRBqBBBBBBBBfBHBBBBB=BBBRBBB)BB=BB=BBBBBRB\AAAHAAfAA\AA>AAAHAAA(AfAAAAHAAAAARAAA\AAAAAAAApAABBRBBBBB)BBBBB\BBBfBBB3BfBBBBB B B B B BBBBBfB3BBBfBBBfBBBBB)BBBBBfBBBAA(AAHAA>AA ApAA(AzAA AHAAAA(AfAAAA4AAA>AApAAAAAARAAB)BBfBBBBBBBBqBB3BBBBfBBB B3 BR Bf B{ B B B B{ Bf BR B) B BBBfBBBB3BBqB BBBBBBBfBB3BBAfA AAAAAAARAA A\AAA(AfAAA A4A\AAAAApAAARAApAAfAA4AHBBB=BBfBBB BBBqBBHBBBHBBB BH B{ B B B B B B B B B B B B{ BH B BBBHBBBHBBqBBB BBBqBB=BBBRBHAAzAAAAfAA4AAA>AzAA AHAAAAA>AfAAAARAAA4AARAAHAA BBfB BBHBBfBB{BBqBBRBBBfBB BH B B B B B3 BH B\ Bf Bf Bf B\ BH B3 B B B B BH B BBfBBBRBBqBB{BBqBBHBBBqBBBAHAARAAHAAAfAA A\AAA(ARAAAAAHApAAA4AAzAAA4AA(AA{B)BB{BBBRBBfBBfBBRBB)BBB) B{ B B B3 B\ B B B B B B B B B B B{ B\ B) B B Bq B) BBB)BBRBBqBBfBBRBBBBB3BBA(AA4AA(AAAHAAA>AzAAA4ApAAAA(ARAAzAAA\AAAAA A=BBBHBBB)BBRBB\BBRBB3BBBR B B B) Bf B B B B B3 B= BH BR BH B= B) B B B B Bf B) B B BH BBB3BBRBB\BBRBB)BBBHBBB=B AAAAApAA(AzAAA\AAAARAzAAA A4AA\AAA>AApAAzAABfBBB\BBB3BBHBBRBB3BB Bf B B B\ B B B B= Bf B B B B B B B B B Bf B= B B B BR B B Bf B BB3BBHBBHBB3BBB\BBBfBBAzAApAA>AA A\AAA>AzAAAA\AAAAAzA>AAAAARAA\AfBBBB)BBqB BB3BB=BB3BB B{ B B3 B B B BR B B B B B B B) B3 B) B B B B B B{ BH B B B{ B) B B{ B BB3BB=BB)BB BqBB)B{BBBfB\AARAAAAA>AAAA\AAAA>AfAAAA\AAAfAAA4AABBBHBBB=BB{BBB)BB3BB B B BH B B B= B B B B BH Bf B B B B B B B{ Bf BH B B B B{ B3 B B BH B B B BB)BB)BB B{BB=BBB=BBBBAAAAfAA A\AAA>AzAAA AHApAAARAAAHAAzAAABHBBBfB BBRBBBBBBB B B B\ B B Bf B B B3 Bf B B B B B B B B B B B B B B\ B) B B B\ B B B\ B B B BBBB B{BBRBB B\BBBHBBAAzAAHAAA>AAA AHAAAAARAzAA4AAA(AApAA=BBBqB)BBB)BB\BBBBB B B Bf B B) B B B Bf B B B B) BR Bf B{ B B B{ Bq B\ BH B) B B B B\ B B B{ B) B Bf B B B BB B{BB\BBB{BBBfBBB3BA\AAAzAAApAAA(AfAAAAAHApAAApA AARAABqB)BBBHBBB3BBfBBB B B Bq B B= B B BH B B B BH B{ B B B B B B B B B B B Bq B= B B B B= B B B3 B Bf B B{ B B{BB\BB)BBB=BBBBfBBA(AAA\AAA>AAA AHApAAAA(ARAAARAAA4A\BBBBRB BBfB BBHBBfBB{ B Bq B BR B B Bf B B BH B B B BB3BHB\BfBfB\BRB=B)B B B B{ B= B B B\ B B BH B Bf B Bq BB\BB3BBBRBBBHBBBBRB ApAA(AAAApAAAARAzAAA A4AAA4AAzA BBBRBBB{B)BB{BBBHBBf B Bf B BR B B B B B) Bq B B B)B\BBBBBBBBBBB{BRBB B Bf B B B{ B B BH B B\ B BR BB=BB BfBBBqBBBHBBBARAA A\AAA>AzAAA4A\AAAAAAfAAA\A{B=BBBB=BBBHBBB)BBH B B\ B BR B B3 B B BH B B B)BfBBBBB)B=BHBHBHB3B)B BBBB\BB B B= B B B B BH B BH B B= BBB{BB3BBB)BqBBB)BfB4AAA>AAAA\AAAA>AfAAAAAHAAABBB{B3BBB\B BB\BBB) B BH B BH B B3 B B Bf B B B\BBB B=BfBBBBBBBBB{B\B3BBBBHBB B\ B B B) B B= B B3 B B BBBHBBBHBBBB\BBB BfAAApAAA>AzAAAAHApAAAzA(AAAB\BBBBfBBB{B)BBqB B B3 B B= B B3 B B B{ B B3B{BB BHBBBBB BB)B)B)BB BBBBqB=BBBqBB Bf B B B) B B) B B B BB\BBBfBB BHBBB B=BqBHAAARAAAA\AAAA(ARAzAA\A AA3BBBB\BBBB=BBB=BB{ B B B) B B) B B B B BHBBB=B{BBBBHBfB{BBBBBB{B\B=BBBBqB)BBB=B Bq B B B B B B B Bf BB)BBB)BqBBB=B{BBBBzAAApAAA(AfAAAA4A\AA>AAABqB=BBBBHBBB\B BBR B B{ B B B B B B B B\BB B\BBB)B\BBBBBB B BBBBBBBRBBBBRBBBHB Bq B B B B B Bf B B3 BBBHBBB)BfBBBBRB{B\AAA>AAA AHApAAAA(ARAAA=B BBBqB3BBBqBBB{B B B\ B B{ B B B B B BfBB)B{BBB\BBBB)BHB\BqB{B{BqBfBRB=BBBBBRB BBqBBBRB Bq B B{ B Bf B B= B B B\BBBRBBBBRBBBBBAAApAAAARAzAAA A4AAABBRBBBBfB)BBB=BB B3 B B\ B B{ B B{ B BfBB=BBB=BBB B=BqBBBBBBBBBBBBfB3BBB{B3BBB)BBRB Bf B Bf B BH B B Bq BBBqBB BHBBBB)B\BBpAAA>AAAA4A\AAAAAAHBBBBBRBBBBRBBB\ B B B= B Bf B Bq B BfBBHBB BfBBB=B{BBB B)B=BRB\B\B\BHB3BBBBBqB3BBBRBBB3BBRB B\ B BH B B B B B= BBB)BqBBB3BfBBBBBAAA\AAAA>AfAAAAABBfB3BBBBHB BBqB) B Bq B B BH B B\ B BfBBRBBB{BB)BqBBB)BRB{BBBBBBBBBBqBHBBBB\BBBfB BB3BBHB B= B B) B B BR B B BRBBB)BfBBB B=BfBBpAAA>AzAAAAHApAAARB)BBBBqB=BBB{B3BB B= B B B B BH B BRBBHBB)BBBHBBB)BfBBBB BB3B=B=B=B)BBBBBBRBBBB3BB{BBB3BB3B B) B B Bf B B Bq BB BRBBB BHB{BBBB)BAAA\AAAA(ARAzAABBqBHBBBBqB3BBB\ B B BR B B B) B B=BBHBB3BBB\BB BRBBB B3B\B{BBBBBBBBqBRB)BBBB=BBBHBBBBB)BBB B Bq B B3 B B B3 B{BBB=B{BBBBHBqBBpAAA>AfAAAA4A\AA3B BBBBRBBBB\B B B{ B B Bf B B B)BB=BB3BB BqBB)B{BB BHB{BBBB BBBBBBBBBBfB3BBBfBBB\BBBBBBB Bq B B= B B BR B BB3BqBBBBRBBBBB)BAA AHAAAAA(ARAB{BRB)BBBBRBBB B= B B B= B Bq B BB)BB)BBB{BBHBBB3B{BBBB=B\B{BBBBBBqBRB3B BBBfBBBB)BBfBBB BBBqB BR B B Bf B B B\ BBBB\BBBBBHBqBBpAAA(ARAAAA A4ABBBBfB3BBBB= B B B\ B B BH B B{B BBBBBBBRBB B\BBB)B\BBBBBBBBBBBBB{BHBBBBHBBB=BBfBB{BBqBBRB B B{ B B) B{ B B BRBBBB3BfBBBB B)BAA A4A\AAAAABfB3B BBBqB3BB Bf B B B{ B B B\BB{B BB BBBfBB)B{BBB\BBBBBHB\BfBqBqBqBfBRB3BBBBBHBBBfB BBHBBfBBfBBRBB)B B BH B B B3 B{ BBB3BqBBBB)BRBqBBpAAAA>AfAAAABBB{BRBBBBf B) B B B= B B B3BB\BB{BB{BBfBB=BBB=BBB B=BqBBBBBBBBBBBB\B)BBBqB)BB{BBBHBB\BBRBB3BBB\ B B B\ B B B3 BqBBBB=BqBBBBBBzAAAAHApAAAfBHBBBBBRB B B BR B B B\ BBB=BBfBBqBBfBBHBB BfBBB=B{BBB B)B=BRBRB\BRBHB3BBBBBfB)BBBHBBBBB=BBHBB3BB BqB B) B{ B B B\ B BBBHB{BBB B)BRBqBB\AAAA(ARAzAABBB\B3BBB BH B B Bq B B BqBBBHBB\BB\BBHBBB{BBBqBBBBRB{BBBBBBBBBBfB=B BBBRB BB\BBB)BB3BB3BBB{BB=B B B= B B B BH BBBBBHBqBBBBBBzAAA A4A\AARB)BBBBqB3 B B B{ B3 B B B=BBBBBHBBRBBHBB)BBBHBBBB\BBBB BB3B=B=B3B)BBBBB{BHB BB{B)BBfBBBBB)BBBBBRBBB\ B B B= B{ B BB)B\BBBB B)BRBqBBHAAAAA>AfABBqBHBBB Bq B) B B BR B BBRBBB)BB=BBHBB3BBB\BB BRBBB B3B\B{BBBBBBBBfBHBBBB{B3BBB=BBqB BBBBBBB\BBBqB B Bf B B B) Bf BBBB)BRB{BBBBBBfAAAA A4A3B BBBBR B B B B\ B B B{BBBfBBB)BB3BB3BB BqBB)B{BB BHB{BBBBBBBBB BBBBB\B)BBB\BBBHBB{BBB B{BB\BB)BBB3B B B B\ B B B B=BfBBBB B)BHBfBB4ApAAAAAB{BRB)BB B BR B B B B=BBB=BBqB BB)BB)BBB{BB=BBB3B{BBBB=B\BqBBBBB{BfBHB)BBBB\BBBqBBBRBBqBB{BBfBB=BBBRBB B= B B B B= Bq BBBB)BRB{BBBBB B>AzAAAABBBBf B3 B B B B= B BB\BBBHBB{B BBBBBBBRBB B\BBB)B\BBBBBBBBBBBBBqB=B BBB=BBB)BBRBBfBB\BB=BB BfBBBfB B B3 Bq B B B BHBqBBBB B)BHB\B{BAHApAAAB\B3B B B Bq B3 B B BfBBB{BBB\BB{B BB BBBfBB)B{BBB\BBBBB=BRBfBqBqBfB\BHB)B BBB{B=BBBRBBB3BBRBBRBB=BBB{BB3BBBBf B B B BR B BBB B3BRBqBBBBBB(ARAzAABBB{ BH B B B Bf BBBB=BBB)BB\BB{BB{BBfBB=BBB=BBB B=BqBBBBBBBBBBB{BRBBBBfBBBqB BB3BBHBB=BBBBBHBBB=BB B BR B B B B BRB{BBBBBB=BRBqB A4A\AAfB=B B B B BR B B BBHBBB\BBB=BB\BBqBBfBBHBB B\BBB=B{BBBBB=BHBRBRBRB=B)BBBBB\BBBB3BB{BBB3BB3BBBBB\BB BfBBB=B B B B3 Bf B BBB B3BRBqBBBBBAA>AfABB B\ B) B B B BHBBBqBBBqBBB=BB\BB\BBHBBB{BBBfBBBBRBqBBBBBBBBBB\B3BBBBHBBBRBBBBB)BBBBBfBB)B{BBBfBB B3 Bf B B B B) BRB{BBBBBB3BHB\BA A4AHB B B B Bf B3 B BB{B3BBB=BBBBBHBBRBBHBB)BBBHBBBB\BBBBBB)B3B3B3BB BBBBqB=BBBfBBB\BBBBBBBBqBB3BBB=BBBB\B B B B= Bq B BBB B)BHBfBBBBBAAAB Bq BH B B B BqB3BBB\B BB\BBB)BBHBBHBB3BBBfBB BRBBB B3B\B{BBBBBBBBfB=BBBBqB)BBB3BBfBBB BBBqBBHBBB\BBBHBBB BH B{ B B B B3 BRB{BBBBB BB3BRBAA3 B B B B BR BBBBfBBB{B)BBqB BB)BB=BB3BBB{BB)B{BB BHB{BBBBBBBBB BBBBBRBBBBHBBB=BBfBB{BBfBBHBBBqBBBfBBB=B{B B B BH Bq B BBB B)BHB\B{BBBBAA B B\ B) B B BBRBBBB=BBB=BB{BBB)BB)BBBBBHBBB3B{BBBB=B\BqBBBBB{BfBHBBBBBRB BBfB BBHBBfBBfBBRBBBBB=BBBBfBBBBR B B B B B3 BRBqBBBBBBB)B=BA B B B Bq B=BBBBHBBB\B BBRBBBBBBBBBB\BB B\BBB)B\BBBBBBBBBBBBBfB3BBB{B)BB{BBBHBBRBBHBB)BBBRBBBHBBBBRBB B B) BR B{ B BBBBB=BRBfBBBBA Bf B= B B BBqB3BBBqBBB{BBB\BBB BBBBBfBB)BBBB\BBBBB=BRBfBqBqBfB\BHB)BBBBqB3BBBHBBB)BB=BBHBB)BBBfBBBfBBBHBBBB3Bf B B B B B3 BRBqBBBBBBBB)B B B B{ BRBBBBfB)BBBHBBB3BBfBB{BBBBqBB=BBB=BBB B=BqBBBBBBBBBBBqBHBBBB\B BB\BBB)BB3BB)BB BqBB3BBB)BqBBB3BfBB B B) BR B{ B BBBBB3BHB\BqBBBq BH B B BBBRBBBBRBBB\BBB=BBfBBqBBqBBHBB BfBBB=B{BBBBB=BHBRBRBHB=B)B BBBBRBBB{B)BBqBBBBBBB B{BB=BBBHBBBBfBBB B=Bq B B B B B) BHBfBBBBBBB B B B BfB3BBBBRB BB{B)BB{BBBHBBfBBfBBRBBB{BB)BqBBBBRBqBBBBBBBBB{BRB)BBBB=BBB=BBqB BBBB B{BBRBB BfBBBRBBB BHB{BB B B3 BR B{ B BBBB BB3BRB\BqBR B) BBBBqB=BBB{B3BBB=BBBBBHBB\BBRBB)BBBHBBBB\BBBBBB)B3B3B)BB BBBBfB3BBB\B BBRBBqBBBB{BBRBBB{BB)BqBBB=B{BBBBHB{ B B B B B) BHB\B{BBBBBB B BqBHBBBBqB3BBB\B BB\BBB)BBHBBHBB3BBB\BB BRBBBB3B\BqBBBBBBB{B\B3B BBBfBBB{BBBRBBqBBqBB\BB)BBB=BBB)BqBBB)B\BBB B B3 BR Bq B BBBBBB)B=BRB3 B BBBBRBBBB\BBB{B)BBfB BB)BB=BB3BB BqBB)B{BB B=B{BBBB B B B B B BBBB{BHBBBB=BBB)BBRBBfBBRBB3BBB\BBBRBBBB\BBBB)BRB{ B B B B B B=BRBfB{BBBB B{BRB)BBBBRBBBB=BBB=BB{B BB)BB)BBBBBHBBB3B{BBB B= B\ Bq B{ B B B{ Bq B\ B= B BBBBHBBB\BBB3BBRBBRBB3BB BqBBBqBB BHBBBB3BfBBB B B3 BR Bq B BBBBBBB)BBBBBfB3BBBB=BBB\B BBRBB{B BBBBBBB\BB B\BBB) B\ B B B B B B B B B B B B B\ B) BBBqBBBqB BB3BB=BB3BBB{BB3BBB)BqBBB3BqBBBB)BRB{ B B B B B B)BHB\BqBBBB\B3B BBBqB3BBBfBBB{BBB\BBB BB BBBfBB)B{BB B\ B B B B!B=!BR!B\!Bf!Bf!B\!BR!B=!B!B!B B Bf B) BBB=BB{BBB)BB)BBBBBHBBBRBBB)BfBBBBHBqBBB B B) BH Bf B BBBBBB BBBB{BHBBBBfB)BBB=BBB3BBfBB{BB{BBfBB=BBB= B B B !B=!Bf!B!B!B!B!B!B!B!B!B!B!Bq!B=!B !B B BR B BBRBBBBBBBBBB\BBBfBB BRBBBBHB{BBB B3BRB{ B B B B B BB3BHB\BqBfB=BBBBBRBBBBRBBB\BBB=BBfBBqBBfBBHBB B\ B B B=!B{!B!B!B"B"B3"B="BH"BH"B="B3"B"B"B!B!B{!BH!B!B Bq B BB\BBB BB BBB\BB)BBB)B{BB BHBBBBBHB{BBB B B) B= B\ Bq BBBBBBBBB\B)BBBBHB BBqBBBqBBBHBB\BBfBBRBB B{ B B!Bf!B!B!B"BH"Bq"B"B"B"B"B"B"B"B"Bq"BR"B"B!B!Bq!B)!B B B3 BBfBB{BB{BBfBB3BBBHBBB3BqBBB)B\BBBB B3BRBq B B B B BBB)B=BRBHB)BBBBqB3BBB{B3BBB=BBBBBHBBRBBHBB) B B BH!B!B!B"B\"B"B"B"B#B#B)#B)#B)#B#B#B#B"B"B"B\"B)"B!B!BR!B B B= BBfBBqBBfBB=BB B\BB BRBBBB\BBBB)BRB{BBB B B B3 BR Bf B{BBBBBBqB=BBBBqB)BBBRB BBRBBB)BBHBBHBB3 B B!B\!B!B"BR"B"B"B#B)#BR#Bq#B#B#B#B#B#B#Bq#BR#B)#B#B"B"BR"B "B!Bf!B !B BH BB\BB\BB=BBBqBB)B{BB BRBBBB3BfBBBB B3BRBq B B B B BBBB)B)B BBBBRBBBB\BBB{BBBfBBB)BB=BB3 B B !Bq!B!B)"B{"B"B#B=#Bq#B#B#B#B#B $B $B $B $B#B#B#B#Bq#B=#B #B"B{"B3"B!B{!B!B B= BBRBB=BBBBB=BBB3B{BBB=BqBBBB3BRB{BBB B B B) B= B\ BqBBBB{BRBBBBBRBBBB=BBB=BBqB BB)BB) B B!B{!B!B="B"B"B3#Bq#B#B#B$B3$BR$Bf$B{$B{$B{$B{$Bf$BR$B3$B $B#B#B{#B3#B"B"BH"B!B!B!B B= BB=BBBBBRBBBRBBB)BqBBBBHBqBBBB B)BHBf B{ B B B BBBB BBBBfB3BBBB=BBB\B BBHBB{B BB B B!B!B!BR"B"B #B\#B#B#B$BR$B$B$B$B$B$B$B$B$B$B$B$B{$BR$B$B#B#B\#B#B"B\"B"B!B!B B) BBBBB\BBBqBBB\BBBBRBBBB B3BRB{BBB B B B B3 BH B\BqBB\B3B BBBqB3BBBfBBB{BBB\BB{B B B !B!B!Bf"B"B)#B{#B#B$BR$B$B$B$B%B3%BH%B\%B\%B\%B\%BH%B3%B%B$B$B$B\$B$B#B#B)#B"Bf"B"B!B!B B BBBfBB3BBB3B{BB BHBBBBBRB{BBBB B)B=B\ Bq B B B BBBBBB{BHBBBBfBBBB=BBB3BB\BB{ B!B{!B!Bf"B"B3#B#B#B=$B$B$B%B3%Bf%B%B%B%B%B%B%B%B%B%B%B\%B3%B%B$B$B=$B#B#B=#B"Bq"B"B!B !B B BqBB=BBBRBBB3B{BBB)B\BBBB B3BRBqBBB B B B B B3 BHB\B3B BBB{BHB BBBHBBBRBBB3BB\ B Bq!B!Bf"B"B=#B#B$B\$B$B$B3%Bq%B%B%B%B&B)&B=&BH&BH&B=&B)&B&B%B%B%B{%B=%B%B$Bf$B $B#BR#B"B{"B"B!B!Bq BBRBBBqBBBfBBB)BfBBBB3B\BBBBB B)B=B\ Bq B B B BBBB{BRBBBB{B=BBBfBBBfB BB= B B\!B!B\"B"BH#B#B$B{$B$B%Bf%B%B%B&BH&Bf&B&B&B&B&B&B&B&B&Bf&BH&B&B%B%Bf%B%B$B{$B$B#BR#B"Bq"B!Bq!B BR BBBBB3BBBB\BBB B=BqBBBBB=B\B{BBB B B B B B3 B=BBBBB\B)BBBqB)BBB3BB{B B B=!B!BR"B"BH#B#B)$B$B$B=%B%B%B&BR&B&B&B&B&B'B'B)'B)'B'B 'B&B&B&B&BR&B&B%B%BH%B$B$B3$B#BR#B"B\"B!BR!B B) BBBHBBB=BBB BHB{BBB B3B\BBBBBBB3BH B\ Bq B B BBB\B3BBBB\BBBBRBBBRBB B!B!B="B"B=#B#B)$B$B$B\%B%B&BH&B&B&B'B)'BR'Bf'B'B'B'B'B'B{'Bf'BH'B)'B&B&B&BH&B&B%B\%B%B$B3$B#BR#B"BH"B!B3!B B B\BBBfBBB=B{BBBBRB{BBBBB3BRBqBBB B B B B BBBBB{BHB BBBRB BBqBBB\ B!B!B"B"B3#B#B)$B$B %Bq%B%B&Bq&B&B'B='Bq'B'B'B'B'B(B (B (B(B'B'B'B'Bf'B3'B'B&Bq&B)&B%Bq%B %B$B3$B#B=#B"B3"B!B !Bq BB)B{BBBfBBBB\BBBBB=B\BBBBBB BB= BR Bf Bq BBfBHBBBB{BHB BB{B3BBB3 B Bq!B"B"B#B#B$B$B %B{%B%B=&B&B&B)'Bq'B'B'B (B3(BR(Bf(Bq(B{(B{(Bq(B\(BH(B)(B (B'B'Bq'B)'B&B&B=&B%B{%B%B$B)$B#B)#B"B "B{!B B= BBB=BBBBRBBBB)BRBBBBB B)BHB\B{BB B B B BBBBB\B)BBB{B3BBBRB B BH!B!Bq"B #B#B$B$B %B{%B%BR&B&B'BR'B'B'B(BR(B{(B(B(B(B(B(B(B(B(B(B(B{(BH(B(B'B'BR'B'B&BR&B%B%B%B$B$B#B #B{"B!BH!B B B\BBB=BBBB3BfBBBBB=B\B{BBBBBBB) B= BR BqBRB)BBBB\B)BBB\BBBq B!B!BR"B"B{#B$B$B %B{%B%B\&B&B'Bq'B'B (BR(B(B(B(B)B3)BH)BR)B\)B\)BR)B=)B))B )B(B(B(BR(B (B'Bq'B'B&B\&B%B%B %B$B $B{#B"BR"B!B!Bq BBBfBBB3BfBBBB3B\BBBBB BB=BRBfB{B B B BBBBfB=B BBB\BBBB3 B B!B)"B"B\#B#Bq$B$B{%B%B\&B&B3'B'B'B3(B{(B(B)B3)B\)B)B)B)B)B)B)B)B)B)B{)B\)B))B(B(B{(B3(B'B'B3'B&Bf&B%B{%B%B{$B#B\#B"B)"B!B B= BBBB\BBB B=BqBBBBB3BRBqBBBBBBB B) BRB3B BBB{BHB BBB=BB BR!B!B"B3#B#B\$B$Bf%B%B\&B&B='B'B(B\(B(B(B3)Bq)B)B)B)B*B)*B3*B=*B=*B3*B*B *B)B)B)Bf)B))B(B(BR(B(B'B='B&B\&B%Bf%B$B\$B#B3#B"B!BR!B BBHBBB BHB{BBB B3B\BBBBBBB)BHB\BqB B BBB{BRBBBB{B=BBBf B!B!Bf"B #B#B=$B$BR%B%B\&B&BH'B'B(Bq(B(B)B\)B)B)B*B=*Bf*B*B*B*B*B*B*B*B{*B\*B=*B *B)B)B\)B)B(Bq(B(B'B='B&B\&B%BR%B$B3$B#B #Bf"B!B!Bf BBB=B{BBBBRB{BBBBB3BHBfBBBBBB B B3BBBBB\B)BBBfB B B!B3"B"B{#B$B$B=%B%BH&B&BH'B'B(B(B(B=)B)B)B*BR*B*B*B*B*B +B+B+B+B+B+B*B*B*B{*BH*B *B)B)B3)B(B{(B(B'B='B&BH&B%B3%B$B$B{#B"B3"B!B B BfBBBB\BBBBB3B\B{BBBBB BB3BHB\Bq BBB\B3BBBB\BBB BH!B!B"BH#B#B$B%B%B=&B&B='B'B)(B(B(BR)B)B*BH*B*B*B*B+BH+Bf+B{+B+B+B+B+Bq+B\+B=+B+B*B*B{*B=*B)B)BR)B(B(B(B'B3'B&B3&B%B%B{$B#BH#B"B!B=!B BBBRBBBB)BRB{BBBB B)B=B\BqBBBBB BBBBBqB=B BBBR B !B!Bf"B#B#B\$B$B%B&B&B3'B'B)(B(B)Bf)B)B*Bq*B*B*B3+Bf+B+B+B+B+B+B,B,B+B+B+B+B+B\+B)+B*B*Bf*B*B)B\)B(B(B(B'B)'B&B&B%B$BR$B#B #B\"B!B!B= BBBB3BfBBBBB3B\B{BBBBBB BB3BHBBfB=BBBB{B=B B B{!B)"B"B#B)$B$Bf%B&B&B'B'B(B(B )Bq)B)B3*B*B*B)+Bf+B+B+B,B),BH,B\,Bf,Bq,Bq,Bf,BR,B=,B,B+B+B+B\+B+B*B*B)*B)Bf)B)B(B(B'B'B&B%B\%B$B$B{#B"B"Bf!B BB3BfBBBB3B\B{BBBBBB3BRBfB{BBBBBBBBRBBBBq B3!B!B"BR#B#B$B=%B%Bq&B'B'B(B(B )B{)B)BH*B*B+BR+B+B+B,BH,B{,B,B,B,B,B,B,B,B,B,B,Bf,B=,B ,B+B+BH+B*B*B=*B)Bq)B)B(B(B{'B&Bf&B%B3%B$B#B=#B"B!B!B\ BBB B=BqBBBBB3BRBqBBBBBBB BBqBHBBBBB\B B B!B\"B #B#Bf$B%B%BR&B&Bq'B(B(B)B{)B)B\*B*B+Bq+B+B ,BH,B,B,B,B -B)-B=-BH-BR-BR-BH-B3-B-B-B,B,B{,B=,B,B+Bf+B +B*BH*B)Bq)B(Bq(B'Bf'B&B=&B%B%BR$B#B"BH"B!B B BHB{BBB B3B\B{BBBBBB)B=BRBfB{BBBBBfB3BBB BR!B"B"B#B3$B$B%B&B&BR'B'Bq(B(Bq)B)B\*B*B)+B+B+B3,B{,B,B,B)-B\-B{-B-B-B-B-B-B-B-B-Bq-BH-B-B,B,Bq,B,B+B{+B+B*BR*B)Bf)B(B\(B'B='B&B &Bf%B$B$Bf#B"B!B=!B{ BBBBHB{BBBB B)BHBfB{BBBBBBBRB)BBBBqB= B!B!B"B=#B#B$BR%B%B&B3'B'BR(B(Bf)B)B\*B*B=+B+B,BR,B,B,B)-Bf-B-B-B-B .B.B).B3.B3.B).B.B.B-B-B-B\-B-B,B,B=,B+B+B)+B*BH*B)BR)B(B=(B'B'B{&B%B3%B$B#B#Bf"B!B B BRBBBB B3B\B{BBBBBBB)B=BRBfBBBqBHBBB B{!B3"B"B#Bf$B%B%Bf&B 'B'B3(B(BR)B)BR*B*B=+B+B,Bq,B,B-B\-B-B-B .B=.B\.B{.B.B.B.B.B.B.Bq.BR.B).B.B-B-BH-B-B,B\,B,B+B)+B*B=*B)B=)B(B(B'B&BH&B%B$BH$B#B"B"BR!B BBB)BRB{BBBBBB=BRBqBBBBBB3B BBBB\ B!B!B"Bf#B$B$B%B3&B&B{'B(B(B=)B)BH*B*B=+B+B,B,B,B3-B-B-B.BH.B{.B.B.B.B/B /B/B/B /B.B.B.B.Bq.B=.B.B-Bq-B-B,Bq,B ,B+B)+B*B3*B)B)B(B'B\'B&B&Bf%B$B$BH#B"B!B!B3 BfBBBB B3BRBqBBBBBB BB3B=BB{BRB)B B B!B\"B#B#B$BH%B%B&BH'B'B(B)B)B3*B*B=+B+B,B,B,BR-B-B-B=.B.B.B.B/B=/B\/Bq/B{/B/B/B{/Bf/BR/B3/B /B.B.Bq.B).B-B-B=-B,B{,B ,B+B+B*B*B)B(Bf(B'B)'B{&B%B%Bf$B#B"B3"Bf!B BBB)BRB{BBBBBB3BHB\BqBBBBBBBBq B=!B"B"B#BH$B%B%Bf&B'B'B\(B(B)B*B*B)+B+B,B,B-Bf-B-B.Bf.B.B.B)/Bf/B/B/B/B/B/B/B/B/B/B/B/B{/BR/B/B.B.BR.B.B-BH-B,B{,B ,B+B +B*B)Bf)B(B3(B'B&B=&B%B$B$B\#B"B!B !B= BqBBBB B)BHBfBBBBBBB BBB\B=B B B!Bq"B=#B$B$Bq%B)&B&B'B)(B(Bf)B*B*B+B+B,B,B -Bq-B-B3.B.B.B/Bf/B/B/B0B0B=0BR0B\0Bf0Bf0B\0BH0B30B0B/B/B/BR/B /B.Bq.B.B-BR-B,B{,B,B{+B*Bf*B)B=)B(B(B\'B&B&BH%B$B#B #BH"B{!B BB B3BRB{BBBBB BB3BHB\BqBBBBB BR!B"B"B#Bq$B3%B%B&BR'B'B(B=)B)Bq*B+B+B,B,B -B{-B-BH.B.B/BR/B/B/B0BH0Bq0B0B0B0B0B0B0B0B0B0B0B\0B30B0B/B{/B3/B.B.B).B-B\-B,Bf,B+Bf+B*BH*B)B)Bq(B'B'Bf&B%B$B=$B{#B"B!B!BH BqBBBBBB=B\BqBBBBBBBqBHB B B!B"B\#B$B$B%B\&B'B'Bf(B)B)BR*B*Bq+B,B,B-B{-B-B\.B.B/Bq/B/B 0BH0B0B0B0B 1B1B31BH1BH1BH1B=1B)1B1B0B0B0Bf0B30B/B/BR/B.B.B3.B-BR-B,B\,B+BH+B*B*B{)B(B3(B'B&B&Bf%B$B#B#BR"B!B BB B)BRBqBBBBBB BB3BHB\BBB Bf!B3"B#B#B$BR%B&B&B'B3(B(B)B*B*BR+B+Bq,B,Bq-B-B\.B.B)/B/B/B30B{0B0B0B)1BR1B{1B1B1B1B1B1B1B1B1Bf1B=1B1B0B0B\0B0B/Bf/B /B.B3.B-BH-B,B=,B+B+B*B)BH)B(B'BH'B&B%B%BR$B#B"B!B!BH BqBBBBBB3BHBfB{BBBBBRB) B!B!B"Bq#B=$B%B%B&B='B'B(BR)B)B*B3+B+BR,B,Bf-B-B\.B.B=/B/B0BR0B0B0B)1Bf1B1B1B1B2B2B)2B)2B)2B2B 2B1B1B1B1BH1B 1B0B0B30B/B{/B/B.B3.B-B3-B,B,B+B*B\*B)B)Bf(B'B'B=&B%B$B#B)#B\"B!B BB B)BHBfBBBBBBB BB3BB Bq!BH"B#B#B$B{%B3&B&B'Bf(B)B)Bf*B +B+B3,B,BR-B-BR.B.B=/B/B0Bq0B0B1B\1B1B1B 2B32B\2Bq2B2B2B2B2B2B{2Bf2BH2B2B1B1B{1B=1B0B0BH0B/B/B/B.B).B-B-B,B,Bf+B*B)*B{)B(B(Bf'B&B%B)%Bf$B#B"B!B)!BR BqBBBBB B)B=BRBfB{BBB3 B !B!B"B#B\$B%B%B&Bf'B(B(B)B3*B*B{+B,B,B=-B-BH.B.B=/B/B0B0B0B31B1B1B 2BH2B{2B2B2B2B2B 3B 3B 3B3B2B2B2B2B\2B)2B1B1B\1B 1B0BR0B/B/B/B.B.B-B-Bq,B+B3+B*B)B=)B(B'B'B\&B%B$B $B=#Bf"B!B BBBB=B\B{BBBBBBB B B{!BR"B)#B$B$B%B\&B'B'B(BH)B)B*BH+B+B,B-B-B3.B.B=/B/B0B0B0BR1B1B1B=2B{2B2B2B3B=3B\3Bf3B{3B{3B{3Bq3B\3BH3B)3B3B2B2B\2B2B1B{1B)1B0B\0B/B{/B/B.B.Bq-B,BH,B+B+B\*B)B)BH(B'B&B &B=%Bq$B#B"B"B)!BH BqBBBBBBB)B=BRBfB{B!B!B"B#Bq$B=%B&B&B'BH(B)B)Bf*B+B+B\,B,B-B.B.B)/B/B0B0B1Bf1B1B2Bf2B2B2B)3B\3B3B3B3B3B3B3B3B3B3B3B3Bq3B=3B 3B2B2B=2B1B1B31B0Bf0B/Bq/B.Bf.B-BH-B,B,Bq+B*B*Bf)B(B'B3'Bq&B%B$B$B=#Bq"B!B BBBB3BRBfBBBBBBB!B\"B3#B $B$B%Bq&B='B(B(Bq)B)*B*B+B),B,Bf-B.B.B/B/B0B0B 1Bq1B1B32B2B2B3B\3B3B3B3B4B=4BR4B\4B\4B\4BR4B=4B)4B 4B3B3B{3B=3B2B2B\2B2B1B=1B0B\0B/B\/B.BH.B-B-B,B+B3+B*B)B)Bf(B'B&B&BR%B{$B#B"B"B)!BH BfBBBBBBBB)B=BRB!B"B#B{$BR%B&B&B'Bq(B))B)B*BH+B+B,B=-B-Bq.B/B/B 0B0B1B{1B1BH2B2B2BH3B3B3B 4B=4Bf4B4B4B4B4B4B4B4B4B4B{4BR4B4B3B3Bf3B3B2Bq2B2B1B=1B0BR0B/BH/B.B).B-B,BH,B+B*BH*B)B(B(BR'B&B%B$B$BH#Bq"B!B BBBB)BHB\BqBBBBBf"B=#B$B$B%B&B\'B(B(B)BR*B +B+Bf,B -B-BH.B.Bq/B0B{0B1B{1B1BR2B2B3Bf3B3B4BH4B{4B4B4B5B5B35B=5B=5B=5B35B5B 5B4B4B4B\4B4B3B3B=3B2B2B2B1B=1B0B=0B/B)/B.B.B\-B,B,Bf+B*B*B=)B{(B'B&B)&B\%B$B#B"B"B!B= B\B{BBBBBB BB)B"B#B$B\%B3&B'B'B(BR)B *B*B{+B),B,B{-B.B.BR/B/Bq0B0Bq1B1B\2B2B)3B3B3B)4Bq4B4B4B5BH5Bq5B5B5B5B5B5B5B5B{5B\5B35B5B4B4BH4B4B3BR3B2B2B2B1B31B0B)0B/B/Bf.B-B)-B{,B+B+Bf*B)B(B)(B\'B&B%B$B$BH#Bq"B!B BBBBB3BHB\BqBBBH#B)$B%B%B&Bq'B=(B)B)B{*B=+B+B,BH-B-B.B)/B/BR0B0Bf1B1B\2B2B33B3B3BR4B4B4B)5B\5B5B5B5B6B6B6B6B6B6B6B5B5B5Bq5B=5B5B4Bq4B4B3B\3B2B2B2B1B1B0B0Bq/B.B=.B-B,B=,B+B*B*B\)B(B'B'B3&Bf%B$B#B"B"B!B= BRBqBBBBBBBB#B$Bq%B=&B'B'B(Bq)B3*B*B+B\,B-B-B\.B/B/B30B0BR1B1BR2B2B=3B3B 4Bf4B4B 5BR5B5B5B6B36BR6Bq6B6B6B6B6B6Bq6B\6B36B6B5B5Bq5B)5B4B4B34B3Bf3B3B2B 2B1B1Bq0B/BH/B.B.B\-B,B+BH+B*B)B)B=(Bq'B&B%B$B$BH#Bf"B!B BBBB BB3BHB\BqB)$B %B%B&B'BR(B)B)B*Bf+B,B,B-B).B.Bq/B 0B0B31B1BH2B2B=3B3B4B{4B4B35B{5B5B 6B=6Bq6B6B6B6B6B7B7B7B6B6B6B6B{6BR6B6B5B5BH5B4B4B=4B3Bf3B2B{2B1Bq1B0BR0B/B/Bq.B-B-Bf,B+B*B3*Bq)B(B'B 'B=&Bf%B$B#B"B!B!B) BHB\B{BBBBBB$B{%BR&B)'B'B(B)BR*B+B+B,B=-B-B.BH/B/B0B1B1B32B2B33B3B4B4B4BH5B5B5B36B{6B6B6B7B37BR7Bf7Bq7Bq7Bq7Bf7BR7B=7B7B6B6B6BH6B 6B5Bf5B 5B4BH4B3Bf3B2Bf2B1BR1B0B0B/B.B3.B-B,B,Bf+B*B)B)BH(B{'B&B%B$B$B=#B\"B{!B BBBBB BB3BHB %B%B&B'Bf(B3)B*B*B+BH,B-B-Bf.B /B/BR0B0B1B2B2B)3B3B4B4B4B\5B5B6B\6B6B6B7BR7B7B7B7B7B7B7B7B7B7B7B7B\7B37B6B6B{6B)6B5B{5B5B4BH4B3B\3B2BR2B1B)1B0B/BR/B.B-BH-B,B+B +BH*B)B(B'B'B=&Bf%B$B#B"B!B !B B=BRBfB{BBBB{%B\&B3'B (B(B)Bq*B3+B+B,Bq-B).B.B{/B)0B0Bf1B1B2B3B3B4B4B5Bq5B5B)6B6B6B7B\7B7B7B7B8B38BH8BR8BR8BR8BH8B38B8B7B7B7Bf7B)7B6B6BH6B5B5B)5B4B=4B3BH3B2B)2B1B1B\0B/B/Bf.B-B,B=,B{+B*B)B)BR(B'B&B%B$B$B=#BR"Bq!B BBBBBB BB%B&B'B{(BH)B*B*B+Bf,B)-B-B.BH/B/B0B=1B1Bf2B3B3B 4B4B5Bq5B5B=6B6B6BH7B7B7B 8B=8Bf8B8B8B8B8B8B8B8B8B8Bf8B=8B8B7B7BR7B 7B6B\6B6B5B)5B4B34B3B)3B2B 2Bq1B0B)0B{/B.B.Bf-B,B+B)+B\*B)B(B'B'B=&Bf%B$B#B"B!B B B)B=BRBfB{BB\&B='B(B(B)B*BR+B,B,B-BR.B /B/Bf0B 1B1BH2B2Bq3B3B{4B4Bq5B5BR6B6B 7Bf7B7B7B=8B{8B8B8B8B9B)9B39B39B39B)9B9B8B8B8B8BH8B 8B7B{7B)7B6Bf6B6B5B5B4B4B3B 3Bq2B1B=1B0B/B=/B.B-B-BR,B+B*B*B))B\(B'B&B%B$B$B3#BH"Bf!B{ BBBBBBB&B'B(B\)B)*B*B+B,BH-B .B.B{/B)0B0B{1B2B2BR3B3Bf4B4Bf5B5BR6B6B7B7B7B)8Bq8B8B8B9BH9Bf9B9B9B9B9B9B9B9Bf9BH9B9B8B8B{8B38B7B7B=7B6Bq6B6B5B5B4B 4B{3B2BH2B1B1B\0B/B.B=.B-B,B,B3+Bf*B)B(B'B'B=&B\%B{$B#B"B!B B BB)B=BRBfBH'B(B(B)B*Bf+B3,B-B-B{.B3/B/B0BH1B1B2B)3B3BR4B4B\5B5BR6B6B37B7B7BH8B8B8B9B\9B9B9B9B9B :B:B:B:B :B9B9B9B9B\9B)9B8B8B\8B8B7BH7B6Bq6B6B5B5Bq4B3BR3B2B2Bq1B0B0Bf/B.B-B3-Bq,B+B*B *B3)B\(B'B&B%B$B $B#B="BR!Bq BBBBBB'B(Bf)B=*B +B+B,Bq-B3.B.B/B\0B 1B1B\2B3B3B34B4BH5B5BR6B6B37B7B 8Bf8B8B 9BR9B9B9B:B):BH:Bf:B{:B:B:B:B{:Bf:BH:B):B:B9B9B\9B9B8Bq8B8B7BR7B6Bq6B5Bq5B4BR4B3B)3B2B1B31B0B/B/B\.B-B,B,BH+Bq*B)B(B'B'B3&BR%Bq$B#B"B!B BBBB)B=B)(B)B)B*B{+BR,B-B-B.B\/B0B0B{1B)2B2Bq3B 4B4B35B5B=6B6B37B7B8B{8B8B)9B{9B9B:B=:Bq:B:B:B:B:B:B:B:B:B:B:B:Bq:B=:B :B9B9B39B8B8B)8B7BR7B6B\6B5BR5B4B)4B3B2BR2B1B0B=0B/B.B .BH-B{,B+B*B *B3)B\(B'B&B%B$B$B#B)"BH!B\ BqBBBB(Bq)BR*B+B+B,B-BR.B/B/B0B=1B1B2BH3B3B{4B5B5B36B6B37B7B8B8B8BH9B9B9B3:Bq:B:B:B ;B3;BH;B\;Bf;Bf;Bf;B\;BH;B3;B ;B:B:B{:B=:B9B9BR9B9B8B38B7BR7B6BR6B5B35B4B4Bf3B2B2Bf1B0B/B=/B{.B-B,B,BR+B{*B)B(B'B'B3&BR%Bf$B#B"B!B BBBBB )B)B*B+Bf,B3-B.B.B/BH0B1B1Bf2B 3B3BR4B4B5B6B6B)7B7B8B8B8B\9B9B:B\:B:B:B;BR;B{;B;B;B;B;B;B;B;B;B;B{;BR;B;B:B:Bf:B:B9Bf9B 9B8B38B7B=7B6B36B5B 5Bq4B3B)3B2B1B1Bf0B/B.B.B\-B,B+B*B*B=)B\(B{'B&B%B$B#B #B"B3!BH B\BqBB{)B\*B3+B,B,B-Bq.B3/B/B0Bq1B2B2B{3B)4B4Bf5B5B6B7B7B8B8B9Bf9B9B):B:B:B;BR;B;B;B;BB >B >B >B>B=B=B=B=BR=B=BB=>B\>Bq>B{>B{>B{>Bq>B\>B=>B>B=B=B=BH=B=BB3>Bf>B>B>B>B>B>B>B>B>B>B>B>B\>B3>B=B=Bq=B=BBq>B>B>B?B?B=?BR?B\?B\?B\?BH?B3?B?B>B>B>Bf>B)>B=B=B==BBR>B>B>B?BH?Bq?B?B?B?B?B?B?B?B?B?Bf?B=?B ?B>B>BR>B>B=BR=BB{>B>B ?BR?B?B?B?B@B@B3@B=@B=@B3@B)@B@B@B?B?B{?BH?B?B>Bq>B>B=B\=BB>B?B\?B?B?B3@Bf@B@B@B@BABABABABAB AB@B@B@B@B\@B@B?B?BR?B>B>B=>B=B\=BB>B?Bq?B?B@B\@B@B@B AB3ABRABqABABABABAB{ABfABHAB)ABAB@B@BR@B @B?Bf?B ?B>B=>B=BR=BB>B)?B?B?B=@B@B@BABHAB{ABABABABABBBBBABABABABABqAB=ABAB@B{@B)@B?B{?B?B>B=>B=BH=BB>B)?B?B?BR@B@B@B=ABABABABBB3BBRBBfBBfBBqBBfBB\BBHBB)BB BBABABqAB3AB@B@BH@B?B?B?B>B3>B=B)=BB>B)?B?B @Bq@B@BABfABABAB)BB\BBBBBBBBBBBBBBBBBBBBBB{BBHBBBBABAB\AB AB@BR@B?B?B?B>B>B=B =B{B>B)?B?B @B{@B@B=ABABABBBfBBBBBBBBCB3CB=CBHCBRCBHCB=CB)CB CBBBBBBBRBB BBAB{ABAB@B\@B?B?B ?B>B >B{=BB>B?B?B @B{@B@BRABABBBHBBBBBB CB=CBfCBCBCBCBCBCBCBCBCB{CBRCB)CBBBBB{BB3BBABAB3AB@Bf@B?B{?B?B{>B=B\=BB ?B?B @B{@B@B\ABABBBqBBBBCBHCB{CBCBCBCBDBDB)DB)DB)DBDB DBCBCBCBfCB)CBBBBBRBBBBAB=AB@B\@B?Bf?B>B\>B=B)=BB>B{?B?B{@B@BfABAB3BBBBBB)CBqCBCBCBDBHDBfDBDBDBDBDBDBDBqDB\DB3DB DBCBCB\CBCBBBqBBBBAB=AB@BR@B?BR?B>B3>B=B=B\B>B\?B?Bq@B@BfABAB=BBBBCBRCBCBCB)DB\DBDBDBDBDBEB EB EB EBDBDBDBDB{DBHDB DBCBCB3CBBB{BBBBAB=AB@BH@B?B3?B>B >Bf=BB>B=?B?B\@B@B\ABABHBBBBCBqCBCB DBRDBDBDBEB)EBHEBfEBqEB{EB{EB{EBfEBREB3EBEBDBDB{DB=DBCBCBHCBBBBBBBAB3AB@B)@B?B ?Bq>B=B3=BB?B?BH@B@BRABABHBBBBCBCBCB3DBDBDB EBHEBqEBEBEBEBEBEBEBEBEBEBEBEB\EB)EBDBDBfDBDBCB\CBCBBBBBAB)AB@B@B{?B>BH>B=B=BRB>B?B@B@B=ABAB=BBBB)CBCBCBRDBDBDB=EB{EBEBEB FB)FBHFB\FB\FBfFB\FBRFB=FBFBEBEBEB\EBEBDBDB)DBCBfCBCBBBBBAB AB{@B?BR?B>B>Bf=BB>Bf?B@B@B)ABAB3BBBB)CBCBDBfDBDBEBfEBEBEB)FBRFB{FBFBFBFBFBFBFBFBFBFBfFB=FB FBEBEB=EBDBDB=DBCBqCBBBBBBB{AB@B\@B?B?B>B=B)=B{B3?B?Bq@B ABABBBBBCBCB DBqDBDB3EBEBEBFB\FBFBFBFB GB)GB=GB=GBHGB=GB)GBGBGBFBFB{FB=FBEBEBfEB EBDBHDBCBfCBBBqBBAB\AB@B3@B?B>BH>B=BB?B?BH@B@B{AB BBBBCBCB DB{DBDBHEBEBEBHFBFBFB GB3GB\GB{GBGBGBGBGBGBGBGBfGBHGBGBFBFBfFBFBEB{EBEBDBHDBCB\CBBBRBBAB3AB@B@B\?B>B>BR=BB>Bq?B@B@BRABAB{BBCBCB DB{DBDB\EBEBFBfFBFBGB=GB{GBGBGBGB HBHBHBHBHB HBGBGBGBGBRGBGBFBFB=FBEBEB)EBDBHDBCBHCBBB3BBAB ABf@B?B?Bq>B=B =BHB3?B?B@B)ABAB\BBBBqCBCB{DBDB\EBEB)FBFBFB)GBqGBGBGBHB=HB\HB{HBHBHBHBHB{HBfHBHHB)HBGBGBGBHGBGBFBRFBEBEB)EBDB=DBCB3CBBB BB{AB@B3@B?B>B)>Bq=BB>B?BR@B@BAB3BBBB\CBCBfDBDB\EBEB=FBFBFBRGBGBGBHB\HBHBHBHBHBHBIBIBIBHBHBHBHBfHB3HBGBGBqGBGBFBfFBFBEBEBDB)DBCBCB{BBABHAB@B?BH?B>B=B=BfBf?B@B@BfAB BBBB=CBCBRDBDB\EBEB=FBFB GBfGBGB HBRHBHBHBHBIB=IB\IBfIBqIBqIBqIB\IBHIB)IBIBHBHBfHB)HBGBGB3GBFBqFBFBEBEBDB DB{CBBBRBBAB ABf@B?B?BH>B=BB?B?B@B3ABAB{BBCBCB=DBDBHEBEB=FBFBGB{GBGB3HB{HBHBIB=IBfIBIBIBIBIBIBIBIBIBIBIBqIBHIBIBHBHBHHBGBGBHGBFBqFBFBEBEB{DBCB\CBBBBB{AB@B@Bq?B>B>B==B{B>B?BH@B@BABHBBBBCBDBDB=EBEB=FBFBGBGBGBHHBHBHB3IBqIBIBIBJBJB=JBHJBRJBRJBHJB=JB)JB JBIBIBIBHIBIBHBfHBHBGBHGBFBfFBEBqEBDB\DBCB)CBBBAB=AB@B?B)?Bf>B=BBH?B@B@BfABBBBB\CBCBDBEBEB3FBFBGBGBHB\HBHBIB\IBIBIBJBHJBqJBJBJBJBJBJBJBJBJB{JBRJB)JBIBIBqIB)IBHB{HBHBGBRGBFB\FBEBREBDB3DBCBBBRBBABABH@B?B>B>BR=BB?B?B{@B)ABABBB)CBCBfDBEBEBFBFBGBGB HBqHBHB)IBIBIBJBRJBJBJBJBKBKB)KB3KB3KB)KBKB KBJBJBJB\JB)JBIBIBHIBHBHB)HBGBHGBFBHFBEB3EBDB DBfCBBBBBfAB@B@B=?B{>B=BBq?B)@B@BABRBBBBCB=DBDBqEBFBFBGBGB HB{HBHBHIBIBIB=JBJBJBKB)KBRKBqKBKBKBKBKBKBKB{KB\KB3KBKBJBJBRJB JBIB\IBIBHB)HBGB=GBFB3FBEB EBqDBCB3CBBBABABf@B?B>B)>B\=BB?B?B@B\AB BBBBfCBDBDBREBEBqFBGBGBHB{HBHBRIBIBJBfJBJBJB3KBqKBKBKBKBLB LBLBLB LBLBKBKBKBqKB=KBKBJBqJBJBIBfIBIBHBHBGB)GBFB FB{EBDB=DBCBBB=BBAB@B@B\?B>B=B=B)B>B?BR@BABAB{BB3CBCBDBEBEBRFBFBqGBGBqHBHB\IBIB)JBJBJBKBfKBKBKB LB3LBRLBqLB{LBLBLB{LBqLBRLB3LBLBKBKBqKB3KBJBJB=JBIBqIB IBHBHBGB GB{FBEBHEBDB DB\CBBBAB=AB@B?B?B3>Bf=BB=?B@B@BAB=BBBBCBHDBDBEB3FBFBRGBGBfHBHB\IBIB3JBJBJBHKBKBKBLBRLB{LBLBLBLBLBLBLBLBLBLBLBLBRLBLBKBKBRKBKBJBHJBIBqIBIBHBHB{GBFBRFBEBEBqDBCBCBfBBAB@B3@Bf?B>B=B=B3B>B?Bq@B3ABABBB\CBDBDBfEB FBFB3GBGBRHBHBRIBIB=JBJB KBfKBKBLBHLBLBLBLBMB3MBRMB\MBfMBfMB\MBHMB3MBMBLBLBLBRLB LBKBqKBKBJBRJBIBqIBHBqHBGBRGBFB)FBEBDB3DBCBBBBB\AB@B?B ?B=>Bq=BBR?B@B@BABfBBCBCBDB3EBEB{FBGBGB=HBHBHIBIB=JBJBKB{KBKB)LBqLBLBLB3MB\MBMBMBMBMBMBMBMBMBMBMB\MB3MBMBLB{LB3LBKBKB)KBJBRJBIB\IBHBRHBGB)GBFBEBREBDBCB=CBBBAB AB=@B{?B>B=B =B3B>B?B@BRABBBBBCBHDBDBEBHFBFBGBHBHB3IBIB3JBJBKBKBKBHLBLBLB)MBfMBMBMBMBNB)NB=NBHNBHNB=NB)NBNBMBMBMBfMB3MBLBLBHLBKBKB)KBJBHJBIBHIBHB3HBGBGB\FBEBEB\DBCBBB3BBqAB@B?B?BH>Bq=BBf?B3@BABABBBHCBDBDBfEBFBFB\GBGBHBIBIB)JBJBKBKBKB\LBLB MBRMBMBMBNB=NBfNBNBNBNBNBNBNBNBNBfNB=NBNBMBMB\MB MBLBfLBLBKB)KBJB=JBIB)IBHB HBqGBFB)FB{EBDBDB\CBBBABABR@B?B>B=B=B)B?B?B@BqAB3BBBBCBqDB)EBEBFB)GBGBfHBIBIBJBJBKBKBLBfLBLB)MB{MBMB NBHNBNBNBNBNB OBOB)OB)OBOB OBNBNBNB{NBHNB NBMB{MB)MBLBqLB LBKBKBJB)JBIB IBqHBGB=GBFBEB=EBDBCB CBHBBAB@B?B?BH>Bq=BBq?BH@BABABBBfCB)DBDBEBHFBFBGB=HBHBqIBJBJB KBKBLBqLBLB=MBMBMB3NB{NBNBNBOBHOBfOB{OBOBOBOBOB{OBfOBHOBOBNBNB{NB3NBMBMB=MBLBqLB LBKBKBJB JB{IBHBHHBGBGBRFBEBDB3DB{CBBBAB)AB\@B?B>B=B=BB ?B?B@BABRBBCBCBDBREB FBFBfGB HBHBHIBIBqJBJB{KBKBqLBLBHMBMB NB\NBNBNB)OBfOBOBOBOBOBPBPBPBPBOBOBOBOB\OB)OBNBNB\NB NBMBHMBLBqLBLBKBKBqJBIBRIBHBHBqGBFBFB\EBDBCBCB\BBAB@B?B?BH>Bf=BB?B\@B3ABBBBBCBRDBEBEBFB3GBGBHB)IBIBRJBJBqKBKBqLBLB\MBMBNB{NBNBOBfOBOBOB PB)PBHPBfPBqPB{PBqPBqPB\PBHPBPBPBOBOB\OBOBNBqNBNBMBRMBLBfLBKBfKBJBRJBIBIB{HBGB)GB{FBEB EBHDBCBBBAB)ABR@B?B>B=BB?B@B@BABqBB=CBDBDBEB=FBFBGBRHBHBIB3JBJB\KBKBfLBLB\MBMB3NBNBNBHOBOBOBPBHPB{PBPBPBPBPBPBPBPBPBPBPBfPB=PBPBOBOB3OBNBNB)NBMBRMBLB\LBKBHKBJB)JBIBHB=HBGBFB3FBqEBDBCB)CB\BBAB@B?B?B=>B\=B{B?Bq@B=ABBBBBCBqDB3EBEBFBfGBHBHBfIB JBJB=KBKBRLBLBRMBMB=NBNB OB\OBOBPBHPBPBPBPB QB)QB=QBRQBRQBRQBHQB=QBQBQBPBPBqPB3PBOBOBROBNBNB)NBMBHMBLBHLBKB)KBJBIBRIBHBHBRGBFBEBEB\DBCBBBBB)AB\@B{?B>B=BBR=BqB=BBH=B\B=BB3=BRB=BB >B=B=B=BB=B =B)B{=BB=BBf=B{B=BBH=B\B=BB3=BHB=BB >B=B)B=BB=B=BBf=B{B=BB\=BfB=BB==BRB=BB=BKBKBLBMBqNBHOB PBPBQB\RBSBSB{TBUBUBfVB WBWB)XBXB3YBYB)ZBZB[Bf[B[B \B\\B\B\B ]B3]B\]B{]B]B]B]B]B]Bq]BR]B3]B ]B\B\BR\B \B[Bf[B[BZB3ZBYB=YBXB3XBWBWBqVBUB3UBTBSBSBfRBQBPBPBROBNBMBLB LB)KBRJBqIBHBGBFBEBDB DBCB)BB=ABR@Bf?B{>B=BKBfLB=MBNBNBOB{PBHQB RBRBSB3TBTBUB=VBVB{WB XBXB)YBYB)ZBZB [Bq[B[B)\B{\B\B ]BH]B{]B]B]B]B]B ^B ^B^B]B]B]B]Bq]B=]B ]B\B{\B)\B[Bq[B [BZB)ZBYB)YBXBXB{WBVB=VBUBTB=TBSBRBRBRQBPBOBNBNBHMBqLBKBJBIBHBHB)GB=FB\EBqDBCBBBAB@B?B>B=BKBLBMBNBROB)PBPBQB{RB=SBSBTB\UB VBVBHWBWB{XB YBYBZBZB [B{[B[BH\B\B\B=]B{]B]B]B^B=^B\^Bf^Bq^B{^Bq^Bf^BR^B3^B^B]B]Bq]B3]B\B\B=\B[B{[B [BZBZBYB YB{XBWBHWBVBVB\UBTBSB=SB{RBQBPB)PB\OBNBMBLBLBKB=JB\IB{HBGBFBEBDBCBCBBB)AB3@BH?B\>BfLBHMBNBNBOBPB\QB)RBRBSBfTBUBUB{VBWBWB\XBXB{YB ZBZB [B{[B[BR\B\B ]B\]B]B]B)^B\^B^B^B^B^B^B^B^B^B^B^B{^BR^B^B]B]BR]B]B\BH\B[B{[B[BZBZB{YBXBRXBWBWBqVBUBUB\TBSBRBRB\QBPBOBNBNB=MBfLBKBJBIBHBHBGB)FB=EBRDBfCB{BBAB@B?B>BLBMBNBfOB3PB QBQBRB\SBTBTBUB=VBVBWB3XBXB\YBYB{ZB[B{[B[B\\B\B)]B{]B]B^B\^B^B^B^B_B3_BH_BR_B\_BR_BH_B3_B_B^B^B^BR^B ^B]Bq]B]B\BR\B[Bq[BZBqZBYBRYBXBXBWBVB3VB{UBTB TBRSBRBQBPB)PB\OBNBMBLBKBKB3JBHIBfHB{GBFBEBDBCBBBAB AB@B)?BHMB)NBOBOBPB{QBHRB SBSBTBHUBVBVB\WBXBXB=YBYB\ZBZBq[B[B\\B\B3]B]B]B=^B^B^B _B=_Bf_B_B_B_B_B_B_B_B_B_B\_B3_B_B^B{^B3^B]B]B)]B\BR\B[B\[BZBRZBYB)YBXBWBHWBVBUB3UB{TBSBRB3RBfQBPBOBNBNB=MB\LB{KBJBIBHBGBGBFB)EB=DBHCB\BBqAB@B?BMBNBqOBHPBQBQBRB{SB=TBUBUBqVBWBWBqXBYBYB=ZBZB\[B[B\\B\B=]B]B ^B\^B^B_B=_B{_B_B_B`B`B)`B3`B3`B3`B`B `B_B_B_Bf_B)_B^B^BR^B]B]B)]B\BH\B[BH[BZB3ZBYBXB\XBWB WBRVBUBTB)TB\SBRBQBQB)PB\OB{NBMBLBKBKBJB3IBRHBfGB{FBEBDBCBBBAB@B@B)NB OBOBPBQB\RB)SBSBTBqUB)VBVBWB=XBXBYBZBZB=[B[BR\B\B=]B]B^B{^B^B_Bf_B_B_B`BH`Bq`B`B`B`B`B`B`B{`B\`B=`B `B_B_B\_B _B^Bf^B^B]B)]B\B=\B[B)[BZBZBfYBXBXBqWBVB VBRUBTBSBSB3RBfQBPBOBNB NB3MBRLBfKBJBIBHBGBFBEB EBDB3CB=BBRABf@BNB{OBRPB)QBRBRBSB\TBUBUBVBRWBXBXBRYBYBZB)[B[B=\B\B=]B]B^B^B^B=_B_B_B`B\`B`B`B`B`B aBaBaBaBaB`B`B`B{`BH`B `B_B{_B)_B^Bq^B ^B]B]B\B\B[B [BqZBYB3YBXBWB)WBqVBUBTB3TBqSBRBQBQB)PBROBqNBMBLBKBJB JBIB3HBHGB\FBqEBDBCBBBAB@B OBOBPBQBqRB=SB TBTBUBRVB WBWBqXBYBYBfZB[B[B)\B\B3]B]B^B^B^B\_B_B`BH`B`B`BaB)aBHaBfaB{aBaBaB{aBqaB\aB=aBaB`B`B{`B3`B_B_B=_B^Bq^B^B]B]B\B\Bq[BZB=ZBYBXBHXBWBVBVBfUBTBSB SB=RBfQBPBOBNBNBMB=LB\KBqJBIBHBGBFBEBDBDBCB)BB3AB{OB\PB3QB RBRBSB{TB=UBVBVB{WB3XBXBYB3ZBZBq[B \B\B]B]B^B^B_Bf_B_B`Bq`B`BaB=aBqaBaBaBaBaBaBaBaBaBaBaBaB\aBaB`B`BR`B`B_BH_B^Bq^B]B{]B\Bq\B[BH[BZB ZB\YBXBXBHWBVBUB UB=TBqSBRBQBQBPBHOBfNBMBLBKBJBIB IBHB3GBHFBREBfDB{CBBBABOBPBQB{RBRSBTBTBUBqVB3WBWBXBRYBZBZBH[B[B{\B ]B]B^B^B_Bq_B_B=`B`B`B)aBqaBaBaB bB)bBHbB\bBfbBfbB\bBRbB=bBbBaBaBaBRaBaB`Bq`B`B_BR_B^Bf^B]Bf]B\BH\B[B[BqZBYBYBfXBWBVB3VBqUBTBSB SB=RBfQBPBOBNBMB MB)LB=KB\JBqIBHBGBFBEBDBCBBB BB\PB=QBRBRBSBTB\UBVBVBWB\XBYBYBqZB[B[BR\B\B{]B^B^B_Bq_B_BH`B`BaBRaBaBaBbBRbB{bBbBbBbBbBbBbBbBbBbBfbB3bBbBaB{aB3aB`B`B`B_BH_B^BR^B]BH]B\B\B{[BZB3ZBYBXBXBfWBVBUBUBHTB{SBRBQBPBPB=OB\NB{MBLBKBJBIBHBHBGB)FB=EBHDB\CBqBBPBQBRB\SB3TBUBUBVBRWBXBXBYB3ZBZB[B)\B\B\]B]Bq^B^Bq_B_BR`B`BaBqaBaB bBRbBbBbBbB cB)cB3cB=cBHcB=cB)cBcBbBbBbBqbB3bBaBaBHaB`B`B)`B_B=_B^B=^B]B]B\B[BH[BZBYB=YBXBWB WBHVB{UBTBSB SB=RB\QBPBOBNBMBLBLB)KB=JBRIBfHB{GBFBEBDBCBBBHQBRBRBSBTBqUB=VBWBWBXB=YBYBZBR[B[B\B3]B]B\^B^Bf_B_BR`B`B)aBaBaB3bB{bBbBbB3cB\cB{cBcBcBcBcBcBcBcBfcB=cBcBbBbB\bB bBaB\aBaB`B`B_B3_B^B^B]B\BR\B[B [B\ZBYBXB3XBqWBVBUBUBHTB{SBRBQBPB PB)OBHNBfMB{LBKBJBIBHBGBFB FBEB)DB=CBQBRBfSB=TBUBUBVBqWB=XBXBYBfZB[B[Bf\B ]B]B=^B^BR_B_BR`B`B3aBaBbBRbBbBbB3cBfcBcBcBcB dBdBdBdBdB dBcBcBcBcBHcB cBbB{bB)bBaBfaBaB`B`B_B_B^B]B\]B\B\Bq[BZBZB\YBXBWBWBRVBUBTBSB SB3RBRQBqPBOBNBMBLBLBKB)JB=IBHHB\GBqFBEBDBCB)RBSBSBTBUBRVBWBWBXBfYBZBZB[B3\B\B{]B^B^B=_B_BH`B`B=aBaB bBqbBbBcB\cBcBcB dB=dB\dBqdBdBdBdBdB{dBfdBHdBdBcBcB{cB3cBbBbB=bBaBqaBaB`B `B_B^Bf^B]B)]B\B[B3[B{ZBYB YBHXBWBVBUBUBHTBqSBRBQBPBPBOB3NBHMBfLB{KBJBIBHBGBFBEBEBDBRBqSBHTBUBUBVBWB\XBYBYBZBH[B[B\BH]B]B^B_B_B3`B`B3aBaBbB{bBbB3cBcBcBdBHdB{dBdBdBdBdBeBeBdBdBdBdBdB\dB)dBcBcBRcBcBbBHbBaBfaB`Bq`B_Bf_B^B3^B]B\BH\B[BZB3ZBqYBXBWB)WB\VBUBTBSBSB)RBHQBfPBOBNBMBLBKBJB JBIB3HB=GBRFBfEB{DB SBSBTBUBfVB3WBXBXBYBHZB [B[Bq\B]B]B\^B^B_B`B`B)aBaBbBbBbBRcBcBcB=dB{dBdBdBeB3eBReBfeBfeBqeBfeBReB=eBeBdBdBdBRdB dBcBfcB cBbB=bBaBRaB`BR`B_B3_B^B]BR]B\B\BH[BZBYBYBRXBWBVBUBUB=TBfSBRBQBPBOBOBNB)MB=LBRKBfJB{IBHBGBFBEBDB{SBRTB3UB VBVBWBqXB=YBZBZB{[B)\B\B]B3^B^Bf_B`B`BaBaBbBbBbB\cBcBdBfdBdBdB)eB\eBeBeBeBeBeBeBeBeBeBeBfeB3eBeBdB{dB)dBcB{cBcBbB=bBaBHaB`B3`B_B _Bf^B]B]Bf\B[B[B=ZB{YBXBWBWBRVB{UBTBSBRB RB)QBHPBfOB{NBMBLBKBJBIBHB HBGB)FB=EBSBTBUB{VBHWBXBXBYBqZB)[B[B\BR]B]B^B=_B_Bq`BaBaB bBbBbBfcBcB3dBdBdBeB\eBeBeBeBfB3fB=fBHfBHfB=fB3fBfBeBeBeBfeB)eBdBdBHdBcBcBcBbB3bBaB)aB`B `Bq_B^B)^B]B\B\Bf[BZBYBYB\XBWBVBUB UB3TBRSB{RBQBPBOBNBMBMB)LB3KBHJB\IBqHBGBFBEB\TB3UBVBVBWBXBRYBZBZB[B\\B ]B]Bf^B_B_BH`B`BqaBaB{bBbBfcBcB=dBdBdBHeBeBeB fB=fBffBfBfBfBfBfBfBfBfBffB=fBfBeBeBReB eBdBRdBcBcBcBbBbBaB aBq`B_B=_B^B]B=]B\B[B[BRZBYBXBWBWBRVB{UBTBSBRBRBQB3PBHOBfNB{MBLBKBJBIBHBGBGB FBTBUBVB\WB)XBXBYBZBR[B \B\B{]B3^B^B_B`B`BRaBaBfbBbBfcBcBHdBdBeBfeBeBfB=fB{fBfBfBfBgBgB)gB)gBgB gBfBfBfB{fBHfB fBeBqeBeBdB\dBcB{cB cBbBbBqaB`BH`B_B_BR^B]B\B=\B{[BZBYB)YB\XBWBVBUBUB)TBHSBfRBQBPBOBNBMBLB LBKB)JB=IBRHBfGB{FB=UBVBVBWBXBfYB3ZB[B[B\B=]B]B^BH_B_B`B)aBaBRbBbB\cBcBHdBdBeBeBeB)fBqfBfBfBgBHgBfgB{gBgBgBgBgB{gBfgBHgBgBfBfBqfB3fBeBeB)eBdB\dBcBqcBbBqbBaBHaB`B`Bf_B^B^B\]B\B[B)[B\ZBYBXBWBWBHVBqUBTBSBRBQBQBPB3OBHNB\MBqLBKBJBIBHBGBFBUBVBfWB=XB YBYBZBq[B3\B\B]B\^B_B_Bf`BaBaB3bBbBHcBcBHdBdB)eBeBeBHfBfBfBgB\gBgBgBgBgBhB hB hBhBgBgBgBgB\gBgBfBfBRfBeBeB3eBdB\dBcB\cBbBHbBaBaB{`B_B)_B{^B]B ]BR\B[BZBZB3YB\XBWBVBUBTBTB3SBRRBfQBPBOBNBMBLBKBKB JBIB3HBHGBVBWBWBXB{YBRZB[B[B\Bf]B^B^B_B)`B`BqaB bBbB3cBcB=dBdB)eBeBfB\fBfB gBRgBgBgBhB)hBHhB\hBqhB{hBqhBqhB\hBHhBhBgBgBgBRgB gBfBffB fBeB3eBdBHdBcBHcBbBbBaB`B=`B_B^B3^B{]B\B[B3[BfZBYBXBWBWB=VB\UB{TBSBRBQBPBPBOB)NB=MBRLBfKBqJBIBHBGBVBqWBHXBYBYBZB[BR\B]B]B^BH_B_B`BHaBaBbBcBcB)dBdB)eBeB fBqfBfB)gB{gBgBhB=hBqhBhBhBhBhBhBhBhBhBhBhBfhB3hBhBgB{gB)gBfBqfB fBeB3eBdB3dBcBcBbBaBRaB`B`BR_B^B]B]B\\B[BZBZB3YB\XBWBVBUBTB TBSB=RBRQBfPB{OBNBMBLBKBJBIBIBHBWBWBXBYB\ZB3[B[B\B]BH^B_B_Bf`BaBaBRbBbBcBdBdBeBeB fB{fBfB=gBgBgB3hBqhBhBhBiB)iB=iBRiBRiBRiBHiB=iBiBiBhBhBqhB)hBgBgB=gBfB{fBfBeBeBdBdBcBbB\bBaBaBf`B_B_BH^B]B\B\B3[BfZBYBXBWB WB3VBRUBqTBSBRBQBPBOBNB NBMB3LBHKBRJBfIB{HBqWBRXB)YBZBZB[Bq\B3]B]B^Bq_B)`B`BaB)bBbBfcBcBdB eBeB fB{fBfBRgBgB hB\hBhBhBiBHiBqiBiBiBiBiBiBiBiBiBqiBHiBiBhBhBRhBhBgBRgBfB{fB fBeB eBdBcBfcBbB)bB{aB`B`Bq_B^B]B3]Bf\B[BZBZB)YBRXB{WBVBUBTBSB SBRB3QBRPB\OBqNBMBLBKBJBIBHBWBXBYBqZB=[B\B\B]Bf^B)_B_B`BHaBaBbB3cBcBfdBdB{eBfB{fBfB\gBgBhB{hBhBiBRiBiBiBiBjBjB)jB3jB3jB)jBjBjBiBiBiBHiB iBhBqhBhBgBRgBfBqfBeB{eBdBfdBcB3cBbBaB=aB`B_B_B\^B]B\B \B=[BfZBYBXBWBWBVB=UB\TBqSBRBQBPBOBNBMBMBLB)KB3JBHIBRXB3YB ZBZB[B\BR]B^B^B_BR`B aBaBfbB cBcBHdBdBfeBeBqfBfB\gBgB3hBhBhB=iBiBiBiB)jBRjBqjBjBjBjBjBjBjBfjBHjBjBiBiBqiB)iBhBhB)hBgBRgBfBffBeB\eBdB3dBcBbBRbBaB`B=`B_B^B^B=]Bq\B[BZBYBYBHXBfWBVBUBTBSBRB RBQB3PBHOBRNBfMB{LBKBJBIBXBYB{ZBR[B\B\B]B^BH_B `B`B{aB)bBbB{cBdBdBHeBeB\fBfB\gBgB=hBhBiB\iBiBiB3jBfjBjBjBjBkB kBkBkB kBjBjBjBjB\jBjBiBiBHiBhBhB)hBgBHgBfBRfBeB3eBdB dBfcBbBbB\aB`B_B3_Bq^B]B\B \B=[BfZBYBXBWBVB VB)UB=TB\SBqRBQBPBOBNBMBLBKB KBJB3YBZBZB[B\Bf]B3^B^B_B{`B3aBaBbBHcBcBdB)eBeBHfBfBRgBgB=hBhBiBqiBiBjBfjBjBjB kB3kBRkBfkB{kBkB{kBqkBfkBHkB)kBkBjBjBRjB jBiB\iBiBhB)hBgB=gBfB3fBeB eBqdBcB)cB{bBaBaB\`B_B^B ^B=]Bq\B[BZBYBYB3XBRWBqVBUBTBSBRBQBQBPBOB3NBHMB\LBqKB{JBYBZB\[B3\B ]B]B^Bf_B)`B`BaB\bB cBcB\dBeBeB)fBfB=gBgB=hBhBiBiBiB=jBjBjBkBHkB{kBkBkBkBkBkBkBkBkBkBkBfkB3kBkBjBqjBjBiBfiB iBhBhBgB)gBfB fB{eBdB=dBcBbB3bB{aB`B`B=_B{^B]B\B \B3[B\ZB{YBXBWBVBUB UB)TB=SBRRBfQB{PBOBNBMBLBKBJBZBZB[B\B{]BH^B_B_B`B\aBbBbB{cB)dBdBqeB fBfB)gBgB3hBhBiBiBiBRjBjBjB=kBkBkBkBlB3lBHlB\lB\lB\lBRlB=lB)lBlBkBkBfkB)kBjBjB3jBiBqiBiBhBhBgB gB{fBeBHeBdBdBRcBbBaB)aBf`B_B^B^BH]Bq\B[BZBYB YB)XB=WB\VB{UBTBSBRBQBPBOBOBNB)MB=LBRKBZBf[B=\B]B]B^B_BH`B aBaBbB=cBcBdB=eBeB{fB gBgBhBhBiBiBjBfjBjBkBfkBkBkB)lB\lBlBlBlBlBlBlBlBlBlBqlBHlBlBkBkBRkBkBjBHjBiBqiBhB{hBhBqgBfBRfBeB eBfdBcB cBRbBaB`B`BH_B{^B]B\B\B)[BRZBqYBXBWBVBUBTB TBSB3RBHQB\PBfOB{NBMBLBKBZB[B\B]B\^B)_B_B`B{aB=bBbBcB\dB eBeBRfBfB{gB hBhBiBiBjBqjBjB3kBkBkBlB\lBlBlBlBmB)mB3mB=mB=mB3mBmBmBlBlBlBHlBlBkBfkBkBjBHjBiBfiBhBfhBgBRgBfBfB{eBdBdBqcBbBbB=aB{`B_B^B^B=]Bf\B[BZBYBXBXB)WBHVB\UBqTBSBRBQBPBOBNBMB MBLBf[BH\B]B]B^B_Bf`B)aBaBbBfcBdBdB{eBfBfB\gBgB{hBiBiBjBqjBjBHkBkBlBHlBlBlB mB=mBfmBmBmBmBmBmBmBmBqmBHmBmBlBlBqlB)lBkB{kBkBjBHjBiBRiBhBHhBgBgBfBeB3eBdBcBcBfbBaB`B`BH_B{^B]B\B[B[B=ZB\YB{XBWBVBUBTBSBSBRB)QB3PBHOB\NBqMBLB[B\B]Bf^B=_B `B`BaB\bBcBcBdB=eBeBfB3gBgB\hBhBqiBiBqjBjBRkBkBlBqlBlBmB=mB{mBmBmBmB nBnBnBnB nBmBmBmBmB\mBmBlBlB=lBkBkBkBjB=jBiB=iBhBhBgBfBHfBeBdB=dBcBbB bBHaB`B_B^B^B=]B\\B[BZBYBXBWBWB)VB=UBRTBfSB{RBQBPBOBNBMBLBH\B)]B^B^B_B{`BHaB bBbBcBHdBeBeB\fBgBgB=hBhB\iBiBfjBjBRkBkB)lBlBlB)mBqmBmBmBnB=nB\nB{nBnBnBnB{nBfnBHnB)nBnBmBmBHmBmBlBRlBkBkBkBjB)jBiBiBhBgB\gBfB fB\eBdBcB3cB{bBaB`B`BH_B{^B]B\B[B [B)ZBHYB\XB{WBVBUBTBSBRBQB QBPB)OB=NBRMB\B]Bq^BH_B`B`BaB{bB=cBdBdBqeBfBfBqgBhBhB=iBiB\jBjBRkBkB3lBlBlBRmBmBmBnB\nBnBnBnBnBnBnBnBnBnBnBnBfnB3nBnBmBqmBmBlB\lBkBkBkBjBjBiBhB\hBgBgBqfBeBeB\dBcBbBbBRaB`B_B^B ^B3]BR\Bq[BZBYBXBWBVB VBUB3TBHSB\RBqQB{PBOBNBMB)]B ^B^B_B`B\aB)bBbBcBqdB)eBeBfB=gBgBhBiBiB=jBjBHkBkB3lBlB mBfmBmB nBRnBnBnBnBoB=oBRoBfoBfoBfoB\oBHoB)oBoBnBnBfnB)nBmBmB3mBlBflBkB{kBkB{jBiBfiBhB)hBgBfB3fB{eBdB dBHcBbBaB`B`BH_Bq^B]B\B[BZBZB3YBHXB\WBqVBUBTBSBRBQBPBOB OBNB]Bq^BH_B`B`BaBbB\cBdBdBeBHfBfBgBHhBhBiBjBjB3kBkB3lBlBmB{mBmB)nB{nBnBoB3oBfoBoBoBoBoBoBoBoBoBoBqoBHoBoBnBnBHnBmBmB=mBlBflBkBqkBjBfjBiB=iBhBgBRgBfBeB3eB{dBcBbB)bB\aB`B_B^B ^B)]BH\Bf[BZBYBXBWBVBUB UBTB3SBHRBRQBfPB{OBNB^B^B_B`BfaB3bBcBcBdBHeB fBfBqgBhBhB\iBiBjBkBkB)lBlBmBmBmBHnBnBnB3oBqoBoBoBpBpB3pB=pBHpB=pB3pBpB pBoBoBoBHoBoBnBfnB nBmBHmBlB\lBkB\kBjB=jBiB iBfhBgB gB\fBeBdBdB\cBbBaB`B`BH_Bq^B]B\B[BZB ZBYB3XBHWB\VBqUBTBSBRBQBPBOBNBq^BR_B)`BaBaBbBqcB=dBeBeB{fB)gBgBhB3iBiBfjBkBkBlBlBmBmBmB\nBnB oB\oBoBoBpBHpBqpBpBpBpBpBpBpBpBqpBRpB)pBoBoBqoB)oBnB{nBnBmB=mBlBHlBkB=kBjBjBqiBhB)hB{gBfB fBReBdBcBcB3bB\aB`B_B^B^B]B=\BR[BqZBYBXBWBVBUBTBTBSB)RB3QBHPB\OB^B_B`BqaBHbBcBcBdBqeB)fBfBgBRhBhBiB=jBjBqkBlBlB mBmBmBfnBnB)oB{oBoBpBRpBpBpBpBqBqBqBqBqBqBqBpBpBpB\pBpBoBoB=oBnBnBnBmB3mBlB3lBkBkB{jBiB3iBhBgB)gBqfBeBdB3dBfcBbBaB`B`B=_Bf^B]B\B[BZBYBYBXB3WB=VBRUBfTB{SBRBQBPBOB\_B3`BaBaBbBcBRdBeBeBfB\gB hBhBfiBjBjBHkBkBqlBlB{mBmBfnBnB=oBoBoB=pBpBpBpB)qBRqBqqBqBqBqBqBqBqqBRqB)qBqBpBpBHpBpBoBRoBnBnBnBmBmBlBlB{kBjBHjBiBhBHhBgBfBfB\eBdBcBcB3bB\aB`B_B^B]B ]B\B=[BRZBqYBXBWBVBUBTBSBRBRBQB)PB_B`BaB\bB)cBcBdBeBRfBgBgBhB3iBiBjBkBkBRlBlBfmBmBfnBnBHoBoB pB\pBpBpB3qBfqBqBqBqBqBrBrBrBqBqBqBqBqqB=qBqBpBqpBpBoB\oBnBnB nBmB mB{lBkBRkBjB jBfiBhBhBHgBfBeBeB3dBfcBbBaB`B `B3_BR^Bq]B\B[BZBYBXBXB WBVB3UBHTB\SBfRB{QBPB=`BaBaBbBcBqdB3eBfBfBgB=hBhBiBRjBjBkB3lBlBRmBmB\nBnBHoBoBpB{pBpBqBfqBqBqB rB)rBHrB\rBqrBqrBqrB\rBHrB3rB rBqBqBfqB)qBpBpB)pBoB\oBnB{nBmBqmBlBRlBkBkBqjBiBiBfhBgBfB3fBfeBdBcBcB)bBRaB{`B_B^B]B\B \B[B=ZBRYBfXBqWBVBUBTBSBRBQBPB`BaBfbB=cB dBdBeBqfB3gBgBhBfiBjBjBfkB lBlB3mBmBHnBnBHoBoB)pBpBpB=qBqBqBrBHrB{rBrBrBrBrBrBrBrBrBrB{rBHrBrBqBqBHqBpBpB3pBoB\oBnBfnBmBRmBlB)lBkBjB3jBiBhBhB\gBfBeB eB3dBfcBbBaB`B`B_B=^B\]Bq\B[BZBYBXBWBVBVBUB)TB3SBHRB\QBaBaBbBcB{dBReBfBfBgBfhBiBiBjB3kBkB{lBmBmB3nBnB=oBoB)pBpBqB\qBqBrBHrB{rBrBrB sB)sB=sBHsBRsBHsB=sB)sB sBrBrBrBHrBrBqB\qBqBpB3pBoBRoBnBHnBmB)mBlBkBHkBjBiB=iB{hBgBgB=fBqeBdBcBbBbBHaBf`B_B^B]B\B[B [BZB3YB=XBRWBfVB{UBTBSBRBQBaBqbBHcBdBdBeBfBRgBhBhBiBHjBjBkBHlBlBmBnBnB)oBoB)pBpB qBqqBqBrBqrBrBrB)sBRsB{sBsBsBsBsBsBsBsB{sBRsB)sBrBrBqrBrBqBqqB qBpB3pBoB=oBnB)nBmBlB\lBkB kB\jBiBhB)hBfgBfBeB eB3dB\cBbBaB`B_B _B)^B=]BR\Bq[BZBYBXBWBVBUBTBTBSB)RBbBbBcBdBfeB3fBgBgBhBHiBjBjBfkBlBlB\mBmBnBoBoBpBpB qB{qBqB=rBrBrBsB\sBsBsBsB tBtB)tB3tB)tBtB tBsBsBsB\sBsBrBrB=rBqB{qB qBpB)pBoBoBnBnBfmBlBlBqkBjB jBRiBhBgB gB=fBqeBdBcBbBbB3aBR`Bq_B^B]B\B[BZBZB YBXB3WBHVB\UBfTB{SBRBqbBRcB)dBeBeBfBqgB3hBhBiBqjB)kBkBlB)mBmBfnBnBoB pBpB qB{qBqBRrBrBsBRsBsBsB tB3tB\tB{tBtBtBtBtBtBqtBRtB3tBtBsBsBHsBrBrBHrBqB{qB qBpBpBoBoBfnBmB)mBlBkB)kBqjBiBiB3hBqgBfBeBeB3dBRcB{bBaB`B_B^B ^B]B=\BR[BfZBqYBXBWBVBUBTBSBRBbBcBdBqeBHfBgBgBhBfiB)jBjBkBHlBlBmB=nBnBfoBoBpBqB{qBqB\rBrBsBqsBsBtB=tB{tBtBtBtBuB uB uB uBtBtBtBtBqtB=tBsBsBfsBsBrBRrBqBqqBqB{pBoBfoBnB3nBmBlBHlBkBjBjBfiBhBgB gB=fBqeBdBcBbBbBaB=`B\_Bq^B]B\B[BZBYBXBXBWBVB3UBHTB\SBRcB3dB eBeBfBgBRhBiBiBjBRkB lBlBfmB nBnBHoBoBfpBpBqqBqB\rBrB3sBsBsB3tBqtBtBtBuB=uB\uBquB{uB{uBquBfuBRuB3uB uBtBtBftBtBsB{sBsBrBRrBqBfqBpB\pBoB=oBnBnB\mBlBlBHkBjBiB iB=hBqgBfBeBeB)dBHcBfbBaB`B_B^B]B ]B\B3[B=ZBRYBfXB{WBVBUBTBSBcBdB{eBRfB)gBgBhBiBRjB kBkB{lB)mBmB{nBoBoBRpBpBfqBqB\rBrB=sBsBtBRtBtBtBuB\uBuBuBuBuBuBuBuBuBuBuB{uBHuBuBtBtB=tBsBsB)sBrBHrBqBRqBpB=pBoB oBfnBmBmBflBkBjB3jBqiBhBgB gB=fBfeBdBcBbBaB aB)`B=_BR^Bq]B\B[BZBYBXBWBVBVBUB)TB3dBeBeBfBgBfhB3iBjBjB{kB=lBlBmBHnBnBoB)pBpBHqBqBRrBrB=sBsBtBqtBtBuBRuBuBuBuBvB3vBHvBRvB\vBRvBHvB)vB vBuBuBuB=uBuBtBRtBsBsB)sBrB=rBqB3qBpBpBqoBnB)nB{mBlBlB\kBjBiBiBHhBqgBfBeBdBdB3cBRbBqaB`B_B^B]B\B[B [BZB3YBHXBRWBfVB{UBTBdBeB\fB3gB hBhBiBqjB3kBkBlB\mBnBnB\oBpBpB3qBqBHrBrB=sBsBtBtBtB3uBuBuBvB3vBfvBvBvBvBvBvBvBvBvB{vBRvB)vBuBuBfuBuBtBftBtBsBsBrB)rBqBqB{pBoB=oBnBmB3mB{lBkBkB=jB{iBhBgB gB3fB\eB{dBcBbBaB`B `B_B3^BH]B\\Bq[BZBYBXBWBVBUBTBeBeBfBgB{hBHiBjBjBkB\lBmBmBnB)oBoBqpB qBqB3rBrB3sBsBtBtBtBRuBuBuB3vBqvBvBvBwBwB)wB3wB3wB3wBwB wBvBvBvB\vBvBuBuB3uBtBqtBtBsBsBrB rB{qBpBHpBoBoBRnBmBlB)lBqkBjBiBiBHhBqgBfBeBdBdBcB=bB\aBq`B_B^B]B\B[BZBZB YBXB3WBHVB\UBeBffB=gBhBhBiBjBRkBlBlBmB=nBnBoBHpBpB{qBrBrB)sBsBtBtBuBfuBuBvBfvBvBvBwBHwBfwBwBwBwBwBwBwB{wB\wB3wBwBvBvB=vBuBuB=uBtBqtBsB{sBsBqrBqBRqBpB pBfoBnB nBRmBlBkB kBHjB{iBhBgBgB)fBHeBfdBcBbBaB`B_B_B^B)]B=\BR[BfZBqYBXBWBVBUBfBfBgBhB\iB)jBjBkBlBHmBnBnBfoB pBpBRqBqBrBsBsBtBtB uBquBuB3vBvBvBwBRwBwBwBwBwB xBxBxB xBxBwBwBwBqwB3wBvBvB\vB vBuBHuBtBftBsBfsBrBRrBqBqB{pBoBoBqnBmBmB=lB{kBjBiBiB=hBfgBfBeBdBcB cB)bB=aBR`Bf_B{^B]B\B[BZBYBXBXBWBVBqfBHgB)hBiBiBjBfkB3lBlBmBqnB)oBoBpB)qBqB\rBrBsB tBtBuB{uBuBHvBvBvB=wBwBwBwB)xBHxBfxB{xBxBxB{xBqxBRxB3xB xBwBwBfwBwBvBqvBvBuB=uBtBRtBsBHsBrBrBqBpB3pBoBnBnBfmBlBkBkBHjB{iBhBgBfBfB3eBRdBqcBbBaB`B_B^B]B ]B\B)[B=ZBRYBfXBqWBVBfBgBhBqiB=jBkBkBlBfmB)nBnBoBHpBpBqB3rBrBfsBsB{tBtBquBuBRvBvBwBfwBwBwB3xBfxBxBxBxBxBxBxBxBxBxBxB{xBHxBxBwBwB3wBvBvBvBuB=uBtB=tBsBsBrBqBHqBpBoB=oBnBmB mBHlB{kBjBiB iB3hB\gB{fBeBdBcBbB bBaB3`BH_B\^Bq]B\B[BZBYBXBWBVBRgB)hB iBiBjBkBRlBmBmBnBRoB pBpBfqB rBrB=sBsBftBtBquBuB\vBvB)wBwBwBxBfxBxBxByB)yBHyBRyB\yBfyB\yBHyB3yByBxBxB{xB=xBwBwBHwBvBvBvBuB)uBtBtBsBrB\rBqB qB\pBoBnB3nBqmBlBkBkBHjBqiBhBgBfBfBeB=dBRcBqbBaB`B_B^B]B\B[B [BZB)YB=XBRWBgBhB{iBRjBkBkBlBmBHnB oBoB{pB)qBqB{rBsBsBHtBtB\uBuBRvBvB3wBwBwBHxBxBxByBHyBqyByByByByByByByByB{yBRyByBxBxB\xBxBwB\wBvBvB vBuBuBtBsB\sBrBrBqqBpBpB\oBnBmBmBHlB{kBjBiBiB)hBHgBffBeBdBcBbBaBaB`B)_B=^BH]B\\Bq[BZBYBXBWB3hBiBiBjBkBflB3mBnBnB{oB3pBpBqBHrBrBsB)tBtBHuBuBRvBvB=wBwB xBfxBxByBHyByByByB zBzB3zB=zB=zB3zB)zB zByByByBRyByBxB{xBxBwB\wBvBqvBuBquBtB\tBsB)sB{rBqB)qBqpBoBoB=nBqmBlBkB kB3jB\iBhBgBfBeBeBdB3cBHbB\aBq`B_B^B]B\B[BZBYBYBXBhBiB\jB3kB lBlBmBqnB3oBoBpB\qB rBrB\sBtBtB)uBuB=vBvB=wBwBxB{xBxB)yBqyByByB)zBRzB{zBzBzBzBzBzBzB{zBRzB)zBzByB{yB3yBxBxB)xBwBRwBvBfvBuBRuBtB)tBsBrB=rBqBpBpBfoBnBmBmBHlBqkBjBiBhB hB)gBHfBfeB{dBcBbBaB`B_B^B ^B]B3\B=[BRZBfYB{XBiBiBjBkB{lBHmBnBnBoB\pBqBqB{rB)sBsBqtB uBuB)vBvB3wBwBxBxBxBHyByByB)zBfzBzBzBzB{B{B{B{B{B{BzBzBzBfzB)zByByBRyBxBxB3xBwBHwBvBHvBuB)uBtBsBRsBrBqB=qBpBoB oB=nB{mBlBkBkB)jBRiBqhBgBfBeBdBcBcB)bB=aBH`B\_Bq^B]B\B[BZBYBXBiBfjB=kBlBlBmBnBRoBpBpBqB=rBrBsB=tBtB{uB vBvBwBwBxBxBxB\yByB zBRzBzBzB {B3{BR{Bq{B{B{B{B{{Bq{BR{B3{B {BzBzB\zB zByBfyByBxB)xBwB3wBvB)vBuBuB\tBsB sB\rBqBpB3pBqoBnBmBmB=lBfkBjBiBhBgBgB3fBHeB\dBqcBbBaB`B_B^B]B\B \B[B3ZBHYBiBjBkBlB\mB)nBnBoBpB=qBrBrBfsB tBtBRuBuB{vB wBwBxBxByBfyByB)zB{zBzB {B={Bq{B{B{B{B{B{B{B{B{B{B{Bq{B={B {BzB{zB)zByBqyByBxBxBwBwBvBvBfuBtBtBqsBrBrBRqBpBoB oBHnB{mBlBkBjBjB=iB\hB{gBfBeBdBcBbBbBaB)`B=_BH^B\]Bq\B[BZBYBfjBHkBlBlBmBnBfoB3pBpBqBqrBsBsB{tBuBuB\vBvB{wBxBxByBqyByB=zBzBzB3{B{{B{B{B|B3|BR|B\|Bf|Bf|B\|BH|B3|B |B{B{Bq{B3{BzBzB=zByBqyByBxB xBwBvBfvBuB3uBtBsB)sB{rBqBqB=pBqoBnBmB mB3lB\kB{jBiBhBgBfBfB)eB=dBRcBfbB{aB`B_B^B]B\B[BZB ZBjBkBlBfmB=nB oBoBpBfqBrBrBsBHtBtBuB3vBvB\wBwBqxBxBqyByBHzBzB {B\{B{B{B|BR|B{|B|B|B|B|B|B|B|B|B{|BR|B|B{B{BR{B{BzBHzByBfyBxBqxBwBfwBvB3vBuBtBHtBsBrB)rBfqBpBoBoB=nBqmBlBkBjB jB)iBHhB\gB{fBeBdBcBbBaB`B`B_B)^B3]BH\B\[BqZBRkB)lBmBmBnB{oBHpBqBqBrBRsBtBtB\uBvBvB=wBwB\xBxBfyByBRzBzB{B{{B{B|BR|B|B|B|B}B)}B=}BH}B=}B3}B)}B }B|B|B|BH|B |B{Bf{B{BzBHzByB\yBxB\xBwB=wBvBvB\uBtBtBHsBrBqB qB=pB{oBnBmBmB)lBHkBqjBiBhBgBfBeB eBdB3cBHbBRaBf`B{_B^B]B\B[BZBkBlBqmBHnBoBoBpBqBHrB sBsBqtB)uBuBqvBwBwB=xBxBRyByBRzBzB){B{B{B=|B|B|B}B3}B\}B}B}B}B}B}B}B}B{}BR}B)}B|B|Bq|B)|B{B{{B{BzB=zByBHyBxB3xBwB wBfvBuBuBftBsBrB3rBqqBpBoB oB=nBfmBlBkBjBiB iB)hB=gBRfBqeBdBcBbBaB`B_B^B^B]B)\B=[B3lB mBmBnBoB\pB)qBqBrB{sB3tBtBuB=vBvBwBxBxB=yByBHzBzB3{B{B|BR|B|B|B3}Bq}B}B}B}B ~B~B~B~B~B~B}B}B}B\}B)}B|B|B=|B{B{B{BzB3zByB)yBxB xBqwBvB)vB{uBtBtB\sBrBqB qBHpBqoBnBmBlBlB3kBRjBqiBhBgBfBeBdBcB cBbB3aB=`BR_Bf^B{]B\B[BlB{mB\nB3oBpBpBqBfrB)sBsBtBRuB vBvBRwBwBxByByB3zBzB3{B{B |Bq|B|B}Bf}B}B}B~B=~B\~B{~B~B~B~B~Bq~BR~B)~B~B}B}BH}B}B|BR|B{B{B{BzBzByB yBqxBwB3wBvBuB3uB{tBsBsB=rBqqBpBoB oB3nBRmB{lBkBjBiBhB hBgB3fBHeB\dBqcBbBaB`B_B^B]B\B\BmBmBnBoBqpBHqB rBrBsB\tBuBuB{vBwBwBfxByByBzBzB){B{B|B{|B|B3}B}B}B~BR~B~B~B~B~B~BB~B~B~B~B~Bq~B=~B~B}Bf}B}B|B\|B{B{{B{BzBzBqyBxB=xBwBvBHvBuBtB)tBfsBrBqB qB=pBfoBnBmBlBlBkB=jBRiBqhBgBfBeBdBcBbBaB aB`B)_B=^BR]Bf\BmB\nB=oBpBpBqB{rBHsB tBtBuB=vBvBwB=xBxBqyBzBzB{B{B |B|B|BH}B}B}B=~B~B~B~BB=BRBfBfBfB\BHB)B B~B~Bf~B~B}B}B)}B|B\|B{Bq{BzBfzByBHyBxB xB\wBvBvBHuBtBsB sB=rBqqBpBoBnBnBHmBflBkBjBiBhBgBgBfB)eB3dBHcB\bBqaB{`B_B^B]B\BmBnBoBpBRqB)rBrBsB{tB=uBuBvB\wBxBxBHyByBqzB{B{B |B{|B|B\}B}B~Bf~B~B~B)B\BBBBBBBBBBqBHBB~B~B=~B}B}B)}B|BR|B{BR{BzB=zByByBqxBwBwBfvBuBtB3tBqsBrBqB qB3pB\oBnBmBlBkBkBjB3iBHhB\gBqfBeBdBcBbBaB`B_B _B^B)]BfnB=oBpBpBqBrBfsB)tBtBuBfvBwBwBqxByByBRzBzBq{B{B{|B|B\}B}B)~B~B~BBfBBBBBBB$B$BBBBBB{B=BB~B\~B~B}B)}B|B=|B{B3{BzBzB{yBxB3xBwBvBvB\uBtBsB sB=rBqqBpBoBnB nB)mBHlBfkBjBiBhBgBfBeBeBdBcB3bBHaBR`Bf_B{^B]BnBoBpBfqB3rB sBsBtB\uBvBvBwB=xBxByB)zBzBR{B{Bf|B|B\}B}B=~B~B~BHBBBBB3BBBRBWB\BWBRBGB8B)BBBBfBB~Bf~B~B}B)}B|B)|B{B{B{zByB=yBxBwB3wB{vBuBuB=tBqsBrBqBqB)pBRoBqnBmBlBkBjBjBiB)hB=gBRfBfeBqdBcBbBaB`B_B^B]BHoBpBqBqBrB{sBHtB uBuBvBHwBxBxBRyBzBzB3{B{BR|B|B\}B}B=~B~B BfBBBB=BWBkB{BBBBBBBpB\BGB)B BBB3B~Bq~B~B}B}B|B |B{{BzBHzByByBRxBwBvB)vBfuBtBsB sB=rBfqBpBoBnBmBmB3lBHkB\jB{iBhBgBfBeBdBcBbB bBaB3`BH_B\^BoBpBqqBHrBsBsBtB{uB=vBwBwBqxByByBqzB {B{B3|B|BH}B}B=~B~BB{BBB8BWBvBBBBBǀBǀBǀB€BBBB{BaBBBBBB=B~Bf~B}B{}B|Bq|B{BR{BzB zBfyBxBxBHwBvBuB uB=tBqsBrBqBpBpB=oB\nB{mBlBkBjBiBhBhBgB)fB=eBHdB\cBqbBaB`B_B^B)pBqBqBrBsB\tB)uBuBvBqwB)xBxByB=zBzB{{B|B|B3}B}B=~B~BBBB$BMBpBBBǀB܀BBBBBBBB܀BǀBBBvBWB.BBB=B~B\~B}Bf}B|BH|B{B{BqzByByBfxBwBvB3vBfuBtBsBsB)rBRqB{pBoBnBmBlBlB)kB=jBRiBfhB{gBfBeBdBcBbBaB`B `B_BpBqqBRrB)sBsBtBuB\vBwBwBxBRyBzBzBR{B{B|B}B}B)~B~BBBB.B\BBBǀBBBB$B.B3B8B3B.B$BBBB̀BBBaB8B BB=B~BR~B}BH}B|B|B{BzB3zByBxBxB\wBvBuB uB=tBfsBrBqBpBpBoB=nB\mBqlBkBjBiBhBgBfBfBeBdB3cBHbB\aBq`B_B qBqBrBsBftB=uB vBvBwBRxB yByBqzB{B{B\|B|B}B~B~BBBB3BfBBBBBB3BGBWBfBkBkBkBfBWBMB8BBBB€BBkB=B BB3B~B3~B}B}B|B{BH{BzByB3yB{xBwBwB3vBquBtBsBrBrBHqBfpBoBnBmBlBkBkBjB)iB=hBRgBffBqeBdBcBbBaB`B_B{qB\rB3sB tBtBuB{vB=wBxBxB{yB3zBzB{B3|B|Bf}B}B~B BBB8BkBB̀BBB8BRBkBBBBBBBBBBkBWB8BBB̀BBpB=B BBB~B~B}B|BR|B{B{BRzByBxB)xBfwBvBuBuB3tB\sBrBqBpBoB oBnB=mBRlBfkB{jBiBhBgBfBeBdBdB cBbB3aBH`BqBrBsB{tBRuBvBvBwBqxB3yByBzBR{B|B|B=}B}Bf~B~B{BB8BpBB׀BB)BRBpBBBBǁBҁBׁB܁BׁBҁBǁBBBBpBRB)BB׀BBvB=BBB B{~B}BR}B|B|Bf{BzBzBHyBxBwBwB3vBfuBtBsBrB rB)qBHpBfoBnBmBlBkBjBiB iBhB)gB=fBHeB\dBqcBbBaB`B\rB=sBtBtBuBvB\wBxBxByB\zB{B{Bq|B}B}BH~B~BfBB8BpBB܀BB8BaBBBB܁BBB BBBB BBBׁBBBBaB8BB܀BBpB8BBqB~BR~B}B}B{|B{B{BfzByBxB)xBfwBvBuBtBtBHsBqrBqBpBoBnBnBmB)lB=kBRjBfiB{hBgBfBeBdBcBbBaB aBrBsBtB\uB)vBvBwBxBRyBzBzB{{B3|B|B{}B~B~BHBB.BkBBBBBBpBBB܁BBB$B3B=BGBGBBB=B3B$BBBׁBBBkBBBB܀BBkB.BBHB~B~B}B|B3|B{BzBzBRyBxBwBwB3vB\uBtBsBrBqBqB3pBHoBfnB{mBlBkBjBiBhBgBgBfBeB3dBHcB\bBqaB=sBtBtBuBvBfwB3xByByBzB={B{B|BH}B}B~B)BB$BfBBBBMB{BBҁBBB.BGB\BkBvB{BB{BvBfBWBBB.BBBǁBBvBGBB܀BBaBBBB~B}BH}B|B{B3{B{zByBxB)xBfwBvBuBtBtB3sBRrBqqBpBoBnBmBlB lBkB)jB=iBRhBfgBqfBeBdBcBbBaBsBtBfuB=vB wBwBxBqyB3zBzB{B\|B}B}B\~BBBB\BB܀BBRBBBB B.BMBfBBBBBBBBBBB{BaBBB$BBׁBB{BGBBҀBBRBBB~BR~B}B}BR|B{BzBzB\yBxBwBvBvBRuBqtBsBrBqBpB pB)oB=nBRmBflB{kBjBiBhBgBfBeBdB dBcB3bBtBtBuBvB{wBHxByByBzBf{B|B|B}B)~B~BqBBMBB׀BBRBBBBB=BaBBBB͂B܂BBBBBBׂB‚BBB{B\B3B BBB{BBB BǀBBBBBRB~B~Bf}B|B|B={BzByBxB)xB\wBvBuBtBtBsB=rB\qBqpBoBnBmBlBkBjBjBiB)hB3gBHfB\eBqdBcBbBtBfuBHvBwBwBxByBRzB{B{B|B=}B}B~B=BB=BB̀BBMBBBB$BRBvBBBׂBBBBBB$BBB BBB͂BBBkBBBBBBvB=BBBvB)BBB{~B}B}Bf|B{BzBzB\yBxBwBvBvB=uB\tB{sBrBqBpBoBoBnB)mB=lBRkBfjB{iBhBgBfBeBdBcBbBuBuBvBwB\xB3yByBzB{BH|B}B}Bf~B BB)BvBBBGBBBB)B\BBB҂BBB$B8BGBRBWBWBWBMBBB3BBBB‚BBvBGBBBBpB3BBBaBBB~B3~B{}B|B |BH{BzByBxBxBRwB{vBuBtBsBsBrB3qBRpBfoB{nBmBlBkBjBiBhBhB gBfB3eBHdB\cBquBHvB)wBxBxByBfzB3{B{B|Bq}B~B~B{BBaBBB=B{BBB.BaBBBB B)BBB\BpBBBBBBBvBfBRB8BBBׂBBBMBBBBfB$B܀BBGBBHB~B}B)}Bq|B{BzBzBRyBxBwBvBvB)uBHtBfsB{rBqBpBoBnBmBmBlB)kB=jBHiB\hBqgBfBeBdBcBuBvBwBqxB=yBzBzB{Bf|B)}B}B~BHBBGBBB.BpBBB.BfBB͂BBBBBaB{BBBBƒBǃBǃBƒBBBBBpBRB.B BBBBMBBׁBBWBBǀB{B)BBBH~B}B|B|BR{BzByBxBxB=wBfvBuBtBsBrBrBqB)pB=oBRnBfmB{lBkBjBiBhBgBfBeB eBdBRvB)wB xBxByBzBH{B|B|B}BR~BBB.BBҀBBfBBB.BfBB҂BB.BWB{BBB̓B܃BBBBBBBB҃BBBBfB=BBBBBGBB́BBBBBB\B BfB~B}B=}B{|B{BzBzBRyB{xBwBvBuB uB)tBHsB\rBqqBpBoBnBmBlBkBkB jBiB3hBHgB\fBqeBdBvBwB{xBRyBzBzB{B|BH}B ~B~BqBBfBB BWBBB$BfBBׂB B8BfBBB҃BBBB$B.B3B3B.B)BB BB܃BBBvBMBBBBBBBBBvB.BBB8BBB\~B}B|B|BR{BzByBxBxB)wBHvBquBtBsBrBqBpBpBoB)nB=mBRlB\kBqjBiBhBgBfBeBdB3wB xBxByBzBf{B)|B|B}B{~B3BBMBBBBBBׁBB\BBׂBBBBpBBǃBBB$B8BMB\BfBkBkBfB\BRB=B)BBB҃BBBRBBBBvB3BBBaBB€BkBB{B~B~B=}B{|B{BzBzB=yBfxBwBvBuBtB tBsB=rBRqBfpB{oBnBmBlBkBjBiBhB hBgB3fBHeBwB{xB\yB3zB{B{B|Bf}B)~B~BB)BB׀B)B{BBBRBBׂBBGB{BB׃BBB=BWBpBBBBBBBBBvBaBGB)BBBBBWBBBBkB$B܁BBGBBBGBB)Bf~B}B|B|BH{B{zByBxBwBwB3vBRuBftBsBrBqBpBoBnBnBmBlB3kBHjBRiBfhB{gBfBeBxBxByBzBq{BH|B }B}B~B\B BaBBBaBBBGBB͂B BGBBBBB3BWBvBBBBDŽB҄BׄBׄB҄BDŽBBBB{B\B8BBBBBRBB܂BBWBBǁB{B)BҀB{B$BB~B ~BH}B{|B{BzBzB)yBRxBqwBvBuBtBsBsBrB)qB=pBRoB\nBqmBlBkBjBiBhBgBfB fBxB\yB=zB{B{B|B{}BH~B BBBBBBGBBB3BB‚BBBBBBBBGBkBBBDŽBBBB BBB BBBB̈́BBBpBGBBBBBMBB҂BBBBBB\BBBRBB3Bq~B}B|B |B={BfzByBxBwBvBvB)uBHtB\sBqrBqBpBoBnBmBlBkB kBjB)iB=hBRgBffBxByBzB{BR|B)}B}B~B{BB{BҀB)BBҁB$BkBBB=B{BBB$BRB{BBDŽBBBB)B8BBBBBBB=B8B)BBBBDŽBBBRB$BBBBGBBBvB.BBB8BBB)BB~B ~B=}Bq|B{BzByByB3xB\wBqvBuBtBsBrBqBqBpBoB3nBHmBRlBfkB{jBiBhBgBfBfyB=zB{B{B|B}B\~B)BBWBB BaBB B\BBB3BvBBB)B\BBB܄BBB8BMBaBkBvB{B{BvBkBaBMB8BBB܄BBBWB)BBB{B8BBBaBBBkBBB\BB3Bq~B}B|B|B){BRzB{yBxBwBvBuB uBtB3sBHrB\qBqpBoBnBmBlBkBjBiBiBhB)gByBzB{Bf|B3}B ~B~BB.BBBBBBBBBB܂B)BkBBB)B\BB„BBB8BRBkBBBBBBBBBBBkBRB3BBBBB\B$BBBkB)BBBBBBBGBBB.BB~B ~B3}Bf|B{BzByByBxB3wBRvBfuBtBsBrBqBpBoBnB nBmB)lB=kBRjBfiB{hBgBHzB{B|B|B}Bq~B=BBfBǀB$B{BҁB)B{BǂBB\BBB$BaBBDŽBB$BMBkBBBBͅB܅BBBBBׅBͅBBBBfBBBBB„BBWBBBB\BBǂBvB$BҁBvBBBaBB3Bf~B}B|B{B{B=zB\yB{xBwBvBuBtBsB sBrB3qBHpBRoBfnB{mBlBkBjBiBhBgBzB{Bq|BH}B~B~BB=BBB\BB BaBBBMBB܃BB\BB̈́BB.B\BBB…B܅BBBBBBBBBBBׅBBB{BRB$BB„BBRBB҃BBBBBBWBBBMBBB.BB~B~B)}BR|B{{BzByBxBwBwB)vBHuB\tBqsBrBqBpBoBnBmBlBlB kBjB3iBRhB){B|B|B}B~B\BBvB׀B8BBBBBBB8BB̓BBWBB̈́BB8BfBBB܅BBB)B=BGBRBWBWBMBGB8B$B BB҅BBB\B)BB„BBGBBƒBvB.B܂BB3B܁BB$B€BaBB3B\~B}B|B{B{BzB=yB\xBqwBvBuBtBsBrBqBqBpB)oB=nBHmB\lBqkBjBiBhB{Bq|BR}B)~B~BBGBBBpB́B$B{B҂B$BpBBBMBB̈́BB=BpBBͅBBB3BMBaBpBBBBBB{BkBWBBB)BBBBBaB.BBB{B8BBBaBBBfBBBWBBB.BB~B}B}B=|B\{BzByBxBwBvBvBuB)tB=sBRrBfqB{pBoBnBmBlBkBjBiB iB |B|B}B~BfBBBBGBBB\BB B\BBB=BBDŽBB=BvBBׅBB)BMBfBBBBBB†B†BBBBBvB\B=BBB…BBaB)BBBkB)B܃BBBBBBBBBB)B€BaBBBR~B{}B|B{BzBzByB3xBRwBfvB{uBtBsBrBqBpBoBnB nBmB3lBHkB\jBqiB{|BR}B3~B BBWBBBBB=BBBBBBB.BvBBB=BvBBBB8BaBBBB͆BBBBBBBB׆B†BBBpBMB$BBDžBB\B$BBB\BBƒBvB$B͂BpBBBWBBB)BB~B}B}B|BH{BfzB{yBxBwBvBuBtBtBsB)rB3qBHpB\oBfnB{mBlBkBjBiB|B}B~B{B$BBBWBBBvB͂B$B{B̓BBfBBB8BvBBBBGBpBBB׆BBBB$B.B.B.B)BBBBBdžBBBWB.BBDžBBWBB҄BBBBBBRBBBGBBB)B€B\BBB=~Bf}B|B{BzByBxBxB)wB=vBRuBftBqsBrBqBpBoBnBmBlBlBkB3jB\}B=~BBBaBǀB.BBBRBB BaBB BWBBB.BpBBBBRBBB҆BBB)BBBRB\BfBkBfBaBWBGB3BBB܆BBBfB3BBDžBBMB B„B{B.B܃BB3BׂB{BBB\BBB)B{B~B}B|B |B){BHzB\yBqxBwBvBuBtBsBrBrB qBpB3oB=nBRmBflB{kBjB}B~BB.BBBfBǁB.BBBBBBB=BB܄B$BfBBB$BWBBBB B.BGBaBvBBBBBBBB{BfBRB3BBBdžBBfB3BBBB=BBBaBBBfB BBRBBB)B€BWBBB)~BH}Bf|B{BzByBxBwBwBvB)uB3tBHsB\rBqqB{pBoBnBmBlBkBjB=~BBBfBҀB8BBBfB‚BB{B҃B$BvBDŽBB\BBBB\BB†BBBBBaBBBBB͇B҇BׇB҇B͇B‡BBBBkBGB$BB͆BBfB.BBBpB)BBBBBBB=BBBBBWBBBBfB~B}B|B{B{BzB3yBHxB\wBqvBuBtBsBrBqBpBoBoBnB)mB=lBRkB~BB3BB BpBׁB8BBBWBB B\BBBMBBׅBBWBBdžBB)BRB{BBB҇BBBB B B BBBB҇BBB{BWB.BB҆BBaB)BBB\BB„BvBBǃBpBBBRBBB$BBMBB~B ~B)}BH|Bf{B{zByBxBwBvBuBtB tBsB)rB=qBRpB\oBqnBmBlBkBBBkB׀BBBBBpBׂB3BBBBBBB8BBͅBBRBBdžBB3BaBBB҇BBBB.B8BBBBBBB8B.BB BB҇BBBaB3BB͆BB\BBׅBBBBBBRBBBBBBBBBRBBBBHBq~B}B|B{BzByB yBxB3wBHvBRuBftB{sBrBqBpBoBnBmBmBlBB8BBB{BBGBBBkBǃB$B{B̈́BBpBBBGBBdžBB8BkBB‡BB B$B=BRBfBpBvB{BvBpBaBRB=B$B BB‡BBkB8BBdžBBMB B…BvB)BׄBB.B҃BvBBBRBBBBBBBB~B}B }B|B={BRzBfyB{xBwBvBuBtBsBrBqB qBpB3oBHnB\mBqlBBpB܀BGBBBBBGBBB\BBBWBBB=BB†BB8BpBB҇BBBBB\BvBBBBBBBBBBvB\B=BBB͇BBkB8BB†BB=BBB\B BB\BBBGBBBBBMBBvBB)BH~Bf}B|B{BzByBxBwBwBvB)uB3tBHsB\rBfqB{pBoBnBmBlB8BBBBBRBBB{B܃B8BBB=BBB)BpBBB8BpBBׇBB3BWBvBBBˆB҈B܈BBBB܈B͈BBBBpBRB)BB҇BBkB3BBBpB)B܅BB=BBB3B׃BvBBBMBB{BBB8BB~B}B|B|B{B)zB=yBRxB\wBqvBuBtBsBrBqBpBoBoBnB3mBpBBMBB$BBBRBBBpB̈́B$BvBDžBBaBBB3BpBB܇BB=BfBBB͈BBB BBBBBBBB܈BˆBBBaB3BB҇BBfB)BBB\BBBpBB„BfB BBGBB{BBBBBҀBfBB B)~B=}B\|Bq{BzByBxBwBvBuBtB tBsB)rB=qBRpBfoB{nBmBBBBB\B‚B)BBBMBBB\BBBRBBB)BkBBBBGBvBBLjBBBB.B=BMBRBRBMBGB8B)BBB܈BBBfB8B B҇BB\BB҆BBBBBBMBBB8B܃BvBBBGB܁BpBBB$BfB~B}B|B{BzByB yBxB3wB=vBRuBftBqsBrBqBpBoBnBmBBRBB)BBBaBƒB$BBB=BBB8BB҆BBaBB܇BBMBBB׈BBB8BRBfBvBBBBB{BpBaBGB.BBBLjBBpB=BB͇BBMBBBpB$B҅B{B$BDŽBkB BBBB܂BvB BB3BǀBWBB~B~B}B3|BH{B\zBfyB{xBwBvBuBtBsBrBqB qBpB3oBRnBBBBaB͂B3BBB\BBBvBͅBBpBB BRBBׇBBRBBBBB3BWBpBBBBBBBBBBBBfBGB$BB҈BBpB8BB‡BB8BBBWBBBWBBB=B׃BvBBB=BҁBfBBBBHB\~B{}B|B{BzByBxBwBwBvBuB3tBHsBRrBfqB{pBoBnBRBB.BBBkB҃B3BBBRBBBWBBBBBB҇BBMBBBBBGBkBBBB҉BBBBBBB܉BljBBB{BWB.BB׈BBkB3BBBkB$B׆BB3BBB.B̈́BkB BB=BׂBkBBB$BBBBB~B}B|B|B{B)zB=yBHxB\wBqvB{uBtBsBrBqBpBoB oBBBfB҂B=BB BkB̈́B.BBB=BBB.B{B‡B BGBBBB)BRBBB‰B܉BB BB$B)B)B)BBBBB͉BBBfB8B B׈BBfB$BBBWB BBfBBB\BBB8B׃BpBBB3BBWBBvBBB3~BH}B\|Bq{BzByBxBwBvBuBtBtBsB)rB=qBRpBfoBB3BB BvB܃BBBBBfB…BBvBdžBBfBBB=BBBB.B\BBB܉BBB.BBBRB\BaBaB\BRBGB3BBBB‰BBkB=B B҈BBWBB҇BB=BBBBBBB.B̈́BkBBB8B͂BaBBBBB3B{B~B}B|B{BzByB yBxB)wB=vBHuB\tBqsBrBqBpBoBBkBׂBBBBB{B܄B=BBBWBBBRBBB3BvBBB.BfBB‰BBB3BMBaBvBBBBBBB{BkBRB8BBB͉BBpB=BB͈BBGBBBkBB͆BvBBBaBBB8B҃BfBBB$BBBBҀBaBB~B ~B}B3|B={BRzBfyB{xBwBvBuBtBsBrBqB qB)pB3BBB{BBMBBBvBׅB3BBB8BBׇB$BkBBB.BfBB͉BB$BGBfBBBBBNJB͊B͊BNJBBBBBkBMB)BB׉BBpB8BBB{B3BBBMBBBMBBB.B̈́BfBBB.BBRBBpBBBBRBf~B{}B|B{BzByBxBwBvB vBuB)tB=sBRrBqqBpBkB܂BGBBBBBMBBBkBdžBBpB‡BB\BBB)BfBB҉BB3B\BBBBҊBBBBBBBBBҊBBBB\B3B B׉BBkB3BBBfBB҇BB.B׆B{BB…BaBBB.BǃB\BBBBB3BBMBB~B}B|B|B {BzB3yB=xBRwBfvB{uBtBsBrBqBpBBBBBWBB$BBBGBBBWBBBGBB܈BBaBB׉B B=BkBBB׊BB BB)B3B8B8B3B)BB BB׊BBBkB=B B׉BBaB$BBBRBBB\BBBRBBB.BDŽBaBBBBBBBҁBaBB{BBB3~BH}B\|Bq{B{zByBxBwBvBuBtBtBsB)rB=qB܂BMBB$BBB\BBBB܆B8BBB3BB͈BBWBB׉BBBBvBBNJBBB)B=BRBaBkBpBpBkBaBRB=B)B BBNJBBpB=B B҉BBWBB͈BB3BBB8B܆BB$B…B\BBB$BBMBBpBBBBB3B{B~B}B|B{BzByByB xBwB3vBHuB\tBqsBrBqBBBB\BDŽB.BBBWBBBkB‡BBkBBBMBB҉B BGB{BB׊BB$BBBaBvBBBBBBBBBvB\B=BBBҊBBpB=BBljBBGBBBfBB‡BkBBBRBBB)BBWBBBBB.BBMB׀BaBB~B~B}B)|B3{BHzB\yBfxB{wBvBuBtBsBrBqBMBB)BBBfBͅB.BBBMBBBRBBB=BBljBBBB{BBBB8B\B{BBBB͋B׋B܋B܋B׋B͋BBBBvBRB.BB׊BBpB8BBBvB.BBBGBBBBBBBBBWBBBBB=B͂B\BB{BBBBHB\~Bq}B|B{BzByBxBwBvBvBuB)tB=sB\rBBBaB̈́B8BBBfBdžB)BB܇B3BB܈B)BvBBB=B{BBBBGBpBBB͋BBBBBBB BBB܋BNjBBBaB8B B܊BBkB.BBBaBBLjBvB$B͇BpBBBRBBBBBGB܃BkBBBBB3BBGBB~B}B|B{B{BzB)yB3xBHwB\vBquBtBsBrBB.BBBpBׅB=BBBaBBBkBˆBBaBBB8BvBBB$BRBBB͋BBBB.B8BBBGBGBBB3B$BBB܋BBBkB=BB׊BBaBB܉BBGBBBRBBBBBBBBBMBBvB BB.BBGBׁBaBB{BBB)~B=}BR|B\{BqzByBxBwBvBuBtBsBsBBfBׄBBBBBvB܆B=BBBRBBBMBBB.BpBBB$B\BBBBBB=BRBaBpB{B{B{BvBkB\BGB.BBBNjBBpB=B B͊BBRB B‰BvB)B׈BB)B͇BpBBBGBB{BBB8BǃBWBBvBBBBB.BfB{~B}B|B{BzByBxBwB wBvB3uBRtBfsB3BBB{BBMBBBvB҇B.BBB3BB҉BBfBBB$B\BB‹BBB8BWBpBBBBBBBBBB{BaBBB$BBҋBBpB=BBŠBB=BBB\BBB\BBB=B܆BvBBB=B҄BfBBBBB.BBGBҀB\BB~B}B}B |B{B3zB=yBRxBfwB{vBuBtBsBkBׄBGBBBBBMBB BfBˆBBkBB BWBBBB\BBNjBB$BMBpBBBBҌB܌BBBBB׌BŒBBB{BWB.BB׋BBkB3BBBpB$B܉BB8BBB.B҇BpB BBBBׅBkBBB$BBBB҂B\BBvBBBB3BH~B\}Bf|B{{BzByBxBwBvBuB uBtBBBBBRBBBBBBBBBRBBBBBB׊BBWBB͋BB3B\BBBnjBBBBBBBBB BBB͌BBBfB8B B׋BBfB)BBBWB BBkBBBaBBB=B׆BpBBB.B„BRBBpBBBBB.BB=BB~B}B|B{BzByB yBxB3wBHvBfuB{tB܄BGBB$BBBWBBB{B׈B3BB܉B.B{BNJBBRBB͋BB8BfBBBBBB.B=BGBRBWBRBMB=B.BBBBBBkB=B BҋBB\BBҊBB=BBBBBBB.B͇BkBBB8BͅBaBBBBB.BBGBҁB\BBkBBB~B}B3|BH{BRzBfyB{xBwBvBuBtBBBB\B†B.BBBWBBBkB‰BBfBBBBBBNjBB=BpBB͌BBB3BMBaBvBBBBBBvBaBMB3BBB͌BBpB=BB͋BBGBBBkBB͉BvBBBaBBB3B͆BfBBBBBBB̓B\BBvBBBBB$B\Bq~B{}B|B{BzByBxBwBwBvB3uBMBB)BBBfBLJB.BBBGBBBMBBB8B{B‹BB=BvBB׌BB)BMBkBBBBBBBBBBBBfBGB)BBҌBBpB8BBB{B8BBBMBBBMBBB.B͇BfBBB)BBMBBpBBBBB.BBBBǀBRBB~B}B|B|B {BzB3yBHxB\wB{vBuBBBaB͆B3BBBfBLjB$BB܉B3BB׊B$BpBBB8BvBBBB8BaBBBBҍBBBBBBBB͍BBBB\B3BB׌BBkB.BBBfBBҊBB.B׉B{BBB\BBB.B†BWBB{BBB)BBBB҂B\BBpBBB BB3~BH}BR|Bf{B{zByBxBwBvBuBB)BBBkBׇB8BBB\BBBkBBB\BBB.BpBBBBGBpBBB׍BBBB$B)B.B)BBBBBҍBBBfB8B B׌BBaB$BBBMBBB\BBBMBBB)B‡B\BBBBB=B̈́BWBBpBBBBB$BB8B{B~B}B|B{BzByByBxB3wBHvBBaB҆B=BBBpB׈B8BBBMBBBGBB܋B$BfBBBBMBBBҍBBB)B=BMBWBaBaB\BWBGB8BBBBBBkB=B BҌBBWBB͋BB3BBB8B܉BBBBWBBBBBGBׅBkBBBBB)BB=BǁBRB܀BaBB~B~B }B|B3{BHzB\yBqxBwBvB.BB BvB܇BGBBBpB͉B)BB܊B.BB͋BB\BBBBRBBBBB)BGBaBpBBBBBBBBkBWB8BBB͍BBpB=BBnjBBBBBBaBBBfB BBMBBBBBMBBvBBB)BBBB̓BWBBkBBB BBBHBR~Bf}B{|B{BzByBxBwBwBfB҆BBBBBBBGBBBaBBBfBBBMBB׌BBRBBBBB=BaBBBBBǎB͎B͎BǎBŽBBBBpBMB)BBҍBBpB3BBBvB.BBBBBBB=B܉BBBBRBB{BBB3BDžBWBBpBBBBB$BB8BBGBB~B}B|B{B{BzB)yB=xB\wBB B{BBMBBBBB=BBBMBBB=BB͌BBMBBBB$BMBvBBB͎BBBBBBBBB׎BBBB\B3BB׍BBfB)BBB\BB‹BpBBNJBkBBBMBBBBB=B҆BaBBBBB)BB=BǂBRB܁BaBBvBB B~B3}B=|BR{BqzByBxBwB׆BBBBBBBRBBBvBҊB.BB׋B)BvBBBGBBBB.B\BBB͎BBBB)B3B8B8B3B)BB BB׎BBBfB8B BҍBB\BB׌BBBBBBMBBB=B܉B{BBBBB܇BkBBB$BB=B̈́BWBBkBBBBBBB)BfB{~B}B|B{BzByBxBxBB{BBWBB)BBBRBB BfBBBaBBB=BBBB3BfBBBBB$B8BMB\BfBkBpBkBaBRB=B)B BBŽBBkB=BB͍BBMB BŒBvB$BҋBB$B͊BkB BBBB܈BpB BB.BBMB܅BkBBBBB$BB3BBGB̀BWBB~B}B|B |B{B=zBRyBqxBGBB$BBBaB‰B)BBBBBBBGBBB.BvBBB3BfBB͎BBB=BWBpBBBBBBBBBvB\B=BBB͎BBpB8BBBB8BBBWBBBWBBB8B׉BpB BB8BLJB\BB{B BB$BB=BǃBRBׂBaBBpBBB B)B=~BR}Bf|B{{BzByBxBBB\BLjB.BBBaBŠBB{B׋B.BBҌBBfBBB.BkBBҎBB.BRBpBBBBǏBҏB׏B׏BҏB͏BBBBpBRB)BBҎBBkB.BBBkB$B׌BB3B܋BB)B͊BkBBB8B͈BfBBBBB8BDžBRB܄BfBB{BBBBB)BB8BB~B}B|B{BzB zByBB$BBBfB҉B3BBBWBBBfBBBWBBB)BfBB׎B B8BaBBBǏB܏BBB BBB BBB܏BBBBaB3BBҎBBaB$BBBRBBBaBBBWBBB3B͉BfBBB$BBGB׆BfBBB BBBB3BBBB́BWB܀BfBB~B~B}B3|BH{BfzB{yBB\B͈B8BB BkBҊB3BBBGBBB=BB׍BBaBB׎BBBBpBBBBBB$B3B=BBBBB=B3B$BBB܏BBBfB8BB͎BBWBB͍BB8BBB=BBB)BNJBaBBB)BBRBBvBBBBB8B„BMB׃BaBBpBBB BBBHB\~Bq}B|B{BzByB)BBBpB׉BBBB BkBNjB$BBҌB)BvBBBRBB׎BBGB{BBҏBBB3BMB\BkBvB{B{BvBkBWBBB.BBBǏBBkB8BBǎBBBBBBfBBŒBkBBBWBBB)B‰BWBBBBB3BBMBׅBfBB{BBBBB$BB8BBGBB~B}B|B|B{B3zBaB͈B=BBB{B܊BBBBB\BB BaBBBGBB͎BBGBBBB B.BMBkBBBBBBBBBB{BaBBBBB͏BBkB3BBBvB.BBBGBBBBBBB$BBWBBBBB=B҇BaBB{BBBBB.BBBBǂBRB܁BaBBvBBB)~B=}BR|Bq{BzBBBvBBGBBB{B܋B8BBBBBBB3BBŽBBBBBBBB=BfBBBBǐBאBBBBܐBҐBBBBvBRB)BBҏBBfB)BBBaBBǍBvB$B͌BpBBBRBBBBBGB܈BkBBBBB3BBGB҄B\BBkBBBBBBB)BfB{~B}B|B{BzB҈B=BBBBBMBBBpB͌B)B{BҍBBkBBB=B{BBBBMBvBBBאBBBBBBBBBBBǐBBB\B3BB͏BB\BB׎BBBBBBRBBBBBBBBBMBBvB BB)BBGB҆BaBBvBBBBB$BB3BBBB̀BWBB~B}B }B|B={B BvBBRBB$BBBMBBBaBB BWBBB3BvBBB$BWBBBҐBBB$B3BBBMBRBMBGB=B)BBBܐBBBfB3BBǏBBMBBŽBvB)B׍BB)B͌BpBBBGBB{BBB3BLjBWBBpBBBBB)BB=BǃBMBׂBaBBpBBBB3BH~B\}B{|B{BGBB$BBB\B‹B)BBBBBBBBBBB)BpBBB)BaBBBBB.BGBaBpBBBBBBvBfBRB3BBB͐BBkB8BBBB=BBB\B BBaBBBGBBBBBBB׉BkBBBBB3BBGB҅B\BBpBBB BBBB.BBBBB~B}B|B|BBB\BNJB.BBBaBŒBB{BҍB)B{B͎BBaBBB)BaBB͐BBBGBfBBBBBB‘BBBBBBkBGB$BBҐBBkB3BBBpB)B܎BB=BBB3B׌BvBBBBB܊BpBBB)BBGB҇BaBBvBBBBB$BB3BBGBҁBWBBkBB B~B=}B\|BB$BBBfB͋B3BBBWBB BaBBBRBBB$BaBBҐBB.BWB{BBB͑BܑBBBBBBB͑BBB{BWB.BBҐBBaB$BBBWB BBkBBBaBBB=B܋BpB BB3B‰BRBBpBBBBB.BB=BDŽBRB׃BaBBpBBBBB$B\B{~B}B|BB\B͊B8BBBkBҌB3BBBBBBB=BBҏBBWBBҐBB8BfBBBґBBBBB)B)B)BBBBBґBBBaB3BB͐BBWBBҏBB=BBBBBBB3BҌBkBBB3B͊B\BBBBB)BBBB͆BWBBkBB{BBBBB)BB8B€BRBB~B}B }B)BBBpB׋B=BB BkBǍB$B{BҎB$BvBB BRBB͐B B=BpBBǑBB B$B8BGBWB\BaB\BWBGB8BBBBBBfB3BBǐBBGBBBkBBǎBpBBBaBBB3B͋BaBBBBB=BLjBWBBpBBBBBBB.BBBBǂBRB܁BfBB{B B)BH~Bf}BaB͊B=BBBvB܌BBBBB\BB B\BBBBBBǐBBBBvBBґBBB=B\BpBBBBBBB{BkBRB8BBBǑBBfB3BBBvB.BBBMBBBGBBB.BnjBaBBB$BBGB׉BfBBBBB$BB8B…BMB҄B\BBkBBB BBBB3BB~B}BBBvBBGBBB{B׍B8BBBBBBB3B{BBB=BvBBܑB B3BWBvBBBB’BǒB͒BǒBBBBBkBGB$BB͑BBaB)BBBaBB͏B{B)BҎBvBBB\BBB)BBRBBvBBB$BB8BLJBRB܆BfBBvBBBBBBB3BBGBҀBaBB~B~BҊB=BBBBBMBBBpB͎B$B{B͏BBfBBB8BvBBBBBBkBBBǒBܒBBBBBBBBҒBBB{BWB.BB͑BBWBBאBBGBBBWBBBGBBB$BBRBB{BBB3BBMB܈BfBB{BBBBB)BB8BƒBMBׂBaBBvBBBBHBf~B BvBBMBBBBBGBBB\BBBWBBB.BpBBBBMB{BB’BBBBB.B3B3B.B)BBBBҒBBB\B.BB‘BBGBBBvB)B׏BB.BҎBvBBBRBBBBB=B͊B\BB{BBBBB3BBBBͅBWB܄BfBBvBBBBB)BBBBB~BBBBBBBWBB$BBB=BBB=BBאBBfBBBBRBBBגBBB3BGBWBaBfBkBfB\BMB8BBBBBBaB.BBB{B8BBBWBBB\BBBBBB{BBBBB׋BfBBBBB3BBGB҇B\BBpBBB BBBB.BB=B́BWBBpBBBvBBRBB)BBBWBBBvB͏B$BvBBBWBBBBWBBBBB3BRBfB{BBBBBBBBkBRB8BBB’BB\B)BBBfBBאBB3BBB.BҎBpBBBBB׌BkBBB$BBBB҉B\BBpBBBBB$BB3BBBB̓BWBBkBBBBB)BqBBBBBaBǍB.BBBRBBB\BBBGBBבBBRBB’BBBGBfBBBB“B͓BғBғB͓B“BBBBkBGBBB’BBWBBܑBBRBBBfBBB\BBB=B׍BpBBB.BBRBBkBBBBB)BB=B†BMBׅB\BBpBBB BBBB8BǀBRBBBWBŒB.BBBfBǎB)BBB=BBB3BBǑBBMBB’BB)BWB{BBBדBBBBB BBBBғBBB{BRB$BB’BBMB BǑBB3BBB=BBB.B͎BfBBB3BnjBWBB{B BB$BB=BLjBRB܇BfBBvBBBBB$BB8B‚BMBׁBaBBBBBBBfBҍB8BBBaBBBvB͐BBkBBBBBB’BB.BaBBBדBB BB.B8B=B=B8B.BB BBғBBBWB)BBB{B=BBBaBBBkBBBWBBB.BǍB\BBBBB8BŠBRB܉BkBBBBBBB)BB=B„BMB׃BaBBvBBBBB8BWBnjB3BB BpB׎B8BBBWBBBWBBB8B{BBB3BfBB“BB B)BBBRBaBkBpBpBkBaBRB=BBBܓBBBWB$BBBkB$BܑBBBBBBBBBB$BŽB\BBBBBBBҋBaBB{B BBBB3BBBB͆BWB܅BfBBvBBBBB.BBGB׀BfBBBkB׍BBBBBpBҏB3BBB8BBܑB)BpBBB3BkBB͓BBBBBaBvBBBBBBBBBpBRB3BBBBBRBBܒBBWB B‘BpBBǐBpBBBRBBBBBGB܌BkBBBBB3BBGB҈B\BBpBBB BBBB.BBBB͂BWBBpBBBnjB8BBB{BBGBB BkBBBpB‘BBaBBB.BfBBדBB.BWB{BBBB͔BהBܔBܔBҔBǔBBBBfBBBBBBBMB B͒BB=BBBMBBB=BBBBBMBBvBBB)BBBBҊB\BBpBBBBBBB3BBBB̈́BWBBkBBBBB.BBBpB܍BGBBBBBBBBBWBBBMBBB$BaBBדB B=BfBBB͔BBBB BBB BBBהBBBvBMBBBB{B=BBBkBB͑B{B$BǐBkBBBGBBvB BB3BŒBRBBpBBBBB)BB8B‡BMB҆B\BBkBBB BBBB8BǁBWBB8BBBBBRBBB{BܐB3BBB3BB͒BB\BBדBBBBpBB”BBBB)B8BBBBBBB=B.BB BB͔BBBMBBBBkB)BBBMBBBRBBB8B׏BpB BB8B͍B\BBB BB$BB=BljBRB܈BaBBvBBBBBBB3BBMBׂBfBBBBpBBMBB$BBBRBBBkBǑBBkBBBMBBғBBGB{BBהBBB8BMBaBkBvB{BvBpBfBRB=BBBהBBBMBBܓBBWBBǒB{B)BבB{B$BǐBfBBB8B͎BaBBBBB8B‹BRB܊BfBB{BBBBB)BB8B…BMBׄBaBBvBBBBB=BBBBB\BB)BBBGBBBRBBB=BBǓB BGBBBB B3BRBkBBBBBBBBBBpBRB3B BBBBGB B͓BBBBBBWBBBRBBB.B͏BaBBB$BBBBҌBaBB{BBBBB.BB=BLJBRB܆BaBBvBBBBB)BBGBׁBfBBRBB)BBBaBB$BBܑB3BBܒB)BvBBBBBBBBBBBfBBBB͕BוBBBBוB͕BBBBaB=BBBBvB=BBBpB$BגBB.BבB{BBB\BBB$BBMB܍BkBBBBB.BBBB͉BWBBkBB{BBBBB)BB=BǃBWBBpBBBBBBaB͏B3BBB\BBBkB’BBaBBB8B{BBBBMB{BBBܕBBB BBBB BBBҕBBBpBBBBBBkB)BBBRBBB\BBBMBBB$BBRBBvB BB)BBBB͋B\BBpBBB BBBB.BB=BDžBRB܄BfBBB BB)BBRBŽB.BBBkBҐB3BBBMBBBMBBB.BpBBB$BWBBBҕBBB$B8BBBGBMBGBBB3BBBBǕBBvBBBBהBB\BB͓BB3BBB3BבBvBBBMBB{BBB3BBRBBkBBBBB$BB3BBBB͇BWB܆BfBB{BBBBB8BǂBWBBBBkB׏B=BB BpB͑B.BBB3BBדBBfBBB$B\BBBB B.BGB\BkB{BBBBvBfBRB=BBBҕBBvBBB B͔BBGBBBaBBBaBBBBBB{BBB8B͎B\BB{B BB$BB8BŠBMB׉B\BBpBBB BBBB.BBGB҃BaBBBBǎB3BBBvBܐBBBBBfBBBkBB BWBBBB\BBǕBBBBBaB{BBBBBBBBBBkBMB.BBוBBpB8BBBvB)BܓBB=BBB.BґBpB BB=BҏBfBBBBB3BBMB׋BaBBvBBBBBBB3BBBBͅBWBBpBBBBB=BBkB܏BGBBB{BܑB=BBBRBBBBBBהBBWBB͕BB)BWB{BBBǖBזBBBBBܖB͖BBBB\B3B BוBBfB)BBBWB BBfBBB\BBB8B͐BfBBBBBBB͍B\BBvBBBBB)BB8BˆBGB҇B\BBkBBBBB)BBBB҂BfB8BBBBBMBBBvBגB.BBܓB.B{BǔBBRBB͕BB3BaBBB͖BBBBBBBBBBBҖBBBfB8BBҕBBWBBҔBB8BBB=BBB)BǑBaBBB$BBMB܎BkBBBBB)BB=BNJBMB׉BaBBpBBBBBBB8B„BRB܃BkBBBpB܏BMBBBBBMBB BfBBBfBBBBBBǕBB8BkBB–BBBB3BBBMBRBRBMBBB3BBBB–BBkB8BBǕBBGBBBfBB“BkBBBRBBB$BBRBBvBBB$BB=BnjBRB܋BfBBvBBBBB$BB3BBGB҅BaBB{BBB)BBBBBBWBB$BBBBBBBMBBB3B{BBB8BpBB͖BBB8BRBfBvBBBBBvBfBRB8BBBǖBBfB3BBBvB.BBBBBBB=BܒBBBBMBB{B BB.BBMB׍BfBB{BBBBB)BB8BˆBMBׇB\BBpBBBBB.BBRBBBMBB)BBB\BBB{BדB.BBהB$BkBBB3BpBBזBB.BRBpBBBBBBBBBBBfBGB$BB͖BBaB$BBB\BB”BpBB“BfB BBGBB{BBB8BǏBWBBvBBBBB.BB=BNJBRB܉BaBBvBBBBB$BB=B̈́BWBB{B BBBB\BǑB.BBBWBBBfBBB\BBB.BkBBܖBB=BfBBBBҗBBBBBBܗB͗BBB{BRB)BBǖBBRBBҕBB=BBBGBBB3BҒBpB BB8B͐BaBBBBB)BBBB͌BWB܋BfBB{BBBBB$BB8B†BMB܅BfBBBBB3BRBB.BBBfB͒B.BBBGBBBBBBܕB$BfBBܖBBGBpBBBܗBB BBB$B$BBBBB͗BBB\B)BBBBBBBBkBBǔBpBBBaBBB3B͑BaBBBBB8BŽBRB܍BfBB{BBBBB)BB=BˆBMBׇBaBBvBBBBB8B̓B\BBBaB͑B8BBBfBǓB$BBהB)B{BǕBB\BBܖBBMB{BBҗBBB)B=BMBRBWBWBRBBB3BBBܗBBB\B)BBBpB.BBBGBBBGBBB)B’BaBBBBBBBҏBaBB{BBBBB.BBBBNJBRB܉BaBBvBBBBB)BBBB҄BaBBBB.BBBpBגB=BBB\BBBaBBBMBBҖBBMBBBBB)BGBaBpBBBBBBvBfBMB.BBBBBWBBBBWBB•BvBBǔBpBBBRBBBBBGBܐBkBBBBB.BBBB͌BWBBfBB{BBBBB$BB=BdžBRBBkBBBBBBfBґB=BBBvBדB8BBBGBBB8BBǖB BGBBBBB=BaB{BBBBBBBBBBBaB=BBBBBMBB͖BB=BBBMBBB=BBBBBGBܑBpBBB$BB=BǎBWBBkBB{BBBBB)BB=BˆBMBׇBaBB{BBB$BBGB׃B.BB BvBBGBBBpB͔B)BBҕB$BpBBBBBBBBBMBvBBB͘BܘBBBBBBܘBǘBBBpBGBBBB{B=BBBkBB͕B{BBǔBkB BBBBܒBpBBB.BBMB׏BfBB{BBBBB.BB=BNJBRB׉BaBBvBBBBB.BBMB܄BpBBfBבBBBBBBBGBBBaBB B\BBB8B{BBB$BWBBB͘BBBBB$B)B$BBBBB˜BB{BMBBBBkB)BBBGBBBMBBB3BғBkBBB.B‘BRBBpBBBBB.BBBB͌BWB܋BfBBvBBBBB)BB=BdžBWBBvBBB)BBB{BBRBBBBB=BBBBBBB)BpBBB)B\BBBBBB3BGBRBWB\BWBMBBB.BBBҘBB{BGBBחBBWBB–BvB$BҕBvBBB\BBB.B’BWBB{B BB)BBBB͎BWBBkBB{BBBBB)BB8BˆBMBׇBfBBBBB.BBRBבBGBBBBBWBBBvB͕B$B{B͖BBaBBB$BaBB˜BBB8BRBkB{BBBBBBpBaBBB$BBטBB{BBBBǗBB=BBBRBBBGBBB$BBWBBBBB3BBMB܏BfBB{BBBBB)BB=BNJBMB׉BaBBvBBBBB3B…BWBB{BBBBWB“B)BBBRBBB\BBBMBBܗBB\BB͘BB$BMBkBBBBB™B™BBBBBvBWB3B BܘBBpB3BBBfBB͖B{B$B͕BpBBBMBBBBB=B͑B\BBvBBBBB.BBBBnjBRB܋BaBBvBBBBB)BBBB͆B\BB{BBBGBB$BBBaBǔB)BBB=BBB8BBҗBBWBB͘BB3B\BBBBҙBBBBBBBיB™BBBaB8B BטBBaB$BܗBBGBBBRBBB=BܔBvBBB=BҒBaBBBBB)BBBB͎BRB܍BfBBvBBBBB$BB8BˆBMB܇BfBBBBB8BDŽBBB\BǓB3BBBaBBBvB͖B$BpBBBMBB͘BB8BfBBBיBB BB$B)B)B$BB BBיBBBfB8BB͘BBMB B—BvB$BҖB{B$BǕBfBBB8BғBfBBBBB8BBRB܏BfBB{BBBBB)BB8BŠBMB׉BaBBvBBBBB=BͅB\BBB)BBBkBҔB3BBBWBBBWBBB=BB˜BB8BpBBǙBBB)B=BMBWB\B\BWBMB=B$B BB™BBfB3BBB{B8BBBRBBBMBBB.BǔBaBBBBBBBґB\BBvBBBBB)BB=BŒBMB׋BaBBpBBBBB)BBBB҆BaBBBBBaB͓B8BB BkBҕB.BBB=BBB.BvBBB8BpBBҙBB$BBB\BpBBBBBBBkBWB=BBBǙBBaB)BBBaBB͗B{B)BҖBvBBBWBBBBBGBגBkBBBBB)BB=BǎBRB׍BaBBvBBBBB$BB8BˆBMB܇BkBBBBBBB)BBBpBܔBBBB BfB–BBvBǗBBfBBB3BpBBܙB B3BWB{BBBBBšBšBBBBBkBGB$BBǙBBWBBטBBGBBBRBBBBBBBBBGBܓBpBBBBB8BBMB׏BaBBvBBBBB$BB3BBGB҉B\BBvBBBBBBBׅBfBaBғB=BBB{BܕB=BBBWBBBRBBB)BkBBܙBBBBkBBBǚBܚBBBBBBBҚBBB{BRB$BBBBGBBBpB$BҗB{B$BǖBkB BBBBהBpBBB)BBBBґB\BBvBBBBB$BB8BBGBҋB\BBkBBBBB)BBGB׆BfBBBB BvBBMBBBvBזB3BBB8BBҘBBaBBܙBBGBvBBšBBBBB)B)B)B$BBBB͚BBBWB$BBBpB.BBBMBBBMBBB3B͕BkBBB)BBMBܒBkBBBBB$BB8BŽBGBҍB\BBkBBB BBBB3BˆBMB܇BkBBB$BBғB=BBBBBMBBBkB—BBpBB BRBBיBBMBBBךBBB3BBBRB\BaB\BWBGB3BBBܚBBBWBBBBaBB͘BB.BחBB$B–BaBBB.B”BWBB{B BB$BB=BǐBRB܏BaBBvBBBBBBB3BBGB׉BaBB{B BB.BBRBB BvBBMBBBBBGBBBRBBBBBBҙBBMBBBB B.BMBfB{BBBBBB{BfBMB.B BBBBMBBҙBBGBBBWBBBMBBB$BBWBBBBB.BBMBבBaBBvBBBBB$BB3BBGBҋBWBBpBBBBB3B‡BRBBvB BBBBBBBWBBB{BܗB3BBܘB.B{B™BBGBBBBBBBfBBBBB›BǛB›BBBBBaB=BBBB{B=BBBpB$BטBB)BҗBvBBBMBB{BBB8BǓBWBBpBBBBB$BB8BBGBҍBWBBkBBB BBBB8BLjBWBB{B BB3B{BBRBB)BBBWBBBkB˜BBfBBB=BBBB$BMBvBBBқBBBBBBBܛBǛBBBkBBBBBBkB)BBBRBBBRBBB=BזBvBBB8B͔B\BB{B BB$BB8BBGBҏB\BBkBBBBBBB.BBGB҉BaBBBBB3B†BWBBBBBaBǖB.BBBMBBBMBBB3BvBBB)BWBBBқBBBB$B)B.B)BBBBB›BBpBBBBךBBWBBǙB{B)BטB{B$B—BaBBB3BǕBaBBBBB.BBGBґB\BBpBBB BBBB)BB=BNjBRB܊BkBBBBB3B‡BWBBBBWB•B.BBBfBǗB$BBܘB3BBיBBfBBB)B\BBBBB$B8BMBWB\BaB\BRBBB)BBB͛BBpB=BBǚBB=BBBRBBBMBBB)B–B\BBBBB8BǓBRBBkBBB BBBB.BB=BǍBRB׌BaBBvBBBBB8BLjBWBB{BBBBBBfBҖB8BBB\BBBkBB BWBBB$B\BB›BBB8BWBkBBBBBBBpB\BBBBB͛BBkB.BBBfBB͙B{B)B͘BpBBBMBBBBB=B͔B\BB{BBBBB.BB=BǏBRB׎BaBBvBBBBB)BBBB҉B\BBBBB8B͆BWBǕB3BB BpBҗB8BBBMBBBBBBךBB\BB͛BB)BMBpBBBBBœBœBBBBBpBMB)BB͛BB\BBܚBBGBBBRBBB=BܗBvBBB=BҕBaBBBBB)BB=BǑBRBܐBaBBvBBBBB$BB8B‹BMB׊BfBBBBB8BLJB\BBBBkBזBBBB BpB͘B)BBܙB.B{BǚBBRBB͛BB3B\BBBœBלBBBBBBBҜBBBBWB)BB›BBGBBBpB$BҙB{BB˜BaBBB8B͖BaBBBBB3B“BMBגBaBBvBBBBBBB3BBGBҌB\BBpBBBBB8BLjB\BBBBǕB8BBB{BBBBBBaBBBfBBBGBBǛBB8BfBBBܜBB BB$B)B)B$BBBBҜBBBWB)BBBvB3BBBMBBBGBBB)B—B\BBBBB=B͔BWBBpBBBBB$BB3BBBB͎BWBBkBBB BB$BB=B͉B\BBBBB=BBpBܖBGBBB{BܘB=BBBGBBB8B{B›BB8BkBBǜBBB)B=BRB\B\B\BWBGB8BBBܜBBBWBBBB\BBǚBvB$BǙBpBBBMBBBBBBBҕBaBB{B BBBB3BBGB͐BWBBfBB{BBBBB.BBGBҊBaBBBBB8B͇BfB8BBBBBRBBBvBҙB)BBҚB$BkBBB3BpBBҜBB$BBBaBvBBBBBB{BfBMB.B BBBBGBB͛BB=BBBGBBB8BטBvBBB=BҖBfBBBBB.BBBB͒BWBBfBB{BBBBB$BB8BŒBRB܋BkBBBBB8B͈B\BBBpBBMBB$BBBMBB BaBB B\BBB.BkBBܜB B3BWB{BBBBBBBBBBBaB8BBBBvB8BBBfBBǚBpBBBaBBB3B͗BaBBBBB8B”BRBܓBfBB{BBBBB$BB8BBGBҍB\BBvBBBBB8B͉B\BBBBBBBBB\B˜B$BBBBBBBBBBܛB$BfBBܜBBBBkBBBǝBܝBBBBBBܝBǝBBBkB=BBܜBBfB$BܛBBBBBBBBBB$B˜B\BBBBB=B͕B\BBvBBBBB$BB8BBGBҏBWBBkBBB BB$BB=B͊B\BBBBB=B҇BBRBB)BBB\BBB{BҚB)B{BǛBB\BBܜBBGBvBBBBBBB)B)B$BB BBܝBBBkB=B B͜BBMBBBkBBšBkB BBMBBBBB=BҖBaBBB BB$BB8BBGBґBWBBkBB{BBBBB.BBGBҋBaBBBBB8B͈BaBBBBBaBǘB3BBBWBB BaBBBMBBҜBBGB{BBםBBB3BBBRBWB\BWBMB=B)B BBǝBBkB3BBBvB.BBBBBBB3BҙBpB BB=BҗBfBBBBB.BBBB͓BWBBkBB{BBBBB)BB=BǍBRB܌BkBBBBB8BljB\BBBBRB—B.BBBfB͙B.BBBBBBB8BBǜB BGBBBB B.BMBfBvBBBBBBkBWB=BBBǝBBaB$BBBWB BBfBBB\BBB3BǘBaBBBBB8B•BRBܔBfBB{BBBBB$BB8BBGBҎB\BBvBBBBB8BNJB\BBBBBBBBBfBҘB8BBBfBǚB$B{BқB$BpBBBBBBBBBBBaBBBBBBBBBBBkBGB$BBBBRBB͜BB3BBB8BܚBBBBWBBBBB=B͖B\BBpBBBBB$BB8BBGBҐBWBBkBBB BB$BB=B͋B\BBBBB8B͈BfB—B3BB BpBיB=BBBWBBBWBBB8BvBBBBMBvBBB͞BBBBBBB͞BBBvBMB$BBB{B8BBB\B BBaBBBBBB{BBB=B͗BaBB{B BBBB3BBGBҒBWBBkBB{BBBBB.BBBBҌBaBBBBB3BljB\BBBBkBטBBBBBvBךB3BBB=BBܜB)BkBBB$BWBBB͞BBBBB$B$BBBBBǞBB{BMBBBBfBBҜBB3BܛBB)B͚BkBBB8B͘BaBBBBB)BBBB͔BWBBfBB{BBBBB$BB8BŽBMB܍BfBBBBB3BŠBWBBBBB3BBB{BBGBBBkBǛB$BvBǜBBaBBB$BWBBBBBB3BGBRBWBWBMBBB.BBBҞBB{BGBBҝBBGBBB\BBBRBBB)B™B\BBBBB3B–BMBוBaBBvBBBBB$BB3BBGBҏB\BBpBBBBB3B‹BWBB{BBB=B҈BkBܘBGBBBBBGBBBWBBBMBBܝBBWBBžBBB8BRBkB{BBBBBpB\BBB$BBמBBpB8BBBpB$BלBB.BқBvBBBMBB{BBB8BǗBRBBpBBBBBBB3BBBB͑BWBܐBfBB{BBBBB8BnjBWBBvB BB3BljB\BBBBBBRBBBBܛB8BBB8BB͝BBRBBǞBB$BMBkBBBBBBBBBBvBRB.BBҞBBaB$BBBMBBBRBBB8BךBpB BB3BǘBWBBvBBBBB.BBBB͓BRBܒBfBBvBBBBB)BB=B͍BWBBvBBB.BBRBBBBܘBMBB$BBBWBBBpBǜBBpBBBGBBžBB.BWBBBBҟBBBBBBҟBBBB\B.BBǞBBMB BBvB$BҜBvBBB\BBB.B™BWBB{B BB$BB=BǕBRBהBaBBpBBB BBBB3BBGBҎBaBB{B BB)BBMBBvBBB=BB{BBWBB$BBBGBBBRBBB8B{BBB.BaBBBҟBBBBBBBBBBҟBBB\B.BBB{B3BBBMBBBGBBB$BBRBBBBB.BBMBזBaBBvBBBBBBB3BBBB͐BWBBkBBBBB.BBRBBvB BB3B͉BfBGBB$BBB\BBBBܜB3BBםB$BpBBB.BfBBŸBBB$B8BBBMBMBMBBB3BBBܟBBBWBBBB\BBǝBvBBǜBkB BBGBBvB BB3B˜BRBܗBkBBB BBBB.BBBBǒBRBܑBfBBvBBBBB3BBRBBpBBB)BŠBWBBBBB\BǚB.BBBWBBBkBBB\BBB)BfBB͟BBB=BWBkBvBBB{BpBaBMB.B BBBBMBB͞BB=BBBGBBB.B͛BkBBB.B™BRBBpBBBBB)BB=BǔBRBדBaBBpBBBBB$BB8BǎBRBBpBBB$BBMBB{BBBB$BBBfB͛B.BBBMBBBGBBܞBBaBBҟBB)BRBpBBBBBBBBB{B\B8BBBBvB8BBBaBBBkBBBRBBB$BBRBBvBBBBB8B–BMBҕB\BBpBBB BBBB.BBBB͏BWBBvBBB$BBGB܋BpBBB3B͉BB\B͚B8BBBfBǜB)BBܝB.BB͞BBWBBҟBB8BaBBBBҠBܠBBBܠBҠBBBBfB=BBןBBaBBמBB8BBB3BלBvBBBGBܚBpBBB$BB=B͗BWBBkBB{BBBBB)BB8B‘BMBאBaBB{BBB$BBBB׌BfBBB)BBWBB)BBBkBכB=BBBaBBBfBBBMBB͟BB=BkBBBנBBBBBBBBBנBBBfB8BBǟBBGBBBaB BBWBBB8BқBfBBB$BBBBҘB\BBvBBBBB$BB3BBGB͒BWBBkBBB BB$BBBBҍBfBBBBBGBB{BBaB͚B=BBBvBלB8BBBGBBB8BBǟBB=BpBB͠BB B$B8BBBGBGB=B3BBBBBBaB.BBBkB$BמBB3BםB{BBBWBBBBBBBיBaBBB BBBB3BBBB͔BRBܓBfBBvBBBBB.BBGBҎBaBBBBB=BҋBkBBB8BBBvBܛBGBBBpB͝B)BBמB$BpBBB8BvBBנBB$BBBWBfBvB{BvBpBaBMB3BBBBBWBBܟBBMBBBWBBBBBB{BBB=BҚBfBBBBB)BB=BǖBMBוBaBBpBBB BBBB3BBMB׏BfBBBBB8BnjBaBBB$BBWBҚB=BBBBBGBBBaBBB\BBB3BpBBܠB B3BWBvBBBBBBBB{BaB=BBBBBBBBBpB$BҞB{BBBfBBB3B͛BaBBBBB.BBGBҗB\BBkBBBBBBB)BB=BǑBRBܐBkBBBBB3BBWBBBBBBBB{B BvBBMBBBBB=BBBBBBB)BkBBBBBBkBBBB͡BסBܡBסB͡BBBBkBBBBBBkB)BBBGBBBBBBB$BBWBBBBB3B™BMBטBfBB{BBBBB$BB3BBGBҒB\BBpBBBBB3BŽBRBBvB BB8B͋BfBBBBBBBBBWBBBvBҞB)B{B͟BB\BBܠBBGBvBB¡BܡBBB B B BBBסBBBpB=B BҠBBRB BBkBBžBfB BBBBBvB BB3BšBRBBkBBB BBBB3BBBBǔBRBܓBfBBvBBBBB3BBRBBpBBB)BBWBBB$BB{BBWBB)BBBRBB BaBBBMBBנBBMBBBҡBBB$B3B=B=B8B.BBBB¡BBkB3BBBvB.BBB=BBB)BǝBfBBB.BBRBBpBBBBB)BB=BǖBMBוB\BBpBBB BBBB8BBRBBpBBB$BBGBBvBBBBB܊BBBBBaBǝB)BBBBBBB8BB͠BBGBBBBB)BBBWBfBkBkBfB\BMB3BBB¡BB\B$BBBWB BBaB BBMBBBBBMBܛBpBBBBB3BBGBҗBWBBkBB{BBBBB)BB=BǑBWBBpBBBBBBB׍BkBBB.BNjBaBBBWBǜB.BBBaBžBB{BҟB$BpBBBBBBBBB=B\BvBBBBBBB{BaB=BBBBBMB B B{B.BܟBB)B͞BpB BB=BלBkBBBBB8B™BMBטBaBBvBBBBBBB3BBBB͒B\BBpBBBBB=B͎BaBBBBBMBBBB$BBBfBҝB8BBBWBBB\BBB8B{BBBBMBpBBBBǢB͢B͢BǢBBBBkBGBBBBpB3BBBRBBBMBBB.BǝB\BBBBB8BǚBWBBkBBB BBBB)BB=B”BMBדBaBBvBBBBB8BǏBWBBBBB=B׌BpB BBBB\BǜB8BB BkBҞB3BBB=BBB)BpBBB$BRBBB¢BܢBBBBBBBҢBBBpBBBBסBBWBB BvBBǟBpBBBMBBBBB8BǛBWBBpBBBBB$BB8BBGB͕BWBBkBB{B BBBB8BǐBWBBvB BB3BǍB\BBB)B‹BaBBBpBםBBBB BkBǟBBvBǠBBaBBB$BWBBBעBBBB.B3B.B$BBBB¢BBkB8BB¡BB3BBBBBBB3BҞBkBBB3BœBWBBvBBBBB.BB=BǗBRBܖBaBBvBBBBB$BB=BǑBWBBpBBB)BBMBB{BBBGBBB͜B8BBB{BܞBBBBBWBBBMBBܡBBWBBBB B)BBBRB\BaB\BWBGB.BBB¢BBaB)BBB\BBBfBBBRBBB$BBMBBpBBBBB3BBGBҘB\BBkBB{BBBBB)BB=B͒BWBBpBBBBBBB׎BkBBB3B͌BfBBBBpBܝBGBBB{BןB8BBB8BB͡BBRBB¢BBBBB\BvBBBBBBpB\B=BBBBBMBBǡBB.BܠBB.BҟBpBBBBBםBkBBBBB8BšBRBܙBaBBvBBBBBBB3BBGBғB\BBpBBBBB=B͏BaBBBBBRBBB$B‹B=BBBBBMBBBkBǠBBpBBBGBB¢BB)BRBvBBBBB£BBBBBfBBBBBBvB3BBBRBBBRBBB.BǞBaBBBBB8BǛBRBBkBBBBBBB)BB8B•BMBהBaBBvBBBBB8BǐBWBBBBB=B׍BpB BBBBBvBBMBBBBBGBBBRBBB=BBBB.B\BBB£BףBBBBBBͣBBBkBBBBעBBWBBǡBvB$B͠BpBBBMBB{BBB8BǜBWBBpBBBBB$BB3BBBB͖BWBܕBfBB{BBBBB8B‘BRBBvBBB.BǎB\BBB)BŒBaBBBBBBWBBBBܠB8BBܡB)BpBBB.BaBBBܣBB BBBBBBBBBBkB8BB¢BB8BBBBBBB3B͟BkBBB.BBRBBpBBBBB)BB=B˜BMBחB\BBpBBB BBBB8B’BRBBpBBB$BBMBB{BBBGBBBBBRBB)BBBWBBBkB¡BBaBBB.BfBBǣBBB)B=BMBRBRBGB=B)B BB£BBaB$BBBWB BBfB BBRBBBBBMBܝBkBBBBB.BBBB͙BWBܘBfBBvBBBBB$BB8B“BRBܒBkBBBBB=BҏBfBBB.BǍBfBBB=BBBBaBǟB.BBBMBBBMBBB$BaBBͣBB$BBB\BpB{BBBvBfBRB8BBBBBMB BǢB{B.BܡBB.B͠BpB BB=BҞBfBBBBB3BBGBҚB\BBkBBBBBBB)BB=BǔBRBBkBBBBB8BǐB\BBBBBMBBBBB\BWBǞB3BBBfB͠B)BBܡB3BB͢BBWBBͣBB.BRBpBBBBBBBBvB\B8B BܣBBfB)BBBGBBBBBBBBBMBBvBBB$BB=B͛BWBBfBB{BBBBB$BB8B•BMBהBaBB{BBB$BBGBאBkBBB.BŽB\BBB3BҌBpBBBkBҟB=BBBaBBBkBBBMBBͣBB3BaBBBBͤBפBܤBפBͤBBBBaB3BBǣBBMBBBfBBBaBBB8BҟBkBBB$BB=B͜BWBBkBBB BBBB.BB=BǖBMBוBaBB{BBBBB=B͑BaBBBBBGBB{BBBRBBBǞB8BB BvBנB8BBBMBBB=BB£BB8BkBBBפBBB B BBBBͤBBB\B)BBBpB$BעBB3BܡBBBBWBBBBB=B͝BWBBpBBBBB$BB3BBBB͗BWBܖBfBB{BBBBB8BǒBWBB{BBB8B͏BfBBB3B͍BkB BBBpBܟBBBBBpBҡB.BBעB)BpBBB8BkBBǤBB BB.B8B8B3B)BBBפBBBMBBףBBGBBBRBBB=BנBpB BB3BžBWBBpBBBBB)BB8B™BGBҘB\BBkBBB BBBB8B“BRBBpBBB)BBRBBBBBMBBB)B͌B8BBB{BBGBB BaBBB\BBB3BkBBҤBBB=BRBaBfBfBaBRB=B$BBפBBvB8BBBkBBǢBpBBBWBBB$BBMBܞBkBBBBB)BB=BǚBRBיBaBBpBBB BBBB8B”BMBܓBkBBBBBBBאBkBBB3B͎BkBBBGBBpBBMBBBBBBBBBGBBB$BfBBפBB.BRBpBBBBBBBkBMB)BBҤBB\BBףBB=BBB3BסBvBBB=BҟBfBBBBB.BBBB͛BWBܚBfBBvBBBBB$BB8B•BMBܔBfBBBBB3BǑB\BBBBBMBBB$BBaBBBBBBRBBBvBҢB)B{BͣBB\BBפB B8BaBBBB¥BǥB¥BBBBvBRB)BBBB=BBB\BBBRBBB)B BWBBBBB)BBBB͜BWBBkBB{BBBBB)BB8B–BMBוBfBBB BB)BBMBBvB BB8BҏBkBBB=BBB$BBRBB$BBBRBB BaBBBMBBҤB BBBpBBBҥBBBBBBץBBB{BMBBBBaBBͣB{B$B͢BkBBBBBܠBpBBB$BBBB͝B\BBpBBB BBBB)BB=BǗBRBזBfBB{B BB$BBBBҒBfBBB$BBRBBBBB\BBB=BBBB\B¡B)BBBBBBB8BBǤBBBBvBBǥBBBBB$BBBBBǥBBvBBBBǤBB8BBBBBBB)B¡B\BBBBB=B͞BWBBpBBBBBBB.BBBBǘBRBܗBfBB{BBBBB8BǓB\BB{BBB=BҐBkBBB8B׎BvBBB\BRB B)BBBaB¢BB{BңB$BpBBB=BvBBץBBB3BGBRBRBMBBB.BBBǥBBfB)BBBWB BB\BBBBBܡBvBBB3BŸBRBBpBBBBB$BB3BBBB͙BWBܘBfBB{BBBBB3B”BRBBpBBB)BBRBBBBBWBBB3BҍBvBBBaB͡B3BBBWBBBWBBB3BpBBܥB B.BMBfBvBBB{BkBWB=BBBBBMB B¤B{B)BңB{BBB\BBB$BBMBܟBkBBBBB$BB8BBGBҚBWBBkBB{BBBBB3BBMBהBfBBBBBBBבBkBBB8BҏBpBBBMBBB B.BBBkB͢B.BBB=BBܤB$BkBBBB=BaBBBBBBBBBfBBBBBBpB.BBBGBBB8BܢBvBBB=BҠBaBBBBB$BB8BœBMBқB\BBkBBBBBBB.BBGBҕBaBB{BBB.B’BWBBBBBRBBB)BǎBfB BBBfBҡB=BBBfB£BBvBǤBB\BBܥBBGBpBBBǦBצBܦBܦBҦB¦BBBfB=B BҥBBMBBBaBBBWBBB)BBRBBvBBB$BB8BBMBלBaBBpBBB BBBB.BBBB͖B\BBvBBB$BBGBܒBpBBB3B͐BfBBBBBBB)B͍B3BB BvBܢB=BBBWBBBMBBץBBGB{BBǦBBBB B BBBצBBBaB.BBBkB$BҤBB)BͣBpB BBBBסBkBBBBB8BžBMBםBaBBpBBB BBBB.BBBB͗BWBBpBBBBB8B͓B\BBBBBMBBBBB\BBBBBBkBסBBBBBvBףB3BBB3BBǥB BGB{BBצBBB)B3B8B3B)BBBܦBBBRBBҥBBBBBBBBBB$BBWBBBBB.BBGBמBaBBpBBBBBBB.BBBB͘BRBBkBBBBB.BBMBBpBBB3B͑BaBBB8B׏BvBBB\BBBB{BBMBBBkB¤BBkBBB=B{BBB B)BBBWBaBfBaBWBBB$BBܦBBpB8BBBaBBB\BBB=BעBkBBB)BBBBҟB\BBpBBBBBBB.BBBBǙBRBܘBfBB{B BB$BBBBҔBaBBBBBGBB{BBBMBBB.BҎBvBBܡBGBBBBBGBBBRBBB3BvBBBB=B\BvBBBBBBkBMB)BBͦBBWBBǥB{B)BҤBvBBBRBBBBB8BǠBWBBpBBBBBBB3BBBBǚBRBܙBfBB{BBBBB8BǕBWBBvB BB3BǒBaBBB.BǐBfBBBGBBB8BBBBRBBB{BܤB3BBץB$BkBBBBGBpBBBBBBBBBvBRB$BBBvB3BBBBBBB3BңBkBBB.BBMBܠBkBBB BBBB3BBBB͛BRBܚBfBBvBBBBB.BBMBוBkBBBBBGBܒBvBBBBBBBBBaBBBRBMBB$BBBWBBBkBBBWBBBBMB{BBBקBBBBBҧBBBvBGBBצBBRBBBaBBBGBBBBBBBҡBaBB{B BBBB3BBBB͜BRBܛBaBBvBBBBB)BBBB͖B\BB{BBB3BǓB\BBB$BB\BBB8B׏B{BBŽBkBBB\B£B)BBBGBBBBBBצBBMBBBҧBBBBBBBBB§BBkB3BBBkBBͥB{BB¤BaBBB.B¢BRBBvBBBBB.BBBBǝBRBܜBaBBvBBBBB$BB8BǗBRBBpBBBBBGBܓBpB BB8BבBpBBBMBBB8B܎BBB)BBBaB¤B$BBץB.B{BǦB BGBBBBBB3BBBGBBB8B$B BBBBWBBҦBB=BBB8BפBvBBBBBҢBfBBBBB)BB=BǞBRBܝBaBBpBBB BBBB3BBMBחBfBBBBB3BǔB\BBBBBMBBB$BBfBBBMBBBBaBͣB3BBB\BBBaBBB=BBBBB3BRBfBpBvBpBaBMB.B BBBvB8BBBWBBBMBBB)BBRBB{B BB$BB8BŸBMBמBaBBpBBB BBBB.BBBB͘B\BBvBBB$BBGBהBkBBB3BǒBfBBB=BܐB{BBBfBBB.BBBkBҤB3BBBGBBB3BvBBBBBBfBBBBBBBvBWB3BBҧBBRBB¦BpBB¥BfBBB8BңBfBBBBB3BBGBҟB\BBpBBB BBBB)BB=BǙBRBBkBBBBB3BǕBWBBBBBBBܒB{BBBRBBB3B׏BB)BҎBfBңB=BB BkBǥB$B{BҦBBfBBBBMBvBBB¨BͨBͨB¨BBB{BWB$BBBpB)BܦBB3BܥB{BBBMBBvB BB)BBBB͠BWBBkBBBBBBB)BB8BšBMBיBaBB{B BB$BBGBוBkBBB)BBWBBB)BǑBfBBBMBBB=BBB BvBܤBBBBB\BBBWBBBBRBBBǨBBBBBBܨB¨BB{BGBBקBBGBBBMBBB3BͤBaBBBBB=BǡBWBBkBB{BBBBB)BB8B›BMBҚB\BBvBBBBB8BǖBWBBBBB=BדBpB BBBBBBBBfB BB\BBףBBBBB{BܥB8BBB=BBҧBBRBBBܨBBBB$B$BBBBǨBBkB3BBBaBBBfB BBBBܤBvB BB.BBMBסBaBBvBBBBB$BB3BBGB͛BWBBkBBBBB)BBGBזBkBBB$BBRBBBBBWBBB3BאB{B$BǏBpBBB{BBMBBBpBͦB$BvB§B BGBBBB B)B=BMBRBMBBB.BBBBBRBBǧB{B)BצB{BBBWBBBBB=B͢BWBBpBBBBBBB.BBBBǜBRBܛBfBB{BBBBB8BǗBWBB{B BB3B͔BaBBB.B͒BfB BBGBBB8BBB3BGBBBBBGBBBWBBB=BBBBB=B\BpB{B{BvBkBRB3BBBBkB)BBBBBBB3BͥBkBBB)BBMBܢBfBBB BBBB.BB=BBMBלBaBBpBBBBB)BBGBחBfBBBBBGBܔBvB BBBBܒB{BBBaBBBMBBBMB{BBRBBBBB8BBB.BpBBBBMBkBBBBBBB{BWB.BBǨBBGBBB\BBBBBB{BBB8BǣBWBBvBBBBB)BB8BBGBҝBWBBkBBB BBBB8BǘBRBBvBBB)BBWBBBBBRBBB.BґBvBBBfB BBaBB$BBBWBBBpBǧBBaBBBBRB{BBBǩBҩBҩBǩBBB{BRBBBBaBB§BpBBBWBBB$BBGBףBfBBB BBBB3BBBB͞BRBܝBfBBvBBBBB)BBBBҘBaBBBBB8B͕BfBBB.BǓBfBBBBBBB.BҐB{B$B͏B{BBWB¥B)BBBMBBBMBBܨBBRBBBͩBBBBBBܩB©BBpB=BB¨B{B.BܧBB)BͦBfBBB.B¤BWBBpBBBBB)BB=BŸBMBמB\BBpBBB BBBB8B™BRBBpBBB$BBGBܕBvB BB=BܓBvBBBWBBBBBBB8BBB$BBBaBǦB)BBܧB3BBͨBBMBBBܩBBB$B)B$BBBBBB\BBܨBBBBBB=BܦB{BBB=BҤBaBBB BB$BB3BBGB͟BWBBfBB{BBBBB)BBBB͙B\BB{B BB.B–BWBBBBBRBBB)BǒBfB BBRBBBMBBB\BǥB3BBBaBBBfBBBGBBBBB.BBBRBRBMB=B)B BBB{B8BBB\BBBMBBB$BBMBܤBkBBBBB)BB=BǠBMBןBaBBpBBB BBBB3BšBMBܙBfBBBBB=BҖBfBBB)B”BaBBB8BגB{BB‘BfBBBaBBBBBkBҦB3BBBMBBB8B{BBBB=B\BpB{B{BvBfBMB)BBͩBBWBB¨BpBBBaBBB.BǥBWBB{BBBBB3BBGBҠBWBBfBB{BBBBB)BB=B͚BWBBvBBB$BBGBܖBpB BB8BҔBpB BBGBBB.BבB{B$B͐BvB$BҏBͥB8BB BkBͧB)BBרB$BkBBBBMBpBBBBBBBpBMBBBBkB$BרBB.BҧBpBBB=BҥBfBBBBB)BB=BǡBMBנBaBBpBBB BBBB3BBGBҚBaBBBBB.B—BWBBBBBGBBBBBWBBBBBBB8BBB8BBBpBܦBBBBBaBB BWBBBBRB{BBBǪBҪBҪBªBBBkB=BBͩBB=BBB=BBBBBGBܥBpBBBBB3BBBB͡BWBBfBBvBBBBB$BB8B›BRBܚBkBBBBB8B͗BaBBB$BBWBBB)BǓBkB BBRBBBGBBBMBB=BBBvBܧB=BBBBBBשBBRBBBͪBBBBBBҪBBB\B$BBBRBBBMBBB)B¦BWBB{B BB$BB8B¢BMBסB\BBpBBBBBBB.BBBB͛BWBBvBBB$BBGBחBkBBB.BǕBaBBB8BדB{BBBfB BB\BBBaBBvBBGBBBpBͨB$BvB©B BMBBBܪBBBB$BBBBתBBvB=BBBfBBBaBBB3BͦBaBBBBB)BB=BǢBRBܡBaBBvBBBBBBB3BBGBқBaBB{B BB)BBRBBvBBB=BוBpB BBGBBB.BҒBvBB‘BpBBǐBvB$BBBBBGBBB\BBB=BBBB B)B=BMBMBGB3BBBǪBBWBBǩB{B$BͨBpBBBBBצBkBBBBB3BBGBҢBWBBkBB{BBBBB$BB8BœBRBܛBfBBBBB3BǘBWBBBBBGBB{BBBWBBB=BBB.BבBB.BܐBB8BBRBBBBB=BBB.BpBBBB=BWBkBvBvBkBWB8BBBBpB)BܩBB8BܨB{BBBMBBpBBBBB8B£BMBעB\BBpBBBBBBB)BB=BǜBWBBpBBBBB=B͘BaBBB$BBRBBB)B”BfBBBMBBB=BBB=BBBMBBBBWBBBpBǩBBaBBBBGBkBBBBBB{B\B3BBǪBB=BBBGBBB$BBWBB{B BB$BB=BǣBRBעBaBBpBBB BBBB.BBBBҜB\BBvBBB$BBBBטBkBBB.BǖBaBBB3BҔBpBBB\BBBMBBBRBBBaBRBB)BBBMBBBMBBܪBBMBvBBB«BǫB«BBB{BMBBBBRBBBWBBB.BǧB\BBBBB)BBBBͣBRBܢBfBBvBBBBBBB3BBGBלBaBB{B BB)BBMBBvB BB8BҖBkBBB=BܔBBB“BfBBBaB BBaBBBvBBBaB¨B)BBܩB3BBͪBBGB{BBǫBܫBBBB׫BBBkB3BBBfBBBaBBB8BҧBfBBBBB.BBBBͣBWBBfBB{BBBBB$BB8BBMBלBfBBBBB.B™BRBB{BBBBBܖBvBBBMBBB.BғBvBBǒBpBBǑBvB$BאBB§B.BBB\BBBfBBBBB{BB׫BB BBBBBܫBBBMB BªBvB$BͩBpBBBBBקBkBBBBB3BBGBңB\BBkBB{BBBBB)BB8BǝBRBܜBkBBBBB3BǙB\BBBBBGBBBBBWBBB8BܓBB)BҒBB)BבBB8BBBBfBͨB3BBBMBBB3BvBBܫBB$B3B=B=B3BBBҫBBaBBתBB3BשB{BBBGBBpBBBBB3BBGBңB\BBkBB{BBBBB)BB=BǝBRBBkBBBBB=B͙BaBBBBBRBBB$B•BaBBBGBBB8BBB8BBBGBBB3BBBkBͩB)BBҪBBfBBBB3BMBaBfBaBWB=BBBB{B3BBBBBBBBBRBBvBBBBB8B¤BMBңB\BBkBB{BBBBB)BB=B͝BWBBpBBBBBBBҙBfBBB)B—B\BBB.B͕BkB BBRBBBGBBBGBBBWB BBkBרB=BBBaBB BWBBܫBB=BaB{BBBBvB\B3BBͫBBGBBBMBBB)B¨BWBB{B BB$BB8B¤BMBңB\BBkBB{BBBBB)BBBB͝BWBBpBBBBBBBיBkBBB.BǗBaBBB8BוBvBBB\BBBRBBBWBBBfBBҐBBBvBשB8BBB=BBͫB BBBkBBBBBBB{BRBBBBWB BBWBBB.BǨB\BB{B BB$BB8B¤BMBңB\BBkBB{BBBBB)BBBB͝BWBBvBBB$BBGBܙBpBBB3B͗BfBBB=BܕBB$B”BkBBBaB BBfBBǑB{B.BBܨBBBBBpBͪB$BvBBB=BpBBBͬB׬B׬BͬBBBkB3BBBfBBBaBBB3BǨB\BBB BB$BB8B¤BGBңB\BBkBB{BBBBB)BBBB͝B\BBvBBB$BBMBBvB BB8BҗBpB BBGBBB)B͔BvBB“BkBBǒBvB$BבBB=BBB{BBGBBBWBBB3BpBBǬBBBBBB׬BBBGB B«BvBBǪBkBBB8BͨBaBBB BB$BB8BBGBңBWBBfBB{BBBBB)BBBB͝B\BBvBBB)BBMBB{BBB=BܗBvBBBMBBB3BהBB$B͓B{B$BҒBB3BBBMBBMBBBBܪB8BBܫB$BfBBҬBBB$B)BBBBͬBB\BBҫBB.BҪBpB BB=BͨBaBBB BBBB3BBBBͣBWBܢBfBBvBBBBB)BB=B͝B\BBvBBB)BBRBB{BBBBBB{BBBWBBB=BBB3BܓBB3BBBBBBB\BBBBRBBBpB«BB\BBҬBB$B=BGBMBBB.BBBBpB.BBB3BתBvBBB=BҨBaBB{B BBBB.BBBBǣBRBܢBaBBvBBBBB$BB=B͝BWBBvBBB)BBRBBBBBGBBBBB\BBBGBBB=BBB=BBBMBBBkB$BB$BBBMBBBGBBͬBB.BRBfBpBpBaBMB)BB¬BB=BBB=BܪB{BBB=BҨBaBB{BBBBB.BB=B£BMBעB\BBpBBB BB$BB=BǝBWBBvBBB.BBRBBBBBMBBB$B–BaBBBMBBBBBBBGBBB\BB‘B{B3BB\BªB$BBܫB.B{BBB3B\B{BBBBBfBBBB׬BBGBBBBBBBBB=BͨB\BBvBBBBB)BB8BBGBҢBWBBkBBB BBBB8BǝBWBBvBBB.BšBWBBBBBRBBB)BǖBkB BBWBBBMBBBWBBBfBBґBBBB)BBB\BBBaBBB.BaBBBBBBBB\B$BBBRBBBGBBBBB=BͨB\BBpBBBBB$BB3BBBB͢BRBܡBfBB{BBBBB3BBRBBvBBB.BšBWBBBBBRBBB.B͖BpBBB\BBBWBBBaBB’BvB)BBBRBaBǪB.BBBGBBB$BaBBBҭBܭBB׭BBBpB8BBB\B BBMBBBBB8BǨBWBBkBBB BBBB)BB=B¢BMBסBaBBvBBBBB3BBRBBpBBB)BBWBBBBBWBBB3BҖBvBBBfB BBaBBBkBB͒BB8BBBaBBBfBǫB$B{BͬBBWBBBBBBBBܭBBBGBBBfBBBRBBBBB8B¨BRBܧBfBB{BBBBB$BB3BBGB͡BWBBkBBBBB.BBMBܜBpBBB)BBWBBBBBWBBB3BזB{BB•BkBBBkBB“BvB$BגBBBBBBpBͪB8BBBWBBBGBBBBBB)B$BBBͭBBWBB¬BkBBBRBBBBB3BBMBקBaBBpBBB BBBB.BB=BǡBRBܠBfBBB BB)BBGBלBkBBB)BBWBBBBB\BBB8BܖBB$BǕBpBB”BpBB͓BB.BBBRB B‘BBBpBҫB3BBB3B{BBBB8BGBMBBB.B BBBfBBͬBvBBBRBB{BBB)BBBBͧBWBBkBB{BBBBB$BB3BBGBҠBaBB{BBB$BBBBלBfBBB$BBRBBB$BB\BBB=BܖBB)B͕BvBB͔B{B)BדBB8BBB\BBґBB=BB BkB¬BBfBBBBBBaBkBkBaBGB$BBBpB$BҬBvBBBMBBvBBB$BB=BǧBMBצBaBBpBBB BBBB.BBBB͠BWBBpBBBBB=BҜBaBBB$BBRBBBBB\BBB=BBB.BҕB{B)BҔBB.BBBBBBBfBBܑBBvBܫBBBBBMBBܭBBGBpBBBB{BaB8BB­B{B)B׬B{BBBMBBpBBBBB3BBBBͦBWBܥBfBBvBBBBB$BB8B BMBܟBkBBBBB8B͜B\BBBBBMBBBBB\BBBBBBB.BוBB.BהBB8BBBMBBBpB.BBBBBvB׬B.BBͭBBGBvBBBBBBvBGBBҭBB.B׬B{BBBGBתBkBBBBB)BB8B¦BGBҥB\BBkBB{BBBBB.BBGBҟBaBBBBB3BœBWBBBBBMBBBBB\BBBBBBB3BܕBB3BܔBB=BBBWB B’B{B8BBBBMBB BfBBBBBvBB®BҮB׮BͮBBB\BB׭BB3B׬BvBBB=BҪBaBB{BBBBB.BB=BǥBMBפB\BBpBBBBB$BB=BǟBWBBvBBB)BBRBBBBBGBBBBB\BBBBBBB8BBB8BBBBBBBaBB͒BBBBBBBBBBBBB3BpBBͮBBBBBǮBBkB)BBB3B׬BvBBB8BǪBWBBpBBBBBBB.BBBBǤBRBܣBaBBvBBBBB3BBMBܞBkBBB$BBMBB{BBBBBB{BBB\BBBBBBB8BBB=BBBGBBBfBBגBBMB B͑BRBBBvBͭBBaBBҮBBBBBBܮBBvB3BBB3B׬BpB BB.BBMBשBfBB{BBBBB$BB3BBBBͣBWBBkBBB BB)BBBBҞBfBBBBBGBܛBvB BBBBܙB{BBBWBBBBBBB=BBB=BBBRBBBpB)BBBWBBבBBBRBBBRBBҮBB$B8B=B3BBBBB8BBB3BҬBkBBB$BBBBͩBWBBkBB{BBBBB$BB3BBGBҢB\BBvBBBBB8BǞB\BBBBB=BכBkBBB=BיBvBBBWBBBBBBB=BBBBBBBWB BBvB.BBBaB$BB¬B$BBB3BBǮBB)BGB\B\BMB.BBͮBB=BBB.BͬBaBBBBB3BBGBҨB\BBkBB{BBBBB$BB8B¢BMBܡBfBBBBB.BBRBBvB BB3B͛BfBBB8BҙBpBBBWBBBBBBB=BBBGBBB\BBǓB{B8BBBkB.BBB\BBBkBBB)BRBpB{BvBaBBBB׮BBBBBB)B¬BWBB{B BB$BB8B¨BMBҧB\BBkBB{BBBBB)BB=B͡BWBBpBBBBBBBםBkBBB.BǛB\BBB3B͙BkBBBRBBBBBBB=BBBGBBBaBB͓BB=BBBvB8BB.BBBMBBB$BWB{BBBB{BRBBܮBBBBBB$BBMBBpBBBBB)BB8B§BGBҦB\BBkBB{BBBBB.BBGBנBfBBBBB8B͝BaBBB$BBWBBB)BǙBfB BBMBBBBBBB=BBBMBBBaBBғBBBBBBB=BBfBǭB$BBͮBBRBBBBBBBaB)BBB=BBBBBBBҫBaBB{BBBBB)BB8BBGBҥBWBBkBBB BBBB8BǠBWBBvBBB.BBWBBBBBMBBB$B™BaBBBMBBB=BBB=BBBMBBBfBBדBBMB BǒBBGB BBB\BBBGBBBͯBׯBׯB¯BBkB.BBB8BܭBvBBB3B«BRBܪBfBB{BBBBB$BB3BBGBͤBWBBkBBBBB)BBGBןBfBBBBBGBBvBBBBBBBBB\BBBGBBB=BBB=BBBMBBBkB$BܓBBRBB͒BBRBBҭB3BBB3BvBBׯBBBBׯBBvB3BBB3BҭBkBBB$BB=BͪBWBܩBfBBvBBBBBBB3BBGBңB\BBpBBBBB8BǟBWBBBBB=BלBkBBB=BךBvBBBWBBBBBBB8BBB=BBBRBBBpB$BBBWBBגBB\BBBaBBB\BBүBBBBBBBB8BBB.BǭBaBBBBB.BBBBͩBWBBfBBvBBBBB$BB3BBMBעBaBB{B BB)BBMBBpBBB3B͜BaBBB3BҚBpBBBRBBB=BBB8BBB=BBBRBBBpB)BBB\BBܒBBaB)B8BBBGBBͯBBB3B.BBB¯BB8BBB$BBRBBvBBBBB.BBBBǨBRBܧBaBBpBBBBBBB8B¢BRBܡBkBBBBB=BҞBfBBB$BBWBBB)BǚBfBBBGBBB8BBB3BBB=BBBRBBBvB.BBBaB$BBBkB.BkBͮB)BvBBB)BBBRBGB.BBǯBB3BܮB{BBBBB׬BaBB{BBBBB)BB=B§BMBҦB\BBkBBB BB$BB=BǡBWBBvB BB.BžBWBBBBBMBBBBB\BBBBBBB3BܗBB3BܖBB8BBBRBBBvB.BBBfB)BBBpB8BBB\BBB$BMBfBkB\B=B BͯBB.BҮBpB BB3B¬BRBܫBfBB{BBBBB$BB3BBBBͥBWBBkBBBBB)BBBBנBfBBBBBBBܝBpB BB=BכBvBBBRBBB8BBB.BחBB.BזBB8BBBRBBBvB3BBBkB.BBB{BBB׮B8BBܯBBRBvBBBpBGBBͯBB)BǮBaBBBBB8BǫBRBܪBaBBpBBB BBBB.BB=BǤBWBBkBBBBB3B BRBBvB BB3B͝BaBBB.B͛BkBBBGBBB3BטBB$BҗB{B)BזBB3BBBRBBB{B3BBBpB3BBBBGBBkB¯B BGBvBBBBBRBBͯB{BBBRBB{B BB$BB8BªBGBҩB\BBkBB{BBBBB)BB=BǣBWBBpBBBBB=BҟBfBBB$BBRBBB$BB\BBB=BBB)B͘BvBBǗBvB$BҖBB3BBBMBBB{B3BBBpB3BBBBMBBBBB8BvBBBBBBWBBǯBpBBBBBҭBaBBB BBBB.BB=BǨBRBקBaBBpBBBBB$BB=B͢BWBBvBBB)BBRBB{BBBBBܜBvBBBMBBB3BҙB{BBǘBkBB—BpBB͖B{B.BBBMBBB{B8BBBvB8BB’BBWB{BүB$BfBB°BװBװB°BBWBBBaBBB.BBMBܬBfBB{BBBBB$BB3BBGBͦBWBBkBBB BB$BBBBҡBaBBBBB=BҞBfBBB3B͜BfBBBBBBB$BǙBkBBBfBBBfBBǖBvB)BܕBBMBBB{B8BBB{B=BBǒBB\BBBWBBǰBBBBҰBBWB BBWBBBBB3B¬BMB׫BaBBpBBB BBBB)BB=BǥBRBܤBfBBBBB)BBGBܠBkBBB)BBWBBBBBWBBB3BҚBvBBBaB BB\BBBaBB–BpB$BܕBBGBBB{B8BBB{B=BB͒BBaBB8BB°BBB BBװBBRBBBBBܮBpBBBBB3BBBBͪBRBܩBfBBvBBBBBBB3B¤BMBףBfBBBBB3B BWBBBBBBBܝBvBBBGBBB$BšBfB BBWBBBRBBBWB BBkBBוBBGBBB{B8BBB{BBB BҒBBfBBkBBBB$BB BܰBBMBBB.BǮBWBBvBBBBB$BB8BBGBͨBWBBfBB{BBBBB3BBMBܢBkBBBBBBBҟBkBBB.BǝBaBBB3BқBvBBBWBBBMBBBGBBBRBBBfBBҕBBBBBBvB8BBBBBB BגBBkBGBBBB3B=B3BBBBBBBBBB=BͭBWBBkBBB BBBB)BB8B§BGBҦB\BBpBBBBB3B¢BRBBpBBB)BBRBBBBBMBBB$B›BaBBBMBBB=BBB=BBBGBBBaBB͕BB=BBBvB8BBBBGBBגBBpB{BͰBB8BMBRB=BBܰBB3BүBkBBB$BB=B¬BMB׫BaBBpBBB BBBB.BB=BǥBWBBkBBBBB3BǡBWBB{BBB=BҞBkBBB8BלBvBBBRBBB=BBB3BܘBB3BBB=BBBWBBǕBB8BBBvB3BBBBGBBܒBBvBBB8B\BkBaBGBBװBBBBWBB{BBBBB.BBBBǪBRBשBaBBpBBB BBBB8B¤BRBܣBkBBBBB=BҠBfBBB$BBWBBB$BœBaBBBBBBB.BҙB{B$B͘B{B)BחBB3BBBRB B•B{B8BBBpB3BBBBGBBܒBB{BB.BaB{BBpBMBBͰBpBBB=BͮB\BBvBBBBBBB.BB=BǨBRBקBaBBvBBBBB3BBMBܢBkBBB$BBMBBvBBB=BםBvBBBMBBB.BҚBvBB™BkBB˜BkBBǗB{B.BBBGBBBvB3BBBpB3BBBBMBBBBBBWBBBB{BMBBB\BBBBB=BǭBRBܬBfBBvBBBBBBB.BBBBͦBWBBkBBBBB3B¢BRBBvB BB3BǟB\BBB)BB\BBB8BכB{BBšBfB BB\BBBaBBBpB$BזBBBBBBpB.BBBkB.BBBBMBBBBB=BBBBBBGBBBGBܯBpBBBBB3BBBBͫBRBܪBaBBpBBBBBBB3B¥BMBܤBfBBBBB3BǡBWBBBBBBBܞBvBBBGBBB$B›BfB BBWBBBMBBBRBBBaBB͖BB8BBBfB$BBBfB.BBBBMBBBBBkBBDZBDZBBBBBBB.B¯BRBBpBBBBBBB.BB=BǩBRBרBaBBvBBBBB.BBGBףBfBBBBB=BҠBfBBB)BžB\BBB3B͜BpBBBRBBBBBBB=BBBBBBBWB B–BvB.BBBaBBBBfB)BBBBMBBBBBBͱBBױBBB3BܰB{BBB3B®BMB׭BaBBpBBB BBBB)BB=BǧBRBܦBfBBB BB)BBGBעBfBBBBBGBBvBBBBBB{BBBWBBB=BBB.BיBB.BܘBB8BBBMBBBkB)BBB\BBܔBBaB$BBBBGBBBBBBBBBBvB$B°B\BBBBB)BB=BǬBMB׫B\BBkBBBBBBB.BBBBҥB\BBvBBB$BBGBܡBkBBB.BŸB\BBB)BǝBaBBBBBBB)B͚BvBBǙBpBBǘBvB)BחBB=BBBaBBוBBRBBҔBB\BBBB{BGBBBBBBBBBBfBBB=BүBaBB{BBBBB)BB8BBGBҩBWBBkBBB BBBB8BǤBWBBvBBB)BBMBB{BBBBBܞBvBBBMBBB)B͛BpBBBaB BBaB BBfBB͗BB3BBBWBB͕BBMB B͔BBWBBBB{BGBBBBBBBBBBWBBBBB=BͮBWBBfBB{BBBBBBB3BBBBͧBWBBpBBBBB3B£BRBBvB BB.BǠB\BBB$BBWBBB3BҜBpBBB\BBBMBBBMBBBWB BBpB$BܖBBMB B•BBBBBǔBBRBBBBvBGBBBBB$B.BBBBBBܰBkBBBBB.BBBBǬBRB׫BaBBpBBB BBBB3BBMBץBfBBBBB3B¢BRBB{BBB=BןBkBBB=BܝBvBBBWBBBBBBB8BBB8BBBGBBBaBB͖BBBBBB{B8BBBBMBBܓBBvBBBBBBB=B8BBױBB$BBMBׯBfBBB BBBB)BB8BªBGBҩB\BBkBBBBB$BB=BͤB\BB{BBB3BǡB\BBBBBRBBB$BB\BBB=BBB.BҚB{B$B͙B{B)BטBB8BBBRB B–B{B3BBBpB.BBB{BBB BדBBpBBBBBBBRB8B BDZBpB BB)BBBBҮBWBBkBB{BBBBB$BB3BBGBҧB\BBvBBBBB=BͣB\BBBBB=BҠBkBBB3B͞BkBBBBBBB)B͛BpBBBfBBBfBB˜BvB$BחBBBBBBkB)BBBfB)BBBvB=BBғBBkB=BBBBB\B8BBBRBB{BBBBB.BBBBǬBRB׫BaBBpBBB BBBB8B¦BMBܥBkBBBBB8B͢B\BBBBBGBB{BBBMBBB)BǜBkBBBWBBBRBBBRBBBaBBǗB{B3BBBaBBܕBB\BBBBkB8BB͓BBkB8B BBBBfB.BBB3BǰBRBܯBfBBBBBBB$BB8BBGBҩBWBBkBBBBB)BBBBҤBaBBBBB8B͡BaBBB)BŸB\BBB.B͝BkB BBRBBB=BBB8BBB=BBBMBBBkB$BܖBBRBB͕BBRBBהBBfB.BBǓBBfB8B BܒBBBaB$BұBvBBB.BB=BǮBRBܭBaBBpBBB BBBB.BBBBͧB\BBpBBBBB=BͣB\BBBBBBBנBpBBB=BמBvBBBMBBB3BכBB$B͚BvBB͙B{B)BטBB=BBB\BB͖BBBBB•BBBB B͔BB\B)BB“BBaB3BBܒBBB\BBBRBBvBBBBB)BB8BBGBͫBWBBfBB{BBBBB.BBGBץBfBBBBB8B͢B\BBBBBMBBBBBRBBB3BҜBvBBBfB BB\B BBaBB˜BvB)BܗBBGBBBvB3BBBvB8BB”BBRBBBBB\B.BBגBBBMBBB.B°BMBׯBaBBpBBB BBBB)BB=BǩBMBרBaBB{BBBBB=BͤB\BBBBB8B͡BaBBB)BŸB\BBB3BҝBpBBBWBBBGBBBGBBBMBBBaBBǗBB8BBBfB$BBBfB.BBBBMBBBBBWB)BBגBBB3BױBpBBB$BB3BBGBͭBWBܬBfBBvBBBBB$BB8B§BRBܦBkBBBBB3BǣBWBBBBB=BנBpB BB=BמBvBBBRBBB=BBB.BךBB.BיBB3BBBMBBBkB$BBBWBBוBB\BBBBvBBBBܓBB{BMB$BBҒBBBBBMBܰBkBBBBBBB)BB8BBGBҪBWBBkBBBBB$BB=BͥB\BB{BBB3B¢BWBBBBBMBBBBBWBBB3BלB{BB›BkBBBfBBBkBB͘BB3BBBWBB͖BBGBBǕBBMBBהBBkB8BBғBBvBGBBB͒BBBBB$BB=BǯBRB׮BaBBpBBB BBBB.BB=BǨBWBBkBBBBB3B¤BRBBvB BB3BǡB\BBB)BŸB\BBB3BҝBvBBB\BBBMBBBMBBBWBBBkBBחBBBBBBvB3BBB{B=BB͔BBaB.BBǓBBkBBBBBǒBBBױBfBBBBB$BB3BBBBǬBRBܫBaBBvBBBBB)BBBBͦB\BB{B BB)BBMBBvB BB8BҠBfBBB8BמBpBBBRBBB=BBB3BܚBB3BܙBB=BBBRB BBvB.BBBfB$BBBkB.BBBBRBBBBBfB8BBB’BB{BB=BͰBWBBkBB{BBBBB$BB3BBGBҩB\BBpBBBBB.BBMBܤBpBBB$BBMBB{BBBBBܟB{BBBRBBB3BלB{BB›BkBBBkBB™BpB$BҘBB=BBBaBBזBBRBBҕBB\BBBB{BGBBBBB\B3B BBBB{BBBB)BB=B®BMBҭB\BBkBB{BBBBB)BBBBͧB\BBvBBB$BBBBףBfBBB$BBRBBBBBRBBB.B͝BpBBBWBBBMBBBMBBBWB BBpB$BܗBBMBB–BB=BB•BBMBBהBBpB=B BܓBBBRB)BBܒBBBvBWBBpBBB BBBB)BB8B«BMBҪB\BBpBBBBB.BBGBץBfBBBBB=BҢBfBBB)B B\BBB.B͞BkB BBMBBB8BܛBB.BךBB.BܙBB=BBBWB B—B{B3BBBkB.BBBvB8BB͔BBaB.BB͓BBvBMB$BBגBBBpB)BB=BǯBRB׮BaBBpBBB BBBB.BBBBͨBWBBpBBBBB8BͤB\BBBBB=BҡBkBBB8BҟBkB BBGBBB)B͜BpBBBfBBBfBB™BpB$BҘBB=BBBfBBܖBBWBBܕBBaB)BBBBRB$BB“BBkBBBBB͒BBBkBBBBBBB.BB=BǬBMB׫BaBBpBBBBB)BBBBҦB\BB{BBB.B£BWBBBBBBBܠBvBBBGBBB$BBaBBBRBBBGBBBGBBBRBBBkB$BܗBBMB B–BBBBBǕBBRBBBBvBBBBBBBaB8BBBǒBBBfBͰBRBܯBfBBvBBB BBBB.BBBBͩBWBBkBBBBB.BBMBBpBBB)BBRBBBBBMBBBBB\BBB=BBB.BқB{B$BҚB{B)BיBB8BBBRB B—B{B3BBBkB.BBBvB=BBҔBBfB8BBדBBBWB.BBBBBBaBB$BB3BBBBͭBRBܬBaBBvBBBBB$BB=BǧBWBBpBBB$BBBBףBkBBB)BBWBBB$BB\BBB8BםB{BBBfB BB\BBB\B BBkBB͘BB8BBBaBBזBBWBBܕBBfB.BBBBWB)BBǓBBpBGB$BBגBBBvB\BfBBvBBBBBBB.BBBBͪBWBBkBBB BB)BBBBҥBaBBBBB=BҢBfBBB.BǠBaBBB3BҞBpBBBRBBBBBBB8BBB=BBBMBBBfBBҗBBGBB–BBBBBǕBBRBBBB{BGBBBBBfB=BBBҒBBBpBRB3BBBBͮBRBܭBfBBvBBBBB$BB8B¨BRBܧBkBBBBB3B¤BWBB{BBB=BҡBkBBB8BҟBpB BBGBBB.BҜBvBB›BkBBšBpBB͙B{B.BBBGBBBpB.BBBfB)BBBvB=BB͔BBfB8B BܓBBB\B3B BBǒBBBfBMBBBBBBB.BBBBǫBRBܪBfBB{BBBBB8BǦBWBBvBBB)BBMBB{BBB=BנBpB BBGBBB$BBfB BBRBBBMBBBMBBB\BB˜BvB.BBBWBBҖBBRBBוBBaB)BBBBWB$BB͓BBvBMB$BBܒBBBBaBGBͯBWBܮBfBBvBBBBBBB3BBGBҨBaBB{BBB$BBBBפBfBBB$BBMBB{BBBGBBBBB\BBB=BBB.BכBB)BҚBB.BܙBB=BBBWBBǗBB=BBBvB8BBBBMBBܔBBvBBBBBBBfB=BBBҒBBBvBWB=BBBB.BB=BǬBRB׫BaBBvBBBBB.BBGBצBfBBBBB8BͣBaBBBBBMBBBBBWBBB3BҝBvBBBaB BB\BBB\B BBkBBҘBB=BBBfB$BBB\BBBBkB3BBǔBBaB3BBדBBBWB3B BBǒBBBkBRB8BfBBvBBB BBBB.BBBBͩBWBBpBBBBB3B¥BRBBvB BB.BǢB\BBB$BBWBBB)BǞBfB BBMBBB=BBB3BBB8BBBGBBBfBBחBBGBB–BBBBBǕBBWBBBBBRBBB“BBpBGB$BBܒBBB{BaBGB.B.BB=BǭBMB׬BaBBpBBBBB$BB=BǧBWBBpBBB$BBGBףBkBBB.B¡B\BBB)BǟBaBBB=BBB$BǜBpBBBfBBBfBBǙBvB)BܘBBGBBBpB.BBBfB)BBBvB=B BҔBBkB=B BBBBaB8BBB͒BBBpBWB=B$BBvBBBBBBB3BBBBͩB\BBpBBBBB8BǥBWBB{B BB3BǢB\BBB$BBWBBB.B͞BkB BBRBBB=BBB8BBB=BBBMBBBfBBחBBMB BǖBBGB B͕BBWBBBBBRB$BBǓBBpBMB$BBܒBBBBaBGB.BBBBBǭBRB׬BaBBpBBBBB$BB=BͧBWBBvBBB$BBGBܣBpBBB.BǡB\BBB)BǟBfBBBBBBB)B͜BpBBBfBBBkBBǙBvB)BܘBBGBBBpB.BBBkB)BBBvB=B BҔBBkB=BBBBBaB8BBB͒BBBpBWB=B$BBB BBBB.BB=BǪBRBܩBfBBB BB$BBBBҥBaBBBBB=BҢBkBBB.BǠBaBBB8BמBvBBB\BBBGBBBBBBBGBBBWBBBpB)BBBRBB͖BBMBBҕBB\B)BBBBWB)BB͓BBvBMB)BBBBBBfBMB3BBBMB׭B\BBkBBB BBBB3BBGBקBfBBBBB.B¤BRBB{BBB8BҡBfBBB3BҟBkB BBGBBB.BҜB{BBǛBpBBǚBpBB͙BB3BBBMBBB{B3BBBpB.BBB{BBBBהBBpBBBBBBBfB=BBBҒBBBvBWB=B)BBBBB)BB8B«BGBҪB\BBpBBBBB.BBMBܥBkBBB$BBGBܢBvB BB8BҠBkBBBBBBBBBaBBBRBBBGBBBMBBB\BB˜BvB.BBBWBBҖBBRBBוBBaB)BBBB\B)BB͓BB{BRB)BBB’BBBfBMB3BBBBBfBB{BBBBB)BB=BǨBWBBpBBBBB8BͤB\BBBBBBBܡBpB BB=BןBvBBBRBBB8BܜBB$B͛BvBB͚BvB$BיBB8BBBRB B—B{B8BBBpB3BBBBGBBܔBBpBBBBBBBfB=BBBҒBBBvBWB=B$BBBBB3BBBBͫBWBܪBfBB{B BBBB8BǦBWBBvBBB)BBRBB{BBBBBܠBvBBBGBBB$BǝBfB BBWBBBMBBBRBBBaBB˜B{B.BBB\BBҖBBRBBוBBaB)BBBB\B)BB͓BBvBRB)BBBBBBfBGB.BBBBܑBvBBB BBBB3BBGBҨBaBB{BBB$BBBBҤBfBBBBBMBB{BBBBBB{BBBWBBB=BBB)BқB{B$BҚB{B)BיBB8BBBWB B—BB8BBBvB3BBBBGBBהBBpBBBBBBBaB8BBB͒BBBpBRB8B$B BBBґB=B¬BMB׫BaBBpBBBBB)BBBBҦBaBBBBB3BǣB\BBBBBGBB{BBBMBBB)B͝BkBBB\BBBRBBBRBBBaBBǘB{B3BBB\BBזBBRBBוBBaB)BBBBWB)BB͓BBvBMB$BBܒBBB{BaBBB)BBBBבB‘BBBBB)BB=BǩBRBܨBfBBBBB.BBMBܤBkBBB)BBRBBBBBMBBBBB\BBBBBBB.BכBB)BҚBB)BܙBB8BBBWBB—BB8BBBpB3BBBBBB BהBBpB=BBBBB\B8BBBǒBBBkBMB3BBBBܑBǑBBͬBWBBkBB{BBBBB3BBMBܦBfBBBBB8BͣBaBBBBBMBBBBBRBBB.B͝BpBBB\BBBRBBBWBBBaBBǘB{B3BBB\BBҖBBRBBוBBaB$BBBBRB$BBǓBBpBGBBBגBBBvBWB=B$B BBB͑BBBBBB3BBGBҩB\BBpBBBBB3B¥BRBBvBBB.B¢BWBBBBBMBBB$BžBaBBBBBBB.BכBB)BҚBB)BܙBB8BBBWB B—B{B8BBBpB.BBB{B=B BҔBBkB8BBדBBBWB.B BB’BBBaBBB)BBBBґBBBBaBBpBBBBB$BB=BǧBRBBpBBBBBBBңBfBBB$BBRBBBBBWBBB.BҝBpBBB\BBBRBBBRBBBaBB˜B{B.BBBWBB͖BBMBBҕBBWBBBBBMBBBBBfB=BBB͒BBBkBMB3BBBBґB‘BBBB)BB=BªBMBשBaBB{BBBBB8BǥBWBB{B BB3BǢB\BBBBBRBBB$BžBaBBBBBBB.BכBB)BҚB{B)BיBB8BBBRB BBvB3BBBkB)BBBpB8BBǔBBaB.BBғBBvBMB$BBגBBBvBWB8BBBBבB‘BBBBBB{BBBBB.BBBBͧB\BBvBBB$BBGBףBkBBB)BBWBBBBBWBBB3BҝBpBBB\BBBRBBBRBBB\BB˜BvB)BBBRBBǖBBGBBǕBBRBBBBvBBBBBBB\B3B BB’BB{B\BBB$B BBܑBǑBBBBBvBBBBͪBWBBkBBB BB$BBBBҥBaBBBBB8B͢BaBBB$BBWBBB)BžBaBBBBBBB.BכB{B$BҚB{B)BיBB3BBBMBBBpB.BBBaB$BBBkB.BB”BBWB$BB“BBkBBBBB͒BBBfBGB)BBBܑBǑBBBBBvBfBBBBBB3BBMBקBaBB{B BB)BBMBܣBpBBB.B¡BWBBB$BBWBBB3BҝBpBBB\BBBRBBBMBBBWB BBpB$BܗBBMBB–BB=BB•BBGBBהBBkB8BBדBB{BRB$BBגBBBpBMB3BBBB͑BBBBBpBfB\BMBתBaBBpBBBBB.BBGBץBfBBBBB=B͢BaBBB$BBWBBB)BžBaBBBBBBB.BқB{B$B͚BvB$BҙBB.BBBGBBBkB$BBBWBBܕBBaB$BBBBMBBBBB\B3B BBBBvBWB8BBBB͑BBBBBpBaBWBMBBB)BB=BǨBRBܧBkBBBBB.BBRBBvBBB.B¡B\BBB$BBWBBB3BҝBpBBBWBBBMBBBGBBBRBBBfBBҗBBBBBBvB3BBBvB=BB͔BB\B)BBǓBBkBBBBBǒBBB\B=BBBB͑BBBB{BkB\BRBBB=BܪBfBB{BBBBB3BBMBܥBkBBBBB=BҢBfBBB)BBWBBB)BžBaBBBBBBB)B͛BvBBǚBpBBǙBvB)BטBB=BBBaBBזBBMBB͕BBRBBBBpB=B BדBB{BMB$BBҒBBBfBBB$BBBґBBBB{BfBWBMB=B3B.BB.BBBBͨBWBBpBBBBB3B¤BRBBvB BB3BǡB\BBB$BBWBBB.B͝BpBBBWBBBGBBBBBBBMBBBaBBǗBB8BBBkB)BBBkB.BBBBRBBBBB\B.BBܒBBBkBMB)B BBґBBBB{BfBWBGB8B.B$BBpBBB BB$BB8BǦBRBBpBBBBBBBҢBfBBB)BBWBBB$BžBaBBB=BBB$B͛BpBBšBkBB™BpBBҘBB3BBBWBBǖBBBBB•BBGB BҔBBaB.BBǓBBkB=BBBBBvBRB.BBBבBBBBvBaBRBBB3B)BBB B8B©BMBרBaBBvBBBBB8BǤBWBB{B BB3BǡB\BBB$BBWBBB.B͝BkB BBRBBBBBBB=BBBBBBBWB BBvB.BBB\BBܕBB\BBBBvB=B BדBBvBGBBBǒBB{BWB3BBBבBBBBvBaBMB=B.BBB BBBBBBB)BB=BͦBWBBpBBB$BBBBעBkBBB)BBWBBB$BžB\BBB8BܜB{BB›BkBBBaBBBfBBǘBvB)BܗBBMBBBvB3BBBvB8BB”BBRBBBBBWB)BBҒBBB\B=BBBܑBBBBvB\BGB8B)BB BBBBBͩBWBBkBBBBB)BBBBҤBaBBBBB8B͡BaBBB)BŸB\BBB.B͝BkB BBRBBB=BBB8BBB=BBBMBBBkB$BܖBBRBB͕BBMBBהBBfB.BBǓBBfB3B BܒBBBfBBBBBܑB‘BBBpB\BGB3BBBBBBBܐBאBBBB3BBMBצBaBB{B BB)BBMBܢBpBBB.B B\BBB)BžB\BBB8BܜB{BB›BfBBB\B BBaBBBpBBחBBBBBBkB)BBBfB)BBBvB=B BדBBpBBBBBBBkBGB$BBB‘BBBpBWBBB.BB BBBBאBҐB͐BǐBaBBpBBBBB.BBGBפBfBBBBB8B͡BaBBB)BBWBBB)BǝBfBBBGBBB8BܚBB.BיBB3BBBBBBB\BB͖BBBBBB{B=BB”BBRBBBBBMBBBǒBBvBMB)BBB‘BBBpBWB=B)BBBBBאB͐BBBBB)BB=BǧBRBܦBfBBBBB.BBMBBpBBB.B B\BBB$BB\BBB3BҜBvBBBaBBBWBBBWBBBaBBǗB{B3BBB\BBוBBRBBהBBaB)BBBB\B)BBҒBB{BRB.B BBǑBBBkBRB=B$BBBBܐB͐BBBBBBBB{BBBBB3BBMBפBfBBBBB=B͡BaBBB$BBWBBB)BBaBBBBBBB.BךB{B$B͙B{B)BטBB3BBBMBBBvB3BBBkB)BBBvB=BB͓BBfB8BBܒBBB\B3BBBǑBBBkBRB8BB BBBҐBBBBBBBBBBBBͧBWBBkBBBBB.B£BRBBvBBB.B BWBBB$BBWBBB.B͜BpBBBWBBBMBBBMBBBWBBBkB$BזBBMBB•BBBBB”BBMBBܓBBvBBBBBBBaB8BBB͑BBBkBRB3BBBBܐB͐BBBBBBBBB{BB BBBB8B¥BMBܤBkBBBBB=BҡBaBBB$BBRBBB$BB\BBB=BܛBB$B͚BpBB™BpBBǘBvB)BחBB=BBBfBBܕBBWBBהBBaB$BBBBRBBBBBfB=BBB͑BBBkBMB3BBBBאBBBBBBBvBpBkBkBkBGBҧB\BBpBBBBB3B£BRBBvBBB.B BWBBBBBRBBB)BǜBfB BBMBBBBBBB=BBBGBBB\BBǖBB8BBBkB.BBBpB8BBǓBB\B)BBǒBBpBGBBBґBBBkBMB.BBBB͐BBBBB{BpBfBaB\BWBWBWBBB$BB=BǥBRBBpBBBBB=BҡBaBBB$BBRBBBBBWBBB3BכB{BBšBfBBBaBBBfBBǗB{B.BBBRB BǕBBBBB”BBGBBדBBkB8BBҒBBvBMB$BBґBBBkBMB.BBBܐBǐBBBBBpBfB\BRBMBGBBBBBBBܧBaBB{BBBBB8BǣBWBBvBBB.B BWBBBBBMBBB$BœBaBBBGBBB8BܙBB3BܘBB8BBBMBBBkB$BBBWBBהBB\BBBBvBBBBܒBBBRB)BBבBBBkBGB)BBBאBBBBBvBfBWBMBBB8B3B.B.B.B.BB.BBBBͥBWBBpBBBBB=BҡBaBBBBBMBBBBBRBBB.B͛BpBBB\BBBWBBB\B BBkBBҖBB=BBBpB.BBBkB3BBBBMBBBBB\B.BBܑBBBkBGB)B BBҐBBBB{BfBWBGB=B3B)B$BBBBBBkBBB BBBB8BǣBWBBvB BB.B BWBBBBBGBBBBBWBBB=BBB)BҙB{B$B͘B{B)BחBB=BBB\BB͕BBBBBBBBBB͓BB\B)BB’BBaB3B BBBBkBGB)B BB͐BBBBpB\BMB=B.B$BBB BBBBBB3BBGBҥB\BBvBBBBBBBҡBaBBBBBMBB{BBBMBBB$B›BfB BBRBBBGBBBMBBBWB BBvB.BBBWBBҔBBWBBܓBBkB3BB͒BBkB=BBBBBkBGB)BBBǐBBB{BfBRBBB.BBB BBBBBBBBBBBBB$BB=BͣB\BB{B BB.BBRBBBBBGBB{BBBRBBB3BךB{BBǙBkBB˜BkBBǗBvB)BܖBBGBBBpB)BBBfB)BBB{BBB BגBBpBBBBBBBpBGB$BBBǐBBBvB\BGB3B$BBBBBB܏B׏B׏BҏB׏B׏B܏B¦BMBץBaBB{BBB$BBBBҡBaBBBBBGBBvBBBBBBBBB\BBBGBBB8BBB=BBBGBBBaBB͕BBBBBB{B=BB“BBMBBBB{BGBBB‘BBpBGB$BBBBBBkBWB=B)BBBBB܏BҏB͏BBBBBBBǏBBBB)BBBBңB\BB{B BB.BBRBB{BBBBBܝBvBBBGBBB)B͚BkBBBaB BB\B BBfBBǖB{B3BBBWBBҔBBMBBғBB\B$BBBBRB$BBǑBBpBMB$BBܐBBBBfBMB3BB BBB׏B͏BBBBBBBBBBBRBܥBfBBB BB$BBBBҡBfBBBBBGBܞBpB BB=BܜBvBBBRBBB8BBB.BטBB)BחBB3BBBMBBBpB)BBBaBBBBkB3BB’BB\B)BB͑BBvBMB$BBܐBBB{BaBBB.BBBB܏B͏BBBBBBBBBBBBBBB.BBGBңBaBB{B BB.BBRBB{BBB=BםBpB BBBBBBBBaBBBRBBBMBBBRBBBfBBҕBBBBBBvB3BBB{B=BB͒BBfB3BBґBB{BMB$BBܐBBBvBWB=B$B BBB͏BBBBBBB{BvBvBpBvBvB{BBBkBBBBB)BBGBסBfBBBBBBBמBpBBB8BҜBpB BBGBBB.BҙBvBBǘBpBBǗBvB$BҖBB8BBB\BB͔BBGBBǓBBMBBܒBBkB8B BבBB{BRB)BBܐBBBpBRB8BBBBҏBBBBBBvBkBfBaB\BWBWB\BaBfBkBB3B¤BMBףBfBBBBB.BBRBBvB BB8BҝBfBBB8BכBvBBBWBBBBBBB=BBBBBBBRBBBpB)BBB\BBדBB\BBBB{BBBBܑBBBRB)BBאBBBkBMB.BBBBǏBBBB{BpBaBWBRBGBBBBB=B=BBBGBMBWBvBBBBB.BBGBסBfBBBBBBBמBkBBB3B͜BfBBB=BBB$BǙBkBBBaB BBaBBBpB$BוBBBBBBpB.BBBkB.BBBBMBBBBBWB.BBאBBBkBGB)B BB׏BBBBBkB\BRBBB8B3B.B)B$B$B$B)B.B3B=B=BǤBRBܣBfBBBBB.BBRBBvB BB3B͝BaBBB3B͛BkB BBMBBB8BܘBB.BחBB.BܖBB=BBB\BB͔BBBBBB{B=BBǒBBWB$BBBB\B.BBאBBBfBBB$BBB͏BBBBpB\BMB=B3B$BBBB B B B BBBB$BBBBB.BBMBסBfBBBBB=BҞBfBBB.BǜBaBBB8BךBvBBB\BBBRBBBMBBB\B BBvB)BBBWBB͓BBMBBגBBaB)BB‘BBaB3BBܐBBBfBBBBBBBBBvBaBMB=B.BBBBBBBBBBBBBBBͤBWBBkBBBBB.BBRBBvBBB3BǝB\BBB)BǛBaBBBBBBB)B͘BvBBǗBpBBǖB{B)BܕBBBBBBkB$BBBaBBBBkB3BB͑BBfB8B BܐBBBaB=BBB׏BBBBkBRB=B.BB BBBBB׎B׎BҎBҎBҎB׎B܎BBBBBBB.BBGBסBaBBBBB8B͞BaBBB$BBWBBB)BǚBfBBBMBBB=BBB8BBBBBBB\BBǔBB8BBBpB.BBB{B=B BґBBkB8B BܐBBBaB8BBBҏBBB{BaBGB3BB BBBBҎB͎BŽBBBBBBBŽB͎B׎BBWBBkBBBBB.BBMBܟBkBBB)BBWBBBBBWBBB3BҙBvBBBaB BB\BBBaBB•BvB)BܔBBMBB“BB=BB’BBMBBܑBBpB=BBBBBaB8BBB͏BBBpBRB=B$BBBB׎B͎BBBBBBBBBBBBBBǎBBB3BBMBסBfBBBBB8BǞB\BBBBBMBBBBB\BBB=BBB.BҗB{B)BҖBB.BܕBBBBBBaBBדBBRBBҒBBWBBBB{BGBBBBB\B3BBBǏBBBfBGB.BBBB׎BǎBBBBBBBBBBBBBBBBBBpBBBBB.BBMBܟBkBBB$BBRBBBBBMBBB$BǙBfB BBRBBBGBBBMBBB\BB”B{B3BBBaBBBBfB)BBBBMBBBBBaB3B BBBB{B\B=B$B BB܎BǎBBBBB{BpBkBfBaBaBaBaBfBkBvB{BBBB8B¢BMBܡBfBBBBB3BǞB\BBBBBGBB{BBBRBBB3BҘBvBB—BkBBBkBBǕB{B)BܔBBGBBBvB3BBBpB8BB‘BBRBBBBBaB3B BBBBvBRB3BBBB͎BBBBBpBfB\BRBMBGBBBBBBBBBGBRBWBaBpB{BvBBBBB.BBMBܟBkBBB$BBMBB{BBBBBB{BBB\BBBBBBB8BBB8BBBGBBBaBBғBBBBB’BBBBB͑BB\B$BBBBaB3B BBBBpBMB.BBB׎BBBBBkB\BMBBB8B3B)B)B$B$B$B)B.B3B=BGBRBaB=BǢBRBBkBBBBB3BǞBWBBBBBBBܛBvBBBGBBB$BǘBkBBB\BBBWBBBaBB”B{B.BBBWBBҒBBRBBבBBfB.BBǐBBaB3B B܏BBBfBGB$BBBǎBBBBkBWBGB8B.BBBB BBBBB BBBB.B8BGBBBBB3B BMBܟBkBBBBBGBܜBvB BB=BךBvBBBMBBB3BחBB$B͖BvB$BҕBB.BBBGBBBkB)BBBaB$BBBpB8BB͐BBfB8B B܏BBBfB=BBB܎BBBBpB\BGB3B$BB BBBBBBBBBBBBBBB.B͢BWBBpBBBBB3BǞBWBB{BBB=BқBkBBB=BܙB{BBB\BBBGBBBBBBBMBBBaBBǓBB8BBBpB.BBB{B=BBҐBBkB8B B܏BBBaB8BBBҎBBB{BaBMB3BBBBBB܍BҍB͍BǍBǍBBǍBǍB͍BҍB܍BBBBBBBB8B BRBBkBBBBBGBܜBpBBB8BҚBkBBBBBBB$BǗBkBBBfBBBfBBǔB{B.BBBMB B’BB=BB‘BBGBBאBBpB=B B܏BBB\B3BBBǎBBBkBRB8B$BBBB܍B͍BBBBBBBBBBBBB͍B׍BBB\BBpBBBBB8BǞBWBB{BBB8B͛BfBBB3BҙBkB BBMBBB8BܖBB.BܕBB3BBBGBBBfBBגBBRBB͑BBWBBBBvBBBBBBBWB.B BBŽBBBaBGB)BBBB׍BBBBBBBBBBBBBBBBBB͍B܍B$BB8BǠBRBBpBBBBBBBלBkBBB.BǚBaBBB8BטBvBBB\BBBRBBBRBBBaBBǓB{B3BBBaBBܑBBaB$BBB{BGBBBBBWB.BB܎BBBvBWB8BBBB׍BBBBBB{BpBkBfBaBaBaBfBkBpB{BBBBBBBvBBBBB8BǞBWBB{B BB3BǛBaBBB)BǙBaBBB=BBB)B͖BvBBǕBpBB͔B{B.BܓBBGBBBpB.BBBkB.BBBBMBBBBBWB)BB׎BBBkBMB.BBB܍BBBBB{BkBaBWBMBGBBBBBBBBBGBMBRB\BfBvBBBBB=B͠BWBBpBBBBBBBҜBfBBB)BšB\BBB.BǘBfB BBMBBB=BBB=BBBGBBBaBB͒BBBBBB{B=BBBBRBBBBBWB)BB׎BBBaBBBBBB͍BBBBvBaBRBGB=B3B)B$BBBBB$B)B3B=BGBWBfBvBB{BBBBB8BǞBWBBvB BB.B›B\BBB$BBWBBB3BҗBvBBBaB BB\BBBaBB“BvB.BBBRBB͑BBGB B͐BB\B$BBBBWB)BBҎBBB\B8BBB׍BBBBvBaBMB=B.BBBBBBBBBBB BBB)B8BGB\BpBBB͠B\BBvBBBBB=BҜBfBBB$BBRBBB$BB\BBB=BBB.BҕB{B)BҔBB.BBBBBBBfBBܑBBWBBܐBBaB)BBBBWB)BB͎BB{BWB.B BB͍BBB{BaBMB8B$BBBBBBB܌B܌B܌B܌B܌BBBBB BB)B=BRB BB$BB=BǞBWBBvB BB.B›BWBBBBBMBBB$BǗBfB BBRBBBGBBBMBBB\BBǒB{B3BBBfB$BBBkB3BBBB\B)BB͎BBvBMB)BBBBBBkBRB8B$BBBBB׌B͌BŒBBBBBBBŒBnjBҌB܌BBBBB3BҠBaBBvBBBBB=BҜBaBBBBBMBBBBBRBBB.BҖBvBB•BfBBBfBBǓBvB)BܒBBGBBBvB3BBBvB=BBǏBBaB.BB͎BBpBGB$BB׍BBBvB\B=B$BBBB׌BnjBBBBBBBBBBBBBBB͌B܌BBBBB)BB=B͞BWBBvBBB)BBRBB{BBBGBB{BBBWBBB=BBB3BܔBB3BBBBBBB\BB͑BBBBBBBGB BҏBBaB.BB͎BBpBGBBB͍BBBkBMB.BBBBҌBBBBBBB{BvBpBpBpBvBvBBBBBBBҌBBBaBB{BBBBB=BҜBaBBBBBGBܙBvBBBGBBB$B–BfB BBWBBBRBBB\BB’BvB)BBBWBBҐBBRBB܏BBkB3BB͎BBpBBBBBǍBBB\B=BBBBҌBBBBB{BkBaB\BRBMBMBMBMBRBWB\BfBpBBBBBnjB܌B)BBBB͞B\BBvBBB)BBMBBvBBB=BטBpBBBMBBB.BҕB{BBǔBpBBǓBvB)BגBBBBBBfB$BBB\BBBBpB8BBҎBBkB=BBBBBvBRB3BBB܌BŒBBBBpB\BRBBB=B3B.B)B)B)B)B.B3B=BBBRB\BkBBBBŒBBB BB$BB=B͜BaBBBBBBBיBpBBB=BחBvBBBWBBBBBBB=BBBBBBBWB B‘B{B3BBBkB.BBBvB=B BҎBBpB=BBBBBkBGB$BBBnjBBBBkBWBGB8B)BBBB BBBBB BBB$B.B=BMBaBvBBBBGBҞB\BB{B BB)BBMBBpB BB8BҘBkBBB=BܖBBB•BfBBB\BBBaBBBpB$BבBBGBBB{B8BBBBGBB׎BBpB=BBBBBfB=BBB׌BBBBkBWB=B.BBBBBBBBB܋BBBBBBBBB.BBBWBkBBBBB$BBBBҜBaBBBBB=BҙBfBBB3B͗BkB BBGBBB3BהBB)BғB{B)BגBB=BBB\BB͐BBGBBǏBBMBB܎BBpB=BBBBB\B8BBB͌BBBpBWBBB)BBBBB׋B͋BNjBBBBBBB‹B͋BҋBBBBBB8BMBfBMBמBfBBB BB)BBMBBpBBB3B͘BfBBB8BזBvBBBWBBBMBBBMBBBWB BBvB)BBB\BB׏BB\BBBB{BBBBBBB\B3B BBŒBBBfBGB.BBBB܋B͋BBBBBBBBBBBBBBB͋B܋BBBB3BMBBB.BBGBҜBaBBBBB=BҙBfBBB.BǗBaBBB=BܕBB$BǔBkBBBkBB’BpB$BבBB=BBBkB)BBBfB)BBBBGBBBBBWB.BB܌BBBvBWB8BBBB׋B‹BBBBBB{BvBpBpBpBvBvBBBBBBB͋BBBB.BܞBfBBBBB)BBMBܚBpBBB.B˜B\BBB.BǖBfBBBGBBB8BBB3BBB=BBBWB BB{B8BBBpB3BBBBMBBBBBRB)BB׌BBBfBGB)BBB׋B‹BBBB{BkBaB\BRBMBMBMBMBMBRB\BaBkB{BBBB‹B׋BBBB3BBGBלBfBBBBB8B͙BaBBB$BBWBBB.B͕BpBBB\BBBRBBBWB BBkBBאBBGBBBB=BBŽBBRBBBBBRB$BB͌BBB\B=BBBBNjBBBBpBaBRBBB8B3B)B)B$B$B$B)B.B8B=BMBWBfB{BBBBҋBBkBBBBB.BBMBܚBkBBB)BBWBBB$BB\BBB8BܔBB$B͓BvBBǒBvB$BґBB8BBB\BBҏBBMB B͎BBWBBBBBRB$BBnjBBvBRB.BBBҋBBBBkBWBGB8B)BBB BBBBBBB BBB)B3BBBWBkBBBB͋B3BBMBלBfBBBBB3BǙB\BBBBBRBBB$B•BaBBBGBBB=BBB=BBBRBBBkB$BBBWBB׎BBaB$BBBBRBBBŒBBpBGB$BBBBBBkBWBBB.BB BBBBB܊B׊B׊B׊B׊B܊BBBBBB$B3BGBaBvBBBBBBB.BBMBܚBkBBB$BBMBBBBBMBBB)B͔BpBBBaBBB\B BBfBB͐BB8BBBfB$BBBfB.BBBBRBBBŒBBkBBBBBҋBBBvB\BBB)BBBBBҊBNJBBBBBBBBBBNJBҊBBBBB)B=BWBpBBBRBܜBfBBBBB3BǙBWBBBBBGBB{BBBRBBB8BܓBB)BҒB{B)BґBB3BBBMBBBvB3BBBpB3BBBBRBBBBBfB8BBBNjBBBfBGB.BBBB׊BNJBBBBBBBBBBBBBBBB͊B܊BBBB8BRBpBBBB3BBMBܚBkBBBBBGBBvBBBBBBBBB\BBBMBBBGBBBMBBBfBBҏBBBBBBB=BBǍBBWB$BBBBaB3B BBBBvBWB8BBBBҊBBBBBBvBkBfBaBaBaBaBfBkBvB{BBBBB͊BBBB3BMBWBBkBBBBB3B™BWBB{BBB=BזBpBBBGBBB)B͓BpBBBfBBBfBBǐB{B.BBBWBB͎BBMB BҍBB\B$BBBB\B.BB܋BBBfBGB)B BBҊBBBBBpBaBWBMBBB=B8B8B8B8B=BGBMBWBfBpBBBBŠB׊BBB.BBB3B›BMBܚBkBBBBBGBܗBpB BB8BוBpBBBMBBB8BܒBB.BבBB3BBBGBBBfBB܎BBWBB׍BBaB)BBBB\B.BBҋBBB\B8BBB܊BBBBvBfBRBBB8B)BBBBBBBBBB)B3B=BMB\BpBBBBҊBBBBpBBBBB3B™BRBB{BBB8BҖBkBBB8BהBvBBB\BBBMBBBMBBB\BBB{B3BBBfB$BBBkB.BBŒBB\B)BB͋BB{BRB.B BBNJBBBvBaBMB8B)BB BBBBBBBBBBBB BB)B8BMBaB{BBB͊BBB8B›BRBܚBkBBBBBBBחBkBBB3B͕BfBBBBBBB$B͒BpBB‘BkBBǐBvB)B܏BBGBBBpB.BBBpB8BBŒBB\B)BBNjBBpBGB$BB܊BBBBaBMB3BB BBBB׉B͉BljB‰BBB‰B‰BljB҉B܉BBBBB)B=BWBpBBB͊BvBBBBB3B™BRBBvB BB3BǖBaBBB.B͔BkB BBMBBB8BBB8BBBBBBB\BBǎBB=BBB{B=BBnjBB\B)BBNjBBkBBBBB͊BBBkBRB3BBBBB͉B‰BBBBBBBBBBBBB‰B͉BBBBB3BMBkBBB=BǛBRBBkBBBBB=BҗBfBBB)B•B\BBB3BғBpBBB\BBBWBBB\B BBpB$B܎BBMB BǍBBGB BҌBBaB)BB‹BBfB8BBBŠBB{B\B=B$BBB׉B‰BBBBBBvBpBkBkBkBpBvB{BBBBBB͉BBBB.BGBfBBBBBB3B™BRBBvBBB.B–B\BBB$B”B\BBB=BܒBB)B͑BvBB͐BvB$B׏BB=BBBaBB׍BBRBB׌BBaB.BB‹BBaB3B BBBBpBMB.BBB׉B‰BBBBvBkB\BRBMBGBBBBBBBGBMBRB\BfBvBBBBB҉BB B)BGBfB͛BWBBpBBBBB=B͗BaBBB$BBRBBB$B“BaBBBMBBB=BBBBBBBRBBBpB)BBBaBBBBkB.BB‹BBaB3BB׊BBBaB=BBBB‰BBBBkBWBGB=B3B)B$BBBBBB$B)B3B=BMB\BpBBBBljBBB$BGBBBB8BǙBRBBvBBB)BBRBBBBBRBBB.B͒BpBBBaB BB\B BBkBBҎBB=BBBkB)BBBpB8BBNjBBaB.BBҊBBBWB3BBB͉BBB{BfBRB=B.BBBBBBBBBBBBB BB)B8BGB\BpBBB‰BBB$B\BBpBBBBB=B͗BaBBBBBMBBBBBWBBB8BܑBB)BҐB{B)B׏BB3BBBRBBB{B8BBB{B=BBNjBBaB.BB͊BBvBMB$BB܉BBBBfBMB8B$BBBBB܈B҈B͈BLjBLjBLjBLjB͈B҈B܈BBBBB$B8BMBfBBBBBB$BB8BǙBWBBpBBB)BBMBB{BBBGBBBBBaBBBMBBBGBBBMBBBfBBҍBBGBBŒBBBB B͋BBaB.BBNJBBpBBBBB҉BBBpBRB8BB BBB҈BˆBBBBBBBBBBBBBLjB׈BBBB)BBB\B{BBBBBvBBBBB=B͗B\BBBBBBBܔBvBBBGBBB)B͑BpBBBfBBBfBBǎB{B.BBBWBB͌BBMBB׋BBaB.BBNJBBfB=BBB‰BB{B\B=B$B BB܈BLjBBBBBB{BvBpBpBpBvB{BBBBBBˆB׈BBBB8BWBvBBBB=B͙BWBBvBBB$BBMBBvB BB=BדBvBBBMBBB8BܐBB.B׏BB3BBBBBBBfBB܌BBWBB܋BBfB.BBNJBBfB8B BBBBpBMB.BBB׈BˆBBBBvBkBaBWBMBGBGBGBGBMBRBWBaBkB{BBBBLjB܈BBB3BRBvBB{BBBBB=B͗B\BBBBB=BҔBkBBB=BגBvBBB\BBBMBBBMBBB\BBB{B3BBBfB$BBBkB3BBNJBBaB3BB׉BBBaB=BBBBˆBBB{BkBWBGB=B3B)B$BBBBBB$B.B8BBBRBaBvBBBB҈BBB.BRBvBBB͙B\BBvBBB$BBGBܕBpBBB3B͓BfBBBBBBB$BǐBpBBBkBBǎBvB$B׍BBBBBBpB.BBBvB8BBNJBBaB.BB҉BB{BWB.BBB͈BBB{BaBMB=B)BBBBBBBBBBBBBBB)B=BMBaB{BBB͈BB B.BRB BB$BB=B͗B\BBBBB8B͔BfBBB3B͒BkB BBMBBB8BBB3BBB=BBBWBBnjBB=BBB{B=BB͊BBaB.BB͉BBvBMB$BB܈BBBBaBGB3BB BBBBׇB͇BLJB‡B‡B‡BLJBLJB҇BׇBBBBB$B8BRBkBBBˆBB B.BҙBaBB{BBB$BBGBוBkBBB.BǓBaBBB3BґBpBBB\BBBRBBBWB BBkB$B܌BBMB BNjBBGB BҊBBaB.BBljBBkBBBBB͈BBBkBMB3BBBB܇B͇BBBBBBBBBBBBBBLJBׇBBBB)BBBaBBBBB BB)BBBB͗B\BB{BBB3BǔBaBBB)B’BaBBB=BܐBB$B͏BvBBǎBvB$BҍBB8BBB\BBҋBBRBB׊BBfB.BBljBBfB8BBBˆBB{BWB8BBBBׇB‡BBBBB{BvBpBkBkBkBpBvB{BBBBB‡BׇBBBB8BWB{BBˆBBaBB{B BB$BBBBוBfBBB)BBWBBB)B‘BaBBBGBBB=BBB=BBBMBBBpB)BBB\BBBBfB.BBljBBaB3B B܈BBBkBGB)B BB҇BBBBBpBaBWBMBGBBBBB=BBBBBMBRB\BfBvBBBB‡B܇BBB3BRBvBBˆB.BBBBҗB\BB{B BB3B”BWBBBBBRBBB.B͐BpBBB\BBB\BBBfBB͌BB8BBBkB)BBBpB3BBljBBaB.BB׈BBB\B8BBBׇBBBBvBaBRBBB3B)B$BBBBBBBB)B3B=BMB\BpBBBB҇BB B.BRBvBBBB BB$BBBBוBfBBB$BBMBBBBBWBBB8B܏BB)B͎B{B$BҍBB.BBBMBBBvB3BBBvB8BBljBB\B.BB͈BB{BRB)BBBLJBBBvB\BGB3B$BBBBBBBBBBBBB BB$B3BGB\BvBBBLJBB B.BRB{BBGBҗBaBB{B BB.B”BWBBBBBGBBBBB\BBBGBBBBBBBGBBBaBB͋BBBBBBBBBB͉BB\B)BBLjBBpBGBBBׇBBBvB\BBB.BBBBB׆B͆BdžB†BBBBB†BdžB҆B܆BBB BB3BMBfBBB‡BBB.BWBBBB)BBBBҕBfBBBBBGBBvBBBGBBB)BǏBkBBBaB BBfBBŒBvB)BBBRB BNJBBGB B҉BBaB)BBLjBBfB=BBBLJBBBaBGB.BBBB׆B†BBBBBBBBBBBBBB†B҆BBB B$B=B\B{BBBB B3BMBחBaBBB BB.BBRBB{BBB=BבBvBBBMBBB3B܎BB)BҍBB.B܌BB=BBBaBB׊BBRBB׉BBaB.BBˆBBaB8B BBBBpBRB3BBBB͆BBBBB{BpBkBfBaBaBaBfBkBvB{BBBBB͆BBBB3BRBvBBBBBBB)BBGBҕBfBBBBBBBגBpB BB=BܐBvBBB\BBBMBBBGBBBWB BBvB.BBBaBBBBfB.BBˆBBaB.BBׇBBBaBBBBBB͆BBBBvBfBWBMBBB=B8B3B3B8B8BBBGBRB\BkB{BBBB҆BB B.BMBpBBBBܗBfBBBBB.BBMBBvB BB8BґBkBBBBBBB$BǎBkBBBfBBŒBpBBҋBB=BBBkB)BBBkB3BBˆBB\B)BB҇BB{BWB3BBB҆BBBBkBWBGB8B)BBBB B B B BBBB)B3BBBRBfB{BBBdžBBB)BMBpBB‡BB.BBGBוBfBBBBB=BҒBfBBB3B͐BkB BBGBBB3B܍BB.B܌BB8BBBRB BŠB{B8BBBvB8BBLjBB\B)BBLJBBpBGB$BB܆BBBBfBRB=B)BB BBBBB܅B܅B܅B܅BBBBB BB)B=BRBkBBBB܆BB$BMBvBBkBBBBB.BBMBܓBpBBB.BǑBaBBB3BҏBpBBBWBBBMBBBRBBBfBBҊBBBBBBBBBBLjBB\B)BB‡BBkB=BBB͆BBBkBRB8BB BBBׅBͅB…BBBBBBBBBDžB҅B܅BBBB)BBB\BvBBB׆BB$BMB{B3BBGBוBfBBBBB8B͒BaBBB)BB\BBB8B܎B{BBǍBpBBŒBkBB͋B{B.BBBRBB͉BBGB B͈BB\B)BB‡BBaB8B BBBB{BWB=BBBB܅BDžBBBBBBBBBBBBBBBB…BׅBBBB3BMBkBBB׆BB)BRBBBBB.BBMBܓBkBBB)B‘BWBBB)BBaBBBGBBB8BBB8BBBGBBBfBB׉BBRBB׈BBaB)BBBB\B.BB׆BBBfBGB)B BBׅBBBBB{BkBfB\BWBRBRBRBWB\BfBkB{BBBBBׅBB B$BGBfBBB׆BB.B–BMBܕBfBBBBB8BǒB\BBBBBRBBB)BǎBkBBBWBBBRBBB\BBŠB{B.BBBaBB܈BBfB)BBBBWB)BB͆BBBWB3BBBׅBBBB{BfBWBGB=B3B.B)B$B$B$B)B.B8BBBMB\BkBBBBDžBBBB=BaBBB܆B BBBB.BBMBܓBkBBB$BBRBBBBBRBBB3B׍B{BBnjBpBBNjBvB)B׊BBBBBBkB)BBBkB.BBBBWB$BBdžBBpBMB$BBB…BBBvB\BGB8B)BBBBBBBBBBB BB$B3BBBWBkBBBBׅBBB=BaBBBBRBܕBkBBBBB3BǒBWBBBBBGBBBBB\BBBBBBB8BBBBBBBWB B‰B{B8BBBvB8BB‡BBWB$BB†BBfB=BBB҅BBBvB\BBB.BBBBBBׄB҄B̈́BDŽBDŽB̈́B҄BׄB܄BBBBB)BBBWBpBBBͅBBB=BfBBBBB3BBMBܓBkBBBBBGBB{BBBGBBB$BBfB BB\BBB\B BBkBB׉BBGBBB{B=BBLJBBWBBBBBaB3B BB…BB{BaBBB)BBBBׄBDŽBBBBBBBBBBBBB̈́B܄BBBB.BGBfBBBDžBBB=BfBBBkBBBBB3B’BWBB{BBBBB܏BvBBBMBBB.B׌B{B$B͋BvB$BҊBB3BBBWBB͈BBGB B͇BBWBBBBBWB.BBׅBBBkBMB.BBBB̈́BBBBBBvBpBkBkBkBpBvB{BBBBB„BׄBBBB=B\B{BB…BBBBBpBB3B”BMBܓBkBBBBBBBܐBpB BB=B׎BvBBBWBBBBBBBBBBBMBBBfBB܈BBRBB҇BB\B$BBBBRB$BBͅBBB\B8BBBBDŽBBBBvBfB\BRBGBBB=B=B=BBBGBMBWBfBpBBBB„BׄBBB3BRBvBB…BBBGBpBBBBB3B’BRBB{BBB8BҏBkBBB=B܍B{BBŒBfB BB\B BBfBBljB{B3BBBaBB܇BBaB$BBBBRBBB…BBpBMB)BBBDŽBBB{BfBWBBB8B)BBBBBBBBBB)B8BGBWBkBBBBDŽBBB)BMBvBBDžBB$B8B”BRBܓBkBBBBBBBאBkBBB3B͎BfBBBBBBB.B׋B{B)BҊBB.BBBGBBBkB)BBBfB.BBBBMBBBBBfB=BBB҄BBB{BaBMB8B$BBBBBBBBBBBBBB BB)B=BRBkBBBB܄BB$BMBvBBͅBBBBBB3B’BRBBvB BB3BǏBaBBB3B͍BkBBBRBBBGBBBGBBB\BBLjBB8BBBpB3BBBBMBBBBB\B3B BB„BBBaBGB.BBBBB׃BǃBƒBBBBBBBBǃB҃B܃BBBB)B=B\BvBBBׄBB$BMBvBB҅B”BMBܓBfBBBBB8B͐BaBBB$BBWBBB.BҌBpBBBaB BBaBBBkBB׈BBBBBBvB8BBBBMBBBBBRB$BBׄBBBkBMB.BBBB҃BƒBBBBBBBBBBBBBBBƒB҃BBBB.BMBkBBBׄBB)BRBBBBBB.BBMBܑBkBBB)BBRBBBBBWBBB=B܋BB)BҊB{B)B׉BB8BBBWBBLJBBBBB†BBMBBBB{BMBBBDŽBB{BWB8BBBB̓BBBBBvBfBaB\BWBRBRBWB\BaBkBvBBBBB҃BBB$BBBaBBB҄BB)BWBBRBܓBkBBBBB3BǐB\BBBBBMBBB$BŒBaBBBMBBBGBBBMBBBfBBׇBBMB B͆BBRBBBBvBGBBBBBkBGB$BBB̓BBBBpB\BRBBB8B.B)B$B$B$B)B.B3B=BGBWBfB{BBBB܃BBB8B\BBBׄBB.BaBBB3BBMBܑBkBBB$BBMBB{BBBMBBB)B͋BpBBBfBBBfBBLjB{B3BBB\BB׆BBWBBBBvBBBBBBBaB8BBB҃BBBBfBRB=B.BBBBBBBBBBBBBB)B=BMBaB{BBB̓BBB3BWBBBׄB B8BBkBBBBB3BBWBBBBBBB܍BvBBBRBBB8B܊BB.B׉BB3BBBGBBBkB$BBBaB$BBBvBBBB܄BBBWB.BBBBBBfBMB3BB BBBBׂB͂BǂBǂBǂBǂBǂB҂BׂBBBBBB8BMBfBBBƒBB B.BWBBBBBB3B’BMBܑBkBBBBBGB܎BpB BB=B܌B{BBB\BBBMBBBMBBB\BB‡B{B3BBBkB)BBBvBBB BׄBB{BMBBB҃BBBkBMB3BBBB܂BǂBBBBBBBBBBBBB‚B҂BBB B$B=BWBvBBB܃BB.B\BBBBpBBBBB3BBRBB{BBB=BҍBkB BBBBBB$BNJBkBBBfBBˆBpB$BׇBBBBBBvB3BBB{BBB BׄBBpBBBBBƒBB{BWB8BBBB҂BBBBBBvBpBkBfBfBfBkBpB{BBBBBǂB܂BBB.BMBkBBB܃BB3BaBB„B8B’BRBܑBkBBBBBBB׎BkBBB3BҌBkB BBMBBB8B܉BB3B܈BB=BBBWBBdžBB=BBBBGBBׄBBpB=BBBBBkBGB$BBB͂BBBBvBfBWBMBBB=B8B8B8B8B=BBBMBWBfBvBBBBǂBBBBBBfBBB܃B B8BfBBBBBB3BBRBBvB BB3B͍BaBBB3BҋBpBBBWBBBMBBBRBBBkBB׆BBMB BDžBBMBBׄBBkB8B B܃BBB\B8BBB҂BBBBkBWBBB3B)BBBB BBB BBBB)B8BGBWBkBBBBׂBBB8BaBBBBB=BpBǒBRBBkBBBBB=BҎBfBBB)BŒBaBBB8B܊B{B$BljBpBBˆBpBB͇BB3BBBWBB҅BBRBB܄BBkB8BB҃BB{BMB)BB܂BBBBfBMB8B$BBBBBB܁BׁBׁBׁBׁB܁BBBB BB)BBBWBpBBBǂBBB3B\BBBBBGBBBB3BBRBBvBBB.BB\BBB)B‹BaBBBGBBB8BBB8BBBGBBBfB$B܅BB\BBBBkB3BB̓BBpBBBBB͂BBBkBMB3BBBBBҁBBBBBBBBBBBB́B܁BBBB)BBBaB{BBBB B3B\BBBBBWBBpBBBBB=B͎BaBBB$BBWBBB)BNJBkBBBWBBBRBBB\BB†B{B3BBBfB$BBBpB8BB̓BBkB=BBBBBvBWB8BBBBҁBBBBBBB{BvBvBvB{BBBBBBBҁBBBB3BRBpBBBB B3BaBBƒBBBB8BBRBBpBBB)BBRBBBBBWBBB3B׉B{BBLjBpBBLJBvB)B܆BBBBBBpB.BBBpB8BB̓BBfB3BB܂BBBfBBB$BBB́BBBB{BkBaBWBMBGBGBBBGBGBRBWBaBpBBBBBҁBBB$BGBfBBB܂B B8BfBB̓BBpBBBBB8B͎B\BBBBBMBBBBB\BBBBBBB8BBB=BBBWB B…BB8BBB{B=BB̓BBaB.BB҂BB{BWB3BBBҁBBBBkB\BGB=B.B$BBBBBBBB)B3B=BMBaBvBBBB܁BBB=BaBBBBB=BpBBB8BǐBRBBpBBB$BBMBB{BBBGBBB$B‰BfB BBWBBB\B BBkBBׅBBGBB„BBBBB̓BBaB)BBǂBBpBGB$BB܁BBBBfBRB8B)BB BBBBBBBBBBBBBB3BGB\BvBBB́BBB8B\BBBBBGB{BvBBBBB8BǎB\BBBBBBB܋BvBBBMBBB.B҈B{BB͇BvB$B҆BB3BBBWBB̈́BBMB B҃BBaB)BB‚BBfB=BBBǁBBBfBMB3BB BBB׀B̀B€BBBBBBB€BǀB׀BBBBB.BGBaBBBBB B3B\BBBBBRB=BǐBWBBpBBB$BBGB܌BpB BB=B׊BvBBBRBBBBBBB=BBBMBBBfBB܄BBRBB׃BBaB)BB‚BBaB3BBBBBpBRB3BBBB׀B€BBBBBBBBBBBBBBB€B׀BBBB3BRBpBBBB B3BaBB‚BB)BBBBB8BǎBWBB{BBB8BҋBkBBB=B܉B{BBBaB BB\BBBaBBDžB{B3BBBaBB܃BBfB)BBBBWB)BBҁBBBaB=BBBB̀BBBBBpBfB\BWBRBRBRBWBWBaBkBvBBBBBҀBB B$BGBfBBB܁B B3BfBB͂BB͐BWBBpBBBBBBB׌BkBBB3B͊BfBBBBBBB.B҇B{B$B͆B{B)B܅BBBBBBkB)BBBkB.BBBBWB$BBǁBBvBMB)B BB̀BBBBpB\BMBBB3B.B$B$BBB$B)B.B8BGBWBfB{BBBB܀BBB=BaBBB܁B B8BkBBׂBBBB8BǎBWBB{B BB3B͋BaBBB.B͉BkB BBRBBBBBBBBBBBWB B„B{B3BBBpB3BBBBRBBBBBfBBBBB׀BBBBfBRB=B)BBBBBBBBBBBB BB$B8BGBaBvBBB̀BBB3B\BBBBBBBvBB\BBvBBBBBBBҌBfBBB)BŠB\BBB3B҈BvBBBaB BBaBBBkBBׄBBBBBB{B8BB‚BBRBBBBB\B3B BB€BBBfBMB3BB BBBBBBB{B{B{BBBBBBBBB3BGBaBBBBB B.B\BBBBBMBB$BB=BǎBWBBvB BB.B‹B\BBB$BB\BBB=BBB)B҆B{B)BׅBB8BBBWBBǃBBBBBǂBBRBBBBBWB)BB׀BBBkBMB3BBBBBBfBRB=B)BBBBBB3B=BRBqBBBBBB3BRBpBBB܀BB.B\BBBB$B\BBvBBBBB=BҌBaBBB$BBRBBB$BˆBaBBBMBBBGBBBMBBBfBB׃BBMB B͂BBWBBBBBMBBBǀBB{BWB8BBBBBfBHBB B~B~B~B~B~B~B~B~B~B~B~BB3BRB{BBBB$BBBfBBB׀BB.B\BBBB.BB=B͎BWBBvBBB)BBRBBBBBRBBB)B͇BpBBBaBBBfBBDŽB{B.BBB\BBׂBB\BBBB{BGBBBBBkBGB$BBBB\B3BB~B~B~B~Bq~Bf~B\~BR~BR~B\~B\~Bq~B{~B~B~B~B~BBHB{BBBB8B\BBB׀BB3BfBB́BBB BB$BBBBҌBaBBBBBMBBBBBWBBB=BBB.BׅBB3BBBGBBBkB$BBBaB$BBB{BGBBBBBaB8BBBBfB)B~B~B~B{~B\~B=~B)~B~B~B}B}B}B}B~B ~B~B3~BR~Bq~B~B~B~BB\BBB B.BWBBB׀BB8BkBB܁BGBҎB\BB{B BB)BBRBB{BBBGBBBBBaBBBMBBBMBBB\BBƒB{B3BBBkB.BBB{BGBBBBBWB.BBB{B=BB~B~Bf~B=~B~B}B}B}B}B}B}B}B}B}B}B}B}B}B}B~B3~Bf~B~B~B~B3B{BBB)BRBBB܀BBBB{BBBB$BBBBҌBaBBBBBBB܉BvBBBGBBB)B͆BpBBBkBB„BpB$B׃BBBBBBvB3BBBBGBB܀BB{BMBBBBRBB~B~B\~B)~B~B}B}B}Bq}B\}BH}B=}B3}B)}B)}B3}B=}BH}B\}Bq}B}B}B}B~B3~Bf~B~B~BB\BBB$BRBBBBBMBB׎BaBB{B BB)BBMBBvB BB=B׈BpBBBMBBB8BBB3B܄BB=BBBWB BǂBB=BBBBGBB׀BBpBBBBBB3B~B~Bf~B)~B}B}B}Bf}BH}B)}B }B|B|B|B|B|B|B|B|B|B}B}B3}BR}B{}B}B}B ~B=~B{~B~B BRBBB$BRBBBB$B\BB)BBBBҌBaBBBBB=B҉BkBBB8BׇBvBBB\BBBRBBBRBBBfBBׂBBGBBǁBBMBB׀BBpB=BBBfBB~B~B=~B~B}B}B\}B)}B}B|B|B|B|B{|Bq|Bf|Bf|Bf|Bq|B{|B|B|B|B|B|B}BH}Bq}B}B}B~Bf~B~B~BHBBB)BWBB€BB3BfBB{B BB)BBGB܊BpBBB3B͈BfBBB=B܆BB$BDžBpBB„BpBB̓BB3BBBWBBҁBBRBB܀BBkB8BBBRBB~B\~B~B}B}B\}B}B|B|B|B{|B\|B=|B)|B|B |B|B|B|B |B|B)|B=|BR|Bq|B|B|B|B}BH}B}B}B ~BR~B~B~B=BBB.BaBB̀BB.BBBBҌBaBBBBB8B͉BaBBB.BLJBfBBBGBBB8BBB8BBBGBBBfBB܁BBWBB܀BBkB8BBBHB~B~BH~B}B}Bf}B)}B|B|B|B\|B3|B|B{B{B{B{B{B{B{B{B{B{B{B{B{B|B3|B\|B|B|B|B)}Bf}B}B}B=~B~B~B=BBB3BkBB܀BBB BB)BBGB׊BkBBB)BˆB\BBB.B͆BpBBBWBBBRBBB\BB‚BvB.BBBaB$BBBkB8BBB3B~B{~B)~B}B}BH}B}B|B|BR|B|B{B{B{B{Bq{B\{BR{B={B={B={B={BH{BR{B\{B{{B{B{B{B|B)|B\|B|B|B }BR}B}B}B3~B~B~BHBBB=BvBBBGBҌBaBBBBB3BljB\BBB$BBWBBB8BׅB{BBDŽBpBBǃBvB$BׂBBBBBBkB.BBBpB8BBB)B~Bq~B~B}Bq}B}B|B|B\|B|B{B{B{Bf{B={B){B {BzBzBzBzBzBzBzBzB{B{B3{BR{Bq{B{B{B|B3|Bq|B|B|B=}B}B}B3~B~B~BRBBBMBBBBB)BBGB׊BfBBB$BBRBBB$BB\BBBBBBB8BBB=BBBRB BB{B8BBBvB8BBB)B~B\~B~B}BR}B}B|Bq|B)|B{B{B{{BR{B){B{BzBzBzBzBzB{zBqzBqzBqzB{zBzBzBzBzBzB{B={Bf{B{B{B |BR|B|B|B)}B{}B}B3~B~B~B\BBB\BMB׌BaBBBBB.B‰BWBBBBBMBBB$BDžBfB BBWBBBWBBBfBBҁBBBBBBB=BBB)B~BR~B}B}B=}B|B|BH|B|B{B{BH{B{BzBzBzBqzBRzB=zB)zBzBzB zB zBzBzB)zB=zBRzBfzBzBzBzB {B={Bq{B{B{B3|B|B|B}B{}B}B3~B~B BqBB.BBB)BBGB׊BfBBBBBGBB{BBBMBBB.B҄B{BBǃBvBB͂BB3BBBRB BǀBBGB BB)B~BR~B}B}B)}B|B{|B)|B{B{B\{B{BzBzB{zBRzB)zB zByByByByByByByByByByByByB zB)zBRzB{zBzBzB{BR{B{B{B)|Bq|B|B}B{}B}BH~B~BBBB܌BfBBBBB.BBRBB{BBBBB܆B{BBBWBBBBBBB=BBBGBBBaBB׀BBRBBB)B~BH~B}B{}B}B|Bf|B|B{B{{B3{BzBzB{zBHzBzByByByByBqyB\yBRyBHyB=yB=yBHyBRyB\yBqyByByByByBzBHzB{zBzBzB3{B{{B{B|Bq|B|B}B}B}BR~B~B3BBB.BBGB׊BfBBBBBBBׇBpB BBBB܅B{BBBaB BBWBBBaBBBvB.BBB\BBB3B~BH~B}Bq}B }B|BR|B{B{BR{B {BzBzBHzB zByByByB\yB=yByB yBxBxBxBxBxBxBxByByB)yBHyBfyByByByBzB\zBzBzB{Bq{B{B|Bf|B|B)}B}B~Bf~B~B\BkBBBBB.BBMBBvB BB8B҆BkB BBBBBB.B҃B{B$B͂B{B)BׁBB=BBBfB$BBHB~BR~B}Bq}B }B|B=|B{B{B={BzBzB\zBzByByBqyBHyByBxBxBxBxBxBxB{xB{xB{xB{xBxBxBxBxBxB yB)yB\yByByByB3zB{zBzB {B\{B{B |Bq|B|B3}B}B~B~BB3BBGB׊BfBBBBB=B҇BkBBB3B҅BkBBBRBBBBBBBBBBBRBBBvB.BBRB~B\~B}Bq}B}B|B3|B{B{{B{BzB{zB3zByByBqyB=yB yBxBxBxBqxBRxB=xB)xBxBxBxBxBxB)xB3xBHxBfxBxBxBxBxB)yB\yByByBzBfzBzB{B\{B{B|Bq|B|BH}B}B3~B~BBBBB.BBMB܈BpBBB3BdžBaBBB3BׄBvBBBaB BB\B BBfBB̀BB=BBfB~Bf~B}B{}B}B|B)|B{Bf{B {BzBfzBzByByBHyB yBxBxBqxBHxB)xBxBwBwBwBwBwBwBwBwBwBwBwBxBxB=xBfxBxBxByB=yB{yByB zBRzBzB{BR{B{B|B|B|B\}B}BR~B‹BMB׊BfBBBBB8B͇BaBBB)B…BaBBB=BBB)B҂B{B$BҁBB3BBBMBBBB{~B}B{}B }B|B)|B{B\{B{BzBHzByByB\yByBxBxBfxB3xB xBwBwBwBwBqwB\wBRwBHwBHwBHwBRwB\wBqwBwBwBwBwB xB3xBfxBxBxByB\yByByBHzBzBzB\{B{B)|B|B }B{}B}BBBB.BBMB܈BkBBB)B†BWBBB)BDŽBfBBBMBBBBBBBGBBBaBBBB~B ~B}B}B|B)|B{BR{BzBzB3zByByB=yBxBxBqxB3xBxBwBwB{wBRwB3wBwB wBvBvBvBvBvBvBvB wBwB=wB\wB{wBwBwB xB=xB{xBxByBHyByByB=zBzB{Bf{B{B=|B|B)}B}BMB܊BfBBBBB3BLJB\BBBBBRBBB.B̓BpBBBaB BBaBB€BvB)BB3B~B~B}B}B|B)|B{BR{BzBzBzByBqyByBxBxBHxBxBwBwBfwB3wB wBvBvBvBvBvBvB{vB{vB{vBvBvBvBvBvBvBwBHwBqwBwBwBxB\xBxBxB=yByByB=zBzB {Bq{B{BR|B|BH}BBB.BBMB܈BkBBB$BBRBBBBBWBBB8B܂BB)BҁB{B)B׀BB=BBRB~B3~B}B)}B|B3|B{BR{BzB{zBzByB\yByBxBfxBxBwBwB\wB)wBvBvBvBvBfvBHvB3vB)vBvBvBvBvBvB3vB=vB\vBqvBvBvBvBwBHwB{wBwBxB=xBxBxB3yByByBHzBzB{B{B{Bq|B|B܊BkBBBBB3B‡BWBBBBBGBBBBB\BBBGBBBGBBBRBBqB~BR~B}B=}B|B=|B{BR{BzBqzB zByBHyBxBxBHxBwBwBqwB3wBvBvBvBfvB=vBvBvBuBuBuBuBuBuBuBuBuBuBuBvB3vBRvBvBvBvBwB\wBwBwB3xB{xBxB)yByByBRzBzB){B{B|B|BB3BBMB܈BkBBBBBGBBvBBBGBBB$BǂBkBBBaBBBkBBBBq~B}B\}B|BR|B{B\{BzBqzB zByB=yBxBxB)xBwBwBHwBwBvBvBRvB)vBuBuBuBuB{uBfuB\uBRuBHuBHuBRuBRuBfuB{uBuBuBuBuBvBRvBvBvBvB=wBwBwBxBqxBxB)yByByBfzBzBH{B{B=|BkBBBBB3B‡BRBB{BBB=BׄBpBBBMBBB3BׁBB)B׀BB3BB)B~B~Bq}B|Bf|B{Bf{BzB{zB zByB3yBxBqxBxBwBqwBwBvBvB\vBvBuBuBuBfuBHuB)uBuBuBtBtBtBtBtBtBuBuB)uBHuBfuBuBuBuBvB\vBvBvB)wBqwBwBxBqxBxB3yByB zB{zBzBf{B{B8B‰BRB܈BkBBBBBBB܅BpB BB=B׃BvBBBWBBBMBBBMBB\B~B)~B}B }B{|B{B{{BzBzB zByB3yBxBfxB xBwB\wB wBvBqvB3vBuBuBuBRuB)uBuBtBtBtBtBtBtB{tB{tBtBtBtBtBtBtB uB3uB\uBuBuBvB=vB{vBvBwBfwBwBxBqxBxB=yByBzBzB {B{BBBBB3B‡BRBB{B BB8B҄BkBBB=B܂BB$BǁBkBBBfBBB~BR~B}B)}B|B|B{B {BzBzByB3yBxB\xBwBwB=wBvBvBRvB vBuBuBRuBuBtBtBtB{tB\tBHtB3tB)tBtBtBtBtB)tB3tBHtBftBtBtBtBtB)uBfuBuBuBvBfvBvB wB\wBwBxB{xBxBRyByB=zBzB3{BljBRBBkBBBBBBBׅBkBBB3B̓BkBBBGBBB3B܀BB.BBB{~B}BH}B|B)|B{B{BzBzByB3yBxBRxBwBwB3wBvBvB3vBuBuB\uBuBtBtBtBRtB3tBtBsBsBsBsBsBsBsBsBsBsBsBtBtBHtBqtBtBtBuB=uB{uBuB vBRvBvBwB\wBwBxBxBxBfyByB\zBzBBBB3B‡BRBBvB BB3BDŽBaBBB3B͂BpBBBWBBBMBBHB~B ~Bq}B|BH|B{B3{BzB)zByB3yBxBRxBwBwBwBvBfvBvBuB{uB3uBtBtB{tBHtBtBsBsBsBsBqsBfsBRsBRsBHsBHsBRsB\sBqsBsBsBsBsB tB3tBftBtBtBuB\uBuBuBHvBvBwB\wBwB)xBxB yByBzB{zBWBBpBBBBB=B҅BfBBB)BƒB\BBB8BׁB{BB€BkBBB~B=~B}B}Bq|B{BR{BzB=zByB=yBxBRxBwB{wBwBvBRvBvBuB\uB uBtBtBHtBtBsBsBsB\sB=sBsB sBsBrBrBrBrBrBrB sBsB=sB\sB{sBsBsB tB=tB{tBtBuBHuBuBuBHvBvBwBfwBwB=xBxB)yByB)zBBB8B‡BRBBvBBB.B„BWBBB$B‚BaBBBBBBB3BBBq~B}B)}B|B|Bq{BzBRzByBRyBxB\xBwB{wB wBvBHvBuBuB=uBtBtB\tBtBsBsBqsBHsBsBrBrBrBrBrBrBrB{rB{rBrBrBrBrBrBrBsBHsBqsBsBsBtB\tBtBtB=uBuBuB=vBvB wBqwBwBRxBxBHyByBBpBBBBB=BͅBaBBBBBRBBB)BǁBfB BBRBBHB~B~B\}B|B)|B{B{BqzByBfyBxBfxBwB{wB wBvB=vBuB{uB)uBtBtB3tBsBsBqsB=sB sBrBrBrBqrBRrB=rB)rBrBrBrBrBrB)rB=rBRrBqrBrBrBrB sB=sB{sBsBsB=tBtBtB)uBuBuBHvBvBwBwBwBqxBxBqyBB8BLJBRBBpBBB)BBRBBBBBRBBB.BҀBvBBB~B3~B}B|BR|B{B{BzBzB{yBxBqxBwBwB wBvB3vBuBquBuBtBftBtBsBsBHsB sBrBrBqrBHrBrBrBqBqBqBqBqBqBqBqBqBqBqB rB)rBRrB{rBrBrBsBRsBsBsB)tB{tBtB)uBuBuBRvBvB)wBwBxBxByBvBBBBB8BͅB\BBBBBGBB{BBBWBBB=BBBq~B}B}B{|B{BH{BzBzByB yBxB xBwBwBvB3vBuB\uBuBtBHtBsBsB\sBsBrBrBfrB3rB rBqBqBqBqBqqB\qBRqBHqBHqBHqBRqBfqBqqBqBqBqBqBrBHrB{rBrBrB3sB{sBsBtBqtBtB)uBuBuB\vBvBHwBwB=xBxB=BLJBWBBpBBB$BBMBBvBBBBBBBBBaBB\B~B~BR}B|B |Bq{BzBHzByB)yBxBxBwBwBvB3vBuB\uBtBtB3tBsBsB=sBrBrBqrB3rBrBqBqBqqBRqB3qBqBqBpBpBpBpBpBpBqB qB)qBHqBfqBqBqBqBrBRrBrBrBsBfsBsBtBftBtB)uBuBvBqvBvB\wBwBfxBBBBB8BDžB\BBBBB=BׂBpB BBGBBB)BB~B=~B}B|B=|B{B{BfzByBHyBxB3xBwB)wBvB3vBuBRuBtBtB)tBsBqsBsBrBrBHrBrBqBqB\qB3qB qBpBpBpBpBpBpB{pB{pB{pBpBpBpBpBpBqB)qBRqBqBqBqB3rBqrBrB sB\sBsB tBftBtB3uBuBvBvBwBwB xB͇BWBBvBBB$BBGB܃BpBBB8BҁBpBBBMBB)B{~B}B}Bq|B{B3{BzByBfyBxBHxBwB=wBvB=vBuBRuBtB{tBtBsB\sB sBrBfrBrBqBqB\qB)qBpBpBpB{pB\pBHpB3pBpBpBpBpBpBpB3pBHpB\pB{pBpBpBpBqBRqBqBqBrB\rBrBrBRsBsB tBqtBtBHuBuB3vBvB)wBwBBBB=BDžBWBB{BBB8B҂BfBBB8B׀BvBBqB~B ~B\}B|B |B\{BzBzByBxBfxBwBRwBvBRvBuB\uBtB{tBtBsBHsBrBrBHrBqBqBqqB)qBpBpBpB\pB3pBpBoBoBoBoBoBoBoBoBoBoBoBoBpB3pB\pBpBpBpB)qBqqBqBqBHrBrBrBHsBsBtB{tBtB\uBuBRvBvBRwB\BBvBBBBBBB׃BkBBB.BǁBfBBB=BBBR~B}B|B=|B{BzBRzByByBxBwBfwBvB\vBuBfuBtB{tB tBsB=sBrBrB)rBqBqBHqBqBpBpBRpBpBoBoBoBoBqoB\oBRoBHoBHoBHoBHoBRoBfoB{oBoBoBoBoB)pB\pBpBpB qBRqBqBqB=rBrBrBRsBsBtBtBuBquBuBqvBvB$BB=BͅBWBB{B BB3BǂBaBBB.BǀBfBBRB~B}B)}B{|B{B){BzByBHyBxBxBwBwBqvBuBquBtB{tB tBsB3sBrBqrBrBqBqqBqBpBpBRpBpBoBoBoBfoB=oBoB oBnBnBnBnBnBnBnBoBoB)oBHoBqoBoBoBoB)pBfpBpBpB3qBqBqB3rBrBrBRsBsB)tBtBuBuBvBvBBvBBBBBBB҃BfBBB)BBWBBB.BB~B)~Bq}B|B |B\{BzBzBqyBxB=xBwBwBvB vBuBuBtBtBsB3sBrBfrBrBqBRqBqBpBqpB)pBoBoB{oBHoBoBnBnBnBnBnBnB{nBqnB{nB{nBnBnBnBnBnB oB3oB\oBoBoBpBHpBpBpB)qB{qBqB)rBrBrB\sBsBHtBtB3uBuB=vBB=BͅB\BB{B BB.B‚BWBBBBBWBB)Bq~B}B}BH|B{BzBHzByByBfxBwB=wBvBvBuBuBtBtBsB3sBrB\rBqBqB=qBpBpBHpBpBoB{oBHoBoBnBnBnBqnBRnB=nB)nBnBnB nB nBnBnB3nBHnB\nB{nBnBnBoB)oBfoBoBoB)pBqpBpBqBqqBqB3rBrBsBqsBsB\tBtB\uBuB{B BB$BBBB҃BaBBBBBMBBBB{B~B~BH}B|B{B){B{zByB3yBxBwB\wBvB=vBuB)uBtB)tBsB3sBrBRrBqBqB)qBpB{pB)pBoBoBRoBoBnBnBqnBHnBnBnBmBmBmBmBmBmBmBmBmBmBmBmBnB=nBfnBnBnBoB=oBoBoBpBfpBpBqBqqBqB3rBrBsBsBtB{tBuBuBBB҅B\BB{B BB)BBRBBBBBMBB BH~B}B|B|Bf{BzBzBfyBxB)xBwBvB\vBuB=uBtB3tBsB=sBrBRrBqBqBqBpBfpB pBoBqoB)oBnBnBqnB=nB nBmBmBmB{mBfmBRmBHmB=mB=mB=mBHmBRmBfmB{mBmBmBmBnB3nBfnBnBnBoBfoBoBpBRpBpB qBqqBqBHrBrB)sBsBtBtB)uB BB$BBBB҃BaBBBBBGB܀BvBB\B~B}B}Bf|B{B{BHzByBxBRxBwBwBvBuB\uBtBHtBsBHsBrB\rBqB{qBqBpBRpBoBoBRoBoBnB{nB=nBnBmBmBqmBRmB3mBmBmBlBlBlBlBlBlBlBmBmB3mBRmBqmBmBmBnB=nB{nBnBoBRoBoBoBRpBpBqB{qBqBRrBrBHsBsBHtBtB҅BaBB{B BB)BBMBBvBBBBBB~B)~Bf}B|B{B={BzByB3yBxBwBHwBvBvB{uBtBftBsB\sBrB\rBqB{qB qBpB=pBoBoB3oBnBnBRnB nBmBmBfmB3mB mBlBlBlBlBlB{lBqlBqlBqlB{lBlBlBlBlBlBmB=mBfmBmBmBnB\nBnBnB=oBoBoBRpBpBqBqBqBqrBrBfsBsBqtBB)BBBB҃BaBBBBB=B׀BpB BHB{~B}B}B=|B{BzBzBqyBxBxBqwBvB=vBuB uB{tBsBqsBrBqrBqB{qB qBpB3pBoB{oBoBnB{nB)nBmBmBfmB)mBlBlBlB{lB\lB=lB)lBlB lB lBlB lBlBlB3lBHlBflBlBlBlB mB=mBqmBmBmB=nBnBnB3oBoBoBRpBpB)qBqB rBrB sBsBtBaBB{B BB)BBGB܁BpBBB8BB~B~BH}B|B{B{B\zByByBRxBwB wBfvBuB3uBtBtBsBsB{rBrBqB qBpB3pBoBfoB oBnB\nB nBmB{mB3mBlBlBlB\lB3lBlBkBkBkBkBkBkBkBkBkBkBkBkBlBlBHlBqlBlBlBmBRmBmBmB)nB{nBnB)oBoBoB\pBpB=qBqB)rBrB3sBsB)BBBB҃BaBBBBB8B̀BfBB3Bf~B}B|B|B\{BzByB=yBxBwB=wBvBuB\uBtB3tBsBsBrB rBqBqBpB3pBoB\oBnBnB=nBmBmBRmB mBlBlBRlBlBkBkBkBkBqkBRkBHkB=kB3kB3kB3kB=kBRkBfkB{kBkBkBkB lB=lBqlBlBlB3mB{mBmBnBqnBnB)oBoBoBfpBpBRqBqBRrBrB\sBBBBB)BBMB܁BpBBB.BB~B~B3}Bq|B{BzB=zByBxBxBqwBvB)vBuBtB\tBsB3sBrBrBqBqBpB3pBoB\oBnBnB3nBmBmB3mBlBlB\lBlBkBkBkB\kB=kBkBkBjBjBjBjBjBjBjBjBjB kB)kBRkBqkBkBkB lBHlBlBlBmB\mBmB nBfnBnB)oBoBpBqpBpBfqBqBqrBrBBGB׃BaBBBBB8B̀BaBBBR~B}B|B|B={BzByByB\xBwB wB\vBuBuB{tBsBRsBrB=rBqB3qBpB=pBoBRoBnBnBnBmBfmBmBlB{lB3lBkBkB{kBHkBkBjBjBjBjBjBqjBfjBfjB\jBfjBqjB{jBjBjBjBjBkB=kBqkBkBkBlBflBlBmBRmBmBnBfnBnB3oBoBpBpB qBqBrBrBBBB)BBGB܁BkBBB)BB~B}B}BR|B{BzBzB\yBxBwB=wBvBuBHuBtBtB{sBrB\rBqBHqBpBHpBoB\oBnB{nBnBmBRmBmBlB\lB lBkBkBHkBkBjBjBjBfjBHjB)jBjB jBjBiBiBjB jBjB)jB=jB\jBjBjBjB kB=kB{kBkBlBHlBlBlBHmBmBnBfnBnB=oBoB3pBpB)qBqB=rBMB׃BfBBBBB3BǀB\BBB=~Bq}B|B{B{B\zByBxB3xBwBvB)vB{uBtB=tBsB sB{rBqB\qBpBRpBoB\oBnB{nB nBmBHmBlBlB=lBkBkB\kBkBjBjBqjBHjBjBiBiBiBiBiBiBiBiBiBiBiBiBiBiBjBHjBqjBjBjBkB\kBkBkB3lBlBlB=mBmB nBqnBnBRoBoBRpBpBRqBqBBB.BBGBׁBkBBB$BqB~B}B}B=|Bq{BzByB3yB{xBwBwBfvBuBuBqtBsB3sBrB rB{qBpBfpBoBfoBnB{nB nBmB=mBlB{lBlBkB{kB3kBjBjBqjB=jB jBiBiBiBqiB\iBHiB3iB)iB)iB)iB)iB3iBHiB\iBqiBiBiBiB jB=jB{jBjBjB=kBkBkB)lBlBlB=mBmBnBnBnBqoBoBqpBpBqB܃BfBBBBB3B€BWBBB3~B\}B|B{B{B=zByBxB xBRwBvBuBHuBtBtB\sBrB)rBqB qB{pBoB{oBnBnB nBmB3mBlBflB lBkB\kBkBjBjB=jB jBiBiBqiBHiB)iB iBhBhBhBhBhBhBhBhBhBhB iB)iBRiB{iBiBiBjBRjBjBjBkBqkBkBlB{lBlBHmBmBnBnBoBoBpBpB)qBB.BBMBׁBkBBBBfB~B}B|B)|B\{BzByByBRxBwBvB3vBuBtB3tBsBrBRrBqB)qBpBpBoB oBnBnBmB3mBlB\lBlBkBHkBjBjB\jBjBiBiBfiB3iBiBhBhBhBhBqhBfhB\hBRhBRhB\hBfhB{hBhBhBhBhBiB=iBqiBiBiB)jBqjBjB kBfkBkBlB{lBlBRmBmB=nBnB3oBoB=pBpBkBBBBB3B€BRBB~B~BR}B|B{BzBzB\yBxBwB)wBqvBuBuBftBsBsB{rBqBRqBpB)pBoBoBnBnBmB3mBlBRlBkBkB3kBjBjB3jBiBiBfiB)iBhBhBhBqhBRhB3hBhB hBgBgBgBgBgBhB hB)hB=hB\hBhBhBhB iBHiBiBiB jB\jBjBkB\kBkBlBlBlBfmBmBRnBnBRoBoBfpB3B‚BMB܁BkBBBB\B~B}B|B|BH{B{zByBxB3xBqwBvBvBRuBtBsBRsBrBrBqqBpBHpBoB3oBnB)nBmB3mBlBRlBkBkBkBjBqjBjBiBiB=iBiBhBhB\hB3hB hBgBgBgBgBgBgBgBgBgBgBgBgBgBgBhBHhB{hBhBhBiBfiBiBiBHjBjBjB\kBkBlBlBmB{mBmBqnBnB{oB pBBBBB3B€BRBB~B~B=}Bq|B{BzB zBHyBxBwBwBHvBuBtB3tBsBrB=rBqB qBqpBoBRoBnB=nBmB=mBlBRlBkB{kBkBjBRjBjBiB\iBiBhBhBRhBhBgBgBgB{gB\gBHgB3gB)gBgBgBgBgB3gB=gBRgBqgBgBgBgBhBHhB{hBhBiBHiBiBiB=jBjBjB\kBkB3lBlBmBmBnBnBoBoB‚BRB܁BkBBBBRB{~B}B|B|B3{BfzByBxBxBRwBvBuB)uBqtBsBsBqrBqB3qBpBpBqoBnBRnBmBRmBlB\lBkB{kB kBjBHjBiBiB=iBhBhBfhB)hBgBgBgB\gB3gB gBfBfBfBfBfBfBfBfBfBfBfB gB)gBRgB{gBgBgBhBRhBhBhB3iBiBiB3jBjBjB\kBkB=lBlB3mBmB=nBnBRoBBBB3B€BRBB~B ~B3}B\|B{BzByB)yBfxBwBvBvBfuBtBtBRsBrBrB\qBpB)pBoBoBqnBmB\mBlBflBkB{kB kBjB=jBiB{iB)iBhBhB=hBgBgB{gBHgBgBfBfBfBfBqfB\fBRfBHfBHfBHfBRfB\fBqfBfBfBfBfBgBHgB{gBgBgB3hB{hBhBiBqiBiB3jBjBkBqkBkB\lBlBRmBmBfnBnBRBBkBBBBRB{~B}B|B{B{BRzByBxBwB3wBqvBuBtBHtBsBrB=rBqBpBRpBoBoBnBnB{mBlBqlBkB{kB kBjB3jBiBfiB iBhBfhBhBgBgBHgBgBfBfBfB\fB=fBfB fBeBeBeBeBeBeBeB fBfB=fB\fBfBfBfBgBRgBgBgBhBfhBhBiBqiBiB3jBjB kBkBkBqlBlB{mBnBnBBB3B€BRBB~B ~B)}BR|B{{BzByByBHxBwBvBvBHuBtBsBsBqrBqBqBpBoBHoBnBnBmB mBlBlBkB kBjB)jBiB\iBiBhBHhBgBgB\gBgBfBfBqfB=fBfBeBeBeBeBeB{eB{eBqeB{eBeBeBeBeBeBeBfBHfB{fBfBfB)gBqgBgBhBRhBhB iBqiBiB=jBjBkBkBlBlBmBmB3nBBpBBBBRBq~B}B|B{B{B=zBqyBxBwBwBRvBuBtBtBfsBrBrB\qBpBpBqoBnB=nBmBmBlBlBkBkBjB)jBiBRiBhBhB3hBgBgB=gBfBfBqfB=fBfBeBeBeBfeBHeB3eBeBeB eB eBeBeB)eB3eBReBqeBeBeBeBfBHfBfBfB gBRgBgBgBHhBhB iBqiBiBHjBjB3kBkB3lBlBHmBmBB8B€BRBB~B~B)}BH|Bq{BzByByB3xBfwBvBuBuBftBsBrBHrBqBpBHpBoBoBfnBmB=mBlB)lBkB)kBjB3jBiBRiBhBhBhBgBqgBgBfBfBHfB fBeBeBfeB=eBeBdBdBdBdBdBdBdBdBdBdBdBdBeB)eBReB{eBeBeBfB\fBfBfB=gBgBgBHhBhB iB{iBiB\jBjBRkBkB\lBlB{mBpBBBBRBq~B}B|B{B{B3zB\yBxBwBvB3vBquBtBsB=sBrBqB)qB{pBoB3oBnBmBfmBlBHlBkB3kBjB=jBiBRiBhB{hBhBgB\gBgBfBffBfBeBeB\eB)eBeBdBdBdBqdB\dBHdB=dB=dB=dB=dBHdBRdBfdB{dBdBdBdBeBHeB{eBeBeB=fBfBfB)gBgBgBHhBhBiBiBjBqjBjBqkBlBlBmB8BǀBRBB~B~B}BH|Bf{BzByBxBxBRwBvBuBuB=tBsBrBrBfqBpB pBfoBnB)nBmBlBflBkBHkBjBHjBiBRiBhBqhB hBgBHgBfBfB=fBeBeBfeB)eBdBdBdBfdB=dBdB dBcBcBcBcBcBcBcBcBdBdB3dB\dBdBdBdBeBReBeBeB)fBqfBfBgB{gBgBHhBhB)iBiBjBjBkBkB)lBlBBBBRBq~B}B|B{BzBzBRyB{xBwBvBvBRuBtBsBsB\rBqBpBHpBoBnBRnBmBmBlBkBfkBjB\jBiB\iBhBqhBhBgB3gBfB{fB)fBeBeB=eBeBdBdBRdB)dBdBcBcBcBcB{cBqcBfcBfcBfcBqcBcBcBcBcBcBdBHdB{dBdBdB)eBqeBeB fBffBfBgB{gBgBRhBhB=iBiB3jBjB=kBkB\lB̀BWBB~B~B}B=|Bf{BzByBxB xB=wBqvBuBtBtB\sBrBqB3qBpBoB)oBnBmBHmBlBlBkBjBqjBiBfiBhB{hBhBgB)gBfBffB fBeBfeBeBdBdBRdBdBcBcBcBfcBHcB3cBcB cBcBcBcBcB cBcB)cBHcBfcBcBcBcBdBHdBdBdB eB\eBeBfB\fBfBgBgBgBfhBhBRiBiBRjBjBfkBkBBBRBq~B}B|B{BzBzB=yBqxBwBvBvB3uBqtBsBrB3rB{qBpBpBfoBnBnBqmBlB=lBkBkBjBjB{iBhB{hB hBgB)gBfB\fBfBeBHeBdBdBfdB)dBcBcB{cBRcBcBcBbBbBbBbBbBbBbBbBbBbBbBbBcBcBHcB{cBcBcBdBfdBdBdBHeBeBeBRfBfBgBgBhB{hBhBqiBiB{jB kBkB\BB~B~B}B=|B\{BzByBxBxB)wB\vBuBtBtB=sB{rBqB qBRpBoBnBHnBmBmBflBkB3kBjBjBiB iBhBhBgB)gBfBRfBeBeB3eBdBdB=dBcBcB{cB=cB cBbBbBbBqbB\bBHbB3bB)bB)bB)bB3bB=bBHbB\bB{bBbBbBbBcBHcB{cBcBdBHdBdBdB3eBeBeBRfBfB)gBgBhBhB iBiBjBjB=kB$B\Bq~B}B|B{BzBzB=yBfxBwBvBuBuB\tBsBrB rBRqBpBoB3oBnBmB3mBlBkB\kBjB3jBiBiBhBhBgB)gBfBHfBeB{eBeBdBqdBdBcBcBHcB cBbBbBqbBHbB)bB bBaBaBaBaBaBaBaBaBaBaB bB)bBRbB{bBbBbBcBRcBcBcB)dB{dBdB)eBeBeB\fBfB=gBgB3hBhB3iBiBHjBjBB~B~B}B=|B\{B{zByBxBwBwBHvB{uBtBsBsB\rBqBpB)pBqoBnBnBqmBlB)lBkBjB\jBiB=iBhB)hBgB3gBfBHfBeBqeBeBdB\dBdBcBfcBcBbBbBfbB3bB bBaBaBaBaBqaBfaB\aBRaBRaB\aBfaB{aBaBaBaBaBbBHbB{bBbBbB3cB{cBcBdBqdBdB)eBeBeBffBfBRgBgBRhBhB\iBiB{jBRBf~B}B|B{BzBzByBHxBqwBvBuBuB3tBfsBrBqBqBfpBoBnBHnBmBlBHlBkB kBqjBiBHiBhB3hBgB3gBfBHfBeBfeBeBdB=dBcBcB=cBbBbBfbB)bBaBaBaBqaBHaB)aBaBaB`B`B`B`B`B`B aBaB=aB\aBaBaBaBbBHbBbBbBcBfcBcB dBfdBdB)eBeB fB{fBfBqgBgBqhBiBiBjB~B}B}B3|BR{BqzByBxBwBwB)vB\uBtBsBrB3rBqqBpBoB=oBnBmB)mB{lBkB=kBjBjBqiBhBRhBgBHgBfBHfBeBfeBdBdB)dBcBqcBcBbBbB=bBbBaBaB\aB)aBaB`B`B`B`B`B{`B{`B{`B`B`B`B`B`B`BaBHaBqaBaBaBbBfbBbBcBRcBcBdBfdBdB3eBeBfBfB gBgBhBhB)iBiBq~B}B|B{BzBzByB=xBfwBvBuBtBtBRsBrBqBqB=pBoBnBnBfmBlBlBfkBjB)jBiBiBqhBgB\gBfBRfBeBfeBdBdBdBcB\cBcBbB\bBbBaBaBRaBaB`B`B`Bq`BR`B=`B)`B`B`B`B`B`B)`B3`BR`Bf`B`B`B`B aB=aB{aBaBbBHbBbBbB=cBcBdBfdBdB=eBeB)fBfB)gBgB=hBhB\iB~B}B3|BR{BqzByBxBwBvBvBHuB{tBsBrBrBRqBpBoBoB\nBmBlBHlBkBjB\jBiBiBhBhBqgBfBffBeBqeBdBdBdBcBRcBbBbB=bBaBaBfaBaB`B`B{`BR`B)`B `B_B_B_B_B_B_B_B_B_B_B_B`B`BH`Bq`B`B`BaBRaBaBaB3bBbBbB=cBcBdBqdBdBReBeBHfBfBRgBgBfhBiB}B|B{BzBzByB=xB\wBvBuBtB tB=sBqrBqBpBpB\oBnBmB3mBlBkB3kBjBiBHiBhBhBgBgB{fBeB{eBeBdBdBcB=cBbBbB)bBaBaB=aB`B`B{`BH`B`B_B_B_B{_Bf_BR_BH_B=_B=_B=_BH_BR_Bf_B{_B_B_B_B `B=`Bq`B`B`B3aB{aBaBbB{bBbB3cBcB dB{dBdBfeBeBffBfB{gB hBhB}B3|BR{BqzByBxBwBvBvB=uBqtBsBrBrB3qBqpBoBnB3nB{mBlBlBfkBjBjB{iBhBHhBgBgBfB fBeB eBdBdBcB=cBbBqbBbBaBfaBaB`B`BH`B `B_B_B{_BR_B3_B_B_B^B^B^B^B^B^B^B_B_B3_BR_B{_B_B_B `BH`B`B`BaBfaBaBbBqbBbB=cBcBdBdBeBeB fBfBgBgB=hB|B{BzBzByB=xB\wB{vBuBtBtB)sB\rBqBpBpB=oB{nBmB mBRlBkBjBRjBiB iBqhBgB=gBfBfBeBeBdBdBcB3cBbBfbBbBaBHaB`B`B\`B`B_B_Bf_B3_B _B^B^B^B^B{^Bq^Bf^Bf^Bf^Bq^B{^B^B^B^B^B _B=_Bq_B_B_B`Bf`B`BaBRaBaB bBqbBbB=cBcB)dBdBeBeB)fBfBHgBgB=|BR{BqzByBxBwBvB vB3uB\tBsBrBqBqBRpBoBnB nBRmBlBkB3kBjBiB=iBhBhBfgBfB=fBeB)eBdB)dBcB=cBbB\bBaBaB3aB`B`B=`B_B_Bq_B3_B_B^B^B{^B\^B=^B^B^B ^B^B^B^B ^B^B)^B=^B\^B{^B^B^B_B=_B{_B_B`BH`B`B`BHaBaB bBqbBbBRcBcB=dBdB=eBeBRfBfB{gB{BzBzByB=xB\wB{vBuBtBsBsBHrB{qBpBoBoB\nBmBlB)lB{kBjBjBqiBhB)hBgBfB\fBeBHeBdB3dBcB=cBbB\bBaBaB)aB`Bq`B`B_B_B=_B_B^B^B\^B3^B ^B]B]B]B]B]B]B]B]B]B]B]B]B]B^B=^Bf^B^B^B_BR_B_B_B3`B`B`B=aBaB bB{bBbB\cBcB\dBdBfeBeBfBgB\{BqzByBxBwBvB vB)uBRtB{sBrBqB qB=pBqoBnBmB)mBqlBkB kBRjBiBiB\hBgBgBfBeB\eBdBHdBcBHcBbB\bBaB{aBaB`B\`B`B_B\_B_B^B^BR^B^B]B]B]B{]Bf]BH]B=]B3]B)]B)]B)]B3]B=]BR]Bq]B]B]B]B^B3^Bq^B^B^B3_B{_B_B`B{`B`B=aBaBbBbBcB{cBcB{dBeBeBfBfBzBzByB=xB\wB{vBuBtBsB sB=rBfqBpBoBoB=nB{mBlBlBHkBjBiB3iBhBgBHgBfBfB{eBdBfdBcB\cBbB\bBaB{aBaB`BH`B_B_B=_B^B^Bf^B)^B]B]B]B\]B3]B]B\B\B\B\B\B\B\B\B\B\B]B]BH]Bq]B]B]B^B=^B^B^B_Bf_B_B`B{`B`BHaBaBbBbBcBcBdBdB3eBeB\fB{zByBxBwBvB vB)uBHtBqsBrBqBpB)pB\oBnBmB mBRlBkBjB)jBqiBhBhB{gBfB=fBeB eB{dBcBqcBbBfbBaB{aB aB`B=`B_B{_B)_B^B^B=^B]B]B{]BH]B]B\B\B\B\Bq\Bf\B\\BR\BR\BR\B\\Bq\B\B\B\B\B]B3]Bf]B]B]B^Bf^B^B_BR_B_B`Bq`B`BHaBaB3bBbB3cBcB=dBdB\eBeB zByB=xB\wB{vBuBtBsBsB)rB\qBpBoBnBnB\mBlBkBkBfjBiBiBRhBgB gBffBeB3eBdBdBcBcB{bBbBaB aB`B3`B_Bf_B _B^Bf^B^B]B]BH]B ]B\B\B{\B\\B=\B\B \B[B[B[B[B[B[B\B\B3\BR\Bq\B\B\B]B3]Bq]B]B^BH^B^B^BH_B_B`B{`B`B\aBaBRbBbBRcBcBfdBeBeByBxBwBvBvB)uBHtBfsBrBqBpBpBHoB{nBmBlB)lBqkBjBiBHiBhBgB=gBfBeB\eBdB3dBcBcBbB bBaBaB`B3`B_B\_B_B^BH^B]B]B\]B]B\B\Bq\B=\B\B[B[B[B[B[B[B{[B{[B{[B[B[B[B[B[B \B3\B\\B\B\B ]BR]B]B]B3^B^B^BH_B_B`B`B`BqaBaBfbBbB{cB dBdB3eB)yB=xB\wB{vBuBtBsBrBrBHqB{pBoBnB nB=mB{lBkBkB=jBiBhBhB{gBfB)fBeBdBRdBcB3cBbBbBaBaB`B3`B_BR_B^B^B3^B]B]B=]B\B\Bq\B3\B\B[B[B[B\[BH[B3[B[B[B[B[B[B[B)[B=[B\[B{[B[B[B[B)\Bf\B\B\B)]B{]B]B^B{^B^BH_B_B`B`B aBaB bBbBcBcB=dBdBxBwBvB vBuBHtBfsBrBqBpB pB3oBfnBmBlB lBHkBjBiBiBfhBgB gB\fBeBeB{dBcBRcBbB3bBaB)aB`B3`B_BR_B^B{^B^B]Bf]B]B\B\B=\B\B[B[Bf[B=[B[BZBZBZBZBZBZBZBZBZBZBZBZB[B3[B\[B[B[B\B=\B{\B\B]Bf]B]B^B{^B^BH_B_B)`B`BaBaB)bBbBHcBcBqdBHxB\wB{vBuBtBsBrBrB=qBfpBoBnBmB)mB\lBkBjBjB\iBhBgBHgBfBeBHeBdB dBqcBbBRbBaB=aB`B=`B_BR_B^B{^B^B]BR]B]B\B\\B\B[B[B\[B)[BZBZBZBZBqZB\ZBHZB=ZB=ZB=ZB=ZBHZB\ZBqZBZBZBZBZB)[B\[B[B[B\B\\B\B]B\]B]B^B{^B^BR_B_B=`B`B=aBaBRbBbB{cB dBwBvB vB)uB=tBfsBrBqBpBoB)oBRnBmBlBkB)kBfjBiBhB3hBgBfB)fB{eBdB3dBcBcBqbBaBRaB`BH`B_BR_B^Bq^B ^B]B=]B\B\B=\B[B[Bf[B)[BZBZBZB\ZB=ZBZBZBYBYBYBYBYBYBYBYBZBZB=ZBfZBZBZBZB)[Bf[B[B[BH\B\B\BR]B]B^B^B^Bf_B_B\`B`BfaBaB{bBcBcBfwB{vBuBtBsBrBrB3qB\pBoBnBmBmBHlB{kBjBiB=iB{hBgBgBffBeB eBfdBcB)cBbBbBqaB`B\`B_B\_B^Bq^B^B]B3]B\B{\B\B[B{[B3[BZBZB{ZBHZBZBYBYBYBYBYBqYBfYBfYBfYBfYBqYBYBYBYBYBYB)ZBRZBZBZB[BH[B[B[B3\B\B\BH]B]B^B^B_B{_B_B{`BaBaBbBbBHcBvB vB)uBHtB\sBrBqBpBoBoBHnBqmBlBkB kBHjBiBhB hBRgBfBeBHeBdBcB\cBbBbBaBaBq`B_Bq_B^B{^B^B]B)]B\Bf\B \B[B\[B[BZBZBHZBZBYBYBYB\YB=YB)YBYBYBYBXBXBYB YBYB3YBHYBfYBYBYBYBZB\ZBZBZB)[B{[B[B\B\B\BH]B]B)^B^B_B_B`B`B)aBaBRbBbBvBuBtBsBrBrB3qBRpB{oBnBmBmB3lBfkBjBiBiB\hBgBfB3fBeBdB)dBcBbBHbBaBaB`B `B{_B_B{^B ^B]B)]B\BR\B[B[B=[BZBZB\ZBZBYBYBqYB=YBYBXBXBXBXBXBXBXBXBXBXBXBXBXBYB)YBRYBYBYBYB3ZB{ZBZB[Bf[B[B\B{\B\BR]B]B3^B^B3_B_B=`B`BRaBaBbBvB)uBHtBfsB{rBqBpBoB oB3nBfmBlBkBjB)jBfiBhBgB)gBqfBeBeBfdBcBcB{bBaBHaB`B`B_B_B^B^B]B)]B\BH\B[B[B)[BZBZB3ZBYBYBqYB3YBYBXBXBXBfXBRXB=XB)XBXBXBXB)XB3XBHXB\XB{XBXBXBXBYBRYBYBYBZB\ZBZB[BR[B[B\B{\B\B\]B]BH^B^BR_B_Bf`B`BaBbBuBtBsBrB rB3qBRpBqoBnBmBlBlBRkBjBiBhB3hB{gBfBfBReBdBcBHcBbB bBfaB`B=`B_B)_B^B^B]B)]B\BH\B[B{[B[BZBfZBZBYB{YB=YBYBXBXBfXB=XBXBXBWBWBWBWBWBWBWBWBWBWB XB)XBRXB{XBXBXBYBfYBYBYB=ZBZBZBR[B[B\B\B\Bq]B]Bf^B^Bq_B`B`B)aBaB3uBHtBfsBrBqBpBoBoB)nBRmBlBkBjBjBRiBhBgB gBHfBeBdB3dBcBbB3bBaB`Bf`B_B=_B^B3^B]B3]B\BH\B[Bq[B [BZBHZBYBYB\YBYBXBXB\XB)XBWBWBWBWB{WBfWBRWBHWBHWBHWBRWB\WBqWBWBWBWBWBXBHXB{XBXBXB=YBYBYB3ZBZBZBH[B[B\B\B ]B]B^B^B _B_B)`B`B\aBtBsBsBrB3qBRpB{oBnBmBlBlBHkB{jBiBhBhB\gBfBeB)eB{dBcBcBqbBaB)aB`B_Bf_B^BH^B]BH]B\BR\B[Bq[B[BZB=ZBYBYB=YBXBXBfXB)XBWBWBWBfWBHWB)WB WBVBVBVBVBVBVBVB WBWB=WB\WBWBWBWBXBRXBXBXBYBqYBYBZB{ZBZBH[B[B)\B\B]B]B^B^B3_B_B\`B`B\tBqsBrBqBpBoB oB)nBRmB{lBkBjB jB=iBqhBgBfB)fBqeBdB dBRcBbBbB\aB`B`B_B^Bf^B]BR]B\B\\B[Bq[B[BZB3ZBYBqYBYBXB{XB=XBWBWBWBRWBWBVBVBVBVBVB{VB{VBqVBqVB{VBVBVBVBVBVBWBHWBqWBWBWB)XBqXBXB YB\YBYBZB{ZBZBR[B[B=\B\B3]B]BH^B^Bf_B_B`BsBsBrB3qBRpBqoBnBmBlB lB3kBfjBiBhBhB=gB{fBeBeBHdBcBbB=bBaB`BR`B_B_B^B]Bq]B\Bf\B[Bq[B[BZB)ZBYB\YBYBXB\XBXBWBWBHWBWBVBVBVBfVBHVB3VBVBVB VB VB VBVBVB3VBHVBfVBVBVBVB WBHWB{WBWB XBRXBXBXBRYBYBZB{ZBZB\[B[BR\B\BR]B]Bq^B_B_B3`B{sBrBqBpBoBoB)nBHmBqlBkBjBiB)iB\hBgBfB fBReBdBcB)cB{bBaBaB{`B_B=_B^B^B]B]B{\B[B{[B[BZBZBYBRYBXBXB=XBWBWB\WBWBVBVBqVBHVBVBVBUBUBUBUBUBUBUBUBUBUBUBUBVBHVBqVBVBVBWB\WBWBWB=XBXBXBHYBYBZBZBZBq[B[Bq\B\B{]B ^B^B3_B_B sBrB=qBRpBqoBnBmBlBlB)kBRjBiBhBgBgB\fBeBdBdBfcBbB bB\aB`B `Bq_B^B=^B]B]B\B \B[B [BZBZBYBHYBXBXB)XBWBWB3WBVBVBqVB=VB VBUBUBUBqUB\UBHUB=UB3UB3UB3UB=UBHUB\UBqUBUBUBUB VB=VBqVBVBVB3WBWBWB)XBXBXBHYBYBZBZB [B[B \B\B]B]B=^B^Bq_BrBqBpBoBoBnBHmBflBkBjBiBiBHhB{gBfBeB)eBqdBcBbBHbBaB`B=`B_B_Bf^B]B3]B\B\B[B[BZBZBYB=YBXBqXBXBWBfWBWBVBVB=VBVBUBUBqUBHUBUB UBTBTBTBTBTBTBTBTBTB UB)UBHUBqUBUBUB VBHVBVBVBWBqWBWBXB{XBXBRYBYB3ZBZB[B[B)\B\BH]B]Bq^B _B)rB=qB\pBqoBnBmBlBkBkBHjBqiBhBgB gB=fB{eBdBdB=cBbBaB)aB{`B_B)_B^B]B\]B\B=\B[B)[BZB)ZBYB=YBXBfXBXBWBHWBVBVB\VBVBUBUB\UB)UBUBTBTBTBTBqTBfTB\TB\TB\TBfTBqTBTBTBTBTB UB3UBfUBUBUBVBfVBVBWB\WBWBXB{XBXBRYBYB=ZBZB=[B[BR\B\Bq]B ^B^BqBpBoB oBnB=mBflBkBjBiBiB3hBfgBfBeB eBHdBcBbBbBfaB`B `B\_B^B^B]B\B\\B[B=[BZB3ZBYBHYBXBfXBWBWB3WBVBVB3VBUBUBfUB)UBTBTBTBfTBHTB)TBTBTBSBSBSBSBSB TBTB3TBRTBqTBTBTBUB3UBqUBUBVBHVBVBVBRWBWBXBXBXBfYBYB\ZBZB\[B[B{\B]B]BH^BHqB\pB{oBnBmBlBkBkB=jBfiBhBgBfB)fB\eBdBcBcB\bBaB`BH`B_B^BR^B]B]B{\B[B\[BZBHZBYBHYBXBfXBWBWB)WBVBqVBVBUB{UB3UBTBTBTBRTB)TBTBSBSBSBSBSBSBSBSBSBSBSBSBSB TB3TBfTBTBTB UBRUBUBUB3VBVBVBHWBWBXBXBYB{YBYB{ZB[B[B\B\BH]B]BpBoB oB)nB=mBflBkBjBiBhBhBRgBfBeBdB)dBfcBbBaB=aB`B_B)_B^B]B=]B\B \B{[BZB\ZBYB\YBXBfXBWBWBWBVB\VBVBUB\UB UBTBTBHTBTBSBSBSBqSBRSB=SB)SBSBSBSBSBSB3SBHSB\SB{SBSBSBSB)TBfTBTBTB)UB{UBUB)VBVBVBHWBWBXBXBYBYBZBZB[B[BH\B\B{]BfpB{oBnBmBlBkBkB3jB\iBhBgBfBfBHeBdBcBbB=bB{aB`B`Bf_B^B^Bq]B\B3\B[B [B{ZBYBfYBXBqXBWBWBWBVBHVBUBUB=UBTBTB\TBTBSBSB{SBHSBSBSBRBRBRBRBRBRBRBRBRBRBRBSB3SB\SBSBSBTB=TB{TBTBUBfUBUBVB{VBVBRWBWB3XBXB)YBYB3ZBZBR[B[B{\B]BoB oB)nBHmB\lBkBjBiBhBhBHgBqfBeBdBdBHcBbBaBaB\`B_B^BH^B]B]B\\B[B)[BZB ZBYBXB{XBXBWBWBVB=VBUB{UBUBTB{TB3TBSBSBqSB=SB SBRBRBRB{RBfRBRRBHRB=RB=RB=RBHRB\RBqRBRBRBRBRB)SB\SBSBSBTB\TBTBUBRUBUBVB{VBVBRWBWBHXBXBHYBYB\ZBZB[B\B\BoBnBmBlBkBkB3jBRiB{hBgBfBfB3eBfdBcBbBbB\aB`B_B3_B^B]B3]B\B[BR[BZB)ZBYBYBXB XBWBWBVB3VBUBfUB UBTB\TB TBSB{SB=SBSBRBRBqRBHRB)RB RBQBQBQBQBQBQBQBQBRBRB=RBfRBRBRBRB)SBfSBSBSBHTBTBTBHUBUBVBVBVBfWBWB\XBXBfYBYBZB[B[BR\BoB)nBHmBflB{kBjBiBhB hB3gBffBeBdBcB3cBfbBaB`B3`B{_B^B^Bf]B\B\B{[BZBHZBYB)YBXBXBWBWBVB3VBUB\UBUBTBHTBSBSBRSBSBRBRB\RB)RBRBQBQBQBQB{QBqQBfQBfQBfQBqQBQBQBQBQBQBRBRRBRBRBSBHSBSBSB3TBTBTBHUBUBVBVBWB{WBWB{XBYBYBZBZBR[B[BnBmBlBkB kB3jBRiBqhBgBfBeBeBRdBcBbBaB3aB{`B_B _BR^B]B\BR\B[B [BqZBYBHYBXB3XBWB)WBVB3VBUB\UBTBTB3TBSBSB3SBRBRB\RB)RBQBQBQBqQBRQB3QBQB QBQBPBPBQB QBQB)QBHQBfQBQBQBQBRBRRBRBRBSBqSBSBTB{TBTBHUBUB)VBVBWBWBXBXB)YBYBRZBZB[B3nBHmBflBkBjBiBhBhB)gBRfBeBdBcBcBRbBaB`B `BR_B^B]B3]B\B[B=[BZBZBfYBXBHXBWB=WBVB=VBUBRUBTBTBTBSBfSBSBRB{RB3RBQBQBQBRQB)QBQBPBPBPBPBPBPBPBPBPBPBPBPBQBQBRQB{QBQBQB)RBqRBRB SB\SBSBTB{TBTBHUBUB3VBVB)WBWB=XBXB\YBYBZB)[BmBlBkBkB3jBRiBqhBgBfBeBeB=dBqcBbBaBaBR`B_B^B)^Bq]B\B\Bq[BZB)ZBYBYBfXBWBRWBVBHVBUB\UBTB{TBTBSBRSBRBRBRRB RBQBQBHQBQBPBPBPBqPB\PBHPB3PB)PBPBPB)PB3PBHPB\PBqPBPBPBPBQBHQBQBQB RBRRBRBRBRSBSBTB{TBTBRUBUBHVBVBHWBWBfXBXBYB)ZBZBRmBflBkBjBiBhBhBgBHfBqeBdBcBcB3bBqaB`B_B)_Bq^B]B]BR\B[B[B\ZBYBYBXBWBfWBVB\VBUB\UBTB{TB TBSB=SBRBRB3RBQBQBRQBQBPBPB{PBHPB)PB PBOBOBOBOBOBOBOBOBOBOB PB)PBRPB{PBPBPBQB\QBQBQB=RBRBRBHSBSBTB{TBTBfUBUBfVBVBqWBXBXB)YBYB\ZBlBkBkB3jBRiBqhBgBfBeBeB3dB\cBbBaBaB3`B{_B^B^BH]B\B[B3[BZBYBHYBXBXBWBWBqVBUBqUBTB{TB TBSB3SBRBqRBRBQB{QB)QBPBPBqPB=PB PBOBOBOB{OBfOB\OBROBHOBHOBROB\OBqOBOBOBOBOB PB=PBqPBPBPB3QBQBQB)RB{RBRB=SBSBTBTBUB{UBVBVB WBWB)XBXB\YBZBqlBkBjBiBhBhBgBHfBfeBdBcBbBbBRaB`B_B _BH^B]B\B\Bq[BZBZB{YBXB=XBWBWBVBVB{UBUBTB TBSB)SBRBfRBRBQBRQB QBPB{PB=PBPBOBOBqOBHOB)OBOBOBNBNBNBNBNBNBOBOB3OBROB{OBOBOB PBHPBPBPBQBfQBQBRB{RBRBHSBSBTBTBUBUBVBVB3WBWB\XBXBYBlBkB3jBRiBqhBgBfBeBdBdBRcB{bBaB`B`BR_B^B]B]Bf\B[B[BRZBYB YBqXBWB=WBVBVBUB UBTBTBSB)SBRBRRBQBQB=QBPBPBRPB PBOBOB\OB)OBOBNBNBNBNB{NBqNBqNBqNB{NBNBNBNBNBNB OB=OBfOBOBOBPBfPBPBQBRQBQB RBqRBRBHSBSB3TBTB3UBUB=VBVB\WBWBXB3YBkBjBiBhBhBgB=fBfeBdBcBbB bB=aBq`B_B^B)^Bf]B\B[B=[BZBYB=YBXBXBfWBVB=VBUBUBTBTBSB)SBRBRRBQBQB)QBPB{PB)PBOBOB\OB)OBNBNBNBqNBRNB3NBNBNB NBNB NB NBNB)NB=NB\NB{NBNBNBOB3OBqOBOBOBHPBPBPBHQBQB RBqRBRBRSBSBHTBTBRUBUBfVBWBWB3XBXBkB=jBRiBqhBgBfBeBdBdB=cBqbBaB`B`B=_B{^B]B\B=\B[BZBZB{YBXB)XBWBVB\VBUB=UBTB)TBSB3SBRBHRBQB{QBQBPB\PB PBOBqOB3OBNBNBNBRNB)NBNBMBMBMBMBMBMBMBMBMBMBMBMBNB=NBfNBNBNB OBHOBOBOB)PBPBPB=QBQB RB{RBRBfSBSBfTBTBqUBVBVB3WBWBqXBjBiBhBhBgB=fB\eBdBcBbBbB)aB\`B_B^B ^BH]B\B[B[B\ZBYB YB\XBWBWBVBUB\UBTB=TBSB=SBRBHRBQBqQB QBPBHPBOBOBROBOBNBNBHNBNBMBMBMB{MB\MBHMB=MB3MB)MB)MB3MB=MBRMBfMBMBMBMBMB)NBfNBNBNB)OBqOBOBPB{PBPB=QBQBRBRBSB{SBTBTB UBUB3VBVBfWB XB3jBHiBfhBgBfBeBdBdB)cBRbBaB`B_B_BR^B]B\B \BR[BZBYB3YBXBWB=WBVB VBqUBTBRTBSBHSBRBHRBQBfQBPBPB)PBOB{OBOBNBNBHNB NBMBMBqMBHMBMBMBLBLBLBLBLBLBLBLBLBLBMB3MB\MBMBMBMB3NBqNBNB OB\OBOB PBfPBPB=QBQBRBRBSBSBTBTB3UBUBfVBWBWBiBhBgBgB)fBHeBqdBcBbBaBaB=`Bq_B^B]B]B\\B[BZB)ZBqYBXBXBqWBVB3VBUBUBqTBSB\SBRBRRBQBfQBPBPBPBOB\OB OBNBfNBNBMBMBfMB3MBMBLBLBLB{LBfLB\LBRLBHLBRLBRLBfLBqLBLBLBLBLBMBRMBMBMB NBRNBNBNBHOBOBPBfPBPB=QBQB3RBRB3SBSB=TBTBfUBVBVB=WBRiBfhBgBfBeBdBdBcBHbBqaB`B_B_B3^Bq]B\B[B)[BqZBYBYBRXBWBWB\VBUB)UBTBTBqSBRBfRBQBfQBPBPBPBOBROBNBNBHNBMBMBqMB)MBLBLBLBfLBHLB)LB LBKBKBKBKBKBKBKB LBLB=LB\LBLBLBLBMB\MBMBMB3NBNBNB=OBOBPBfPBPBRQBQBHRBRBRSBSBfTBUBUB3VBVBhBgBgB3fBHeBqdBcBbBaBaB3`B\_B^B]B]B3\B{[BZBZBHYBXBWB=WBVBUBRUBTBTBSBSB{RBQBqQBPBPBPBOB=OBNBNB)NBMBMB=MBMBLBLBRLB)LBLBKBKBKBKB{KB{KBqKBqKB{KBKBKBKBKBKBLBHLB{LBLBLB3MB{MBMBNBqNBNB3OBOBPBqPBPB\QBQB\RBRBqSBTBTB3UBUBqVBqhBgBfBeBdBdBcB=bBfaB`B_B^B^BR]B\B[B [BHZBYBXBXBqWBVBVB{UBTBHTBSBSBRB RBQBQBPBPBOB3OBNBqNBNBMBfMBMBLBLBRLBLBKBKBKBfKBHKB3KBKBKB KB KB KBKBKB3KBHKBfKBKBKBKBLBHLBLBLBMB\MBMB NBfNBNB3OBOB PB{PBPB{QBQBRB SBSB3TBTBqUB VBhBgB3fBReBfdBcBbBaB`B`BR_B{^B]B\B\BR[BZBYBYBfXBWBWB\VBUB UBqTBSB=SBRBRBQBQBPBPBOB3OBNBfNBNBMBHMBLBLBfLBLBKBKB{KBHKBKBKBJBJBJBJBJBJBJBJBJBJBJBJBKBHKBqKBKBKBLBfLBLBLBHMBMBNB\NBNB3OBOBPBPBQBQBRBRB=SBSBfTB UBUBgBfBeBdBcBcB=bB\aB`B_B^B ^B=]Bq\B[BZB)ZBfYBXBWBHWBVBUB=UBTBTBfSBRB=RBQB)QBPB)PBOB3OBNB\NBMBMB3MBLBLB=LBKBKBqKB=KB KBJBJBJBqJB\JBHJB3JB3JB)JB3JB=JBHJB\JBqJBJBJBJB KB=KB{KBKBKB=LBLBLB=MBMBMB\NBNB=OBOB)PBPB)QBQB=RBRBfSBTBTBHUBgB3fBReBqdBcBbBaB`B`B=_Bq^B]B\B\B=[B{ZBYBXB=XBWBVBVB{UBTB3TBSBRB\RBQB=QBPB3PBOB=OBNBRNBMBMBMBLBqLBLBKBKBHKB KBJBJBqJBHJBJBJBIBIBIBIBIBIBIBIBIB JB)JBHJBqJBJBJB KBHKBKBKB)LB{LBLB)MBMBMBfNBNBHOBOBHPBPBRQBQBqRBSBSB=TBTBfBeBdBdBcB=bB\aB{`B_B^B^B)]B\\B[BZB ZBHYBXBWBWBfVBUB UB\TBSBSBRBQB\QBPBHPBOBHOBNBRNBMB{MBMBLBRLBLBKB\KBKBJBJB\JB)JBJBIBIBIB{IBfIB\IBRIBRIBRIB\IBqIBIBIBIBIB JB3JBfJBJBJB)KBqKBKB LBfLBLB)MBMBMBqNBNB\OBOB\PBPBqQB RBRB3SBSB{TB=fBReBqdBcBbBaB`B `B3_B\^B]B\B[B[B\ZBYBXBXB\WBVBUBHUBTBSBRSBRBRB{QBPBfPBOBROBNB\NBMB{MB MBLBHLBKBKB=KBJBJBfJB)JBIBIBIBfIBHIB)IBIBIBHBHBHBHBHBIBIB3IBRIBqIBIBIBJB3JB{JBJBKBRKBKBLB\LBLB)MBMBNB{NBNBqOBOBPB QBQB3RBRBqSBTBeBdBdBcB=bB\aB{`B_B^B]B]BH\B{[BZBYB)YBfXBWBVB3VBUBTB)TBSBRB=RBQBQB{PBOBfOBNBfNBMB{MB MBLB3LBKB{KBKBJBJB=JBIBIBIBRIBIBHBHBHBHBHBHB{HB{HB{HBHBHBHBHBHB IB3IB\IBIBIB JBRJBJBJB=KBKBKBRLBLB)MBMBNBNB OBOBPBPB=QBQBqRB SBSB\eBqdBcBbBaB`B `B3_BR^B{]B\B[B [B=ZB{YBXBWB3WB{VBUBUBfTBSBSBqRBQB3QBPB PBOBNB{NBMB{MB MBLB)LBKBfKB KBJB\JBJBIBIBHIBIBHBHBHBfHBRHB3HBHBHB HB HBHBHB)HB=HBRHBqHBHBHBHB)IBfIBIBIB3JB{JBJB)KBKBKBRLBLB3MBMB)NBNB)OBOB=PBPBqQB RBRBHSBdBdBcB=bB\aB{`B_B^B]B ]B=\Bf[BZBYB YBHXBWBVB VBRUBTBSBHSBRBRB\QBPB3PBOBOBNB NBMB MBLB)LBKBRKBJBJBHJBIBIB\IBIBHBHBqHBHHBHBHBGBGBGBGBGBGBGBGBGBGBGB HB3HB\HBHBHBHB3IB{IBIBJBfJBJBKBKBKB\LBLBHMBMB=NBNBROBOBqPB QBQB=RBRB{dBcBbBaB`B `B)_BR^Bq]B\B[BZB)ZB\YBXBWBWBRVBUBTB3TBSBRB3RBQBPBRPBOB3OBNBNBMBMBLB)LBKBRKBJBJB)JBIBIB3IBHBHBqHB3HB HBGBGBGBqGB\GBHGB=GB3GB3GB3GB=GBRGBfGB{GBGBGBGBHBRHBHBHBIB\IBIBJB\JBJBKBKBKBfLBLB\MBMB\NBNBqOB PBPB=QBQBRB dBcB=bB\aB{`B_B^B]B]B)\B\[BZBYBXB)XBfWBVBUB)UBqTBSBSBfRBQBQB{PBOBROBNB3NBMB)MBLB)LBKBHKBJB{JBJBIBfIBIBHB{HB=HBHBGBGBfGBHGBGBGBFBFBFBFBFBFBFBFBFBGB3GB\GBGBGBGBHBfHBHBHB=IBIBIBRJBJBKBKBLBqLBLBqMBMB{NB OBOB=PBPB{QBRBcBbBaB`B `B)_BH^Bq]B\B[BZBZBHYB{XBWBVB3VBqUBTBTBRSBRBQBRQBPB PBqOBNBRNBMB=MBLB3LBKBHKBJBqJB JBIBHIBHBHB\HBHBGBGB\GB)GBGBFBFBFB{FBqFBfFB\FB\FB\FBfFB{FBFBFBFBFBGBHGB{GBGBGB=HBHBHB)IBIBIBHJBJBKBKB LBLB MBMBNBNB=OBOBqPBQBQB)cBHbB\aB{`B_B^B]B]B\BH[B{ZBYBXB XBHWBVBUBUBHTBSBRB3RBQBPB=PBOBOBqNBMBRMBLBHLBKBRKBJBfJBJBIB3IBHBHB3HBGBGB\GBGBFBFBFBfFBHFB)FBFBFBEBEBEBEBFB FBFB=FB\FBFBFBFBGBHGBGBGBHBqHBHBIB{IBIBHJBJB)KBKBLBLB)MBMB=NBNBqOB PBPBRQBbBaB`B `B)_BH^Bf]B\B[BZB ZB3YBfXBWBVBVBRUBTBSBSBqRBQBQBqPBOB)OBNBNBqMBLB\LBKB\KBJBfJBIBIB)IBHBqHBHBGB{GB3GBFBFB{FBHFBFBEBEBEBEBEBEBEBEBEBEBEBEBEBEBFB=FBqFBFBFBGBfGBGBHB\HBHBIB{IBIBRJBJB=KBKB=LBLBHMBMBqNB OBOBHPBPBHbBfaB{`B_B^B]B\B\B=[BfZBYBXBWB)WBfVBUBTBTBfSBRBRBRQBPBPB\OBNB)NBMBMBqLBKBfKBJBqJBIBIBIBHB\HBHBGBRGB GBFBFBHFB FBEBEBEBfEBREB3EB)EBEBEBEBEBEB3EBHEBfEBEBEBEB FB=FB{FBFBGBHGBGBGBHHBHB IB{IBIB\JBJBRKBKB\LBLBqMB NBNB=OBOBPBaB`B `B)_BH^Bf]B\B[BZBYB)YBRXBWBVBUB3UBqTBSBRB=RBQBPB3PBOBNBRNBMBMBLBLB{KBJB{JBJBIBIBHBHHBGBGB=GBFBFBRFBFBEBEBqEBHEBEBEBDBDBDBDBDBDBDBDBDBDBDBEB=EBfEBEBEB FBRFBFBFB3GBGBGB=HBHBIB{IBIBfJBJBfKBKB{LB MBMB=NBNB{OBPBfaB`B_B^B]B\B\B=[B\ZBYBXBWBWBHVBUBTBTB=SBRBQBQBqPBOBOB{NBMBHMBLBLBKB KBJB JBIBIBHB=HBGB{GBGBFB{FB)FBEBEBfEB3EBEBDBDBDBqDB\DBHDB=DB=DB=DB=DBHDB\DBqDBDBDBDBEB3EBfEBEBEB)FBqFBFBGB{GBGB=HBHBIBIBJBJBKBKBLBLB=MBMBqNBOBOB`B`B)_BH^Bf]B\B[BZBYBYBHXBqWBVBUBUBRTBSBRBRB\QBPBPBROBNB NBqMBLB=LBKBKBJBJBIBIBHB=HBGBqGB GBFB\FB FBEB{EB3EBDBDBDBfDB=DBDBDBCBCBCBCBCBCBCBCBDBDB=DBfDBDBDBDB3EB{EBEB FB\FBFB GBqGBGB=HBHBIBIBJBJBKBKB=LBLBqMB NBNBROB`B_B^B]B\B\B3[B\ZB{YBXBWBWB3VBfUBTBSBSB\RBQBPB=PBOBNB=NBMBMBfLBKB=KBJB)JBIB)IBHB=HBGBfGBGBFB=FBEBEBREB EBDBDBRDB)DBCBCBCBCB{CBqCBfCB\CB\CBfCBqCBCBCBCBCBCB)DB\DBDBDB EBREBEBEBHFBFBGBfGBGBHHBHB3IBIB3JBJBHKBKBqLB MBMBHNBNB`B3_BH^Bf]B\B[BZBYB YB3XBfWBVBUBTB3TBqSBRBQB3QB{PBOBOBqNBMB)MBLBKB\KBJB=JBIB3IBHB=HBGB\GBFBFB)FBEB{EB)EBDBDB\DBDBCBCBCBfCBHCB)CBCBCBBBBBBBBBCBCB)CBHCBfCBCBCBCB)DB\DBDBDB3EBEBEB=FBFBGBqGBGBRHBHBHIBIBRJBJBqKBLBLB=MBMBNB_B^B]B\B\B3[BRZBqYBXBWBVBVBRUBTBSBSB=RB{QBPB PB\OBNBNB\MBLBLBKBJB\JBIBHIBHBHHBGB\GBFB{FBFBEB\EB EBDBqDB)DBCBCBqCBHCBCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBHCB{CBCBCB3DB{DBDBEBqEBEB)FBFBGBqGBGB\HBHB\IBIBqJBKBKB3LBLBqMBNB3_BH^Bf]B\B[BZBYB YB)XBRWBVBUBTBTBRSBRBQB QBRPBOBNB=NBMBLBHLBKBKB{JBIB\IBHBRHBGB\GBFB{FBFBEBHEBDBDBHDBDBCB{CB=CB CBBBBBBBfBBHBB3BBBBBBBBBBBB)BB3BBRBBfBBBBBBBBCBHCBCBCBDB\DBDB EBfEBEB)FBFBGB{GBGBqHBHB{IB JBJB3KBKBfLB MBMB^B]B\B\B3[BRZBqYBXBWBVBVB=UBqTBSBRBRB\QBPBOB)OB{NBMBMB{LBKB=KBJB JB{IBHBfHBGBfGBFB{FB FBEB=EBDBDB)DBCBCBHCB CBBBBBfBB=BBBBABABABABABABABABABABABBBBBHBBqBBBBBBCB\CBCBCBHDBDBDB\EBEB)FBFBGBGB HBHBIBIB3JBJBfKBLBLBRMBR^Bf]B\B[BZBYBYB)XBHWBqVBUBTBTB3SBqRBQBPB)PBqOBNB NB\MBLB LBfKBJB3JBIB IB{HBGBqGBFB{FB FBEB3EBDBqDBDBCBfCBCBBBBB\BB)BBABABABABqAB\ABHAB=AB=AB=AB=ABHAB\ABqABABABAB BB=BBqBBBBBB=CBCBCB3DBDBDBREBEB3FBFBGBGB)HBHB=IBIBfJBKBKB=LBLB]B]B\B3[BRZBqYBXBWBVBVB3UB\TBSBRBRB=QB{PBOBOBHNBMBLB=LBKBJB\JBIB)IBHB HBGBGBFB FBEB)EBDB\DBDBCBHCBCBBBqBB)BBABABAB\AB=ABABAB@B@B@B@B@B@B@B@B AB)ABHABqABABAB BBHBBBBBBCBqCBCB)DBDBDB\EBEB=FBFB=GBGBHHBHBfIBJBJB3KBKBLBq]B\B[BZBYBYBXBHWBfVBUBTBSBSBRRBQBPB PBHOBNBMB)MB{LBKB)KBJBIBRIBHB)HBGBGBFBFBEB)EBDBRDBCBCB3CBBBBB=BBBBABABHABAB@B@B@B@B{@Bq@Bf@B\@B\@Bf@Bq@B@B@B@B@BAB3ABfABABABBBfBBBB CB\CBCBDBDBDB\EBEBRFBFBRGBGBfHBIBIB3JBJBqKBLB]B\B3[BRZBqYBXBWBVBUBUBRTB{SBRBQBQB\PBOBNBNBfMBLB LB\KBJBJB{IBHBHHBGB3GBFB)FBEB)EBDBHDBCB{CBCBBBqBBBBABABRABAB@B@B@B\@B=@B@B @B@B?B?B?B?B @B@B3@BH@Bq@B@B@B@B3ABqABABABHBBBBBBRCBCBDBDBDBqEBEBfFBFB{GBHBHB)IBIBfJB KBKB\B[BZBYBYBXB=WBfVBUBTBSB SB=RBqQBPBOB)OBfNBMBLBHLBKBJBHJBIB IBqHBGBHGBFB3FBEB3EBDBHDBCBqCB CBBBRBBBBABfABAB@B@Bq@B=@B@B?B?B?B?B?B?B?B?B?B?B?B?B?B@B)@B\@B@B@BABHABABAB3BBBBBBHCBCBDBDBEB{EBFBFB GBGB)HBHB\IBJBJBHKB\B=[BRZBqYBXBWBVBUBUB=TBqSBRBQBQB=PB{OBNBMB=MBLBKB)KB{JBIB3IBHBHBfGBFBRFBEBHEBDBRDBCBqCBCBBB=BBABAB=AB@B@Bq@B3@B@B?B?B?B\?BH?B3?B?B?B?B?B?B)?B=?BR?Bq?B?B?B?B@B\@B@B@B)ABqABABBB{BBBBHCBCB)DBDBEBEBFBFB3GBGB\HBHBIB=JBJB[BZBYBYBXB=WB\VBUBTBSBSB)RB\QBPBOB OBHNBMBLBLBfKBJB JBfIBHB)HBGBFBfFBEB\EBDB\DBCBfCBCBBB3BBABqABAB@B@B=@B@B?B?B\?B3?B?B>B>B>B>B>B>B>B>B>B>B>B ?B)?BR?B?B?B?B)@Bq@B@B AB\ABABBBqBBBBHCBCB3DBDB3EBEB=FBFB\GBGBHB3IBIB{JB=[B\ZBqYBXBWBVBUBUB3TB\SBRBQBPBPB\OBNBMBMB\LBKBJBHJBIBHBRHBGBGBFBEBqEBDBfDBCBqCBCBBBBBAB\AB AB@B\@B@B?B?B\?B?B>B>B>B>Bf>BR>BH>B=>B=>B=>BH>BR>Bf>B{>B>B>B>B?BH?B?B?B@BR@B@B@BHABAB BBqBBBBRCBCBHDBDBHEBEBfFBFBGB)HBHBqIBJBZBYBYBXB=WB\VB{UBTBSBRBRBHQB{PBOBNB)NBfMBLBKB=KBJBIB)IBHBGBHGBFBFBEBEB{DBCB{CBCBBBBBABRAB@B@B=@B?B?Bf?B?B>B>B>B\>B3>B>B>B=B=B=B=B=B=B=B=B>B3>BR>B{>B>B>B?BR?B?B?B3@B@B@B=ABAB BB{BBBB\CBCB\DBDBqEBFBFB)GBGBfHB IBIB\ZB{YBXBWBVBUB UB3TBRSB{RBQBPB PBHOB{NBMBLB3LB{KBJBJBfIBHBHBqGBFB=FBEBEBDB DBCB CBBBBBABHAB@B@B)@B?B?B=?B>B>B{>BH>B>B=B=B=B=B{=Bq=Bf=B\=Bf=Bf=B{=B=B=B=B=B >B=>Bq>B>B>B3?B{?B?B@Bq@B@B3ABAB BBBBBBqCBCB{DBEBEB)FBFB\GBHBHBHIBYB YBXB=WB\VB{UBTBSBRB RB=QBfPBOBNB NBHMBLBKB KB\JBIBHBHHBGBGBfFBEB=EBDBDBCBCBBBBBAB=AB@Bq@B@B?Bf?B?B>B>BH>B >B=B=B{=B\=B==B=B =B=BB=>B{>B>B ?B\?B?B @Bf@B@B3ABABBBBB CBCBDBDB)EBEB\FBFBGB=HBHB{YBXBWBVBUB UB)TBRSBqRBQBPBOB)OBfNBMBLBLB\KBJBIB3IBHBGB3GBFBEB\EBDB=DBCB)CBBB)BBAB=AB@Bf@B@B?BH?B>B>B\>B>B=B=Bf=B3=B =BB\>B>B>BH?B?B@Bf@B@B=ABAB)BBBBCBCB3DBDBREBEBFB)GBGB{HB YB)XB=WB\VB{UBTBSBRBRB3QB\PBOBNBMB)MBfLBKBJB)JB{IBHBHBqGBFBFBEBDB\DBCB=CBBB3BBAB=AB@B\@B?B?B3?B>B>B3>B=B=Bf=B)=BB>B>B3?B?B?Bf@B@BHABAB=BBBB=CBCB\DBDBEB)FBFBqGBHBXBWBVBUB UB)TBHSBqRBQBPBOBOBHNBMBLBKB3KB{JBIB IBRHBGBGBRFBEBEB{DBCB\CBBBHBBABHAB@B\@B?B?B?B>Bf>B>B=B{=B3=BBq>B>B)?B?B?Bf@B@BRABABRBBBBfCBCBDBEBEB\FBGBGB)XBHWB\VB{UBTBSBRBRBQBRPB{OBNBMBMBHLBKBJB JBHIBHBGB3GBFBEBHEBDB DB{CBBB\BBABRAB@B\@B?B{?B?B>BR>B=B=BR=B =BB\>B>B)?B?B@Bq@B@BfABABqBBBBCBDBDBREBEBFBHGBWBVBUB UB)TBHSBfRBQBPBOB OB3NBfMBLBKBKBRJBIBHB)HBqGBFBFBqEBDB3DBCB CB{BBABfAB@Bf@B?B{?B ?B>B=>B=B=B3=BB>B)?B?B @B{@BAB{AB BBBBCBCBRDBDBEB3FBFBHWBfVB{UBTBSBRBQBQB=PBqOBNBMBLB3LBfKBJBIB)IBfHBGBGBRFBEBEBfDBCB)CBBB BB{AB@Bq@B?B{?B ?B>B3>B=Bq=B=BB>B)?B?B@B@BABAB)BBBBRCBCBDB)EBEB{FBVBUB UB)TBHSBfRBQBPBOBOB)NBRMBLBKBJB3JBqIBHBGBHGBFBEB=EBDBCBRCBBB)BBAB AB@B@B?B ?B>B3>B=Bf=B=BB>B3?B?B)@B@B3ABABRBBBB{CBDBDBfEBFBfVBUBTBSBRBQBQB=PB\OBNBMBLBLBRKBJBIBIBHHBGBFBFBqEBDBDBCBBBHBBAB)AB@B@B?B?B>B)>B=BR=BB>BH?B?BH@B@B\ABAB{BBCBCB\DBEBEBUBUB)TBHSBfRBQBPBOBNBNBHMBqLBKBJBJBRIBHBGBGBfFBEBEB\DBCBCBqBBABHAB@B)@B?B)?B>B3>B=BR=BB>B\?B?Bf@B@B{ABBBBBRCBCBDBHEBUBTBSBRBQBQB3PB\OB{NBMBLB LB3KBqJBIBHBHBfGBFBEB=EBDBCB=CBBBBBfAB@BH@B?B3?B>B3>B=BH=BB>Bq?B?B@BABABHBBBBCB3DBDBUB)TBHSBfRB{QBPBOBNB NB3MBfLBKBJBIB3IBqHBGBFB3FB{EBDBDBqCBBB)BBAB@Bf@B?BH?B>B=>B=BH=BB?B?B@B@B3ABABqBBCBCBfDBTBSBRBQB QB3PBROBqNBMBLBKBKBRJBIBHBHB=GB{FBEB EB\DBCBCB\BBABAB@B?Bf?B>BR>B=BR=BB>B?B?B=@B@BfAB BBBBRCBDB3TBHSBfRBQBPBOBNBNB)MBRLBKBJBIBIBRHBGBFB FBREBDBCB=CBBBABHAB@B@B?B>Bf>B=B\=BB>B=?B?Bf@BABABHBBBBCBSBRBQBQB)PBROBqNBMBLBKBKB=JBqIBHBGBGB\FBEBDB)DB{CBBBBB{AB@B=@B?B?B>B=Bq=BB>Bf?B@B@B3ABABBB3CBRSBfRBQBPBOBNBNBMBHLBqKBJBIBIB3HBqGBFBEB)EBqDBCB CB\BBAB ABf@B?B3?B>B>B=B=B{B?B?B3@B@BqABBBBBRBQBQB3PBROBqNBMBLBKBKB3JB\IBHBGBGB=FB{EBDBDBHCBBBAB=AB@B?B\?B>B3>B=B=BB>B)?B?Bf@B ABAB\BBqRBQBPBOBNBNBMB=LBfKBJBIBHBHBRGBFBEB EBHDBCBBB)BB{AB@B)@B?B>BR>B=B3=BB>B\?B@B@BHABABRBQB3PBROBqNBMBLBKBJBJBRIB{HBGBFBFB\EBDBCBCBfBBAB AB\@B?B?B{>B=BR=BB>B?B=@B@BABQBPBOBNBNBMB=LBfKBJBIBHB HB=GBqFBEBDB)DBfCBBBBBHAB@B?BH?B>B >Bq=BB3?B?B{@B)ABQB=PBROBqNBMBLBKBJBJB=IBqHBGBFBFB=EB{DBCBBB=BBAB@B)@B?B>B=>B=B=BqB>Bf?B@B@BPBOBNBNBMB=LB\KBJBIBHBHB)GB\FBEBDB DBHCBBBABABf@B?B?Bf>B=B)=BB?B?B\@B=PB\OBqNBMBLBKBJBJB3IB\HBGBFBEBEB\DBCBBBBB\AB@B?BH?B>B=B\=BBH?B?BOBNBNBMB=LB\KB{JBIBHBGBGBHFB{EBDBCB)CBfBBAB@B=@B?B>B3>B=BB>B?B\OB{NBMBLBKBJB JB3IBRHB{GBFBEB EB=DB{CBBBAB=AB{@B?B?Bf>B=B=B{B?BNB NBMB=LB\KB{JBIBHBGB GB=FBfEBDBCB CBHBBAB@B @B\?B>B=BR=BB>B{NBMBLBKBJB JB)IBRHBqGBFBEBDB)DBfCBBBABAB\@B?B>B3>B=BB NB)MB=LB\KB{JBIBHBGBGB)FB\EBDBCBBB)BBfAB@B?B)?B{>B=B=BqB >BR=BB=BB=B)=BqB)>Bf=BB=B=BHB>BH=BB=BB=B=B\B)>Bf=BB=BB>BH=BB=BB=B3=BfB=BB=B=BHBq=BB=B=B3Bf=BB=BBR=BB=BBH=BqB=BB>B==BfB=BB>B==B\B=BB>B3=B\B=BB>B3=BRB=BB3=BRB=BB==BRB=BB==B\AAAAAAAAA>AzAAApAA)BqBBBRBB BqBBHBB3BB3BBHBBqB BBR B B BR B B B{ BqBBBBBBB=BfBBBBBRBB B BH B B B) B{ BB3BBB\BB=BB3BB=BB\BBB3BBB=BApAAA(AAA\A4A AAAAA A4A\AAA>AA AABHBBB=BBBfBBHBBHBBRBBqBBB=BB B3 B B BR B BBB3BRBfBBBBBBHB{BBBBR B B B Bf B B BfBBBBB\BBHBBHBB\BBBBBqBBA AAAA\AAAzARA(AAAAA(ARAzAA A\AA(AAAA)B{BB3BBBfBBRBB\BBqBBB3BBqB B B{ B) B B BBBBBBB=B\BBBB B=BqB B B Bf B B BH BBBHBBB{BB\BBRBB\BB{BBBRBB\AA(AA4AAfAAAApAHA4AAA4AHApAAA(AzAAHAA>AApA BfBB)BBBqBBfBBqBBB)BB\B BB\ B B B{ B3 BB3BRBfBBBBBB=BfBBBB3 Bq B B B= B BB)B{BB=BB B{BBfBBfBB{B BB=BAAzAAHAARAAA4AAAAfARA>A>ARAfAAAAHAAAfAA\AAA4AARBBBBB{BB{BBBBBRBBB=BB BR B B BBBBBB3B\B{BBBB)B\B B B B= B B B BfBB BfBB3BB B{BBqBB{B BB3BAA>AAAfAApA AARAAAAApA\A\ApAAAAAfAAAAAzAAARA AAHBBBB BB BBBBHBBB)BBB3 B B B\ B=BRBqBBBBB B3B\BBB B BR B B B B\ BBBHBBB\BB)BB BBBB BB)BAAA\AAAA AA(AApA4AAAAAzAzAAAA AHAAA>AAAA>AApA(AAA=BB)BBBB)BBHBB{BBBfBBB{ B3 B BBBBB3BRBqBBBBBHBq B B B B\ B BB3BBB)BBBHBB)BBBBBB)BpAAAAzAA4AA(AAHAAARAAAAAAAAAA(AfAAA\AA>AA\AAAHAAAA=BB3BB3BBHBBqB BBRBBB\B B B B\BqBBBBBB)BRB{BB B B= Bq B B B3 B{BBBfBBB{BBHBB)BBBB)BpAAAA>AAARAAHAAfAAApA4A AAAAAAA AHAAA(AzAA\AAzAAAfA4AAAAHBB=BBHBBfBBB=BBB=BBB\ B BBBB3BRBqBBBB B3B\ B B B B= B{ BB BRBBBHBBBfBB=BB3BB)BpAzAAAA\AAApAAfAAAAAARA(AAAAAAA(AfAAAHAAAA AA>AAARAAAAARBBRBBfBBB3BBqBBB{B3BB B{BBBBBBBHBqBB B B BR B B B BRBBB)BBB3BBBfBBHBB=BpAAAAA4AzAAAAAA AA>AAApAHAA A A A AAHAAAAfAA4AA(AA\AAApA>A AAAAfBBqBBB)BBfB BB\BBB{B= B BB3BRBqBBBBB)BR B{ B B B B\ BBBBqBB BfBBBBB\BBHBAAAAAARAAA>AAAA(AA\A AAAfA>A(A(A(A(ARAfAAA4AAARAAHAAzAAAA\A(A AAAA{BBBBBRBBBHBBB\BBBBBBBBB=BfBB B B B= B{ B BB)BqBBBRBBBRBBBBBfBAAAAA A>ApAAApAARAA\AAA>AAAApA\AHAHA\ApAAAARAA AAAzA AARA AAApA>A4A(AABB)BBRBBB3BBB=BBBqB)B=BRBqBBBBBBH Bq B B B B= B{BBB=BBB3BBB=BBBBAAAAA A(A\AAA4AAApAAzAAA\AAAAAzAfAfAzAAAA4AAA>AAAA(AApA(AAAApARAHA>AHA3BBRBBB)BBqBBBBHBBBBBBB=B\BB B B B) B\ B BB BHBBBBfBBBqBB3BB B AAAA A(AHAzAAARAA AAAA4AAzA>AAAAAAAAAAARAAA\AA>AA\AAAHAAAAApAfApAzAARBB{BBB\B BBfBBBBHB\BqBBBBBB3 B\ B B B B B\BBBB\BBBHBBB\BB3B4A(AAA A(AHAfAAAApAA(AAAARAAA\AAAAAAAAAA4ApAAAzAA\AAzA AAfA4AAAAAAAAAAqB BBHBBBHBBBfB)BBBBB=B\B{B B B B BH B{ BBB)BfBBB=BBB3BBBRBARAHA(A4A(AHAfAAAA4AAAHAA>AApA AAzA>AAAAAAAAARAAA4AAAzA AA>AAARAAAAAAAAAA BB=BBB)BBB=BBB\B{BBBBB B3 BR B{ B B B B=B{BBB3B{BBBfBBB{BAApAfAHARAHAfApAAA ARAA AfAA\AAzA(AAA\A4A AAAAAA4ApAAARAAAA(AA\AAApA>A AAAAAAAA4A3BBqBBBqBBBBRBB BB=B\B{B B B B B= Bf BBB BHBBB B\BBBRBB BAAAAfApAfAAAAA(ApAA(AA AzAAAHAAAzARA(AAAAA>AfAAAApAA>AAHAAzAAAA\A>AAAAAAA4ARAA\BBBRBBBfBBB{BBBBB B) BH Bq B B BB)B\BBBBRBBB3BBB=B4AAAAAAAAAAAAHAAAHAAAA4AAfAAAApAHA4AA4A4A\AAAA>AAA\AAfAAA>AAAzA\A>AAAA(A4ARApAAAB=BBBHBBBqB B)B=B\B{B B B B B) BR BBBB)B\BBB)BqBBBqBARAAAAAAAAAAA4AfAA AfAA4AARAAA4AAAAfARA>ARARAzAAA A\AAAA AAAA\AAAAzA\A>A4A>AHARApAAA A)BBqBBBBHB BBBBB B) BH Bf B B BBBHB{BBB3BqBBBRBBBApA>A AAAAAAAAARAAAAAARAApAAARAAAAApApApApAAAA(AzAA4AA(AA4AAA4AAAAzApAfA\AfAAAAA(ApA\B BBfBBBB)BHB\B{B B B B B BH BqBBB B=B{BBBHBBB3BAAA\A(A AAAAAA A>A\AAA4AAApAAAAApA4AAAAAAAAAA AHAAARAAHAAfAAAfAAAAAAAzAAAAAAHAAABHBBBqB)BBBB B B= Bf B B BBB3BfBBB BHBBBBqBA>AAAzAHA(A AAAA A(A\AzAA ARAAAAAA4AAARAAAAAAAAAA(AzAAApAAfAAAAAA>A AAAAAAAAAA4AzAA A)BBBHBBBHB\B{B B B B B B= BfBBBB)B\BBBBfBBBAHAAAAfAHA(AAAA(AHAfAAA(ApAA>AA4AARAAApA4A AAAAAAAAHAAA>AA AAAAHAAA\A(A AAAAAAAA4AfAAA(AAqBBBBRBBB B B= B\ B B BBBBRBBBB)BfBBB=BAAfAAAAAfAHA>A4A>AHAfAAAAHAAA\AARAApAAAARA(AAAAAAA>AfAAA\AA(AA4AAfA AAzAHA(A AAAAAAARAAAAHAABBfB)BBfB{B B B B B B3 B\BBBBBHB{BBB=BBA>AAA>A AAAAfA\ARA\AfAAAAAfAA AzAApAAA>AAApAHAA A A AA4A\AAA(AzAAHAARAAA(AAAzAHA(AAA AA4ARApAAAAzAAAHBBB{BB B) B= B\ B{ B BBBB=BqBBB BHBBBBA\AAA\A(AAAAAzApAzAAAAA>AAA(AA AAAA\A AAAfA>A(A(A(A>ARAzAAAHAAAfAApAAAHAAAAfAHA>A4A(A4ARApAAA ARAAARAABHB BB B B B B B) BRB{BBBB)BfBBBB\BHAAzAAAzAHAAAAAAAAAAAA\AAAHAA(AA4AAzA(AAAA\AHAHAHA\ApAAAAfAAAAAAAAfAAAAAfA\ARA\AfApAAAA(ApAAApAABBBB) BH B\ B{ B BBB B3B\BBBB)BfBBAfAAA>AAAfAAAAAAAAAAA4AzAA AfAAHAARAAAHA AAAzAfAfAfAzAAAA4AAA>AA4AA>AAARA AAAAzApAzAAAAAAHAAA4AAApAqB3B B B B B B) BHBqBBBBBHBBBB3BApAAA\AAAA>AAAAAAAAAARAAA(AAAfAApA AAfA(AAAAAAAAAAARAAA\AARAApAAApA(AAAAAAAAAAA4AfAA ARAAAABB3 BH Bf B{ B BBBB)BRB{BBB BHBBAAA4AAzAAAA\A>A AAAAAAA>ApAAAHAAAA AA(AAAHA AAAAAAAAA4ApAAAzAApAAAAAAHAAAAAAAAAAARAAA(AAA>AA4ARB B B B B) BHBfBBBB B3BfBBBBAAARAAA>AAAzA\A(AAA AAA>A\AAA AfAA4AA(AAHAAAfA(AAAAAAAAARAAA4AAAA AARAAAfA4AAAAAAAAARAAAAHAAApAARAAR Bf B{ B BBBBB=BfBBBB)BfBHAA>AApAAA\AAAAzAHA>A4A(A4A>A\AzAAA(AAARAAHAAfAAAAHAAAAAAA A4ApAAARAA4AA>AApAAAAfA4AA AA AAA>ApAAAAfAAAAApAA B B B) BHBfBBBBB)BRBBBAfAA\AAAAAzA4AAAAfA\A>AHA>A\AzAAAAHAAApAAfAAA4AAAfA>AAAAAA(ARAAAApAARAA\AAA4AAAARA4A(AA(A4A>ApAAAA>AAARAAAAAq B B BBBBB=B\BBBBBHB AAAzA AA>AAARA AAAAzA\AfA\AzAAAAAfAAAAAA AARAAAA\A4AAAA4AHApAAA>AAApAAzA AARA AAApAfAHA>AHARApAAAA(ApAAApAA>AAHA B B) BHBfBBBBBBHBqBBA(AAAA(AA\AAApA(AAAAAAAAAAA A>AAA>AAAA(AApAAAAzARA>A>A>ARAzAAAA\AA(AAAA>AAA>AAAAAzApAzAAAAAAHAAA4AAApAAfA B BBBBB3B\B{BBBB3BAHAA>AAHAAzAAAAHAAAAAAAAAAA(A\AAA\AA>AAHAAA>AAAApA\A\A\ApAAAA>AAAHAA>AA\AAA\A(AAAAAAAAAAA4AzAA AfAAAAAA B3 BHBfBBBBB B3BfBBAAfAA\AAfAAA>AAAfA4AAAAAAAAAAHAzAAAzAA\AAfAAA\AAAAAzAzAzAAAA A\AAAfAA\AAzAAAzAHAAAAAAAAAAARAAA(AAARAA4AA BBBBB3BRB{BBBBBA AAAzAAAAA\AAAARAAAAAAAAA4AfAAA>AA AzAAAAAzA>AAAAAAAAAA(AzAAAAAzAAA>AAAfA4AAAAAAAAARAAAAHAAApAARAA3 BRBfBBBBBB)BRB{B\AA(AA AAAA4AAzA4AAApA>AAAAAAAARAAAA\AA(AAAA>AAA\AAAAAAAAAAHAAA>AAAA(AA\AAAARA4AAAAAAA>ApAAAAzAA4AAAA ABBBB3BRBqBBBB BzAAHAA(AA4AARAAARA AAA\A>AAA AA4A>ApAAAAzAAHAA>AA\A AAzA>AAAAAAAA>AzAA A\AA>AAHAAzAAAApARA4A(AAA4A>A\AAA ARAAARAA4AA(ARBqBBBBBBBHBqB4AAAfAAHAARAApAAApAAAAzA\A>A4A(A4A>A\AAAA>AAAfAA\AAzA(AAA\A4A AAAA A4A\AAA(AzAA\AAfAAARA AAApARAHA>AHARA\AAAA(ApAAApAARAAHABBB3BHBqBBBBBRAAAAAfAApAAA4AAzA4AAAAzA\ARAHARA\AzAAAA\AAAAAzAAAHAAAzARA(AAAA(ARAzAAAHAAAzAAAAApA(AAAApAfA\AfApAAAAAHAAA4AAApAAfAqBBBBBBB=BfBApAA>AA AAAAAARAAARAAAAAzApAfApAzAAAA4AzAA4AAAAAAfAAAApAHA4A4A4AHApAAAAfAAAAAA4AAAHAAAAAAzAAAAAA4AfAA ARAAAAAABB3BRBfBBBBA>AAA\AA(AAAA>AApAAApA>A AAAAAAAAAA ARAAARAA4AA>AAA4AAAAfARARARAfAAAA4AAA>AA4AARAAAfAAAAAAAAAAAARAAA(AAARAA4AABBBBBB=B\B A\AAAzAAHAA>AA\AAA4AAA\AAAAAAAAAAA(ApAAApAARAA\AAARAAAAApApApAAAAARAAA\AARAApAAAARAAAAAAAAA A>ApAAAHAAApAARAAB3BRBfBBBBA(AzAA4AAAfAA\AAzA AARAAAzA4AAAAAAAAAAHAAAAAApAAzAAApA4AAAAAAAAAA4ApAAAzAApAAA4AAApA>AAAAAAA A>A\AAAAfAAAAAA ABBBBB3BRBAHAAARAAAAAzA AA(AApAAAARA4AAAAAAAA4AfAAA>AA AAAA4AAA>AAAAAAAAAARAAA4AAAAAAfA AAA\A>AAA AAA>A\AzAAA>AAARAAAA(A=BRBqBBBBAAfAA A\AA(AAAAAAHAAzA4AAApARAAA AA AA4ARAAAA\AA(AAAARAAA\A4A AAAAAA A4ApAAAfAA4AA>AAA(AAAzA\A>A4A(A4A>A\AzAAAA\AAApAARAAHABBBB3BRBA4AAA(AzAAHAA>AA4AAfAAARA AAApA>A4A(AA(A4ARApAAA4AzAAHAA>AApA AAzARA(AAAAAA(ARAAAAAARAA\AAAHAAAAzA\ARAHARA\AzAAAAHAAA4AAApAAfA\BqBBBBAARAAAHAAAfAA\AARAAAAApA(AAAzA\ARAHA>AHARApAAA ARAAAfAA\AAA(AAApAHAA A A AAHApAAA>AA ApAAzAAAfA4AAAAzApAfApAzAAAAAfAAARAAAAAABBB3BRBAApAAAfAAAAAzAApAAA4AAAHAAAAzApARA\ARApAAAAApAAAAAzAAAHA AAAfA>A(A(A(A>AfAAA A\AA(AAAA>AAARA AAAAAAAAAA A>AAAApAA>AA4AA{BBBBAA>AAAAAA>AAAAAAAARAAAfAAAAAApAzApAAAAA4AzAA4AAAA4AAfA(AAAA\AHAHAHA\AAAA(AzAAHAA>AA\AAApA(A AAAAAAAA A(ApAAAHAAApAARAA BB3BRBAA\AAA>AAA\AA>AA4AA>AApAAAA>A AAAAAAAAAAARAAARAA4AARAAAHAAAAzAfAfAfAzAAA AHAAAfAA\AAzAAAAHA(AAAAAAA A(A\AAA AfAAAAAAABBBAA>AzAA A\AAAzAA\AARAA\AAA4AAA\A(AAAAAAAAA A>ApAAApAARAApA AARAAAAAAAAAAA(AfAAAAAzA AA>AAAzAHA(A AAAA A(AHAzAAA>AAA>AAAA(A)B=BRBAA\AAA(AzAA4AAAfAA\AAzA AARA AAzAHAAAAAAAAA(A\AAA4AAApAAA(AApA4A AAAAAAAA AHAAA>AAAA(AA\AAAAfAHA(AAAA(AHAfAAAA\AAApAA>AAHABBAA>AzAAAHAAARAAAAAzA AA(AApAAAAfA4AAAAAAAAHAzAAARAAAAAAHAAARA(AAAAAAAA(AfAAA\AA>AAHAAzA4AAAAfAHA>A4A>AHAfAAAA4AzAAAAApAAfA=B\BAA\AAAAfAA ApAA>AAAA(AAHAAA4AAAARA4AA AA AA4AfAAAApAA>AA4AAfAAApAHAAAAAAAAHAAAAzAA\AAfAAARA AAAAfA\ARA\AzAAAAARAAARAAAAAABAA>AzAAA4AAA(AAA\AA>AAHAAfA AARA AAApARA4A(AA(A4ARAAAA4AAA\AARAApAAAAfA(AAAAAA>AfAAA4AAAzAAAAApA(AAAAAzAAzAAAAA>ApAAApAA>AA4AAfBA4A\AAAAfAA A\AAAzAApAAfAAA(AAA>AAAApAfAHARAHAfAAAAAfAA AzAApA AARAAAA\AHA4A4A4AHApAAAAfAA4AA(AAHAAA\A(AAAAAAAAA A(A\AAAHAAApAAfAAAARAzAAA4AAAAzAA4AAAA AAAAHAAA\AAAAAAfApAfAAAAA>AAA(AAAA(AApAAAAzAfARARARAfAAAA4AAARAAHAAfA AAzAHAAAAAAAAA(AHAAA AfAAAAAA A A4A\AAAARAAA4AAARAA4AA(AA4AAfA AAzA4AAAAAAAAAAAAHAAAHAA>AAHAAA>AAAAApApApAAAAARAA ApAAfAAA(AAAfA4AAAAAA A(AHAzAAA>AAARAA4AA(A(ARAzAAA4ApAAARAA ApAARAAHAARAAA(AAARAAAAAAAAAAA4AfAA AfAAHAAfAAA\AAAAAAAAAAA4ApAA(AA AAAAHAAAARA4A(A AAA(AHAfAAAA\AAApAARAAHAHApAAAARAAAApAA(AAApAAfAApAAAHAAApA>A AAAAAAAAARAAA(AAAfAAAAAzA>AAAAAAAAAARAAAHAA(AA4AAzAAAApARAHA>A4A>AHAfAAAA4AzAA4AAApAAzAfAAAA4ApAAA>AAAHAAAAAAAAAAfAAAA\A(A AAAAAA A>ApAAAHAAAA AA>AAA\AAAAAAAA A4ApAAAfAAHAARAAA>A AAApAfA\ARA\AfAAAA ARAAARAAAAAAAAAARAAAA\AAAfAA4AAAAAA>AAA(AAAzAHA(A AAAA A(A\AAA AfAA4AA(AA\A AAzA>AAAAAAA(ARAAAAAAfAApAAA\A(AAAAAzApAzAAAAA>ApAAApAA>AA4AAAAA4ApAAA(AzAAAAARAA4AA>AA\AAAHAAAAfAHA(AAAA(AHAzAAA(AAARAAHAAzAAAA\A4AA A A AAHApAAA>AA AAAA4AAzAHAAAAAAAAAAA(A\AAA4AAApAARAAAAARAAA AHAAA>AA ApAARAA\AAzAAAfAAAAAfAHA>A4A>AHAfAAAAHAAApAAfAAA4AAAzARA>A(A(A(A>AfAAA A\AA(AAAARAAAfA4AAAAAAAAAAHAzAA AfAAAAAA AA A4ApAAA(AfAA A\AA(AAApAAzA AA>AAA>A AAAAfA\ARA\AfAAAAAfAAAAAAAARAAAApA\AHAHAHA\AAAA(AzAAHAA>AApAAAARAAAAAAAAA4AfAAA(AAA>AAAA(AA(ARAAA AHAAA(AzAAHAAAA AA(AA\AAA\A(AAAAAzApAzAAAA A>AAA>AAAA>AApA4AAAAzAfAfAfAzAAA AHAAAfAA\AAA4AAApA>AAAAA AA4ARAAAAHAAA\AARAAHA AHApAAA(AfAAAHAAAfAA4AA(AAHAAzAAAzAHAAAAAAAAAAAA\AAA\AA>AA\AAARAAؿAAAAAAA¿AA(AfAAAAAzA AARA AAA\A>A4AAA(A4ARAAAAAzAAAAApAAfA(AfAAAAHAAAAfAAAAARAAHAAfAAA>AAARAAAAAAAAAAA4AzAAAzAA\AAzAAApAAA̾AAAAAAA AHAAA>AAAA>AApA(AAAzA\ARAHA>AHARApAAA ARAAA>AAAAAAHAAAAARAAA4AAA>AA ApAAfAAAAA\AAApA>AAAAAAAAAARAAA>AA AzAAA4A̾AA>AAAؽA½A½A½AؽAA(AfAA A\A¿A>AA\AAAHAAAAzApAfA\AfAAAAA(ApAAApAA>AA4AAfAAA A4ApAAARAAA\AA(AA AAAA4AAfAAAA\A>A AAAAAAA>ApAAA\AA(AAAARAAA\A4A AAAAAAAHAA½A(AzAA\AAzA AAfAAAAAAAzAAAAAAHAAA4AAA\AARAAAAA(ARAAAApAAAzAAHAA(AAAARAAA>AAAzA\A(AAA AAA>A\AAAAzAؿAHAA>A½ApA A̼AzARA(AAAAAA>AfAAAHAAAzA AA(AAARA AAAAAAAAAA4AfAAARAAAzAApAAAA AHApAAA>AAA4AAAfAAHAA>AApAAA\AAAAfAHA>A4A(A4A>A\AzAAA>AAAfAؽA\AAA(AػAApAHA4AAAA4A\AA»AAfAA4AA(AAHAAApA(A AAAAAAAAARAAA(ApAA>AAAA(AAA(ARAAAA\AAARAA ApAAfAA\AAAAAzA4AAAAfA\A>AHARA\AzAAAA\AAAAAzAAAHAAAAfA>A>A>A>ARAzAAA4AAػARAAHAؽAfAA¿AA\A(A AAAAAAARApAAAHAAA\AA>AAHAA AHApAAA(AzAAApAA(AA AAAzA AA>AAARA AAAAzA\AfA\AzAAAA4AzA½A4AAAAAAfAAعAAA\A\A\A\ApAA¹AARAAApAػAfAAA>AAAzAHA(A AA AAA>ApAAAAfAAAzAA\AAfAA(AfAAA AHAAA>AAAHAA(AAAA(AA\AAApA(AAAAAzAAzAAAؿA ARAAARAA4AA>AعAA4AA̸AAzAzAzAzAAAAApA¹AAAAAAA\AA̾AAfAHA>A4A(A4A>A\AAAA>AAA>AA AAAAAHAAAA(AfAA A\AAAfAAHAA>AAHAAzAAAAHAAAAAAAAAؿAA(ApAAApA̺ARAعA\AAARAAA·AAAAAAطAA>AAA4AA(AA4AػAzA4AAAAfA\ARAHARApAAAAA\AAA\AA>AA4AA>AfAAA AHAAA(AzAAAAAfAA\AAfAAA>AAAfA4AAAAAAAؿAAAHAzAػAAAApAAzAA·ApA4A AAAAAA̶AAA\AAARA̸AHA¹ARAAARA AؽAAAzApAfApAAAAA4AzAAAzAA\AARAA\AAAA(AfAAA4AAA>AA AAAzAAAAA\AAAARAAAAAAؿAAA4AfAAA>AA AAAA4AAARA(AAصAصAصAصAAA>AzA̶AAAAfAApAAApA(AA½AAAAAAAAAAfAAA>AA AzAApAAzAAA AHAAAARAA A\AA(AA AAAA4AAzAAAApA>AAAAAAAARAAAA\AA(AA4AARAAApAHAAAAAA A4A\AAA>AA AAAA4AعAAHAAAؽAAAAAAA A>AAAApAA(AAAAAAAAARAAAA\AAAfAA4AA(AAAA>AAA>AAAzAHA(A AA AAA>A\AAعAAzAطAHAA>AصApA A̴AARA(AAAAA(A>AzAAA\AA(AAAARAAAfA4AAAؽA̾AؿAAA A>ApAAA4AAAHAA>AAHAAA A4ApAAA>AzAA4AAARAA4AA>AA\AAA\AAAAfAHA(AA(AA>A\AzAAA>AAAfAصA\AAA(AAApAHA4AAA4AHA\AAسAAzA̴AHAA>A̶ApAA̸AARA4AAAAAA A(A\AAA ARAA AzAA\AAfAAAARAAA A\AAARAA ApAARAA\AAzAAAzAAAAAfAHA>AHA>A\AzAA̸AA\AAAAAzAAAHA A̲AAfARA>A>ARAfAzAAA4AAAfAA\AAA4AAApARA4AA AAA(AHAzAAA(ApAA(AA AzAAAA A4ApAAA(AzAA ApAA(AA ApAAzA AA>AAA>A AAAAfA\ARA\AzAAAA4AzAµA4AAAAA̲AfA(AAAApA\A\ApAAAرAARAA AAAzA AARA A·AApARA4A(A4A>A\AzAAAAHAAAHAA(AAAAA(ARAAA AHAAA(AAAHAAAA AA(AA\AAA\A(AA¿AAAzApAzAAAطA A>AAARAA4AA>AAAHA A̰AAAzAzAAAAA4ApAرA(AAAA(A̴ApA(AAAApARAHARA\AzAAAA4AfAA AzAAHAA>AAAHApAAA(AfAAAHAAAfAA4AA(AAHAAzAAAzAHAAA½AAAAAA·AA(A\AAApA̲ARAرA\AAAfAAA¯AAAAA¯AدAARAAAHA±A>AAHAAAHAA̶AAAAzApAzAAAؿA ARAAA>AAAfAApAA>AfAAA AHAAAAfAAAAARAAHAAfAAA>AAAfAAAA»AAAA·AAAHAzA³AAzAApAAzAA¯AA4A AA̮AAA̮AAA4ApAAAfAA\AرAfA AAfA4AA̶AAAAAAAؽAA(ApAAA\AA(AA AAA\AAAA(AfAAA4AAA>AA ApAAfAAAAA\AAAA>AAAAعA̸AطAAA4AfAAA>AA AAAA4AAARA(AAAحAحAAAARAA̮A4AAAzAAA(A̲AARAAA̶A·AAAAػAA(A\AAAAzAAHAA(AA4AfAAA AHAAAARAAA\AA(AA AAAA4AAzAAؿAA\A>AAAAAAAARAAAA\AA(AA4AARAAApAHAA AAA AA4ApAAARAAAAAAHAAApA>A AAAطA̸AAAAHAzAAA>AAAfAAHAARAAAA(AfAAAApAAAzAAHAA(AA4AARAAA>AAAzA\A(AAA AAA>ApAAرAAzAدAHA̮ARAحApAA̬AAfA>A(AAA(A>ARAA̬A ApA­A>AA4A¯AfA A±AA\A(A AAAA AA4AfAA̾AApAA(AAAzAAAAA AHAAAA>AAA4AAAfAAHAARAApAAA\AA̼AAzAHA>A4A(A4A>A\AzAAA>AAAfAحA\AAA>AAAA\AHA4A4A4A\ApAAA(AAA\AحARAAA>AAAzAHA(AAAA(A4ARAAAA4AAAHAAAAAAAA(AfAAAA\AAARAA AAAfAA\AAAA¿AzA4AAAAfA\ARAHARA\AzAA̰AA\AAAAAzAAA\A A̪AAzAfARARARAzAA̪A AHAAAzAApAAA\AA̰AAfA\A>A4A>AHAfAAAػAAfAA AfAAHAA>AAAAHAAAA>AzAAApAA(AA AAAzA AA>AAARA AعAAAzApAfApAzAAAA4AzAحA4AAAA4A̪AzA(AA©AAApApApAAAA(AfA̪A4AAAA4A­AzA4AAAAzA\ARA\AfAAA¹AA>AA̾A(AAAfAA\AAA>AfAAA A\AAA>AAAHAA(AAAA(AA\AAApA(AA·AAAzAAAAAدA ARAAARA«A4AARAAAHA AAAAAAAĄA AHAAARAA4AARAAARA AدAAAzApAzAAA·AAA\AAAHAAAAAzAAAHAAAA(AzAA A\AAAfAAHAA>AAHAؿAzAAػAAHAAAµAAAAAAدAA(ApAAApAARAةApA AAfA(AAاA§AAAAاAA(AfAA ApAةARA̪ApAAApA(AAدAAAAAAµAAAHAzA»A AfA¿A4AA(AA4A>AfAAA AHAAA(AzAAAAAfAA\AAfAAA>AAAfA4AAA³AA±AAدAAAHAAثA4AAApAAA(AاAAHAAAA̦A̦A̦AA AHAAاA(AAApAAAAثAAHAAAدAA±AA³AAA4AfAAA>AAARAAHAARA\AAAA(AfAAAHAAA>AA AAAzAAAAA\AA̸AARAAAAرAAدAAA4AfAAARAAAAAAHAAAfA>AAAAAAA(AfAAAHAAAAAA>AAAfA4AAAAAرAAAARAAAA\AAApAAfAApAzAAA AHAAAAfAA A\AA(AA AAAA4AػAzAAطAApA>AAAAAAA4ARAA̪AA\ĄA>AA4A̦AfAA¥AA\A4A A A A A4AHAA¥AAfA̦A4AA>ĄApAA̪AARA4AA AAAAA>ApAAAAzAػA4AAAA AAAAA(AfAAA4AAA(AzAAHAA(AA4A½ARAAA>AAµAA\A>AAA AA4A>ApAAA4AzAA\A̦ARAAA4AAAfARA(A(A(A(ARAfAAA4AAARA̦A\AAA4AAApARA4A(AA(A4A>A\AAµA ARAAARA½A4AA(AAAAAHAAAARAAAHAAAfAAHA¿ARAApAAA\AAAAzA\A>A4A(A4A>A\AA©AARAA AfAApA AARAA£AApAHAHAHAHApAA£AARAA ApAAzA AARA A©AApARAHA>AHARA\AAAA(ApAAApAARA¿AHAAAA>AfAAAApAAAfAAAAAfAApAAA4AطAzA4AA̲AAzA\ARAHARA\AzAAAApAA(AA AA(A£A\AAAAAfAfAfAfAzAAAApA£A(AA AA(A̦ApA(AA©AApAfA\AfApAAA̲AAHAAطA4AAApAAzAAAA\AAAA>AAAAAA>AA AAAAAARAAARAAرAAAzApAfApAzAĄAA4AzAإA4AA(AA4AAzA>AA¡AAAAAAA¡AA>AzAAHAA(AAHAAAHAAAAAAzAAAA̰AA4AfAAARA¹AAAAAAA>AfAAAA\AAA>AAA\AA(AAAA>A̸ApAAApA(AAدAAAAAAAAAARAAARA£AHA̢ARAAA\AAAAAAAAAAA\AAAfA̢AHAأAfA AAfA4AĄAAAAAA̮AAARAA̴A(ApAA>A»A4AA>A4A\AAAA>AzAA A\AAAzAAHA½A>A̺A\AAzA4AسAAHAAA­AAAAAAاA A>ApAAApAAfAApAAAzA>AA؟AŸAŸAŸAŸA؟AA>AzAAAAAfAAA(A̤AARAAĄA©AA«A̬AA A>ApAAAHAAApAARAؽA\ARAAAA4ApAAA>AAAHAAAzAApAAzAAARA A±AzAHAAAA̪AةAAA A(A\AAAHAAAAAA>AAApA4A AAAAA A4ApAAARAAAA(AA\AAAARAAAAAAAA>ApAAA4AzAصA4AAAA AApAAAARAAA A\AAAfAA4AAAA AA(A̴ApA(AAAfA4AA AAAA A(AHAzA£A AfA¡A4AA(AŸA\A AAzARA(AAAAA(ARAA̞A ApA؟A>AAHAءAzAAأAApA>A4AAAAA>A\AA¯A ARAAARA·A4AA>A½AAAA4A\AAA(AzAAAAؿA>AA4AA(AAHAAAHAAAARA4AA AA A(AHAfAAA(AAARAŸAHAAzA(A؝AApAHA4AAA4AHApAAA(AAA\A؟AfAAA>AA£AApARA4A>A4ARA\AzAAA(ApAAApAARAعA\AAAAARAzAA AHAAA>AAA\AػARA̸AHAصAfA AAfAAحAApARA4A(A4A(AHAfAAAAHAAApAAfAAAHAAAAfARA>A>ARAfAA̜A AHAAAzAAAAA\AAAAApARA\ARApAzAA̬AAHAAرA4AAApAAzAAA A4ApAAA(AfAA A\AAAzAApAAfAAA(A̰ApA(AA«AApARAHA>AHAfAAAءAAfAŸAAAAAAAfAA؛AAApA\A\ApAAAA(AfA̜A4AAAA4A؟AzA4AA̢AAAAzApAAA̪AAAfAA ARA³AAAAAAAARAzAAA4AAA(AzA̾A4AAAzA AAAAHAAAHAAAAApAfA\AfAAA¡AA>AA̞A>AAAA>A؛AA4AA̚AAAzAzAAA̚A AHAAARAA4AARAAARAAA̢AAAAAĄAA ARAA̮A(AAARAµA4AA>A A4ApAAAARAAAHAAARAA4AA(AA4A±AfA AAfA4AĄAAAAzAAAAAAHAAA\A̜A>A›A\AAARAAA™AAAAA™AAAfAA ApA؛ARAApAAApA>A AA̢A£AA¥A̦AA A>ApAAAHAAApAARAطApA(ARAAAA4ApAAARAA ApAعARAA4A³ARAAA(A̬AARA AA̦AAAAAA̠AA4AfAA AzAA\AAzAA™ApA4A AA̘AAA̘AA A4AA™A(AAApAAA4A؝AA\A(A AAAأAAA A(A\AA«A AfA¯AAAAA AAHApAAAARAAAApAؽA(AAA\AصARAApAAAHAAApA(A AA̤A£AA¡A̠AAARAA̜A(AAAzAAA4AAARA(AAAؗAؗAAA(ARAAAHAAAAAARAAAzAHA(A AAAA A(AHAzAAA>AAA>AAAA(AAfAAAA4ApAAA>AAAHAAAzAApAAAA­AfA A©AzAHA(A AAAءAAA A>ApAAAHAAAAAARAAApAHAA AAA AAHApA—AAfA̘A4AA>A̚ApAA̜AAfAHA(AAAA(AHAfAĄAA\AAA\A̰A>A³AHA̶AAAAARAAAA\AAAfA̸A4AAAAAA>A̬AA(AAAfAHAA AAAA A(A\AA›A AfA™A4AA>A—ApAA̖AAfA>A(AAA(A>AfAAAAAARA̘A\AAA4AAAAfAHA>A4A>AHAfAAAA4AzA«AAAApAAfAAAA A4ApAAA>AzA̼AAAARAA4AA>AA\AAAHAAAAfA4A(AAAA(AHAfAAA(AAARAؗA\AAA(AAAA\AHA4A4AHA\AAAA>AA ApAAzA AAfAA؛AAAfA\ARA\AfAAAإA ARAAA>AAAAAAAAAARAAA A\AAA>AA ApAسARA̰A\AحAzA AAfAAإAApARAHA(A4A>AHAfAAAAHAAApAAzAAAHA A̔AAzARARARAfAzAA̔A A\A•A(AA AA(A̘AA>AA›AAAzApAzAAA£AA(ApAAApA̬A>AAAA>AA A4ApAAA(AfAA A\A·A(AAApAAfAAA(ĄAA>AA£AApAfAHARA\AfAAAؙAAfA—AAAAAAAfA(AAAApApApAAA“AA(AzAAHAA(AAHAAA\AAA›AAAAAA¡AAAHAAاA4AAA\A̮ARAرA\AA(ARAAA AHAAػA(AzAAHAAAA AAAAHAAA\AAAAApAfApAfAAA™AA>AAA>AAAA>AؓAAHA A̒AAAAAAAA AHAAAfA̔AHAؕAfA A—AzA4AAA›AAAA؟AAA4AzAAARAA AzAApAAzAAHApAAA(AfAAAHAAARA̲A4AA(AA4A©AfA A¥AzA4AA̠AAAAAAA™AAA\AAA\A̔A>A“A\AAAfA(AAؑAAAA‘AؑAA(AfAAAAAfAAA(AAARAAAA؛AA؝AAA4ARAA̤AApĄA(AA AAAA>AfAAA AHAA»AAfAAApAرARA̮AHA«ARAAA(AAARAAA̞AAAAA™AAA4AzA•AAzAA\AAzAA‘AAHA AA̐A̐A̐A̐AAAHAAؑA>AA AAAAHAAApARAAAAAAAARAAAAHAAAHAA(AA4AAHAAAA(AfAAA4AAصA>AAApAAfAApAAAHAAApA>A AA̜A›AA™AAAARAAA>AA AzAAA4AAAfA(AAAAAAA>AfAAA\A‘A(AA4A“AfAAؕAApA>A4AAAA4ARApAAءAAfAA AzAةA\A̬ARAدAfAAA A4ApA»AARAAAHAAAA AAAAA¥AfA A¡AA\A(A AAAؙAAA A>ApAAAHAA(AAAARAAApAHAA A A A A4A\AAAAzA̐AHA‘ARAAA>AAAA\ARA4A>AHARApAAŸAA>AA̤A(AAAzAApA AAAA(ARAAAApAµAAfA̰A4AAAAAA>AAA(AAAzAHA(A AAAA A(A\AA“AAfAؑAHAA>A؏ApAA̎AAfA>A(A(A(A(ARAzAAA4AAAfAApAAA\AA̔AAzApARA\AfApAAAAA\AAAHAA(AA AA(AAA AHApAAA>AAA4AAARA̬A4AA>A̦A\AAAHAA̞AAfAHA(AAAA(AHAzAAA>AAAfA؏A\AAA>AAAA\AHAHAHAHApAAAARAA AAAAA‘AzA4AA̔AAApAzAAAA̜AA4AzA¡AAzAإAHAA>A«AHAAA(AfAA̺A A\AAARAA ApAARĄA\AAzAA¡AfAA؝AAAfAHA>A4A>AHAfAA̒AAHAAApAAzAAA\A ǍAAzAfARAfAfAAAAApA؍A(AAAA>AAARA AAAAAAAA̚AAARAAA>AAAfAاA\AAfAA AHApAAA(AzA̴A ApA¯A(AAApAAzA AA>AAA>AA›AApAfA\ARA\AfAAAAAfAAAAAA4ǍAzA(AA‹AAApApAAA‹AA>AAAHAA>A̎A\AAApA(A AؓA̔A•AA—A̘AA A>ApAAA\AAAAAzAAAA(AfAA̺A AHAAسA(AAAHAAAA AA(AAHAAA\AAA™AAAzApAzAAA‘AA>AAA>AA4AARAAAHA AAAAAAAAAA\AAAfAA\AAzAA؏AA\A(A AAAؕAAA A(A\AA؝AAzAءA4AAAAAAHApAAػAARAA̴AApA¯A(AzAA\AاARA̤A\AAA4A؝AAHAAA—AAAAAAؑAA(ApAAApAARA؋ApA AAfA(AA؉A‰AAA‰A؉AA>AzÅAAAAzAAA>AAAfA4AAAAAAAA4AfAAA(AAA>AAAA(AAfAAAA4ApAAA>AAAHAAAzAApAAzA AARAAAfA4AAAؕAA“AAؑAAAHAA؍A4AAApAAA(A؉AAHAAAÄÄAAAA\AAA>AAAAAA\AAAARA4AA AA AA4ARAAAAHAAA\A̢A>A¥AHĄAAAػAARAA̴A A\AAAfAAAAAA AA(A̞ApAA̚AARAAAAؓAAؑAAA4AfAAA>AAAAAAHAAAfA>AAAAAAA>AzAA A\A‰A(AA4A؋AzAA؍AApARA4A(AA(A4ARApAAؙAAfAAAzAA\AAfAAA̼AA4ApAAA(AzA̮AApAةA>AAAA(AAHAAA4AAApA>AAAAAAAARAǍAA\ÅA>AA4ÄAfAA‡AA\A4AA A AA4A\AA؇A(AzAAHA؉ARAAA>AAAApARAHA>AHARApAA—A A>AAA>AA AzAAA A½AAARAA̴A AHAAA>AAA\AإA>AAHA؟AfAAARA A—AA\A>AAA AA4A>ApAA؋A4AzAAHÄARAAA4AAAzARA>A(A(A>ARAzAAAHAAAfAApAAA\AAAAApAfA\AfAAA•AA(A\AAA\A̞A(AAAA>AA A4ApAAA(AfAA A\AAAzAA\AءAfAAAAApA(AAAzA\A>A4A(A4A>A\AA‹AA>AA AfAApA AARAA…AApA\AHAHA\ApAA؅AAfAAAAAA4A؉AzA4AǍAAAAzAAAAAAHAzAؙAAzAA\A̠A>A£A\AA(ARAA̴A AHAAحA(AzĄA4AAAzAAAAA4AؙAAHAA̔AAzA\ARAHARA\AzAAAA\AAAA AAA…A\AAAAAzAfAfAzAAAA4AA؅A>AA4AARAAARAAǍAAAAA‘AAA4AfAAA>AA AzAApAAzAAHApAAAAfAAAHAAARAAAAAAA›ARAAAfAAAAAzApAfApAzAÅAA4AzA؇A4AA(AA4AAzA>AAƒAAAAAAA؃AARAAA\A…ARĂApAAApA>A AǍAA̎AAAAARAA̖AA\A̚A(AA AAAA(AfAA̴AA4AA­AAfAA ApAأA>AA4AA>AApAA̖AA>A AؑAAAAAAAAAARAAARA…AHĀARAAA\AAÂAAAAÂAA4ApAƒAAzAApAAA4A؇AA\A(A AAAAAAA>ApAAA4AAAHAA(AA4AAHAAAAARAAA4AAاA(AAA\A؟ARAA\AAA4AAA\A(AA؏AAAAAA؉AA(ApAAApAAfAApA AAzA>AAAAAA؁AAA>AÂA4AAAA AARAAAzAHA(A AA AAA>A\AA“A ARAA AfA؛AHA̞ARAءAfAA̴A A4ApAAARAAAHAAAzAApAAzA AARAAAzAHAAA؍ǍA‹ÅA؉AAAHAA؅A4AAApA AA(A؁AA\AA AAAAA A4A\AAARAAAA(ĀApAĂAAfAHA(AA(A4A>A\AzAAA(ApA̖A(AAAfAApA AAµAA(ARAA̬AA\AAAfA̢A4AAAA AA(A̖ApAA̒AARA4AAAAAAAA4AfAAARAAAAAAHAAAzA>AAAAAA(ARAzÀA ApA؁A>ÂAHAAA4AAAAfA\A>AHARA\AzAA̐AAHAAAHAAAA AA(AAA A4ApAAA>AzA̦A4AAARAA4AA(AAHAAA4AAApARAAA AA AA4ARAĀAApÂA>AA4ÀAfAAA4A~Ah~A<~A<~A<~Ah~A~A~A4AA(AAA\AAfA AARA A؅AAAzA\AfApAzAAAAAfAA AfAؗA4AA(AAHAµAA(ARAA̬A A\AAA>AA ApA؝ARA̚AHAؗAfA AARA AAApA>A4A(AA(A4ARApAAA4AAA\ÀARAA Ah~A}AH}A|A|A||A||A||A||A|A }Ap}A~A~A\AAzA AA(ÂApA(AA…AAAzAAAAA؍A ARAA̒A(AAAfAؙA\AAfAA AHApAAA(AzAA A\A¡A(AAApAAfAAA(A̒ApA(AAAA\ARA4A>A4ARApAAƒA ARAA AzAA~A~AH}A|A|A{A4{AzAzAzAzAzA {A\{A{AP|A|A}Ah~A4A(AAHAAAHAAA…AAAAAA؋AA(ApAAAHAAAAAzAAAA(AfAA̬A AHAAإA(AzAAHAAAA AAAAHAAAHAǍAAzApARA\ARApAAAA(ApAA(A4A~A }AP|A{AzAAAARA•A4AA>A›A>AfAA̬A AHAAإAAfAAApA؛ARA̘AHA•ARAAA(A̎AA>A A؉AAAAAAAAAARA\A}A|A{AzAyAxAxA\wAvAAAApAؗAfAApAAA4AAA\A(AA؇AAAAAA؁A A>A~Ap}A(|A {AyAxAwA wAA4A(AA(A4ARAAAA4AzA؏A4AAApAAzAAzAAA AHAA¥AARAAA\AAAAApAAAAARA A‹AzAHAAA؅ĀAƒÂA؁AA(A~A }A{AhzA yAxA wAvAHuA|tAsA4sArAhrArAqAqAqAqAAHAfApAA؉A ARAAARAAAAAA4AA­AA(AfAAAApAŸAAfA̚A4AAAAAA>A̎ApA(AAAfA4AAAAAAAA~A|A\{AyAxA\wAA“A4AARAAA AHAA¥AA>AAA4AAARA̖A4AA>A̐A\AAAHAAAARA4AA AA AAh~A|A4{AyA(xAvAuA|tAsArAqApA(pAoA4oAnAnAhnAAzA̞AApA™A(AAApAAzAAA(ÅAA(AA…AApARAHA>A~A|AzA yAwAvAtA\sArApAoA oAnAHmAlA(lAkA4kA kAjAjAjAjA kA\kAkAPlAlAmAnA\oAPpApqArAtAHuAvAPxAzA{A}AAAAAAARAÄAApǍA>AAAA(AAAA>AzAAA4ApAAAfAAAAAfAApAAA4A؉AzA4AAAAfA\ARA~A|AzAxA4wAuA(tArApqA(pA oAnA mAPlAkAjAhjAiApiAHiA iAhAhA iApiAiAjAjA\kAlAlAmAnAoA qAhrAsAHuAvA|xAAAAAAAAA>AAARA A؃AAAzA~A|AzAxA4wApuAsAhrApAoAhnAHmAPlA\kAjAiA iA|hA(hAgAgA\gA4gA4gA\gAgAhAPhAhAiAÅA\AAApA(AAAA A|A {AxA4wApuAsArApA4oAmAlAkAjAiAhAhA\gAfAhfAeAeAeApeApeAeAeAAA̜AApA—AAzAAHAA>ǍAHAAzAA؅AAHAAAAH}A4{AHyA4wApuAsAqAPpAnApmA(lAjAiAhAgA gAAAA4AAAfAA\AAfA AA>AAAfA4AA}A{ApyA\wApuAsAqA(pAnA mAkAhjA iAhA gAfA eA|dAcA4cAbAhbAbAaAaAaAbAAzAA A\AAARAAAAAzA AA(AA\AÂAARA<~A|AyAwAuAsAqApAhnAlA\kAiAhA\gAAAAAAA4A؅AzA4A؁AA~A||AAA4AA>AAAأAA>AzAAAHAAؕA(AAA\AA>AA4A‡ARAAA>AAA }AzA|xAAAA>AAAAAA4A A4ApAA؛AARAAA4AAA>AAAAAAAARAA4A|AzAwApuA sApAnAlAjAhA4gApeAdAhbA`A_A^Ap]AP\A\[AZAYA YAXA(XAWAWA\WA\WA\WAWAWAXA|XAXAYAhZA4[A(\A ]A<^A\_A`AbAcAHeAfAhAhjAPlAhnA|pArAtA4wAyA(|A~AAA\ĀA>AA4AARA(ARAAAA4ApA•AARAA A\A‹A>AA4AA>ÂApAAp}AzAPxAuAsAHqA4oA mA kA iA4gApeAcAbA`A4_A]A\A[AZAYAXAXA\WAVAhVAVAUAUApUAUAUAUAAA AzAApAAAfAA̜AA4ApAAA>AAAHAAAzAA\AAzA A4A|AyA\wAtAhrApAmAkApiAgApeAcAaA(`A^A ]A[AhZA YAXA WAVAHUA|TASA4SARAhRAAAAA(AA~A{AxAhvAsAHqAnA|lAAAA\A…A>AAHAA|AyA4wAtArAoA mAjA|hAAƒAHAAHApAAؓAAfAAAHAAARAAAAA }AAAh~A\{A|xAuArA(pApmAjA|hAeAcApaA4_A ]A [A YA4WApUASAAAAHAAAzA}AzAwAtArA\oAlAiA\gAdAhbA(`A]A[AYAWAUASAQA(PANA MAKAhJA IAHA GAFAHEA|DACA\CABABAA؁AA•AAARAǍAA\AAAfÂA4A4A(|A yAvA4sAPpAmAjA(hAeA cA`A<^A\AYAWAUASAQA(PAhNALA\KAIAHA\GAA>Ah>A>A>A>A4?A?A(@A@AAAhBA\CAPDApEAFAHAHIAJA|LANAOAQASAUAWAYA(\A^A`A\cAeAhA\kAnApAsAvAyA|AAAA>AzAAA4ApA‡AAfAAA A{AxAuArAoAlAA>A=AH=AA ?A?A@AAABACADAAH}AzA wAtApAnA4kA|hAeA cA|`A]A[A YAVATARA|PANALAJAHIAGAFADA\CAAp=AA>A?A@AAA4CA|DAEA\GAHAJAPLAAH=A|A ?A(@AHAABADAEA4GAHAJA|LAhNAPPARATAVAHYA[A^A`A\cAfAhAkAnApqA|tAwAzAHApAA؍AARAĂAA\AAA|AyAvAsA|pApmAjAgAdAAp=A|A?A@AAzAAh~A4{AxAtAqAnAkAhAeA cAP`A]A4[AXAAAzĂA A\AAA|ApyAAP@AAACAHEA4GA IA4KAHMA\OAQATAhVAXA[A^A`AcAhfAHiA(lA4oAhrApuAA̎AA4A\AA؅A(AfAA~AzAwA|tAHqAAH=A;A:AH9A(8A47A<6AH5A4A4A\3A2A2A<2A2A2A2A<2A2A2A43A3A|4A 5A6A6A8A 9A<:A;AA(@AAACApEA\GApIAKAMAOAAA@AAACAEAGAIAKANA|PARApUAXAZAH]A`AbAeAhAkAnAqA̎A A4ApAA؅AAfAA}AzA\wAtApAmAjAgAdAaA^A\AHYAVATAQA OALAhJAPHAFA(DABAP@A>AA@AAACAEAHAJAPLANA QASAAA(@ABA(DAAAP@AhBA|DAFAHA4KAMA(PARAHUAXAZA]A|`AcAfAiAlA(AfAAAA4ApAA|AxAHuArAnAkA|hAHeAAA@ABADA4GApIAKAhNAPASAA@A CApEAGAJALA4OAQA|TA\WAZA ]A`A cAfAHiAfAĂAA4ApA\A{A|xA uAqAhnA4kAhAdAaA^A[AXAUA4SA|PAMA4KAHAA;A9A7A5A3A2AP0A.AH-A+A*AH)A((A4'A<&Ap%A$A$A\#A #A"Ah"A<"A"A<"A<"A"A"A\#A#A|$AH%A&A 'A(A )Ah*A+A -A.AP0A1A3A5A7A9A;A=A(@AhBADA\GAIALA4OARATAWAZA]A`AdA‡AA(ARAA}AzAvA4sAoA|lA iAeAbA_A|\ApYAhVASAPAMA4KA|HAEA\CA@A>APA@A CAEA(HAJAMAPPA4SAVAXA\A4_AApAACAhFA IAKANApQAPTA4WAA;AH9A6A4A2A0A.A,A +AH)A'A<&A$A#A<"A !A A4A<AAAPAAA4A A A A4AAAPAApA<A A A A"A\#A$A&A'A )A*A,A.A|0A2A4A6A 9A\;A=AP@ABAEAPHA KAMAPASAVAYA\A>AfAA}AzAvA sAoA(lAhApeAbA^A[A|XApUAhRA\OA|LAIAFADApAA>APA AACAFAHIA(LA OARA UA(XA\[A\AA\A{APxAtAHqAmAhjAfAcAP`A ]AYAVASA|PAMAJAGADAAApAA(DA GAIALAPA SAAA\;A|8A5A43A|0A.A+AH)A&A$A"A AAA AHAA<AAA<A A(A4AhA A AP A A A\ A4 A4 A4 A\ A A AP A A AhA4A(A AhAAA<AApA4AAA A"A$A4'Ap)A+A<.A0A\3A5A8A;A<>AHAA(DA4GAhJApMA|xAtA qAmAjAfA cA_A(\AXApUARANAKA|HAHEAA;A8A5A43A|0A-A4+A(A<&A#A!A\AHA4AHA\AAAhAAAA A A A AAPAA AA<AAAAAA<AA AAPA A A A A A<AAAA(AAApAAAA!A($A&A(A+A.A0A\3A<6A 9AAAA EAPHA4sAoAkAPhAdA aA]AA4;A(8AH5Ah2A/A,A<*A'A %A"AP AAAAAAAA|AAH A A Ap APA4A<ApAAAA AAhA<A<A<AhAA AAAApAhA\APAp A A Ap A AA<A(AAAA(AhA A #Ap%A(A*A -A/A2A5A|8A\;Ah>AAADAoAlAPhAdA aA]AZAVA4SAOA|LAHIAEABA?A|AHAAlA|hAdA aA]AZAVA4SAOAPLAHAEAhBA4?AA;A|8Ap5Ah2A\/A|,A)A&A$Ap!AAPAAA A AAA A AH AAA|A AA|A@@@@@h@ @x@@0@@@@0@@x@p@h@@H@@@@AA4AA<AAp A\ A A4A A\AAA<AA4A!AP$A 'A)A,A/A2A5A8AA\;A(8A4A1A.A+A(A&A4#A| AA4AA<AAA\AH A4 AH A\AAAhAA@(@@@p@@@@`@@ @x@(@@@@(@x@ @@`@@@@@@@@@@`@ AAPAAA A A AAAPAA AA<A A#Ah&AH)A(,A4/A<2AH5A|8A4cA_A\APXATAHQAMAA ;A7A4Ap1A<.A4+AP(AH%A"AAA<AA AAPAA A AAAAA|A@@@ @@@h@x@@H@@@@p@@x@x@@@p@@@P@@0@@@@0@p@P@0@@AhA(AAA AP AhAA4AA(AAHA A"A%A(A+A.A1A4A_A\A|XATAHQAMAA:A7A(4A0A-A*A'A$A!AA(ApAA(AA4A A APA<A(A<APA @@h@@@@@H@`@p@@@@@@@h@@p@p@p@@h@@@H@@(@@@@(@h@H@(@@@@@AA|AAA AH AAAA4AAA\A<"A %A((A4+A<.Ap1A(\A|XATAHQAMAA:A47A3A0AH-A*A&A#A AAAA AhAA A A(AAApAh@@@h@@@@@p@@@@@H@`@@(@@@@P@@@`@@@P@@@0@x@@@@@@@0@@@x@@@@0@`@AA<AA A A(AAAPA4A<A !A($A\'A*AHUAQAMAhJAFA4CA?APAh:A6A\3A0A|,A )A%Ah"A4AAAAAA A A APAA@@(@`@@h@@@@@@h@@`@(@H@h@@H@@ @0@H@@@p@д@س@@0@0@0@@(@д@@@@@@p@`@@(@@@@@@@@@0@`@@P@ @@@AAAh AH A(A4A<AHA|A GACA?APA:A6A\3A/AP,A(A%A<"AAA|AHA<A A( A A<AAA(@@@ @P@@`@0@@@`@@P@ @@@`@м@@@@@(@@@@@h@p@Ь@x@(@ث@(@x@Ь@@@@@@x@h@P@@ @@@@@x@@@@(@P@@H@@@@p@HAAA A AAAAACA@APA:A6A\3A/AP,A(Ap%A"AA\A(AAAA AAAAA@ @@@@H@@P@@@@P@x@H@@@P@p@0@@@Ь@0@@P@`@h@@p@ @Ф@ @p@@@`@@@@ @@H@@@@ػ@@@p@@@@ @H@@@@@@@h@@|A\A<A A( A4AhApA@A|A:A 7A\3A/AP,A(AH%A!AA4AAApA<A AA AAh@@@@@@@@@p@H@@@@@p@@@@س@@h@(@@@@(@@H@P@`@@@@@@h@@`@P@@@x@@@@@x@@@д@@@h@@@@@@@@0@@ @@`@x@@@AAA AAA|@p=@0<@0<@;@0<@<@p=@`?@@A@0C@`F@I@L@P@ U@Y@^@d@@j@p@w@p}@@h@@@h@@`@؛@@@@@p@@@h@(@@@P@@ @AAHAAA A AA(A@@(@@`@@@x@h@@@p@@@ @P@0@h@@p@H@ @H@z@s@l@`f@`@Z@U@P@0L@PH@D@@A@>@;@9@7@`6@ 5@4@4@ 5@5@`6@P8@@:@0<@`?@A@E@I@N@R@W@\@0c@h@p@`v@~@@@@`@ؓ@P@ @@@`@x@@`@ @@@@@0@@A4AAAP AAHAA@@`@@@@@p@@@@ @`@@(@@@x@@@h@@@@{@s@l@e@`_@Y@S@N@I@ E@@A@p=@@:@7@4@2@0@`/@.@p-@p-@p-@.@`/@@1@03@ 5@7@:@>@B@G@K@P@U@0\@a@h@`o@w@~@0@`@؋@P@Д@@@أ@@h@س@@`@ @0@H@@@ ApAA<A A AAAH@@@ @@@@@p@`@@س@@@0@@@(@`@@h@@@0|@t@l@e@^@PX@R@L@G@B@>@9@`6@2@0@p-@*@)@P(@'@`&@`&@`&@'@P(@)@+@.@0@3@7@;@@@D@I@N@T@Z@@a@Ph@p@w@`@؃@P@Ќ@H@@0@P@p@@P@@ػ@@@@(@@\AAA| AAHAAx@@@P@@@x@h@@@ػ@@P@@ @@@p@@؋@`@@p}@ u@l@e@^@W@@Q@K@E@@@;@7@2@`/@+@(@`&@#@"@ @ @`@`@`@ @@!@"@$@'@)@,@0@4@P8@p=@B@G@pM@S@@Z@@a@h@p@Px@P@Є@H@@@@М@@`@Ь@@P@@(@@@@@pAA<A A AAA@@@@@@`@@@x@h@P@@Ь@@@(@@@ @P@؃@~@`v@n@e@^@W@P@@J@C@>@8@4@0@+@'@$@!@`@@@@@P@P@P@@@@@p@ @"@%@)@p-@@1@`6@;@@@`F@L@0S@@Z@a@i@@q@y@H@@@@@(@H@h@أ@H@@д@@@@ @@A(A| AAHAAx@p@@@H@@@p@@@@д@@H@@@@@h@@Є@P@w@`o@g@^@W@P@I@0C@<@7@1@p-@(@$@ @p@@P@@@@@@@@@@@@0@@`@@@@"@`&@@*@`/@4@9@`?@E@0L@0S@Z@b@@j@r@{@@@@@@@@P@@@H@@ @0@@@AhA A AAA@@0@(@p@@P@@@p@`@H@@@@@ @@@@H@y@p@g@`@W@P@H@B@0<@5@0@*@`&@@!@p@@`@0@@@ @ @ @@ @@ @@ @ @0 @p @`@@@@@`@0#@P(@,@2@P8@>@ E@0L@S@[@0c@k@t@p}@0@@ @@@`@М@@@@@@@@@x@(A AAHAAx@p@h@@@@@@h@@@س@@@@@x@@@x@`@@{@q@i@`@PX@P@H@A@;@ 5@.@(@#@@@@`@@`@0 @ @@@@@0@@0@@ @`@P@ @p @@@@0@ @%@+@@1@7@>@ E@0L@S@0\@d@pm@`v@`@x@@@ؓ@H@@x@@@@@(@@@hA A4AAA@@@(@ @h@@H@@x@h@P@@@x@@@@@@؃@~@t@j@b@Y@@Q@I@A@:@3@p-@'@!@@@0@`@ @P@ @@@??`?`??`?? ??@@@`@ @ @@ @@@$@@*@0@7@>@ E@L@ U@p]@`f@`o@Px@@@0@P@@0@@@x@@@@p@ AApAAx@p@h@`@@@@x@@`@@@Ь@@@@p@@@p@P@`v@pm@c@Z@R@@J@B@:@3@,@`&@ @@@@0 @P@@@@ ??@?`??@???@?????`??@@ @@@@p@0#@)@0@7@>@E@N@`V@^@Ph@@q@z@@@Ќ@@@@p@0@@@ @@@ A4AAA@@@@ @@`@@@@ػ@p@`@H@0@ @`@@x@@@y@`o@`f@\@S@K@0C@;@3@,@%@`@@@@ @ @@@?? ?? ?@?? ??? ????`?@????@@ @@`@0@"@(@0@7@>@G@`O@W@@a@@j@s@~@(@H@@(@@@p@@@@h@ ApAAx@p@h@`@P@H@@@ @@P@@ث@p@@@ؓ@h@@@0|@r@Ph@^@U@L@D@0<@4@,@%@@P@@ @@@ ??? ????@?? ????`???`? ???`??@@ @`@ @@!@(@0@7@@@PH@P@Y@0c@l@w@@@0@@h@(@@@@x@@\AA(A@@@@@@@P@@0@д@h@P@@(@@P@@ @@ u@k@@a@W@N@E@p=@ 5@p-@%@@@@@ @@@? ? ?????? ???????? ?? ?@??@????@P@@@@!@(@0@8@@A@I@R@0\@e@p@y@@@@ @@@h@x@@@`@AA@p@h@`@P@H@@@@@@@H@@x@h@@@Ќ@`@@x@n@c@@Z@P@G@>@`6@.@`&@@@@@ @@?????`??????@?????????? ??@?????@@@ @@@!@)@1@@:@B@K@ U@^@Ph@r@p}@(@@`@ @@@@p@س@APAH@@@@@@@@H@@(@@`@H@0@ @@H@؃@|@q@g@p]@0S@I@@@7@`/@'@`@@@ @0@?`?????@?????? ??????`?????? ?????@??@ @0@@"@@*@2@;@D@N@W@@a@k@u@P@@@H@`@p@@@P@A @@h@`@P@H@@@@x@@`@@@@أ@@@@@@P@u@j@`@`V@0L@B@9@0@P(@ @P@@ @@`??@?????@??`?@?????????`?????`???`??? ??? @0 @@@0#@+@4@p=@G@P@@Z@d@n@y@@@@ؓ@@@h@Ь@PA@@@@@@@@@@@@س@ @@P@@@ؓ@@@@@y@n@c@X@`O@ E@;@2@)@@!@@@ @@?@??@????? ??`?@?`????`?`?`??@?????@???`?????`? ? @ @@0@$@p-@`6@@@I@0S@p]@g@r@~@x@@@P@h@x@@H@ @@@`@P@H@@@0@x@p@@P@@0@М@@P@@x@p}@r@g@\@Q@G@>@4@+@"@@@@ @@?? ?`???`?`????@? ?@?{?u?p?p?n?p?@s?@x?}????@??@?@?????@? ? ?@p @ @p@`&@`/@8@B@0L@`V@`@k@w@@@Ќ@@@`@@@@@0@@@@@@@@0@x@@@H@0@Ќ@@@`v@j@`@U@J@@@7@p-@$@@0@ @@??? ?@???@?`????@x?n?f?^?Y?T?T?R?T?W?Y?@a?i?p?}? ??@? ? ?`??`?@?? ??`@@`@`@P(@@1@;@ E@`O@Y@d@p@z@0@H@`@p@؛@@@@@@P@H@@@0@(@ @h@@@@(@@`@H@@z@`o@c@X@N@C@9@0@`&@p@@ @@?????@???@?@??u?i?@\?R?@J?B?=?@8?5?5?@8?;?=?E?L?T?@a?n?{? ? ??@??`? ???`??@`@P@@!@@*@3@>@PH@R@p]@h@s@`@@؋@@P@@@0@(@@@@@@@@(@p@@@@@؋@@`@s@Ph@\@Q@G@<@2@(@`@`@p @@`?????? ??`? ?@x?i?Y?L?@?5?.?&?@!?@?????@!?)?0?@8?E?R?^?n???@??@????@??@P@@@@@0#@,@7@@A@K@`V@a@l@Px@@@P@h@Д@0@@@@H@@@0@(@ @@`@@@@ @@P@@@Px@l@@a@U@J@@@5@+@!@P@@`@?@????`????@?n?@\?L?=?.?#??@?@ ???>>>?? ??@?)?5?B?R?c?u? ?? ?????@??@@@ @0@0@%@0@@:@D@`O@Z@e@@q@p}@Є@@H@@@(@ @@@@@@@ث@ @h@@@0@Є@p}@@q@e@@Z@N@C@8@.@$@@@@@?? ???`?@???{?f?R?@?.?@!???>>>>>>>>>>>>?@ ??&?5?G?Y?n?? ?????@???0@0 @ @@(@03@p=@PH@S@^@@j@`v@H@`@@(@@@@@@0@(@ @@@P@@@x@@@H@`v@@j@^@0S@G@<@1@'@p@@@ @@`?? ??`?@?@?`?u?^?@J?5?#???>>>>>>>>>>>>>>>>>@ ??+?=?R?i?????? ??`?`? @@@!@0,@`6@@A@L@W@0c@`o@{@؃@@@@x@ @@@@@@@@Ф@@`@@@(@{@`o@0c@W@0L@@@5@*@ @`@0 @0@@?@????@?@? ?p?Y?B?+???>>>>>l>M>8>.>$>$>$>.>C>W>v>>>>>>@?@!?5?L?c?}??????`?@? ?@@@ %@`/@@:@E@P@0\@Ph@t@P@@ @@@@0@(@м@@@@H@@ؓ@p@@@t@Ph@0\@P@ E@9@.@#@@`@ @`? ?@????@? ?n?T?;?&?@?>>>>v>C>>===t=L=L=L=t===>.>W>>>>>??.?G?^?{?????@? ? ?@ @@@P(@03@>@I@ U@@a@pm@y@0@@p@@@@@H@@@@x@@@P@@0@@z@pm@@a@ U@I@>@2@'@@@P@ ??? ???? ?k?R?@8???>>>v>8>>=$= <$LttL <t==>W>>>>>?+?B?^?{???? ????@ @@@!@0,@7@B@N@@Z@`f@r@`@@@@0@(@ @@@@@@@@Ќ@h@`@0s@`f@@Z@N@B@7@+@ @@ @@@ ????`?? ?n?@O?5?@??>>>C>>=<̽..8.$L $==$>a>>>>@?&?B?^?{??? ?????@@@@ %@0@;@G@0S@`_@k@Px@@h@@@@@@@0@x@p@@@H@@Px@k@`_@0S@G@:@`/@$@@@@?????`??n?R?@3???>>l>>=<$8WvlM.$==C>>>>@ ?&?B?^?}?`???????@0@@(@4@@@0L@PX@d@@q@~@@@(@ @@@@@@0@x@@~@@q@d@PX@0L@@@3@P(@p@@@? ?????@?@s?R?@3??>>>M>=$=MǾ;;Ǿ¾l8=$>v>>>@ ?&?B?@a?@??????`?@0 @@!@p-@8@ E@@Q@p]@@j@w@`@@@@@@0@(@p@h@@@@@w@@j@p]@@Q@ E@8@,@@!@`@ @@??????u?W?5??>>>8>= <M;׾Ǿv8$$=>a>>>?&?E?f???`???@?? @@@`&@1@>@@J@`V@0c@p@@x@ @@@@@@@(@p@p}@p@0c@`V@@J@>@1@%@@@`@@@??????}?Y?@8??>>>$>=̽8ܾ @@@;a<=W>>>@ ?)?@J?k?`?`???@?? ?@@`@*@7@0C@`O@0\@h@P@@@@0@(@ @@`@@@`v@h@0\@`O@0C@7@*@@0@P@??`?????@a?=?@?>>>>L=$Wܾ@ )05@8;;;@8@3.&@;8=M>>> ?+?@O?p?@??? ?? ?@ @P@#@0@0<@PH@ U@a@@p@@@@@@@؋@ @|@`o@a@ U@PH@0<@`/@#@@0 @@??@???`?f?E?@!??>>>$=tv;@ &0;ELRTWWWT@O@JB@8.@!M =M>>>@?@3?T?@x?`??????@@@@(@ 5@@A@N@Z@H@@@@(@ @@@P@@ u@Ph@Z@N@@A@ 5@P(@@@ @@???@???p?@J?&??>>>$=.&5B@OY@ainp@s@s@spkf^T@J=. ;a=W>>>?@8?@\?@???????@ @@!@.@@:@G@S@@h@@@@@@@Є@{@n@@a@S@G@@:@.@@!@@ @ ? ?`?? ??{?T?.?@ ?>>$>$=8¾ @3BR^ku} ``@{pfY@J;)׾l=a>>>@?@?f?`??`???`?0@@@'@03@@@L@@@@@x@ @@@@H@t@g@@Z@L@@@03@'@@@@@ ??@????^?@8??>>.>L=8Ǿ)=@O^n{@``@ufWE@3v =l>>?#?@J?p??@???@?`?@@ @0,@8@E@@`@@@@@@x@{@pm@`@0S@E@8@0,@`@0@@???@???i?@?@?>>C>t=8;0EYk{ @ࣿ ࣿ@`@@sc@O;# v=>>?.?T?{?@???@?@?@ @@ %@1@>@(@Ь@@h@`@@@@`v@h@Z@N@@@3@'@@@@@????@?{?R?+??>l>=$Ǿ0G^p@`ࣿ`౿౿౿ ࣿnYB+>>> ?@3?@\???????@@@)@`6@@H@@@@x@p@|@`o@@a@S@G@9@,@ @0@@??`??? ?^?5?@?>>= Ǿ@5Lc{```౿຿@౿ u^G.v<>>>?@?i??????? @@"@`/@ @@h@`@@@@u@Ph@@Z@L@@@2@%@@0 @@??`???n?B??>>> <¾@@8Ri` ຿ ſɿ˿̿ ο`Ͽ ο̿˿ǿÿ຿ @{cL0a$=8>>>#?L?u??`????@@@P(@@@@@ؓ@x@p@|@n@@a@0S@E@P8@+@@@ @??@?@??{?@O?&?>>C>$=̽l@@8Tn`ࣿ ÿɿ ο@ӿ׿ٿ ܿ ܿݿ ܿڿٿտ@ӿ οɿ¿຿@@@iL0M=a>>?0?Y??`?`?`???@@@!@@@`@P@@@u@g@@Z@0L@>@@1@$@@ @ ???@? ?`?^?@3?@ ?>a>=W@8Tp ౿຿¿@ʿѿ׿ݿ@ @@ @ ܿ׿пɿ@` iL08$=>>?=?i?@?@?`???@p @@@@0@ؓ@Ќ@p@|@n@`@0S@ E@7@@*@p@@@ ??? ? ?p?B??>>=$85Tp`@ɿѿٿ``@``@`@ ޿׿`Ͽǿ@kL. ׾>>>@!?L?@x?@?@???@?`@0@@@P@H@@u@g@Y@0L@>@0@0#@`@ @???`???R?&?>>$>ܾ@3Rp`@ ÿ ο׿ 00`@ ݿտ˿@i@J);$=M>>?0?@\? ? ??? ??0 @@(@Ќ@@|@n@`@R@ E@7@)@0@`@@???@??c?5?@ ?>W>L=;@ .@On`` ǿѿ ܿ @@ @ 0ٿ`Ͽ ſfG#a=>>?@?n? ?`???? @@@H@@@u@g@Y@K@>@0@"@ @P@????@?u?G??>>=ta&@Jk ࣿ@ʿտ@@  P @@ @ @޿@ӿǿ຿ @cB8>>>#?R??`???? ?x@ @@p}@n@`@R@D@7@(@@@@@?`??? ?Y?+?>>> .Bf@౿̿`ؿ`` 0 `PP@ P@տɿ `^;<C>>?5?c?@???? ?@@@@`v@g@Y@K@p=@0@!@@@????`?n?=?@?>W>$==@a@ οڿ`0P0 0`p` `` `׿@ʿ {W@3 ;=>>?G?@x???`??p@@p}@`o@`@R@D@`6@(@@p @@`????@?R?@!?>>=v; @3Y}` ο ܿ@ `0p "$%`&'''`&%#! `  `ؿ@ʿ຿ @s@O)M>>>+?@\?`??`??@@`v@Ph@Y@K@p=@`/@@!@@`@?`????c?5??>$> 8)@Ou ο ܿ@@ `@!$')+,p-...p-,*('#@!p  @``ؿɿ@kE<M>>@?@?p??@??h@~@`o@@a@R@D@`6@P(@@@ @??@?`??{?G??>l>L=Ek ̿ ܿ@`p@! %(+.023 555 54310.+P($ 0 ``ؿǿ`@a;׾=>>#?T?? ??@w@Ph@@Z@K@p=@`/@@!@0@@?? ?@??^?+?>>=tl;;@a@ʿڿ@`0  $(0,003579:0<<<<0<:97 52`/+'0#@`׿`ƿࣿ}W0C$>>?@8?i? ??~@p@@a@0S@D@`6@P(@@@0 @????@?@s?B?@?>C> <..W} ǿ`ؿ`0@ !'+037@:<>@A0CCCC0CA@>0<9`62.@*%  P@ Կÿ౿@sL#L=l>>@?L???w@h@@Z@0L@p=@`/@@!@0@ @`???? ?W?&?>>=̽@J@s@ ſտ0@ @#(.27:>@ACEGH@JJJJ@JHGE0C@p=951,'"0``P@@ѿ i@Ҿvt=>?0?c??p@a@0S@ E@`6@P(@@@0 @ ?@?`???n?;?@ ?>>WǾ;f`@@ӿ @ @P %*0 59>A EPHJLNP@QQQQ@QPNL@JGD@<83.)0#p``P ο @@\0. <M>>?G?{?i@Z@0L@p=@`/@@!@0@ @ ?@?`???R??>l>$=.Y@@`Ͽ@@ @P`%0,170<@ EH0L`OQTUWPXXXXPXWUS@QNKPHC@:50*$p`` ܿ@ʿ`ࣿ@xL@!̽=>>+?^?b@S@ E@`6@P(@@@0 @ ?? ?@?`?i?5??>=@@Ju`ࣿ`˿ݿ`P `&p-038>0CG0LP0S`VX[\^`_````_^\ZPXUR`OKGA<71+$p`` @`ؿ`ƿ@@i=ǾW.>>@?B?[@L@>@`/@@!@0@ @ ??? ?@?L??>M> <8 @8f౿`ƿٿ`'p-4@:@E@J`O0SW@Zp]`bde`fggg`feca`\Y`VRNID>82+ %pp `Կ@`Y.t=>>&?T@E@7@P(@@@0 @ ???? ?f?0?>>=̽)T@Կ`&. 5;@AGL@Q`V@Z^adgiklpmnnnpmljhgc`p]Y UPKE@9030,$0 `Ͽ຿`u@J@ܾvL>>@ ?pM@>@0@@!@0@ @ ?????@J??>8>W;Ep` ο `&p- 50<BPHNSXp]@a ehknprs u uu utsqpnjgd`0\WRLG@@:03+#0 @ݿɿ@f@8@ .<l>>`F@7@(@@@0 @ ?????c?.?>>=@3@a@ǿ ܿ  %p- 50<0CIPUZ`dPh0lpruwyz0||||0|zyw ur`okg0c^YSNG@A@:2*"@׿¿`@T&=>>@0@@!@0@@???`?{?E?@?>>L@!@O¿׿ $,40<C@J@QW\bgkpsw@z|`PHP~0|y`vrn@je`Z UNPH@A91)@!`` п຿ `pB¾C <W>7@(@@@0 @???`?@?^?)?>v>$=$ =k ࣿ຿п "+3;0CJ@QPX^cin0swz~0؃Є ppp x؃Pp}yu@qlga0\U`OPH@80P( `p @޿ɿ@`^.̽=0@!@0@ @???`?@x?B? ?>>)Y ౿ɿ޿@ )2:B@JQX`_ ejp u@z~(pP`h ؃@P|Pxsnh0c\`V`OG@P8`/'p ׿@{@JҾW )@@0 @ ???`?@?@\?&?>l><8¾Eu@@׿ '09A@JQX``f0lqw|xh@0؋(xЌx(`(zup@jcp]`VNG`?`6.$ `Ͽf5"@@ @???`?@x?@?@ ?>=0@a@``Ͽ 0%`/P8@H@QX`gpm0sx~(0x`P`hp(Hp|w@qjdp]UN`Fp= 50,"@ݿǿ@R@!ܾl@ @ ???`?@?@\?#?>a> <M;L}``ƿݿ@0#,`6`?GPPX`gntzPppPH@ؓ0hЌ0Hx~Pxqkd\ UpMD0<03)  տ`n=@ @@ ???`?@x?@??>=̽5i Կ  @*3p=`FNW`_gn u{؃h0p`ؓДh``hpxPЌp`yrkd0\T0L0C@:0'̿ Y&p @???`?@?@\?#?>W>W׾R@˿p'@1:DpMU^`fn u0|Hx`xx`PHpؓ@P؋hPyrk0c[0S@J@A7.#ڿÿ@uB@`@`???`?@x?@??>=;n@ٿ$.P8AKT\ epm u0|Єp@xh؛МphhhpМ؛Hؓ`Ќ؃Pyrjb@Z@QPH> 5*  ѿ@^+?@??`?@?@\?#?>M> aܾ#W `Ͽ  +5`?HR[c0lt0| Ph h`PP`М0H` Pp`؃Pyqi@aPX`OE0<1'pǿ`{G?@??`?@x?@??>=@ @@s@ ſݿ`'2<`FPYbjs{ ؋xHp0أФ ppp xأPМhؓ`؃PxpPh`_`VL0C8.$ տ c? ??@?@\?#?>M>l&@\@຿@ӿp #.9CpMW`irzH (pP (p`P`h أ@Ph(`xh`؃w`o`fp]S@J@5+  ˿@???@x?@??>=@B@x`ɿ@ *5@JT^gpyЄx0؛x@0ث(xxx(`أp 0`~`vpmdZ@QG<2'0 ٿ@ `???@\?#?>M>v+^@ࣿ׿`'1<GQ[enwPxP(x`(0x`Php(H`p0hp@p}tkaPXNC9.0#0 `Ͽ `??{?@??>=@G{`౿˿ ".8CNX0clu~؃؋@ ppH@س0hЬ0x(@hh@{rh`_ UJ@5@*0ݿÿ@@??^?#?>M>v+c`ٿ@) 5@JU`@js|`0أh0 سдh``hpxPxpxHHyp`f0\QG<@1%@ѿ` ?}?B??>=G ο  %00<GR\g@qzh0Hx`xx`PH@pس@Ph0МHppHЄPwpmcXNCP8,@! `ƿ ?@a?&?>M>v.c ¿ ܿ 0,70CNYcnPxphФp@xhػмphhhpx`سxPМ ЌP؃~tj`UJ`?3P(0 Կ?E?@ ?>=@J п'03>@JU`j u`x@ Ph h`PP`xH` p@أPxxP(`{qg\Q`F:`/0# c?)?>M>v.f @ ſ޿ ".@:E@Q\gq0|0ЌHp ثxHpx ppp xPмh`أ(PؓhHxncXpMA`6@* G? ?>=@J@`@ӿ)5@ALPXcnxPД H (`pм(p`P`h @Ph(`xh`؛`0hЄuj`TIp=1 %0 +?>W>v0f``ƿ@ #0<PHT`_ju @ؓPxФ(Px@0(xxx(`p h`0`pP|qg[PD80, 0`@?>=L@Կ`*7C`O[`fq|`؛(P(0hx`(0x`Php(H`p0hph@p(xnbWK@3'@p >a> v.i`ǿ %1>J`Vbpmx(H`ث@ pH@00hx(phh@Hxp u@j^RG:.@!>=@O຿׿`0 p-9`FR^@j uP 0`h0p@hpx0hx@ @`( (P0{pdXL@4'W>v0k ɿ p @'4@pMY e@q0|؃Hhp@0Hx`xx`PH@p0x H x0H؋Hwk`SG;.!=L ׿@!.;PHT`lPx`Ќ`(@hp@xhphh x@`pH(h0xдxД@Є~rgZNB5( v0k @ʿ (5B`O[gs`pPxHh@ Ph h`PHx (P(@pP0PynaUI<0L `ؿ@ "0<I`Vbnz0hؓHh0ЬHp(Hpx pppxHhxPp@ػ؛H؋P uh\PC7l.i @ʿ`@0)7CPp]iux`МPдHpH (pP (p`P (H0`0Hx`@Д`؃0|pcWJ>L `ؿP0#0>JWdp|x@pPp@`سPмx0hxh@0(xxx(p` ЬP wj^Q E.i @ʿ`@`@*7 EQ^kwhأ`ػPx(x`(0x`hp(` 00P @h@ PhH؛h0 ~qeX0L@@J `ؿP`#@1>0LXer~pHx`xh`(@pPppPH@00hx(  سФ`xxl`0S+f@ʿ`@`p*P8E0S`lyДp h`h0p`h`px0Phx@ @`( p (`pPp@(hsg@ZG@຿`ؿP`$1`?L@ZgsPhxPأHhp@0Hx`xx`PH@p0x H xثh؃zn@ac`ɿ`@`p+8`FS@anz؃؛`Ь(@hp@xhphhhpx@`pH(h0xx0x`xH0p` uPh຿׿P`$2@pMZPh u`pؓ` PpxH@ PhH h(||x (P(@ PМx0|`o ɿ @`p+9GTa`o0|xH` hس0Hpp(pPh<HhxPpػhHثPxh`v ׿@P`$2@N[h`vhД(`xPHpH (pP |p\(P|||P4((H0`0H(`д`أ p}@ǿ `p+9G U0cpp} ؋Ph(@pp@Px0hPH<4 <h<pP pP `p@`տ@`$2@N0\@jw@`p؛h`PxP(`4(h\(4pP0P @h@ PhHػh (`ƿp+9GU0c@q~x`p0Hx`xHh`(@p(p( p H |4hp|\  `(hxHԿ$2@N\@jPxHhxдph`|4||H h 4 \ 4 < (4<  `( p (`pPp(Ќ+9GUc@q`hЌhxPhph0<<\|p < ( H p p p H | \ P px (h0p P#2@N\jPx0Ppأػx(p@hhpH < 4 p h 444 < H | <4x(0hx`x0 ؓ+9GUcqpؓ`p` pxH@P4 4P|( <p h H \(P( pмx`` #2@N\jx@`x 0HpPh Ph<p4hH P PH@hP@(p 0*9GUcqxhxh(`xPp|H ( p |p<\(|||P4(4   H`0H(x 0#1@N\jx@Hh ( @xPhPp | (H< | p<<<HP <  \Hh@HxpH0 P@*8GUcqД p0( 4 < <\4H|pP h    H0P@ثp"@1@N\jxHPp( 0((H` \ p\ pH| <pP4\ ( PxP@(`)P8G UcqД؛xx@ hp P4|| h4\\ <4  P hP@ `Hx0`?N0\jxP`x0(@00P 4Hp \ H <\|p< (HHpH |\PpP h |h(` `H0мh7`F U0cq ؛ HxP4H 4 hp <4ph 44 < |\4( < (pH((hP>pM0\@jxh @ 0H @`| (4|4( | | <p|h h\ 4 (hP@pET0c@q (0(Pp<| P<P !!<""""""<"!H! 4<H(( \ \ (00`HL[@jPxp(H(@P(4< | PHHh| H!""\##($P$|$|$|$P$$# #"! \| \pp \ |(Hp`HSb@q` (0@h0` \ <PhPp | P H!<"4##|$ %%%&<&<&<&&%p%$P$#"!  <  \H4 <H @PZiPx0x0P 0H` PH (4< " #$$%<&&\'''((((''4'&&H%|$#"p!P h    h  PPxhP@ ap` (0@Hp@h(| H \  p!"#$%&'((( )p))))))H)(|('4'<&p%P$4#" \(h( \H`hw0@д@`(@PhxHh p P !4#|$%&'|(H))h**4+++++\+ +*<*)(((4'<& %#" !Ph( H ``Hxp~ (@HPxH(pP  ( 4H\p\H  "#$<&\'|(p)<* ++(,,,H-p-p-H- -,|,,\+*)((&%P$"p!Ph|h(H P P Hhw@дػHh0Hp\\ P H4   h"$p%&( )<*4+,,p--h.. /4/4/4/..<.- -|,+*)(\'&$4#!(<(p   hhP~h (0P`P 0h  |  "($%4'|()*,,-.4//(0000000|00/ /<.p-|,+h* )'h&$\#!4h H (hP@pH ػPp@xH( P p<| "P$%'(<*+,-./P0012h222222<21H1004/<.H-(, +)((& %\#!\( P`pД(0@`h `(@ \ 4<|| "P$&'H)*,H-./|0p122\33(4P4|4|4|4P443432100 /-,\+*|(& %\#p!p\ |\  \|p`HxP (`xHh h\<P h"P$&'p) +|,- /P0H1<24334 5556<6h6<665p54P43210/.H-+<*( ' %\#H!4 <  <\|h x؛0@Hhp(h0p ( (  "($&')4+,<./02 3445h66\778(8(88774766p5|4321P0 /-,h*(& % # hpP  <hP `д(0h PhpP4 \|H!#%')\+ -.0p1234567(88 9p999999p98|8747h6p5|4\320\/-(,*(&$" h(4\ p(@HPpx0p (4  < H!#%')\+ -.P0143|4567|8H99h::4;;;;;\;4;:<:98(847<6 532 1/.P,*(&$h"(   h `(hдػ0@p(H` Ph #H%\'p)\+H-.0234<6\7|8p9<: ;;P<< =H=p=p=p=H=<|<<\;:98865P42p1/.P,h*|(h&($!HP (p |px0HP`x@p |\\P "$ ' )4+ - /0h24p568 9<:4;<<p=>h>> ?4?4?4? ?>h>=H=|<;:98\764431/.(,<*((%#p! \4P H <40pЬ(0h H  ( <\!($h&(*,.|0<24p56P89:;<=h> ??@|@@@@@@P@@?>>H=|<\;<: 97h64431/-+)'p%4# < h  P (0` H !#%((h*|,.|0<245478:\;|<=>\?(@@pAA =<:9(864\3p1/-+p)4'$" p(p P@ xس0@p((\ pP P "H%')(,<.P0<24578:; =<>\?P@ AAB4CCD(DPD|DPD(DCC ChBA@@ ?=<\;9|86 5\3p1\/p-4+(&P$!\4Pp |H` (0@h  P\ hp|\"$ 'p)+-02457H9:P<=>@ AB CCPDDpEEFF =;<:86 543H14/,*|(&# !h<4PH < (@Hx0P (4< H!#h&(4+p-/1357p9 ;<>\?@ABCDpEp=<h:864 30.|,<*'p%"(    hh(0@Hp P #%((*,4/p1357p94;<h>? AhBCDEF\GH|HHHIIIIIIHIHPHG G(@A C(DpEhF\GPH IIP@A\CDF4GPHHIJJKL|LL MHMHMHM ML|LL\KJIHGFE(DBHA?=(<<:P8<6(41/ -*((%"( Hh\PH< @P`(\ (\<H( "%P( +p-0<2468:<>|@BC EFGHJ KKLHMM|@|@P@|<<:7H52(0p-*'$" h`px|\ H|!$'*-P0 35(8:<4?pACEGpI4KLhNO QhRSTUV\WX|XXHYYYYYYHYXPXW W<947414/|,)&# \(@`h< | <p #&)|,\/24\79P<>@4CHE\GHI4KLN(PQ SPTpUVWPX YY|@BD G I KLNPPQ\STV4WPXHYZZ[(\|\\ ]H]H]H] ]\|\\\[ZYXWVUPTRHQOM(L|<9\741 /(, )& #pp(| h P"%(,.14\7:<4?AD; 9h630-*'$!h4P< H (H!|$'*-03h6 9;h>@\CEH;8643(0 -*&#| @P p( \#&),0 358;h> AC4;P8p5h24/(,(%hh H P\"p%(,4/<2p5P8\;<> ACF IKN|PRT W Y [\^P`a\cdf4gPhHijjk(l|ll mHmHmHm ml|ll\kjihgfpe(dbHa_](\;852/|, ) < H P\<"%(P,/258;>AD\GJL4OQT4;(841h.4 h  ($'*<.p148 ;> A(D GIL\OQ|TVHY[]_aceg ij(lmnp qr ss|ttpuuv;|8H51\ h  ($' +h.14P8;>ADGJpM(PRpUXhZ\ _Ha\cpe\gHi klRfffR(~~H}P|\{:(4h"%p),P0347:= APD\GhJpM|P\S(4̀f~}|4{yPxvt4sHq4o m khhfda _P\YVT QN KHDAh>\ <"%p),|03\7:>HA|DGJMPTVY|\4_aPdf ikmoqsuw yz(|}~ p؁(z  ̂fHRh~|{z|xvt spnlj(he\c`^\[XUROLIF\C(@p P $'4+.<25 9|<? CADH4KhNpQ|TWhZH]`bHegz̄̄f(؃(R4}|A EPHKNQTX []`cff(Hf\\}|z(xvsq\olhjg ehb_\YVSPMhJ4GP #\' +.25 9<@CFJHM|PSVY\_bHehj moqPthvxz|~(z4؃fpRHppH̆(…H̄>>p}{ywu\s qn(lif(dpa^[XUR\O(LH!p% ),P03\7:h>AHE|HK ORfffR(p (z؃R}{y\w ur|pm\khf4cP`p]ZWPT QMJ#4'*.25 9<(@C G(4f4HHH4 R \Hf\p}\{ yvtAHEHL\ORUX\ _bdgjHmohrt4wy{}̂f؅zH‰(((‰4̈fp>(Hz4 }zxhvtpqnPlifc`^ [WTpQz  f‰\f؇4؅ >\zz~|z(xu\spn\kheb_\YV\SPH%(,P037 ;>BEHPLO SRpf̊\‹‹H >‰Hp>\fpf~P|yw uro mhjgda^[PX UQ '*h.25H9<P@C\GJNpQTX4[h^pa|d\ghj mprHuwž̌z((R̆>HRH(~{HyvPtqn(lHihf\cP`H]ZVS(|,(03\7 ;>BE I|LO4SVY\(`4czf>Hf\\‡  ̀\|hzw uhrolifc`]hZ WP,0347:>BE ILP\SVZH]|`cfilohrHuxz }(HR\RH(‰4؋zR4\ppH(\̌>>؇̂~(|yv(tpqnkheb\_(\X.1p58<P@C\GJ4( ؉p\؍f̎4؏>ffzfR(p>؋f‡̆؅̄p>}\{xu4sPppmhj\gPd a]Z/347:h>AE ILPSV̎HfH\\H4RpHz‡pR }hzwtr4o(l ifb_|\1H58|<(@C\GJhNQHUX\\_behl oqtwzH}4f̄̊f4؍z(Hؑ(>>>‘4zpR(\zR4~P|yvspmjgdpa<^\3 7:<>ApE IL(PS WhZ]`PdgjmpsvpyP| ̀Hz̆؇؉̊\p pؑ(z  f‘\f؏4؍ >\zzpfHR~\{|xurolihf4c`48P<@C4GJhNQHUX(\_bfHiPlorpu|x4{~f(\‰p>RpR\““H >‘Hp>\f\RH(ƒz4 }ApEHL(PS WZ]Ha|dg knHqPt4wppR؏4‘R̒H>z̔̔z((R̎>H>4( ؅\̀~| yR} {x urnk|hHe<:=AHEH|LPS WZ^padh\knqtwz}> R̆4R\fpR4R p•>zf>Hf\\  ̈f؃4|yvsppmHR4‘z4ؓfpR\ppH(•H̔>>؏̊zHp~{xuhr4olh=pA EHPLPS WZ^padPhknr uPx\{<~p̄\‰(4ؑ\HؕR̖4ؗ>RfzfR(—p>zؓf̎؍̌\(R(H}hz\w(t qmj?4CFJNQHUXP\_4cfjHmpsvz }pR>؋ >(4fHH\H4RpHzp> ؇4؃z 4(| yuroPlHADHPLOS WZ^ad|hk ohrux{~Rƒ4؇f؍ؑ̒fؕz(Hؙ(>>(™4zpR(\zpR4p\z}zwtHqn CFhJNQHUXP\_\cfjpmpt\whz}R4pHz̐ؑzH\z pؙ(z f™\f—4z• >\zzpR4̊R>̂\|pyhv soD|H(LO\S WZ^a e|hk4orux(|\4R(\z\(>\R \››H>™Hp>\f\R4‹z4؇z>h~\{(xtqF\zp> ؗz™R̚4>z̜̜z((R̖>H>4(؍\\ }yv\sPHLO4SVZ^a ehl\orvHy||pf؅H\>\zpzpR\4z\\ ̜f zؙ4z( >>pz~{|x uJMHQTX(\_\cfhjm q|tw {<~>؃H(>̎>\f\R4̘>\>ff>Hf\\— ̐f؋z‡R\؁Rp}H>4z؛fp>\ppH(H̜>>p—ؓ̒zHp4…>44|xMpQ UXP\`c gjnpqt(x{~ (p̌\ؑ(4 ؙ\\؝f̞4؟>ffzfR(Ÿp (z؛R—̖•z\>pf}؁p pR>ؓ  >>HfH\\H4R\4f\> z‹fpzH\(|HQTX(\_c gjnqtPx{ RpR‹4؏fؕ̚f4؝z(Hء(>>>¡4fp>Hfzp>\H؉R\ƒ(} SVhZ]aHehPlo\svzp}f4̆R‰4pHzؙؗ̚zH\ pء>z  f¡\RŸ4z (Hfpf\R4̒>(H‡> pT|X\_\cfjnq u|x{4Hz4R(\z™\(RpR\££H>¡H\ >HR\>4ff (RhV\zpR ؟4¡R̢H>z̤̤z((>̞(4>4•HHz f4(X[_4cfhjnq ux|\\ >؇pf؍H\>\zzpR4p4(\¥¥¥\̤f zء4z ؗp(>̎\fH…zY]Hadh(lo\svR؋H(>̖>\f\R4R p¥>zf>Hf\\Ÿ ؙR “z>̌H‰>\[\_ cfhjmq ux|p̄f4( zؓf>H>4¡z4أfpR4\ppH(¥H̤>>pŸ؛f4\(>p] ad|h(lo\svhz}RHz z\H™(ء\HإR̦4ا>fzzfR>§p>zأRŸ̞z\>p f̆4_bf(p› ء>>HfH\\\4R\4f\>—z“RpfH`dPhlo4svhz}f…p >\̐>z— Rءfإz(Hة(>>>(©4zpR(Hfzp>\4ؑR̎H‹(bhfjmHqt|x(|HR>\4fŸ̠¡zH\ pة(z  f(©\f§4z¥ (\fpz\R4̚>(4( p‡|d(hko sv̚Hz\(>pR\««H >©H\>HR\R4f—f R اz©R̪4>z̬̬z>(R̦(4>4HHzf̌4hk\o sv\fpz\R\4(\­ح­\̬f zة4z ؟p((̖\fHzipm qtPx|H ̆z(؋p (4(p>HR\R4̨> p­>zf>Hf\\§ ءR ›z >̔H‘(\k4orhvz}f(\ R f› R̠(4>4z4ثfpR4\p\>­\̬>>p§أf4\( p؍>Hmpt(x{H ̆z>4̐fpfؙH4z ©\HحR̮4د>fzzzR>¯p>zثR§̦¥zH>p f orhvy}f(\̌zH̔RؗH(̞(\£ة>(4fH\\\HRpHfz\>Ÿf›Rpf̒Hp|tx{\H ̆>H(4( f >p¥̦اةfحz Hر(>>>(رHzR(Hzzp>ء\4™R̖H“(zhrvyp}R(p(ؑp  zHR©zH\z pر(z  f(±\fد4z­ >\fpz\R4̢>4( p(tw{4p4 ̆Rp Rpz\̞(p̢4fz\(>\R\³³\ >±Hp>HR\R4fŸf  RuyH}zRp4R4̖Rؙ\̜> RHfz\> ¯z±R̲4>z̴̴z>(R̮(4>4¥HHzpf̔4w4{~Hz>pf( zء4z4R\RH( دHz̴\µµµH ffرf̮  §\(̢(H؛R̘4fHy|R(…\RHz z\\§4>4( (̲pz\>ff(HfHḪة> £f (4H {~4 z>p̒z(—\f\̠>>pة ̰f ³R\ص>HppH̶(µH̴>(p¯̮ح«fHz  p•(|>…HR\ >›H̞>zإRث̰zH4µ>p·(RfffR(p (zسR­zH̦(̢\zpR ~̄f(p4>(\4fحد̰±\(̴R 4HHH4 R \4fz\(f >̠\؝R̚4(؃pH ̌R“p̘f p>Hz¯p> µfz4¹(((¹4̸fp>Hfpzz\> ةH4¡>4z̖ R(p4RHfpR¥f©(\zRHطf\¹f̺ ̺fH̸R·zµ(Hf\f\>p(̦p\ƒ\4 ̌Rؓ4z(H̠R£4Hث >\zzpf4̶(Hع> H»ػػH(¹4\ص (HRH>̬R Rp؛>f>p4f™\ (4(>\f\RHf ((f̼̼f(ػ > (4(z44إfp؟RppȞRؓH>؝p f© f̮>H>4(·H f̼ H½H ffعf̶  ¯\̪H£R̠4RzR(؋p4z(ؙRpfاHHz(4 طp(̺pzH>ff(HfػHH̶±p>f(4z4\4 zRؓH f4̢RإH(̬(\± R R\ؽ>HppH ̾(½H̼>(p·̶ص̴³fHz \>‹\4z(Hz4( f >p³ط̸z44½>p¿(RfffR(p (z» RfḪp(̪\zpء>̊z>ؓ\ ̚z(Ÿ\ zHRµ̶ط̸\̼pR 4HHH4 R \4fzH(f >̨\إR؝؉Hz>\>أpz\̬(p̰4fp>Rz4(((4fp>Hfpzz\> رH>4f̞f(“\ ̚z>؟Rا\̪> RHfpRؽ4ؿf\f fHR¿z½(HR\f\>p(̮pzH‰pH z>\ f4>4³(HfpzpR4pH>HH(4\ؽ (HRH>̴R Rpz\£(zR“H ̚>Hz \̰pص (HR\R4R((ff( > (4(z44­R\ا> ppH̒f(p̠z(¥\zp>> (4>4¿z4z f HH fff̾  ·\̲pH«>4RR(ؑH ̚R\ >©\̬R¯سf̸ ؿ\\fH(fzzf(HfHH̾¹p>R(z̤44 R(p4>(4pHz̺ؿ>>H( H\pH z(H>(p̾ؽ̼»Rص4رz z\‘p4 ̚R¡pf R(\̼ؽؿf> p(RfffR(p (z Rpf4p(\f\ة>̐zRp4RHfpf³z· >p¿zHpR 4HHH4 R \4fzH(R >̰Hح>إ؏\4̚R¡4z(«ḪRرH\Rpz\(Rpf4(((4fp>Hfpzf\( ¹4(fzR(™\R\4>̺4Rpzpf\> z4RHf f\R4z (Hfpf\>p(p\\4 z>¡4>ثpf·f4R\R\>\4(HH>H\ >HRH>4f ·f pث>f>\R§p RدpfصHH½4>H>>(ff((R(4>½zHHصfpRpH̘f(¡4R4R³H((pؿ(zf f HpH f z4z ؿp((HسR̰4R(ؗpH fا4̬z( f» R \\fH(fzf>Hf\\R »f (4z4̖zR(¡Hf\z zH4fp>>H(z H\pH(H>>pf4Hz \­ؕ\4 ̠fاH(±\f\̺(̾HzRz( \(RfffR(p (zRzH̾(̺\zpر>f>p4f(­p >µH̸> R(\zf4\ > 4HHH4 R\4fz\(f ≯\صRpHRاH R(z4 >\zfH>pf4p(((4fpR(Hfz\> H4¹>4f̮zR(؟p4z(ح4̲f \̾p>\fpfH(zRHR f\R4z (Hfpf\>p(̾pH\4 zRا\ fHfp>R>HRH( \4(HH>H\ >HRH>4R Rzpس(>Ÿ\4z>H(·H̺>½4z(4( > p(ff((R(4>zH4ؽfpطR p̞f>ا\̮z(سp (p\  ffR HpH f z4z \((H»R4R؝pHz>\ R R>pzHHfH(Rzf>Hf\\R f (4z4̜zR(§\̮>4̸fpRz R\((H(z H\ppH(H>>pf4Hz \µ\4 f>p̴f4̼R¿4\4fp> f ( \(>fffR(p >zRzH(\zpع>f>§H ̮RH4>HfpR4\z > 4HHH4 Rp4fz\(f >\ؽRصpH̦f(p(عpfz(HfpzpR4>\fp(((4zpR(Hfz\> H>4fR(إpH ̮Rµp RؽpfH\ (HR\R4fRHR f\f4z (\fpf\>p(pzH4 R(p4>4RH(>p (4>4H4(4pH>Hp>HRH>R Rz\»(z¥\4 ̮Rµp̺f( f R  p( pff((R(4>z44f\ؿ> \̤f>حp4RHz zH4zR fpRHpH f z4z \(H>R£pHRµ4(¿\f\(\z4HR4(Rzf>Hf\\> f(z̼4zR(حp4f»p >H> f>pz\(4z 4\ppH(H>>pf4Hz z\\4 z>µHR(HRpp> f ( \(RfffR>>44f\>pz pR f>­\f(ػ4f p(p4RpzzpRHz > 4HHH4fpHzp> fR\R4H̬f>µHfHfpR R4R\f\R4(\fp(((HzR(\zpR\4>4f̾ثpHf(ػH(H>44z4>H>4f >HR  f(\f4 >\zzpR4>4H̪zR(µH fp (p\(H(4\ >Hp>\f\R4ffp>ة\4 ̴f(ػH>p R>p p(p pfz>( R>H>4HHfpRpf>سpH z(RpR4RR RpRHp\z z4z(p((HR4RpHRػ\ f4>4\4ff44R4(Rzf>\z\\ R f (4z4fR(³p4z>Hz>HzzHp4z 4\ppH>\>>f4Hz \H̲z>ػ\ z\zfz(\zz\(R\>RffR(p>4fzH(\zp>(ر\z>\>\fH\ (Hfpf\> 4fp>4HH4 RpHzz\(f >\R f>ػ\z(>H(> (HRH>pHRp((4zR(\zzp> H>4f±pH z>\ R( fR (4(R(4R f\f4 >\fpz\Rp(pzH̰zR(»H >4fzH4z  z4z z4pH>Hp>HR\>4R Rpz\(z\4̺f(pzHf\(\\\z\Rf((R(4>4zH4f\> \zR(عpH >\(4( f>pp>>\>4pH f z4z\(H>>\4 R(p(p  zHRppRz>Rzzf(Hf\\ > f(f>¹p4R\ Rpz\(p4RppR4\f4\ppp\H (H>>pf4Hz zH̸z>p>4R\>R4RpfpR4>pzH>RRR>(p >RzHp(\f\(طHz>pf4>z4z4>HR4zR\(z444 RpHfz\(f >H> p̶zR(\RHz\\(4\4> \4fpR(Hfz\> H(R\4 z>p4(\zp>>p >>z fHR4z (Hfpf\>p(p z4f>\R\ >\RzRff f\H>H\ >HRH>R Rpz\fpHf(4>(4\4fzHHfH>zf((R(4(z44R\>\>¿p4 Rpf p>Hzz\((H>4\H f z4z(p((H>4>̾zRp4R4fpRf(Hzz\> f (p>fzf(Hz\\ R f (4zؽ\R4zHR4H (\fpf\>H RHppp\H (\>>f4Hz z\̼f>p4f\(4p(p (HRH>(pf4(RRR>(p>fzH(\z\>\4 z>4>pR R (4(f RHf 444 RpHzz\(f >\>pf>\fpR\f44z  H4(H4zR(\zzp> H>RpHf>HR4>Hp\p(p >zf\f4 >\fpz\Rp(pz4R(Hf4zR(pR Rpf\H>Hp>HR\R4R Rpz\z R(HfHzf4 >pf44RH>zf((R>4>4zH4R\> \\4 fH(\fH\RpfHp4(\pH f z4z(\(p4>>f>p4fp >H(>4RpzpfH(R( p>fzzR(Hf\\ > f(fpHRHR( zf4R\RH( 4z RH\pp\4 (H>>pf4Hz zHzR(p4z(4fzHH4>4( p\f4)) p >fzHp(\f\(p\4 z>H fHR\((p R>H 3RqfH)pHfz\(f >H> pR(\z(H4> f Rf4zH{  f3pR(Hzz\> H(R4 f>H z(\ H4fH\H3Rfq{{qfH3 q)4z >\fpf\>p(p f4pH f(H>pz\(Hzp(q)\{R\ p>HRH>R RpfHfzR(H z(R\> f(Hzp> =)f3HR\\RH3R{)(4>z44R\(H\4f(\ f>H (\fpzpR\R =f\3== \p4>p(zR(pH z>4z p(p >HR\R4f{ H{)===3)q3\ H>Rf \4 R\z\fpRR (4>4 q=3{Hff=f{Rf4ffHf>\4z>H(HR4f  {H\)\  R=)RzHpHfH(z4f>\z(p (4\HzqRq\)Rf{{fHH\3Rz\(R(H( \pHz>\ R >(\q\)= =qf3q)q3Hz\> 4z(> f>\RHfpf4Rpf\=\={3Rfq{{qfR3 q3H3=\>p(p f4pHz>p4zHRH\4RHR=qf)\{R\ \)4R RpfHfzR(\R\(4(>43===\3HR\\RH3R{)f z44RH(HpHf>p4>p  fz )3RH =f\3==q  {\p4( p(zR(H RpRpfHH{ fq={)===3)q3\ Hq{R>RR \4 R(p4R4RH((pR{ q3)qHff=f{Rqq\34ff4(\4 R4z4( f )\{qHR\  RH3Rf\=pHfHz f>p4RHz zH3\qqRqR)Hf{{fH)H\3RR=qR(H( \pHR4(\f\(f =\fR)3 =q f3q)q=H=H4z( >zR(\4fp >H> 3{=RR3R3{ 3 H \ q { { q \ H ) q)=33\ \z fp\4 z>HR(zH=H3 ff R { { H  \ \)f)>\fHfzR>\ff z\f \3){3 \  ) H R \ \ R H )  R  {)fq=HRH(H\4 f(HRHf\{)fHH 3 \ \ 3 = =q {H f 4( p(>pH f4zH>=3f \ f = q ) 3 = = 3 )  q 3 \ Hq{qR{){ R zRHf\H\Hq{\) ) f  = f f =  f  {  Rqq\)H3pf4\RH>pzqqHfqf= H  R     R  = ) Rf\3\ \RHzzR(p4f(pR\q)=Rf\= f H  H f { { f H  H \ 3 RR=q){\4(\\4 zRHR4HR)HRH  { ) { 3 f f 3 q ) q  3 H=== p>f>\f(4zH qf)==  H ) q ) H \ f q q f \ H ) f ) =  3 3R \={pRp\4f>H fH=q)3q )3  \ \  H q { H  R R  ) f){f34R>pHf(H(f)HH{   f ) { R )=HRRR=)  R {  f   q==fz4zR(H z(p RR fR{  q = = { )R{{\) { = = q qH \HH \\4 f(H RH {){\{ q H \ 3f )333 f3 \ H q { q R{)qH>f>pH z(4f){3H3\ q q R  { \ 3\{{\=f {  R f q R )H3q)f4pHf(pz f)\ f = \ f R ) =H{  {H 3  H R H ) RHRRzR(pH >H{H\{){ = R R 3 \==\q{{q\={=R ) H H ) ffH3f4p\4 zRpH =H  = H 3 qq)\\)ff ) 3 ) q 3)q=q fR(\4>\\){=\ R  3 3 {=f=R\fffR=f3{  ) )  { H R)qH{H4 f>\\)f{ f  ) RR =fq= HH{    R  q \RpHz>pf3\= 3 f  \qH{3HHHH3{Hq\{  \ ) 3{ R)\zR(\)q==\ = q f33qRqqR){33f{{ f = R =3q\4 f>pq=q3f q  H q {f=R)\))))f)R=fq f H f  f3q=fzR(H )Rf 3  R ffHq\3Rqq\3 \qH\\ H  { 3 fR\4 R(pqHRH R ) H\H3 =q  {H 3HRH ) R H RHR>p4 )\)H f  f )HH)R={3Rf{{q\={=R)=H) f  f H3f4 z>pqR)f3q ) ) q )3)ffR\)ff)3) q 3 ) q 3q)pHz)f= \ H = { ) q3\3H\ff\R=\3q )){ H H ) fHqzR(\qR){H  H f R{  {HH 3ff= HH{ R  f R R\4 zqH{= q ) { \{{Rf={3=HH=3{Hq\{  \) 3 { R )\zf>HqR) R q ) = )\qq\))qHfqRq))\{{f3 R = { 3f\4 fqR\  R \3\f\3H\))\)R=fqfH f  \ 3 q  =ff>p4fH) f3 H q q =RR= \ R)RfqR3\qH\\H{3  \  H{4zR {R)q 3 { ) ={=H=q){=q   {H 3HRH)H H  R H\{\H) q= f ) RH33=3q 3Rfq{{{fR3{=R)==)\f H 3 \zR(qR3 { H  R q\)R RR{\)ff)3) q3)q 3 q )\4 qR={H H {3)ff{R3HR\\\H3\3q )) {HH ) f  H qzf>qR3  \ ) q 3H=f f333\f= HH{  Rf R  R  \4 \H3{R) \  \ f Hf{fH\3q)====3{=q\{  {\)){ H ) R {R({fH)  f 3 R {)qH\fHqf=fqR){33f q=\H = q 4 H3 qR) q 3 {3=HRH=R ))f)RHf{qHqf={  H q q\= q =  f)RR)==)RHHf{q\3 \qHffR)=)f  R =)qR) { H R qf)3)ff3f   {H =)R\R3RR\ ) R p{fR3 q H  H {33q q3f)H\q{{{fR={=R)HH3 fq R3 f z)fH) \ ){3R=q {HHHq\)ff 3=3{33{=q 3 pHq\=) q R ) \\ f Hq{RfH )=R\\\H3\3{))HR3qH { R{fH) f 3R{){Rqq\))q)R{f= HR\q\R  q\H3  q R ) q={3H)R\R3H)f 3===){Hq\  f33R)\ q\= q =q3\ \)HR3 f R 3\{qHq33f{f=R==q q\H3  q R ) R\{)f 3=3q){ H{\)R=fqfHqf3q=f {fR3 q HH 3=q ))H3{=\qqR)\qHffR3fR H3) f H ) \){3RH{ R \\ q= 3HRH)RHRH{fR=) q R)\)\qR{  \{\ = R f q q q f R 3  {=R)HH3ffH3f{ f H ) f3R3)\{{f3= = f R  ff)=3 q3)q3q){f\H3 q R)q==R3\ff=\3 q !!3!H!R!R!R!H!3!! \  3q )){HR)fHqq \ =  q=q3\f3R\Hq f !H!q!!!!!!!!!!f!3! ! H H{ Rq RR f\H3  q R)R\{)q 3H== !R!!!!"")"3"3"3")""!!!{!=!! f  \{  \)3{ R)R{{f H 3  qHR =={33R !H!!!!)"R"q""""""""f"H""!!q!)! ) \{{f=R={3fH3  f H) \){=\ R) f !f!!!3"f""""" #### #""""\""!!R! = fqfH f\3q 3\{fR = ) qR)f)f{\ q 3!!!)"f""" #3#R#f#{####{#f#H#)##""R" "!f! ! H \\H{3\H{  { \ H)f3 \=)f  q H!!!H"""#H#{############q#=##"{"3"!{!! H RH)HHRH{fR= )  qR)q==R=fqq R!!"f"" #H####$3$H$\$f$f$f$\$H$)$ $##q#3#""H"!!)! = =)\f=)\ q R =q=q3ff =\f R!!""")#q###)$\$$$$$$$$$$${$R$$##\##"f""!)! 3 ) q))q3f)fR=3  qR)Rf3{=R R!!)"""H###)$f$$$$%)%=%H%R%H%=%)% %$$$\$$##3#"q" "!! )  {HH)f =q q \ H 3qHR=H= H!!3""#f## $R$$$ %=%f%%%%%%%%%%\%3%%$$H$##H#"{" "!! {Rf RH =3 fH) \)=f \ 3!!)"" #q##)${$$ %H%{%%%%&&)&3&)&& &%%%q%=%%$f$$#R#"{" "! !{ \)){ HR{ { f R =  qR)f)f{)f !!""#{##=$$$3%{%%%&H&f&&&&&&&{&f&=&&%%q%)%$$)$#\#"{""{! f 3H3{3f {\=)f= \=3q !!"" #{##R$$ %\%%%)&\&&&&&' '' ''&&&&R&&%%H%$$=$#\#"q"!f! =  f\)f 3\{ f R = ) qR){= H\H q!""#{##\$$%{%%&\&&&')'H'f'q'{''{'q'\'H''&&&R& &%f% %$=$#\#"\"!H!  {3\H{ fR=qH{=fq H!!f""q##\$$3%%%=&&& '='q''''''''''''f'3''&{&3&%{%%$H$#R#"H"!)! H= H=f R = )  qH)Rf= !!R""\##\$$=%%&\&&&='{''' ()(H(R(f(f(f(R(H()( (''q'3'&&H&%%)%$=$#=#")"!!\ f=)\ q\H)qHRHR !)""H##R$$=%%&q&&'f'''(R({(((((((((({(R((''\''&f&&%)%$3$#)#" "q! ) )q3f= )  fH) \3Hf \!"")##=$$=%%&&&='''(\(((( )))=)H)H)H)=))) )(((R((''3'&q& &%%$)$# #{"!=! Hf =f q \H3 qR)f3q) )!!q" ##)$$3%%&&&R''(H((()3)\){)))))))){)\)3))((=(''H'&{& &%%$ ${#"R"!!f  RH{  q\=f= fH !=""{# $$%%&&'f''(q(()=)q)))) **)*)*)** *)))q)3)((f(('R'&{& &% %{$#\#")"! ) { HR{ q \ R=)qR){H H f! ""H##{$ %% &&'f''3((())q)))*=*\*{******{*\*=**))f)))(()('\'&{&&{%$f$#3#"!H! 3{)\ {fR3qH{=q !!{"##R$${%&{&&q''=(()R)))*R*****+ + + ++****R**))H)((3('\'&q&%f%$=$# #f"! !\ )f3\\ H =)fH)Rq) !=""#)$$\%%q&&f''H(()q)) *R****+=+\+q+{+{+{+q+\+=++***R* *)f) )(=('\'&\&%H%$${#")"!  \Hq q\=)qHR R!""R##$3%%R&&\''R(()))3*{**+3+f++++++++++++f+3++*{*)*){))(H('R'&H&%)%$#H#"!=!  H=3 ){fH)\3H !!q"##f$ %%3&&H''H(())))H***3+q+++,,=,R,\,\,\,R,=,),,++q+3+**H*)))(=('='&)&%%\$##f"! = {)\ q\H3qR)f3 q!)""#3$${%&&3''=(()))*f**+\+++,H,q,,,,,,,,,,q,H,,++\++*\**)))(3(')'& &q%$)$#""q! )fq\=f= f )!!"H##$H%%{&'')(())) *q**)+{++,R,,,,--3-=-=-=-3-- -,,,R,,++)+*q* *))((' '{&%=%$#H#"!!f  =f{q\H3 qH){H !R" ##f$%%R&&'(()) *{**=+++=,,,,)-R-q--------{-R-)--,,=,++H+*{* *))( ({'&R&% %f$# #R"! H{{fH3qH{ =!""q#)$${%&&\''( )) *{**R++ ,\,,,3-f----...)....---q-3-,,f,,+R+*{**) ){('\'&)&%$)${#""H! Hq\H3 fH)R !q")##$H%%&3''\(({))q**\++,{,,-f--- .3.R.q......q.\.=..--f--,,),+\+*{*){)(f('3'&%H%$#3#{"! ) \{fR=) qH \!""#R$%%\&''=((\))f**\++3,,,=---.H.{...../ //.....R..--H-,,3,+\+*q*)f)(=(' 'f&% %\$#")"f! )R3 {\=\3 !!"H# $$q%&&q' ((=))R**R++3,,-\--.H..../3/R/f/q/{/q/f/\/=//...H. .-f- -,=,+\+*\*)H)(({'&)&{%$$\#"! != qqfR=)fH f!)""#q$)%%&3''{())=**H++3,, -q--.q...)/\////////////f/3//.{.3.---,H,+R+*H*)))('R'&%H%$##R"! ={fH3f3 !!"\#$$%H&&'H(()**3++3,,-{--=.../f////030H0R0\0\0R0=000//q/3/..H.--)-,=,+H+*3*))f(''f&%%H$#"!)!\ q\R=)f= q!=" ##$H%&&f'((R))*++,,---R../H/// 0=0f0000000000q0H00//\//.f..-)-,3,+)+* *q)(3('&)&q%$#3#f"! )qR=) f= !!"q#=$%%q&)''{()))\**+ ,, ---\../q//0=0{00001)131=1=13111000R00//3/.q. .-)-,),++{*)H)('H'&%)%f$#" "=!q H3){\= {!R"##$f%)&&'H(()3**f++{,-{--f..)///)0q0001H1f11111111q1R1)1000=0//H/.{. .--,,+*R*))f(' 'R&%$$H#"! q\H3f= !!"#R$%%&R'((\)**=++f,,q--f..=///R0001\11111 222222111f13100f00/R/.{. .- -,+\+*)*)(3({'& &H%$#""R!{ qR3 !R")##$%H&''q())q* ++=,,\--\..=// 0f00 1R1112)2H2f2{22222q2R232 211f1100)0/\/.{..{-,f,+=+*)R)('3'{&%$3$f#"! {f\H3 f= !!"#f$)%%&q')(()3**{+,,=--H..=//0{00)1{112=2q222222332222{2R2211H10030/\/.q.-f-,H,+ +f*))\('&)&f%$##3"\!q\H)  !\"3#$$%\&''(H)**H++,--3..=//000H11132q222 3)3H3\3f3q3q3f3R3=33222H2 21f1 10=0/\/.\.-H-,,{+*3*)((\'&%%H$q#"!fRH3 {\= !!"#q$=% &&'H())f*++\,,-..)//000\11 2\2223H3{33333333333\33322{2)21{110H0/R/.H.-)-,+H+*)=)(' 'H&%$##="{fR3 !\"3# $$%q&='((q))**+),,f-..//001f11)2{223R3333 4)4=4H4R4R4H4344333f3)322H21110=0/=/.).--\,++f*))=({'&%)%\$#"=) qR3 !!"#{$H%&&'f()))*H++,3--f../ 001q11=222=3333)4\4{444444444f4=4433\3 32\221)1030/)/. .q-,),+*)*q)(')'f&%$##{fR=)  !\"=#$$%&R'(()R*++\,--=..f//{00f11H223\33334f4444 55)53535)555444H4 43{3)32q2 21100/ /{.-=-,+H+*))f('& &=%f$# {fH) !!"#{$R%&&'(H)**q+,,q-..H//f00f11H223q334\444 5=5\5{5555555q5R5)5444=433=32{2 2110 0{/.R.--f,+ +R*)((H'{&%$$q\R=) {!\"3#$$%&\')(()q*)++,=--.//H00R11H22333=4445H5{55556 666 65555f53544\4 43R32{221 1{0/\/.).-,),{+**H)('&&H%q$fR= !!"#{$R%)&''(\)**+H,--R../00=11=22)333R444=55556=6\6q6{666{6f6R636 655f554{443\32q21{10f0/3/.-H-,+3+{*)()(\'&%$\H=) q!R"3#$$%&f'3())*H+,,f-..\//011322)334f445f555)6\666666666666{6H6655H544343\32f21\10=0/ /f.- -\,+*)*f)('')&R%q\H) !"#{$\%3& ''(q)3**+q,)--.)//f0112233 4q4435556\66667=7R7\7f7f7\7H7377666H665\5 54=43\32\21H100{/.).{-,,\+*) )=(q'&%3 f!H")# $$%&q'H())*f+),,-H../=00q122 334{44H555H666 7=7f77777777777\7)766q6)65{554=43R32H2110/H/.-=-,+ +H*{)(' '3&{f\H3 !"#{$R%3& ''({)H*++,H-..\/ 00H11q22{34q44R556f667=7{7778838=8H8H8=8)88777f7)766H65554=43=32)210\0/ /\.-,=,{+*))R({'& q \!="# $$%&{'H())*{+=,--q.//q011H22f33f44R556{66)7q7778H8q888888888f8=8 877R7 76\65554343)322q10)0/..f-,+)+\*)(''{fR=3  !"#q$R%3& ''()\*++,q-)../=00122H33\44R55)666H7778\8888999)9)99 9888{8H8 87{7)76f6655443 3{21=10/H/.--\,+**3)f('q\ H!3"#$$%&{'R()))*+\,--.H/00R112)33H44H553667\778R8889)9R9q999999{9f9H9988{83877=76q66554 4{32R21 1f0//H.-, ,=+{*)((R=)  !"#f$H%)& ''()f*3+,,-H.//f011\233)44355366 7q77)8q889=9q99999: : ::9999\9)988\8 87H76q6655{43\322{10)0q/..=-{,+**H)q(q\ H!3"#$$%&'\(3) **+q,=-..{/)001322q3 44)55)667{77=888)9q999 :):H:\:f:q:q:f:R:=::999R9 98f8 87H76\65\54H433{21)1{0//\.-, ,=+q*)(3 !"#f$R%3&''(){*H+,,-q.)//0H112=33{4 5566777R889R999:H:q:::::::::::f:3::9{9398{887H76R65H54)432H210=0/. .H-{,+* *3){q\H 3!" ##$%&{'\(3) **+,R-../R0 11f2 33R44{566 7{77\889q99 :H:::: ;);=;H;R;R;H;3;;;::q:3:99H988)87=76H65)544\322f10/=/{.-,,R+{*)  !"q#\$=%)& ''(){*R+,,-.H/ 00{1)22{344R55q66{77\8839993:{:::);R;{;;;;;;;;;q;H;;::\::9f998)87376)65 5q43)3211f0/.).\-,+**{fRH3 ! ""#$%&{'R(3)**+,\-)../q03112H334)55R66f77\88=99:R:::);f;;;; <<)<3<3<)<<<;;;R;;::3:9q9 98)87)766{54H432H2100\/.--3,\+* !{"f#H$3%&''(){*R+),--.\/001R233\455366R77R88=99 :q::;\;;; <3<\<{<<<<<<<q<R<)<;;;=;::H:9{9 9887765R544f322R10/ /=.q-,+*R=3 !!"#$%&q'R(3) **+,f-=.//0R1 22q344f5 66377H88=99:{::3;;; <H<{<<<<= === ==<<<f<3<;;f;;:R:9{9 98 876\65)543)3{211=0{/.--H,q+ {!f"R#=$)% &&'(){*R+3,--.q/=011{23334355{6 77)88399:::H;;;=<{<<<===\=q={==={=q=R=3= =<<f<)<;;);:\:9{99{87f763654H43232q10/)/\.-,+) !"#$%{&\'H()) **+,q-H.//0f1)223R455H66{78899:::\;;<f<<<)=\============{=R==<<H<;;=;:f:9q98f87=76 6f54 4\321)1\0/.-)-R,q \!R"=#)$%&&'()q*R+3, --.{/H0112R3 44f566R77{8 99::;f;;)<<<=\====>=>R>f>f>f>\>R>3>>===H= =<f< <;H;:\:9\98H877{65)5{433\210 0=/q.-, !"#${%f&R'=()**+,q-H.//01H233{4)55{677\88{9:{::f;;=<<<==== >=>f>>>>>>>>>>>\>3>=={=)=<{<<;H;:R:9H98)876H654=432 2H1{0/. .3-q\ H!=")#$%%&'()q*R+), --./\0)112q3)445H667388\99q::f;;H<< =\====>{>>>??3?H?H?H?=?3??>>>q>3>==H=<<)<;=;:H:9)988\766f543=3{2100R/{.- !"#$q%\&=')())*+,q-R.)//01\2334R566\788399R::\;;H<<={==>f>>>?H?q?????????f?H??>>\>>=f==<)<;3;:):9 9q87)7655f432)2\10/..H 3!"#$$%&'({)f*H+), --./f031223H4 55q677q8 993::H;;H<<)====>>>?\????@@)@)@)@@@@???R??>>)>=q= =<)<;);: :{98=876H6544\321130\/. !"{#f$\%H&3'())*+,q-R.)/001q23334{5)667388{9::3;;=<<)===\>>?H???@)@R@q@@@@@@@q@R@)@???=?>>H>={= =<<; ;:9R988f766H543 3=2q10/.! ""#$%&'(q)R*=+,--./f0=1 223f4)556R788H99:;;)<<==>f>>?q??@=@q@@@@@ A A A A@@@@f@3@??f??>R>={= =< <;:\:9)987)7q655=4{3211=0f/!{"f#R$H%3&' (()*+,q-H.)/001{2H3 445R6 77f899R::;<<==>q>>3???)@q@@@ A3ARAfA{A{A{A{AfARA3A A@@f@@??)?>\>={=={<;f;:3:98H87636q543)3\210/!"#$%&'q(\)H*3+,,-./q0H1223{4=566{7)889)::\;;{< ==>q>>H??@R@@@ARA{AAAAAAAAAAA{AHAA@@H@??3?>\>=q=<f<;=;: :f98 8\7655\4321)1H0\"R#=$)%& ''()*+{,f-H./0012R3445q6)778H99:3;;\<<q==q>>R??@q@@ ARAAAAB3BHB\B\B\B\BHB3BBAAAHAA@f@ @?=?>\>=\=<H<;;{:9)9{877R654 4=3f210"#$%&q'\(H)3*+ ,,-./q0H12234R5667R899\:;;=<<\==f>>R??)@@@3A{AAA3B\BBBBBBBBBBB\B)BAA{A)A@{@@?H?>R>=H=<)<;:H:98=876 6=5{432 2313#)$%&&'()*+q,\-=./0012\3)4456H7 88q9::q; <<===R>>R??)@@@HAAA)BfBBBBC)C=C=C=C=C)CCBBBfB)BAAHA@@)@?=?>=>=)=<<\;::f987=7{6544R3{21#$%q&\'H(3)* ++,-./f0H12234f53667q8)99:3;;{<===>>=??3@@AfAA B\BBB C=CfCCCCCCCCCfC=C CBB\B BA\AA@)@?3?>)>= =q<;);:99f876)6\54322 $%%&'()*{+f,H-3.//012f334 556f7889H:;;H<<=>>3??)@@ AqAA)B{BB CHC{CCCC DDDDD DCCC{CHC CB{B)BAqA A@@?)?> >{=<=<;:H:988\765534\32{$f%\&H'3() **+,-.{/\0=12234q5=6 778R9 ::f;<<\==>??@@ A{AA=BBB3C{CCCDHDfD{DDDDD{DfDHDDCC{C=CBBHBA{A A@@? ?>=R=< <f;::H987 7=6q5432$%&'(q)\*H+3,- ../01q2H34456\7)889\:;;f<==H>>q??{@@fAA=BBCRCCCDRDDDDDDEEDDDDD\D)DCC\C CBRBA{A A@ @?>\>=)=<;);{:99H8{7655H4q33%)&'(()*+,-q.\/=012234f536778R9::{;3<<{=>>R??f@@fAAHBBCfCC DRDDDDE=EREfEfEqEfE\E=EEEDD\DDC{C)CB\BA{AA{@?f?>3>=<H<;:3:{987)7\6543%&'q(\)H*3+, --./01q2H34556q73899{:3;;<H==>)??H@@\AAHBBC{CC)D{DDE3E\EEEEEEEEEEEqE=E EDD=DCC3CB\BAqA@f@?H?> >f=< <\;:9)9f8766)5R4 &''()*+,{-f.H/3011234f5=6 778f9)::;\< ==\>>?)@@HAA=BB)CCCHDDD)EfEEEEF3FHFHFRFHF=FF FEE{E=EED\D DC=CB\BA\A@H@??{>=3=<;;\:98 8=7q654{&f'R(H)3*+ ,,-./01f2H34556{7H899:\;<<{=>>f?@@)AA3BB)CCD\DD E\EEEF=FfFFFFFFFFF{FRFFEEqEED{DDC=CBRBAHA@)@?>H>=<=<;: :H9{876 635&'()*+{,f-R.=/0 11234f5=6778{9H: ;;{<3==>3??q@ AABBCCDfDD)E{EE FHFFFFFGG)G3G)GG GFFF\FFEEHEDDDC=CB=BA)A@@\?>>f=<;=;{:988R7{65R'=())* ++,-./0q1\2=34456{7R899:q;3<<=R>??H@@qABBCCDqDD=EEE3F{FFFGHGfGGGGGGG{G\G3GGFFRF FE\EDD)DC3CB)BA Aq@?)?>==f<;:):\98766'()*q+f,R-=.)/001234f5=67789R:;;<\= >>f? @@HAAqBC{CDqDDHEE F\FFF)G\GGGGGH HH HHGGGqG=GGF{F)FEfEEDDCCB B{A@=@?>H>=<<\;:9938\76)()**+,-./{0f1H23344567\8)99:;H< =={>)??{@AARBBfCCfDDREEFqFFG\GGGH)HHHfHqH{HH{HqH\H=HHGG{G3GFF=FEqE EDDC C{BARA@@f?>>R=<; ;=:q9876({)q*\+H,=-)./00123{4\5=67789f:3;;<{=3>>?H@@A)BBRCC\DDREE)FFF3GGG H=HqHHHHHHHHHHHHRHHGG\G GFRFE{EED D{CB\BA)A@?)?{>===<{;:99=8f7))*+,-.{/f0R1=23 44567\839::;f<)==>R?@@RAAB)CCHDDHEE)FFFRGGG=H{HHH I)IHIRI\IfI\IRI=IIHHH\HHG{GGF\FEqED{DCfCB3BA@H@?>3>q=<;);\:987f)R*H+3,- .//0123q4R5367789q:=; <<=R> ??q@AAfBCC)DD3EE)FFGfGGHfHHHIRI{IIIIIIIIIIfI3IIHH=HGG3GF\FEfEDfDC=CB BfA@ @\?>=)=\<;:9)9R8)*+,-{.f/R0=1)233456{7\839 ::;q<==>>{?)@@A3BBqC DDEEFF GqGG3HHHI\IIII JJ3J=JHJ=J3JJJIIqI=IHH\HHG=GF\FE\EDHDCC{BA)A{@??R>=< <=;f:98=*)+, --./012{3f4H5)6 7789q:H;<<=f>)??@HAAB=CCqD EEFF G{GGHHHH=IIIJ3J\J{JJJJJJJJqJHJJIIfIIHqHHG=GFRFEHEDDCBHBA@=@?> >=={<;: :39*+,q-f.R/=0)1233456{7R839 ::;<H=>>?R@ AAfB CCHDDqEFFG{GGRHH IfIII3JqJJJJKKKKKKKJJJ\JJII=IHHHG=GF=FE)EDD\CB B\A@?=?{>=<<H;{:9+,,-./01{2f3R4=567789q:H;<<={>H?@@qA)BB{CDDREEqFFqGGRHHI{IIJfJJJ K3K\KqKKKKKKqKRK)KKJJHJJIRIHHHG3GF)FE EqDC)CBAAf@?>)>\=<;::{+f,\-H.3/)01223456q7R8)9 ::;<\=>>?q@)AAB=CCD)EERFF\GGRHH)III=JJJKRK{KKKKKLLLKKKKqK=KKJqJJIfIIHHGGF F{ED=DCBHBA@@\?>==3<\;:+,-./0{1f2R3=4)566789q:H;<<=>\?@@AHBCCRDDE)FFHGGHHH3IIJ\JJKHKKKKL=LRLfLqLqLqLfLRL3L LKKqK)KJJ=JIqIIHHG G{FERED DfCBBHA@? ?=>q=<;:R,=-3./ 0112345{6\7H8)9::;<\=3>??@HABBfCDDfEFF)GG=HH3II JqJJKqKKK)L\LLLLLLLLLLL{LRLLKKRKKJHJIqIIHH{GF\FEE{DC)CqBAA=@{?>===<f;,-./{0f1R2=3)4566789q:H;<<=>f?3@@AqB)CCD)EEqF GGHH)II J{JJ3KKKLfLLLLM3MHMRMRMRMHM3MMLLLRLLKqKKJRJIqIHqHG\GF3FEDHDCB)BqA@??R>=<;)-.//012345f6R73899:;<f=3> ??@\ABBCHDDE=FFqGHHII J{JJHKKLHLLL M=MfMMMMMMMMMM\M3MMLL3LKK)KJ\JIfIH\HG=GF FfED DRCBAA\@?>==H<-.q/\0R1=2)34556789f:H;<<=>q?=@ AABHCDD\E FFHGGqHIIJ{JJRKKLqLLM=M{MMMMN)N3N3N3N)NNMMMqM3MLLRLLK3KJRJI\IHHHGG{FE)E{DCCRBA@@3?f>=<../0123{4q5R6=7)8 99:;<f==> ??@qA3BBCfDEEqFGGRHHqIIqJJ\KK)LLL)MqMMMNHNfNNNNNNNNfN=NNMMfMMLqL LK=KJHJI=IHHGFHFED=DCBB=Aq@?>>)=f.R/H03123445678{9\:=;<<=>{?H@AABfCDDE3FFGHHRII\JJRKK3LLLHMMMN\NNNNN OOOO ONNNNRNNMM=MLLLK3KJ=JI)IHG\GF F\EDC3CqBA@@H?q>=./0123q4\5H637899:;<f=H>??@ARBCCDHEFFRGGH3IIRJJRKK=LL MfMM NRNNNO)OHOfO{OOOO{OfOHOONNNHNNMRMLLLK)KJ)JIIfHG)G{FEEfDCBBRA@?> >H/30123345678q9R:=;<<=>?\@)AABCHDEEfFGGfHII3JJ=KK3LLM{MM)N{NNO=OqOOOOOOOOOOOOfO3ONNqNNMfMMLLKKJ JqIH=HGF=FEDDRCBA@)@R?{>/01{2f3\4H5367 889:;<f==>??@A\B)CCDfEFFG)HHqI JJ)KK)LLMMMHNNN3OqOOO P)PHP\PfPfPfP\PHP)PPOOfO)ONN3NMqMMLLK K{JIHIH H\GFFHEDCC=BqA@?>0 11234567q8\9H:); <<=>?\@3ABBC\DEEF=GGH=II{J KKLLMMMRNN O\OOOPRP{PPPPPPPPPPqPHPPOOROONHNMqMMLL{KJRJII{HGGqFED=DqCBA A3@\?0q1\2R3=4)56 7789:;{<\==>??@AfB3CDDEHFGG\H IIHJJ{KLL MMM\NNO{OO PRPPPP Q)Q=QHQHQHQ=Q)Q QPPPHP POqOONRNMqMLqLK\KJ3JIH=HGF)FfEDCCRB{A@?0123456q7\8H93:;<<=>?\@3A BBCqD3EEFfGHHqIJJRKKqLLqMM\NN3OOO3P{PPP)QRQ{QQQQQQQQ{QRQ)QPP{P3POO)ONRNMfML\LK=KJJ\IHHRGFEERDCBAA=@\1H233)4566789:;f<R=3> ??@AqB=C DDE\FGGH3IIJKKRLLfMM\NN=OOPRPPP3QfQQQQ RR)R)R)RR RQQQfQ)QPPRPOO3ONRNMRML=LKKqJI)I{HG GRFEDD3C\BA@1234{5f6\7H839: ;;<=>{?R@3A BBC{DHE FFG=HHIHJJK)LLHMMRNN=OO PqPPQ\QQQ R3R\RqRRRRRR{R\R3R RQQ\QQPfP PO3ONHNM=MLLKJ=JIH3H{GFF3EqDCBB)A)23 4456789:q;\<==>??@AqBHCDDEqF3GGH\I JJ\KLL)MM=NN3OOP{PP3QQQ RHR{RRRRR S S SSRRR{RHR RQQ3QP{PPO3ON3NMMLKRKJ J\IHG3GqFEDD=CqBA23q4f5R6=7)89 ::;<=>q?R@)A BBCDREFFG\HII{J)KKfLMM)NN)OOPPPHQQQ=R{RRRS3SRSfSqS{S{SqS\S=SSRR{R=RQQHQPPPO)ONNMMfLKK{JII\HGFFREDCB B33456789q:\;H<)=>>?@AqBHCDDEFHG HHI3JJK3LLqMNNOOPPP\QQ R\RRR)S\SSSSSSSSSSSS\S)SRRfRRQ\QPPPOONNqML3LKJ=JIHHRGFED)DRC{Bf3\4H536)7899:;<={>f?H@)ABBCD\E)FFG{H3IIJRKLLHMMqNOO PPP\QQ)R{RRS\SSSST3THTRT\T\THT=TTSSS\SSRR)RQfQPP POOqNMHMLL\KJI=IHGG3FfEDCB34567{8f9\:H;3<=>>?@AqBHCDDEF\GHHI\J KKfL MMHNNqOOqPPfQQ3RRR=SSST3TfTTTTTTTTTTfT=T TSSHSRR=RQfQP{POqONRNMMqLKKfJIH3HqGFE E3D\C=4)56 7789:;<=f>R?3@AABCD\E3FGGHRI JJ{K)LL{MNNHOO\PP\QQ=RRS\SSS3TqTTTTU)U3U=U3U)UUUTT{T=TTSfS SRHRQfQPqPORON)NML=LKJJfIHGGHF{EDC456q7f8R9=:);<==>?@AfB=CDDEFfG3HHI{J3KKL=MMNOOHPPRQQ=RRSqSSTfTTTU=UfUUUUUUUUqUHUUTTqT)TSSSRRRQ\QPRPO3ONN\MLLHKJIIRHGFEE=D566789:;<q=R>=?)@ AABCD\E3FGGHfI)JJKRLMMRNNO)PP=QQ3RRS{SS3TTTURUUUUU VVVV VUUUU\U)UTTHTSS)SRHRQRQP=PO OqNMMqLK KHJIHG)G\FED{5f6\7H839):;<<=>?@qA\B3CDDEFqG=H IIJRK LLqMNNfOPPQQ)RRSSSHTTT=UUUUVHVfV{VVVV{VfVRV)VVUURU UTfTTS3SR=RQ3QPP{ON=NML3L{KJI3IfHGFEE56789:{;f<R==>)?@@ABC{D\E3F GGHqI=JKKqL)MMN)OOfPQQRRSSS\TTUfUUU)VfVVVVVVVVVVVVqV=V VU{U)UTqT TS)SR3RQQPORONNRMLK)KfJIH H=GfFER6=7)89 ::;<=>?{@fAHB)C DDEFqGHHIIJfK)LLMHNNO=PPfQQRS{SS\TT)UUUV\VVVWW=WRWfWfWfW\WHW3W WVV{V3VUUHUT{TTSSRRQP\POOqNMM\LKJJHI{HGFF6789q:\;R<==)>?@@ABC{DRE3F GGH{IHJKKLHMNN\OPP=QQfRRqSS\TT3UUU=VVV W=WqWWWWWWWWWW{WRWWVV\V VURUTT TSSRRfQP3PON3NML LHKJIHHHGqF7 899:;<=>{?f@RA3BCDDEFqGHHIIJ{K=LMMqNOOqPQQHRR\SS\TT=UUV\VVV=W{WWWXX3XHXHXHX=X)XXWWW\WWV{V)VU\UT{TTSSqRQ=QPPRONM=M{LKJ3J\IHGF7{8f9R:H;3<=>??@ABCfDHE)FGGHIRJKKLfMNNO3PP{QRR=SSHTT=UUVqVVWfWWWXHXqXXXXXXXXX\X3XXWW=WVV3VUfUT{TSqSRHRQQqPOOfNML3LfKJII)HRG789:;<={>f?R@=A)B CCDEFqGHHIIJKRLMMNHOOPHQQRSS3TT3UUV{VV=WWWX\XXXXYYY)Y)YY YXXXqX=XWW\W WVHVUfUTfTSRSR)RQP3PONN\MLKKHJqIHG\8H9=:);< ==>?@ABqC\D=EFGGHI\J)KKL{M=NNO\P QQ\RRSTT)UUVVVRWWWHXXXY)YRYqYYYYYY{Y\Y=YYXXfXXW{WWVHVU\UTRTS3SRQRQPOHONMMHLKJI I3H89:;<q=\>H?3@A BBCDEFfG=HIIJK\L)MMNfOPP{QRR\SST UU VVV\WWXfXXX3YfYYYYYZZZYYYY{YHYYXX3XWWWV=VU=UT)TSS\RQ Q\PON3NqMLKKHJqIH)9: ;;<=>?@A{B\CHD)EFFGHI\J)KLLMRNOOP3QQR)SS\TT{UV{VV\WW)X{XXYfYYYZ)ZHZ\ZqZqZqZfZRZ=ZZYYY=YXXRXWWWV3VU)UT TqSR)RQPPfONMM\LKJI I9:q;f<R==>3?@ AABCDE{F\G=HIIJKfL3MNN{O=PPQRRRS3TT\UUfVV\WW3XXX=YYY ZHZqZZZZZZZZZZZ\Z)ZYYfYYXfXXWWVVU U{TS=SRQHQPOO\NMLK)KRJ{I::;<=>?@qA\BHC3DEFFGHI\J3KLLMfN)OOP\Q RRfS TT=UURVVRWW3XXY\YYZ=Z{ZZZ [)[=[H[R[R[H[3[[ZZZfZZYY3YXqXXWWV V{UTRTS SfRQQHPONN=MqLKJIf:\;H<3=)>?@@ABCDEfFRG3H IIJKqL=M NNORPQQ{R)SSqT UU3VVHWW3XX YqYYZfZZZ[R[{[[[[[[[[[f[=[ [ZZHZZYHYXqXXWW{VU\UTT{SR)RqQPP=OqNML L3K\J:;<=>{?q@\AHB3CD EEFGH{IRJ3KLLMqN=OPP{Q3RRS=TT{UVV)WW)XXY{YY=ZZZ[\[[[[\\)\3\3\)\\\[[{[H[[ZqZZYRYXqXWqWV\VU3UTSHSRQ)QqPONNRM{LKJ=;)<= >>?@ABCDqE\F=GHIIJKqL=MNNOfP)QQRRSTTHUU{VWWXXYYYHZZZH[[[\)\R\q\\\\\\\q\H\\[[q[)[ZZ)ZYRYXfXW\WV=VUU\TS SRRQPP\ONMLL=K;<=q>\?R@=A)BC DDEFGHqIHJ)KLLM{NHOPPQRR SSfTUURVV{W XX Y{YY\ZZ[f[[[3\q\\\\\ ]]] ]\\\\\\)\[[R[ZZ3ZYRYXRXW=WVV{UT)T{SR RRQPOO3N\MLK <==>?@ABCqD\EHF)GHHIJKqLHMNNO{P=QRRqS)TT{UVV\WWqXXqYY\ZZ)[[[\f\\\ ]3]R]f]{]]]{]f]H])]]\\\\ \[f[ [Z3ZYHYX=XWWVUHUTS3S{RQQ=PqONMML{<f=R>H?3@ABCCDEFG{H\I=JKLLMNROPPQqR)SST=UUV)WWRXXfYY\ZZ3[[[H\\\]H]{]]]]]]]]]]]q]=] ]\{\3\[{[[Z3ZY=YX)XWV\VU U\TSR3RqQPOO=NqML<=>?@A{BfCRD=E)FGHHIJKfL=MNNOPRQRRSHTUURVVW3XXHYYRZZ3[[\\\\]H]]]]^3^H^\^\^\^\^H^)^ ^]]{]=]\\H\[[[Z)ZYYXXfWV)V{UTT\SRQQRPONM MH=3>)?@AABCDEF{GfHHI3JKKLMNRO)PPQR=STTfUVVfWXX)YY=ZZ3[[ \q\\]q]]])^\^^^^^^^^^^{^R^^]]f]]\\\[[[ZZY YqXW=WVU=UTSSRRQPO)ORN{M=>?{@qA\BHC=D)EFGGHIJ{K\L=MNNOP\Q)RRSfTUUV)WWqX YY)ZZ)[[\{\\=]]]^\^^^^_)_3_=_=_3_)_ _^^^\^^]])]\f\\[ [Z Z{YXHXW W\VUUHTSRR3QfPONM> ??@ABCDE{FfGRH=IJKKLM{NRO)PPQRRSTTU=VVW=XXqY ZZ[[ \{\\H]]^H^^^ _3_\_{_______{_\_3__^^H^]]=]\q\[{[[{ZYRYXX{WVVqUTS3SqRQP P3O\N>q?\@RA=B3CD EEFGHIJqKRL3M NNOPfQ3RSST=UUV\WXXHYYqZ[[\{\\R]]^f^^_=_{____ ````` `___q_=__^f^ ^]H]\f\[q[Z\ZY)YXW=WVU)UfTSRRHQ{PON>?@ABCDqE\FRG=HI JJKLM{NRO)PQQRfS)TTUfVWWqXYYHZZf[[q\\\]])^^^)_q___`=`\`{`````{`\`=``__q_)_^{^^]R]\\\[\[Z3ZYY\XWWRVUTTRSRQPP=OR?H@3ABCDDEFGHIqJ\K=LMNNOPfQ3R SST\UVVW3XXYZZH[[\\\R]]3^^^H___`R``````aa`````R``__H_^^)^]H]\R\[=[ZZqYXXqWV VHUTSR)R\QPO?@AB{CfDREHF3GH IIJKLMfNHO)PQQRqS=TUU{V3WWXHYYZ)[[H\\H]]3^^_\__`H````a=aRafaqaqafa\a=aa```R` `_\__^3^]H]\=\[[ZY=YXW3W{VUU3TfSRQPP)@ABBCDEFGHqI\JHK)LMMNOPfQ=R SSTfU)VVW\X YY\ZZ[\\3]]3^^ _q__`q```3a\aaaaaaaaaaafa3aa`{`)`_q_ _^3^]3]\\[ZRZY Y\XWV)VqUTS S=RfQP@{AqB\CHD=E)FGHHIJKL{M\N=OPPQRqSHT UUVRW XXqYZZf[\\]]^^ _{__=```)afaaaab3bHbRbRbHb3bbbaaqa3a``=`_{__^)^]]\\f[ZZ{YXX\WVUURT{SRQQ@ABCDEF{GqH\IHJ3KLMMNOP\Q=R SST{U=VWW{X)YYZ3[[f\]] ^^ _{__H``aRaaa b=bfbbbbbbbbbqbHbbaa\a a`R`___^^]]q\[3[ZY=YXWWRVUTSSHRqQ\ARB=C)DE FFGHIJKLfMHN3OPPQR{SHTUUVfW)XXYHZZ[=\\f]]{^_q__R``aqaabHb{bbbbcc)c)c)cccbbbRbba{a)a`\`__ _^^q]\H\[[\ZYX=XWVU3UfTSRQABCDEqFfGRH=I)JKLLMNO{P\Q3R SSTUHVWWXRYZZ\[ \\=]]\^^f__R``)aaa)bqbbbcHcfcccccccqcRc)cbbb=baa3a`f`_{_^q^]R]\\q[ZZfYXW3WfVUTT)SRR3BC DEEFGHIJ{KfLRM=NOPPQRqSHTUUV{W=XYYqZ[[q\]]=^^R__R``)aaaHbbbc\cccccd d d dccccfc3cbb\b baHa`f`_f_^R^])]\[=[ZYYfXWVVHUqTSRBC{DfERFHG3HIJKKLMNOfPHQ)R SSTURVWWXfY)ZZ[3\\{]^^=__H``3aab\bb cRcccd)dHdfdqd{dd{dfdRd3d dccfccb{bbaHa`\`_\_^=^]]\\[[RZYXXRWVUTT=SCCDEFGHI{JfKRL=MN OOPQRqSHTUUVWRXYYZH[[\H]]^__3``)aa bqbb)cqccd=dfddddddddddd{dHddcc=cbb)baHa`R`_=_^^q]\)\q[Z ZHYXWV)V\UTSfC\DHE3F)GHIIJKLMNqO\P=QRSSTU\V)WWX{Y=ZZ[\\ ]]R^^_``aa b{bb=ccc)dqddde)e=eRe\e\e\eHe3eedddHddc\ccb)ba=a`=`__^]=]\[3[{ZYY3XqWVUTTCDEFG{HfI\JHK3LM NNOPQRfS=TUUVW\X)YYZf[\\{]^^\__{` aab{bbHccdRdddeHeqeeeeeeeeee\e)eddqddcqc cb)ba3a``_^R^] ]\\[Z3ZqYXW W=VfUT=D)EF GGHIJKLMqN\OHP)Q RRSTU\V)WXXYRZ[[\3]]^)__\``qaaqbbRccdqdd eHeeeeff3f=f=f3f)ffeeefe)edd=dc{c cbbaa``f_^^{]\\\[ZYYRX{WVUUDE{FqG\HHI=J)KLMMNOPQqRRS3TUUVWfX3YYZ{[3\\]H^^_3``Raa\bbRccddd)eqeeefRfqffffffffff=f feeReedRdc{c cbbaaq`_3_^]=]\[[RZYXWWHVqU EEFGHIJK{LqM\NHO)PQQRST{URV)WXXYfZ)[[\R] ^^\_``3aaHbbHcc)dddHeee)f\ffffg gggg gfff{fHf feqeed\dc{ccbbqa`H`__\^]\=\[ZY3YfXWVUqE\FRG=H)IJ KKLMNOP{QfRHS)T UUVWfX3YZZ[R\ ]]q^__f` aa)bb3cc)dde\ee fRfffg)gRgfg{gggg{g\g=ggff{f3fee3ed\dcqcbqbaRa``q_^^f]\[3[fZYXX)WRVEFGHIJqK\LRM=N)OPQQRSTqUHV)WXXYqZ3[[\q])^^_3``qa bbccddefeefqffg=gqgggggggggggg\g)gffRffe=ed\dcfcbRba)a`_=_^]]f\[ZZHYqXWV=F)GH IIJKLMNO{PfQHR3STTUVWfX3Y ZZ[f\]]^H__`=aaqbcc ddeqee3fff)gqggg h)hHh\hfhfhfhRh=hhggg\ggfqffe=edRdcRcb3ba`R`__H^]\\H[ZYX X3WFGHqIfJRK=L3MN OOPQRS{T\U=VWWXYqZ=[ \\]H^__\` aaHbbqcc{ddqee=ffgRggghHh{hhhhhhhhhhfh=h hgg3gfffe=edHdc3cb bfa``q_^^H]\[Z)ZRY{XW GHHIJKLMNqO\PHQ3RSTTUVW\X3Y ZZ[q\3]]^f_``qabbHccfddfeeHffgfgg hHhhhh i)i=iHiHiHi3iiihh{h=hggRgfffe3ed3dcc{ba3a`_)_q^]\)\f[ZYXXqGfHRI=J3KL MNNOPQRSfTRU3VWWXYqZH[\\]\^__`3aabccHddReeHffg{gg)hqhhh)iRi{iiiiiiiiqiHiihhfhhgfggffe)eddcbHbaaR`_^)^f]\[ [3Z\YXGHIJKL{MfNRO=P)QRSSTUV{WRX3Y ZZ[{\=] ^^_=``aHbbcdd=ee=ffgggHhhh)i\iiiijjj)jjjjiiiRiihh3hgqggffeedc\cbbqa` `R_^]]H\{[ZYXHH3IJ KLLMNOPQ{RfSRT=UVWWXYqZH[\\]q^3__`\a bbRccdee)ffgggRhhiRiiij3jRjqjjjjjjqjRj)jjiiHihhHhgqggf fedfdc)cba3a{`_ _H^]\[[=ZfYHIJ{KfLRMHN3OP QRRSTUVfWHX)YZZ[{\H]^^_\`aaqbcc\ddeffggg\hhiqiij=jqjjjjjkkkjjjjfj3jiifiihRhgqgg{fefed=dcbRba`3`{_^])]\\[ZYIJJKLMNOP{QfRRS3TU VVWXYfZ=[\\]{^=_``{a)bbc)dd\ee{fg{ggfhh3iii)jqjjj k3kRkfkqkqkqkfkRk3k kjjfj)jii)ihRhgqgfffeHeddqcbb\a`_)_f^]\[[HZ{IfJRKHL3MNOPPQRSTUqVRW3XYYZ[{\R]^^_q`)aabHccd3ee\ffqgg\hh=iiiHjjjkHk{kkkkkkkkkk{kHkkjjHjii3ihRhg\gfHfeedc3cbaa\`_^ ^=]f\[ZIJKLMN{OfPRQHR3ST UUVWX{Y\Z3[\\]^R_``aHbcc\dee3ffRggRhh=ii jfjjkHkkkk l)l=lRlRlRl=l)l lkkkHkkjfj ji3ihRhgHgf)fedRdcb=ba` `H_{^]\\)[HJ3KLMNNOPQRSTqURV=WX YYZ[{\H]^^_{`=abbfcddfe ff3ggHhh=iijqjj)kqkkk)lRl{llllllll{lRl)lkkqk)kj{jji3ih=hg)gfffeddfcba=a{`_^^H]q\[JKL{MfN\OHP3Q)RSTTUVWXqYRZ)[ \\]^R_``afbccd3eeqf gg)hh)iij{jj=kkkl\llll mm)m3m)mm mlllfl)lkkHkjjji3ih)hg gqfe3edccfba`)`\_^]\ \KLLMNOPQR{SfTRU=V)W XXYZ[q\H]^^_`Rabbc=dde=ffqg hhiijjjRkklHlllm3m\m{mmmmmm{m\m3m mllRl lk\kjjjiih h{gfHfedHdcbb\a`__)^\]{\{KfLRMHN3O)PQRRSTUVWqX\Y=Z[\\]^R_)``a{b3ccd\effHggqhiij{jj\kklfllm=mqmmmmm n n nnmmm{mHm ml{l)lkfkjjji i{hgRgfffed dHcba a=`q_^]\KLMNOP{QfR\SHT3UV WWXYZ[f\=]^^_`\abbc\deeqfggHhhfiiqjj\kk)lll)mfmmm n3nRnfn{n{n{nqn\n=nnmm{m3mll=lkfkjjj{ih\hg)gfe)e{dcc=b{a`_ _=^\]RL=M)NO PPQRSTUV{W\XHY)Z[[\]^\_)``abRc dd{e3ff{ghhHii\jjRkk3lllHmmmnRn{nnnnnnnnnnn\n)nmm\mmlHlkfkjqji\ih3hgfHfed)dqcbaaH`{_^]LMN{OqP\QRR=S)TU VVWXYZ{[\\3]^^_`fa)bbc{d3eefHgghiiHjjHkk3llm\mmnHnnnno3oHoRo\oRoHo3oonnn\nnmqmmlHlk\kj\ji=ihh\gf fRedccRba`__=^M NNOPQRST{UqV\WHX)YZZ[\]{^R_)`aab\cddeRfggRhhijj3kk)ll mqmmnqnnn)o\o{ooooooooofo3oonn3nmm)mlHlkRkj=jiiqhg)g{fe eRdcbb)a\`_^MqN\OHP=Q)RS TTUVWXY{Z\[H\)]^^_`fa3bccdHefffghh\iijkkll mqmm3nnno\oooo pp3p3p3p)ppoooqo3onnRnmm)ml=lk=kjjih=hgf3f{edd3cqba`__MNOPQRSqT\UHV=W)XYYZ[\]q^H_``abfc3ddeqfggh)iifjjk llm{mmHnnnHooop3p\p{pppppppfp=ppoofoonfnnm)ml3lkkjiRih h\gfe3eqdcb b=af`_RN=O)PQ RRSTUVWX{Y\ZH[3\]]^_`\a3bccd\effg=hhi3jj\kkqllqmmRnn ofooo=pqppppq qqq qppppRppoo3onqn nmmllkkfjii{hgg\feddRc{ba``NOP{QqR\SHT=U)VW XXYZ[\{]\^=_``abfc3deef=gghRiij3kk\ll\mmRnno{oopfppp q3qRqqq{qqq{qfqHqqpppHpooHon{n nmmllqkj3jih=hgffRedcbbHaq`O PPQRSTUV{WqX\YHZ)[\]]^_{`\a3bccdfe)ffg\hiifj kk3llHmmHnn)ooo=pppqHq{qqqqqqqqqqqfq3qppfppoRon{nnmmqlkHkjj\ihg=gfed3d\cba`{OqP\QHR=S)TU VVWXYZ[{\f]H^)_ ``abfc=d eefRg hh{i)jjqk ll)mm3nn)oooRppp=qqqqr3rHr\r\r\rRr=r)rrqqfqqpp)po\onqnmqmlRlkkqjiifhgf3ffedcc)bRaOPQRST{UqV\WHX=Y)Z[[\]^_q`Ha)bccdqe3fgg{h3iij3kkql mmnnoopfppqfqqq)r\rrrrrrrrrrqrHrrqqHqpp3po\onfnmRml)lkj=jihhfgfeeHdqcbaHP=Q)RS TTUVWXYZ{[\\H]3^__`abfc3d eeffghhiHjjk=llqmnn oopfpp)qqqr\rrrr s)s3s=s=s3sssrrrHrrqfq qp=poRonRnm3mlkRkjjHihggHfedc c3bPQR{SfT\UHV=W)XYZZ[\]^{_\`=abbcdqe=f gghHijjfk llHmmqnn{oofpp=qqq=rrrs3s\s{sssssssqsRs)srrqr)rq{qqp=poHon3nm mflkkqjiiHhgfe)eRd{cbQRRSTUVWX{YfZ\[H\)]^__`ab\c3d eefqg3hhifjkkqlmmHnn\oo\pp=qqr\rrr3sqssssttttttsss\s)srrHrqqqp3po3onn{ml3lkj)jqihg)gffedcc{QfR\SHT3U)VWXXYZ[\]{^f_H`)a bbcdqe=f ggh\ijjk3ll{mnn=ooHpp=qqrqrrsfsss t3t\tqtttt{tqtRt)ttssRs sr\rqqqp)poonmHmllRkji)ifhgf f3e\dcQRSTUV{WfX\YHZ3[\ ]]^_`aqbRc)deefqg=hiij=kklHmmnoo3pp3qqr{rr3ssstHt{tttttttttttqt=t ts{s)srfrrqqppon\nmmqlk kRjihhHg{fedcHR3STUVVWXYZ[\q]\^H_3`aabcdfe=f gghfi)jjkRl mmRnnoppqqrrrHsss=t{tttu3uRu\ufufu\uHu3u utt{t3tss=srqrrq qpofon)nml3l{kj jHihgff=efdRST{UfVRWHX3Y)Z[\\]^_`{a\b=cddefqg=h iijRk llqmnn\oo{p qq r{rrRss t\tttuRu{uuuuuuuuu{uRuutt\t tsHsrqrq{qpfpo=onmRmlk3k{jih)h\gfedSTTUVWXYZ{[f\R]=^)_``abcd\e3f gghqi=jkkql)mmn)oo\ppqqqqrr\sst{ttuRuuuuv)v=vHvHv=v)v vuuuRuutqttsRsrfrqfqpHpo ofnmm\lkj)jfihgffHe{SfTRU=V3WXYZZ[\]^_{`\aHb)c ddefqg=hiijfkllm=nno)ppRqq\rrRss)ttt3uuuv3v\v{vvvvvvv{v\v3vvuu3utt)tsRsr\rqHqpp{on3nmll\kji i=hfgfeSTUVWX{YfZR[H\3]^ __`abcqdRe)fggh{i=j kkl=mmnRoop)qqHrrHss3tttRuuu3vfvvvvwwwww wvvvqv3vuuRuut3tsHsrHrq)qpoRonm=mlk kHj{ihgg)fHT3UV WXXYZ[\]^q_\`Ha)bccdeffg=hiijqk3llm\noo\pqq)rr3ss)ttufuu v\vvv w3w\wqwwwww{w\w=w wvvfvvufu ut3ts=sr)rqq\poofnml=l{kjiiHhqgfTUVqW\XRY=Z3[\ ]^^_`ab{c\d=effgh{iHjkkl\mnn{oppfqrrssttuquu)v{vv wHw{wwwwwxxwwww{wRwwvv3vu{uut)ts)sr rqqp3ponnfmlk)k\jihg g UUVWXYZ[\q]\^R_=`)a bbcde{f\g3h iij{k=lmm{n3oop3qqfrrs ttuquu=vvv3wqwwwx3xRx\xfxqxfxRx=xxwww=wvvHvuuutts s{rqHqpoHonmm\lkjj)iRh{gqU\VRW=X)YZ [[\]^_`aqb\c=d)e ffghqiHjkklfm)nnoHppq=rrfssqttfuuHvvwRwwwxRx{xxxxxxxxxx\x)xwwfwwv\vuu ut t{srRrqqfpooHnml l=kqjihgUVWXY{Zf[R\H]3^_`aabcdeffHghhijqk=l mmnHopp\qrr3ssRtt\uuHvvwfww xRxxxxy)y=yHyHyHy3yyxxxfx)xww3wvfvuuutsfsr3rqp3pon nHmlkjjHifh3VW XYYZ[\]^_{`faRb3cd eefgh\i3j kklqm3nnofpqqfr ss3ttHuu=vvw{ww)x{xxx)y\y{yyyyyyyyfy=yyxxRxxw=wvfvuqutfts=srrRqpo=o{nml)l\kjihVWqXfYRZ=[3\]^__`abcdfeRf3ghhijqk=l mmn\opp{q)rrqs tt)uu3vvwww=xxx)yfyyyy zz)z)zzzyyyyHy yxqxxwHwvfvu\utHtssqrqqfpon)nfmlkj)jHiWWXYZ[\]q^f_R`=a)bcddefgqhRi)jkklqm=noo{p3qqr3ssqt uuvvwwwRxxyRyyy z3z\zqzzzzzzfzHzzyy{y)yxxxwHwvRvuHuttsr3rqpp\onm m=lfkjifWRX=Y)Z[ \\]^_`ab{cfdRe3fghhijfk=l mmnfo)ppqHrrs=ttquvvw{ww\xxyqyyz=zqzzzzz{{{zzzz\z)zyyHyxx)xwHwv=vu)utsRsrqHqpo oHn{mlk k)jWXYZ{[q\\]R^=_)`a bbcdef{g\h=ijjklqm=n oopHqrrfs ttHuufvvqww\xx)yyy)zqzzz {3{R{f{q{q{q{\{H{){{zzRz zyfyyx)xw3wv)vuu\tssfrqq=p{onmmHl{kj)XYZZ[\]^_`{aqb\cHd3efgghij\k3l mmnqo3ppqfrssqtuu=vvRwwRxx3yyyHzzz{H{{{{{{{{{{{{q{={ {z{z)zyqy yx)xwwv vqut3tsr)rqqpo)o\nmlk kX{YfZ\[H\3])^_ ``abcde{ffgHh)i jjklqm=n oop\qrrs3tt{uvv3ww=xx)yyz\zz{H{{{{ |)|=|H|R|H|=|||{{q{3{zzHzy{y yxxw w{vu=utsHsrqq\ponn)m\l{kXYZ[\]^{_f`\aHb3cd eefghiqjRk)lmmnqo=pqq{r3sst=uu{vww)xx)yyzfzz{f{{{)|R|{||||||||q|H||{{\{ {zRzy{yyxx{wvRvuufts sRrqp p=oqnmlk\YHZ3[\ ]^^_`abcdqe\fHg)hiijklfm=n oopfq)rrsRtuuHvv{w xxyyzqzz3{{{|\|||| }})})})}}}|||R||{{{{z\zyqyxqxw\wvvut)t{srr=q{pon n=m\lYZ[\q]f^R_=`3ab cddefghqi\j=kllmnqo=p qqrHs ttfuvvRwwqxy{yyqzz={{{=|||})}R}q}}}}}}q}R})}|||=|{{3{z\zyfyx\xw3wvuHuts3sqrqppRo{nmlZ [[\]^_`abqc\dRe=f)g hhijk{lRm3noopqq3rrsqtuu{vwwHxxfyyfzzH{{ |\|||3}f}}}}}~ ~~}}}}f}3}||\||{={zRzyRyx=xwwfvu u\tsrr\qponn=mZq[\\H]=^)_` aabcdefgqh\i=jkllmnfo=p qqr\sttu3vvwxxHyyRzz={{|q||}\}}} ~3~R~f~q~q~q~f~R~)~ ~}}f}}|q||{={zHzy=yxxqwv)v{uttRsrqq3p\onmZ[\]^_{`qa\bHc=d)efgghijkflHmnnopqq=rsst=uuvHwwxyy3zz3{{|{||3}}} ~H~q~~~~~~~~~~q~H~~}}=}|||{3{z3zyyxw=wvu=utss=rqqponnH[3\)]^__`abcde{ffgRh=ij kklmn\o3p qqrfs)ttuRv wwRxxyzz{{|||H}}}3~{~~~ )=HRR=) ~~{~=~}}R}|||{){zzyxRxw w\vut3tqsrqq=pfon[\]{^f_R`Ha3bcdeefghijfkRl3m nnopfq=r sstRu vvqwxx\yy{z {{ |{||R}} ~\~~~Rq{R)~~f~~}f}|||{{zyfyxx{wvvfutssRrqpoo\]]^_`abc{dfeRf=g)hijjklmqnRo)pqqrfs3ttuqv)ww{xyyRzzq{{q||R}}~q~~ R €€€€\~~3~}f}}| |{{fzy3yxw=wvuuRtsrqqHpqoq\f]R^=_)`a bbcdefgh{ifjRk3lmmnopfq3rsst\uvvw=xxy)zzR{{\||R}})~~~3{€)€8€BMMM€G€8)€H~~=~}q}|{|{q{zHzyy\xwwHvutt3sfrqpo\]^_`{aqb\cRd=e)fg hhijkl{m\n=oppqrfs3tuuv=wwxHyyz){{H||H}})~~~H€.€G\€k{{€p€aR€8€f~H~}f}|f|{H{zzqyxxqwvu3uqtsrr)qRp=])^_``abcdef{gfh\iHj)kllmno{pRq)rsstfu)vvw\x yy\zz{||3}})~~\)€G€f€€€€€€pW€8€~H~}\}|H|{){zy=yxw)wfvuttHsqrqp]^{_f`RaHb3cdeffghijk{l\m=n)oppqrfs3tuuvHw xxqyzz\{{|}}~~f€€8\€̀܀€€€€€€Ҁ€€€pM$)~H~}H}|)|{zRzyyHxwvvRutsr r3q^^_`abcd{effRgHh3ij kklmnofpHqrrstfu)vvwqx)yyz){{\||{}~~~f€€G€p€Ҁ€€€$))$€ €€€\.)~=~})}| |f{zzqyx xHwvut)tRs{rqf^R_=`)ab ccdefghijqkRl=m)n oopqr\s)tuuv\wxxy=zz{)||\}}f~~\€M{€ǀ€ $€8€GR\€a\WM€=.€܀€€€f€8)~)~} }{|{3{zy)y{xwv3vfutsrr^_`a{bqc\dHe=f)gh iijklmnqoRp3q rrstfu3vvw{x=yyzR{{|3}}R~~R€R܀€€=W€k€€€€v€fM3€€̀€€p€=~ ~{}|H|{{Rzyx)xfwvu u3t\sr3_` aabcdefghqifjRk=l)m nnopq{rRs)tuuvfw)xxy\z{{f|}}3~~H€W€€€€8\v€€€́ҁ́€ǁ€€€pM.܀v€B ~}\}||q{zz\yxwwHv{utsr_`qa\bHc=d)ef gghijklmqnRo=pqrrstfu3vwwxRy zz{{)||f}~~)€R€€€€G€p€€ǁ܁€€ׁ€€f€=€€{€={~f~}3}|{3{zy yHxwvuuHtqs_`abcde{ffg\hHi=j)klmmnopqfr=sttuvfw3xxyqz){{|3}}q~ M€$R€ǁ€€$3€8€=€=€8.€€܁€€v€G€€v€8f~=~}}R|{z=z{yxw)w\vuts\`Ha3bc deefghijk{lfmRn3opqqrs{tRu)vwwx\yzz{H||}=~~f€=€)\ׁ€3€G\€f€pvv€p€fW€B.€ҁR€€€p.H~~q}||f{zy)yfxwvv)uRt`abcqd\eRf=g3hi jkklmnopfqHr)s ttuv\w3xxyz={{|\}~~=.€p€)\€€€€3R€k€€€€{€fM. €€W€€€f$~}3}|{{\zyx x=wqvuta bbcdefghiqj\kRl=m)noppqrsftHuvvwx\y)zz{\|}}f~ €€a€$\€€ǁ€€B€f€€ǂׂ܂€€܂҂€ǂ€€f€B€€€€W€€€\€~R~}|H|{zzHy{xwv v3uaqb\cHd3e)fghhijklmnqo\pHq)r sstuv\w)xxyzH{ ||{})~~qR€܀€W€€ǁ)R{€€ׂ€ €€€€ €ׂ€€{R)€ǁ€W€׀€Mf~~f}||={zyxxRw{vuabcdef{gfhRiHj3k)lmnnopqrqsRt3u vvwx\y)zz{q|)}}~3€8̀€R€€ǁ.\҂€ $3€BMRRM€B3$€ׂ€a3€ǁ€R€̀€83~})}q|{z)z\yxwvvHb3cd eefghijklqmfnRo=pq rrstuqvHwxxyzR{||}H~~€€k€€B€3€f€€€ )€BW€kv{€k\€B) €€‚€€k€8€ǁ€G€€p$~H~}||f{zyy3x\wvbcdqe\fHg=h)ij kklmnopqqrRs3tuuvwxRy)zz{{|=}}~\R€€3v€.€f€€ǂ€€=\v€€€€€€€{€a€B$҂€p€8€€=\ f~ ~R}|{ {=zqyxwv ccdefghi{jqk\lHm=n)opqqrst{u\v3wxxyzR{||}\~ 3Ҁ€€f€)€f€͂)Rv€€ƒ׃€€€€׃€ǃ€{\3 ܂€p€8€v.€€€B){~} }H|{{zyy=xfwqc\dHe3fg hiijklmnoqp\qHr3stuuvwqxHyzz{|H}~~q€€f€R€€€€a€҂3\€ǃ€€€$)))€€€҃€€k€B€€€p3€€f€̀{$~3~{}|{){Rzyxwcdefgqh\iRj=k3lm noopqrs{t\u=vwxxyzR{||}f~)€B€€€8́€W€͂€8€f€€܃€.€BR\€a€a\W€G€8$ €€ǃ{€G€€€k)€€R\\~})}\|{zyyHx3de ffghijklmqn\oHp=q)r sstuvw\x=yzz{|H} ~~€v̀€€k€€G€ǂ€8€k€€ǃ€€3M€f{€€€€€p\€B$܃R€€€a€ҁ€=€€€=\~}| |3{fzyxd{effRgHh3ijkllmnopqrqs\t=u)v wwxyqzH{||}q~3RR€€€8{€€8€p҃$€G€k€€€DŽ̈́҄̈́€„€€v\€8€€€R€܂€R €v$̀v€~ ~=}{|{zz)ydefghijqkflRmHn3opqrrstuvfwHx)yzz{{|H}~~)܀3ׁ€€k€.€k׃3\€€҄€€܄€DŽ€€p€G€€€R€҂€B\W={~}||H{qzyRe=f)gh iijklmnopqq\rHs3tuvvwxyfz={ ||}q~=\€€€f€ R€€$€f€׃ €=€f€ׄ€ €)3€=€=€83$€€€DŽW)€ƒ€G €‚{3€€€=€€3~~\}|{z zefg{hfiRjHk3l)mn oopqrst{ufvHw)x yyz{q|=}~~.€€€B€€€8҂€W€҃ €=€p€€DŽ€ $€=R€a€k€pv€p€f\M€8€€€€€a.€€B€k€́v€€ǀ€k€\~}|)|R{{zfgghijklm{nfoRpHq3rs ttuvwxqyHz){||}q~=€a€€€v́€€k€M€̓ €=v҄€€=\v€€€€pW€8€€€DŽ€€f3€{3€WW€G=~f}|{z{ffgRh=i)jk llmnopqrsqt\u=v)w xxyz{f|3} ~~3€€MR€€€8€ƒ€=v܄.Rv€€ׅͅ€€܅ׅ€Dž€€€pM)҄€€k.€€k$܂€€=€€€8܀€q~} }3|\{fghij{kfl\mHn3o)pq rrstuvwqxRy3z{{|}f~=€f€ǀ$܁.҂€€k3€p܄€€=€f€Dž€€€€€€€܅€…€a€8 ׄ€€f)€\€€ǂv€€ǁ€p€€WH~{}|{=g)hijjklmnop{qfrRsHt3uvwwxyzq{R|)}~~3€W €a€R€€)€f܄€€B€p€€€€)€8€GMMM€B€8)€€€€€p€B€ׄ€€a$܃€MWM€€)~}}=|ghqi\jHk=l)mn oopqrstu{vfwHx3yzz{|}\~3€f€ǀ)€€=€€€8҃€\€ׄ€€Gvͅ€3M€a€p{{€p€aM3€҅{€G€ׄ€\€̓€8€€€8€)€ǀ€a3\~}|hhijklm{nfo\pHq=r)stuuvwxy{z\{3|}}~3€\€€€p€ǂ€€k€M€҄ €G{܅)M€f€€€€€€kM. ܅€G€҄€M€€p€€ǂ€p€€€a€€8~}}\hHi3jk llmnopqrs{tfuRv=w)x yyz{|q}R~€a€ǀ.€€€GM€€€8€„€B{€€€8\€€͆܆€€€€€܆͆€€f€=€€€€G ̈́€=WR€€8׀€p =f~}hij{kql\mHn=o)pq rrstuvwxqyRz3{||}~.€\€€{ׂ.҃€€k€8v€€€B€k€҆€€€$))€€€܆€€vM€€€€B€v.€€€8€.ҁ€p€€B~~i jjklmnop{qfr\sHt3u)vwxxyz{{|\}3~\€€)€€R €aR€€)€k€€€Gv€dž€ $€8€GW\€a\WM€=)€҆W)€€{€=€f€€ǃ€p€€‚€f €G€{€Hq~{ifjRk=l)mn oopqrstuvqw\xHy3z{{|}~q$€\€$€€8€€€8҄€\€܅€M׆€€=W€k€€€€€p€a€G. €€€\)€€p.€€RW€€B€€€G~ijklm{nfo\pHq=r)st uuvwxyz{{\|=}~~W€)€€R€€k€ƒ€€k€M€҅€€G€ 3Wv€€‡€LJ͇͇€‡€€€a€B€€dž€€a)€€f€ׄ€8€€3ׂ{€€R€€R=j)klmmnopqrs{tfuRvHw3xy zz{|}{~\€€W€$€€B€M€€€8€…€B€€€B€f€‡ׇ€€€͇€€{W.͆€€a$€€W€€„€p€€ǃ€k€R€$€Mjkql\mHn=o)pq rrstuvwx{yfzR{3|}~~M€€€R€€v҃){̈́€€k€8v€€Mv€€܇€€.3€8€83$€€҇€€f€8҆€\€ׅ€€GR€G€)€\€€kklmnop{qfr\sHt3u)vwxxyz{|{}\~=€{€R€€€€G\R€€)€k€€R҇€.€BW€a€k€p€k€f\M€=$ €€‡€€p€= ҆€R€€Dž.€€8܃$€‚€a€)€R\kHl3mn oopqrstuvqwfxRy=z){||}~€=€€R€€{׃3€3҅€\€܆€R€)€G€a{€€€v\€B€҇v€B ͆€G€€f€€„€p€€\€3́€aklm{nfo\pHq3r)st uuvwxyz{q|R}=~€p܀€G€€M €f€€€f€M€҆€M€€€€=\€€ˆ͈׈܈܈׈͈€€vW3 ܇{€=€†€8€€RM€€3҂€k€.€€l mmnopqrsqtfuRvHw3xy zz{|}~{.€ {€M€{܃€=€€€G€€3€†€G€€€€G€p€͈€€€€ €͈€€k€B€€v€=€€p)ׅ3€)̓€k €=ҁ€f{lfmRn=o)pqrrstuvwxyqz\{H|)}~€à€=€{€€G€€k€DŽ$vͅ€€f€8{€€R{€Lj€€.€8€B€G€G€B€8)€€€Lj{M€€v3€€a€€…€k€€€a€B܂v €3lmnopqqfrRs=t3uvwxxyz{|}q~\€€€kׁ€B€{܃€=€RM€€)€k€€R׈€€8R€a€p{{€p€aR€8€܈W€€€k)€€€GR€€=܃{€€Bׁ€k=mn oopqrstuvqw\xRy=z){|}}~M€.€ v܂€G€€p҄.܅.͆€\€€€R€€€3R€k€€€pW€8€€€W€€€a€͆3܅.҄v€M€{€mnfoRpHq3rs tuuvwxyz{{|\}H~3 €€á€8€v܃€=\€€€a€G€҇€M€€€€B€f€͉܉€€€€܉͉€€k€G€€ˆ€W€܇€R€€k€€…€f M€€€G܁mnopqr{sqt\uHv=w)xy zz{|}~€=€€€kׂ€= €p҄3€€€=€€3{€‡€G€€€Mv€€׉€€€€$€€܉€‰W.€Lj€R€҇€=€M€€B€$€W€€Rn=o)pqrrstuvwx{yfz\{H|3}~ €k܀M€.€€p׃€=€a€€€p€†€€a€8{€$W҉€€$€8€GRWWR€G€=.€܉€€€f3€LjM €‡v)܆.ׅ{€€\€$€Mnopqq\rHs=t)uv wwxyz{|}{~f)€€€\€ǂ3€€k҄3€€M€G€€)€k€$W€€$€B\€p€€v€aM3€€€lj€€k€8€ˆ€B€a€€€f€W€.€ǃ\€oppqrstu{vfwRxHy3z){|}}~W€ǀ€=€€f̓€8€€f€…${҆){€LJ€\€€€W€€€€8\v€€€Š€Š€€€€kM)҉€p€8€{3€€M€€G€€.̈́€f€)€qo\p=q)rs ttuvwxyz{q|\}R~=€€k܁M€)€€f̈́3€RW€B҈€M€€€€G€p€€NJ׊€€€Ҋ€€\€8 ܉€p3€k€҇.׆$€Dž€f€€8̓€aopqr{sftRu=v3wxyzz{|}~€B)€ {€W€ƒ.€€a€Dž$܆€8܇.v€€B€€$R{€Š€€€)...$€€׊€€€p€B€܉€k.€W €€f€€\€€=ׄ€p€.)pqrrstuvw{xqy\zR{=|)}~ €p€W€ǁ€=€€a€DŽ.€W€€f€€\€€8v€$W׊€.€BR€a€f€f€a\M€=)€€͊{M€܉€a€܈€€B€€€G€€€8ׅv€€=҃€fpqq\rHs3tu vwwxyz{|}{~f)€€€k܂€G€$€€a€…)€€B€€€B€܈$€f€$W€€ .M€f{€€€€€v€a€G)܊M€܉€W€€Lj{)ׇ)͆€p€€G€v €pqrst{ufv\wHx=y)z{ ||}~Ẁ€B)€ {€R€)€W€€€p€LJ€€p€ˆ€W€܉€W€€€€€=€a€€͋ҋҋҋ€Nj€€{€a€=€€€M€҉€M€a€€€a€G€€€B׃Hq3rsttuvwxyz{{f|R}H~3€€p€W€ǂ€8€€W€$€€GR€B҉€R€Š$Rv€€ҋ€ €ҋ€€vR$€ŠM€͉€=€€M€€B€$€W€€qrqs\tHu3v)wxyyz{|}~€=)€€€k׃€G€€W€€{҇.׈$€p€€B€)W͋€€.€8€=€B€=€8.€ €ҋ\.€Š€G€v)׈.ׇ{€€\€$€Mrrstuvwqx\yRz={3|}~€k€Ẃ€B)€v€M€€€€G\W€3v€)\€€€€=R€a€kvvv€k€aR€=$€€€€f3€€=€a€€€f€W€.€Dž\€\rHs3tuvvwxyz{|{}q~\$€€€p€W€ǃ€8€{€M€{ׇ3€€€8׉€€f€$\€€€€€8W€p€€v\€=€͋€€f3€v.€€€G€€G€€.€dž€f€)€rstqu\vHw=x)yz {{|}~R€ǀ€B€)€€€f҄€B€€€G €f€€€k€R€܊€W€€‹€€€G€k€͌׌€€€܌͌€€vR.ҋ€€f.€€f€҉.׈$€LJ€f€€8ͅ€asttuvwxyqzf{R|H}3~ €p€W͂€B$€€p܅€G€{܇€8€€€G€€€8€NJ€M€‹$R{€€׌€€€€€€€€nj€f€8 ׋€€f)€€W €€f€€\€€8׆€p€.qs\tHu)vwxxyz{|}~{€8$€€€p€R€„3€ v܆€B €k€Lj€v͉€€k€=€)\Ҍ€€$€8€BMMM€G€=.€€€Œ€€p€B€׋€\€׊€B€€€G€€3ׇ€p€€=҅€fstuvqw\xRy=z){| }}~€f܀R€ǁ€=)€€€€aͅ€8 €pׇ€8€RM€€.€p€)\€€€)€BW€k{{€p€aR€8€Ҍ{€G€׋€R€€Šv)׉)͈€k€€G܆v €)tuvvwxyz{q|f}R~H€€ €k€W̓€=€€€f҆€=€k€Lj$׉.͊€€a€€\€€Œ€€€8\v€€€€€€€pR. €€G ͋€G€a€€€a€G€€€BׅtquRv=w)xyzz{|}~€G€€€8$€€€k܄M€)€€k҇€8€W \€G€׋€R€Œ€€G€p€€׍€€€€€܍ҍ€€f€B€€€B€‹3€€€G€€€=܈€€M€{€tuvwxqy\zR{=|)}~ v€€f܁R€ǂ€=)€ {€W€†.€€f€Lj)€€8€€.{€‹€G€)R€€ €€$$€€܍€€vM€€€{€=€k€Ҋ)͉v€€R€€€G=u)v wwxyz{|}{~f)€€ €k€W€DŽ€8€\€LJ.€W€€€k€€€a€8{€€)W׍€.€=MW\\RM€=)€׍W$€v3€W €aM€$€W€uvfwRx=y)z{||}~WҀ€G€€8$€€€fׅ€G$€\€ˆ)€€B€€€B€܋$€k€$\€€ .€G€av€€€p€a€G. €€€\$€€k$܋€€B€€€=€$€ˆ\€$€uvwxyzq{\|H}=~)€v€€f܂R€ǃ€=$€v€R€$€€W€€€p€NJ€€p€‹€W€܌€W€€€€€=€a{€€€Ž€ǎ€ǎ€€€€a€B€€Ǎ€\$€\€€Njv$Ҋv€€\€.€LJ\€Rv=wx yyz{|}~€=)€€ €k܄R€…3€€R€$€€B€R€€=͌€M€€€M€p€€ǎ܎€€€͎€€{R)͍€\€܌€M\ R€3͈€f€)vw{xfyHz3{)|}~~€f€Wҁ€G€€8$€ €€a҆€=€€R€vҊ)ҋ$€p€€B€€$R€ǎ€€€)..)$€€Ҏ€a3͍€R€͌€8€€€=€.͉€k€€8͇\ wwxyz{{|q}\~H€€€v€€a׃M€„€8€€€k܇€G€€€BWR€€.€p€$W׎€3€GW€a€f€f€aWM€8$€€Ž€€k€8€Ǎ€G€€p€͋v€€Š€f€=׈€p€fwHx3yz{{|}~€G€€€8)€€{€€fׅM€.€ v€€G€vҊ.€3Ҍ€€a€€W€€ .M€f{€€€€€€p\€=€Ҏ€p€8€€=WW€€=܉v€€=͇wxyqz\{H|3}~ v€€f܁W͂€G€3€€{€\€LJ€8€v܉€B€a€€€aM€׍€R€€€€=€a€€͏ҏҏ͏€€€vW.׎€p€8€v)€€€=€€3׊v€€G€vxyyz{|}{~f)€€ €p€€aׄM€3€€f҈€= €pҊ3€€€=€€3{€€G€€€Mv€͏€€܏€Ǐ€f€=€€€p3€€a€€njv€€Nj€k€M€€€=qx\y=z){ ||}~WҀ€G€€8)€€v€€a҆€B$€€k҉€8€€a€€€p€Œ€€a€8{€$R€Ǐ€€)3€=€=€8.$€€€€v€G€€€k)€€MW€G€€€M€vxyz{{f|R}=~)€v€€f܂R̓€B€.€€€p€R€.€€f͊.€€€G€€B€܍$€k€€W܏€€8M\€k€p€p€k€f\€G3€׏M€܎€€a€ҍ€8€€€8܋€€W€€)y zz{|}~€8)€€€ €p€\҅€G€.€€€\€‰.€\€€v͌$v€€W€܎€R€€€3R€k€€€€€kR. €€R€׎€R €€p€€nj€p€€W€)€R€yfzH{3|}~~€f܀Ẃ€B€3$€€€p€\͇€=€€\€Š)€MR€=͎€M€€€€B€f€€ǐҐܐܐאҐ€ǐ€€€f€B€€€M€͎€BWM€€.€NJ€a€yz{|{}f~R€€ v€€f܃R̈́€B€.€€k܈M€$€\€€{׌.׍)v€€B€€$Mv€€א€€€€€€€ܐ€W)€M€€ǎ3€€€=€.͋€k€€8͉€a=z{||}~M€€€8)€€€ €k€\͆€B€)€ v€R€$€M€a W€3v€$RҐ€ $3€B€GM€G€B€8)€ܐ€€€a3€€B€€k€͍v€€Œ€f€=׊€p€z{{\|H})~v€€f܁R͂€B€3$€€€p€W€Lj€8€€R€€{܌€8€€€8Ҏ€€a€€Rܐ$€=W€kv{€p\€G.€€€ǐ€€f3€{€8€WW€€=܋v€€=҉z{|}~q.€€ €p€€aׄM€Dž€=)€€€€a҉€=€€€G €f€€€f€M€׏€R€€€€8Wv€€€€f€G$Ґ€€k3€p)܎€€=€€3׌v€€G€vH{)| }}~Ẁ€G€3$€€{€€f܆R€LJ€=€€€k׊€B€v׌€8€€€B€€3€€G€€€€B€k€ґ€€€€€ܑ͑€€\3א€k.€€a€€ǎv€€Ǎ€k€M€€€={|f}H~3€€p€€aׂR€ǃ€=€.€€ €f܈M€)€€p׋€=€f€€€p€ǎ€€f€8v€€Mv€€ܑ€€€€€€€ґ€€k€=€א€€f$€€MW€G€€€R€v{|}~€8$€€{€€k€\҅€G€€8€€v€W€NJ3€€kҌ3€€M€G€€$€f€€Mґ€€)€8€GRWRM€G€8$ €€Ǒv€G€א€\€ҏ3€€€8܍€€W€€R|3}~€f܀R€ǁ€=€.€€€v€€aׇM€3€€€a͋3€€a€€{Ҏ$v€€W€א€Mܑ$€B\€p{{€kW€=$ב{€G€Ґ€M€€k€€ǎ€p€€W€)€‹W€|}q~R€€{€k€\҃€G€„€8)€€€v€\҉€B€€a€nj.€€MR€=€ǐ €G€€3Wv€€€€€€vW€8€€€G ͐€=RM€€.€nj€a€€}}~€G€3€€€v€€f܅W͆€B€.€€k܊M€$€\€€{׎.׏$€p€€=v€€€B€f€’ג€€€€ג€’€€k€G€€€€B€v.܏€8€)€Ǎ€f€.€NjW\}=~v€\ҁM€‚€8)€€€ €k€W͈€B€)€ v€R€$€M\R€€)€k€€€Gv€€ܒ €$))$€€€€ǒ{R$€€{€8€a€€€p€€€a€€8Ҍ€f€}~q.€€v€€a܃R̈́€B€3$€€€p€R€Š3€{€M€{׎3€3͐€\€ܑ€€G{͒€€)€=MW\\\R€B3€ܒW$€€p.€€MR€€8׍€p €€8€Nj ~~Ẁ€=)€€€€p€\׆M€‡€8$€€€€aҋ€=€{€€G€a€€€a€G͑ €B{ג$€B\€p€€€€{€fR3€€€€\$€€f€Ґ3€.Ҏ€p€€B׌€k\~=€€k€W͂€B€3€€€v€€f܈R€‰€8€€k׌€B€€pҎ3€€€=€€.v€€=vܒ 3Wv€€€“€Ǔ€Ǔ€“€€€k€G$€ǒ€\€€€W €€k€€€f €G€{€€8~€=$€ €k€\҄M€…€=)€€{€€a׊€G€)€€k׍€=€€a€€€k€€\€.€kܒ€€=€f€“ܓ€€€ғ€€W.͒€W€ב€€BM€€=€€€G܌€p €f܀M€3€€€v€€f܆W͇€B€3€€€p€R€Œ.€€f͎.€€€B€€€=ב€\€ג€€B€k€€ܓ€€)33.)€ €ד€€f3͒€R €Ǒ{.ܐ.׏v€€R€€f$€v€€aׂM€ƒ€8)€€€ €p€\҉€G€.€€€\€.€\€€€p€ǐ€€k€M€͒ €=€p€€Ǔ€€)€BR€a€f€f€f\R€=) €€Ǔ€€k€8€ǒ€B€f€€€f€R€$€M€M€.€v€€f܄Rͅ€B€3$€€€p€W€Nj€8€€\€Ž$€€B€M€€3{€€8€pғ$€B\v€€€€€v\€B$ғ€p€8€{3€€M€€G€$€Ž\€€ v€\́€B)€€€{€k€\ׇM€ˆ€8$€€€f׌€B€€R€€p͐${͑€€a€.€k€ғ.Rv€€€ǔ͔Ҕ͔€ǔ€€{W3 ܓ€p3€k$ґ.א{€€\€)€R3€€k€W̓€B€.€€€v€€f܉R€NJ€8€€€p܍€G€€€B€R€G€ܒ€\€ғ3€a€”ܔ€€€͔€€k€=€€€k.€\ €€f€W€3͎€a\̀€=$€ €k€\҅€G€†€8)€€€{€€f׋€G€)€ v܎€B€€p͐)ב)v€’ M€͓€8€f€€ܔ€$.€8€8€83)€€€”€v€G€€€f$ܒ€€B€€€G€€.͏€k€.€€f܁M€‚3€€ €p€€a܇R€Lj€B€.€€v€W€Ǎ3€ €p׏€8€WW€€8{€3€f€€”€ )€BW€a€k€p€k€f\M€8€הM€ܓ€\€€ǒ{)ב$€ǐ€f€=Ҏ€f$€v€\҃€G€€8$€€{€k€W͊€B€.€€€\͎3€€f€ǐ$ܑ.Ғ€€f€)€f€€ǔ€€=\v€€€€€kR3€€€M€ғ€M€a€€\€€=܏v €3܀M€.€€€p€€aׅM€dž€=€.€€ €k€W€nj€8€€a€Ǐ.€R \M€ܓ€\€€ǔ)M€p€€͕ҕווҕ€Ǖ€€f€B€€€€G €Ǔ€8€€€G€€€8אv€€B׎€k€€€a҂€G€.€€ €p€€a׈R€lj€=)€€€p€M€)€€a€ǐ)€€=€€€8͓€R€͔3\€Ǖ€€ €€ €ו€€{R$€€€B€€p€Ғ{$͑€k€€G€v €€=€€p€\҄€G€3$€€{€€f€W͋€=$€ {€R€)€€R€€k€’€€f€B€”3€a€€ܕ€)3€=€B€B€=3$€ו\)€€{€8€W \€G€€€B׎€fׁ€G€)€€€p€\҆M€‡€=)€€ €f܌R€3€€R€€€€=€€€B€€)€p€)€a€€•€ .€G\€k€pvvv€k\€B) €€€€a)€€p)ܓ€€=€€€8ܑ€€R€{€€€p€R€ƒ€8$€€v€€f܈R͉€B€3€€{€\͎€=€€€G €k€’€€p€“€W€€€\€€•€€€=\{€€€€{€a€B€€Ǖ€€a)€€a€€Ǔv$͒€p€€R€€€G€)€ {€€aׄM€…€8$€€€€k€\ҋ€G€.€€fҏ€=€vב€8€€€G€€€=͔€R€•$M€p€€–Җܖ€€ܖҖ€–€{W.͕€\€ܔ€M\M€)€W€€R€‚3€v€€a׆M€LJ€=€.€€€€p€W͍€=$€€kҐ€=€€f€’€v€Ǔ€€k€B€€$R€–ܖ€€€€ €͖€a€8͕€W€͔€8€€€=€)€‘€a€$€€€\̓€B)€€v€€f€W͉€G€3$€€€k܎M€)€€f͑.€€€G€G€€.€p€$Wז€)€8€B€G€G€G€=.€€€–€€k€=͕€M€€p€͓v€€€a€3€ǐ\€€8€€k܄R€Dž€=)€€€ €p€\׋M€Œ€8€€v€R€)€\€€v͓$v€ǔ€\€€€R€€)€B\€kv{{v€fR€8€Җ€p€=€Ǖ€=WR€3ґ€k€)€a҂€B$€{€€f܆R€LJ€B€.€€€v€€a׍€G€.€€{€R€$€€GR€=͕€M€€€€8\v€€€pR.ܖv€=€v.€€€=€.͒€k €8͐€a€€k׃M€.€€{€€k€W҉€G€Š€8$€€€p€W€Ǐ€8€{€M€€p͓)Ҕ€€k€€={€€€B€k€җܗ€€€ܗҗ€€f€=€€€p3€f€€ǔv€€“€f€Bܑ€p€€$€v€Wͅ€B€.€€ €p€€a׋M€nj€=$€€€€aҐ€=€vܒ€=€RM€€)€k€€€Gv€€ܗ€€€€€€€ܗ€€v€G€€€k)€€RW€€=ܒ{€€=Ґ€M€)€€€k܆W͇€B€3€€€v€€a׍M€Ž€8€€fґ€8€€f€Ǔ$ה){€Ǖ€W€ז€€G{͗€ $€8€BMRM€G€8)€җM€€€a€ҕ€8€€3דv€M€v v€R€„€8€€{€€k€W҉€G€Š€8)€€v€€aҏ€B$€€f͒.€RW€B€ǖ €Bvח€€=W€kv{€p\€G) €€R€ܖ€W €€p€€ǔ€k€M€€€B3€€{€€a҅€G€.€€ €p€€a׋M€nj€=)€€€kܐM€$€\€€{ה.ו$€p€8€pܗ.R€p€€€€{€a€=€€€R€Җ€BR€G€$€R€{\€ǃ€8€€k€W͇€B€.€€€v€€f܍R€ǎ€=$€v€M€€€€G\R€€$€f€ח €8€a€Ҙܘ€€€€ܘ€ǘ€vM$€€G €–{.€3ܔ€€\€€€ä́€=$€ €k€W͉€G€€8$€€{€€a׏M€.€ v€€G€vҔ.ܕ.€ǖ€W€җ€8€f€ט€€€€€€€€͘\)€€B€f€€•€k€€W€.€’W€€€fׅ€G€3€€ €k€\׋M€Œ€=)€€€p€W€Ǒ3€ €pד€=€W \€=€—€8€k€€˜€€3€BMRRM€B3€€€€€a.€v3€€MM€€.͓€a€$׃€B€€€p€W͇€B€.€€€v€€a܍R€ǎ€=)€€€\€ǒ3€€f€ǔ)ܕ3ז$€k€.€f€€ǘ€€€8R€fv{€fR€8€€€ǘ€€f.€€k$ז3ܕ)€ǔ€f€3€ǒ\€kׄ€G€)€ €k€W͉€B€3$€€{€€f܏M€3€€\€“.€€R €aR€ܗ€\€€ǘ$€G€k€€€€€€kM)͘€€a)€\€€€k€€€a€€8ғ€k€)€€p܅M€†3€€{€k€\ҋ€G€Œ€8)€€v€\͑€=€€W€€{ו3€.{€Ǘ M€˜)R{€€͙ܙ€€€€€ҙ€\3Ҙ€\€ܗ€€GM€€8ה€p €8͒M€)€v€\͇€B€.€€ €p€€a׍M€ǎ€=)€€€fҒ€B€€€G\€ \€8{€€)W͙€€€$$€€ €י€€€k€= Ҙ€W€€Ǘ.ܖ.ҕ€p€€Bܓ€pv€R€.€€€k€R͉€B€.€€€v€€a׏M€€8€€€kד€= €pҕ.€€8ח€€f€$Wܙ€3€BMWWWM€=)€€͙€€p€= ͘€€G€f€€€f €G€{€€=€ v€W€†€8€€{€€f܊W͋€G€3$€€v€\ґ€B$€€fҔ3€W €aM€ט€R€€ .M€av€p\€B$יv€=€˜€8€€M€€B€€M€v€DŽ3€ {€\҇€B€.€€€{€k€\ҍ€G€Ž€8$€€€kܒM€$€\€•$ܖ€8€.{€˜€B€€€=€a{€€€š€€{\€8€€v€=€€p$ח.Җv€€R€€€\€Dž3€€k܈R€lj€=.€€ €p€€a׏M€€8€€v€M€€€M €a€ \€3€p€€€B€k€€šך€€€€€ך€š€f€=€€€k.€W€aM€€€Mܓ€€\͆€=€€{€€f܊R€Nj€B€.€€€v€\ґ€G€)€ v€€G€vז3€€8Ҙ€\€ܙ€€B€p€€ܚ €€$$€ €€š€v€G€€€f€ט€€=€€€=€$€W€€€=€€€a҇€B€)€€v€€f܌W͍€B€3$€€€k€R€“.€ €pו€=€\€€€a€G͙ €=€p͚€€)€=€GRWWM€B.€ҚM€ܙ€W€€ǘv$͗v€€\€)€M€f҅€=€€k܈R€lj€8)€€{€€k€\ҏ€G€3€€v€W€”.€€f€ǖ)€€8ܘ)€p€€8€pҚ€€=W€k{v€aM. €M€ҙ€€G\R€.€Ǖ€a€€f҆€=€€v€€a׊M€‹€8)€€€€k€\ґ€G€.€€€W€•)€€R €a€ W€€)€f€Қ)R€p€€€€€€€a€B€€€€G €Ǚ3€€€=€.͖€f€.€€€fׇ€G€)€€€p€\׌M€€=.€€ €k€R€“3€€R€€{ח3€3͙€R€͚.\€€қ€€€€€€͛€€vM$€€€B€€k€͘v€€—€f€€8ҕ€f܅€G€€k܈M€‰€8€€ €p€€a׎R€Ǐ€B€.€€v€\͔€8€vܖ€B\€ \€=€.\қ€€€$$€€€͛W)€€{€8€WW€€=ז€p €3€k׆€B$€v€\Ҋ€G€3€€€v€€fܐR€Ǒ€=)€€€€a͕€8€€k͗)€€8י$€k€)\€€€€3€BRW\R€G€8€€€€€a)€€p)ܙ€€=€€3חv€€Bו€k)€€kׇ€G€)€€€k€W͌€B€3$€€v€€fܒR€“3€€\€ǖ.€R €aM€ܚ€R€€€3M€fv€{€kW€8€€€Ǜ€€a)€€a€€Ǚv€€ǘ€k€€G€{€R€$€€k܈M€3€€{€€f€W͎€G€€8$€€v€\͔€=€€R€€{ט3ܙ.{€š€G€€€€=€a€€€€œ€€€pM)͛€\€ܚ€MW€G€€€Gܕv€M€$€€p€W€NJ€=)€€{€€k€\Ґ€G€‘€8$€ €€aҕ€=€{€€B\W€3€p€€€G€p€€ǜܜ€€€€ל€œ\3͛€W€͚€8€€€8ܘ€€R€€€€p܇€G€)€ {€€a׋M€Œ€8)€€€€k€\Ғ€G€3€€aҖ€8€k͘)ܙ3Қ€\€ܛ€€Gv€€œ€ €$)$€ ܜ€€€k€8͛€M€€p€€Ǚ€p€€W€$€M€†.€€p܈M€.€€€p€\ҍM€Ž€8)€€ €k€W€ǔ€8€€a€Ǘ.€R\€B͛ €Bv͜€€)€=MW\WM€=)€€€ǜ€€p€=€Ǜ€=WM€€)€—\€€R€)€€p€R€Š€8€€ €p€\׏M€€=.€€{€€aҕ€=€€W€€{י.ך$€p3€pҜ$€B\€p€v€a€B$ל€p€8€v.ܚ€8€)€ǘ€a€)€€v€M€)€v€\͋€B€.€€ €p€€aבM€ǒ€=)€€€fҖ€B€{€€BWM€€$€a€Ҝ.R€p€€€€€€{\€8 ܜ€p3€€a€€š€p€€€a€3͗€a3€€p܈M€)€ €€f܌R€Ǎ€=.€€ €p€€aדM€”3€€fҗ€8€k€Ǚ$ך){€› M€€ǜ.\€ҝ€€€€ܝ€ǝ€€k€B€€€k)€€MR€€8Ҙ€k€.\€‡.€€p܉M€.€v€€a׎M€Ǐ€=€.€€ €p€W͕€=€€a€ǘ.€€MR€€8{€)\ҝ€€€$$€€€€ǝv€G€ܜ€a€қ3€.͙€p €=җ€f€R€)€€p€R€Nj€8$€€€p€€aאR€Ǒ€=€.€€{€€aҖ€B€€R€€vҚ){͛€€a€$W€ܝ€3€GRWWR€B3€םM€ל€R €€k€€š€f€Bܘv € v€M€$€v€\Ҍ€B€.€€ €p€€aגR€Ǔ€=)€€€fҗ€=€{ܙ€=€M€BҜ€M€€€.M€fv{€fM.€€€M€Ҝ€BR€€=€{€€Bח€LJ3€€p܉€G€)€ €€f܍R€ǎ€=€.€€ €p€€aהM€•3€€a͘€8€€a€š€v͛€€k€={€€€=€a{€€€€€€€f€B€€€€G€œ{.ܛ.ךv€M€{€€W€)€€k܊M€.€v€€a׏M€ǐ€=€.€€ €p€W€ǖ€=€€\€™)€€G€€G€€$€fܝ€€B€k€€žܞ€€€€€͞€€vR$€€€=€f€€€f€R€€€G€{€M€$€€p€R€Œ€8€€ €p€€aבR€ǒ€=€.€€{€\͗€=€€M€€k€Ǜ€€p€ R€ҝ €=€p€€ܞ €$$€€€ҞW)€v3€€M€€G€$€W€€8€€p܉€G$€v€\͍€B€.€€ €p€€aדR€ǔ€=)€€€€a͘€8 €pך3€€€B€€3{€€8€k€€Ǟ€ $€=MRWR€G€8€€€€\)€€f€Ҝ.כ€€\€$€\€ˆ)€€k׊€G$€ {€€f׎M€Ǐ€=)€€ €p€€aҕ€G€.€€\€Ǚ3€\€€€k€€\€)€a€€Ǟ€€8W€k{{€kW€8€€€ž€\$€€W €€f€€W€.€Ǚ\€v܈€B€€\͋€=€€{€€f܏R€ǐ€=€.€€€v€€aז€G€.€ v€€G€vқ.ܜ.{€ M€€€€B€f€€€pM)͞€\€ܝ€€GM€3Қ€k€.€€f҉€8€€\͌€B$€€€p€€aבR€ǒ€=€.€€ €kܗM€.€€kҚ€8€WW€3v€€€G€p€€ǟן€€€ܟҟ€\3͞€W€͝.ܜ)͛€k €=ҙ€f€$\€NJ3€€€aҍ€G€.€€ €p€€aדR€ǔ€=.€€p€M€)€\€€{Ҝ){͝€\€ܞ€€Gv€€Ÿܟ€€€€€ן€€€k€8͞€€G€€f€€€a€Bܚv €€€G€€W€‹3€€€f܎R€Ǐ€=)€€€€p€€aוM€–€8€€€pܙ€G€€€B€R€=€Ǟ€=v͟€€$€8€B€G€G€B€8$ €€ǟ€€p€=€ž€8€€M€€=ܛ{€€Bי€k҉€8 v€R€Œ3€€p€\Ґ€G€€8)€€€€k€W͗€=$€€kך€=€f€ǜ€v͝€€f€.€k€͟€€=W€fv{{v€kW€=$ן€p€8€€p$ם.Ҝv€M€{€)€\€Š.€v€R€3€€{€€f€W͒€G€€8$€€v€€aҘ€B€€€a€Ǜ)€€B€€€B€מ€\€͟$M€k€€vW3 ܟ€p3€\€€€f M€€€GM€{€R€)€v€W€ǎ€=$€€v€€fܓW͔€G€3$€ €€aҙ€B€€M€€k€€€f€€B€)R{€€ǠנܠܠܠҠ€€f€=€ܟ€f$€€€G€€€B€$€W€€k҉€8€€p܋€G€$€v€\ҏ€B€.€€ v€€fܕR€ǖ€B€)€€€aҚ€= €pҜ3€€€=€ܞ)€k€€R€Ǡ€€€ €ܠ€€v€G€ܟ€\€͞{)ҝ{€€\€$€€\€Š)€€k׌€B$€ {€€aאM€‘€=)€€ €p€€aחM€3€€\€Ǜ.€W €aM€ן€MҠ€$3€=€B€=3$€Ҡ{M€ן€M€a W€.€Ǜ\€€{€M€€fҍ€B)€€€k€\Ғ€G€“€8)€€€€kܘR€™3€€R€{ם3ܞ)v€€=vנ$€=W€f€p€p€p€fW€B)€€G ͟€8€€€B€€.͜€f€)׉€8€€k׋€=€€aҎ€G€.€€v€€fܓW͔€G€€8$€€€p€R€š3€ €pל€=€WR€€)€f€Ҡ.M€k€€€v\€=€€€€B€€p$Ҟ{$€ǝ€f€3͛€a\€$€a͌€8€€f׏M€3€€€v€€fܕR͖€B€.€€€p€R€)€\€€{Ҟ$v€Ÿ R€€Ǡ.W{€€¡ҡסҡ͡€€€p€G€€{€8€\ \€€8ל€k€€{€€G€€W€3€€kܐR€Ǒ€=)€€ €p€€aחM€˜€8€€€pܛ€G€€€B€M€€3v€€)W€ǡ€€ܡ€¡R$€€p)€€€=€€3ם€p€€=қ€8€€f͋€8€ v€R€Ž3€€p€\Ғ€G€€8$€€€€k€W͙€=€€€kҜ€=€€a€€€p€Ÿ€W€€€Rס€$.€8€83$€סW$€€a€€ǟv$€Ǟ€k€€Gܜv \€$€W€)€€p€M€3€v€€fܓR͔€B€3$€€v€\͚€=€\€$€€=€€3€Ǡ €B{ܡ$€=R€a€f€f€aW€B.€€€€W€ܠ€M\€G€€€B{€€B€v܌€G€€€k܏R€3€€ €p€€aוR€ǖ€=€.€€{€\͛€=€{€€G€a€ \€.€kס.R€k€€€€v€a€B€€€¡€R€͠€8€€€8ܞ{€M€{€€a€Nj.€€fҍ€=€€k€R€Ǒ€=)€€{€k€\җM€˜€8$€ {€\€ǜ3€€f€Ǟ)ܟ.͠€W€͡3W{€€€Ǣ€Ǣ€Ǣ€€vR)€¡€G€€p€€ǟ€p€R€€€€€M€€\͎€8€€p€W͒€B€.€€€v€€fܘR€Ǚ€=$€ v€R€$€€GR€€8€.\€Ǣܢ€€ܢ€Ǣ\.€€=WM€$€W€€€B€kҌ€=€{€W€Ǐ€8€v€€aדM€”€8)€€ €p€\Қ€B$€€pם€B €k€ǟ€v€Ǡ€€a€€Wע€ €)))€€ܢ€€€a.€€p)ܠ€8€$€ž\€$€a€‹)€\€.€v€R€3€€{€€fܔW͕€G€3$€€v€€aқ€B€€€a€Ǟ)€€B€€€8͡ €Gܢ€€8€GW\WR€B.€€€Ǣ€€f)€€a€€ €p€€\€.€\€€€G€{€M€$€€p€R€‘€8€€ €p€€aזR€Ǘ€B€.€€{€€aҜ€=€€€G €a€€\€3€pע.M€f{v€a€B$͢€€a$€€MM€3͞€f€€B€€f€nj.€€kҎ€B€€k€R€ǒ€=$€€{€€k€\Ҙ€G€™€8$€ {€\€ǝ3€€f͟)ܠ3͡€W€͢.Wv€€€€vW.Ң€W€͡3ܠ)͟€k€3€ǝ€a€‹$€M€€\€Ǐ€8€€k€W͓€B€.€€ v€€fܙR€ǚ€=$€ v€R€$€€GR€€=€)W€ң€€€€ף€ǣ€f€8͢€M€€k€€€a€=מ€k€€B€kҍ€8€{€R€3€€p€\Ҕ€G€€8$€€€€k€W͛€=$€€kמ€B €k€Ǡ€v€ǡ€€a€€Rͣ€€€€€ €€€€k€8€Ǣ€=€M€€=ܟv€€8€a€Œ)€\€Ž.€€p€R€‘3€€v€€aܕR€ǖ€B€3$€€v€\͜€B€€a€ǟ)€€B€€€8͢ €G{ף€.€=€GM€G€=)€€ͣ€€p€8€€p)ס.Ҡ€p€€Gܞ€p€‹€€€B€v€€G€€€kܑM€3€€{€k€\җM€˜€8)€€€v€\͝€=€{€€G€a€€\€3€kף$€B\€kv{v€k\€B$ף€k3€\€€€a €G€{€€€=€€a€Ǎ.€€fҏ€=€€fܒM€“3€€ v€€aܘR͙€B€3€€v€W€ž.€€f€Ǡ)ܡ.͢€W€ͣ)R€p€€€vW3 ܣ€f$€€€G€€€B€€M€\€€€€G€€W€3€€€fܓM€”€8$€€{€k€\Қ€G€3€€€p€M€€€GR€€8{€€$R{€€ǤפܤפҤ€¤€k€=€ף€\€͢{)ҡv€€R€€€{܌€8€€f͎3€€pܐM€)€ €€fܔR€Ǖ€=.€€ v€€aכM€œ€8€€fҟ€8€€a€¡€€p€¢€\€€€M{€Ǥ€ €ܤ€€v€B€ң€M€a R€$€R€=€W€€€M€$€fב€B$€ €f€W͖€B€3$€€{€€fܜM€3€€W€€€€8€€3€£€=vͤ€ $.€8€83$€€Ҥ{€B €ǣ€8€€€B€)€ \W€€v׍€8€€kҏ€=€€\͒€=$€ €k€\җ€G€˜€8)€€€€fܝM€.€€pנ€=€WW€€)€f€ͤ€€8M\€f€f€aW€B$ܤ{€=€€p$Ң{€€¡€a€.€ŸvҌ3€€W€€€W€.€v€W€Ǔ€=$€€€p€€aטR€Ǚ€B€.€€ €€fמ€G€€W€€vҢ$v€£ M€¤€€B€a{€€€€pW€8€€v3€WW€3͠€f€€M€€p׎€8€€pܐ€G€€€p€R€ǔ€8$€€v€€f€W͚€G€3$€ {€€a͟€8€vס€8€€€B€€.€p€€€G€k€€€¥€ǥ€¥€€k€B€€€k)ܣ€€=€€.ҡ€k€3€€k€Ǎ)€R€$€a͑€8€€kܔR€Ǖ€=)€€€{€k€\қM€œ€8$€v€R€)€€R €a€M€Ҥ€€B€p€€ҥ€€€€ץ€€vM€€€\€€ǣv€€Ǣ€f€=Ҡ€k͌)€€G €p׏€=€v€R€.€€€fܕR€ǖ€=)€€ €p€€aלM€€8€€€kנ€B€€p͢)ף$€p€3€f€€€€€$€€€ҥM€פ€MW€€=ܡv €€G€a€Ž$€W€$€€kג€G$€ €€fܖR€Ǘ€B€.€€€v€€aםM€ž3€€\€¡)€€G€€G€פ€W€€€ )€=MRR€G€8$€€G €Ǥ3€€3עv€€Bנ €a€€{܎€= €pא€=€€\͓€=€€ {€€fܗW͘€B€3$€€{€€aמM€.€ vܡ€B€a€€€f€={€€3R€fvv€kR€8€€€€B€€k€€ǣ€k€M€{€$܍€8€\€$€W€‘.€v€R€”€8€€{€€k€Wҙ€G€š€8)€€€{€€aҟ€B€\€¢$ܣ3Ҥ€€a€ץ €8\{€€€k€G€€v€8€R€G€€€G€B€R€v׏€8€€pב€B€€kܔM€3€€€k€\ҚM€›€=)€€v€\€Ǡ€8€vܢ€=€M€€=€¥.\€ͦצܦצͦ€€{R€€€k$פ3ܣ€€W€\€€€p͎.€€R€€€\€ǒ3€€€€aҕ€G€.€€ €p€€aכM€ǜ€=.€€p€M€$€€W€€k€€\€€Wͦ€ €ͦR€€\€€€k€W€$€{ҍ.€€G €kҐ€8€€pܒ€G€$€v€\͖€B€.€€ €p€€aܜR€ǝ€=)€€€aҡ€= €pң.ܤ.{€¥€B{Ҧ€$3€83)€ܦ€R€ץ€€G€G€€)€¢\€€€€G€a€€€M€€\͓€8€€p€W͗€B€.€€ v€€fܝR€Ǟ€=$€ {€R€$€€GM€€)€f€ͦ€€=R€a€f€a\€G3€€€M€€ǥ{.פ$€£€a€)€a€€v׏€8€€f͑3€ v€M€.€€€kܗR€ǘ€B€.€€€v€€fܞR€ǟ€8€€€fҢ€8€€a€€€f€€G€¦€€G€f{€€{€a€B€€€€B€f€€\€3͢€a€Ǎ${׎3€€R€{€M€€aҔ€B$€ {€€fܘR€Ǚ€B€.€€€v€€aןM€3€€R€€{פ.ץ€€f€€€G€k€€€€€vR$€€{3€€€G€€3ң€k€€€=€€M €k͐.€€a€ǒ3€ v€R€•€8€€v€€aܙR€ǚ€B€.€€€v€\Ҡ€B$€€fͣ3€€M€€€=€Ǧ€=€k€ͧ€€€€ܧ€§W$€€k€ҥ)ͤ€k €=ҢW €f€€€€G€vܒ€G€€fו€G€.€€v€€aךR€Ǜ€B€3€€€€p€W€ǡ€8€{€€G €f€€\€)\€€ܧ €€€ ק\$€€W \€Bܣv €€p€ǎ${܏€8€\€$€\€Ǔ3€ {€\͖€=$€€€p€€aכR€ǜ€B€3€€ €fܡM€$€€a€¤$ץ){€¦ €Gܧ€3€B€G€B€8$ €€€W€צ€=€€€8ܤ{€€B3€€8€€R€€pב€8€€pܓ€G€€€kܖR€—€8€€ €p€€aלR€ǝ€B€.€€{€\͢€8€vפ€8€€€B€€)€fק)€G\€kv€p€fW€=€€€§M €¦v$ͥ€p€M€{MR €f€ǐ$€M€€W€”.€€{€€aҗ€G€.€€ €p€€aםM€Ǟ€=)€€€kܢM€$€M\€B€§)M€p€€€€€kM$€€B\M€€€f€€€k€€{ܐ€=€€a€ǒ.€€kה€B€€€p€W€ǘ€=)€€€{€k€\מM€Ÿ€8$€€€\€ǣ3€€f€¥€vͦ€€a€€Mv€€¨ͨͨ€¨€W)€v.€€€8€€€R€Ҏ)܏€8€€R€vܒ€B€{€R€•.€€€€fטM€™€8$€€{€k€\ҟ€G€3€€€pܣ€G€{ܥ€8€€3€§€=€k€€ר€€€ͨ\)€€f€€Ǧ€p€€W$€€€B€€M€f€Ǒ)€W€$€€fҕ€B€€v€\ҙ€G€3€€€{€€f€W͠€B€.€€€W€¤)€€MM€€$\€€€€€$€€€€€\$€€MM€€)€¤\\ €a€€{ܑ€=€€fғ€8€ v€R€.€€€k€R€ǚ€B€.€€€v€€fܠR€ǡ€8€€€kפ€=€a€€€f€={€$€=€GRM€B.€€€¨€W€ҧ3€)€ǥ€a€€ǎ€€p€Ǐ€{א3€€R€{€€G€€€a͖€=€€v€€aךM€›€8)€€ €p€\ҡ€G€.€€{€M€{צ.ҧ€\€Ҩ)M€av{{€p\€B€€¨M€€k€€€a€3€Ǥ€3܏€8€€€G€a€ǒ)€\€”.€€pܖM€.€€€k€Wқ€G€3$€€€{€k€W€Ǣ€=€€a€ǥ.€€€B€€3{€€$M€p€€€pR)€€=€M€€8ҥ€kM€M\€€vג€=€€kҔ€=€€\͗€=€€{€€fܛR€ǜ€B€3€€€v€€aע€G€)€€pץ€=€WM€ר€€B€p€€©ҩҩͩ€\)€p)ק)ͦ€k €8€€a €a€€€p͑)€M€{€M€€€€fח€G€)€€€p€\ҜM€€=.€€ €k€W€ǣ€8€€R€€p€ǧ€€f.€f€€ש€€ҩ€\)€\€€€a€Bܥ€p){͏€v͐)€€=€\€“$\€Ǖ.€ v€W€ǘ€8€€{€€f€W͝€G€3$€€{€€aң€G$€€a€¦$ܧ3ͨ€Mܩ€$)$€€€€\€ܨ€€G€€€=ܦ{€€=€€€8€€=€€M€€pғ€8€€kҕ€=€€€aҘ€B)€€€p€€aםM€Ǟ€=€.€€ €k€R€¤3€ €pצ€8€€€G€€)€kש€€8MRR€G3€€€©€R€€Ǩ{)ҧv€€G€WM€R€a€€€€G€{€M€$€€kܘM€™3€€{€€f€WҞ€G€€8)€€v€\ͤ€=€€€G\€B€©€€B€a€p{{€p€a€B$€©€G€aM€€€k€ €a €a€€vҒ.€€W€€€W€–.€ {€W͙€=$€€€p€€aמR€ǟ€B€.€€ €fפ€G€$€W€€€p€¨€\€ܩ€€B€f€€€vR)€{3€€€=€€€Rҏ$v€ǐ€v͑)€€B€€f€ǔ.€€fҖ€=€€fי€G€.€€{€€f€Wҟ€G€ €8)€€€p€R€¥.€€fͧ)ר)v€3€a€ªͪҪͪ€\)€€k€ͨv€€W€€€€8ܐ3€€8€€R€vה€= €pܖ€G€€€k€R€š€8€€ €p€€aןM€Ǡ€=€.€€{€\ͥ€=€vܧ€8€€€=€ҩ€Mͪ€€Ҫ\$€€RR€€)€¦M€€€B€€M€a€“€€M€€R€)€v€W͚€=)€€v€€fܟW͠€G€3$€€€fץ€G€€€GR€.€k€ͪ€ €$$€€€€W€ҩ€8€)€ǧ€a€€€aW\€€€p͓.€W€$\€Ǘ3€€€aҚ€G€.€€{€k€\ҠM€¡€=)€€€p€R€)€W€€€f€€G€€€.€BMM€B.€€€ªM €€p€€€a€.׏$€p€€€k€€€k€ǒ$ܓ€=€€f€Ǖ.€€fҗ€=€€kܚM€›3€€ €p€€aנR€ǡ€B€.€€v€W€Ǧ3€€f€Ǩ${ͩ€€a€ת 3R€fvv€p\€B€€€€=R€3ҧ€f€€8א){ґ$ג3€€M€€pו€8 €pܗ€G$€€p€R€Ǜ€8$€€v€€fܠW͡€B€3€€ €€aҦ€=€vר3€.v€)Rv€€€€pR$€€p)ܩ.ͨ€k€M€€€8€€8€€€B€W€€{€€G€{€R€)€v€\͛€B)€€{€€f€Wҡ€G€¢€8$€€€fצ€G€€€B€€€B€Ҫ€€B€p€€«€ǫ€«€€W$€€a€€€a€=ק€€aM€€€G€R €f€ǔ$€R€€€W€ǘ3€€€€aқ€G€.€€{€k€\ҡM€¢€=)€€€pܦM€$€MW€)€a€€ҫ€€€€ͫW€ܪ€€G€€€=ܨv€)€p€€\W\€€€pҔ3€\€)€€a͘€8€€fכ€G€3€€ €p€\סM€Ǣ€=.€€v€R€§.€\€€€f€={׫ €€€ܫ€M€€Ǫ{)ҩv€€G€8Ґ€€p€€€f€€€k€Ǔ$ܔ€=€€f€ǖ.€€fҘ€=€€kܛM€œ3€€ €p€€aסR€Ǣ€=€.€€v€W€ǧ3€€f€ǩ€v€Ǫ€W€€ǫ€.€=€=€8) €€€B€a€G€M€€.ґ$v͒${ғ.€€G €kҖ€8€€pܘ€G€€€k€R€œ€8€€ €p€€aסR€Ǣ€B€.€€ {€\ͧ€8 €pҩ.ת$€k€€€8R€a€f€aR€8€€v3€€€=€€\€€=ܑ.Ғ)ܓ3€€M€€pז€8€ €pܘ€G€€€kܛM€œ3€€ €k€\ҡM€¢€=.€€{€\ͧ€8€vש€8€€3{€)R€p€€k€G€€€k€ͪv€€W€€p€M€€€=€€€8€€€B€W€€{ܖ€B€v€M€$€€p€R€œ€8€€ €k€\ҡM€¢€=)€€{€€aҧ€=€{€€B€€B€ҫ€€G€p€€vM€€€RR€€)€ǐ€\M€€€B€M€a€•€€€G€{€R€)€€p€R€œ€8€€ €k€\ҡM€¢€8)€€{€€aҧ€B€€€GR€€)€a€Ǭ׬ܬҬ€¬M€ҫ€8€)€ǩ€a€א$€k€ WRW€€k€Ǖ)€R€€R€)€v€R€ǜ€8€€ €k€Wҡ€G€¢€8)€€€{€€aҧ€B€€R €a€=vͬ€€Ҭ€G€€p€€€a€€3€Ǒ€€f€ \ €a€€vҕ.€€W€€€W€™.€v€W€ǜ€8€€{€€f€W͡€G€€8$€€{€€aҧ€G$W€€€p€« R€€¬€ €)$€ܬv€8€R€3ͩ€B€ב$v€’€€k€€€k€ǔ€{ו€8€\€$€\€Ǚ.€ v€W€ǜ€8€€{€€fܠR͡€B€3$€€v€€aҧ€G$€€a€ª€{ͫ€€a׬)€=MM€B. €€k$׫.ͪ€k€ R€€3Ғ$v€Ǔ€v͔)€€=€€a€—)€\€Ǚ3€ v€W€ǜ€8€€v€€aנR€ǡ€=€.€€€v€\ҧ€B$€€a€Ǫ)׫)v€€€€B€a€pv€kW€8€ܬ€\€€€a€=א€€a€B€ܒ.ғ)ה3€€G€f€Ǘ.€€a€Ǚ3€ v€R€œ3€v€\נM€¡€8)€€ €p€\ҧ€B$€€fͪ.€€8€Ǭ€8€a€€€€f€= Ҭ€€B€€€=ܪv€)€p€M€€€8ܓ3€€8€€M €k͗3€€a͙3€ v€R€œ3€€p€\Ҡ€G€3$€€{€k€Wͧ€=$€€fҪ3€€€B€׬€M{€€€€€k€=€¬v$ͫ€p€€8€Ǒ€\€B€€€=€€€B€R€€pҗ3€€f͙3€ v€R€.€€€k€W͠€B€.€€€v€€fܦR€ǧ€=€€€kҪ€8€M€€)€f€€ҭ€€׭€€€k3\€G€€G€ґ€€fM€€€B€€€G€W€€pҗ€8€€f͙3€ v€M€.€€€€fܟM€ €8)€€€€p€\צM€§€8€€fҪ€8€R€=vҭ€€€ǭ€€f)€€€8ܫ€€W€€)€p€ WM€M\€€vח€8€€f͙3€€pܛM€)€ {€€aҟ€G€3€€€v€€fܥWͦ€B€.€€fҪ€8€\€G€€ $)$€ͭ€\€€¬€p€R$€f€3€ǒ€€aWR€a€€{ח€8€€f͙3€€pܛ€G$€v€\͟€B€.€€€k€\ץM€Ǧ€=)€€€aҪ€8€€a€ W€ҭ)€BMM€=$€ǭ€GM€3€p€€BҒ€€k€ \\ €f€€{ܗ€=€€f͙3€€kכ€B€€€p€R€ǟ€8$€€v€€fܤRͥ€B€3€€ {€\ͪ€8€€a€€€a€€€B\€p€p€fM)€{.ܬ$€€=€‘M€ܒ)v€“€€a€ €a€€€f€–€{ܗ€=€€f€Ǚ.€€kқ€=€€fמM€3€€{€k€\Ҥ€G€¥€8)€€v€W€Ǫ3€€f€¬€€k.W{€€vW)€€a€€WM€͑€W€€3͓€€k€€€f€€€k€ǖ€ܗ€=€€a€Ǚ.€€f͛€8€€€aҞ€B)€€€p€€aףM€Ǥ€=€.€€ €k€R€ª.€€f€¬€€p€€=€p€€€W€€€€B€€.\€ܑ€€a€€=ғ€€p€”€€f€€€k€ǖ$ܗ€=€€a€™)€€a€Ǜ3€€{€W€Ǟ€8€€{€€fܢRͣ€B€3$€€v€€aש€G€)€€a€¬${€ǭ€M€Ǯ׮׮€ǮR€€ǭ{$€¬€a€f€)€k€B€ܓ)v€ǔ€€k€•€€p€ǖ$ܗ€=€\€™)\€›.€v€R€ž3€€p€\Ң€G€€8$€€€€k€Wͩ€=€€€a€¬${ͭ€\€€®€€׮€BW€v€3v€M€€.{͔€€p€•€€p͖$ܗ€8€\€$€W€)€€kם€G€)€ {€€fסM€¢€8)€€€ €p€€aרM€©3€€\€¬$ҭ$€k׮€€€€v.€3Ҭ€€=€ǒ R€€3Ҕ$v€Ǖ€v͖$ܗ€8€W€€€R€€€aҝ€=€€€p€W͡€B€.€€ €p€€aקR€Ǩ€=)€€{€W€€׭)v€€.€=€8) ܮ€a€€­€f€Ǒ €G͒€\€€8ה$v€Ǖ€v͖$ܗ€8€W€€{€€G€€W€ǝ3€€€fנM€3€€ €p€€aܦR€ǧ€B€.€€€p€M€€{׭.{€)€G\\R3 ׮€€G€€=€ב€R€ג€€a€=ה){͕€v͖${ח3€€R€vܚ€B€{€R€)€v€W͠€=$€€€p€€aܥR€Ǧ€B€3€€ €f׫€B€v׭.€Ǯ€8€avv\€8€Ǯ{)ҭv€€\€€$€k€B€ܔ){͕€v͖${ח3€€M€€pך€8€ €pܜ€G€€kןM€.€v€€aפR€ǥ€B€3€€€€p€W€ǫ€8€€pҭ.Ү€€Gv€€€€a3€a€)€f€)€p€€G€€.͕€v͖${җ.€€G €k͚3€€fҜ€8€€\͟€=€€{€€fܣR€Ǥ€=€.€€€v€€aת€G€)€€kͭ.׮€W€€€€a)€€€=€€‘€8{€€=€Ǔ€W€€=ܕ.ז.ܗ€8€€M€€pҚ€8€€kҜ€=€€\͟€=€€{€€aףM€Ǥ€=)€€ €p€€aת€G€.€€p׭€8€€.€k€€ǯܯ€ׯ€€R€€®€k€͑ €B€€B͓€\€€=ܕ.ז)ܗ3€€€G€f͚.€€a€ǜ3€v€M€.€€€fܢR€ǣ€=)€€€€p€€aשM€ª€8€€€fͭ.€€3vׯ€€€B€€Bב€M€ǒ€Gғ€\€€=ܕ.Җ)ח.€€B€€a€š$€W€$€€fҞ€=€€€p€W€Ǣ€=)€€{€€k€\ҨM€©€8$€ €W€­)€3{€€€€€ €€p)׮{€€R€͒€M€ד€€a€=€ܕ.{Җ${җ)€€=€W€€€€G€€W€ž.€€{€\ҡ€B€)€€v€€fܦWͧ€G€3$€€€kܬ€G€ܮ3€¯$€8€=.€€\ €$\€ג€R€ד€€a€Bܕ){͖€v͗$ט3€€M€vכ€= vܝ€G€€€kܠM€.€v€€aץR€Ǧ€=€.€€€€p€Wͬ€8€v׮.€ǯ3R\R3 ү€€=€)€f€ܒ€W€ܓ€€f€Bו){€ǖ€€p€Ǘ€vҘ.€€B€f͛3€€f͝€8€{€W€Ǡ€8€€v€€aפM€¥€8)€€€ €p€\ҫ€G€)€€kͮ)ͯ €B€fv€p\€8€¯€p€3€k€€\€€$€f€=ו$v€ǖ€€k€—€€p€ǘ$ܙ€8€\€$€W€)€€kן€G$€{€€aң€G€3$€€v€€f€Wͪ€G€.€€\€®${ͯ€R{€€€a.€M€8€p€$€a€€$€f€=ו$€p€–€€f€€€f€˜€vҙ.€€R€{€€G€€W€ǟ3€€€fע€G€3€€ €p€€aרM€ǩ€=€.€€p€M€€p€ǯ€W\$ׯ €B{€)€f€$€k€=ҕ€€k€€€a €a€€€k€Ǚ$€€B €kҜ€8€€pܞ€G€€€kܡM€¢3€€{€€fܦWͧ€B€3$€€v€\ͭ€8 €k€¯€\€€€ǰ€°R €€€G€€)€f€)€k€=ҕ€€k€ \W €a€€vך3€\€œ)€\€Ǟ3€ {€W€ǡ€8€€v€€aץM€¦€=)€€ €p€\Ҭ€B€$€\€€\€€ǰܰ€Ұ€=€€M€.€k€)€k€8͕€€fRMW€€k€ǚ)€M€{€M€€aҠ€B€€v€\Ҥ€G€3€€€v€€fܪWͫ€B€.€€€M \€Ұ€װ€p€$W€3€k€)€k€€8€Ǖ€€aM€€€G€€M\€€{ܛ€=€€kҝ€8€ v€M€)€ {€\ͣ€B€.€€€{€€k€\ҩ€G€ª€8)€€€fҮ€=€Wװ€€װ€R)\€€’3€p€)€k€3{€•€\€B€€€=€€€=€M €k€Ǜ.€€W€$€a͟€8€€€aҢ€B)€€€p€\קM€¨€=.€€ €k€R€)€€M€ܰ $.$Ͱ.€a€€ǒ€8€p€)€f€3v€ R€€€=€€3ܘ3€€B€W€€{€€B€v€€G€€fס€G€)€€€fܥR€Ǧ€B€.€€€v€€aܬR€­€8€{€€B€ܰ€€8€G€B)3€f€͒€8€p€)€f€.v€M€€3ח){Ҙ)י3€€€G €k͜3€€a͞3€ v€M€.€€€€fפM€¥€8$€€v€€f€Wͫ€G€3€€fͯ3װ€€B\€aR)€€8€k€͒€8€p€$€f€)€p€G€ܖ){͗€€p€˜€€p€Ǚ$ܚ€8€W€€€M€€\€Ǡ3€€€aף€G€.€€{€€f€Wͩ€G€€8$€€€p€M€€Ұ€M€p{vR€€=€k€Ғ€=v€$€a€$€k€=ז$€p€€€a€ €a€€€p€ǚ)€€B €kҝ€8€€kן€B€€fע€G€)€€€k€Wҧ€G€€8$€€€{€k€R€®3€ €k€ǰ€R{€€v€=€B€pҒ€=v€$€a€€€€f€€8͖€€fWW\€€€pқ.€W€€€W€)€€kܡ€G€)€ €€fץM€¦€8$€€{€k€\Ҭ€G€3€€W€ R€€f€Gvג €=v€€\€ܔ€\€.v€–€\€G€€€G€M€a€€{ܜ€B €pמ€=€{€R€.€ {€€aҤ€B€.€€{€€k€WҪ€G€«€8)€€€kׯ€=M€DZ€€Mvג €=€p€€W€ה€W€€)€p€R€€€=€€€8€€=€€M€f€ǜ)€W€$\€Ǡ3€€\ͣ€=$€ €k€Wͨ€G€3$€€€{€€fܮM€$€€€B€ױױ€M{ג €=€p€€W€Ҕ€R€ו€€f€B€€.Ҙ${ҙ)ܚ€8€€R€vם€= €pן€B€€€a͢€=€€v€\Ҧ€G€3$€€{€€k€Wͭ€B€.€ vܰ€8€€€ܱR{ג €=€pܓ€R€ǔ €Gҕ€\€€8җ€€p€˜€€k€™€€p€ǚ$ܛ€=€\€$€W€)€€fҡ€B€€€p€R€ǥ€=$€€v€€fܪRͫ€B€3€€ {€W€°${€€Rܒ €=€pܓ€M€”€B€Ǖ R€€)v€—€€aW\€€k€Ǜ$€€B €pҞ€8 vܠ€G$€€kܣM€3€v€€aרR€ǩ€=€.€€€€p€W€ǯ€8€€k€€€€Wܒ €8€k€ד€€G€€8{€€GҖ€€fR€G€€€G€W€€k͜.€€R€€€W€)€€pܢM€.€€€fܦR€ǧ€=)€€€€p€€a׭M€®3€W€€)R{Ғ3€a€͓€8€p€)€f€3v€R€€€8ט)ҙ)ך3€€€G€f€ǝ.€\€Ÿ)€€kס€B€€kܤR€¥€8€€ €k€\Ҫ€G€«€8)€€v€\Ͱ.ױ€3R{Ғ.€a€€Ǔ3€k€€€a€€$€k€B€ח)v€ǘ€€k€€€k€š€vқ.€€M€vמ€= v€€G€€€kף€G€.€€€k€Wͨ€B€3$€€{€€fܮR€ǯ€8€v€DZ €=R{Ғ.\€€“.€f€ܔ€W€ו€\€3{€Ǘ€€fWW€a€€vҜ3€W€€€W€)€€kע€G$€{€\Ҧ€G€.€€ €p€€a׬R€ǭ€=)€€W€=W{Ғ)W€€$\€Ҕ€M͕ R€ܖ$€k€R€€€B€€€=€€€G\€€vם€8€€f͟3€€pܡ€G$€€p€R€¥€8€€ €k€Wͪ€G€€8)€€v€€aҰ€8€€€8W{͒$W€€€W€€ǔ€B€€B͖€\€€=€ܘ.ҙ)ך.€€=€\€€€€G€{€R€$€€kܣM€.€€€k€W€Ǩ€B€.€€ v€€a׮R€ǯ€=€{ܱ.W{͒$R€€M€3€p€3v€M€€.{€ǘ€€k€€€f€€€p€Ǜ$€€=€€a€ž)€\€ .€€kܢ€G€$€v€\ͦ€B€)€€{€€f€WҬ€G€­€8$€€\€€W{€€ǒ€€M{ܓ€€B{€)€f€$€f€€8͗€€fRMR €f€œ€€€B €kҟ€8 vܡ€G$€€pܤM€¥3€v€€aשM€Ǫ€=.€€ €p€\Ͱ€8R{€€ǒ€€€Gvד€=€p€€W€ו€W€€)€p€R€€€=€€€8€€8€€€G€a€$€M€€R€$€€kף€G€)€ {€€aקM€¨€8$€€v€€fܭWͮ€G€3€€Rv€€’€€€B€k€͓3€f€ה€M€Ǖ €GҖ€\€€=ט)v€Ǚ€€p€ǚ€vқ.€€B€f€Ǟ)€\€ .€€kע€B€€€p€R€¦€8€€ €k€\ҫM€¬€8)€€€{€\€DZRv€€€€€8€f€€“)\€͔€={€€8{€M€ܗ)€p€˜€€aW\€€k€ǜ$€€B €kҟ€8€€pܡ€B€€fפ€G€)€€€kܨR€ǩ€=€.€€ v€€aܯM€°3€R€p€€€ 3€a€€€€R€3€k€)€k€€8€Ǘ€\€G€€€=€€€=€€M€a€$€€G€{€M€€aͣ€=€€p€W€ǧ€=)€€v€€fܬWͭ€B€3$€ {M€p€€ܒ.W€€€G{€$\€ו€W€ܖ$€k€G€€.ҙ$v͚${қ.€€B€a€ž)€W€$€€a͢€8€€€aҥ€B€)€€€p€\Ҫ€G€€8$€€€€kܰRM€k€ג$R{ד €=€pܔ€M€Ǖ€G€ǖ€W€€.{€ǘ€€f\\€€k€œ$€€=€€f͟3€€fҡ€8€{€W€Ǥ€8€€p€Wͨ€B€.€€€k€\׮M€ǯ€=$€G€fҒ€€G€p€͓.€a€͔€={€3v€€=͗€€aM€€€=€€€=€€€G\€€€€B €pנ€=€{€R€£.€ {€\Ҧ€B)€€€p€€a׫M€Ǭ€=.€€ €B€a€ǒ€€€=€k€€“€$W€.€f€€€a€)€p€€G€€.ҙ$v͚€vқ)€€=€\€€€M€€R€)€€p€R€¥3€€p€Wͩ€B€.€€ v€€fܯR€ǰ€B€a€€’€€€8€a€€€€G{€€W€͕ M€Җ€W€€.{€ǘ€€aWW €a€€vם€8€\€$€W€¡)€€kף€G$€v€Wͧ€=)€€v€€fܬRͭ€B€3$€€=\{€€€.Wܓ €8€k€ה€€G€€8v€€B͗€€a€G€€€8€€€8€€€B€R€€pҞ3€€a€Ǡ.€€kע€B€€fץ€G€)€€€k€Wͪ€B€3$€€{€€f€8Wv€ג$Mv€͓.\€€ǔ3€k€$€a€)€p€G€ܘ.{͙€€p€š€€p€Ǜ€{Ҝ3€€M€€pן€8€€pס€B€€\€Ǥ€8€€p€W€Ǩ€=)€€v€€f€WҮ€G€€83R€k͒€€B€k€€€€M€$\€ҕ€M͖€W€€.v€˜€\RMW €k€ǝ)€M€vܠ€B€€W€£.€ {€\ͦ€=$€ €k€Wͫ€G€3$€€€.€G€f€ǒ€€3\€€€=€pה€€G€€8v€€=€Ǘ€\€€=€ܙ.ך.ܛ3€€€B€a€ž$€M€€R€)€€pܤM€.€€€fܨR€©€8$€€{€€k€\ү)€B€a{€€€)R{ғ.€a€€ǔ3€k€€\€€$€f€=ט$€p€€€a€ €a€€€k€œ€{ܝ€8€\€Ÿ$€W€)€€fң€B€€€k€R€§€8€€ €k€Wͬ€G€€8)€$€=Wv€ג€€B€k€€“€€M€€W€͕ €G€ǖ M€ܗ$€k€R€€€B€€€=€€€B€W€€pҞ3€€a€Ǡ.€€fҢ€8€€\ͥ€=€€{€€aשM€ª€8$€€{€€k€€8R€k€ǒ€€€8\€€€=€k€ה €B{€.€k€3v€M€€3ҙ€€p€ǚ€€p€Ǜ€{Ҝ.€€M €kҟ3€€fҡ€8€{€R€.€€€€aҧ€G€.€€{€€fܬWͭ€G€€8€.€G€a€€€)R{͓)\€€”.€f€ܕ€W€ז€\€3{€ǘ€€aRMR €f€$€€B €pנ€= v€M€$€€kܥM€.€€p€\Ҫ€G€3$€€€)€B\{€€ג€€G€k€€“€€M€€R€Ǖ€B€–€Gҗ€€a€G€€3ܚ.ܛ€8€€€G€a€ž$€M€€R€$€€kפ€G$€{€\Ҩ€G€.€€ €p€\׮ $€8R€p͒€€€8\ܓ €8€k€Ҕ€=v€)€f€)€p€B€ט$€p€™€€f€ €a€€€f€œ€{ם€8€\€€€R€$€aͣ€8€€fצ€G€.€€€p€\ҫM€¬€8)€.€G€f€€€)Mv€͓$W€€$\€ҕ€M͖€R€ܗ$€k€R€€€B€€€=€€€B€R€€k͞.€W€$\€Ǣ3€ v€R€¥3€€k€R€ǩ€=)€€€{€k€)€=Wv€Ғ€€=€f€€€€€B€pה€€B€.€p€3v€M€€.{͙€€p€š€€k€›€v͜)€€B€f€ǟ.€\€ǡ.€€kܣ€G$€€p€R€ǧ€8€€ €k€Wͬ€G€€8€3M€f€’€ .R{ғ.\€€”.€f€ו€R€Җ€W€€.v€˜€\M€€€G€M\€€vמ€8€€f€Ǡ.€€fҢ€=€€€aͥ€=€€{€€aש€G€3$€€€€)€B\v€ג€€B€k€€€€€Gvܔ€M€€8v€8€— W€€€8י$v͚€v͛${ל3€€M€€pҟ€8€€fҡ€8€{€R€.€ {€€aҧ€B€.€€v€€fܬRͭ€ €€8M€k€ǒ€ .Wғ.€a€€ǔ3€fܕ€W€ז€€a€3{€ǘ€€aRMR €f€$€€B €kҠ€8 €pܢ€G€€€kץ€G€.€€€k€Wͪ€B€.€€ב€€)€B\{€ג€€B€k€€€€€G{€€M€•€8{€€=€Ǘ€\€€=ܙ.Қ${қ)€€8€W€vܟ€= €pܡ€B€€\€Ǥ€8€€kܧR€¨€8€€ €p€€a͑€€€3M€k€’€ .Wד3€a€€ǔ3€k€€\€ܖ€€a€€8͘€€fWR\€€k€ǝ)€M€vܠ€B€{€R€)€v€R€¦€8€€v€€aתM€«€8)€‘ґ€€)€=\v€ג€€B€k€€€€€G{€€M€•€={€€B͗€\€B€€.ך)כ.€€B€\€€€€G€{€M€€fҤ€B€€v€Wͨ€B)€€{€€€Ǒܑ€€.€G€f€’€.R{ғ.€a€€ǔ3€k€€\€ܖ€€f€€8͘€€f€ \W€a€€€p͝.€€R€{€€G€€W€£3€€{€\ͦ€=$€ €k€Wͫ€B€€͑€ €€8W€p€Ғ€€€=€f€€€€€Gv€€M€•€={€€B͗€\€B€€3ך.ܛ3€€€B€a€ž$€M€€R€$€€kܤ€G€)€ {€€aר€G€3€€€€‘ґ€€)€B€a{€€ܒ)Mv͓.\€€”.€fܕ€\€ܖ€€a€€8͘€€k€ \W €a€€vҝ3€€W€€€M€€€aͣ€8€€fצ€G€.€€v€€a׫M€€‘ב€€3M€k€ǒ€€€8€a€€€B€pܔ€€G€€8{€€=͗€\€B€€3ך.ܛ€8€€€G€a€ž$€R€€€W€¢.€€p€R€.€€€kܨR€ǩ€=)€€€€€Ǒܑ€€€8Wv€ג€€G€p€€Ǔ$W€)€a€ܕ€W€ז€€a€€8͘€€f€ \\ €a€€vם3€W€€€R€$€€fң€=€€kܦM€§3€€{€€k€€€͑€€)€B€a€€€ .Wܓ €8€k€ה €B€3v€=€Ǘ€\€€B€€3ך.ܛ€8€€€G€f€Ǟ)€R€€€\€Ǣ3€ v€W€ǥ€8€€p€\ҩ€G€3v€€͑€€.M€f͒€€€=€f€€€€M€$\€ҕ€R€Җ€\€3€ǘ€€f€\W €a€€vם3€\€$€W€)€€kף€B€€€p€W€ǧ€=$€€€p€f€p{€€ґ€€3R€p€ג$Mvғ.€a€͔€=v€.€k€€8{€— W€€=ܙ.ך.ܛ3€€€G€f€Ǟ)€€W€$€a€Ǣ3€{€\ͥ€=€€{€€aשM€ª€=W€a€k{€€ב€€€=\{€€€ 3\€€€Bv€€R€͕ €G͖€W€€.{€˜€€aWW€a€€vם3€\€$€W€¡.€€kܣ€G€$€v€\ͧ€B€.€€MR€a€k{€€‘ב€ $€B€a€ǒ€€€=€k€€“$W€”3€k€$€f€.v€R€€€8י)Қ)כ3€€€G€f€Ǟ)€€W€$€€a͢€8€€€aҥ€B$€ €k€Wͪ€=€GM\€fv€€‘ܑ€.M€kג$M{ד€8€k€ה€€G€•€=€–M€ܗ)€p€ \RR€a€€vם3€\€Ÿ$€\€¡.€€p€M€)€ €€aק€G€3€€.€8€=MW€fv€€Ǒܑ€3R€p€€€.\€€€€G€$€a€ܕ€\€€$€k€G€€.ҙ${͚${כ.€€G€f€Ǟ)€€W€)€€fҢ€=€€fץ€G€.€€€p€\€).€8€GR€a€p€€Ǒ€€€8W{€€’€€€=€k€€Ǔ)\€€ǔ€=v3v€€Bҗ€€k€WM€M\€€€pҝ3€\€Ÿ$\€ǡ.€ v€R€.€€€fܧR€Ǩ€=)€€€)3€BM€a€p€€Ǒ€€€=€a͒€€Gvד€8€pܔ€R€͕€M€ז€€a€=ט){͙€€p€ǚ€vқ)€€B€a€Ǟ)€€W€ )€€fҢ€=€€kܥM€3€€{€ €€)€8€GW€k€€Ǒ€€€B€aҒ)R€€€G€€)€f€$€f€3{€Ǘ€\€G€€€B€€€B€R€€k͝.€€W€$€\€¡.€v€R€.€€€k€R€Ǩ€=€ €$3€BW€k€͑€$€G€k€€ܒ 3€a€€“€)\€͔€B€€=€– R€€3͘€€k€€€f€€€k€Ǜ$ܜ€8€\€$€W€$€€fҢ€=€€kܥM€¦3€€€€€€€€.€=R€f€͑€ )M€p€€€€€B€p€ғ€8€k€€W€ҕ€W€€)€p€R€€€=€€€8€€€=€€M €f€ǝ)€R€€€\€¡.€ v€R€¤3€€p€\Ҩ€GҐҐאܐ€€ €)€=R€f{€͑€€.R{€€ǒ€€M{€€€G€.€k€.€p€€G€ח$€p€˜€€a €a€€f€›€{ל3€W€€€R€$€€fҢ€B€€€p€R€Ǧ€8$€€€€€ǐ͐Ґܐ€€€$€8M€a{€ґ€€3\Ғ)W€€$\€͔ €G€•€G€Җ€€a€G€€3ܙ.ܚ€8€€€G€a€$€R€€€\€¡.€ v€W€Ǥ€8€€v€€aר€€€ǐҐܐ€ €3€G€a{€ґ€€8€aܒ €8€f€͓3€k€€\€ܕ€€a€€8͗€€fWW€a€€€pҜ.€€W€€€R€$€€fҢ€B€€€p€Wͦ€=)€€€€€€ǐҐ€€.€G€a{€€ב€€B€f€€€€€Bvܓ€€G€3€p€8{€– R€€€8ט){ҙ${Қ.€€B€\€$€M€€€\€¡3€ {€W€Ǥ€=€€ {€€f€€€€€͐ܐ€€)€B\{€€ב€€G€p€€’€€M€€W€͔ €G€Ǖ€R€€)€p€ WM€MW€€k͜)€R€€R€$€€fע€B$€v€\Ҧ€G€.{{{{€€€Ґ€€)€B\{€€ܑ$Mv€͒)\€€“.€k€€\€€$€k€B€ܗ){͘€€p€™€€p͚$ܛ€8€W€€€M€€W€¡3€€{€\ͤ€=$€€€f€f€f€f€k€p{€€€͐ܐ $€=\{€€ܑ)R{ג€8€f€ғ €B{€3v€€=͖€€aM€€€B€€€B€€M€f€œ$€M€€M€$€€fע€G$€ {€€aצM€§WRRRW\€a€kv€€€א€€€=\{€€€ .W€€€Bv€€R€͔ €G͕€W€€3͗€€k€€€a€€€f€š€vқ3€€R€{€€G€€W€¡3€€€€aҤ€B€)€€€B€=€=€=€B€GMR\€fv€€Ґ€€€=W{€€€ 3€a€€€M€€)€f€€€a€.v€R€€€=€€3ܙ3€€€B€\€€€€G€{€M€$€€kע€G€)€ €€fܦR..))).3€=€BM\€k{€͐€€€8W{€€‘€€€=€f€€’)\€€Ǔ€=v3v€€G€ז$€p€ \W\€€€k͛)€M€vܞ€G€€W€ǡ3€€€aפ€G€.€€€€€€€€$)3€BM\€p€€ǐ€€€8W{€€Ǒ€€€B€p€͒3€f€ד€M€ǔ M€ҕ€€a€=€ܗ.Ҙ${ҙ)ܚ€8€W€{ܝ€B€v€M€$€€kע€G€)€€€k€  €€)3€BR€f{€€ܐ€€8W{€Ǒ€€€Gvג €=v€$\€ܔ€€a€3{€–€\M€€G€R€a€›€€€G€vܞ€B€€W€ǡ3€€fפM€¥3€€€€€€€ €$€8€G\€p€€א€€8W͑$R€€M€3€p€3v€M€€.{͗€€p€˜€€k€™€vҚ.€€M€vם€= v€€G$€€kܢM€.€€p€׏׏ҏҏҏҏ׏€€€ €)€=R€f€Ґ€€3\ґ)W€€$\€͓ €G€”€G€ו€€fM€€€=€€€=€€€B€\€€{ܜ€= €pמ€=€€W€ǡ3€€kܤR€ǥ€=͏€€€€€€€€͏׏€€ €3€G€a{€͐€€3\ב.€a€€’.€f€ܓ€W€ה€€a€€8͖€€k€ €a €a€€€k€ǚ$€€B €kҝ€8€ €pܟ€G€€€kܢM€3€€€€€€ҏ܏€€)€=W€p€͐€€3\ܑ €8€f€Ғ€=v€)€k€3v€ R€€€8ܗ.ט.ܙ€8€€R€€pҜ€8€€kҞ€=€{€W€ǡ3€€p€Wͥ€€€€€€€ҏ€€€€8R€k€ǐ€€€8\€€€=€pܒ€M€“€=€”€G€ו$€k€ WMR€a€€{ܛ€=€€f͝3€€pܟ€G€€€k€R€£€8€€{v€p€p€p€pv{€€ҏ€€.€G€f€ǐ€€€8€a€€€€G{€€W€ғ€R€ה€€a€€=ז$v€Ǘ€€p€ǘ€vҙ.€€G€k͜3€€f͞€8€{€W€ǡ€8€€p€\v€k€a\WWWW\\€f€kv€€Ǐ܏€ $€B€a€€€€8€a€€€€R€.€f€$€a€3{€• W€B€€€=€€€B€W€€pқ3€€a€ǝ.€€kן€G€€€p€R€ǣ€8$€aWM€B€B€=€=€=€=€B€GR\€f€p€€ҏ€€€=\{€€€€€=€f€€‘$\€€ǒ€=v3v€€G€ܕ)v€–€€f€ €a€€€k€™€ܚ€=€€a€ǜ.€€a͞€8€{€W€ǡ€8€€v€€G€=3.)$€€$$.3€=€GR€a€p€€Ǐ€€€8W{€€€€€=€k€€Ǒ.€f€Ғ€€G€Ǔ€GҔ€€a€B€€3ח.ܘ3€€€G€f€Ǜ.€\€.€€kן€B€€€p€Wͣ€=3)€€€  €€€)3€BR€av€׏€€.Rv€€€€€=€k€͑€8€kܒ€W€ד€W€€.v€•€\M€MW€€k͚.€€R€€€W€ž.€v€R€¡3€v€€€€€€€€ €$.€BR€f€͏€ )M€p€€€€€B€pב €=v€)€f€)€p€B€ܕ)v€ǖ€€k€—€€p€ǘ${י€8€W€€€M€€€a͟€=€€k€R€ǣ€=€€܎׎ҎҎ͎ҎҎ׎€€€€3€G\€p€€$€G€p€€€€€Gvܑ€M€€8v€€=͔€\€G€€€8€€€8€€€G€a€š$€M€€R€)€€p€R€¡3€€€€Ҏ€ǎ€Ž€€€€€Ž€ǎҎ€€€$€8M€f€€܏$€G€p€€€€M€€W€͒ €G€Ǔ€R€€.v€•€€a\€a€€€p͙)€M€{€€G€€a͟€=€€p€Wͣ׎€ǎ€€€€€€€€€͎܎€€)€B\v€׏€€G€k€€€€R€€)€a€ܒ€W€ܓ$€f€G€€.Җ){җ)ܘ€8€W€€{€€B€{€R€)€€p€R€ǡ€8€€€€{{v{{€€€€ǎ܎€€€8R€p€ҏ€€B€k€€ǐ$W€‘3€p€)€k€€8€ǔ€€aM€€€G€M€a€€€€B€vܜ€B€€\͟€=€€v€\€{€p€f€a\\\\\€a€f€p{€€͎€€)€G€f͏€€€B€p€€ǐ.€a€͑€={€€8{€“M€€.{€Ǖ€€k€€€k€—€vҘ.€€G€€pכ€=€v€M€)€v€W€ǡ€=${€k€aWM€G€B€=€=€=€=€B€GRW€f€p€€Ҏ€€€=\€Ǐ€€€B€p€͐3€f€ב€M€ǒ M€ד€€f€G€€€8€3€€=€W€vך€=€€pל€B€€\͟€=€€v€v€aR€G€83)$€€€€$).€8€BM\€p€€Ž܎€€8W{€€Ǐ€€€B€p€Ґ€8€p€€\€ג€\€3{€ǔ€€aWW €f€˜€ܙ€=€kқ€8€ v€M€$€v€W͡€B\€G€8)€€  €€.€8€G\€p€€Ҏ€€.Rv€€€€€Gvא €B{€)€f€.€p€M€€.ҕ$v͖${ח.€€G €k͚3€€fҜ€=€€\͟€=$€ {€B.€€€€€€܍܍€€€€ €$€8€G€av€€ǎ€)M€p€€€€€Gvܐ€M€€8v€€B͓€€aM€€€B€€€G€W€€pҙ3€€a€Ǜ3€€pܝ€G€$€v€\ҡ€B)€€܍ҍ€Ǎ€€€€€€€Ǎҍ׍€€€$€8M€f€€܎€€G€k€€€€M{€€R€͑ €G͒€W€€.{€ǔ€€f€€€a€€€k€—€ܘ€=€€a€ǚ.€€a͜€8€€\͟€=$€ €€׍€Ǎ€€€€€€€€͍܍€€)€=Wv€Ҏ€€B€k€€€€M€€$\€ב€W€ܒ$€k€G€€3ܕ.ܖ3€€€G€f€Ǚ)€\€›.€€kܝ€G€$€{€€aס€܍͍€€€{{{€€€€Ǎ׍€€3M€k͎€€€=€f€€€€R€.€k€$€f€€8€Ǔ€€aRR\€€pҘ.€W€$€a€ǜ3€€\ҟ€B)€׍€€€v€k€f€a\\\\€a€f€pv€€€׍€ $€=\€€Ž€€€8€f€€€$W€€ǐ€8v€8{€M€€.{͔€€p€Ǖ€€p͖$ܗ€8€\€$€W€)€€kם€G€$€ {€€f€€€p€fWM€G€B€=€8€8€8€=€B€GR\€k{€€Ǎ€€3Rv€€€€€8€f€€)€a€͐ €G€‘€GҒ€€a€G€€€=€€€=€€€G€a€˜$€R€€€\€ǜ3€€€€aҟ€B€.v€fW€G€8.)€€€€€€€$.€8€GR€av€€ҍ€ )M€k€€€ €8€f€€Ǐ.€f€א€R€ґ€\€€.{€Ǔ€€f\€a€€€p͗.€R€€R€$€€fם€G€)€€€p\€G€8)€€ €€.€=M€av€€€€€B€f܎ €8€f€͏€8€p€€€a€€)€k€G€€.Ҕ){ҕ)ܖ€8€W€€€€G€€W€œ3€€€€aן€G€€kR€=)€ €€܌׌ҌҌҌҌ׌܌€€€)€8M€f€ҍ€€8€a܎ €8€k€ҏ€=v€.€p€8€ǒ€€aM€€€G€M€a€€€€G€{€€G€€fם€G€)€€M€8€€€܌Ҍ€nj€€€€€njҌ€€€$€=R€p€Ǎ€€3\܎ €8€k€׏€€G€€=€‘M€€.{€Ǔ€€k€€€f€€€p͖)€€G€vܙ€B€{€R€œ.€€€€fןM3€€܌͌€€€€€€€€€nj׌€€)€B€a{€€€.W܎ €=€p܏€R€͐ M€ґ€€a€B€€3ܔ3€€=€R€vט€= €pܚ€G€€fם€G€.€€€€Ҍ€€€{€p€k€k€f€f€k€kv{€€€ŒҌ€€3R€p€׍)R܎€€Bv€€\€א€\€€.{€’€\RR€a€€{ܗ€=€kҙ€8€{€R€.€€€fܟ€€nj€€{€p€aWRM€G€B€B€B€GMW\€kv€€׌€ )€B€fҍ$R{܎€€B{€)€f€)€p€B€ܒ){͓€€p€ǔ€vҕ)€€G €k͘3€€kך€B€€fם€G€.܌€Œ€€k\M€B€8.)$€€€$).€8€BM\€p€€Œ€€€8\͍€M{€€M€3v€=€Ǒ€\€B€€€=€€€B€R€€pҗ3€€f͙3€ v€R€.€€€k€v€aM€=.€€  €€)€8€G\€k€€Ҍ€€3W{͍$R€€W€͏ €G͐€R€€.{€ǒ€€f€€€f€€€k€Ǖ$€€B€kҘ€8€ €pܚ€G$€v€W͞€=€€kW€=.€ €€€܋׋׋׋׋܋€€€€.€B\€p€Œ€)Mv€€Ǎ$R€€$€a€׏€W€ܐ€€f€G€€3ד.ܔ€8€€M €kҗ3€€fҙ€8€€\͜€=€€€fM€8€ €܋ҋ€Nj€€€€€‹͋׋€€.€G€a{€€׌€€G€p€€€$W€.€f€$€f€3{€Ǒ€€aRR\€€vז€8€€a€ǘ.€€kך€G$€v€\Ҟ€f€G.€€׋€Nj€€€€€€€€͋܋€€3M€k͌€€€=€k€€€$W€Ž€8€p€3v€€G€ܑ){€ǒ€€p€“€€p͔$€€=€€a€Ǘ)€€a͙€8€{€\͜€=$€€G)€€͋€€v€p€k€f€f€f€f€kv{€€Nj܋€ $€=\{€€Œ€€€8€f€€)\€͎€B€€B͐€\€B€€€8€€€=€€M€f€ǖ)€\€˜)€€kך€B$€{€€a) €׋€€v€f\RM€B€B€=€=€B€GMR\€k{€€‹܋€.R€p€€€ €8€a€€)€a€Ҏ€M͏€R€€)v€‘€€aW\€€€pҕ.€W€$€\€Ǚ3€€{€\͜€B) €ҋ€€v€aR€B€8.$€€€€€€$.3€BM\€p€͋€$€B€f܌3€a€€.€f€܎€W€܏€€f€Bܑ){͒$vғ)ܔ€=€\€€€R€$€€fך€B$€ {€€͋€€fR€B.$€ €€ €$3€GW€k€€׋€€8\׌3€a€€Ǎ3€p€$€f€3v€ W€G€€€B€€M€a€•$€M€€W€™.€ {€\Ҝ€B€͋€v\€G3€€€€܊׊Ҋ͊͊͊͊Ҋ܊€€ €.€BW€p€Nj€ .W{Ҍ3€a€͍€=v€3v€€Bא$€p€€€a€ €a€€€p͔.€M€{€M€€fҚ€B$€ €€pW€=$€€܊͊€Š€€€ŠҊ€€€.€B€a{€€܋$MvҌ3€f€ҍ €B€€B€Ǐ€W€€=ܑ.ג.€€8€W€{€€G€€R€™.€ {€€aҜ€G€€pR3€€׊€NJ€€€{{€€€Š׊€€3M€kҋ€€G€p€Ҍ3€f€׍€M͎ R€܏$€k€WM€M€a€€€€B€vܗ€G€€fҚ€B€)€€€pR3€€͊€v€k€a\WWWW\€a€f€p{€€Ҋ€€€=\€Nj€€€B€p€͌€8€k€€W€׎€€a€€8Ґ€€p€‘€€k€’€€p͓)€€G €pז€=€{€R€.€€€€aלR.€׊€€€p€aR€G€=€83...3€8€=€GR\€k€€׊€€.R€p€€€€€=€k€Ҍ€8€p€$€f€.€p€M€€€8€3€€=€€R€€pו€8€€pח€B€€fך€G€.€3€€Ҋ€€€p\€G€8.€€€  €€)3€BR€f{€€Š€€€B€f€€€€€=€k€Ҍ €={€.€p€=͏€€fWW€a€€{ה€=€€f͖€8€ v€M€.€€€f€€͊€{€aM€8$€€€€܉܉܉€€€€ €)€8M€a{€Ҋ€€€8\܋ €8€k€׌€€G€€=€Ž R€€3͐€v€Ǒ€v͒)€€B€f͕.€€fҗ€=€€fך€G€.€͊€€pW€=)€€€׉€lj€‰€€€€€lj҉܉€ €€8M€f€Š€ .W׋ €8€k܌€M€Ǎ M€׎€€f€G€€€=€€€=€€M €k͔.€€a€ǖ.€€p€M€.€€Ҋ€kR3€€܉͉€€€€€€€€͉€ €€8Wv€׊$M{׋ €=€p€€W€׍€\€€.{€Ǐ€€a\ €a€€vғ3€\€•)€€a͗€8€€fךM€€kM.€€€lj€€{€p€k€f€a€a€a€f€k€p{€€lj܉€ )€B€a͊€€Gv׋ €=v€$€a€€$€k€B€܏.Ґ${ґ)€€=€\€”$€W€–)€€pܘM€.€€€€k€G) €҉€€€p€aWM€B€=€8€8€8€=€=€GMW€fv€€‰܉€3W{€€Š€€€Bv׋ €B{€.€k€€8{€ǎ€\€G€€€B€M€f€Ǔ)€R€€\͗€8€€fܚR€k€G$€€lj€€kW€G€8.$€€€€€€€€$.€8€GW€k€€lj€$€G€k€€€€€B€p׋€€G€€8{€€G€܎$v€€€f€€€f€€vҒ.€€R€€€R€)€€kܘM€3€M)€€‰€p\€G3$€€€€€€€€€€€.€=R€f€€׉€€=€a€€€=€p܋€M€nj€G͍€\€€=܏.א.€€=€W€€€€G€€\€Ǘ€8€€k€)€€€€fM€8€€€€҈͈€ˆ€€€€€€ˆ͈׈€€€$€8R€k€lj€ 3\܊€€=€p€€W€Ҍ€R€܍$€p€ WMR€a€’€€€G€{€M€$€€kܘM€™3 €€€{\€B)€€׈€ˆ€€€€€€€€€€ˆ҈€ $€=Wv€€܉)R܊ €=v€€\€܌€€a€€8Ҏ€€p€€€k€€v͑)€€G€vܔ€B€€W€Ǘ3€€p€€‰€{W€8€€׈€ˆ€€{€p€k€f€f€f€k€kv{€€Lj܈€)€G€f҉€M{܊€€B{€)€f€.v€R€€€8€3€€=€R€vד€= €pܕ€G€€€k€R€™€8€‰€vW3€܈€ˆ€v€fWM€G€=€=€8€8€=€=€GMW€fv€€ˆ܈€3Rv€€‰€€€B€p׊ €B{€.€p€=͍€€aRR\€€vג€8€€f͔€8€ v€R€—3€{R3€€҈€€€p\M€=.$€€€€€€€€$)€8€GW€f{€€Lj€$€G€k€€€€€=€p׊€€G€€={€ŒM€€.{͎€€p€€€p͐$€€=€€f€Ǔ.€€kҕ€=€€kܘM€™W3€€͈€v€a€G€8$€€€€€€€€€ €)€8M€f{€҈€€€8€a€€€=€p܊€M€Nj€GҌ€€a€B€€€8€€€8€€M €f͒.€€a€ǔ3€v€R€—3€\3€€€Lj€kR€8$€€܇҇€LJ€‡€€€€€€‡€LJ҇܇€ €3M€f€€ˆ€.W܉ €=€p€€W€ҋ€W€€)v€€\W\€€€pґ3€\€“)€€a͕€=€€k€R€8€€€ˆ€a€G)€€҇€‡€€€€€€€€͇܇€€€8R€p€׈$M{׉ €=v€€\€܋€€f€=׍){͎€v͏$ܐ€8€\€$€W€”.€€p€R€—3€€€€Lj€{\€=€€҇€€v€k€f€a€a€a€a€f€kv€€€‡ׇ€$€=€a€Lj€€€Gv׉ €=v€)€f€.v€ W€€B€€€=€€€G€a€‘$€R€€€a͕€8€€p€€Lj{W€8€܇€‡€€p€aWM€B€=€833€8€8€B€GR€a€p€€ׇ€€.M€p€€€€€B€p׉ €B{€3v€€BҌ€€k€ \ €a€€€p͐)€M€€R€)€€p€R€—€8҈{W3€€҇€€€p\€G€8.€€€ €€€$3€=R€av€€‡܇€€B€f€€€€€=€p׉€€G€€=€Nj R€€€8׍){Ҏ)܏€8€€R€{€€G€€\€Ǖ€8€€pW3€€€LJ€v\€G3€€€€€܆܆܆€€€€€3€G\v€͇€€3\܈ €=€p܉€M€NJ M€׋€€fM€€€B€€€G\€€{€€B€{€M€$€€p€R€Ǘ€8\3€€€‡€fM3€ €׆͆€†€€€€dž҆€€€.€G€a{€€܇)R{׈ €=€p€€W€׊€\€€3{€nj€€f€€€a€€€k€Ǐ$€€G €pג€B€€\€Ǖ€8€€€f€8€€€‡€{\€B$ €͆€€€€€€†҆€€.M€f҇€€Gv׈€=€p€€€a€€$€k€G€€3׍.܎3€€M€€pב€8€ €pܓ€G$€€p€W€Ǘ€B€€€‡€{W€8€€͆€€v€k€a\WWWW\€a€kv€€͆€€€8W{€€‡€€€B€p€҈€=v€)€k€3{€Nj€\M€M\€€vא€8€€kҒ€8€{€W€Ǖ€8€€€€€LJ€vR.€€׆€€{€fWM€B€83.))..3€=€GW€av€͆€$€G€k€€€€€=€k€҈ €B{€3v€€G€܋$v€Œ€€k€€€k€ǎ$܏€=€€f͑3€€kד€B€€v€W͇€vR. €€dž€{€fR€=.€€ €€$3€BW€k€€׆€€8\܇ €8€k€׈€€G€€B€NJ€W€€=€€3܍€8€€€G€f€ǐ.€€a͒3€ {€W€Ǖ€=$҇{R)€€†€kR€8$€€€ׅׅ҅҅҅҅҅€€€)€=R€k€†€.R{ׇ€8€k€׈€M€lj M€܊$€k€WRW€€p͏.€\€‘)€€fғ€B€€v€W)܆€€{\€B)€€ׅͅ€€€Džׅ€ $€8W€p€҆€€Gv҇€8€k܈€W€׉€\€€8ҋ€€p€Œ€€p€Ǎ${׎€8€\€$€\€’.€ {€W͕€=\.܆€€€pR3€€҅€€€{vvvv{€€Dž܅€ $€=\€dž€€€B€p€͇€8€p€€€a€€)€p€M€€€=€€€8€€€G€a€$€R€$€€fғ€B$€{€f€8 €€€€k€G) €ׅ€€v€f\RM€G€G€G€GMW\€fv€€ׅ€€.M€p€€€€€=€k€͇€8€p€)€k€€8͊€€fWW€€k€ǎ)€M€€W€.€ {€\͕€B€=€€€€€f€B€€€Dž€€kW€G€=.)€€€€€€$.€8€GW€f{€€܅€€=€a܆€8€f€͇€={3v€€G€€.{͋€v͌${׍3€€R€{€M€€aғ€B$€ €€€€€f€B€ׅ€€€kR€=.€€€€€€€ €$3€G\v€€Dž€ .R{҆3€f€҇ €B€€B͉€\€G€€€=€€€B€W€€{€€B€{€R€)€ {€\ҕ€†€€k€B€҅€€pW€=)€€€ׄ̈́€DŽ€„€€€€„€DŽ̈́ׄ€€.€B\v€ׅ€€Gv€͆3€f€҇€M€Lj R€܉)€p€Š€€a\€€f€$€€B €pܐ€B€€€aғ€B$€͆€€p€B€€ͅ€f€G.€€ׄ€DŽ€€€€€€€€€€€„҄€€)€G€a€Dž€€€=€k€€dž.€f€ׇ€R€׈€€a€€=׊){ҋ${׌.€€G €p׏€= v€M€)€ {€€a{€G€€€Dž\€=€€҄€€v€k€f€a€a€a€f€f€p{€€DŽ€€3R€p€€€ €8€f€€dž3€k€€\€€)€p€R€€B€€€G€W€€p׎€8€€kҐ€=€€€aғ€B)R$ͅ{W3€ׄ€€€k\R€G€=€83333€8€B€GW€a€p€€DŽ€€€=€aׅ3€a€€dž3€p€)€k€8͉€€k€€€a€€€f€Œ€{܍€8€€f͏3€€pܑ€G€)€ {€\)ͅ{R. €̈́€{€fR€B3$€€  €€$3€BR€f{€̈́€ .R{҅.\€€dž€8v€3v€M€€3׊)׋.€€B€f€ǎ.€€f͐€8€€€aғ€B€€8ׅ{R)€€„€€kR€8)€€€܃׃׃׃׃܃€€€$3M€a{€€ׄ€€G€p€€Dž)\€͆€={€€B͈€€aM€€G€R €k͍.€\€.€€kܑ€G€)€€€܅R)܄€€v\€=$€€׃̓€€€ƒ҃€€€3M€f€DŽ€€€=€f€€…)\€͆ €G€LJ R€€.v€lj€€f€€€f€‹€v׌3€W€$\€ǐ3€€€aד€G€€W)ׄ€€kM.€€̓€€€{vvv{€€€҃€€3R€p€€€ 3€a€€…)€a€׆€R€ׇ€€a€B€€3܊3€€=€\€$€R€$€€kב€G€)€€€…€\.ׄ€f€B$€̓€€€p€a\RM€G€G€GMRW€a€p{€€̓€€€=€aׄ.\€)€f€܆€\€€)v€ WMR €f€Œ$€M€€W€3€€€€fד€€f€8 ܄€a€8€׃€v€aR€B€8.$€€€€€€)3€=M\€p€̓€ .R{€̈́$W€.€k€$€k€=҈$€p€‰€€k€Š€vҋ.€M€{€M€€fב€G€.€v€B€€\€8€€̓€v€a€G€8$€ €€€€€€€€)€=R€f€€׃€€B€k€€„€$W€…3€p€3v€R€€€8€3€€=€W€{܍€B€€R€.€€€fM€€€\3 €€ƒ€fM3€ €܂҂€ǂ€‚€€€€€‚€ǂ҂܂€ €€8M€k€ǃ€€€8€a€€€€R€…€={€€B҇€€fWR€a€€€€B v܎€G€€fב€G€.)€€€€a3 €€€vW€8€€܂͂€€€€€€€€ǂׂ€€€8R€p€€܃.\€€€W€€Dž€B€dž R€€.{͈€€p€lj€v͊)€€G €p׍€=€{€R€.€€€DŽ€€f€8 €€€€pM.€܂€‚€€p€k€a\\\\€a€f€p{€€҂€€€=€a҃$R€€W€ͅ€M€׆€€a€G€€€8€€€=€€R€€pҌ€8€€k׎€B€€fבM€ׄ€p€=€€€€€f€B€€€ǂ€€p€aR€B€=3.))..3€=€GW€fv€€҂€ .Rv€€ǃ€€M€$\€ׅ€\€€.v€‡€\W€a€€v׋€8€€f͍3€ v€R€.€{€G€€€€€f€=€ׂ€€€kW€B3$€ €€$3€BW€k€€ׂ€€B€f€€€€M€)€a€$€f€=ׇ){͈€v͉)€€=€€a€nj.€€fҎ€=€€kܑMR€€€€€a€8€€͂€pW€=)€€܁ׁҁ́́́́ҁ܁€€€$€8R€k€ǂ€ 3\€€€G€€.€k€3v€ R€€B€€€=€€M€f€Nj)€\€.€€p€M€3€€a)€ƒ€€f€8€€€‚€€a€B)€€ׁ€ǁ€€€€€€€́€€€€8R€p€ׂ)R€€M€3v€€B҆€€k€ \€a€€€p͊.€W€$€a͎€8€€kܑ€8̓€€k€=€€€€vR3€€́€€v€p€k€k€k€k€p{€€€ҁ€€€=\͂€M{€€M€„€=€… R€€3҇${҈)܉€8€W€€€W€)€€p€R€3€׃€p€=€€€€€k€G$€́€€{€k\R€G€B€=€8€8€=€B€GR\€k{€€ҁ€ )M€p€€€€€Gv€€R€DŽ M€҅€€fM€€€B€€€G€a€€€M€€\€ǎ€8€€p€{€G€€€€€f€B€܁€€p\M€8.€€€ €€€)€8€G\€p€€ׁ€€=€a€€€Bv€€W€҄€W€€.v€dž€€f€ €a€€€k€lj)€M€{€M€$€€p€R€€8€R€€€€€f€=€€́€v\€B.€ €€€܀׀׀܀€€€€)€=R€k€€.W܂ €=v€€\€܄€€f€B€܆.҇)܈3€€R€v܋€B€€W€ǎ€8€€\)€‚€€f€8€€€€a€G.€€܀̀€€€€€ǀҀ€ €€8R€p€ҁ€Mvׂ €=v€)€f€.v€ W€G€€€G\€€{܊€B v܌€G€€€p€R€ǐ€k3͂€€f€8€€€€vW€8€€Ҁ€€€{{v{{€€€׀€€€=\{€€€€€B€p€҂ €=v€.€p€=҅€€p€€€f€€€k€Lj$€€B €kҋ€=€{€W€ǎ€8€€€B ׂ€€p€=€€€€€k€G) €Ҁ€€€p€fWRM€G€G€GMRW€a€p€€Ҁ€$€G€k€€€€€=€k€҂ €B{€€8{€„ R€€€8܆.܇3€€€G €kҊ3€€k׌€B€€€p€W€€v€B€€€€€f€B€܀€v€aR€B3)€€€€€€€)3€=M\€p€€Ҁ€€€8\ׁ€8€f€҂ €G€ƒ€G҄€€fRMW€€p҉3€€f͋3€ {€W€ǎ€8€€€M€€€€a€8€€̀€v\€G3$€ €)€=R€k€€€)Mvҁ3€f€ׂ€M̓€R€€.{€Dž€€k€€€k€‡€{׈€8€€a€NJ.€€fҌ€B€€€p€€ǂ€W$€€€€a€8€€€€€€f€G.€qqffq{ €€8R€k̀€€€B€k€́3€f€܂€W€׃€€f€B€€3܆3€€€B€a€‰)€\€Nj.€ v€W€ǎ€8€f3€ǁ€€f€8€€€€vW€8€fR3    3Hf€€8Wv€€€ €8€f€€ǁ.€f€€\€€)v€ WMR €f€Lj)€R€€€a͌€=€€p{€=ҁ€€k€8 €€€€k€G) {R) ~~~~~~~~~~~~Hq€€B€a׀.€a€€3€k€)€k€=҄€€p€…€€k€†€v҇.€€R€€R€)€€p€R€ǎ€8R€܁€p€=€€€a€=€{H~~~~q~f~R~H~=~=~H~R~\~q~~~~~ 3f .R{̀)\€€€8€p€3v€R€€€8܅3€€=€W€€{€€G€€\͌€8€€$€{€G€€\€8€\~~~q~H~)~~~}}}}}}} ~~3~R~{~~~3q€€B€k€€€$W€€ǁ€={€€B̓€€fRR€a€€€€G€{€M€$€€p€W€ǎ€R€€€\3 =~~\~3~ ~}}}}}}{}{}{}}}}}}}~=~f~~~ H€€8€a€€€$W€€ǁ€B€ǂ R€€.{̈́€€p€…€v͆)€€G€€p׉€B€€\€nj€8€€ҁ€\$€€\.q)~~f~3~~}}}q}R}=})}}}}}})}=}R}f}}}}~3~f~~~f.W€€$W€́ M€҂€€a€B€€€8€€€=€€R€€p׈€8€ €p܊€G$€€p€W€k3€€€€a.\~~H~ ~}}{}R})} }|||||||||||}}H}q}}}~3~q~~H$R€€$\€ׁ€W€€)€p€ \W\€€vׇ€8€€f҉€8€{€W€nj€8€€B̀€€f3R~q~)~}}{}H}}||||{|f|\|R|R|R|\|f|q|||||}3}\}}} ~R~~~3€M€$€a€€€€f€€=׃$v€DŽ€vͅ)€€=€€f͈3€€k׊€B€€v€R€܀€k€8R~\~~}}R}}|||f|H|3|| |{{{{{| ||3|R|{||||)}f}}})~q~~q€M€€)€f€.v€R€€€=€€€=€€M€f€LJ.€€a€lj3€ {€W͌€=)€{€B€R~~R~~}q}3}|||\|3| |{{{{{{{{{{{{{{|3|\|||}=}{}} ~\~~ f€€G€3€p€=͂€€f\\€€€p͆.€\€ˆ)€€fҊ€B€€v€€M€\~H~}}\}}||\|)|{{{{q{R{={3{){){){){3{={R{f{{{{{)|\|||}R}}}H~~~\€€G€€8{€M€€.̓$v̈́$܅€8€\€$€W€‰.€ {€\͌€=Ҁ€\$f~H~}}H}}|q|3||{{q{H{){ {zzzzzzzzzz{{={f{{{{)|f|||3}}}3~~~R€M€€€Ǵ€€a€G€€€=€€€G€a€$€R€€€aҊ€B$€€k.{~H~}}=}||\||{{q{={{zzzz{zqzfz\z\z\zfzqzzzzz{){R{{{|=|||}q}}~{~~R€R€̀€R€܁)€p€‚€€a\€€€k€Dž)€M€€R€)€ {€\͌€B)~R~}}3}||H||{{{={ {zzzfzHz3zz zzyyzzzz3zRzqzzzz{R{{{|\||}\}}~{~~R€W€׀€€a€€=ׂ){҃$ׄ3€€R€{€€G€€€aҊ€B$€R€=~\~}}3}||3|{{\{{zz{zRz)zzyyyyyyyyyyyyy z3zRzzzz){f{{{H|||H}} ~q~~R€€a€€)€p€R€€€B€€€G€W€€{܆€B€{€M€)€ {€\)\~q~ ~}=}||)|{{H{{zzRzzyyyyfyRyHy3y3y3y3y3yHyRyfyyyyyzRzzz{={{{)|||=}} ~q~~\)€k€€8́€€f€ €a€€€f€„€€€B €pׇ€B€€€aҊ€B${~~}H}||)|{{{3{zz\z)zyyyfy=yy yxxxxxxxxxyy=y\yyyyzRzzz{q{{|q||3}} ~{~~f3v€M€€3҂)׃.€€G €k҆€8€ €p܈M€)€ {€)~3~}R}||)|{q{{zz=zzyy\y)yyxxxx{xqxfxfxfxqx{xxxxxxyHy{yyy)zqzz{R{{|f||)}} ~{~~q€=€ǀ€\€G€€€G€R€€p҅3€€f҇€8€€€aҊ€BR~R~}f}}|)|{q{{zqz)zyyfy3yyxx{x\x=x)xx xxxx xxx3xRxfxxxxyHyyyzHzzz={{{\||)}}~~ M€܀)v€€€f€€€f€ƒ€{ׄ€8€€a€dž.€€k܈€G€)€ {~{~}}}|3|{q{{zfzzyyHy yxxfx=xxwwwwwwwwwwwwwx)xHx{xxxyRyyy)z{zz){{{R||3}}~~€\€€=܁.ׂ.€€B€€a€…)€€a€LJ3€€€aҊ€B~~})}|H|{{{{z\z zyqy)yxxqx=x xwww{wfwRwHw=w3w3w=wHwRwfw{wwww x=xqxxx)yqyyzfzz{{{R||3}})~~3$€k€R€G€R €f€DŽ)€W€)€€k׈€G€)€€H~}H}|\|{{{z\zzy\y yxxHx xww{w\w3wwwvvvvvvvvww3wRw{www x=x{xx yRyyyRzz{{{{R||=}}=~~R3̀€€k€€€f€€v҃.€€W€€€W€‡3€€€€a׊}q}|{||{){z\zzyRyyxfx)xww{wHwwvvvvv{vqvfvfvqv{vvvvvvw=wfwwwx\xxx=yyyHzz {{{{\||R}}R~~q€G€€3܁.€€=€W€€€M€€€f׈€G€)€}}||{={zfzzyHyxxRx xwwHwwvvvqvRv=v)vv vvv vvv3vHvfvvvvw3wqwww3x{xxy{yy=zz {{{{f||f}}q~€\MR€a€€€€G€€R€‡.€€€€f3}|3|{={zfzzy=yxx3xww\wwvv{vRv)vvuuuuuuuuuuuuuv=vfvvvw=w{wwx\xx yfyy3zz {{{{q||{}~~$v€€€€k€€€p͂)€M€{€€G€€f׈€G€.|\|{\{z{z zy=yxx)xww=wwvvHvvuuuufuRuHu3u3u3u3u=uHu\uquuuuv)v\vvvw\wwwHxxy\yy3zz{{ || }}~~H€=€€3€€=€€R€v܄€B€{€R€‡.€€||{{{zzyHyx{x)xw{w)wvv\vvuuufu=uuuttttttttt uuHufuuuu)vfvvv=www3xxx\yy3zz{{||)}}=~~qWR\€€{܃€= €pׅ€B€€f׈M€)|{){z3zyRyxxxwqwwvv=vvuuRu)uutttt{tqtftftftqt{tttttu)uRuuuv=vvvwqww)xxxRyy3zz){{)||=}}f~€€p€€€€ṕ)€€B€k҄€8€ v€R€.€€{R{zRzyfyxx)xwfwwvqvvuu\u)uttt{t\t=t)tt tttt ttt3tRtqttttuRuuuvfvvw\wwx{xxRyy=zz={{H||f}}~)€8€€€8€€M €k̓3€€k҅€=€€f܈M{{zqzy{y yx3xwfw wv\v vu{u=uuttft=ttsssssssssssss t)tRtttt)ufuuuHvvvHwwx{xx\yyRzzR{{f||}~~\W\€€€p҂3€€a€DŽ3€€p€R€.€{zzy)yx=xwqw wvRvvufuuttft3ttsssqs\sHs=s3s3s3s=sHsRsfssssstHtttu=uuu)vvv=ww x{xxfyy\zzf{{|}}R~~€v̀$܁€8€\€ƒ)€€aͅ€=€€k܈z=zy=yxRxw{wwvRvuuRuut{t=ttssqsRs)s srrrrrrrrrss3s\sssstRtttuquuvqvv3ww xxxqyyqz{{||H}}~)€=€€€G€a€‚)€W€„)€€p€M€‡3qzyfyxqxwwwvRvuu=utt\ttssqs=ssrrrr{rqrfrfrfrfrqrrrrrrsHs{sss)tfttuRuu vfvv3wwxxyy zz{{=||q}~~\\€€ḱ)€R€€€\ͅ€8€€kzy yxxw)wvRvuu=uttHtts{s=s srrrfrHr)rr rrrrr rr3rHrfrrrr s=s{sstHttt=uuu\vv3wwxxyyzz={{f|}}H~~${׀3€€R€€€R€$€€p€R€‡3y3yx3xw=wvfvuu3utt3tssRssrrqrHrrrqqqqqqqqqqqqrrHrqrrrsRsss)t{tt)uuu\vv3ww)xx)yy=zz\{{|3}}{~)€B€\€€€€G€€\€Dž€8€fyxRxw\wvqvvu3ut{ttss=srr{rHrrqqq{qfqRq=q3q3q3q3q=qHq\q{qqqq r3rqrrr)sqsstfttuuu\vv=ww=xxHyy\zz{||f} ~~f€€f€€$€€G€v€M€$€€p€R€‡ y{xx{wwvvu=ut{ttsqssrrRrrqqq\q3qqqppppppppp q)qHqqqqqr=r{rr sRsssRttu{uu\vvHwwRxx\yyz{{R||}H~~.€M€€pׂ€B€€W€Dž€8€x)xwwv)vuHut{ttsfssr{r3rqq{qHqqpppppqpfpfpfpfpqp{ppppp q3qfqqq rRrrr3sssHttu{uufvv\wwfxx{yzzH{{|3}}~=W€vׁ€=€ €p܃€G€€€p€WRxwHwvHvu\uttts\ssr\rrqqRqqpppqpRp3pp pppop pp)p=p\p{pppp)qfqqq)r{rrs{ss=ttuuuqvvqwwxyy=zzq{||f}~~€{܀€=€€f҂€8€{€W€Dž€8€wqwvfvuquut)ts\ssrRrrqqq)qpppRp)p pooooooooooooo p3p\pppp=q{qq r\rr sqss3ttuuv{vwwxx3yyfz {{R||}\~€B€f́3€€k׃€B€€€p€wwv vuut3ts\ssrHrqqRq qppRppoooofoRo=o3o3o)o)o3o=oRofooooopRppp qRqqqHrrsfss3ttuuvvww3xx\yyz={{|=}}~\ €k̀.€€a€ǂ3€ v€W€Dž€8Hwv3vu3utHtsfssr=rqq=qppfp)pooofo=ooonnnnnnnnnoo=o\oooo)pfppp3qqq3rrr\ss3tt)uu)vv3wwRxxy)zzq{||{}3~~3€\€)€€f҃€=€€vv\vuRut\tsqs sr=rqq3qppHp poo\o)oonnnnqnfn\n\n\nfnqnnnnnnoRoooo3p{ppqqqq)rrr\ss=tt3uu=vvRww{xyy\z{{\| }}{~3\€$€W€‚.€v€W€Dž€=vv{ut{ttssr=rq{qqp{p3poofo)onnnqnRn3nn nnmmmn nn)nHnfnnnnoRooop\ppq\qqrrr\ssHttHuu\vv{wxxHyyz={{|R} ~~$€R€€€a̓€=€€3vuutts)srHrq{qqpqppoo=oonnfn3nnmmmmmmmmmmmmmnnHn{nnno\ooo=pppHqqr{rrfss\tt\uu{v ww=xx{yzz{{)||}R~M€€R€)€v€WͅuHut=tsHsr\rqqqpfp pofoonnfn3nnmmmqmRm=m3m)m)m)m)m3mHm\mqmmmm n=n{nnn=ooo)p{pp=qqr{rrqssftt{u vv3wwfx yy\z {{q|)}}~f€{€€G€€€a̓€=€€{utftsfsrqrrqqp\ppo\o on{n=nnmmqmHmm mllllllllll m)mRmqmmm nHnnnofoopqpp3qqrrs{stt uu)vv\wxxHyyzR{||{}3~~€B€v€M€)€v€\ut tssrrq3qp\ppoHonn\nnmmfm3m mllllqlfl\lRlRl\lflqlllll m3mfmmmnfnnnRoopfpp3qqrr sstt)uuRvvw)xx{y)zz{H| }}~H €p׀€=€€\̓€=$t=ts)sr)rq=qpfppo=onnHnnmqm=mmll{l\l=ll llkkkkl ll3lRl{lllm3mqmmm=nnn3ooo\pp3qqrrss)ttHuu{vwwfx yyfz{{|R}~~€8€€p܁€G$€v€ftsRsrHrqRqpqp po=onn3nmmRmmllql=llkkkkkkkkkkkkkk l3l\lllmHmmmnqnn)ooo\pp=qq)rr3ssHttqu vvHwwxHyzzf{||}f~3€f̀€8€{€\̓€=tsrqrqqqpppo=on{n)nmm3mllql=l lkkkqkRk=k3kkkkk)k3kHkfkkkkk)l\lllmfmm n\nno{oo\ppHqq=rrRssqtuu=vvw)xxy=zz{q|3}}~.€€kׁ€B$€{ssrrqqppoHon{nnmqmmllHl lkkqkHk)k kjjjjjjjjjjjk3k\kkkk)lflllHmmmHnno{oo\ppRqqRrrqstt)uuqvwwfxyyzH{||}R~\€ǀ3€ {€\̓€BRsr=rq3qp=poRon{nnmfm mlql)lkkqk=k kjjjjqj\jRjRjHjRj\jfj{jjjjjkRkkklHlll)mmm=nn o{oofppfqqqrss)tt\uvvRwxx\yzz{R|}}~{$€€fҁ€B$€ rfrqRqpRpofonnnm\mml\l lkkHk kjj{j\j=jj jiiiiiij j)j=jfjjjjkRkkklqllmqmm3nn oooqpp{qrrssRttu3vvw=xxyfz{{|q}=~ W€€.€ {€\҃r rqpqpo{oon)nm\mllHlkkfkkjjqjHjjiiiiii{i{i{iiiiiiijHj{jjj)kfkklRllmfmm3nnoo pp qqrrHss{tuuqvwwx=yyzq{=|}}~f€€fҁ€B$€=rqqppoon3nm\mll=lkkHkkj{j=j jiiiqiRi=i)iiiiii)i=iRiqiiii j=j{jjkHkkk=lll\mm3nnoopp)qq=rrqs ttRuvv\wxxyHz{{|\})~R€.€ {€€aqRqp=po3onHnmfmll3lkk3kjjRjjii{iHi)i ihhhhhhhhhhhiiHiqiiijRjjj)k{kk)lllRmm3nn)oo)pp=qqfrss=ttu=vvw\xyyz\{||}~\€€aҁ€B)qpfpo\on\nmqmml3lk{kkj{j3jii{iHiihhhhfh\hHhHh=h=hHhRhfh{hhhh i3ifiii)jqjj k\kkl{llRmm=nn=ooHppfqqr3ss{tuu{v3wwxfy)zz{{|H}~~M€)€ {€)qp p{on{nnmml3lkqkkjfjjiiRiihhh\h3hhhggggggghh)hHhqhhhi3iqiijHjjjRkkl{ll\mmHnnRoofppqrr\s tt\u vv{w3xxy{z={ ||}{~R€€€aҁ€B€p=poonnm)ml=lkqk kj\j jiqi)ihh{hHhhggggg{gqgqgqgqgggggg h3h\hhh iHiii3jjj=kk l{llfmm\nnfoopqqRrrs=ttuRv wwxHy zz{f|=} ~~M€)€ qpoRon=nm=mlRlkqk kjRjiiRi ihhHhhgggfgHg3ggg gg g gg)g=g\g{gggg)h\hhh)iqiijqjj3kk l{llqmmqnnoppHqqr)ss{t)uuvRwxxy\z){{|}q~H€€€aׁ€Gp{onfnm\mlflk{kkjHjii=ihh\hhgg{gRg)ggffffffffffff g3g\gggg3hqhhiRiijfjj3kk llm{mnnoo=ppqqrr\s ttqu)vvwfx)yyz{\|)}~~€G€)€€oonn{mm{llkkjHjii3ihh=hhg{gHggfff{fffRf=f3f3f3f=fHfRfffffffgRggg hHhhh=iii\jj3kkllmmnn3oofpqqHrrsRtuuqv3wwxyHz{{|}f~H€€€fׁRon3nmmllk)kjRjii)ih{h)hggRggfff\f3fffeeeeeeeeff3f\ffffg\ggg)h{hh)iiiRjj3kkll)mm3nn\oop3qqr)sstHuvvwHxyyz{{H|}~~€G€.€nfnmHml=lk=kj\jiiihfhhg{g3gff{fHffeeee{eqefe\e\efeqe{eeeeefHf{fff)gqgg hfhhi{iiRjj=kk3ll=mm\nnoppfqrrqsttuRvwwxfy=z {{|}f~H€€fnnqml\lk\kjfjiiih\h hg\ggffRffeeefeHe)ee eeddeee)e=e\eeee f=f{ff gRgggRhh i{iiRjjHkkHll\mm{nooRppqRrssft)uuvfw3xyyzq{=|}}~€G€.=nmmll{kkj ji)ih\hhgHggfff)fee{eHeeeddddddddddddde=eqeeefRfff3ggg=hh iqii\jjRkk\ll{m nnHoop3qqr=sstqu3vvwx\y)z{{|}f~=€mHml)lkkjji3ih\hgg=gffHffeeHeeddd{d\dHd3d)d)dd)d3d=dRdfdddde3efeee)f{ffgqgg3hh i{iifjjfkk{l mm3nnqoppqqrrsHtuuvRwxxyzf{=|}}~M€{mlRlk=kj=jiHihfhhg3gff3fee\eedd{dRd3d dccccccccccdd=dfddde=e{ee f\ffgfgg)hh i{ii{jjk ll3mmfnooRpqqfrsstRuvvw{xHyzz{|}\~H€mlkfkj\ji\ihqhhg3gf{ffee3edd{dHddccccqcfc\cRcRcRc\cfc{ccccd)d\ddd eReee=fff\gg)hhii jjkk)ll\mmn=oop=qqrfsttuqv=w xxyz\{3|}}~Ml)lk k{ji{iihhg3gfqffefeeddRddccc\c=cc ccbbbbbcc)cHcfccccd\ddd3e{ee)fffRgg)hhiijj)kkRllm)nnqoppq=rrsqt3uvvwfx=yzz{|}f~H€flk3kjjiihhg=gfqf fe\eedqd)dcc{cHccbbbbbb{b{b{bbbbbbc)cRcccc3d{ddefeef{ffRgg3hh)ii3jjRkk{lmm\noo\pqqr=sttu\v)wwxy{zR{3|}}~ lqkjHji=ih=hgHgfqf feHeddRd dccHccbbbqbRb=b)bbbbbb)b=bRbqbbbbcHccc dRdddHee fqffHgg3hh3iiHjjfkll=mmn3oopRq rrsRtuuv{wRx)yzz{|{}\~=k k{ji\ihRhg\gf{f feHedd=dcc\ccbb{bRb)bbaaaaaaaaaaabbHbqbbbcRccc3ddd3eeffffRggHhhRiifjkk3llqmnn{o)ppq\rsstqu=v wwxyfzH{)| }}~Hkjjii{hg{ggffeHedd)dcc=cbb{bHbbaaa{afaRaHa=a=a=aHaRafa{aaaa b3bqbbb)cqccdqdd)eeffff\gg\hhfiijkk\lmm\n ooqp)qqrqs3tuuvqwHxyyz{|{}f~jRji)ihhggf)feHed{ddcqccbbRbbaa{aRa3aaa```````` a)aHaqaaab=b{bb cRccd\ddeefqfffggqhhijjRkkl=mmnHopp{q=rsst\u)vwwxyfzH{)| }}ji\ih=hg3gf3feRed{ddc\c cbqb)baaqaHaa`````q`f`f`f`q`{`````a3a\aaa bRbbb=cccRddeef{ff{ghhiiHjj{kll{m)nnoHp qqrRsttuvfw=xyyz{|})jihfhgRgfRfe\edddcRccbRb baaHa a```f`H`)`` ```````3`R`q````)a\aaa)b{bbc{ccHddee ff gghh=iiqjkk\l mmfnoop\qrrs{tRuvvwxyfzH{)|}i3ih h{gfqfeqeeddcRcbb=baa\aa``q`H``_____________ `)`R````3aqaa b\bbcqcc=ddeeffgg=hhfijjHkklHmmnfo)ppqqr=s ttuv\w3xyyz{|fih3hggf feed)dcRcbb3baa=a``{`=` `___q_\_H_3_)_)_)_3_=_H_\_{____`R``` aRaaaHbbcfcc=dd)ee)ff=gg\hhi3jj{k)llm=nno{p=qrrsqt=uvvwxyfzH{3| iqhgHgf)fe)ed3dcRcbb)baqa)a``R``__q_H_)_ _^^^^^^^^^^ _3_R_{___`R```3aaa3bbbfccHdd=ee=ff\gghiifj kkflmmnHo ppq\r)sttu{vRw3xyyz{h h{gfRfeHedHdc\cbbbafaa`q`)`__q_=_ _^^^^q^f^\^R^R^\^f^q^^^^^_=_q___)`q``afaa)bbbfccRddRee\ff{ghhRiijHkkl\mnno\pqqrs\t3u vvwxyfzR{Hhggfefedfdcqccbba\aa`\` `_{_=_ _^^{^R^3^^ ^]]]]]] ^^3^R^{^^^ _=_{__ `R``aRaabbbfcc\ddfee{f gg=hhi)jjk=llmfn)oop{qHrsstuqvRw3xyyzgHgffe eddc cb)ba\a``H`__\__^^q^=^^]]]]]]{]{]]]]]]] ^3^f^^^ _R___3```Haabbbqccqdd{e ff3ggqhiifjkk{l=mmn{o=p qqr{sRt)uvvwxyqzgfRfe3eddccb3ba\a``3`__=_^^q^=^^]]]f]H]3])]]]]]]3]H]\]{]]]])^f^^^)_{__`{``=aabbc{cdd ee3ff\ghhHiij\k llmHn oopfq=r sstuqvRw3xyz)gfe\edHdc=cbHba\a``)`_{_)_^^H^ ^]]q]=]]]\\\\\\\\\\\]3]\]]]]3^q^^ _\__ `f``=aabb ccdd)eeRffg3hhi3jjk\lmmnfo)ppqrqsHt)uvvwxyf)feeqdc\cb\bafaa`)`_f__^q^)^]]f]3]]\\\{\f\R\H\=\=\=\H\\\q\\\\\]R]]] ^R^^^=__`\``3aabbcc3ddReefggfhii{j3kklfm)nnop\q)rsstuqvRw3xyffe3ed d{cbqba{a a`)`_f__^\^ ^]{]=]]\\q\H\)\ \[[[[[[[[\\3\\\\\\]\]]])^{^^3___\``=aa3bb3ccRdd{effRgghRi jj{k3llmnHoppqrfsHtuvvwxffed3dccbbaa`3`_\__^H^]]\]]\\f\3\ \[[[[{[q[f[f[f[q[[[[[[\H\{\\\)]q]]^f^^___\``Haa=bbRccqd ee=ffg3hhiRj kklHmnno{pHqrrstuqvRw=xeefdcHcb3ba3a`=`_\_^^=^]]=]\\q\3\[[[{[R[=[[[[[[[ [[)[=[\[[[[ \=\{\\ ]R]]]R^^_{__\``RaaRbbqcdd3eeqfggqh)iijRkllmfn3o ppqrfs=tuvvw=ed dqcbRbaHa`R`_f__^3^]{])]\\H\\[[\[3[ [ZZZZZZZZZZZZZ[=[f[[[\R\\\3]]]=^^ _{__f``faaqbcc)dd\effRghhqi)jjkfl3mmnofp=qrrstuqv\wd=dcc{bafa`f`_q__^3^]q]]\q\\[[\[)[ZZZZfZRZ=Z3Z)Z)Z)Z3Z=ZRZfZZZZ[3[f[[[)\q\\]q]]3^^ _{__q``{abbccRdde=ffgHhiiqj3kklmRn)oopqr\s=tuvv{dcHcbba a``__^3^]f] ]\R\ \[q[3[ZZZfZ=ZZZYYYYYYYYYZZ=ZfZZZZ3[q[[ \R\\]f]]3^^__`` aabbHcc{deeqfgghHijjkRlmmno\p3qrrstu{vd{cbHba)a``__^=^]f]]\H\[[R[ [ZZ\Z)ZYYYY{YfY\YRYRYRY\YfY{YYYYYZRZZZ [R[[[=\\\\]]3^^__``aa=bbqcdd\efffghhiRjkklqmHnoopq{r\s=tu vccba\a`=`_=_^H^]f]]\=\[[3[ZZfZ)ZYYYfYHY)YYYXXXXXX YY=YfYYYYZ\ZZZ)[{[[)\\\R]]3^^__)``=aafbccHddeHffgfhiijqk3lmmn{oRp3q rrstu\cbba`f`_R_^\^]q]]\3\[{[[ZZ=ZZYYRY)YYXXXXX{X{X{XXXXXXXYHY{YYY)ZqZZ [\[[\{\\R]]=^^3__=``\aab3cc{d)eef=gghqi3jkklfm3n oopq{r\s=t)ub\ba)a``{_^q^]{] ]\3\[q[[ZfZZYYRYYXXXqXRX=X)XXX X XXX3XHXfXXXX Y=Y{YYZHZZZH[[ \q\\R]]H^^H__\``abb\c dd\effg=hiijRkllmnqoHp)q rrstba\a`3`__^ ^]]\3\[f[ [ZRZZYqY)YXXXRX)X XWWWWWWWWWWWWX=XqXXX YRYYY)ZZZ3[[\q\\\]]R^^\__{`aaRbbc=dde\fgghRijjk{lRm)noopq{r\s=t3ba`\`_=_^)^])]\=\[f[[ZHZYYRY YXXHXXWWW{WfWRWHW=W3W3W=WHW\WqWWWWX3XfXXX)YqYYZfZZ)[[\q\\f]]f^^{_ ``=aa{b)cc{d3eef\ghhiqj=k llmnfoHp)q rrsa3a``f_^R^]H]\R\[f[[Z=ZYY3YXX\XXWWWRW3WWWVVVVVVVVWW=WfWWWW3XqXXYRYYZ\ZZ)[[\{\\q]]{^ __3``qa bb\c dd{e3ffgqh3ijjkqlHmnnopq{r\sqa`3`_ _q^]f]\f\[q[[Z3ZYqYYX{X3XWW{WHWWVVVV{VqVfV\V\VfVqVVVVVVWRWWWXHXXX3YYYRZZ[[ \\]]^^)__\`aaHbbcRd ee{f=ghhi\j)kllmnfoHp)q rr aq`_3_^^]]{\\[ [Z3ZYfY YXfXXWWHWWVVV\V=V)VVVUUUUVV)VHVfVVVVWRWWWXqXXY{YYHZZ[[\\]])^^R__`3aa{b)ccdRe ffgRhiijkfl=mnnopq{r` `q_^=^]]\\[[Z=ZYfYYXRXXWfWWVVqVHVVUUUUUUUUUUUUUUVHV{VVV)WfWWXRXX YqYY=ZZ)[[)\\3]]R^^{_``fa bbqc)dde\fggh{iHjkklmnfoHp)q rH`_ _q^]H]\3\[3[ZHZYfYYX=XWWHWWV{V=V VUUUfURU=U)UUUUU)U=URUfUUUU V=V{VVWHWWW=XXYfYYHZZ3[[3\\H]]q^ __R``aHbccqd)eefqg=h iijk\l3mnnopq_H_^ ^{]\\\[H[ZRZYqYYX3XW{W)WVVRV VUUqUHUUUTTTTTTTTTTUUHUqUUU VHVVV)W{WW3XXXfYYHZZH[[R\\q]^^=__`)aabHcdd{e=fgghfi=jkklmnfoHp)q_^=^]]\[f[ZfZY{Y YX3XWqWWVqV)VUUfU3UUTTT{TfTRTHT=T=THTRT\T{TTTTU3UfUUUVfVV WfWWXXXfYYRZZ\[[q\]])^^q_``fabbcHd eef\g)hhij{kRl3mnnop_{^]H]\\[ [ZZYYX3XWfW WV\V VU{U=UUTTqTHT)T TSSSSSSSS TTHTfTTTT3UqUUUHVVVRWWXXXfYYfZZq[\\]]\^__H`aafbccd\effgh\i3j kklmnfoHp^^{]\H\[)[ZZYYX=XWfWWVHVUU\UUTTfT3T TSSSS{SqSfSfSqS{SSSSSS)TRTTTUHUUU)VVV=WWXXYqYY{Z[[\\H]]^3__`=aabfc)dde{fHghhijqkRl3mnno\^]]{\[R[Z=ZY3YXHXWfWWV=VUU=UTTfT)TSSSqSRS=SSSSSSS SS3SHSfSSSSTRTTTUfUUVqVV=WWXX YY ZZ[[=\\{]^^q_``a=bbc{d=e ffg{hRi)jkklmnfo]R]\\[Z\ZYRYXRXWfWWV3VU{UUTT=TTSS\S3S SRRRRRRRRRRRRRSHS{SSSTfTTURUUVfVV3WWXXYYZZ=[[f\ ]]R^__\`aabHc ddeff3g hhijqkRl3mnn]\R\[[ZZqYXfXW{WWV)VUfU UTfTTSS\SSRRR{RfRHR=R)R)R)R)R3R=RRRqRRRR S=SqSSS=TTT3UUU\VV3WW)XX)YY=ZZ\[[\=]]^=__`\abbc\d)eefgqhHijkklmn3]\[R[Z)ZY YXXWWV3VUfUUTRTTSqS)SRRR\R3RRQQQQQQQQQQRRHRqRRR SHSSSTqTTUUURVV=WW3XX=YY\ZZ[)\\q]^^{_3``afb)ccdeRf)ghhijfkRl3mn\)\[ZRZY3YXXWWV3VU\UTT=TSSHSSRRRRRQQQQqQfQRQRQHQRQ\QfQ{QQQQR)R\RRRSfSST\TTU{UU\VVHWWHXX\YYZ[[\\]]\^ __{`3aab{cHdeefgfh=ijjklmf\[[ZY\YX=XW=WVHVU\UTT3TSS3SRR\RRQQQ\Q=QQ QPPPPPPP Q)QHQfQQQQ)RfRRR=SSSHTT U{UU\VVRWW\XX{YZZH[[\=]]^R_ ``aHb ccdqeHfgghijfkRl3m\\[ZZYXfXWRWVRVUfUTT)TSqSSR{R3RQQ{QHQQPPPPP{PqPqP{P{PPPPPPQRQQQQ=RRRS{SS3TT U{UUfVVfWW{X YY=ZZ{[\\{])^^_R`aabfc3deefg\h=ijjkl[[\ZY)YXXqWVqVU{UUT)TSfS SR\RRQQHQQPPPfPHP3PPP P P PPP3PHPfPPPPQRQQQRfRR SfSS)TT U{UUqVV{W XX3YYfZ [[\\ ]]q^)__`fa)bbcdfe=fgghijqkRl=[ZY\YX)XWWV VU UT)TS\SRRHRQQ\QQPPqPHPPPOOOOOOOOOOOPPHPqPPPQ\QQQHRRR\SS)TT UUVV WW)XX\YYZ=[[\H]^^q_3``abRcddef{g\h3ijkkZ3ZYX\XW3WVVUUT3TS\SRR3RQQ=QPPqP=P POOOqO\OHO=O3O)O3O3OHO\OqOOOO P=PqPPP3QQQ)RRRRSS)TTUUVV)WWRXXY)ZZ{[)\\]H^__`Habbcd\e3f gghijqkqZY)YXW\WVHVU=UT=TS\SRR)RQqQQPPHP POOqOHO)O ONNNNNNNNNOOHOfOOOP=PPPQfQQR{RRHSS)TT)UU)VVHWW{XYY\Z [[f\]]^R_``aqb=cddef{gRh3ijkZfYX)XWWfVURUTRTSfSRRRQfQ QPfPPOOfO3O ONNNNqN\N\NRNRN\NfN{NNNNO)O\OOOP\PPPRQQ RqRRHSS3TT3UUHVVqW XXHYYZH[[\f]^^_f`3abbc{dRe)f gghijY YqXW3WV VUTqTS{S SR)RQ\QQP\P PO{O=OONN{NRN3NN NNMMMMNN3NHNqNNNN)OfOOO=PPP=QQRqRRRSSHTTRUUqVWW=XXY)ZZ[=\\]q^3_``afb3c ddef{g\h=ijRYX XfWV=VUUT TSSR)RQ\QPP=POOROONNfN3N NMMMMMMMMMMMMMN)NRNNNN=OOOPqPP3QQRqRR\SS\TTqUVV)WWfXYYfZ[[\H]^^_R`aabcqdHe)f gghiXHXWWfVU=UT)TS)SR3RQ\QPP3POO3ONNfN3NNMM{M\MHM3MMMMMM)M=MRMqMMMMNRNNNO\OO P\PP)QQRqRRfSSqTUUVV\WWXHYYZ\[\\]R^__`aRb)cddef{g\h=iXW=WVVqUTRTS=SRHRQ\QPP)POqOONN=NNMMfM3MMLLLLLLLLLLLM)MHM{MMMN\NNN=OOORPPQQR{RR{STTUUHVVW3XXY3ZZ[\\]]^q_=`aabcfdHe)f ggh)X{WV=VU UqTS\SR\RQfQPPPO\O ONfNNMM\M)MLLLLqL\LHL=L=L=LHLRLfL{LLLL M=MqMMM3NNN)OOOHPPQQ RR SSTT=UU{VWWfXYY{Z3[[\q]=^__`qaHbccdef{g\hWWqVU=UT TSRqRQ{QQPPORONNHNMMfM)MLLL\L=LLLKKKKKKKK L)LHLqLLLM=M{MMNfNNOqOO=PPQQRRSS=TTfU VVRWWXRY ZZ{[=\]]^\_3`aabcfdHe)f gg\WV VqUT=TSSR RQQP)PORONN3NMMHMMLLRLLKKKKKqKfKfKfKfKqKKKKKL)L\LLLMRMMMHNNOfOO=PP)QQ)RR=SS\TTU3VVW3XXYRZ [[\\]^^_`fa=bccdef{gVRVU UqTSHSR)RQ)QP3PORONN)NMqM)MLLRLLKKKfKHK)KKKJJJK KK3KHKqKKKK)L\LLL3MMM3NNN\OOHPP=QQ=RR\SST)UUqVWWqX)YYZ\[\\]{^H_``abcfdHe)f gVUHUT TqSRRRQ=QP=PORON{NNM\M MLqL)LKK{KHKKJJJJJJJJJJJJJK)KRKKKK3L{LLMfMMNNN\OOHPPHQQ\RR{STTRUVVRWXXqY)ZZ[{\=] ^^_`\a3bccdef)VUT=TS S{RQ\QPRPO\ON{NNMRMLLRL LKKHK KJJJqJRJ=J)JJJJJ)J=JRJqJJJJKHKKK LRLLLRMMNNNfOO\PP\QQ{RSSHTTU3VVWHXYY{Z=[ \\]f^=_``abcfdHe)fUU{TS=SRRQPqPOqONNNMHMLL=LKKRKKJJqJHJJJIIIIIIIIIIJJHJqJJJKRKKK3LLLHMMNNNqOOfPP{Q RR3SSqTUUqVWWXHY ZZ[\\)]]^_{`Ra3bccdefUTTqSR=RQQP PO ONNMHML{L)LK{K3KJJqJ=J JIII{IfIRIHI=I=IHIRIfI{IIIIJ3JfJJJ)K{KKLqLL=MMNNO{OOP QQ3RRfSTTRUVVfWXXY\Z)[[\]\^3_ ``abcfdHeURTS SqRQ=QP)POON)NMHML{LLKfKKJJ=JJIIqIHI)I IHHHHHHHH I)IHIfIIIJ3J{JJ KRKK LfLL3MMNN OOPP)QQRRRS=TTU=VVWfX)YYZ{[H\]]^_q`Ra)b ccdTSHSR RqQPHPO=ON=NMHMLqL LKRKKJ\JJIIfI3IIHHHH{HqHfHfHqH{HHHHHI)I\III JRJJJ=KKK\LL3MMNNOO)PPRQQRSSqTUUV=WWX{YHZ [[\{]R^)_``abcfd3TSR=RQ QqPO\ONRNM\MLqL LKHKJJ=JIIfI3IHHHqHRH3HH HHHGH HH3HHHfHHHHI\III)J{JJ)KKKRLL3MM)NN3OOHPPqQRR\STT\UVVWHX YYZf[3\ ]]^_q`Ha)bccSS{RQ=QP P{ONfNMfML{L LK=KJ{J)JII=IIHH\H)H HGGGGGGGGGGGGGHHH{HHH)IqII J\JJK{KKRLL=MM=NNHOOqPQQHRRS=TTU\VWWX\Y)ZZ[\q]H^_``abcfSRRqQP=POONN{MMLLK3KJqJJIqIIHH\HHGGG{G\GHG3G)GGG)G3G=GRGqGGGG H=H{HHIHIIIHJJ KqKKRLLHMMRNNfOPP3QQ{RSS{T3UUVfW)XXYZR[)\]]^_f`Ha3bcS\RQ QqPO=ONNMMLLK=KJfJ JIRIIHqH)HGGGRG3G GFFFFFFFFFFGGHGqGGG HHHHH)I{II3JJKqKK\LL\MMfNNO)PPfQ RR\S TT{U3VVW{XHYZZ[\f]=^__`abRQHQP PqONHNM3ML3LK=KJfJJI=IHHHHHGGHGGFFFFqF\FRFHFHFHFRFfF{FFFFG3GfGGGHfHH IfII)JJKqKKfLLqMMNOORPPQ=RRSRT UUVHW XXYqZH[\\]^_f`Ra3b3RQP=PO OqNMRMLHLKRKJfJJI3IH{H)HGGRGGFF{FRF3FFFEEEEEEE FF=FfFFFF3GqGGHHHHHRIIJJK{KK{LMMNNHOOP)QQ{R)SSTRUVVWfX3YZZ[\\]=^__`aQ)Q{PO=ON N{MLfLK\KJqJJI)IHqHHGqG)GFFqF=FFEEEEEqEqEfEqE{EEEEEEFRFFFGHGGG3HHHHIIJJ KK LLMM=NNqOPP\Q RRqS)TTUfV)WWXYfZ=[\\]^_q`RaqQPPqON=NMMLL{KJ{J JI)IH\HHG\G GF{F=F FEE{E\E=E)EE EEEE EE)EHEfEEEEFRFFFGqGGH{HHHIIJJKKLL3MMfNOOHPPQHRSSqT3UUVWRXYYZ[{\\]3^_`` Q\PO OqNM=MLLKKJJI)IH\HGG=GFFRFFEEfE=EEDDDDDDDDDDDDDEHEqEEEFfFFGRGG HfHH=II)JJ)KK3LL\MMN3OO{P)QQRHSTTUHVWWXY\Z3[ \\]^_q`POHON NqMLHLK)KJ)JI3IH\HGG3GFF3FEEfE3EEDDDfDHD=D)D)DD)D3D=DRDfDDDDE=EqEEE=FFF=GGHfHHHII3JJ=KKRLLMNNfO PPfQRRSRTUUVqW=XYYZ[q\R]3^_`3PON=NMMqLKHKJ=JIHIH\HGGGFqFFEE=EEDDfD=DDCCCCCCCCCCDD=DfDDD EHEEEFqFF)GGGfHHRIIHJJ\KK{LMMRNNOHPQQfR)SSTqU3VWWX{YRZ)[ \\]^_O)O{NM=ML LqKJ\JIRIHfHGGGF\FFE\EEDD\D)DCCCCqC\CRCHCHCHCRCfC{CCCCC)D\DDDEfEEF\FFGGGfHH\II\JJ{K LL=MMN3OOP=QQRqS3TUUVfW3X YYZ[{\\]=^_qONNqML3LK K{JIqIHqHGGGFRFEEHEDDfD)DCCCfC=CC CBBBBBBB CC=CfCCCC)DfDDD=EEEHFFGGGqHHfII{J KK3LLqMNNfOPPQHRSSTRUVVWXqYHZ)[ \\]^ O\NM MfLK3KJJI IH HGGFHFEE)EDD=DDCCRCCBBBBB{BqBqBqB{BBBBBBCHC{CCC=DDD)E{EE=FFGGH{HH{I JJ)KK\LMMRNNO\PQQRRSTTUVRW)XYYZ[{\\]=^NMHMLLfKJ=JIIHHG)GFHFE{EEDqDDCCRCCBBBfBHB)BB BBBB BB)BHBfBBBBCHCCCDfDD EqEE3FFGG HH II)JJRKKL3MMN=OOPfQRRSqT=UVVWXfYHZ)[ \\]=NML=LKKfJIHIH3HG3GFHFEqEED\DDCfC)CBB{BHBBAAAAAAAAAAAAAB=BqBBBC\CCCHDDE\EE3FFGGHH)IIHJJ{KLLqMNN{O3PPQqR=STTUqVHWXXYZ[{\\]M)M{LK3KJJqIHRHGHGFRFEqE EDHDCCHCCB{B=B BAAAqARA=A3A)A)A)A3A=ARAfAAAAB3BfBBB3CCC3DDDREE3FF)GG3HHHIIqJ KKRLMM\N OOP=QRRS\T3UVVWXfYHZ)[ \\qMLLqKJ3JIIqHGfGFfFE{E ED=DCC)CBBRB BAAqAHAAA@@@@@@@@@@A=AfAAAB=B{BBCfCCD{DDREE=FF=GGHHHfIJJ=KKL3MMNROPPQ\RSSTUfV=WXXYZ[{\ M\LK KfJI3IH HGF{FFEED3DCqCCBqB)BAAfA3AA@@@{@f@R@R@H@H@R@\@q@@@@@ARAAA BRBBBRCC D{DDREEHFFRGGfHHI)JJqKLL{M)NNO\PQQR{SRTUUVWXfYHZ)[ \LKHKJJfIH3HGGFFEED3DCfC CB\B BA{A3AA@@q@H@)@ @???????@@=@\@@@@A\AAA3BBB=CC DqDD\EE\FFfGGHII\JKKRL MMqN3OOP{Q=R SSTU\V3WXXYZ[=LKJ=JIH\HG=GF)FE)ED=DCfCCBHBAARA A@@\@)@@????{?q?q?q?{??????@H@{@@@3A{AABqBB3CCDqDDfEEqFFGHHHIIJ=KKLHMNN{O=P QQRfS=TUUVWXfYHZ)[KK{JI3IHGfGFHFE=EDHDCfCBB3BAA3A@@\@)@???q?R?3?? ???? ??)?=?\?{??? @=@{@@ ARAAB\BB)CC D{DD{EFFGG=HH{IJJqK)LLMRN OOP\Q)RRST{URV3WXXYZqKJJfIH)HGGfFE\EDRDCfCBB)BAqAA@{@3@???R?)??>>>>>>>>>>>>?3?f??? @R@@@=AAARBBCC DD EEFF3GGfH II\JKKfLMMN\O)PPQR\S3T UUVWXfYHZKRJII\HG)GFF{EDqDCqCCB)BA\AA@\@@??H??>>>q>\>H>3>)>)>)>)>=>H>f>{>>>>)?\???)@{@@A{AAHBB)CCDDEE3FF\GGH=IIJHKKLqM)NNO{PHQRRSTqURV3WXXYJIHIHG\GF)FE EDDC CB)BARA@@=@??\??>>{>R>)> >==========>3>\>>>>3?q?? @\@@ AqAAHBB)CC)DD3EERFFG)HHqIJJK=LMM{NHO PPQ{RRS)TUUVWXfY3JIH3HGF\FE3EDDCCB)BARA@@)@??=?>>q>=> >==={=f=\=R=H=H=R=\=q=====>H>>>?H???=@@AfAAHBB3CC=DDREE{FGG\HIIfJKKLHM NNOfP3Q RRSTqUHV)WXXIIqHG)GFE\ED=DC3CB3BARA@{@@?f??>>H> >==q=R=)===<<<<<<==3=R={===>R>>>)?{??)@@@fAAHBBHCCRDDqE FFHGGH=IIJ\KLLMfN)OOPQqRHSTUUVWXfIH HfGFFED\DCHCBHBA\A@{@@?\??>f>>==f=3= =<<<<{<q<q<q<q<<<<<< ===q===>f>> ?\??@@@fAARBB\CCqDEE3FF{GHHI3JJKfL)MMNORP)QRRSTfUHV3WXIRHGG\FEEDCfCB\BAfA@{@@?H?>>H>==q=3=<<<q<R<3<<< <<< <<<=<R<{<<<=3=q==>H>>>R??@@@fAAfBBqCDD)EEfF GG\HII{J3KKL{MHNOOPQfR=STTUVWHG=GFEREDDCC{BAqA@@@?=?>>)>==H==<<\<3< <;;;;;;;;;;;; <3<\<<<=H===)>>>=??@@@qAA{BCCDDREEF=GGHRI JJKHL MMNqOHPQQRSTfURV3W3HGF3FEDRDC)CB BA A@@?=?>q>>=q==<<\<<;;;{;\;H;3;););););3;H;\;{;;;;<R<<<=f==>q>>3??@@AA BBCCHDDE)FF{G3HHIRJKKLfM3NOOPQ\R=STTUVGGqFEEDCRCB3BAA@)@?=?>f> >=R==<f<)<;;;R;); ;:::::::::: ;);R;{;;;<f<<<H==>\>>3??@@AABB=CCqDEE\F GGqH)IIJfK)LLMNfO=PQQRSTqURVfGF F\EDD{CBRBA=A@3@?H?>f>>===<<H<<;{;H;;::::f:\:R:H:H:R:\:f:{:::: ;=;{;;;=<<<3===R>>3??)@@)AA=BBfCDDHEEFHGHHqI3JJKLRMNNOP{Q\R3STUUGHFEDRDCC{BA\A@R@?R?>f>>=3=<{<)<;;R;;::{:R:3:::9999999:):R:q::: ;H;;;<f<<={==R>>=??3@@=AA\BBC3DD{E)FFGHHIIJHKLLMN\O3P QQRSTqUFE)E{DC=CB BqA@\@?\?>f>===<\< <;f;;::f:3: :9999{9q9f9f9q9{99999 :3:f:::;\;;<R<<={==\>>H??R@@fAAB)CCqDEE{F)GGH\IJJK{LRMNNOPQfRHS)T UFqEDDqCB3BA A{@?q?>q>>==<R<;;H;;:q:3::99q9R9399 99999 9939R9q9999):f:::=;;;H<< ={==\>>\??f@@ABB\CDDRE FFqG3HHI{J=K LLMN\O3PQQRSTE E\DC CfBA3A@@? ?> >==<H<;;3;::H::99\939 98888888888889)9R9999=:::;{;;3<< ={==f>>q??@AAHBBC=DDEHFGG{H=I JJKqL=MNNOPQfRHS)TREDCHCBBfA@=@??>>=)=<H<;{;;:q:):99\99888{8\8H838)888)838=8R8q88889R999:\:: ;f;;)<< ={=>{>??@@=AA{BCCqD)EEFRG HHI\J)KLLM{NRO3PQQRSD3DCB=BAAf@?H?>3>=3=<H<;{;;:\: :9q9)9888R838 877777777778)8H8{8889\999=:::R;;)<<== >>??3@@fA BB\CDDfEFFG\H)IIJK\L3M NNOPQfRRSDCC{BA3A@@f?>R>=H=<R<;q; ;:H:99R9 988H887777f7\7H7H7H7H7R7f7{7777 8=8q8883999):::R;;)<<==>>3??\@@A=BBCHDDEqF)GGH{IHJKKLMqNRO3PQQRDfCBBfA@)@??q>=\=<f<;{; ;:=:993988R8877{7R737776666666 7)7H7q7778=8{889f99:{::H;;3<<)==3>>\??@)AA{B)CCD=EFF{GHH IIJ{KRL)MNNOPQqRCCRBAA\@?)?> >{=<q<;; ;:3:9q998{8)877q7=776666{6q6f6f6q6{666667)7\777 8R888H99 :q::H;;=<<===R>>{?@@\A BBfCDDEHF GGHfI=J KKLMqNRO3PQRHCBA=A@?\?>3>==< <;;:3:9f9 98\8 87{7=7 766{6\6=6666666 6636H6f66667\7773888399:f::R;;H<<R=={> ??H@@AHBBC\DEEFfG)HHIJqKHLMNNOPQB3BA@3@?>\>=3=<<;);:=:9\998H877R7766f636 655555555555566H6{66637{778f88)999f::\;;\<<q= >>=??{@)AAB3CCDfE)FFGH\I)JKKLMqNRO3PQ{BAAq@?)?>=\=<=<;3;:=:9\98838773766f6)6555{5\5H535)5555)5=5R5q5555 6H666 7R777R88999q::f;;{<==)>>f? @@fABB{C=DDEFHGHHIJfK=LMNNOPBfA@ @\?>>=<f<;R;:R:9f988)87q776{6=6555\5355444444444455H5q5556R6663777H8899:{::{; <<)==\>>?H@@ARB CCDHEFFG{HHIJJKLMqNRO=PA@H@?>R>==<;q;:f:9q98887\776\6655R554444q4\4R4H4H4H4R4\4q4444535f555)6q667{77=8899 :: ;;<<R==>)??@3AAB\CDDEfF3G HHIJ\K=LMNNOHA@?3?>=R=<<;;{:9{99887R766=655f55444\434443333333 44=4f444435q556R66 7f77=8899::);;H<<{=>>f?@@qA)BBCfD3EEFGfH=IJJKLMqN\O@)@{?>)>=<H<;);::998)87H766)655=544{4H443333{3q3f3f3f3q3333334R4445H555=666\77=88)99)::H;;q< ==H>>?R@AA{B3CCDERF)GGHI{J\K=LMNNq@??f>=={<;R;:3:9)98387H76{665f5544H4 4333\3=3)333323 33)3H3f33334R444)5{55)666\77=88=99H::f;<<3==>3??@HA BBCRDEEFG\H3IJJKLM{N @\?>>R=<<{;:R:9=98=87R76q665R554f4433q3=3322222222222223H3q333)4f44 5\556{66\77H88H99f::;)<<f=>>q?)@@ARBCCDqEHFGGHI{J\K=LM N?>=>=<H<;;{:9\98R87\76q6 65H544=433q3333222f2H232)2222)2=2H2f22223=3q334H444H55 6{66\77\88f99:;;R<<=R>??q@)AABqC=DEEF{GRH3I JJKLM=?>=)=<;H;::98f87f76{6 65=54{4)433H3322f2=22111111111112=2f222 3H333)4{44=55 6{66f77q889::H;;<3==>H?@@{A=BCCDfE3F GGHI{J\K=L)M>>q=<<{;:=:9988{776 65354q443f3322\2)21111q1\1H1H1=1H1R1\1q11111)2\2223f33 4f44355 6{66{78899=::q;<<q=>>?H@ AAB\CDDEFqGRH)I JJKLq>= =\<;;q:9=98877665354f443R332q2)2111\1=111000000011=1\1111)2f222H333\44)55 66 7788399f:;;R<==f>??@\ABBCDRE)FGGHI{J\KHL >R=<;H;: :q98H87)76)65=54\433=322H2211R110000{0q0f0f0f0q0{000001H1{111=2223333R44)556677388\99:=;;<===>f?)@@A{BHCDDEFqGHH)I JJK=<3<;:=:99q87H76=65H54\433)32{2)211R11000\0=0)000///000=0\0{000 1H1112f223{33H44355)66377R889)::q;<<==>>?{@=A BBCqDHEFGGHI{JfK3={<;;{:93988q76\65R54f43332f2 21q1)100q0H00/////////////0=0f0001\111R22 3q33H44=55=66R77{899\:;;\<==>H? @@AfB3CDDEFfGHH)I JJ<<f;::f98387 7{65f54q43332R211H110q0=00///\/H/3//////)/=/\/{////)0f00031113222\33H44=55H66f788=99:3;;<R= >>?R@AABC\D3E FFGHIqJf<;;R:99f87376 655{44332H2113100H0 0//f/=//........... /)/R////30{001f11222\33R44R55f667)88q9::q;)<<=\>??@qAHBCCDE{F\G=HI J<H;:9=987\76365544332H21{110q0)0//\/)/....f.R.H.=.=.=.=.R.f.{..../H/// 0R000R11222f33\44f55677\899R:;;q<)==>q?=@AAB{CRD)E FFGHI;:):{983876\65=54)43)32H21q1 10\0 0/q/3/...\.=...-------- .).R.{.../R///3000=11222q33q44566H778399:H;<<{==>??@fA3B CCDE{F\G=H)I);q:99q87)765\54H43=32H21q110H0//H//..R..----{-f-\-\-\-f-q----- .3.q...)/q//0q00311223{34455=66{788q9::;H< ==>\?@@ABqCHD)E FFGH: :\988\76654f43R32\21q11030//)/..R..---\-=-- --,,,,--3-R-q---.3.q../R//0f0031122 3344355f6 77R899f:;;<\=>>?@RA)BCCDE{F\GHH\:98H876R65543q32f21q110)0/q//.q.).--q-H--,,,,,,,,,,,,,-)-\--- .H...3///R003112233344\556=778=99:f;)<<={>=?@@ABfCHD)E FFG9=9873765H5443 3{221 10)0/\//.R. .-{-=- -,,,f,H,3,,,,,,),=,R,q,,,,-\---).q..///R00311)22333R445)66q7889=::;{<== >>?q@HABCCDE{FfG988q766{54H43)322110)0/R/..=.--R--,,f,=,,+++++++++++,,H,{,,,)-f--.\../{//R00=11=22R33{455\677\899:H; <<=f>3?@@ABfCHD)E FF9f87 7\655{43H32321)1030/R/..).-{-3-,,f,),,+++f+R+H+=+3+3+=+H+\+q++++ ,=,{,,-H---H.. /q//R00H11R22q3 44H556=778\9::;\<)==>?f@=ABBCDEF88R765R54 4q32R21=10=0/R/.{..-f--,{,3,+++f+=+++********++H+q+++ ,H,,,)-{--3../q//\00\11q233344{566{73889f:);;<=R>??@ABfCHD)EFR8763654=43 3{21\10R0/\/.{..-R-,,R, ,++R++****{*f*\*\*\*\*q*{****+)+\+++,f,, -f--)../q//q00{122)33f4 55\6 77{8399:{;H<==>?\@=ABBCDE737{655{43=32 2{10f0/f/.{..-H-,,3,++\++***\*=** *)))))**)*H*f****)+f+++H,,,R--../{/0{0 11)22R334=556R7 889H: ;;<q==>??@ABfCHD3E{766f544q32321100{//..-=-,{,,+{+3+**{*H**)))))){){)))))))*R****=+++),,,H--.. // 0011H223)44{5)667R899:f;3<==>{?\@3ABBCD7\654R433f213100//..-=-,q, ,+\++**H* *)))f)H)3))) ) )))3)H)f))))*H***+f++,q,,=--)..//)00H11q233\4 55q6)778f9)::;<\=3> ??@ABfCRD65=543=322f10=0/)/.).-=-,f,,+H+**\**))q)=))(((((((((((()=)q)))*\***H++,f,,=--)..)//=00f122H334H566q73889:R;<<=>{?R@3ABBC=654)4{323210f0/H/.=.-H-,f,++3+**3*))f)3))(((f(R(=(3(3(3(3(H(R(f(((()3)q)))3***3+++\,,H--=..H//f001322{3)445H6778H9::;{<R=)> ??@ABqC55q433f21)10/f/.R.-R-,f,++)+*q**))=))((f(=(((''''''''((=(f((()=){))*f**+++\,,R--R..\//011f2 33f4556R7889q:=; <<=>q?R@3ABCq544R322\10)0//q.-f-,q,+++*\**)\))((\()(''''{'f'\'R'R'\'f'{'''''(R((( )\)))R**+++f,,\--f../00R112H334f5667f839::;q<H=)>??@AB 5R432=210R0/)/. .{-,{,,++*R*))=)((f(('''\'='' '&&&&&& ''='\''''(\(((3)))H**+{++q,,q--.//=001)223=445q637789\:);<<=>q?R@3AB433321)10/R/.).--,,++*H*))))((=(''{'H''&&&&&{&{&{&{&&&&&&'H'q'''3({(()q))3** ++,{,--..3//q011f2334=5667R899:;f<H=>??@A34{322f100{/.R.-3-,),+)+*H*){))(f((''H' '&&&f&H&)&& & & & &&)&=&\&{&&& '='{'' (\(()f))3**++ ,,--3..\/00H112\3445R6778{9H:;;<=>q?R@=A33\211\0//{.-R-,=,+=+*H*)q) )(R(''\''&&q&=&&%%%%%%%%%%%%&3&f&&& 'R'''=(((R))3**++,,3--R../30013223\4556q7=8 99:;f<==>??@f321H10/H/..{-,\,+R+*R*)q))(=(''='&&q&3&&%%%f%R%=%3%)%)%3%=%H%f%{%%%%)&\&&&)'{'')(((R))3**)++3,,R--.//f011{23334q536778f9=:;;<=>q?\@3H21030/.H.--{,+f+*f*){) )(3('{''&&=&&%%f%=%%$$$$$$$$$$ %)%R%%%%)&q&&'R'' (q((H))3**3++H,,q- ..H//0R122q334456R7889:{;R<3=>>?21)1q0//{.-=-,,++{*){) )(3('f' '&f&&%%\%)%$$$$q$\$R$H$H$R$\$f$$$$$%H%{%%&H&&&=''(f((H))=**H++f,--3../)001H2334H5667{8R9): ;;<=>q?)2q10 0\/..q-,=,++* *))()('\'&&H&%%f%)%$$$\$=$$$######$$)$R${$$$ %H%%%&{&&)'''f((R))R**f++,)--f.//q0112R3445q6=7889:q;R<3=>?1 1R0/.H.--f,+=+*)*))(3('R'&&3&%%=%$${$H$$#####{#q#q#q#{##### $3$f$$$%f%% &\&&'''f((\))f**+,,R--.H/00f1223f435667q8H9):;;<=>\10/3/.-=-,,f+*H*)3)(=('R'&&&%q%%$$H$$###\#=#)## #### ##3#R#q####)$f$$$H%%%H&&'''q((q))*++H,,-3../=001q233345\637889:q;R<3=>030{/..q-,3,++f*)R)(H('\'&{&&%\%%$f$$##q#=##""""""""""""#)#R####=$$$)%{%%=&&''(())**=++q,--f.//0=1223R45567f8H9:;;<=0//f.- -f,+)+**q)(\('f'&{&&%H%$$H$##q#3##"""f"H"3")""")"3"="R"q""""#R###$f$$ %q%%=&&''(())3**f+,,R--.\/001R2334{5R67789:q;R<==0\/.-H-,,\+*)*)){('q'&&&%=%${$)$##H##""f"=""!!!!!!!!!!""H"q"""#\###H$$%\%%3&&''((3))\**+3,,-=../\0112q3=4 5567f8=9:;;</.=.-,3,+*R*)))( (' '&&%=%$q$$#f##""\")"!!!!q!\!R!H!H!H!R!f!{!!!! "3"q"""3###3$$$\%%=&&3''3((R))*++q,--{.3//0q132334q5=67789:q;\<H/.--q,+)+*)R)()(''&&%=%$f$$#R##"f")"!!!\!3!!! !!H!f!!!"="{""#f##${$$R%%=&&=''R(({)**R+,,\- ..{/=0112\3)45567\8=9:;;..q-, ,\+**{)(R('3'&3&%=%$\$##=#""H""!{!H!! { q f f f q )!\!!! "R"""R## ${$$\%%R&&R''q( ))=**+3,,-R. //0R12234\5367789:{;q.--R,+*R*)){('R'&H&%H%$\$##)#"q""!!R!! \ =    ) H f !\!!!3"""=## $q$$\%%\&&q'((3))q*++{,)--.\/001{2H34456{7\8=9: ; .R-,+3+*)H)( ({'&\&%\%$f$###"\" "!f!! q =   H { )!q!!"q""3##${$$q%%{&'')((\)**R+ ,,q-)../q0=1 223{4R536 7789:-,),{+**{)(=(' '{&%q%$q$###"R"!!H!! q 3 {\H3))3Hf = { !R!!"\"")## $$%{% &&''R(()=**+H,--{.=/001f2=3 4456{7\8=9):3-{,++f*))q('3'&&%%$$##"H"!!)! H f3=f R 3!!!R"")##$$ %%&&H''{())q*)++,H- ../\0)1123q4R5)6 7789,,\+*)H)((f'&3&%%$$##"="!{!! q  \)fRH===H\q)\) q !{!!H"")##$$)%%=&&q' ((\)**f+,,-\.//01\2)34456{7\8H9f,+*=*)(=(''f&%=%$)$#)#"="!q! ! R f)\33\)q R !q!!H""3##)$$=%%f&''=(()H**+f,)--.{/H01123q4H5)6 778+=+*)){(')'&%f%$H$#=#"H"!f!! = H{H{f\\\f{HH= !f!!H""=##H$$\%%&)''{())*=++,{-=. //0{1H234456{7f8+**f)( (f'&)&%$f$#R#"R"!f!! 3 {)R{\3  3\{Hq) f!!R""H##\$$%&&\' ((f)**+H, --.f/30 1123f4H5)6 77+f*))H('&\&%%$#q#"f"!q!! ) f fq={ =ff\ f!!\""f##{$%%H&&'=(()\*++,\-)../0f1=2334567**H)('3'&%R%$$##{"!{!!  RHq3{\=))=\{3qHH q!!f""{# $$=%%{&)''(3))*f+),,-.R/)00123f4H5)67R*)()({'&)&%$H$##""!!  H3H\3  3\=){= !{!"" ##3$$f% &&\'(({)3**+{,H-../0\1=233456)))q(' '\&%%{$#H#")"!! ) H{q\{fR=333=H\{Rf f3 !!"")##\$$%H&&'R( ))*H+ ,,-q.H/00123f4H536{)( (R'&%R%$ $q#"H"!3! 3 Hq Rq)R3  )R{\H\3 !!)""R##$)%%{&3''(R)**+f,3-../{0\1323345 )H('&3&%$=$##f"!R! H Hf=H{Hq\RRR\q{ =q3)R3) 3!!H""{#$$f%&&q')(()f*)++,-f.3/00123q4R5(')'q&%%q$#3#""q! \ \q3{H {R3)Hq={f{R== H!!q" ##H$$%R&''q(3))*+R,--./{0R1323443({'& &\%$ $f#")"!!q fq)f ff3 {q{{)\ RH qRHR f!""=##$3%%&H'(()H*++,-\.3/ 00123q4' 'R&%$H$#"\"!)!  )RHq3qR3   3Hf\33q\\f !!)""f#$$q%&&'R())*q+=,--./{0R13234\'&%3%$#3#"!R! ) )R3H\)H{3qf)qfq !!\"##R$%%f&''(f)3*++,{-R.)/ 00123&=&{%$$q#""! R 3)3H{qRq\H3)))3=Rq ={ R\{{ H!!"3##$=%%&q'3(()*\+3, --./q0R1=23&%%\$##\"!!{ R==Rq Rf){R) =q R3H  = {!""q#$$%=&''(R)**+,q-H.)/0012&f%$#H#"!H!  {\RRq =H{= {f\RHHR\q)f)q{==f !!R"##\$%%&R'((){*R+),--./q0\1=2%$=$#")"! =  {ffq3{)H qH)  =f)qR f=))=\ =!!"=##$\%&&'q(=) **+,f-H./001H%$##q"!!q =q{ )f ff3{qqqqRH=\=3=\) q!""{#3$$%q&3'(()q*H+,,-./{0\1$$f#""R! f3 )\Hq3qR3  )=\Rq)\HH\{\ !!\" ##$=%&&'\())**+,f-=./ 00{$##H"! = f33R3HR)=qf\\R\{ H =!!"R#$$%R&''()f*=+,,-./{0 $R#"!)!{ 3\=33RqRqR=))3H\{3q=H{ff{ 3{ {!)""#\$%%&{'H())*+,\-=.)/ 0#")"q!  f)\HHR{\f){H3\={= {q{ )f \ !!q"3##$q%=& ''()\*3+,,-./3#{"! !R \f\\{ HH{= {\RH==HRfRf f3  )R= H!""{#=$%%&f'=())*+{,\-H.)/" "R! =Rqq{ ={)H qH) 3R{\H\))H){) !R" ##$\%)&&'({)R*3+ ,,-.\"! 3 )H{ 3fff3qffff{ =q3)R3)Hq\ f !!"\#$$%&\'3( ))*+{,f-H.!3!{ f{H3\Hq)fH) 3Rq={f{H33HfHH q!)""#{$H%&&'(q)R*)+ ,,-!  \R qH))3\3HR) 3\ RH qR=Hf3{)= !!{"=# $$%{&R')())*+,f-!f ==fH==RqRfR3))=Rq)\33fRRff f H! ""#f$3% &&'(q)H*3+,, =){3fRH\{\fqH)R{3qf)q\fRH\ !\")##$%q&H'())*+,H ff)q\f{HHq= q\H=33=H\qH{ RRqq=)3f )!!"#R$)%&&'(f)R*3+,fR\){q={)H f= Hq R3H3qf{= !H"##$%f&='())*+qH3R)  3qf\){f\\\\q{3f)qq=3\HR H !!"q#H$%%&'(q)R*3+ H){)R)3\Hf)\==\fH\)H{qH  R!""#$q%H&)' (()*)q \{H3)3\3={H{qq{H{=)R))=q Rf\ !"R#)$%%&'{(\)=*3qRR qR==\qH {\=)  )=\{ Hf{H33=f==f)q =!""#$f%H&)' (() R3= q\R\{R\f= 3f\H qH=H\)q={= !q"H#$$%&'{(\)\){{3 {ff{H=f3{\H3))3H\{)f33fRR\\\H \ 3!""#$f%H&)' ((3{ \ f3 {{ ={=\3  3R3{f)f\f{H=\\ !f"=#$$%&'{( RH\) 3f fR f \ H H H H R f { H RRqq{ ={{3f{R !!"#$f%H&)' (\33R33\H\ { R 3  ) R { R3H{ 3f \ {3{=  !\"3#$$%&'3{qR33=\3= { =  { q f f f { 3 f )qq= )\=R = q= !!"#$f%H&)'H\\{\HH\f H { R 3   3 H q 3 q Rf3)R){)R \) {!R"3#$$%&\=H{\R\{R \  f 3 ) R H 3\=)3H{\ q)\)\3 !!"#$f%H&q=)= {ff{H = f ) q R = )     ) = R q  R  q R==Hq HHq){H q!R"3#$$%Hfq3{= {  = R )  H q  f R {\HRf3{)H{H {R) !!"#$f%fRf3 3 f \  R  { \ H = = 3 = H \ q = q = = q\\f)f fH f=  q!R"3#$$)f==\33 \ H \  { R )  = f =  { 3 {fqRHff)qH !!"#$H){)\=3= \ 3 3 q = q \ \ \ \ f { ) \  \ \ ) {{H)=f)\) q!R"3#$Rf f\HH \  f  { = q H )    = \  \ = R   =qf=Hf= !!"#)fHRf\ \ {  R \  \ ) {{{ H { 3 { ) { H ) 3fH\HqH q!R"3#{H3Hq q {  H 3 \ ) qH3   )=\{ = { \ q = ) )3\33\f3\= !!"R)q{={  = {  { 3 {R 3f R H f H 3 =Rf{3f3f= q!R")q \ q=   3 f \ HqR=3))3=H\{)\) { 3 \ H H R{RR {3R{\= !!={HHf= ) ) 3 \ = RqH 3R3q f  f R \ q =3H R\3  q! R33f = 3 = \ ) {3f3{fRRHR\fH{RR  { f f q 3qq)Rq={\= !f)qq) f H H \  f{3f= )R{R)= q { )\Rf)q3{R)  )qHR{ \ R \ q HHH{qfffq)\f f) {  H3=q3\3qR= {H3H  { f f { 3{)R{\= )Hf)fH\)   = {q=RqHR)q{ =  { { 3fq)q=R{=)R)   = f R\R{Rq\=)q \ f 3  )\Rq3{\=))3HfHf{H3 ) = \ ==\q= f=={H= \ 3   )R3H\3 =q\H qH= = \ ) q{3q3q={\ R){ 3 \ = ) 3R{q\{fR==3=HRf3f33fRH \ {  \ \ {=\)\= f)qf  \ H =R{Rf)R) 3\3{f)f\\ { H =R R\={3{ R \  \ R\q HH{Hqf\\\fqR RRqf{ 3 {  {)\{H{\=)  R = H  ffq3{)H {R33\{R3H{{ ) f \ q)q= {R3 \){  { =  {{ )f ff3 {{{ =q)qq=  ) R = H{=f= {\H)3{ \  q =   )\Hq3qR3   )=R{3qRf3)H  q ) H \)qR) H R H f =)R3=R) 3\H3\3))Hq  \ f \\){fH\ 3 3 \=33R{fRqR=3)))3H\{RqR=3Hf = H f){HqH) q 3 {  q ) \H=Rq Rf{Hppp )R{fR{RHHf3 {  = {= {H{f= \ \ fR\q ==q= p4p =q== q\Rf\ f  H f3 fH)   \ = Rffq3q=4>R4Hq3qffR = \  \)f=)f 3 ) H{{ )f \4Rp4 4pR4\\){q={) 3 f )R)fH) =  f q=  )R=HRpR((RpRH=R 3q \ { 3 {H\=R  \ R f=)H) zp>pH44Hp>pf{H3\H R H q=fH3  f = =f=33H{p( (\ fR>>>Rf \ \ q=)3R){) R  f3{\3{ = {)fH=Rq HH(Hz(p\\\p(z4(4z4f=33R{f q ) f ) \3 fR H  f ffRRq4z fHfH zzz HRHRR\H=Rq HH q 3 R{R3  f HRqfqR(zz((f pfpp> \RRq3)H H  {R) q3 q =3H{{R\>H H( 4\(f\q)ff R  q = qR3 = fq=>\f4(\f((fHRf4fqRHf f 3 qH)R \Hf34>\z>RHzH Hf4>pR4{H)=q 3 \ )qR3  f=3\=)HR\z\pf4f>((>f4R\4pR4 =qf= R  fH{ =q)\=pfp4z4R\H444H\R pz R pR4(43fH\R  { H qR= H\\\RR4>4zfRRRfzp( (p(pRHR\3\33\ f 3 f=\HR{ >pR\Rppp>H(HHpfpzRf{3f3 f = q\3q=)= (\4pzp\fHf f{RR {3 R ) \==fq=H( (\z R4R>zf(> =3H R \ 3 {\\RffH((>Hz(>4fp4 \> H\( 43qq)Rq H  {\= )f==f\>HR\zH\RR(>z \(4f zH( R\Rf)q3 { R ) =q) zpfpzfzp >pH 4\(zHR(fH( >p3=q3f 3 {\=)Rf \p> R>(\ f>(((>RzHfpHfH((4>\qHR q H ) fH\( (p\>Hz(\\HH\pffpRH>HR\z\R\R{R ) {\H=q=) zH((\z\fH zffz4>>>pf\R\z4z=fq=  f H )  Hf(fH( (Hz> zz(R\>\\zpz R{3q3qH  {\\fHfH((Hfp(>H 4pz\zz4(p\\ {=\) f H ) 3q=z4fH>4>Hf4H>\ f>(R4z >RHzR Rf=  {=>R z\f\fR f\z(\ HpR(\p> 4f>)\{H f H ) Rpp> z>( zHz>(>fp>Hz\( 4R\pq)q= \3  )f\4\((\H(4f\H444\>\f>zH( 4Rpz4{=f= f H ) ={zR zHHz fHR4fR>RRz \z\fH>4(4Rp >RH \){R3   H>(fH 4f(fp Rp\pp(z44z4f\RHRp\\>\\3  f H f>\HfH(  4R\ (p4 HR4R> zpfp4zz\){HqR) 3\z4fH>4(HRz4(HR(f pRp\(R> zp{= {H) f Rfzpf\z Rf\zpH \> 4H >p( f3 qR3  )4R(> >p(z4f(>z\(Rf4 (\4zH(4\)qH pfpHp( \HRH4 4\zH>pR (HzR fHRR)fR3  f\(Hz f4>pfR>((>Rz4f\4p> (HfpfpHf= (4R>zH( 4f(R\>p\HH\pR z R \>4((Hf44 qHfR3 \Rp\fH( 4RHpz\zffz4p( (p(z\RH>Hf RR4(43{\3zp4z4fH>4(HRpf44z>RH(HHzpf\fp(ppRHR\3 qR4RRf\R\fp>R4R\4pfHf RpzH4pfp {R3R4Rp> zpz\pRp z>Rfp> 4fRp\{R) qpfpH\(4zp (\4 4\> 4\(Rp>4z qR3 f zHf>(\zR((Rz \(4R z4 >p4H>4R4qH)(4R(f4Rp>HzpH44Hp(zHRpR4 (\ R f\Rp RqR3\Rp\f4 >p4\f4fR>>RfHfp4pR4 (Hf(p(zp (pf=zp4z4R4(4>\ R z Rp\\pfR pR4(4(HfHH H>qR=4RR fH>HR\z(p((4zz4>>p(pRH>Hff f4(4f\ \=R4>pp(f\fpzHH>\RR\>HHzpf\f>pRHRz(qRpfp4\zf f\zp4 4pz\f fz\4pfp >H\= R z4 >(z4R((R4z(> 4f R (\ fq(>(f4 (\HRpH HpRH\(R(p>(Hz(4R=\RpHR (H f4>pf>((>fp>4f zH>p4\>HfHRzpfpR4 (Hz(f\>\H44H\>\R(f4 (\ R z\ffp4R=>> pR4(4>Hf\z\ zfRRfz \zpHR4( (Hz(p( z >p>R4>pp(pRHR\fz44z(pp(zfpR4(4>HfHH( (\>\\=pR\4Hfpz RR4RH H>4>(pRHR\ff f4(Hf\ z>z\f>R z\\R\ f((f pRp\zR> zpzHRH qz \p> 4zzp(HH(pz4 >p\( 4fpf(4(Hz\(f> Hf>>fH >R(\zH(4R4>HRHfRzH( R\(4f\4 4\f4(\p>Hz>fHRp R\f> pz(p(fH( >p4z\R4zR>((>Rz4RHz\> 4f\fp(pz>\((HHfH>(4>\ R zp Rp\HH\pR pf>z\>(4R4z4 H>\zH>Hf ff\RHR\z(p( (pzffzp( \z\>4>HRp RR4(4f\ z>z\f(> zpfpHH(H>>H(4z4z\R\fp(ppRHRz(\z \p(f fHf\\fHRR zpfpH4pfp >Hz>4(HzH >(fz>>zfpp(fR (\ f\RHf>zH >pH>\4 4\> 4H >p>(Hz(4z> pf(pf4 (\ f4>\ zR((Rz \(Rf4 (\4\>HfHR\(H4R4((Hz(R\z(pH44Hp(zH>pR (Hz R f\ffp4z>H>Hf ffH>4>\f\pzH fR>>RfHf\4p> (Hf(p(zp >R\z\f(>f\R\z4z4f(p\\pؿfz R \>4((HfHH (\>p4zz H\(zz RR4RH ̾zz̾4ؿ>(p(z\RH>Hff f4(Hz\>4(4fzH(ppRؿp f(½½R\¿>HHzpf\f>p(RHf4z>\4RHf>f4H4p(½H ̼̼̼ 4p½z\ؿf fz\Hpf RH zR pf\R4HzRHf(ػ(R4z(> 4z f (p f(p4( 4z4pR4 4fp̾>4̼f»H HpRH\(R(p>4(H(H zRH>4fR pR4((HR4\̼R4f>((((>f̺pػ>4½f ¿zH>pH\>HfHfp4z\f(p(pRH>Hfؿ R zp R¹\HHHH\>\ػR(̾f4 (\ fz\ff4RzH\fpf¿(̼( (¹pffffz̸ \zpHR4 (Hz(> z>4Rp4(4f z4¿\H>¹H>··(z̸»f ؽpR4(4>HfHH(>\ Rp4f\f Rf4ؿHz»z\f\̶ Hط>(p̼z\>4(4Rp >RRHf(z (pR44f> z̶z>صµµص(f\·>Hع4f\RHRp(\p>4>p fH >(H4R4 4R\(>\̴̴ Hpµz\طfR ػzpfp4zz\R\(4f(pRHf fpR4((4RpعzطH>µ\ z>(f4fp(»R> zpzHRH pf(>pRH>HRp¹>fص\z(س\4 4HR4طH» >p\( 4fpf( H\pf\fp\zHzR>((>Rf̲p³>4µRf4ػ̼½̾ؿ(\zH(4R4>HH(Hzz4z̸Hص4fرp\HH\p>\³Rp̶RHz>fHRp R\f>f\f>f̾½̸fR³4>ر4zfff̰ \zp4p> 4f\fp(pz>Hz\>»̺¹̸>̴pRر\Rد¯(z̰ R µ\>4(4R4z4 H>\f>4z4p> >\4pz¯p4̮ H>(̲p(z\>4>HRpؿ RR4(4fH z>\>HfR ¿\> (\z³ R4Rح­­­ح(f \¯>HH̴z\R\fp½(pp>4Rf(Hz\fp(z\>4(4>Hz(p̰>4Rp4 Hح(z\دf fzpz̼H4\Rp >Hf> HH̼z\RHR\z̲H\̮Rحp̬R(>f4z(̰p>س̺fR zp\RH4(4f fzpfpzf zp>pH44\«RH\س̸ >̾p(4zp4f>RHR(̾R ر >̮( (\ ̪fR>>>Rzpث>4­f z4س̴µ̶ (\4H>4R4R\ fpHp( ط̶ر(\\(H̪z(p\\\p©>\ثR(̮R4 (Hz»R fHRp Rpz>( 4¿fػ\(̴³̲رHz­zثH̪fH ̨zzz\zpHpR (Hf̺p(fp(p>\\>4R>zH( 4f>f f(§ا>z̨4R ­\>4((Hf4ؽ4 H>\zz\Rp\̸fH(  4R\ (اH ̦̦\R4>̪p(z\RH>Hfط RR¿4(4f\ z>zp4ػz4fH>4(4Rpثzة4(§Hf(إإإ>z pاR̨\H̬zpf\fpµ(ppRHRz(\4RR صf\RHfp«>R§Hf¥H 4\إ(pz fzHع4pfp >Hz>R4¿>pp>³zpf\pf4f>((RzHz (̨> ث̲4fR (\ f\ pfp4\±Hzا4R£\H444Hpأf4(H\(ث¯̰R̶p̺>(Hz(4z>( R µz4¯«̪fR4>£pzfRRRf4أRHإf §zHث̬ح >p4\̼>¿HfHR\4H(>(f4ح̬ثR̦pRأ\>ءpppءR pf>fH >\س fz\ffHRfH½R̺\HR4>p4pz\̠4p¡( HR4(>\z(̶> z>4RpzpµfرpR4(>\¥ R4̠z>؟ŸŸRH(4£fإpRH>4>\z̰H\(>\ Rp4>> ¯pRH>4>\z(p̢>4R\4̞̞̞ 4pf̠H¡R>¥pf\R\zf³ fطH>½Hz(pRؿ>4>̶pp(­pf\Rpz̤H\̠R؟p zR(R̞fp\zpzح >(fع\fH>p4 pػR̸\4رHzf zp(p4 Hp> ¡z4̤«(\Hzf\R((pz Rf4̪أ >( H R>(((>f̜ \(>R̤¥©Hz¯ f³4>ؿpz>pH H>̲p̮R§¥̤أ (\\(4̜f(؛p\HHH\(zH>̞\p> ¥̦ا4f(Rµ4>»\>\ f(f̺H·>̴\4p>إ(HzŸz؝H̜RHzfffz̚ Hf̜\z؟\( RHpRط\z\ z(pHf\z f «\> (Hf>fp fؙ™(f z >zH( >pثf¯pz4̾z(H fz (̮(z\>(Hf̞\ (™4̘ Hؙ( \̞fH((4>\©>>RHf(ع>(\\̨z\RH>Hfz؛4(HRؗ———ؗ(fH™(4؛z4fH>HR\z̨\\̰>4>عp fH \µ>̲Hدz«z4̦zpf\f؝ >R™H̘f—p4 H—f̘H™RR f\fpz4z«z\̲Rص\(ؽ4f(zpf >Rz(ppfR(>f4fp\(zpzإ R> fpzHRH 4 (\p> أHؙ4 >pH44\R 4ؙzHأ(p\ z4̸f½pf(R4(Hثzا\(ء̠Ÿ4fR(•\̔fR>>>Rf̔p•(RfءHاzث4(4R4>HpR̰HحfRzH( R̘p̖>•Hz>p\\\p“>H•>̖pp>؝̞؟4f>R­H>سp R\f> pf(pfH( >p4\f\ ̒zzz \f\4ؗ\> 4R̤\pfد\(·p̼z>\³( H4fH((4>\— R z̒z(‘‘(z̒z RzH( 4Rpأz§4zH(\zH¯>4©f fءfH>HR\z(p̔(>H ̐̐ Hؑ>(\̖fH>4(4Rp¡>R4fH z>f\ثf(̤>Ÿf\fpz̖HH̒>‘\ f(؏؏؏(f\‘>Hؓz4f\RHR\z\p̨>4Rرpf(ػ\zH\(zf f\z(؏H Hz\ؑfR ؕzpfpz̞4zأz\̪Rحp>صHz>R4¥f ¡zH›ؕ >̒( z4f>((>f4zp(•zR> zp\Rػ\pح>4§R(f4ؙ̘—̖ (\H(f\H44H\R4ؑH•؛ >p\( 4̰zµp4z>\ةRpHR (Hz‘ f؏H>؍4zfRRRfz4p؍>4R f4̖ؕ—̘ (\4H>©H̬fHRػ\44¡z؝p> (Hf(f؍\R‹ppp‹R\؍Rp̐R (HzR fإ\ffµp4zR̬4(R>›\>4((HfH‹p\zp4p> (Hfp̠(z >د4RػpR̨H¥R̢pp(pRH>Hf؏f44>؉‰‰؉>z̊4R \>4((Hf4H («\Rp4fp4؝H̘pf\f >R‹4̊R\̈̈̈\R4>̌p(z\RH>Hfؙ Rf¡4(Hz¯p̴Rػ> Rf̖z(\pRp̈z>؇>z p؉R̊\H̎zpf\fp—(p̜RأH̦f4>p4̼\§(>̞p̚> ̔Hz؋p >\4 4\؇(pz fpzH4pfR\ ̴Rz\£R̠\4p> ̒‘̐؏4f>(\ zR>((>RzHz (̊> ؍̔4f R >ةp̮z(p4 zpzf —\( R\̈>H̆z(؅p\H4H\p؅f̆4(H\(؍‘̒R̘p̜>(¥H>H ̴R( >̚(zH( >p؉4z\̆fHzfRfz4RH؇f ‰zH؍̎؏ >p4\̞>¡Hf\ f(pHR4>̜\H̔fH>(4>\‰R z f؃p؃R p؅f(f4 (\• R z\f4̨zحH ̴f pءR̞\z—z4f\RHR\zp( (؃4̂̂4pƒHR4 (Hz(p̘( z>4f((pz >R ؑzpfpz̈HH>ƒHR؁R4…f ؇pR4(4>Hf̒HH(>£\ R­H ̴H((\p(؏f f؃\fp4 ̀ 4pR4>(pRHRHff fؙH>Ÿ\z(§p4f(µf̠H>HؗzؓH؍؇ >̄(z4R((R̀p؁R̂\H̆pf\f>̔(f؛\fHR­H f\ؙf >f4؋̊‰̈(\HR\~~h~<~~~<~~~\>pzƒf̆z\Hzfpf(z(p̐R4 (Hzƒ f4>~<~} }|||||P|P|||| }}~~\ >> ‹4z‘ f•4>ء̦z>­H ؟>(H4R4 (Hf(R~} }||{\{ {zzzzz {\{{P||}h~\(\\(؅̆‡‰R(R—4>\>\f(\›>Hؕf R ؍pR4((HfH~}||\{zzyHyxxxxxHyyyz4{{|}~fzH؇>pHpRؙ\z¡\ z>­Hz\ؗf(̐p(‹pRH>Hf؁f<~ }(|4{\؍f‘pz4z(إ\ f4z H\pfpf> }||\{hzpy|xw wvvupuHuHuHupuuvhv wwPx yz {(|H}~R4(>\z>>RHz(­R4(4‘f z4̈~H}|zyxwvvHutPttssssstPttHuuv\wPxHyhz{|<~pRH>4>\z̊H\(4>؛p fإHR̖H“R(R̆…h~|{ ƒ̂؁<~|4{y|x4wv u(t4srqHqp|p(pppp(pPpp qq>fpzHR¥Hؙ>(H؍z4p>h~| {y(xvu|t\shrqp(po onnhnHfR ‡\>4h~|zHywhvtsrqpo ohnmHmll|l|l|lllHmmnnoPp qؙ̞>¥Hz\ؑf̊p(z\R4>h~|z ywvt4srponnHmllk4kjjjjj kkkPllmn\o|ppqrtHuvPxz{}R(R4>•\>\f(4zHH̄zpR~|z y\wuPtrpqPp4on mPlkjpHpRؑ\z™\ z>¥HR4(4‹f f̂~|z y\wutr qonHmPl\kji i|hhg\g4g4g4g\gggPhhpi\؅f‰pz4z(؝\ fR̐HR(̆R \ }4{ y\wus\z(> RHf(¥ pfpHp( }\{pywusr|p om(l kihg gؓp f؝H “( ‡f ƒH(~{ywusrPpnHmkhjHih gf e|dc4cbhbbaaab؏\(ؗ4f(¥H(>(z~P|zxutrPpnlkjhg(f\zHRHf̎H‹>̈\\̀4|zPxfpƒz4p} {xv|thr|pnl kpigf ecba`_4_h^]p] ]\\\\\\H]]<^^_P`Ha\> >R~{Hy wtrpnl kHigfd\cb`` _^p]\(\[\[ [ZZZZ4[[[|\ ]]^_|`abdpef|hjkmoqsuxhz|4(R‡4>؍p R\f>\>>̄\~P|ywHu spnl kHigePd caP`4_<^H]P\[ZhZYYHY YX Y YpYYZZ4[\\]^_`\\‰>̆\z }z(xusHq4o m4kHige(dbHa_^p]|\[ZY YX(XWW\W4W4W\WWXPXXpY\zzpz >}\{xhvtqopm\kpigedhb`_^\[ZYXX\WVhVUUUpUpUUU4RH z>̌4 (̀~(|y wt4>؋pf(ؕ\R4(H }hzwHur|p؏Hz>؝ p؇R̄H؁f~\{xvs qn|lH H}zw urpm4khfdb`^\4[YXVHUTRQPP4ONMpM MLLLLLLHMMf̂H|y wPtq o|ljgpe4c a _ ]4[pYWV|T SQ|P\Oؕ\ f}z(xHuroHmjPhecpa\_H]\[pYWUPTRHQPNM|LKJIHIH(HGG\G\G\GGGH|HHI\z؅> (| yhvspnk if(da_][YWU(TRPOؕ\(H}hz\wtq oPli\gdhb(`][YWU(ThRP4OM|L4KJHH4GhFE EDPDDCCCD(D|DDpEFFG|HpIJKLhNOpQ STV|XZ\^`\ce(hjpmpru|x{~̀R̈z(p4z~{xurpHmjhe c`h^(\ZXV(ThRP OpMLJpIPH4GH ̎zRؕ4|yvt q>h>>>>4??(@@pA>=H=<<<<< =p==<>>?|@HAhB\CDE4GH=<P<;;4; ;:: ;\;;<|< ==>?|@AB(DpEF|HJKMOQSU(XhZ\\_a|d4gilorux{ f‡4R\(|xurolj\g|da\_\hZXU\SHQ4OHM\KIGp=<; ;::9p9H9 9 9H9p99<::\;<<=>? AhBC EFPHJLMOQ(ThVX [](`bpe(h kmpsvzH}>؁4R؍p}hz4w(t qn4kPheb(`] [X=<;::H98P8777\7\7778|889<: ;<<>4?|@A\CDFPH =<:98P87 766555555<66477|8H9<:4;P<p=>(@A4CDF|HhJPLhNPR UWZ\4_adghjHmPp\svy|p̆R?pA CDF|HJLNP\SUPXZp](`behknqtw {h~>p4 ̎|x urnkhe cP`]ZPXU\SPN|L?HA CDFHJL4OQThVX[h^ adfilorvHy|\ ̆RvsPp mj4g(dHa^[ YVTQ4OLJ|HhF|DB@ ?p=;h: 9765432<21H10|0P0P0P0|000p11243445 7(8p9:P<=?HA CD G I4KpMO(@hBDFHIKhNPShVHY(\4_bHePhknqHux|H ̆(lheb_\YVTHQNLpI GDhB(@=;98<6|42H1/h.H-, +* )P(' '&<&%%%%%&h&&4''|(H)<*4+P,-.(014346|8h:P<h>@B EGJL4OQTWhZp]P`cfil(psv(<:(8<6|42 1/.,+<*H)((\'&%H%$|$($$##$($|$$p%&&'|(p)*+,h./p1 3468:<> A\CEPHJpM(PRUX[^adh4khnq u|x|H hpe<h:P8h6|420\/-P,*)|('h&%$($# #"h"<"""<"h""4##P$$%&'()4+,./H1 3468: =\?ADF IKhN QTVY\_ c|@ CpE(HJM|P\S;9\7 5 3 14/p-+*|( '%P$4#" !P <H  ph | p!h"#$%\'(h*,-/p13579P<> AChF IKNQ|TWZ]`(d\gjnpqtPx{\Ha^\[(X UR4OPLpIF(DpA>|<:75\3H1\/p-+)P(&H%#"p!P \|\   4\(H !"($% '|(<*,-/135(8:<\?AD\GJLORUX\ _hbehPlo4svz}f`\YVS|PpMJG EhB?H=:P8631/-+)((&$#" 4<pHHHH<\( <"# %&P(*,-/1(4h68 ;=(@BpE(H KMPSVZH]|`c ghjmHqt(x{\p<^ [WTQNKHF\C@>;86P42/-+)((h&$4#!P  <p|(|< 4| !\#$&P(<*(,.(0h246H9;h>@ChFHI(L OR UPX[^aHehlorhvz}|\HYV SPLJ4GPDA>P<94742P0<.(,*((h&$ #p! H( H|4<h4|H<4Pp( !4#$&|(<*P,h.|02 57:<4?ADGhJHMPP\SVY\(`cf\;8<63p1 /,*(&$" !| ( h<<h4P4H! #$&(*,4/14h68;h> ADFILO SVpY\`\cf;8630.(,)'p%\#H!\<4|\<HP< p p h |ph4<p!#%')P,. 13h68;>A|DGJMPT\WZ^padPhk\o svRNK|HpEhB?<9 7P414/,h*(%#!|p| | \ 4 4 \ ( H (p |<!#%((*,\/1447:<?BEHK O;|8520H-*((%\# | Hh p |p|P(Pp|p hp  !\#%P(*p-(0258;>ADH4KNQ UX\_ cfjmHIFB?<963 1<.+(h&$!4 H 4 P4<<<<4P  4 H  \!$& )+h. 1469<@ C ;842\/|,)4'$<"p4   H P p ( 4p|||| p4 (p P H4   \<"$\'),\/<2 5(8 ;<>HA|DG K;|8H5<24/P,H)&# !hp hP<( < |(@h0@P``PH@hP@x|< ( <Ph ph !#&p)P,4/<2H5|8;>BpEH(LO4SVAHEH(LO4SVA EH(LO4SVhZ62/|,p)h&#|  P < \H\pP @`PhxP`pp`0h @ P`p\p < P  #h&p),/26p9<@CFhJMpQ UXP4 1-*'$!HH|  `H`0@@0 H(P` | HH!$'*- 1P47:<>A EH(LO\SV2\/(,(%" < PxH0PH`pHPhhP(`H0HP <  "% )(,\/25 9|<@\CFhJMQ U0-h*4'($ !<\| P \ P<(Px@P(0(@ xP(P\ P |\< !($4'h*-0(4\7:<>A EH(LO\S /+(p%h"\|H 4|p@(Hx@Ph@HP```H@ P@xH(@pxP4 H|\h"p%(+ /h258|<?\CFhJNQH-*&# < h p pH Hp0Hxx H0pH p< < #&*H-0347:>A EHPLO+P( %"4| 4 Hh0 @p0H`x0@HPPPP@0x`H0p@ 0hpH| |4! %P(+.2p58P<?\CFJN)&\#P <4Pp p Ph@@hx(@pp@(xh@PH pP4 ( \#&) -P0347:>A EHPL(($!|p <  (`(0h(@Pp(0@HHHH0(pP@(h0(`h< pP\h!$(\+.1p58P<?\C GJh&4#  4 |\`00`p 0h0 p`0x4|4  #<&),(03 7:>AHEH$p!<  ( p (HxP (` 0Hh (0@@@@0( hH0 `( P`xpH ( H!|$' +h.1H58P<?C G"|H<4(H h hHxP((Ph(h(hPxp@`<h H (  P"%H),(03 7:>AHE !|ph 4(@xH P(@` (00( `@(P HP(Pxp| \ hHP\ ($'*h.1H58P<?C\( (p@pH H`xм ``س мx`Hph0PpH 4h"% ),03 7:>Ah4 Hh`@ 0p@H 0 x(ثث(x P0 H@H Hph<   <p $\'*<.1H58P<@p<4( H <x0h@@Ppx@PPЬHp P0@`(Hh|\ H|<"% )|,03 7:<>|p h 0(0h0мx@(p ФФ p(xм0@@h`pP\< H P | #\'*<.1H58|<|  @ p(00xHhxpx0HHxp@xh(0P @`xp| (\"%(|,03 7:\(  x( (`(p0 hh pp(00`h( 4hP #4'*<.1H58h\ ( < ((p@`xph (@@(ph0 `x (xH0Pp <p4"p%(|,03474 h\|0p 0 xPx ثh(x``xأhhдP((Px`(4<H | p( #4'*<.1p5p< pxx м h0Pph(` xؓ00ؓx `(P HдxPp@(HhHp| P h!p%(|,03| H  (h(pHpФ` pؓPPؓ Мx`H мpPH`( \H( #4'*<.1 PHxhpp`(Hh؛` PpЌ((((ЌpP0 Hأ@pHph0 @`@4h (h!p%(|,(0 h`(0@@hpPЌЌpP@@hxHxPh<p 4hH( #4'*h.< 0 `HhHx0 `Д@(Hp ЄЄ pH(@xМ0h@h`(0P0| p h!p% ),HP (00xhؓxxHHxxhHx0`ػp@@p0H`p P < ( #\'*P@(P@x`@p(xp0 ~|0|{{0||~@ 0p(`0`سP H((\ |\h!% )  H ((xp@`xp|zPxwu utt uuwxz|0p`x@p(أثPдh0P0h(@Ph\ < ( #\'\ H0pP0h xPxp؋h(0|xus@qpnnpmpmnnp@qsux0|`؃h ((PЬH@ H < |\h"%x@xм Мph0Pp|x uqn0l@jhgg`f`fggh@j0lnq uPx0|Pp0 xФH@`(H(` 0H`H|4  P #x@(hH(`pHphЄ~@zu@qnjg e0ca```_`_``a0c egjn@q uy~x` H@0Pp P\h"(px0pثh`(H|w0sn@jgc`^0\ZYPXPXPXPXYZ0\^`0c`f@jnrw0|؃p0 @ P(PhP  P p0 x`@ Ph@h`؃{up0lg0c`0\YW U0SR@Q@Q@Q@QRS UWY0\`_0cgkp uzP@@h0x(hHhH P\ hp(hسФ`P@ztnid`0\PX URPN0LJ@J@J@J@JK0LNPR UPX0\`dhnsy0h`(0HH`((  xh(pP0Hx`0`؃y0spmgbp]Y U@QNKHG EC0C0C0C0CC EGHKN@Q UXp]aglrx`00`؛pд@H`@`hH P\ `xh `Ьx؋؃xr0l`f`[`VQN@JGDA@><0<;;0<<>@ADG@JNQ`VZ`ekqPx``0`ؓP (Hx@@P  H(p` `سhH(@pxP(Pxqk e`_YT`OJG0C@p=:875 544 5578:p=@0CGJ`OSX^dj@qPx؃؋PДh0hx@Ph0P<H Pp`ػPpЄyqjd^PXRpMPHC@0<8`6310..p-p-..013580<`?CGLQWp]c@j@qxP(PЌH @pH@|  hPPЬ`@ 0hpH@zrjcp]WPK`F@A<8 51.,@*(''`&`&''(@*,.1 5P8<@EJP`V0\0c@j@qyЄH`((`p0H`(Hp<H P0hPдHأxh{0skc\`VPID`?@:51.*'%0#! `` !0# %'*.@1 59>CH`O U0\0c@jq@zH@ؓ0س@x0|\ <xHмHP0(`|t0ld\U`OHBp=703.*'# 0PP0 #'@*.27<AGN U0\0cj0s{@P @ P(@P @hpH |(`H@Мp؃~upm ep]UNPHA;`600,'#  @@@@ 0`0#'+05:@GN U0\c0ltp}0Ќ(Ь0 (P p@ػ@xH( Pwn`f^`VNG@A:4.) %  @ @ @ @  P0 $(.39@GN U\ epm`v`(H0H 0Hx0` H P@x0hypg`_W`OG@93p-'"   0000  @ p!',28`?`FNU^`fnPxp (P4 h0д0p@ 0|ri`PXPPH@920,`&   ```` @ ` %+1P8`?GNW`_g@q@z(x@(@pHP H x0p((~ ukbY@QH@A92+ %`  @@ 0 `$*@1P8@G`OPX`i0s|x PP`((h0wnd[R@JA@:2+$Pp `ݿ ܿڿڿ ܿݿ`P p#@*@18@PH@QYb0lu p0 0h@H <(xpzpgp]TK0C:03+$@ `@޿ٿտѿ`Ͽ ο̿̿ ο`ϿѿԿ`ؿݿ` @ 0")@18@AIQZdnPxH(` 0H`pػhp(0@HP@p0 `x~si``VpMD0<30,$p`@  ܿտп˿ǿÿ@@ÿ`ƿ@ʿ`ϿԿڿ@@ 0 "@*19BJSp]g@q{0PؓpثPp(  Pp؋hwlbX`O`Fp= 5, %p``0`޿տ οǿ¿`@౿@` @`ƿ̿Կ ܿ `0#*2:CL`V`@jt~ЄP؛Phд` (0@P0Ьh(Pzpe[QPH`?`6.%``P``ؿ`Ͽǿ@`@ `@ @``ƿ ο׿@p 0#+3<E`OX0cpmwHЌPhФHh  HxhЄ~sh^TJ@AP8`/'`P@@޿Կ@ʿ@౿ ` @`ɿѿ ܿ@`p $,5>PHQ0\`fp{HДH`(P (0@(` HwlaWpMC@:@1P( P@ ܿп`ƿ @ࣿ ````@ ౿ÿ ο`ؿ `p%.7@AJ U`_itpH`أ@`@؛p`{peZP`F<03@*@!@`ٿ ο¿` `@xuppnp@s@x ࣿ@ʿ׿``'0@:CpMPXbpmxؓP سH (0 P؋ti^SI`?50,0#@ ``ؿ˿@`@ukc@\WTRRTW@\ck@s`౿ ǿԿ` )03<`F@Q[`fq|x@PhМ0Px0ДhPxpmbWLBP8. %00 ``ؿ@ʿ౿` @@sfY@OG@;@855@8;@E@OWcp}``ࣿ `ƿԿP"+5`?IT`_@juЌHЬ@ (xHЄ~q`f[PE;@1' 0 ``ؿ@ʿ `ࣿ` ufWG=@3+#@@#)0;ER@ap@@``ƿԿ@ $.P8BpMPX0cn@z0H`(Hpx(`Hwj`_TI>4@*  ``ؿ@ʿ @@}kYG;+@!@ )5ETf@x`@ ſԿ p'@1;`F@Q0\g0s`؋@x0 xp@؃{pcPXpMB7p-0# @ڿ@ʿ @`@x@a@O=+@@׾;Ǿ¾¾Ǿ;׾ )@8@J@\p` `ƿտ`p ` @*4`?@J U`0lPx@P @hpx Pth\@Q`F;0`&0 ܿ̿ p@\E@3@!@Ҿ; @.@Tk@ `ǿ`ؿ``0#p-P80CNY e@qp}Є0p(ph0ypmaU@J`?4)`   ο nT=)ǾaM8.$$$8Ca¾#@8@Of@ɿڿP0`&@10<GR^@j`vHx0`h xx`r`fZN0CP8p-"Pѿ`kR@8@! Ҿl8LLLLt8aǾ@@3@Jc} ຿˿ݿ`@ `@* 5@KW0c`o{( ثh`Pxk`_SG0<@1`&@Կÿ౿@i@O5@l.<$=t=t=t=t=L=<$W׾.G@a} `Ͽ@P0#.8DP0\Phtp(P` x؋p~@qdPXL@ 5@*`@ ٿ`ƿࣿ@iL@3Ҿ8t $===>>.>.>8>.>$>>==L=L̽.lǾ)E@a``@@ӿ`@`&1p=H U@apm@zФث`Pw@jp]@QE9.0#Pp 0޿˿` kL0Ǿa L==>C>a>>>>>>>>>a>C>$>=t= <LM )E@a@@@ ſ`ؿ@ `*`6AN@Z`f0shЌ@HPpxЄ|p0c`V@J>2'0@``п@`n@O0C$==$>W>>>>>>>>>>>>>>>a>.>=t= . )Ec@ @ʿݿ0p P#`/:G0S`_0lxHxPHuh0\`O0C7+ @ @տ¿` @@sR@3.=>W>>>>>>>>????>>>>>>>l>.>=<Ll )Gi `Ͽ``@P(3`?KPX e@q~x0@hp{na UPH0<0$0 ܿǿ@@ @xW5t<=C>>>>>>? ???@???@???@??>>>>>W>>t=a +Ln @Կ@@ @!,P8D@Qp]@jw@pxHtgZN@A 5)p` ο @@\;$L=>a>>>>> ??@!?)?0?5?@8?;?;?@8?5?0?+?#??@??>>>>.>= W@0Ru@`ƿ ܿ0%@1p=@J`V0cpp}p(0`hpm`SG@:."` @Կ c@=$>>>>> ??)?@3?=?E?L?R?T?W?W?W?R?L?G?@?5?+??@??>>>C>=̽W5Y} `̿`@*`60C`O0\i`vhpx@gYL@03'`ڿ`ƿ౿kG#¾=8>>>>??)?@8?E?@O?Y?c?i?n?p?@s?@s?@s?n?k?c?@\?R?G?;?+?@?@ ?>>>W>= <̽a;@a@Կ@ 0#`/0<PH Ub`o| (`h`_Q EP80,``̿ u@O+Ǿ=C>>>>@?@!?@3?E?T?@a?k?u?}?? ?`???`? ???u?n?@a?T?G?5?&??>>>W>=v#Gn@@ǿ޿@p)5B`O0\iw@ xPXJ>@1 %P @ԿY@3@׾$=M>>>??+?=?@O?@a?p?}??? ??@?????@?? ?@? ?}?p?c?T?B?.???>>a>= Ǿ+R@x `Ͽ`@ `".;PH Ubpp}px@QC7@*@@ ܿ`ƿ`c=.$=M>>>?@?@3?G?Y?k?}?`???? ??@?????@?? ?`?@? ???p?^?@J?5?@!??>>a>=׾@5@\@@`ؿ`0`'4@AN[h`vpx@J<00#@ ο`pG@!Mt=C>>>??@8?@O?c?@x? ????@? ?@??`?????`??@?`?@? ?? ?`?{?f?R?=?#? ?>>W>=$.@f@@ʿ@`P p-@:GTa`o|px0C5(00`׿@}T+aL=8>>>?@!?=?T?k??@?@????`??`???????? ?`??`?@?? ????n?Y?@?)? ?>>M>=tC#@Ju` @ӿ@@p `&03@pMZPhuhp0<.! `@ɿ౿ `@a@8@Ҿ<$>>>?#?@?Y?p?? ?`?@??????`??? ? ? ? ??@?`???`??@????`?u?^?E?)? ?>>C>L=l.W@ ſ ܿ``0,8`FS@an|px 5'@@ӿ຿ࣿ pE@>>>?#?@?@\?u?`?? ?`?`??? ????`?? ? ?? ??`????`??`??????{?@a?E?)? ?>>.><Ҿ;f ο` P %1`?L@Zgu`h.  ܿ ſT)8$=>>?@!?@?@\?@x????@??? ??@????`??@???@??`????? ?`???????}?@a?E?)??>>>@Ju׿@*P8E0S`n|pxؓ' οc@8 Ǿl=a>>>?=?@\?@x?@??? ?`???@????????`???`??????? ?????? ???}?@a?E?&??>>=$C.Y౿ɿ@@ #@1>0LYgu` ٿ@sG@$=8>>>?;?Y?@x?@?`? ?? ?`?????????@@@0@@@0@@@@@???@??????@??? ?}?@a?B?@!??>a>=v;=iࣿ຿@ӿ0@*7 ER`n|pxؓ ˿౿W+. >>>?5?W?u?@?`?`?@??@???????@@`@P@ @@ @ @ @@ @ @P@@ @@?`???@???@??? ? ?}?^?=?@?>>8><@!L{ ſ޿0#0>KYguP`տࣿi;@Ǿat=>> ?0?R?@s??`?`??@? ?`?????0@`@@ @p @`@@@@@@@@@`@@0 @ @`@0@@`?`? ??`???@? ??{?Y?@8??>>>80^п@0(7DR`n|pЌ @ǿ`}Lt=W>>?)?L?n???`???`? ?`???@`@@ @p @@@ @`@@P@@@@@`@ @0@@@ @@0@?@???? ?`?@???u?T?0? ?>>=vҾB@s¿ڿ!0p=KYguH@ӿ@@a0$.>>>@!?E?i? ?? ?????@??@@@p @@@@@@0@p@@ @ @ @ @@p@0@@@@ @@@@ @@@???@?`?`????p?L?)??>M>$=&T̿`p (`6DR`n|޿ ſ@@sE;lL=>>?=?@a??@???????`?@@ @@@P@@@@!@0#@$@%@'@'@'@'@%@ %@0#@@!@@0@@ @@@ @P@@? ???`????`?i?E??>>>C@ @8i``ؿ@`!`/p=KYgu@п W)t=a>>@ ?@3?Y?}??@???????0@@@0@@@`@"@%@P(@@*@0,@,@.@.@.@.@p-@0,@@*@P(@%@0#@ @0@P@@`@@ @@???? ?? ???@a?;??>>=ܾ@L}`@ʿ @P(`6CR`np}ݿ¿`n; 8 .>>?)?@O?u???`???? ??@@ @@ @@@@"@`&@)@,@`/@@1@03@4@ 5@5@5@ 5@4@03@@1@`/@,@@*@'@0#@`@@`@@@ @@???@?????}?Y?0??>W><0@a ׿0@!`/<KYg`v`Ͽ@R=>>@?E?k????? ?? ? ?@ @@@@0@@!@%@)@p-@0@3@`6@P8@@:@;@0<@<@<@0<@;@@:@P8@`6@3@@1@.@@*@`&@!@p@P@@ @`@??@??????u?L?&?>>>WǾEu ɿ0 @P(5DR``o@`f@3$=W>> ?@8?@a?????? ?? ? @ @@P@@0#@P(@,@0@4@7@:@p=@`?@@A@B@0C@C@C@0C@B@@A@@@p=@;@P8@ 5@1@p-@(@$@`@@@p @`@????? ???i?B??>>=̽)Y`຿Կ` 0@!.p=KYPh@`}@J;a>>?)?T?}?? ?????? @0 @0@@`@ %@@*@`/@3@7@;@`?@A@D@`F@PH@I@@J@J@J@@J@I@PH@G@D@B@`?@0<@8@4@0@+@`&@ @@@p @`@?`?? ? ?@???^?@3?@ ?>C> <. =p`ƿ@ 0 '5DR@a @@a.̽=>>@?E?p???@? ????@0 @0@@@ @`&@0,@@1@`6@:@`?@B@`F@H@K@pM@`O@P@@Q@Q@Q@@Q@P@`O@N@0L@I@`F@0C@@@;@7@2@p-@'@!@@ @p @`@?? ?@?`? ??{?R?&?>>=t@!T`@ӿ  .p=K@Z@xE8 <C>> ?@8?c?`?? ?@?@? ??@ @0@@@@!@'@p-@03@P8@p=@A@`F@@J@pM@P@R@ U@`V@W@PX@X@X@PX@W@`V@ U@0S@P@N@J@G@0C@>@9@4@.@(@"@0@ @p @@?@?`?`?@???n?B??>l>L=@8k`@ ſ '`6D0S@\)=>>)?T???? ?`?@?@?@ @@@@@!@P(@.@4@@:@@@D@H@pM@@Q@T@W@Y@0\@p]@^@`@`@`@`@^@p]@0\@@Z@W@ U@Q@N@@J@E@@@;@`6@0@)@0#@0@@ @@`?`??@? ?? ?^?@3??>$>aҾ@@O@ ѿ  `/p=0Lu@ $=l>>?E?p? ???@???@ @@@@!@P(@`/@5@;@@A@G@K@P@T@PX@[@^@`@0c@d@e@g@g@g@g@e@ e@0c@@a@^@0\@X@ U@@Q@L@G@B@p=@7@0@@*@0#@@@ @0@??`? ??@?{?@O?@!?>>=@3f ÿ P(`6 EY&vL>>?@3?^? ????`???@@@ @P(@`/@`6@<@B@PH@N@R@W@[@`_@b@e@Ph@@j@k@l@n@n@n@n@pm@0l@@j@Ph@e@0c@`@0\@PX@S@`O@@J@D@>@P8@@1@@*@"@@0@@ @@??@??@??k?@??>M> <C¾@J}п .p==@ t=>>@!?@O?{?@???@?`??@@@ @'@`/@`6@p=@C@I@`O@ U@Y@^@b@`f@i@l@`o@@q@0s@t@ u@u@u@ u@t@0s@@q@`o@pm@@j@g@0c@`_@Z@`V@@Q@K@E@`?@P8@@1@@*@!@@@@@??`? ?`?? ?@\?.??>=.@a¿޿ '`6@!ܾa.>> ?=?k?????@??@ @@@'@.@`6@p=@D@J@@Q@`V@0\@`@ e@i@pm@p@s@`v@Px@@z@{@0|@|@|@0|@{@@z@x@`v@t@@q@n@j@`f@a@p]@PX@R@L@`F@`?@P8@@1@(@@!@@@@?`?@???@?@x?@J?@?>l>$=$E{`п `/=>>)?Y???? ??`?@@ @@@%@.@5@p=@D@K@Q@PX@^@0c@g@l@p@t@w@z@p}@`@@H@@@@@H@@@p}@{@Px@ u@q@pm@i@d@`_@Y@S@pM@G@`?@P8@0@P(@ @@@@?@???@?@?f?@8??>>L)^@`¿޿ P(ҾWM>>?E?u????@???P@@@#@,@ 5@<@D@K@R@X@`_@ e@@j@`o@s@w@{@~@@@@0@(@Є@ @p@p@ @Є@(@@@H@`@0|@x@ u@p@k@`f@`@Z@T@N@G@`?@7@`/@'@@ @ @@`?? ?`?`?@?T?#?>>t= B@x``Ͽ@!̽=>?0?@a?????@??@`@@"@*@3@0<@C@K@R@Y@`@`f@0l@@q@`v@z@~@H@@x@@@@P@@@@@P@@@@Є@@@@0|@w@r@pm@g@a@[@ U@N@`F@>@`6@.@ %@0@@@??@??`?`?p?@?@?>.>v&@\@`@޿ @C <a>>@?L?}?? ???`?@ @`@ @)@2@:@0C@J@R@Y@`@g@pm@0s@Px@p}@@@Є@@@H@@@0@؋@(@x@x@x@؋@0@@@P@@p@@@~@y@t@`o@h@b@0\@ U@pM@E@p=@ 5@0,@0#@@@@?@????`?@\?+?>>=@ @@x`@п0=>?@8?i?? ? ???? @@p@'@0@9@A@@J@Q@Y@@a@g@n@t@@z@`@@@x@h@P@@@@Ќ@@@`@@@@@`@@@ @؋@@@@ @@P@{@`v@p@i@0c@0\@T@L@D@0<@03@@*@ @@ @@`?????@x?G??>C>aܾ#@\@ ¿޿0 <l>>#?T???@?@???`@@@$@.@7@@@H@@Q@X@`@Ph@n@ u@{@@0@@@@@؋@@@P@@@@@@@@@@@@@`@@x@@@h@(@H@p}@w@@q@@j@0c@[@S@K@0C@@:@@1@'@@@ @?????@?c?@3??>=@@xп >> ?@?p???@?`? ?@p @@!@+@ 5@>@G@P@PX@`@g@`o@u@|@H@(@@H@@@@H@@ؓ@ @@h@@@@@@@ @(@@@@@(@@@ @@@~@Px@@q@@j@b@Z@R@@J@@A@P8@.@ %@@@@????`??@O?@?>W>W׾#Y`¿޿ >>)?@\?`???`?`?? @@@(@2@0<@E@N@W@`_@g@n@`v@|@@Є@@@@Ќ@@H@0@Д@h@`@@H@@@@@@@@@@@h@ @@@@p@0@@@@`@Px@@q@i@a@Y@@Q@PH@`?@5@0,@!@@ @@???`? ?k?@8??>=̽=u`п >@?E?@x??? ???@@@%@0@9@0C@L@U@^@`f@n@u@p}@@@p@P@0@@P@@Д@@P@@0@(@ @@@h@h@@@ @(@0@@@@@ @0@@@(@H@h@0@`@Px@p@h@`@PX@`O@`F@<@03@(@@@@? ??? ??T?@!?>a> <M׾@!Y`¿>+?@a?@???@??@@ @@"@,@7@@@@J@S@\@ e@pm@u@p}@@@@@؋@@@ؓ@@P@@@؛@p@@@@H@@@@@H@@@@@(@@@@x@@@@Ќ@@@0@`@w@p@Ph@`_@W@pM@C@@:@0@%@@@ @@???@??p?=?@ ?>==u`ѿ?G?}?`???@??P@@@)@3@>@G@@Q@Z@c@0l@t@|@@@@H@x@`@@@ @`@@؛@@`@@@@0@(@Ф@ @p@p@ @Ф@(@@@@H@@@x@@@P@@0@P@p@@@@0@`@w@`o@`f@^@T@J@@A@7@,@!@@0 @@??`??`?Y?&?>l><MҾ@!Y@`ÿ0?c??`??`?`?@`@@%@0@:@ E@`O@PX@a@j@0s@{@@@H@Ќ@@@@@@p@`@H@@x@@@@P@@@@@P@@@@Ф@0@@@@؛@H@@ؓ@@@@@0@~@`v@pm@ e@[@Q@PH@>@3@(@@0@@??`? ??u?B? ?>>=@x`L?????`?? @`@!@,@7@A@0L@`V@`@h@q@z@H@p@H@Ќ@P@@@H@(@@@@Ф@h@@H@@@0@ث@(@x@x@(@ث@0@@@P@@p@@@`@М@@@`@x@H@@@@@@p}@ u@0l@b@Y@`O@ E@:@0@ %@@@@@ ?? ???^?)?>v><CҾ@!@\@i? ?????@@p@(@3@>@H@0S@p]@g@p@x@@ @@Ќ@P@ؓ@@@@ @@@@x@h@P@@@Ь@@@`@@@@@`@@@ @ث@@@@ @@P@@@@Д@@@@@h@@@0|@0s@i@`@`V@0L@A@7@0,@@!@@ @ ??@???{?E?@?>>@@x? ????@@ @@$@0@:@E@P@@Z@d@n@w@@x@@x@P@ؓ@`@@@@0@@@@ث@@@P@H@@@@0@@@@@@@@`@@x@@@h@أ@H@@@P@ @@@@@@@z@@q@g@p]@S@H@>@03@P(@@@ @?`?? ??@a?+?>v><CҾ#@\?@? ???P@@ @+@7@A@L@W@@a@k@ u@~@@@(@@ؓ@`@@@H@(@@H@@p@`@H@@س@ @@h@@@@@@@ @(@@@@@(@@@Ф@@@@؛@@ @H@p@H@ @@Px@n@d@Z@P@E@@:@`/@#@@0 @@`??@??}?G??>>@{?`?@??@`@@'@2@>@H@S@^@Ph@r@0|@@@@@@`@@h@@Ф@@@@Ь@@H@@д@@`@@H@@@@@@@@@@@h@ @@@@p@0@P@@@`@(@@Д@@Ќ@@(@`@u@k@a@W@L@@A@`6@*@@0@@??@???c?.?>><C׾#^?`?@?? @`@"@.@9@ E@P@Z@ e@`o@y@@@@@0@@@h@@ @P@0@@P@@д@@P@@@(@м@p@@@h@@@ @(@0@@@@ @0@@@(@H@h@0@@(@P@x@P@(@@0@|@0s@h@^@S@H@p=@1@`&@@@@@@?`????@J??>>B??`?@@p@)@ 5@@@0L@W@a@0l@`v@P@ @@@@@@h@@@p@@ث@@H@س@@P@@@ػ@p@@@@H@@@@@H@@@@@(@@@@x@@@@Ь@@@0@@؛@@ؓ@@0@@@@z@p@ e@Z@P@D@8@p-@@!@ @P@???? ?f?.?>><M׾&??? @@$@0@0<@G@0S@^@h@0s@p}@؃@@ @@@@@@@@@x@`@@@д@`@@ػ@@`@@@@0@(@@ @p@p@ @@(@@@@H@@@x@@@@@0@P@p@@@@0@`@@`@0@@@@p@@w@l@a@W@K@@@4@P(@0@`@@??? ?@?@J??>>@ ??@@@+@7@0C@N@@Z@ e@p@z@@@`@(@@p@@@@p@H@x@@@@@@ @`@H@@x@@@@P@@@@@P@@@@@0@@@@ػ@H@@س@@@@@@@@@@@@@@(@~@s@h@^@R@G@;@`/@0#@`@ @?? ?@?`?f?0?>><Mܾ ?? @@%@1@>@@J@U@@a@0l@w@@@@@(@@ @H@ @@x@@0@h@H@ػ@h@@@x@h@@@@@@@(@(@(@(@@0@@@H@@@ @0@H@@x@@@(@@@@h@@@h@@p@@(@`@@@@z@`o@d@X@pM@A@5@)@@@0@??? ??@J??>=̽@?`@@ @,@8@ E@@Q@\@Ph@0s@~@(@H@h@0@@(@@Ф@@x@@@@@м@`@@(@h@P@@0@x@@h@@@@@@`@@@@@@@@@@@@p@@@x@H@p@@@@p@H@x@@@@@`v@k@`@T@H@<@0@#@@@ @?? ?@?`?f?.?>l> <a@p @@'@3@@@0L@PX@c@`o@@z@@@Ќ@@@0@@(@P@(@@س@@@@p@P@@p@@@@p@@P@H@@@0@@@0@@@@H@P@@@(@@@P@@@@h@0@@д@H@p@@p@@М@@0@h@H@(@p}@r@g@[@P@C@7@*@@@@@ ?@?`??@?@J??>=@@!@.@:@G@0S@`_@j@`v@@@0@P@p@@@@0@@ث@@@`@@@@@h@@0@p@`@@@@@@h@@@@@h@@@@@H@@@@@`@x@@@@P@д@@ @@Ф@P@@@@Ќ@@@@y@n@b@W@J@>@1@%@P@ @ ?@?`??`?f?.?>l>@@(@5@A@N@@Z@`f@q@p}@(@@@ؓ@@@@@@0@`@0@@@@@x@`@@@x@@@@x@@`@P@H@@@@@@@@@H@@`@h@@0@H@`@ @@P@p@@@@ػ@P@x@@x@P@أ@@@@p@P@0@@P@ u@i@^@Q@E@8@,@ @@ @`????@?@J?@?>=@"@0@<@H@U@@a@pm@x@@@@ @@@`@x@H@@@@@@@h@@ @@@@@@@x@h@@@@@@p@@@@@p@@(@@@P@@ @@@h@@@@@`@ػ@@(@@ث@`@@@@ؓ@@H@؃@0|@p@ e@X@L@@@3@'@@0 @????`?f?+?>a>@)@7@C@P@\@h@t@@@0@@@@@Ф@@@@@h@@@@p@@@h@H@@@@@@ @h@`@P@@H@@@H@@P@@@p@@@@@h@(@@`@x@@h@@`@@@@`@@h@@x@`@@@Ќ@`@@w@0l@`@S@G@:@.@ @0@@????@?G?@?>#@0@>@J@W@c@p@{@@H@@(@@@@P@ @@@@@@p@@(@@@@`@@@p@@@@@@x@@ @ @@x@@0@@@@`@@(@@@p@@@ @@h@@@0@@@h@@ @@@@P@@ @~@0s@g@Z@N@A@ 5@'@@@ @????`?c?+?>*@7@ E@Q@^@j@w@H@@Ќ@@@@ @@@@ث@@ @H@p@@p@@x@@@@P@@ @@@@(@p@h@`@@P@@@@@`@@@x@0@@@@@@h@@@p@@h@@@@h@@p@@@h@H@ؓ@h@@@@z@n@a@U@H@0<@.@@!@@`@?????G? ?1@>@0L@X@ e@q@~@Є@@P@@0@@@@`@(@@м@@ @@x@@0@h@H@@h@@@x@h@@@@@@@(@(@(@(@@0@@@H@@@ @0@H@@x@@@(@@p@@@@@@@p@@(@@@@М@`@@x@@@ u@h@\@P@0C@5@P(@@p @@??? ?c?)?8@E@0S@`@0l@x@@P@@ؓ@H@@(@H@@@@(@P@x@@x@@@@@@`@@(@@@@0@x@@h@@@@@@`@@@@@@@@@@@@p@@@x@@p@@@@p@@x@@@@P@@p@@@@(@0|@p@c@W@@J@<@`/@!@@@??? ??E?@@L@@Z@g@0s@@@؋@@`@М@@@@Ь@@h@0@@@@(@@@@@@p@P@@p@@@@p@@@H@@@0@0@@0@@@@H@P@@@(@@@P@@@@@0@@x@@ @H@ @@x@@0@h@H@أ@@@@@@@w@j@^@@Q@C@`6@(@@@@??@? ?@a?G@S@@a@n@@z@@@`@ @@P@@0@P@ @@@0@@@@@@@@@@h@@0@p@`@@@@@@h@@@@@h@@@@@H@@@@@@x@@@@P@x@@@@x@@@@@Ь@`@@@x@@H@0@ @~@q@ e@PX@J@p=@0@"@ @@??`? ?}?N@Z@Ph@ u@@@ @@@h@(@H@@س@@p@@@@0@`@0@@@@H@x@`@@x@@@@x@@`@P@H@@@@@@@@@H@P@`@h@@0@H@`@ @@@p@@@@@@x@P@x@@@@@@p@P@@@@@Д@@@@x@0l@`_@Q@D@7@)@0@@@?`?@?? U@a@`o@0|@x@@@h@(@@@Ь@@@`@(@H@@@@@@@@@@@@@p@@@@x@h@@@@@@p@@@@@p@@(@@@P@@@@@h@@@@@`@@@@@@@@@@س@h@H@@@P@@@(@@@0s@`f@X@K@>@0@0#@ @@??`??0\@h@`v@@@@(@@@p@0@@@@@@H@@@@h@@@@@ @@@h@H@@@@@@ @h@`@(A|AAAAA|A(A@@p@@@@@h@(@@`@x@H@@@`@@@@@@@H@x@`@@@Ь@@@؛@@@@@@z@pm@`@0S@ E@7@@*@0@@@?`??0c@p@p}@ @@@@p@@@@(@H@h@@P@@H@@@@@p@@(@@@@@@@p@@PAApAA<AhAAAhA<AAA A|A`@@(@@@p@@@ @@h@@@0@@@h@@@@@@P@@ @`@H@@ @@@t@g@@Z@L@>@@1@0#@ @@???@j@w@@@@@ @0@@@x@@@@м@@@@P@@H@p@H@ @@x@@@p@P@@ @@|AHAAA4AAA(APAPAPAAA\AA<AAA@p@@@h@@@p@@h@@@@h@@ @P@@h@H@س@h@@@М@@@@(@{@n@@a@S@E@P8@@*@0@@?? ?@q@~@@(@@@@x@@@@0@P@p@@`@@P@@@@@x@@0@@@@h@PAHA<A4AA|A ApAAAAAAAA AAA\AAAA@x@@@(@@p@@@@@@@p@@@@@м@`@@(@h@P@@(@@@H@ u@Ph@Z@L@`?@@1@0#@ @`@?@?Px@@H@@@(@@@P@@@H@@@@@@`@@P@x@@x@@@@@@`@AA AAAA<AA4AAAAAAA\AAhAA APA\AhAHAAp@@@x@@p@@@@p@@(@`@@p@P@@p@@@أ@@@@0@Є@0|@`o@a@S@`F@P8@@*@0@p @?@?`@h@Ќ@0@@@@ث@@`@м@@@`@x@@h@@@@@(@@@@@@p@(ApAAAAAA\AAAAH A A A A Ap A AA(AAAA A(A AA|A@0@@x@@ @H@ @@x@@@@@@h@@0@p@`@@0@ @@P@@`v@h@Z@pM@`?@@1@0#@@`@`?0@@P@@ @0@H@`@ @@P@@@@ @@@0@`@@@@@@@|AA4A|AAAA|AH A Ah A A4 A\ A A A\ A4 A Ah A AH AAAAAAA<AA@@@x@@@@x@@0@@@x@`@@x@@@0@ @@@@@؋@ @p}@p@a@T@`F@P8@@*@@p @?@p@ؓ@@@@@Ь@@@h@@H@h@@@p@@@@@@0@@@@A<AAA<A\A|Ap A< A A A( A A A AH AH A A A A( A A Ah A AAAAHAAA A@@@(@P@(@@@@@@ @@@p@@@@x@@@@(@@`@@@@w@h@[@pM@`?@@1@"@@@@@@`@@(@@@P@h@(@@`@@@@(@@@@@h@@@@@AhAApAAA A< A4 A A Ap A AhAAA A AAAhAAp A A( A\ Ah Ap APA4AA|AAHA@@@@@@@@@@@h@@@@@@@(@@@H@@(@@~@p@b@T@`F@P8@)@@ @@Д@@@@h@x@@@@@0@@@0@@@@@@@@h@AAPAA\AA A A( A A AA4AA(A|AAAAA|APAA\AA A AP A4 A AAA<AA AHA@0@`@0@@@@@(@@@x@@H@@p@`@H@@М@@@@@@w@h@Z@L@>@0@!@0@@P@@p@@@@@@H@@(@@@@P@ @@@@@@AA|AAA Ah A A A AAA|A AAAhAAAAAhAAA A|AAAA A A Ap AAhAA4AHA@@@@@H@x@@@p@@@@@@@@Ь@h@P@@0@x@@~@p@a@S@E@7@(@@p@؛@@@@p@@H@@@@@ @@@@(@@ @@@AAA<AAp A AP Ap AAAApA<AA\AA(APA|A|APA(AA\AA<AAAAA A| A4 A A(AAA A Ah@@@@@@@0@@@@@P@@x@h@P@@أ@ @@@H@@w@h@Z@L@>@0@!@@`@@x@@@@@@P@@@@@@@(@@ @AA|AhAA A4 A AA4APApAhA4AAA AAAA<A<AAAA AAA\AAAAA<A A A APAAA AA@@ @@@@@x@@@@@@@س@@`@@@@@Ќ@@~@p@a@S@E@7@(@x@@@@@x@@P@h@@@@(@H@h@0@@(@PAhAPA<A(A A A AhAAA<A4A(AAAhAA\AAAAAAA\AAhAA APA\AhAHAAAH A A< A|AAAAA @@(@`@@@ @@@ @`@@@p@`@H@@(@@@P@@@w@h@Z@L@>@0@@h@ @@@@@@@`@ @@@@@@0@@A(A<AA A AH AA(AAAAAAAA(AA ApAAAAApA AA(AAAA A(A AA|A A A A< A|AA|AAPA(@@@@@@@@@ @@@@д@h@@H@@ؓ@ @@~@p@a@S@ E@7@@@@@p@@@`@p@@@@0@P@p@@@@AAAA A Ap A AAA\AAAAAAHAAAA4A\AAAA4AAAApAAAAAAA<AA\A A A< APAhAPAA@0@h@H@(@@@(@h@@@x@h@P@@@Ф@@`@@@@w@h@Z@0L@>@@@(@@@@ @0@@@(@@@@@@HAAAA A Ap A4AAhAA AhAAAAhA AAPAAAHAHAHAHAAAPAA4AhAAAAAHAAA AA A A A(AAAA@@@@@ @@@(@@P@@ػ@p@@P@@@(@ @@~@p@a@0S@ E@@H@@@x@@@@x@@@@ @@@`@x@A AHA\Ap A Ap A4AAA(AAA(AHAhA\A(AAAAhAA A A A AAAAAA(A\AApAPA4AAPAAHAA A A AAA\A Ap@P@0@@@0@p@@@@p@`@@@ث@ @h@@@@@w@h@@Z@0L@@д@0@@@@(@@@@@0@@@@AhAA A A4 AH A4AAAPAA\AAA A(A AAA\AAP A A A A A A AP AA\AAA APA4AAAA<AA AHAA A A A\AHAA|A(@@@(@@@0@p@`@@@x@@`@@@0@(@ @@~@p@@a@0S@@P@@ @@@@@@H@@(@@@A(AAA A A AAA|AAA AhAAAAAA| A !A!A"Ah"A"A"A"A"Ah"A"A!A !A| AA AAAAApAAhAA AHA\Ap A\ AH A AA<A@@ @@@@x@@@@x@h@@@@(@p@@@@@@w@Ph@@Z@ @ػ@@@@@ @0@H@@@@@@ @ AAAPA A AAAAA<AApAAPApAAA Ap!A<"A"A\#A#A($AP$A|$A|$AP$A($A#A\#A"A<"A!A AAAA|A4AA(AAA A A4A A AAhAAA@@0@@@@@x@h@@@@ @h@@@@@0@(@ @@~@`o@@a@@`@@(@@@@@@P@@0@PAAHAA AP AAAA|AhAAA4AAA4A| Ap!Ah"A4#A$A$A %A%A%A&A<&A<&A&A%A%A %A$A$A\#A"A!A AA<AAAAPAAAAAA A A(AA\AA(@@H@@@@@@p@@@@0@x@@@@@@@`v@Ph@(@@H@@@(@@@P@@@H@@AA A A AAPAhAPA<A(AAAAhAA !A<"A4#A($A %A%Ah&A&A\'A'A'A(A(A'A'A\'A 'Ah&A%A %AP$A\#Ah"AH!A AAHAAA|AAAAAAP A AA AA@@@@@H@@p@`@@@(@p@@@H@@@@x@ @@p}@`o@@h@@0@@@@@@`@@ AAhAA\ A AAA(AAAAAHAAP A!A"A$A$A%A&A'A((A(A )Ap)A)A)A)A)Ap)A )A(A((A'A&A&A %A($A #A!A| A AAA<A|AA|AhAPAA AH AAPAA@P@@@@@@x@@@@@@@Ь@@@@@@@@`v@0@@P@@ @0@H@`@ @@(AAA(A A A\AAAAAAApA A A"A\#A$A%A&A'A(AH)A)A*A*A4+A+A+A+A+A4+A*A*A*Ap)A(A'A&A%A$A#A<"A A\AAA<APA<A(AAAp A AAA\AA@h@P@@x@h@@@0@x@@@P@H@@@(@ @@p}@@p@@@@@@ @@@h@AA\A A| AA A\AAAAApA4A Ah"A#A %Ah&A'A(A)Ah*A4+A+AP,A,A,AH-AH-AH-AH-A,A,AP,A+A4+Ah*A)A(A'A&AH%A$A"A !AAAAAAAAA\A Ah AAHAA`@@@@@@@ @@@H@@س@Ь@@@@@H@@@@@@`@@(@@@h@(@AAA A A<AAAHA\ApAApA4A A"A($A%A&A((AH)Ah*A\+A(,A,A-A.A.A.A /A4/A4/A /A.A.A.A-A,AP,A\+A*Ap)AP(A4'A%AP$A"AH!AAAAAAA\A AA( A A APApAp@`@@@p@@@@@@@@`@P@@@0@(@Ќ@@@x@@@@@(@@@AAPA Ap AAhAA A A4AHA4A A"AP$A%A\'A(A)A +A(,A -A-A.A\/A/AP0A0A0A0A0A0A0AP0A/A\/A.A.A -AP,A4+A*A(A'A<&A$A #AH!AAAAA\A AA|A A\ AAA4A|A@ @@@@(@@@P@@@س@ @@@@P@H@H@@@ @0@@@p@A|A\A A A4AA(AAAAA A A"A|$A&A'A )A*A+A,A-A.A/A|0A 1A1A2Ah2A2A2A2A2Ah2A2A1A 1A|0A/A /A.A,A+A*Ap)A(Ah&A$A #AH!A\ApA\A AAA<AA A AAA<A@@@x@@@H@@(@ @h@`@@@@@0@ؓ@Ќ@@@@@@@ @0@|AA<A A AhAAAAPAAAA A"A$A<&A(Ap)A*AP,Ap-A.A/A0Ap1A<2A2A\3A3A(4AP4A|4A|4AP4A(4A3A\3A2A<2A1A0A/A.A-A|,A4+A)A((A&A$A #A !A4A AAAhAApAAP A AAA A(@@@@0@@@@@@@(@ @@@`@P@P@@@(@@@@@<AHA(A A A(AAHAAAPAA A"A|$Ah&A(A)A4+A,A.A\/A|0Ap1Ah2A\3A4A4A 5A5A5A6A<6A<6A6A5A5AH5A4A4A\3A2A1A0A/A<.A,A+A)AP(A&A$A"A AAAhA(AA4AAA\ AAAA@@@ @@P@@0@(@p@h@@@H@@@@ؓ@(@@H@@@(@ A(A A A A\AAA ApAAAP Ah"AP$A<&A((A)A+A,Ah.A/A 1A<2A43A(4A 5A5Ah6A 7A\7A7A8A8A8A8A7A\7A 7Ah6A5A 5AP4A\3Ah2AH1A0A.AH-A+A*A|(A&A$A"A AAPAAAAhAA Ah AAAA @@@@@@ @@@@@0@(@Ь@@h@`@@@@0@@@AAA AhA AAhAA4AAA"A($A&A(A)A+AH-A.AP0A1A2A4A 5A6A6A7A(8A8A 9Ap9A9A9A9A9Ap9A 9A8AP8A7A6A6A 5A(4A 3A1A|0A /A-A+A<*AP(Ah&A|$Ah"AP AAAHAA(AAA( AH AhA\APA@(@@`@@@@0@x@p@@@P@H@@@@H@@@x@HAPA\A< A AAAHAAhAA4Ap!A#A%A'A)A\+A -A.AP0A1A43A|4A5A6A7A|8A 9A9Ah:A:A ;A\;A\;A\;A\;A ;A:Ah:A9AH9A|8A7A6A5A4A\3A2A0A4/A-A+A*A((A&A$A!AAHAA|AA4AA A AA AA@@H@@(@p@@@@@@س@Ь@p@@@@0@@A AA A AAA|A AA(AA A4#AH%A'Ap)A\+AH-A.A0A2A3A4A<6A\7AP8AH9A<:A:A;A(A>A>A ?A ?A>A>Ah>A=Ap=AA4?A?A(@A|@A@A@A@A@A|@A(@A?A4?A>A=A =A(A?AP@A@ApAAAAA=AA?A|@AHAABABA4CACADA(DAPDAPDA(DADACA\CABABApAA@A?A>A=APAA?A@ABA CADADAEAA =A;A9AP8Ah6A|4A2A|0Ah.A(,A)A\'A$A<"AAA<A\A|ApAhA\ A(AAA@@`@@@@@x@p@@@@AAH AP AAAA|A\AA A#A&A|(A +AH-A/A1A3A5A7A9A\;A =A>A@ApAABACADAEAFA\GAHAHAHAHIAIAIAIAIAHIAHAHA(HAGAFAEADADABAAAP@A>Ap=A;A:A(8A<6AP4A<2A(0A-A+A )A&A$Ap!AAA A<A4A(A A AAA(A@@(@ @@@@@@@@ A|AA AAHAPA\A<A AA"AH%A'Ah*A,A /Ap1A3A5A7A9A\;A =A>AP@AAA4CA|DAEAFAGA|HA IAIAhJAJA KA\KA\KA\KA\KA4KAJAhJAIAHIA|HAGAFAEADA\CABA@A4?A=A;A9A(8A6A4A1A/AH-A*AP(A%A4#A| AAAAAAA A|AHAA @h@@@@@@x@ @@A<A A AA AA AAA!AP$A 'A)A(,A.A0A43AH5A\7Ap9A\;AH=A>A@ABACADAA@ABA(DAEA4GA|HAIAJALALAMANA4OAOA(PA|PAPAPAPAPA|PA(PAOA4OANAMA MA(LA KAIAHA\GAFA|DABA AA\?Ap=A\;AH9A47A4A2A(0A-A4+A|(A%A #A( AHA<A4A(AA A A4AA|A@@0@(@ @@@@P@PA AAAHAPA\AhAH!A($A 'A)AP,A.Ap1A3A<6A|8A:AA@ABAPDAEAGAHAA|@ABAPDAFAGAHIAJALAHMAhNAOA|PAHQARARA4SASATA(TAPTAPTA(TATASA\SARAAP@AhBAPDAFAGApIA KA|LAMA OAPPAHQAA|AA@A4CAHEA\GApIA\KAHMANAPAA;AH9A6A4A 1A<.A\+AP(AH%A<"A AAAHAAA4 AA(AA@@0@@x@hAAA( A\#A&A)A|,A/Ah2A 5A7A:A =A?ABA|DAFAHA KALANAPARA(TAUA4WA|XAYAZA\A\A]A^A4_A_A(`A|`A`A`A`A`A|`A(`A_A4_A^A]A ]A(\A [AYAXA\WAUA|TARA QA\OApMA\KAHIA4GADABA(@A=A ;A|8A5A2A0A -A*A 'A$A AAhA AAPA Ap AAhA@@`@@(AAA"A %AP(A\+Ah.AH1A(4A6A9APApAACAA@A4CAEAHAAA@A\CAFA|HAJAHMAOAQASAUAWAYA\[A ]A^A(`ApaAbAcAdAeAfAgA(hAhA iApiAiAiAiAiApiA iAhA(hAgAfAfA eAdAbAaAP`A^Ap]A[AZA(XAA;A8A6A 3A0A,A)A&A\#A AAHAAhAA\ AA(AA@ AP$A'A*A.A 1A(4A47A:AAAAPDAFAIALANAPA4SAHUA\WApYA\[AH]A _A`AA\;AP8AH5A<2A /A+A(AH%A!AA AA(AA Ap AA<A<&A)A,A(0A\3Ah6Ap9A|AHAADAFAIAPLANApQASAA;A8A5A2A\/A(,A(Ap%A"AA4AA(A|A AH AA)A -A|0A3A6A9AAAADAGAhJA MAOAhRATA\WAYA\A<^AP`AhbAPdAfAgApiA kA|lAmA4oAPpApqAhrA4sAtAtA uAuAuAvAA ;A7A4Ap1A.A*A\'A#A| AApAA<AA A4/Ah2A5A8A(A\;A(8A4A1A<.A*A\'A$A| AAHAAAhA2A6AH9A|A|@ABAPDAFAGAHIAJALAHMAhNAOA|PAHQARARA4SASATA(TAPTAPTA(TATASA\SARAAP@AhBAPDAFAGApIA KA|LAMA OAPPAHQAA|C@!{C@`C@WCUC#VCWUC@8TCTCEWCRUCSCRC@PCTOCOC.OCcOCOCOCTOCWOCcPCPC@PCQCcRC@SC@\RC@JRCRCRCRCpSCTCTC@8TCTCTCTCTC@SC@SC.UCUCSCQCOCPC@aPCpPCOCEPCGPC@OOC5PCPC@PCPCPCPCQCRCiSCRC@JTCkUC@aUCUCWUCUCWCVCUC@\VC@QC=eC@CC@sCqCC C@zCCЊC`CC C@C ܈C@wCbCpZC@\YCYC)XC^VCfYC0\CXC@VC TCPC+OC@NCNCOC@JOCOCOCOC=PCPCQCQC@RCRC@sRCuRCRCRC@SC.TC@TC;UC@TCUC@UC;UCTCSCiSCnUCUC=TCQC@PCRPC@xPCPCuOC@3PC@sPC@OC@8PCPC}PCPCPCPC;QCQCRCTSC{SCUCUCUCpUC@TC^VCVCUCGVC@xUCyCC)C^CqC@CxC@vCbCCC`CC`CC nC@wC@eC@_C`Cu_C@\C@YCcC@scC@ _CT\C=WCPCNCBOCOC@OCPCOCOC&PC@PCQCRRC@RC@RC@SCSC.SC{SCcSCSCTCTC@8UC@TCVCVCUC.TCLSCRCTCVCTCnSCBQCPCPCPCOC@aOCOCPCOC@OPCRPC@\PCOCiPC#QCQC@RCSCRCGTCUCUCVCEUCVCEVCEVCUC@aCqCÉC@CCzC@SC^mC@uCkC,CC C@C@aC`XC@xCRkC@gCjChCibCcC#qC}lChCdCZCcRCnPC@OC@OCOCOC@OC@OCPCWQCRC@\SCiSCBSC@ SC#SC@TCUCTCTC@OTC{TC@\UC)UCiWC@WCGUCSCSC{RC@sSC=UCUC@8TC@RC@PCQCPCRPCOC@\OCPC@OCOCOCTPCOCOCPCRQCpQCRCSC@3SC@3UC}UC@VC+UCTCVC+VC@UC@uCzClCC`؉CCBpC@\gC.yC`C C@CCˋC@C+C}C^sCtC@uCrCLjC@rC@}C@xCtCuoC_CVC@QCPCnOCfOC@OCWOCPCPC@QC=SCTCTCSC5TC@TC0VCVCUC@aVCTCUCTCUCWCVCTCSC@SCSC@8TCTC@JUCTC@TC@QCQC@PC@OCOCOC=OCOCOCpOC^PCOCOCOC@PCcQCpRCSCRCTCpUCVCUC@sTC.UC@VCcUC׃C4CCCՇCp|C@dC@3fC@~CC CC`ƊCUCtC ņCC}CC~C{CWtCCǃCyC C@\xCueCBZC@OSC@PCOCOCGOCOC@PCPCkRC@SC@UCVCUC+UCVC{WC5WCGWCBWC@OUC@UC@UCVCWC@VCTC@sSC@UC{VC;VCTC@\UCUCTCRCRCPCYPC@OCOC{OC PCOCnOC@OCPCOCOC@PC@QC@sQC&SC#SC.SC@TCBUCnVCTCTC0VC@UC׈C`ƉCڈCC@3CjC+^C@hC@jCC C5C CC CేC݄C@CׅC`CIC#CC`CCCL~C^mC_C5TC@xPC@PCfOCOCOCOC@JQC;SCiUCXCXCiWCVC@VCWC^WCTXCWCUC@VCYVCVC0WC@UC}TCSCuVCXCXCVCUCVCTC&SCRC@QCPCPC@\PCOCOC&PCOC@aOC@PCOCOC@\PC@!QC@JQCQCRCRC@3TCUCnVCUC}TC=UCUCC`8C@C@C@3wC@^C[CnCT|C@a}C@CCCCC"C CC CC eCࣇCCCC^C@CqC@\`CSCQCOCOC}OC@OCPCQCSCWCnYCYCpXCWC0WCWCWCYCXC}VC@3XCuWCWCVC0UC@TCcTCWCWZCZCXC@8VCUCSC@3SC@!RC@QC@PC@PC@!QCkPCWPCPC;OCEOCOC@OC@JPC@PC@sPC+QCRQCuRCRCSCTCVCRVC@sTCTCnUCCbCCCCfCYC\CqCLtCYyCC C CCCKC |C eCgC~CCCC4CׇCDŽCGCnC]CTCRCOC@OCnOC@OCPCRRCTCXCYC5ZCXCWWC@VCEXC)XCZCYC;WCBYCpXCVCUC&TC@TCTCUC@sYCYC@YC&VCUCnSC@RCQCQCPCPCQCQCGPCPC#PC@ OC@3OC.OCOCBPCPC@PCPCQCBRCRCBTCTCVCUC@sTCUC C>C@CBqC[CVC^aCnCmCuC@zC`CՆCຊCCɋCC`xCCpCC@C@C`/C %C@sC@xwCceC#XC)WCSC}OCOCOCPC@\QC=SCUCXC@XCXC;XCWC@xWC}WC@WCZC}XCWCYC#XC@WC+UCSCTC@UCTC WC@!WCnXC.VCUC@aSC=SCRCQCPCQCQCQC@PCPCiPCNC@OCNCEOC@OC}PC@PCLPC0QC@QCRRC@!SCTCGVCUCTCTC .C7CxCbC@VCEVCTdCLfCWhCpC@sCCކCC@sC`C7C@AC@C CYC`&CЍCIC C@x|ChC[CTC@YC@QCPCOCOCPCYRCSC@ UCiVC WC&XCXCVCVCVC@OWC0XCWCXCWCWC&WC@8TCRCTCVC#TC&TCcTCVCUCWC@TCcTCSCRCQCPCYQCQC^QCQCWPC)OCNCNC OC@OCPCPCPC QCQCQCRCTC5VC@aVCTCTCCC@!zC@kC)YCBTC@XCbC@`CWeCiC@OoC@~C`CCCC@C`fC1CCCLCCCCoCRZCSC@xUC@YCPCOCOC@OC@QCSCSCfTC@TCUC@aXCWC.VC@UCiUC@UCBVCVCWC@aWC@\WC@3VCRC@QCUC@WCSCRCRCTCUCWCVCEVC@\UCRCQC@PCQC@QCERCQCpPCOCNCNC#OCOCOCPC}PC@PC+QCQCRCSCcUC@xVCUC@TC@\zCqC^C@UC=SCZC@\C@x\C@bCcCmC~C CވCLjCCyCC CCCGCCC~CaCRC@PCVCVC@PCOCOCPCQCLSCRC@OSCTC+VCXC@VCTCSCSC^TCTCTCVC@UCVCTCQCQCSC.WCTCWRCQCRCGUC{WC)XC@YCEWC+TC@RCRQC}QCQC@RC.RCPC@OC@NC@NC@NCNCWOC@PCnQC@3PC QCQC{QC@ SCTCnVCVCTCrCeC@VC@RCYTC@YCWCLZC]C`ClC@ }C`&C@SCC@C`C`fCCC)CICCC}xCWC@\PCWPCUCRCOC@8OCOCQCQC@QC#RCRCYSCUC.ZC@UC@RCRCRCRCSC@TCUC@TCUCRCPCPC=SCUC5UC@RC}QCQC0TC#VCXC@[CWYCVCUC+RCQCRCSC@SCQCOC.OC)OC;OC@OC@OOCPC;QCPCPC QCpQCWRC@OTC{VCVCTC@jC[C@aSCQCUC@VCUCYCYC@`CkCzC@aCC CCCCC'C@JC@C}C@C@\oCSCOC@PC&SC@ PCBOCWOC@3PCPC@\QCEQCGQCRCiRCUCp[CTCQC@QCQCQCQC@RC@UCTC}TCRC#PCEPC@aRCWTCUC@SC@QCQCSC{TC.WC[C;[CWC@3XCSC@8RC@RCTC@SCWRCEPCLOC@NCOC@OOCWOCOCPCPC@PCPC@QC@QCBSCUC@OWCUC@`CTC@QC5RCTCSC@TC0WCXC`C#jCwC~C@}C>C CెCC]C`XC NC CŠC1C@gCRC@!PCWPCPCOC#OCuOC+PCPCQCPCPC}QC RCUC[CSCfQCQCGQCQC@QCRCTC@aTC@SCBQCuOC)PC5QCSCUC@UCQCQCQC@SCGUCZC[CWCnZCVCRCTSC;TCiTC@RCPCOCOC@xOC@OCOCOCPC&QCPC5QC@PCQCRCTCWCVCXCRCPCRC=SC}RCTC@\UCYC^ChC#sC)vC#uC@\zCqC`τCCqC'C@C`؋C@sC)C@bCSC}PC@JPC@OCNCkOCOC@ PCiPCcPCuPC@xPC@PCQC@TCYC@RC@\QC#QCQCRCQC@sSC&UCWTCpSC)PCOC@3PCQCSCuVC=VCSC5QC;QC@QCRCVC0ZCWC [C@ZCSCRC0TC@3TCRCPC@OCNCOCOCnOCTOCOCPC QC@QCPC5QCRC&TCLWC;WCSCPC#QC@!RCQC@JRCTCTCRYC]C@OfC@3mCnClCtC{yC`C`xC`/C)C@C`&C ĆC.bCVC)RC@OC@NCNCuOC@OC+PC@OCPC@OCPC@PCPCSCVC@RCQC.QCQC@RC@RCSCYUCTCRC@sPCOCPCPCTSC.VCpVCSCQCPC@ QCcQCTTC@3XCXCYC]CBUCRCWSCSCRC@!QCOCfOC;OCnOCOC@8OCOCPCPC5QC0QCPC@PCRCVCWCQCkPCPCQCcQCRCSC@OUCWC[CbCfCdC@fCkCrCEzCzCCCيCCCCfC=[C@SCWPCNC@NC@JOC@OCOCOC@JOCOCOCOCPC@RC@SCQCPCBQC=RCTCSC@TCVCSCkRC+QCBPC&PC QCSC@\UCnVCfTC@RC@PCuPCPC5RCUCXCXC}^CGWCRCERC@RCQC@PCOC;OC@8OCkOCOC5OCOCOCYPCQCnQCQCPCQCUC)XC@PC#PCQCWQCQC@RC SC.UC@VCZC#_C`C]C`C+dC)lCnCsCTCtCLC'C@3C~C@mC}`CiWCRC@OC{OCkOCOC@OOCOC@OC)OCTOC@OC@sPCQC@QCQCEQC@QCSCTC@SCUCVCTC@RCkRCQCRQCQC@\SCfUC@8VCUC@xSCuQCPC@PCQCSCVC@WC@]CYCLRCQCQCPCYPC@OCOCBOCOCkOC+OCfOCOC&PCPC@QC@JQCPCpQCSC@ XCPCPCPC@PCpQCRC@SC@TCUC@XC@[CYZCYC[C{^CYdCcCnC)CC`C@ӉCC CuC@gC@\C@TCQCPCOCWOC&OC@ OCNCNCOCkOCOC0QCfQCQCQCGRC=TCUCSC@aVC.WCTCTC@TC@SC@ORC@RCSCUC=VCUC@TCQCPC@PC5QCRCTCVCn\C}ZCRCQC@JQCRPC@3PCOCNC0OC@OCOCOCOC&OCOC@OCQC@QCPCPCQCEVCOCOCPCQCQCRRC@SC@3TCUC@aWC@WCkVCVC@3WC@ZC[C#\C@lCC`C`C@C CCY}CpC@bC0YCVC@8SC@\QCOC@8OC@NCNCNCNCOC}OCBQCPC}QCRC)SCTCBUCYTCVCWCGVC.VC@VC@UC=TCSCTC{UCcVCUCWUCiSCPCGPC@PCQCnSC@TC@OZC@s[C+TC@ORCQC@PC@OC@OCOCWOCuOCkOCOCcOCLOCOCOC#QC@3RCQC.QC@QC TCPCuPCPCYQC@QCRC@SC TCUCUCnUC@aTCTCTC@VCcUCXCTlCՀC@C C@JCࣇCCC@JxC@3kC5aC\C@WCYRCWOCNC;NCNCNCNCWOCOCEQC RC@ORCTC@aTC@TCUCGTC VC+WCBWCWCYXCWCUCTC&UC+UC=VC@xVCUC@OTC@JRCPC5QCQC@xRCRCVC#[C@sVC@RCRCPC@\PC@OCOCYOC@xOCOCOC{OC@xOCkOC@OC=PC@aRCRC@QCQCRCOCTPC)PCPCQCRCTSCSC@TCcTC}SCSC@RCRC@RCQCWCkCE|CCUC`oC C@jC CCGtCklCeCG^C@TC^OC@JNCNC;NC;NCNC^OCPCRCiRCRC@TC#UCTC5UCTCUC@VC@sWCiXC@JXCXC@VC@UCWUC@\UCVCVCUC@ VCSCuQCQCLQCQCEQC@SCXCWXC@JTCcTCiQC@ QCLPC@OCOCWOCOC@sOCOCOC@sOCROC@OCkQC@RCPC;QCQCPCOC@PC QC@QC@SCSCSCSC@SCRCQCQCWQCPCWPCWC}iC@sC@aCCC %CZC@C %C.~CxCpC@JfC@!VC@ OCNCMCMCMC@NCpOCiPCRC@!SCTCpUC#UCTCUCEUCTC@VC@\WCXCWCWCVCUCWUCnUCkVCVCVCVC&UCRC@ RC@JQCQCPCQCTCWCUC+VC.SCQC@PC@OCOC}OCOCPCBOCiOCOC@xOCOCiPC@RC@QCLQCQC@aPC@OCPC+QC&RC@ SC@\SC@SC@sSCSC@!RCQCPCRPCROCuPCLWCneCkCnyC)}CǃCLJCɇC@C1C NCC@{C=nC@WCNCMCMCMCMC)OC@OCWQC@RCSCTCTCTCTCTCTC=TCUCVCVC@8VCVCVCUC@ UC@UC@sVCBWCWCGWCUC@RCQC@RC@xQC{PCPCRCVCUCVCfUCRC@xQCPCOCOCOCOCuOC5OCROCOC@OC@OCRQCRC+QCQCOC@8PC@PCQCRCSCTC@xSCRCcRCkQCPC@ PCPCNC@PCWC_CfC@pC#wC ΂CCຆCІC`oCBC`ƄCQCsC@XCNCMCTMCMC@MCOCPCpQC@RCSCTCGTCSCSCRCLSC5SCSCTCTCTC=UCVCUCUCTUCVC@3WCWC@WCUCRCQCRCLRCnPCEPCPCSCUC@\WC@WC@UCSCPC)PCOCOCPCOCcOCWOCPCOC@OCPC@RC@QCiQCOC@sPCQCQCRCTC@SC^SC@ SC@QCPCEPCEPCOCNC@QCWC}ZCpaCjCtCPCC ΄C@C`φC@jCC`&CwCYCOCBMC&MC@MCNCPCWQCQCLRCSCWSCRC@RC@QCQCkQCQC@ RCRC@\RCRC+TCTCVC@!UC@UC@VC.WCpWC@JWCUCRC.QC@RC&TC#QCOCPC{QCSC@VC@ZC@WCUCRC@aPCPC@8PC@OC@OCOC{OCOC@OC@OC&PCQCRC@QC@ PCPCcQC@JRCRC.SCSCSCRC@PC+PC@OCOCNC;OCRCYXCWC]ChCsC#|CCC@C`CCUC ECyCYC@OCMC@!MCMC@OCQC@RC RC5RCkRCERCQC@PC@PC@\PCPCOCiPCPCPCQC.SC TCEUCpUC.VCVCVCWCWCUCRCQCRCUCkRCOCfPC@8QC@ RCEVC[CRYCfYCSCQC@PCOC@OCPCOCOC}OCOCOC@OCPCRC@QC@PC@PCQC@RCLSC@3SC@ SC@RCQCPCpPC@PCOC5OCfPCEVCXC@TC@]C@JhC@qC0rCLuC@8zC`C^CC`C`C@\yC]C@PCMCiMC0NC@sPC}RC@RCRC@ORC@QCPCuPC@NC@NCNC)OCOC@OC@xOC@OC@PCQCWSCTCTC@UC@8VCVCVC@VC@3UCSCQC@ SC@UCSCBPC.PCPCQCYTC[C [C\C@WCRC)QCPC@PCOCOCiOCpOCOC@OCOCPC@ RC@RCPCQC@QC@\SC SCGSCSCSC}QCQC{QCPCpPCPCRC^]C@WC@SC@O_C@shCkCfC+kCoCzCLCC C@AC&{CaCQCMC@MCNCQCRCfRC&RCQCPCOCNC@\NC NCNCNC@NC{NC@NC@NC@PCQCpRCSCTC@UCUC{UC@UCUCYUCTC SCSCkVC@UCPCPCPCPCRCnZC[C@ ^C.[C@SC5RCGQC@PC@OCOCOCOCcPC@OC&PC&PCQC@SC@3QCQCRC@!SCLSC@SC@\SC&RCkQCSC@RCfRC@ORCRC@ZCbC@JTCTCc`CfCn`C]C@aaC fC5tC@C`CC@3CEC@aeCEQCNCMCNCQC#SCQCQCQC@ OCRNCNC@ NCMCpNCNCiNC@NCNCNCOCPC@QC@RCSC@SCGTCUCTCEUC@TCTCTCTCVCVC@QCcQCPC@3PCQCWCE\C}]C_C{VCnSCkRCQC@ PC@OC@OCOC@OCPCOC=PCPCQCPCRCSC@3SCSCiTCnSCQC@ SCUCTCUC}UC@3VCgCbC@RCUCY]C@`CWCVC@XCE^C@nCC4CຈC NCށCfC@8SC{NCMCTNCQC@ SCWQCpPC@aOC@aNCMCGMCMCMCNCTNC)NCNCNCNC@OCPC@xQC@ RCRCRC@!SC@SCETC@3TC TC@JUCTCLUCVC@VC=SCRCPC@OC@PC@TCLZC@3[CaCZC5UC@SCRRCnPCPC@OCPC@OCPC&PCOC@PC@QC@OQCRCRC@SC@TCTC@aSCRCWCGYCLXC[CYC{_C@qC}]CRC@UC@ZC@WCRCRCSCXClCgCC݈CCPC@iCVCNCMCOCRCQCfPCOCGNCMC@MCfMCMCMC@NC5NC@ NCNCNCOC@sOCPCPCQC+RCQCRC)SCiSCSCpSCUC@UCWUC^VCVCSCSCQCOC=PCpRCWC@YC_C^C@\WC@UC+SCQCOCOC@OCOCOCOCOCOC.PCQCRCSC}TC@VCUC+SC^VC@!^C@]C_CaC_CoC=sCXC@!RCTC@JVC@\RC@PCPCPC=VCTnCCC \CC@CoC{YCNC@sMCOC@ RCRQC@OCfNCMC@3NCMCMC@!MC@aMCNCMC#NCNCNC.OCOCOC@OPC@sQCQC@OQC@QC@RC0SC@!SC@8SC@TC5UC@TCkUCVC@SCSCRCTPCEPCQCUC+XC\C@OaC@YCWCUC@RCPC@OCROC@OCOC@OC@OC@JPC}PC@RCESCTCVCXC@TCTC@^CdCcCiC@hCiC0|C@lCUCQC@RC@aRC=PC=OC@3OC@OCnUC5qCCC,CCCTvC@[CpOCMCPCfQC@OCNC)NCMCMC@MCMCuMCMC@sMCMCMC@aNCNCOC&OCLOC)PC QCcQCPCQC#RC@ SCRCRCSC@TC@TCTCUCTC{SC@RCPC@\PCGPCRC{VCEZC_C]C@YC{XC}TC&QCGPCTOC@OCPCLOCOCPC@8PCSC@xSCUCYC@ YCUCc[CiCkCnC.sCpC@wCCeCGVCRCQCPCOC@NC@NCTOC@ VC@rC CC@SCC`Ck|C^C+QC@aNC@PC#PCNC@\NC@MC@JMCEMCLC#MCMCBMC{MC@aMC^MCNCNCNC@NCOCOC@\PCPC@8PCPC@\QCRCSC@RC;RC;SC@SC)TC@TC@TCSCQCQC@ QCPCQCTC@XC+\C^CYCZCWC=RC QCPCOCOCOCOCOCOC@8SCTCYC]CXCWC0hC&sC@sCzC{CzCC@ {CbC XC@TC}QCNCNCMC@NCcOC=WCWsCBCC CCކC@xCbCRCNC@OC@OOCBNC.NC@3MC@3MCLC@KC@OLCLCMCuMC@ MCMCMC=NC;NCNCNCOC@OCPCPCPC@PCRC;SC)SCQC@ORC@aRCSC@!TC@TCSC@sRC@!RC@RC@!PC@8QCSCpWCZCf]C@ZC[C[CTCQCPCOCOCOCcOC@OCOC@OSCcWC@x_C_CYCaCvC0{C@!~C@JC`ClC CkvCcC[CUC@PCNCNCMCiNC&OCWCsCUC^CчCCbC`C@OhC=UC.OC{OCNCMCMC{LC;LC@ LC@KCLCLCLCLMCMCMCNCMC@ONCMCkNC@NC OCPCOC@PCPC@ QCnRC@SC#RCnQCkQCkSC@aTC@8TC;TC0SCQCETCQCWPC@RCVC ZCZCp[C@YC]CXCRCQC@PC@OCOC{OC@sOCOC#UC@8]CcC_C=\CqCC^C`/CqC4C \C@C@vC@3hCG_CVC@PCROC@NC)NCNC+OCWCrC0CLCC)C CkCYoC@WC@OCWOCGNC{MCLCKCLCiKCKC@sKCpLC0MCRMC@xMCMCMCMCMCMCMCNCOCOC@OPCPCPCPCQCSCRC@QC@PCGSCTCTCSC@sSCRC@TCRCPCQC@TCYCYC)ZC.YC\C]C@UCRCPCOCPCOC5OC@OCYC0eC@gC^C@xhC CC`CЇC`C .CCC0yCmC}cC@JWCQCpOC@NCMC NC5OC XCnCpC@CC CbC@CtCWC@OCNCkMC@LCKC)KC;KC@sKC@8KCJC=LCLC@\MCMC#NCMCMC@MCMCNC NC@NCOC@sOCPCpPC.QC@QCkRCSCQCPCSCUCTC{SC@SCGRCSCkTCRPCPC@SCWC;ZCXC@XCZC{`C5XC@UCRCPC@OC@!PCTOCOCaC@kChCbCzC@ CІCC ΉCC@C ·CCi}CsCfCWC@QCfOCMCMC@MCOCWCjCC CCC CCvCYC@OCMCLC0LCKC@JKC@JCJC@JC5KC@KC@LCMCMCMCMC@MCNCMC@MCNC&OCNCkOC+PCPCPCPC}QCpTCRCPCRC@aUC@UC@sSC5SCRC@SC@UC@sPCpPCRC@UCYC@YC@XC)ZC^C\CUCUC#QCOCPCOC^OC#lC@qCfCLoC`CC@aCڊCCUCCC CC@yC hCYC@SCOCMCMC NCNCTC@iC]C`CׇCˇCCYC wC[C@3PCNC@sLCKC)KC)KCJC@OJCJCJC.KCLCMC0MC@NC@MCMC@MC^MCnMC@!NC0OCOCOCGPCEPCPCuPCQCSCSC@xQCWRCTUCpTCSCYRCRC@RC+TCQCOCRCTCLWC5YC;XCYC@O\C@8_CWCWCiSC@!PCOCPCOCtCqCiC C C@ CC CC CqCшCC=C@|C@iC\C;UCOC@NCcMCMC5OCGTC@lC CĊCCwC`/CxC_CQCYMC LCiKCJCYJCBJC@JC@JCJCKCKCLC@LCMCMC}MC@MC@3MCMC@!NC@aNCGOCOCPCnPCpPC@PCpQC+SCTC@QCkRCpTCTCTC)SCRCRCSCRCOCBQC@\SCYUC=XC@XC@XCi[C^C@YC@\WCcVC@QC@!PC@3PCOCyCpCBvC`؇CԊC EC@C`C`ClC@sCZCZCׄC}ClC5`CVC@OCMCMCRNCOCUC@srCYC C,C`oCcCC~CcC.RC@JMC&LCYKCuJCuJC@JJCJCJC@aJC@JC@KC+LC@LC@MCMCMCMCMC^MC&NCNCNCfOCOCQC@PC@PCLQC@aRCSCQCGRCSCUCGUCfTCRCQCRCGRCOCPCRC=TC;VC&YCXC ZC]C[CLWCXCTSCPC#PC)PCL{C@sC̃CC@jCC CC`CыC@CljC`CwCcCpC^eCcWC=OCNCNCOCSC0ZC@zC NC}C CqCQC@CChCSCLCfLCKC@aJC@!JC@ICWJCpJCJC@JCJCKC)LC@LC@LCMCMC@MC@JMCMCMCiNCOC@8PC0QC@ QC@PCRCQC@SCRC@QCRCSCUCTCSCRCQC@RCPC@PCBRCnSCTC@JWCkXCWC[C\CWCXCVCQC;PC&PCyC}CCC`CC C`&CC݋C CC`/C˅CCvCpjCVC5PCPCPCUCYCdC"CCCZC@3C)C`OCYCmCiTCLCLC@JCkJCkJCLJC0JC@sJCJCJCJC@KCWLCLC^MC^MCMCMC@OMCMC@MCnNCiOCOCPC@!QC;QC RCQC&SCiRCQC^RC@RCTTCTCTCRCQC@aRC@QC@PC0RC^SCSCUCWC@VC#YC[C@XCWC0XC SC@QC+PC{C'C݋CwC@CCgCC7CwC C@CzC5CC}ClCUC@SCTCSCc`CdC)qC=C`C^C=C C^CC,CpC@TC@LCKCuJCJCJC^JCJCYJCJC@JCJC@\KC)LCLC@LCGMCMCcMC@JMCMC=NC@NC@OCiOCPCpQC@8QCGRC@RCQC@RC@QC@QCpRCSCTTCTCuSCQCRC@!RCOC^QCESC@SCTC@VC@3WCVCTZC@sYC+VCXCTCRCPC`CCCC@C`ƌCCьCC@ C,C |C݈CЇC„C'CniCVCYCiXC0^CoCrC;}CC@C`oC0C'C`CC`ƄCsCVCLCJC@JCWLCKC@\JCJC=JCJCKC@JCTKC@KC@3LCLCLC@MCMC.MCfMC@JNC@aNC@JOC@OCPCQCYQCQCRC}QCGRC@sQCQCRCWRC@SC@TCTCRCRCRC@!PCpPC}SCSCSC@8UC.WCUCWCYCVC@WC@xVCRCQCCCCC CC࣌C`FC@SCiC@CyCC@CCCfC]CcCY_CipCCpC7C@C:CC ŇC`ƆC`oC'C CWtC@8WCLCKC^JC@MCEKC@\JC;JCJCBJCJCJCiKC5LCYLCLCLCGNCNCWMCcMC@sNCLNC@JOCOCYPC+QCWQCYQC0RCfQC@QCQCnQC@aSCQCRC@aTC@TC0SCWRCRCPCOCnRCSCYSCSCEVC;VCUCXC5WC#VCWC@SC@QCcC@ʌC CCCCgCC CCCC౉C`XCC`CgCjClC=lCC`؅C຅C@C@ʈCC~C@jCC>C`C݄CvCWCKCJC0KCNCKC0JCLJC5KCJCJC@JC)KCKC0LCBLCLCMC@NC#NC@OMC@NC@JNC@\OCOCOC)QCQCPC@QC;QCuQCpQCnQC@SCiRCkRC)SCTCSCRCuSCPCOC@PCTCSC+SCTCVC UCpVC@WC VC@WCUC@RCpC`C`C`όC CZCC@ʊCC@CC C CC̈C5~C pCxC+vC~CCCC`CYCCC`C ܆CC~C CfyCYC@LCJC@KCOC@KC@sJCJC@8KCJCJCGKC@KC@KC@3LCLCLCRMCMCMCRMCNC@8NC5OC@OCPCBQCQCQCPC@8RCQC@JQC@PC@SCSC@QCRCSCSCRC{SCRC@OCOCRC@3SC@JRCSCUC5VC@UC@xWC{VCcVC@UCSC C`ƌC`C`fCCCC@AC̉CCC@CwC |CC@}C@s}CC C CCLCCUC:C@3CiCPC C`C@JC`C@zCZCMCJCTLCNC@\JC@\JCGKCKCJCJCKCKC@KC0LCLCLC;MCMCMC@MC.OCNC@3OC@OCYPCQCQCYQC QC@JRC@RCQCPCTRCpTC.RCuQC@RC}TCRC#SCRCOCOCQCRCQC@RCTCVC@UC@!WC@WCUCVCSCC@CຌC@3CTCCC ʼnCC`C@aCCYC@sC@C CфCcCCQCC׌C CCCC`C]C݆C>CClC@{C@\]C@sOCKCMCNCKC^JCLC@KCJC@JC@ KCKCKC@JLC@KC@sLC)MCuMCMC@NCpOCOC#OC@JPCPCRCRCQC;QC@RCRC@aQCPC@sQCTC+SCQCQCSC}SCRC@SC^PCOC@PC@RC)QCQCSC@UC@8VC@WCWC}VCVC+UC݌CຌC9C`&C@ӋC CCC`xC>C@CCkCC@ C`CCCbCC`fCތCwCCCCేC0C C'CC`C}C=cC@aSCkMC@ PCNCJCJCpLC}KCJC@JC@KC@\KCKCKC LCMCBMCMC@MC@sOC.PC@OC@OC@PCQC@RCRCQCQCQCRCcQC@QC@QCkSCSCQCQCRCkSCRCSC@\QC@OCLPC=RCQCiQCRCTC@VCVCXCBWCVC@VC CwCCC`CzC CtC CCC`CQC`؉CCCiCCkCC`ϋC`C C@*CCC nCcC`8C`C`/CpCZCYkC@XCPCRCNCLKCBKCKC+KC@KC@JCJCKCKCKC@8LCMCBMC@OMCMCPCnPCGPC5PC@\QC@RC@SCYRC@QCQCQC@RC@QCPC@xQCRCTTCSC+RCWRC.SCRCRCRCOC@OPC@\QC=RCQC.RC@sSCVC@VCnWCXCVCVCCC`CC7C7C`xCC`8CC`C`XC C CCC̉C+C'CCKC`CbC %CCCC`CCC@C@C .CsC)aCUCiUCNCKC{KCJC@aKCLC@KCpKCTKC@KCLCLCMC=MC@sMC)NC)PC@PCPCnPC+QCRCTC@8SCRCRC@RC@3RC@sQC;PC@QC.RCLTCSCRCRCBRC=SCRRCRCPCPCiQC^RC@QCWQCpRC#UC;VCWC@YCXCVCWCCC@C C`C`OC`CCuC CYCC@ CCCCC7CC`oC@CqC:CLjC`XCCCCC@aCC`ƃCR|C#kC]CpXCNC@MCBLCKC}LCLC@KC5KCYKCKC@aLCLCMC@MC@MCNCTPCkPCQCQCQCfRCTCSCRC@JRCQC@aRC@QC=PC@aQC@\RCkSC)TC@sSCRRCQCpRCBRCnQC;QCLPCQCcRCLRCQC@JRCTCUCVC@XC@xZCWCోCCՋCcC)CC`ƉC`CzC9CC@CC`؉C׉CC ܉CC]C`CCC@C@C NC@C~C@ C CC0CхCCQC@tC@hC@]CGRCOCMC.MCNCWOC.LCuKCfKC@xKCLCLCLC@LCEMCNCOC@aPCGQCPCPC@QC@OTCTC@JSCRC@3RCRC)RCPCQCQCRC@SC}SC@RC=RCYQC@aRC)QCPCPCPC0RCRC@aRCBRC@SCUC5VCWCZCXCC@C CˊC .C nCCC@CC@C .CC@CC`ωCC@CBC@ACCCLJC=CuCcCizC CC@CUCCiCC}CsC@\dCYC{VC@OCOC@sRCRCLCKCKCKC LC@KCMC+MCLMCcOCOCkPC@QCQC@PC@PC@!SCkUC^TCSCRC@8RCRC@JQC@PC@aQCRC@RC@RC^SCRCuQC+RCQCBPC@PC@sPCiQCSCSC@RCSCUCiUCVCYC}ZCC@CQCuC ʼnCC~CkC5CC@ C`؉C‰C@C C CCWCCC@C \C]C@*CcC@C@8|C@!CCCՅClCCCفC|ClCffC@_CSCSC;UC@SCMCKCnKCkKC@!LC@ LC@LCMCMCOCOCPC{QCTQCPCPCfRCTCUCfTCSC@!RCGRC@QCPCuQCQC@JRCRCfRCSCQCQCQCOC@PC.QCQCuRC;SCRCRCTCiUCUC@XCZCC@CފC"C`ωC+CTC@ACCC׉CCCtCgC`CCWC CC CC C`XC`FCC4CC@CC CՅCDžCbC຃C1CwCuC.lC@YCUCUCESCMCKCKC@ LC@LC@KCLCMC+NCPC&PC@PCLQC@QCQCPC}QCTCUC@TC=TC@QCBRC}RC@\QCQCQC@QCQCQCRCRCQC@RC;PC@\PCQC@xQCRCSCRCRCSC#VC@3UC@OVC@OYCC]CC CC4C@3CC@ C݉CCC@C=C`oC̉CC@JCC NCCC@CC C@CCTC`ƅC CɅCCpCCC`/C`oC:CwCbCYCVC=SCNCKC@JKCKCKC#LC;LC@LC@aNC@PC@\PCPCBQCRC@JQC@PC@QC@OTCfTCkTC@\TCRCQCRCQCQC@xRCBQCQC@JQCRCSCPC@aQCWQCPCQCRC)RCSC SCRCSCUCUC@UCRWCC0C`oCމCCPC`C@CɉC`C CC@JCCC@ʉCC@SC C`C@CنC |C@C`C`C NCGCC`fC@sCC nC@C`OC`C CфCIC@xlCRbC@\C@XC{QC@LCJCKCKCKCLCLCfNCuQCLPC@QC@3QCQC@xQC@xQC@xQCYSC@SC@SCLTCWRCYQCRC@ORC.QCiRC@ QC#QC@xQCQC5SC)QCkPCQCPCQCYRCRC@SC@8TCRC@xSC@TCUCTCiUC@CCZCGCC1C ܉C@C@C |C౉CC@!CCCՉCC C C CC CgC@C@C`XCCC'CCՄCCcCTC0C`CC CC;xCuoC0iCcCVCKCKC@KCKCKCLC@LCNCPCQC@QCPCRC@QC@QC;QC@RCGSCcSCSCkRCEQC@xRC@RC.QC+RC@QC@8QC;QC0QC SC}QCOCQCPCLQCTSCBRCSCTC#SCLSC@SCUC}TCnTC@CొCC1CCC C@C^CC ܉C5CC:CCCGCUC NC CC"C CIC4C˅C@C'CC)C+CC`C@ʄCڄCCˆCC)C C}C@wC@\rC[CWLC#KCKCKCLCKC@LCMCPCQCQC@aPC^QCuQC@aQC@OQC@!RC@RCRCRCWRCWQCQCcRCQCYQCQC@!QCPCWQC&RC RCPC^PCcQC@PC=SC&SCRC@!TC@ TC@aSC@TCTCTC@SCCZCWC9CщC`CÉC CC ΉCZC CC@CtC@C`C@ʇCCCC@*C`CÆCCCC9C`CуC@CICCC CCՅC"C`C}C`C`Ck~C@`CcLC0KCKC@KCfKC@KCLC@MCPC;QC;QC@OCPC@PC.QCuPCQCQCQC)RCTQC&QC@QC@RC@ RCfQCQCRCQCPC@xQCkRC@QC@OCPCPCRCSCRC@3SC)UCBSCTCTC{UC5TCCZC .CC@CCZC'C CÉC eC C@C`XCCTC>CwCࣆC`XC ܆C C ΆCCچCC@sC CౄC@jCBCC eCބC CWC CCຄC CGCC |C`C@sLCiKC@KC@KCKCLCLC@sMCOC@ QC@PCOC@OCOCOC@ PC@PCQCPCfQC;QC@PCQCQC+RC@PCuQC@QCTQC@PCQC&RCPCOC@\PC=QCQCSCSCRC{TCTCSC@ UCTC^TCcCUCމCCYC@AC@jC,CˉCC5CÈCCgC ECC CPC@CCCCцC@C@CCC@sCKCCǂCzCCC@*CIC׃C@CC`oCCC:CY_CLCJC@\KCKC;LCRLC@LCMCOCPCPCNCOC@NC@sNCOC@OCPC{OC@OPC@OCpPC@QCRQC#RC.QC@PCQCRCQCPCQCLQCpPCYOC@ QC@PC#SC=TC@RCSCTCSCTCTC@UCYCWCC`XC`oC@C7C`XC@C@JCC CCIC݈CC \CC~CgC@CCC>CCC@CTCCూC@jC |C C`/C̃CC ΃CuCQC`fCCCkC@x^CLCJC@KC@KCLC.LCLC@LC@NCOCOC@NC@aNC&NCMC OC&OC@!PC@NCGOC@OCTOCBQCQCYQC@3QC{PC@QC5RC@PC@PC}QCQC@PC@JOCPCPCRC.TC}SCRCSCSCTCfTCUC5CCC@JCC@ C@CC^CCC@C@CڈCZCCbCC1C`؆C@C,CC`C ܆C@CCCC ΂C`CƒCC CUC C)CЄC CC`OCCՁC_CLCJC@KCKCLCBLC@LC@LC@aNCROC+OC@\NCMCMCMCMCNCNC@3NCNC@NCNCPCQCQCGQC@PC@QCGRCPC@JPCQC&QCPCOCPCPC@PCTC@TC&RC@RCSCSCUCUC݉CىC`xC %C1CCBCC`/CCzCC ܈CCC@CiC@ʆC@aC`fCC@CCC nC౅C eCÄCCɂC@*CCC@CCPC`C„CtCCC@*C CcdC@MCJCnKCKCKC@OLCLCLCMCNCNCTNCuMC@MCLC@OMC@NCMCMCENCNCNCOC&QCQC@QCPCQCQCPCkPC@PCPCnPC&PC@8PC@sPC@OCRC@SC@RCQCSC@JSCGTC}TCCC C`CC CbCyC`C C`C ܈C |CLCCuCC@CCCCCCՆC#C`C`OCC`xC@CC@3C`C4CqC`CCC@CC@*C,C@CiC@OC=KC@xKCKC.LCLCLC@LCMCMCNC@MCMC0MC@LCuLC@!MCLMCMCNCNCNC}OCQCPC QC@8QCPCQCQCOCPCPCPCEPCOCPC)PCiQCSC=SCPCRC@SCSCSC`CWCCˆC ΈCCtC C̈CuC@aC C`CC@jCCYC`C`C`XCC C]CtClC`C@AC)C@*C CూC`C C}CࣂCC`fC0CC@AC`FC4CC.pCnSC@KCpKCKC@8LCfLC@LCELC@aMCpMCTNC^MC@8MC&MCLCELCLC@LC MCMCNC#OC@OCPCnPCQC.QC@3QC^QC}QCYPCPCPCpPCPCOCuPC@OC;PCRC@SC@QCQCLSCRC@SCC@CCCC>C]CCBC@JCKCCCCC`CC`φCCC C0CɅC@C`CLCUC'C@C`&C@CCCC@sĈC@CC`CࣅCCzCC C@vC@sXCnLCfKC#KCKC@\LCWLC@LCMC;MC@!NCiMC@LC0MCLLCKC)LCLCMCLCcNCOCOC@PCPC{PCPCRQCPCQC&PC@OC@OC&PC@QCPCPCfPCuOC@sQC)SC)RC QCRCRCRCCшC CQCC .C CC`FC C`OCC݇C`؇CC7CC'C=C@C౅C@aC CC@C1C`OC nC@sCC nCC`fC,C}CKCpCхCIC`CCLC@C}C_C@NC=KCcKCLC@\LCLC{LCLCLCMCLC@LC@LC@xLCfLCKCkLC@LCLCMCOCOCOCOCPCPCQCPC@PCfPC=OCOCnOCPCnPCOC@PCLOCcPCBRCRC@PCkRCLSC)RC`C`xC@jClC@CވCCwC`؇C@*CCÇCCC@sC1CنCC C \CCCCC9C`C@ CwCځC \C^CC@aC1C@CCC C CCC |C`C`ChCOC@KC0KCKCKCKCLCkLC@LCLC@LCLCMCLC@LCKC#LCLCLC@aMCNCPCOCOC=OC PCPC@PCQCpPC@OCNCNCiPC{PCfOC@OCOCOCQCuRCQC@ RCYSC@aRC`ClC CCCCC,C`؇CICׇC`C`CC=CC C`φC@C1CbC`C,CGCCyC NCCiC]CC`C`xCCCC@C`OCQCCYC=CCPC@pC@RCKCJC@KC@3LCKC@LCuLCLCMCLCLCLCMCKCKCBLCLC@LCLCNCkOCOCOCcNCGOCPCPC QC{PC@OCkNCNC@OOCpPC@sOCOCPCOCQCWRCfRCRC#SC&SC)C C`C CCˆCC C`C,CࣇC`ƇC CbC@!CC@sCgC@!C}C`C CCkC@C@CC'CǁCсC=C0CC@C"C`oC`/CCC`OC \C@JC`XCC@ xCVC@3LC.KC)KCKCuLCLC}LCLC@LCLCLC@xMCGNCBLC@aKC^LCMC}LC@LCMC@NC^OCOCNCNCPCQCPCPCRPC.OC=NCOCOCcOC#OC@PCEOCfPC@QCRCQCLRC)SCUC)C EC`CLjC C`OC@C`FCЇC`ƇCCC:CنCYCuC CbCC@CCCC0C"C`C@C>CCC@C=CCCC@C@C,C'CՅC`C`CC@}C]CMCJC@aKC@xKC@LC@LC@LCLCTMCLC@aLCMCkNCLC@JC.LCLC@8LCLCMC@sNCOCOCOCNCGPCQC5QC@PC@PC@OCuNCNC OCOC@NCOCiOC@OCQC@RCSCRCfSC CC9C`CCyCC ܇C:CC`C@CIC NC ΆC .CC˅C@C@C C'CC C`CC>C}C CqC@C@JCсC@CCC`FC౅CCCCCCC@C@!CcCNCJC0KC@3KCLC@JLCLCLC@LCLCLC;NCNCLCiKCLC@MCYLCLCLCMCNCOCOCNCEOCPC.QCPCPCWPCNC@NC@NCPCROCOC@aOCEOC&QCQCSCRCRC CCࣈC`C@sCLJCC1C'CqCC@CCCC`oCKC@C C7CࣃC@C ŁC CC NC7CCC@CC`OC@ACCC)CCCLCCC C CC}C{kC5PC@JCJC.KC#LCLC@MCLC@LC^MCiLC^NCNC=MCKC@KC@sMCBLC)LC0MCBMC{NCTNCPC=OCOCOCRQCQC@PCPCLOCNC0NCNC@OCOCOCOC#PCRC@8SC@SCQC`C)C`C}CIC^C`CCC |CCC@jC C`fCCWC+CCC CKC`CԀC)C#CCCC@C`CCCCށCCC˄CwC@ʄC NCZCCC`xCrC@QC@JCKC^KC+LCuLCLCTLCLCLCLC@NC{NCNCcLC=LC{MC@KC@KCcMCLCMC@NCOCOC^OCOCPC@PCpPCPCOC^OCLNCNCOCWPC;OC@NCOC@sQCSC}TC#RC@ʇCyCwC`xCేC`FCWCCC CiCC@ C@C@ACC@CqC)C5C̆C)C@ӅCqCC |C@CC C`oCBC@~C@3CC@CCCC CCC}C@8{C`C`C@C@C@ CC`fC7C C C C.iC@RCJCJCLCLCLC@KC0LC@LC@\LCLLCNCNCLCNCNCMCMCLCMCNCOC NCMC@OC@OCOC.OCPC}OCkNC@aNCNC@QCPCOC@NC;PCPC@NCuMCuOCQCRCCC C`C CCCcCLCCTC@CC EC…CkC CC4CقCCɂCCC@~C;~CcCCtC CiC~C C}CzC}C+C`C"C@AC C>CqCICCCoC@XC@KCJC+LC@LCKCKCKCKC@LCKC@NCNC@MCfNCcOCMCMC;MC^MCNC@3PCOC@MCOCnOCGOCOCQCPCOCkNCpOCfPC@PCOCNCpPC+PC}OCnMCMCQC{RCCC^CేCIC CцC |C`fCCцC@CCC CCIC@ CCC NC`C@AC`C`CC@aC~CࣂC CCC@xC|CzCyC|C~C}C@x{CzC@yCzCzC{C}CC|C=|C+CcC@JCC %CCCUCCptC@bCEOCJC)KC@8KC@KCkKC@xKCKC@KCKCLCMCuMCMC@!NC@OC@3PCNCOCfPCYOC)PCNC@JOCNCNC@NC#NCNCOCNC@OCpPC@NC@NCOCOCPC@PCQCOCMC@LCCCCC+C CLCcC C0CC C}C C`C7C`CC ܀CC=~Cf|C@zCfzC5}C~C|C&zC@zCyCyCzC^{C@8~C@C@zC{C`CC CƒCCuCC`oCBCsC)eCERC)KCJCKCKC@KC@KCKC@KCLC#LC0MC+NC@JMCMCOCPCOC;PC@aPC@8PCQCYOCNC@OCLOCGNCNCkNCuOC@3NCPCPCEOCOC@OCfOC@PCPCQC QC=OCLCQCCkCC`C C@ӄCCԄCC@jC`C@aCຄCqCCCCC@}C}CzC+{C@~C}}C@szCyC}zC@yCyCzCR{C@~C^~CRyC@J{CC@C ܃CC C CCkCCtC{kC@WCLCBKC=KC5KCKC@KC@KC&LCLCLCLC NCMC@ONCOC@8PCOCPCPCkPCfQCQCNCiOCOCMC)NCYOCOCNCOC@QC@ PCNC+OCOCOC@!QCQC@RCRPCMC)CYC@aCC@CC@C@CC@JCUC"C˄CC)CCTC`&C@AC@}C.}CzC|C}C+|CzCyC}zCyC)yCzC){C+~C#}CyC@{C~CLC C`CC`C CkC~CvC@tC _CMCJC;KC@ KCKC{KCRKCKCRLCKC@LCNC}MC@xNCNC)OC;OC@OQC@QCiPC;QC5RC}NCNC@xPC@NCMCOCPCOCOCPCPCNCOCOC}OC@sPC)QC@\RCQCNCqC`OC@AC`fCuCCɄCCkC@sC@ClC@*C@CԂC C CلC̄C{C@YC@LCJC@JCJC;KC@KC}KCKC}LC)LCLC{MCTMC OCNCMCTPCYRC@QC#QCPCYPC@PC@OCiPC@\OCMC@PCPC0QCWQC+QC#RC0QCOC;OCNCMCOC@QCYRC CC EC@C)CC C~C@*CC`&CCCC`FC C@CqCC~C|C@{C&|C)|C}C}}C}{C@J|CG|C@yCzC{CxC={C}C&C}CY}CC@C@ʃCCRC nC^CلCCCaC.MCJCJC@JCBKCKCKCKCYLCLC@LC.MCLCNCNC@MC@PC@QCfQC}QCPC PC@xPC@PCPCOC@NCNCOCfPCcPCPCQCRCEPCNC;OCkNCNCPC@QCC`CC`C`C ńC C`C \C`CZC@CCZCbC |C C`C'Ci}C;|C@{C@3|C@|C@s}C@|C5{C|Cn{CyC{C{CzC|C#~C@ C@yC@zCຂC@CڃCفCL~C@CzC,C@!CCjCOCJCJCJC@ KC@KC@KC@KC@KCLCKC;LC5MCMCNC}MC@OCWQCQC@QCPCOCWPCYPCuPCPCNC=NCNCOC+PCPC@PC@RCpQC@\OCNC@NC+NCOC+QCZC`CC`OCC C`C'CQC`؄C@CC‚CZC CC`C ECTC|C{C@\|C@|C^}C}C@O|C@8{Cn|C@zCY{C0|C@s{Ci|C~C;~C5CuC@yC`C@C0C1C}CC@C CYCCrCQCJCJCJCKC@3LCKC@aLCLCLCKCKCLCMCNCMCOC@xPC@PC@PCPCPCPC@OCOCPCOCWNC@8NC@OC@OCPCPC.QCRCOC@NC@NCMCNCPC౅C CBCC@C`fC`&CC \CYCނC`CCPC CC,CqC}CW|C{C|C0}C@3}C}C{C {C{CzCzC@|C|C ~C~C}C@a~C@3sC{CC4CCC+|C~CCCCIC@yCcTCJC@\JCJC@sKCLCuKC^LCKC@KC}KCKCLMCLCNCMC@MC#PCPC@OPC@PC)PC@!OC#OCOCOCOCNCMC}NCNCYOC)PCPC@QCPCOC^NCNC@MC@aPC@!C@ CC@jCwCCC˃C~C@C %C'CCC@ C@ C]CC0C^}C@a{C{C@a|C@!}C@}C}CzCT{C@{CyC@a{C&{C}C@CC@~C|CuC@~C@jC"C@C@CyC@O{C`XC˂C@C@Cf}CUCKCJC@JCKC@LCkKCLC@LCKCKC@KCMC@ MCMCNC.MCPCPCBPC@OC@\PCOCNC5OCNCOCWOCYMCMCOC@NC5OCOCQCPC5PCNCNCMCOC`CCCcC`oCC`CCC nC`C@ʁCC C C@C>CCC ŁC~CW|C@zCzC@{C|C|C|C@zCyCzCzCnzCzC|C~C C~C@J~C@8}C&}CWC`oCC`CCuwC|CCC>C`XC~CpUCJCJC@KCKC+LC+LCYLCLCKCKC}KCLCMC@MCMC@LC&OC.QCBQC@OCOC@OCNCMCNC5OCOCOCMC@aNCpNC@sMC@NCOCPC)PC@OCWOC@\NCMC EC %C`C9CC#C`C9CǂC'CC |CCCCC C}CW|C@yCzC{C+|C|C{C{yCyC@JzC.zCBzC={C|C@aCC}C~C@}C~CCcCǃCࣃC#CzC`XC .CՃC \CCY}CcTCRKCKC@KCKCLCLC@ LCLCLLCKC0KCLC@MCMCMCLC}OC@8PC@\QCRPC@OC@NCNC@xMCpNCNC0PCOCnMC@MCYOCcMC@NCOC@OCPCOC@OCNCENC`C`CC`C %C`C@AC`CICZC`/CzC C CفC~C@|Ck{CyC+zC@{CzCW{C@szCxC;yC@\zCzCzC{C|C@3C~C{}C|C@|C.C1C`XCуC`C>C@C \CbCCQC`CzC5SCJC@KCLC}KC@LC@LCLC.LCLCLCKC@LCMCNC@LC@LC OC@OCPCPC@OCMC5NCYMCfNC@NC)PCPCNC@MCNCMC@JMC@8NCOCcOCkOCOC@3OCNCC CC@C"C4C]CCCׂCC nCZCCCR}C@x|CRzCRzC@OzCzCyCizCxCxC@yC@zC{zC{CG|C@\}CC}C@|C@zCn|C}CCCPCC`8C@C@C@JCC NC7CuCQCJCKCKCKCKCLC@8LC=LCKCnKCKCELCYMCMCnMCLCNCOCiPCkPCPCBNC@MCMC@MCNCOCPC=OCMCNCOCLC^MCNC@OC@xNC5OCBOC@OC@JCC@C"CCCuCC=CCCƒC@C@C`C@C}C|C0zC+{CyCfyCyC@ yC@xC@xCyCzCzC@8|C|C@}Cu~C@|CW{CvC{CCCCCCC@CCCuC`FCCrC@OCJCfKCuKCKCKCBLC0LC@KCKC@KCKCLCLCMC NC@MCBNC{OC{OC#PC@xPCcNCMC@NCNCTNC@sOCQCPCLNC@MCOCLCLC@NCkOCNCNCROC OCC˃C@ӃC^C@CgCCࣂC@CуC@*CCCC~C}C@|C@zCyC{yC@xCxCxC@wCyCzCzC@s{CE|C|C}C@|CY{CzCsCk|C@C`CICQCC)C"CPC}CgC7C@!CqCOCJC@JCBKCKCKC@KCLCLCKCLCLCELC@8LC@!MC@NC+MC5NCOCNCPC@OCOC#MC@NC@NC@ NCNCPCPCNC{NCNC+NCcLCMCNCOC@MC}NCpOCiC຃C@ClCCC C \CyC C˃C`&CCUC~C~CT~Ci|CzC@yCxCwCwCwCcxCyCLzCE{C{C@|C|C|C{C@zCcwCTsC@\}C~CǀC`CcC`CC1CCKCUCpC`CGtCYQCKCJC@KC=LCLCLCLCLCKCKCKCLC+LCLCNCMCkNCNCNC#PC@OC@PC&NC@sMC;OCMC@NC@PC@xQCEOCNCNC@NCYLC@LCNCpOCNCGNCTNCC C4CkCC łC`CC@!CC@3C5CCC@~C}C{CBzCEyCYxCwC@wCuwCxCyC@szC+{CL|C@|C{C{{CR{CzC wCuC.}CC@sC nCـC eCCPCCKCTC %C NCxCUC)KC@!KCKCLCLC&LCTLCKCKC.LC@\LC@JLCKCLC@MCNCNCNCNC@OCOCOCNCMC@OC@NCcMC@OC5QCOCNCiNCNCLC@JLC{NCNCNCMCcNC˃C'CCC CkC C CC7CC %CC@sC@\~C|C{CuyC@xxC@wC@vCwCwCyCyCfzC@{C|C|C{CY{C{CzC&xC@yC}C@sC`8CCCCCC nCPCC@C]C}CZC@KCJCKCMCLCLCkLCLC@KC@LCLCLC@LCLCuMC@NCNC@8OCNCNCPCOC@OC@NCLOCpOCMCOCuQCOC=OC;OC@MCMC@LC}NCOC)OC{MCMC:ClC4CC C łCiC@C`&CC@CCC~C}C{CyCxCxC@svCfwCYxC@sxCzCzC{C{Cu|C^|C@a{C@{C{{C@3{C@zC@{C}C}CCGC`FC ܁CCCC@CC`OCՄC C=aCLCGKC;LCMC@LCMCfLCLC)LC+LCMCTMCLC MCMCNCMC@\OC@NC@NC+QC5PCTOC@NC@NCOCMC;NC@PC@sPCuOC^OC+NC@ NCLC@8MCROC#OC&NCMC`XCCCÂC`fCC |C7CUC}C`CCC}C{CYzCxCWxCwCvC@OwCxCyCBzCzC{C|C@|C@|C{C@8{C@a{C0{C@{C|C;~C~C~CCcC C˃CCǃC@3CCCC}C@3gC@aMCKCLCkMCLC@LCcLC#MC@LCLCLC)MCLC@JMCMCMC@MCOCGOC=NCPCQCOC@ OC@NCOCNCMCOC@sPC@!OCOCNCNCMC@LCOCLOCNCMCຄCCC]CɂCCC+CuCCC`C~C#{C@zC@8yC@!xC@wCvC@avCyCyC@zCzC@3{CY|C|Cc|C{CL|C}{C@{C{C{C|C}C0~C@~CCڀCpC CCLC`CGC`fCׄCChC&NCLCLC@JMC@LCLCLCiMCiMCkMC@LCGMCLCMC@MCMCMCOCOCNCPCPCPCNCNC5OCNCNCOCPCOC@OC@OCMCMCLCNCOC@NCMCC C C eC@CCC@\~CCЀC@SC@~C@8|CcyC@syC5xC@\wCvC@3vCvC@yCzCzCzC{C}|C#|C|C{C{C {C@8{C|C@{CY|C}C}Ci~C0CUC@CC`FC^CkC`CWCCCeC@JNCLLCLCWMCMCKC=LC@MCMCMCRMCMC@LC}LCpMCMCTMCGOCPCLOCPCuPC@PCOCNCNCNC OCNCOC@OCOCfOC@3NCEMC;MCMCPC@OCNC C C C@C`CC0C}CGCCcC}C zCxCxCpwCvCvCuC@wC)zC@{C@3{C@8{C^|C5|C@|CW|C|C{CzC|C{|C@{C{C@8}C}C@~C@ʀC`C@C C`8CCCCiC)C@x|C^CMC@OLC@KCLCLC@LC@KCYMCMCMC@LCuMCLC@JLCLC@3NC@MCNCOCOCPCnPC@PCPCOCNC@NCNCNC@sOCPCOCOCNC@MCMC@JMCOCPC@NC`ƂCqC@aCCC"Cu{Cp~C@sC CރCЃCwCfCnNC@NCMC@OLCkMCMC@JNCpOCMC@xLC@MC@\MC@!MCGNCMCEMC@xNC@MCLC@MCMC=MC@xNC@PCPCBOC&PC PCNCNC@OCPCQCQC@QCQCSC)SC@xQCOC@NCMC^CwCyCT}C~C~CR}CwCvCwCvCvCRwCpwCvC@uC)vCGyC|C@|CE}C|C}C~C~CW~C}C@J~C@ ~C@!}CW{Ck{C@!|C|C|CCCUCCC`oC@!C C EC຃C CCgC@\OCNCLCLCMC@NC@NCGPC.NCLCLCMCMCMCMCuMCBNCNCLCWMCMCMCMC=OC@xPC@!OC@3OCOCNCNC+OCLPCQCQCRCQC^RCSCRCPC@\OCNC{CwC{C}C~C@~CzC.uCwC@wCvCTwCxC@ wCuC@3uCfwCGzC|C;}C}C|C}C~Ck~C}C}C{}C@|C@a}C{C|C@8|CW|C@J}C~C@\CCC0~C@xCC`C nCCCЂC^iC@\QC.OCLCMC@ONC+OCOC@PCMCEMCNCMC@LC@aMC@sNC@ONCLNCcMC=LCLMCMCNC=MC@JOC@OC@8PC0NCcOCNCNC5OC@OC@QCQCQCQCQC@OSC@RC@8QCOC@NCWxCcyC|C~C~Cc~C@vCvCxCwC@wC#xCwC@vC5uC@uC@8xC{C|C@|C|C{}Cc~CT~C}C}C@}C|C }C@|Ci|C)|C5|C|C|C0~C@~CC@C{C;~CCׂCC`8C>CCkC;SC@OCMCNCOC{OCOC@PCMCMCNCMC@LC@LCpNC0OCNC@8MC@OLC@sMCNC@MCcMC@NCOC PCNC@NCOCNCOCOC QCRC RC+RC@QCcRCSC@QCPCfOC.xC{C|C+}C~C{CtC=wCxCxC@axCxCwCLvC5uCYvCyC|C+|C@|C@}C@~C@C}C}C}CY|C|C@|C@ ~C}CT|C@{C0{Cc|C}C~CC@C{C@~C@C CƒCbCC`C#lCSC.OCOC@PCOC@OCOCnOCMC@LC@NCMC@LC)LCMC@!OC@NCcMCRLCLMCNC@!NCTMCRNCYPCiOCOC+NC@NCNCNC@OC}PCYRCRCnRCWQCQC@SCRRC@PCOC@yC|C@|C}C@~CwC@8uC@3xC@xCyCyC^xCvCYvCuC@wC{C@|C{C@|C}CBC@~C{}C#~Cf}C{C@{C}Ck~C@\~C{C@{CzC@s{C|C~C`C \CY|C@~CpCqCCTC ECCfjC5SC)OCpPC@PCOCOCcOCNCLC)MC@MCMCLC#LC@!MC5NCNCMC@LCLCiNCWNC@MC@MC=PCLOCOC@xNCNCNCNCOCOCRCRCRRC@QC@xQCYRC@SCuQC.PC@!{C}C|C;~C|CTuCvC^yC5xCzCyC@wCRvCvCvC@8yC|C{C{C|C~CC@~C}Ck}CB}C{C#|C~C~C}C|C{CyC{C@s|CC@JC@SC|C@JCтCC@*ClC@SCCgC@ORC@OCYPCOCpNC@8OCNC5MCLCLC@xMCRMCLC@KCLCMC@MCMC@LCLCNCNCMCcMCOC@OCOCNCNC@NCOC@OCNCQCpRC{RC@RCQCnRC@!SCQCPCB|C|C@}C@~CyC@uCxC.yCYyC{zCyCvC@vC.vC}wCpzC@x|C@{C@{Cp}CCC@~C}C@}CR}CR|C@|C~C~C@~C@!|C@{CyC|C|C}C=C C|CpC łCЃC@3CTC`fCYCdC RCOCOCGNCMC&NCMC@LC&LCLCuMCLCLCLC@LC@LCLC.MC@MCLCMC=NCMC@MCOCOCPCOCNCNCENCNCNCPCRC@RC@RC@RCQC@RC@3RCPCG|C{C@!~C}CvC wCyC@\yC{CzC@xC)vCfvCvCxC{C{C{C=|C@}CCC@x~C~C)~C|C+|Cu}C~CY~CL}C|C@ |C|C}C~CCC]C@zC@C ܂CǃC@*CCgCCbCQC@!PCNCMC&MCMC^MCTLCLCLCfMC+MC@sLCMC@LCLCLCMCMCMCNCNC@MC{MCNC@OOC@OCOC@NCNC@NCNCNCNC#QC}RCRC@8RCQCQCSCpPC}{C5|C~CL{C@\wCxCyC@zC{C@szCwCuCvCwCWzC@|C{C@{C0|C@~CCC~C0~C}C}C|C@}C|Cc~C}C|C|C}C ~C@sC CCCyCC4CC NCPCC݀C@OaC@QC@JOCMC@8MCMC@MCWMCLC@8LC@LC@sMC@LCMC@NCMC@ MC@aLCMC@MC@NC@NCcNC@NCMCNCEOCEOC}OC)OCOCNCNC@NC@aNCOCQCRCnRCQC.RC@3RCQCczC}CL~C@3zCcxCGyCzC{C{CyC;vCuCvCYxCL{C@|CzC+{C|C~CCC@~Cf~C~C~C|C }C|C@~C|C)|C}C~C~C4C CnCE~C@zC@JCpCQC@CC4C}C]CpPC@MC@LCMC@!NC@LC5MCMCMC+MCMCTMCnMCNCNCMCLCMCTNC@OCWNCYNC@\NCMCMCOCNCOC@OCNC@aNCNCNCWNCNCPC;RCQC0RC@QCRRC@QC&{C~C|C zC)yCuzC0{C@{C{C@xxCuCvCwCzC@{CzCzCzC}C5CC@C@C=CC.~CE|C=}C}C@J~C|C|C@3~C@xCCC@aC@~CL}C^}CCC=C7CC+CEwCYCPCMC@LCMCNC5LCMCNCNCENCMCMC@MC@aNCNC@aMCGMC@ONCOC@NC@NCNCMC@MC@xMC@\OC@xNCOCiOC@JOCNCkNC@NCNCNCOC@!QC@QCQCRC5RCRC|C@~C@{CzCpyC&{C@8|C{CTzCwCuC vCpxC@8zC0{CpzCzC&{C@}C+CcCCC@CC#~C@|C}CC}C@ }C}CC C C CQC~C|C{~CࣂCC9CqCC C@nC@UCOC@NCLC0NCLOCKC@ LCRNC@aOC5PCNCOCNC@MCNCMCMCOCOCNC@NCMCMCNC^MCOC@NC}OCfOCpOC@OCMC@NCNCNCNCuPCQC&QCQCQCRC}C@a~C@{CzCnzC{|C@|C{CnyC@wC@xuCvCyC@!{C5zCyCnyC|C@ ~CC~CCC`XCbCi}Cc}C+C~C}C@}C~C@CUC ŀC CCC.}CC`؂C̃C`xC`CCCfC@ TCOC{OC@3MCNCOCKC&LCYNC@PC^QCfPCuQCOCMCMCMCNCOCPC OCNCMC@8MC{MCLCNCNCOCOCOCRPC@3NCMCNCNC@ OCPC QC.QC0QC@QCcRC+~C}C{C.zC{C{|C{CzC@xC5vC@uC@wCyC@xzCcyCxCWzC@ ~C@s~C~C;CC`C C %C}Cu~CC}C~CECpCC@C C |CCC|C`πC#C C`τCC@AC{C^C@ SCkPCYPCMCNC@OC@3LCKCMCWQC)RC)RCRC^QC@aNC=NCNCNCPC@aQCOC@NCMC@LC^MC@MC@ONC@NCNCOCOC@aPC@OOCMC@ONCNCNC{OCPCfQCPCQCRC@~C0}CzCzC|C|C{C@zC@xCuCvCxCyCnyCxCwC|CR~C&~C@x~C~C@aC`fCCC~C~CC}C@sC@aC CUCCހCKCLC@\C@8}CCPCCCCC@rC5YCRCOC@PCMC@3OCQCLC@KC@MC5QCERCRCSC{QCNCOCfPCNC5PC@\PCOCNCLC@MC=MCTMCMCNC^OCpOCOC@PCOC@NC.NC@NC@NCNCPC0QCPC@3QCTQC@O~C#}C#{C{C@x}Cu|C@{CyCwCvCwCxCyC yC@axCyCC~C0~C+~C~CCTCuC@C@~CC=C~CCC@SC`C1CCCzC}CR~CqC@CՃCC`CC)jCRUC;QC@PCPCMCfOCPCMC#KCMCQCWQC@xRCRC@PCkOCOCPC@JOCOCcPCkOCNCLCMCLC@MCMCOC@OCfOCOCcOC0PCNC NCRNCNC@OC0OCcPC&QC@aPCuQC+~CT|Cf{C&}C}C|C{C@3yC@vCvC@xC@xCpyCyCxC)}CC@J~C@ ~Cp~C}~CnCLC NC#C@~CCnCCkCCUC C=C CڀCీC@s|CCC@aC׃C`C`CCbCRCPCiOCOC@MC@!OCOCLC@KC@MCPCPC@QC@ RCQCfOC@NCOCnOCNC@OC=OC=OC@OMCnLC^LCMCMCNC@OC@OCOCOCOCPCNC@MCNCNCOC@OC@xQC@\PCPC@}C@!|C@|C}C@}C|C@J{C+xCBwCxC}xCxCTyC@xC.zC@!C=C~C@~C~CCfC CCCnCC@CCuCCCTCCC`CC`xC{CC"CC`C@jCC|C@a[CQC@PCOCNC#NC@MCBNCLC@KC@NC@ PCNC@OCEQCPCOC5OCWNCNC&NCOCOCGOCYMC@aLCRLC@aMCTMC@xNCOCuPCGOC@OCOCnPC@NCNCNC&OCNC}OCPCQCOC@3}C@{C=}Cf~CB}C}CyC@xC@wC@JxC@!xC@xCyCyC~CC9C@~C~C@3C~C@ C@C@C~CC@C@CC@C .C@CZCkCЁC#CkCzC |C@C CɂC)CWC@8wCVC^QC#PCROCpNCNCMCMC{LCLCOCRPC@8NCuNCPCPC@xOCNCMCMC@MCNCNCOCMC@LCLCTMCMCMC^OCTPC{OCOCOCPC@8PCNC;NCOCNC.OC0PCQC.PC|C@s|C}Ck~C@3}C|C@ayCwCxC@xxC@xC@OzCLzC{CuCC`FC`&C@C@C~C@C1CC~CBCC@8C~C^CC`CqCC`FC eC@C{CుCC`CLC CC@pCTC@OQCPC@NC@8NCOCGMC^LCKCLCOC.PC+NCMC@OC@!PCiOCLNCMCMCLC@MCNCkOC@aNCLCMCMC@MC&MCNCPCOCLOC@sOCOCLQCNCNCNCOCLOC@OCQC.QC|C|C@~C}~C}C{C@axCwC@xC5xC^yCzC@zC~CCCC`OC EC@CkC`CC=CCC;C@8~Cu~C C CCCC nC`CC|CC4CC5C)C'CiC@aRCcQCOC^NCuNCOCpMCLCKCLCOCOCMC@aLCMCWNCENCMCRNCMCLCuMCNCOCkOCLCBMCMCMCLMC+NC@OCPC@NC@OCNC QCPCMCuNCOC@NCOC@sPCpQC|C ~C~C@!~C{}CizCpwC0yCxCxCzC{C|CgC`8C@C@CCCICC>C CCC@!C5~C@J|CC |C`&CC ΀CC`C~CCE}CtC`CC݁C`xCC@bCRC@3QCOCNCNCNC@MCLCKC@LCfOC@\NC{MC@KCLC.MCMCLCNCROC@3MCMC@NCOC@OC5MCcMCMC+NC0MCMCOCpPCOCOCNCOCQCLNCNC&OCNCOC@xOCiQC}CR~C@~C@O~C|C@3yC@wC@yC@xCnyC{C{C{~C@C CCUC+CCuC=C@aC nCZCC~Cn{C}{CC1CCwC:CGCCCɀC.CC>CCC`CTC@]CQC@aPCOCMCNCMC NCuMC@LC@\MC@OCMCLCBLCLCpLC@LCKC@MCPC+NCMCNCNCOCNCcMCMCTNCMCMC@NCPCRPCNCNCOC@aQCOC@MCfNCNC&OC@OCPC}C~C)~C~C@8{CxC@xC@yC@yCzCp{CE}C@SC5C`C`CcC nCC CUCÀC຀C}CC}CxC{CC@JC`CC}C+C`CCCCC CCcC`XCC@ |CRZCPC@\OC@!NC;MCfMCNC@NC}MC}LCNCOCMCLCLCLCcLCLCKCkMCuQC@OCNCOCOCOC@MCBMCNC@NCNCMCMC@8PCPCGOC@sNCNCQCPC@MCNCNCNC;OCOCB~CC~C)}C@ayCwCyCxC@yC{C{C~CCCCC5C@C@CC ܀CC@AC`C~C{C{wC@}CC C^C@jCC'CC˂C@C`CׂCC`CtCՃC vC@UC@NCMC@LCKC@!MCNCOC@xMC@LCNC@OC@xMCRMCfMCMC.MCEMC@LC@OMCnQCPC@OCuOCNCkNC@MCLCMC+NC)NCMCMC#OC@PC&PCNCiNCRPC@QCNCNCkNCNC@JOC0OC~C{~Cu~C{CwC@xCEyCxCzCf{C@|C %C C`ρCCC C@CtCC NC]C@jC`/C)~C@yC@axCC`FC`ρC ܁C`C+C CrCWCOCNC^OC#NCLCLC@xMCNCNCMC@NC@\NCNC@NCMC@xNC@NC+NC@JMCOCMC)MC@aMC@JMCMCNCpNC@JNC@NCRNCNC0NC)NC@OC@PC5RC@OCMCNCOC@OCNCWNCGNCYOCLQCPC}CwC@nChCgC{gCmC@mC&nC@mC;nC@ qCuCxCRCwCiC@sC@sCC@jCC NC C@SCCC@C~CfzC=tC+sC{CుCCYuC@3uC@xCwC}CCntC@aXCOCOCOCNCWNCMC.NC@aOC@MC@NCMCTNCMCGNC@!NCNCOC;NCEMCNC@ NCMC@3MCnMCMCMCNCYNCNCWOCNC OCMC@NC@\PC@QC#PCMC@NCOC@OCNC;NC+NC)OC0QC@PCp{CsClCuhC=fCiC@anC;mC@xnCnCunC+sC@avC@J{C`oCCQC`CgC CǂC`C CC@CuCCIC@{CwCrCsC|CC`xC@asCrCirCsC^zCUCRuCXC@QC@PC;OCTNCOC@NC@NCNC@MCMCiMC@NCMCMCWNCkNCfOCNC{MCRNCBNCMCMC@MCMC#NC@ OCfNCBNCNC@NC@NCMCNCOCYQC+QC@xNC@MCNCOC@OCNC@xNC5OCPCuQC0xCpCjCgCcfC@!mC0nC@3nCnoCoC}pC@tCxC}CC`FCCbC .C@3CC0C@CC`C݀CGC@~CyCtC@OrC@sC@!}CC@C@rCmC@ kC@nC=tC{CsC.XCiRCBRCOC@8OC@ RCOCRNCuNC@aMCNC}MCMCMCMC@sMCNC@OC@NCMCMC.NCNC@MC NC5NC@NC@ OC{NCNCOCOC@NCNCYNCpOC.QCWQC OCMCNC.OCOC@aNCNC@NCLPCQC@3uCnnC@iCEfCRiCfoCmCnC;pC@oCErCvC@zCCC`xCC@JCtC eC@C .CC^C`XC'C C@O|C5vCqC#pCsCn~C@CCqC@gCcCjC pC@vC{nC}WCTCYSC}PC@PC@SCQCNCMC@MCMC@sMC MC@LCMC@MC@!NCpOC@NCTNC@MC@JNCpNCMC)NC}NCkNC=OC@NCNCOCcOCNC@xNCuNCcOC@PC@QCOCNCNC@JOC@PC&OCNCNCOC=QC@arClC@hCeCBmC@oC@nC@oC@qCpCtC@awC|CQC`؀C̀CC@CCkC`C˂CC`&CC@JC@~CzCsCoCmCtC@CກCcCBqCudC@\aC;kC@oCpChCVCpUCSCfPCpQCSCRC@!PCWNCLC&MCLCLC@MC@MCMCuNC@xNC@!OCTNCYNC@!NCcMC@MCMCNCMC=OCNC@!NC@NCNC@OCNC@NCOC)PC^QC#PCNCGNCNCOCPCNCOCOC@PCfpC@kC@fC@hCcoC@nC@nC@qCYqCqC uC@xC@}CC CCCCC`XC}CC`OCC .C}C}CwC@qCmClC^vCCGC~C@\pCdCbCqCusCoCBdC{VCUCnRC@OCWQCSC&TC@QCNCLC@LCWMCMCLC@sMC@MCYNCNCBOCYOC@NCNCMCMC@MC@NC@ONC@!OCTNCNC)OCNC@NCNCNCOC@OCQCPCOCNCNCfOC@3PCNC@NCOCPCnnC{hCeClCoCnC@oCqC@pCsC@avCyC@}CC CCC C~C~C}C}C@}C@}C@a}C}C}Cf}C@}C@J}C@|C@J|C|C@J|CTzCvCYtCsClCfmC5rCgCp\C]ChCdCdC`CcC@8jC@mC@!fC`CG^C@8fCrCrC@sCsC0uCuC)wCEuC.lCdC@dC@hCmC&tCxCxCxCxC@8vCYuC uC@\uCvCwC@wC@wCvCuC uC@tCBuCuCsCtCsC}sC+sC@rC)rCkrCsC@sCrC@arC@!sCqC@oC@{C@C@CC nC@CECu~C}C}C@ ~C@}C@}C}Ck}C}C@}C@a}C|C|C.|C@|C@\yCvCEtC)sCTjCnC rCfC^CRbChC@cCaC@!_CcbC@ gC@mCgC+`C_C#jC)rCrCEpCpCsC@sCvCrC{fCB`C}_CbCgCnCwCyCyCxC@vC@uC@auCuCTvCuwCwCwC=wC uCtCtC@stC@!tCtC@sCsCsCksCrCTrCBrCrCrCrCrC#sC}rCpC@}CC`C ŀCgC@C@C~C@~C@O~C}C~C}C@!~C}C~C@}C}C}C&}C@|C|CxC@auC@tCiqCiC@qCqC)gCaCgC@hCcC`C@3^C`C{dCRoC@hC@_C@`CmCGrCpCkkC@lCpCpCtC@anC@xaC5]C.]C=^CYaC^hC^tCyCyC@xCvCtCuCuCvCwCwCYwC@vCuC@sCtC@sCrCsCsC@xsCsC@sC=sC@rCqCsC@rCrCrCrCrCpqCCCC`C eC@CC~C~C@3~C@a~C@~C}CY~C~C~C@}C@}C;}C@a}C@|C{C@wCuCuC@pC0mC@tC}qCRiCcfCiC+hCbC#_C&^C_CieCpCpkC}_CkcCoCrCnCeChC^nCkCqCiC=^C=]Cu]C\C^C@\cCnpC+xCkyC@xC&wC@suC@uCvCvCvCvCvCBvCtCcrCWsC@sC@qC5qC@rCsCsCnsC^sCrCrC#rCrCrC{rC^rCrCqC`fCCԀC@CcC`8CC@~C@a~C@~C~Cc~CL~Cn~Ci~C~C@!~C5~C#}C@ }Cn|C{CwCvCuCqCqCiuC@8rCkCiC@!kC@hCncC0`C^_C@8bChC@!rCmC5`CfCpCrCkCcbCfCkCfC0nCgC@[C\C.^C]C^C@aCkC@JvCyCxCLwCvC@uCvC@vC@vCvCuCnuC@tC@arC}qCrCpC=oCpC)rCsCsCsC&sCrC@qCrCRrCLrC.rCrCsC@C@ӀC`CCCCCC~CC~C~C~C@aCu~CG~C~C@~Cn}C}C|C@3{CxCwC}uC@rC;uCuCsC{oCkCkCiCpeCaCibC=gCBnC@sC@oC@!bC@iCGqCrC@jC@ aCpeC@!gCbC@jCdCZCY]C]C@^C@O^C@ `CBfCTrCxCxCwC@vCuCfvC@JvCvCGvCuuCtCusCpqCoC0pC@\pCimCmC}pCYrC@sCsCGsCurCrCrCrCrC;rCWrCrCCCC€CyCCC@x~C~C~CC@!CCBC~C~C@ C ~C}C@J}C|Ci{CyCwCWvC@auCvCfvCEtCqC@3lC.mC@lC@hCTeC.hCnC#rCtCpC@eCkC=qCrC^iC@3bCdCcC)`C@gCbC@OZC\C@]C^^C_C_CaCfmCwC@yC@xwCYvC@!vCvCvCvCvCuCsCrCTqC.mCnCnCflCYjCnmCpC.sC@sC}sCsC@rCqCkrC#rC^rCrCTrC#C@CɀCC`xCCC@3C~CWC@~C@sCCC&C@~C@s~C@3~C@}C@s}C|C@{CzCLxCvCnvC5xCGwCfuC@\sClC0pCWoClC@kCEoCsC+tCTtC@xqCBjC0nCqC=rCiCcCWdC@OaC@^CcC@O`C@ZC\C@[C\C@_C@^C]C@ gC@avCxC@3xCWvCuCvCvC{vCuCtC5sCrCqClCpjClCikC@8hCiC nCkqCsCsCTsCrCqCRrCrC@\rCrCrC CCC@C C"CCC@CCCC@CCRCcC@~C5~C}C}C|C;|CzCxC{wCwC@xCxCvCsC@oC@sCrCWqCpC)tC#vC{uC@tCrCnC}oCqCrCkCdCcdC+aC^C`C^C&YC[CZCZC]C ^C@ZC@bCtC.yC@JxCvCvCwCvCfvCuCtC@JsC@qCfqCkCnfCLiCiCkfCeC@iC@JoCrCsCksC@ sC;rCRrCrC@\rC@qCrCC CڀC@CUC)CCC@ C@CGCtCTC:CC~Cn~C~C~C|CR|C0|CzCxCExCxCyC@xCwCtCsC@\vCYuCcuC.vCRwCvCvC.uCTrCpCpCWrC.sClCnfC@cC`C_C^C[C@JXCZCLYC;YCp\C@\C@XC]C@qCwC+xC wCvCvCvCvC@uC=tCrCrCqC mCdCeCgCeC0bCeCRkCRqC@sCsCsC@srC@JrCYrCrCprC@rC5CC CCCCC@ CCPCCC~C`/C@C@~C~C~C}C|C{C@{CzCyCnyCyCxCcyC@xCvC@vC.wC@wCwCxCwCwCkvC@\tC@arCqCqC@sCtC}mCEfC#cC@OaC_C0^C[CWCYCWCWC=ZCZCWUC^ZCoCwCBxCwCvC&wCwCGvC@JvCtCnsC@ rCuqCnCeCbCGdCdC=`CaCfCmCWsC@8tC.sCrC@qCprC@rCrC@rC CC`CCuC@*C)C@*C@JCC]CuCC eCCC.C~C|CzC{C@{CzC@zC.zCzCyCfyC zC{xC@xCxC@xCRyC@JyC@8xCwCvCsCLrCqCrCsCtC@oC@sfCbC&aC}_C@s]C;ZC@WC@WC@UC^VCEXC@WC@RCWCkC@uC@wC@!xCvCvC@vC@ vCuC@uCsC@rCqC@pC@gC`CaCfbC_C^C@bC@8iCuqCsCsCrC@8rCqCWrC^rC@arC CCC ŀCqC %CCC C CC`xCC CKCCTC~C)}C{CzC@{C{C@zC@ {C5{CzC@!zC@zCzCzCGyCGyCyC@yCzC@\xC@wC;vCsCrCrCpsCsC@!uCqChCbC@aaC_C\CYC@JXC@xVC@SC UC@VCTC{PCUCiCsC@uCxCwC@vC.wCnvCvCuC@tCrC@qCpC@kC@saC@a_C`C^C]CL_C@dCmCsCsCEsC@\rC@rC;rCqCqCGC ECC`πCqCZCC CCC CC C@C5CCf~Cn|C@3zCzC@{C{C@{C@{CL{CzC@yC@zC@{CzCzCyCyCzCkzC@xCwC{vCWtCrCrCWtC@tCuCtCBjCWbCuaC_C\C@aYC@XC@UC#SCRCUCQC)OC;TCgCqCrC0xC@xCvCwCvC@tCtCtCsC@!rC@qCnCdCc^C^C_C\C]C`ChC.rCsCsC@\rCWrC@qCqCrC,C4C݀CCC`CɀCCԀCCCCC \CC@~C@|CzCyC;zCzC@{C@|C|C{CzCyC@zCu{C{Cc{CzCG{C{CuzCxCwCwCuCusCtCuCuCvCvCBlC@sbCiaCB_C\CYC#YCUCRCERCSCPCNC@JSC@afC;nC@nCWvCyCwC@wCuC@sCrC@8tC@sCirCpCupC@siC_C.]C@]C^\C@\\C_CcCnCsCsCrC5rCBrC@qCqC9C@!CCՀC`CCހCCC݀CހC׀CC]C@C@~C{CyCyCyC@szC@8|C@|C{C.{CzCzC@O{C{C{C@{C{C@s{C{C5{CxCBxCxCvC)tCtCvC@!vCwCvClC bC@aC@]Cc\CWYCcYCTCRCERCnSCiPCEOC@SCeClCTjCsCxC=xCuCusCqC@oCrC@ tCrCqC@xpC@!mCbC\C\CG\C5[C_CRaCiCrCsC=sCurCrCqCqC`C'CCCC`CCCCC`C@ӀCCyCC@}CzCyCczC@yCBzC@\|C@s|C{C&{CzCzC{C{C{CG|C0|C=|C@ |C.{CyC@ayCyC{wCuCtC;vC=wCwCLvCjC@saCc`C\C@\\C@!ZCEYCRTCRC;SCSCQC@PC&TCeC@mCpgC@spCwC5xC}uCpCmCkCnCrC@JqC@pC@oCmCfC@]C@[C\C[C;^C#`C@!dCpC@ tC@asCBrCrC{qCqCCCCC@CCCCCCCC̀C̀C)C~C|CYzCT{CyCvC@yC|CT|C|Cp{C{C{Cf{C@{C@a|Cf|C@O|C|C|C{C@zCyCyCxCvCLtCuuC@\wCxCtC@gC`C_CR\C+\CZCYC TCSCTCUCSCQC0UCeCmC}gC@xmC@vCnwCisClC;hC@eCThCoCEpCuoCnClChCi_C[Cc\C@a\C]C`CaC@jC@sCsCisC@rC@\qC@qC`OC CCC C@C@*CUC+CCˀC`؀C`OCCY}C@3{CzCT{CyC0tCyC@|C}|C{C@\{C@3{C{C{Cf{C{C{C;|C|C}|C@{C@zCyCWyCxCwCRsC@!uC@\wCwCfsCeC_C@_CR[C\C@[CYCTCTC@8VCuWCUC@SCUCdC@oC0iC=lCrC@JvC.rC@gCWbC#`C@aCkCmClC mC@\jC#hCaC=\C\C]C]C`C`CTeCpCWtCsC@rC@qCqC}CPCC C`fCYCCC eC`CC`πCǀCC~C@|C={C|C{CwCrCzC.}CG|C@|C{Cf{C{C|Cn{Cn{C@{CY|C{|C|C{CB{CyCxCyC@wCrCGtCWvCxC@rCkdC_Cp^CRZC[C]CZC@!VC@JUCGWCXCVC@TCiVCncCnC5kC@lCoCrC@JoC0dC]C=[C@O\CdCGjChCiC{gCeCbC\C@\CB]C]C`CaCpaCkC@asCsCkrCrCqCCC@aCIC+CkCiCC5C C@CԀCCC~C|C{C|C@x{CtC@sCR|Cc|C}|C|C|C{C{C@|C;{C#{C{C{C|C|C{C {CyCyCzCwCrC&tC@svC@8wCqCbC@^C]CnZCB[C]C@[CYXCWC@WCRYCXCpVCVCbCnC=kClCkC@mCkC@x`C@XCnWCkXC]CdC@dC@eCcCEbCaC^C#\C\C0^C`CaC`C@xfC+rCsC@rCRrC@qC@AC@SC`&C}C~CCCGC1C`CCCpCB}C|C=|C|CLzCurC.wC@8|C@ |C|C|C{C{C{C{C@zC@s{C{C@J|C|C@|C{CzC;yC@yC@zCwC@sCsC@8uCfuCpC@abCY_C^C#[C[C.^C\CZC@YCRWC@JYC@8YC@WCVC`ClCiCiCThCfC^hCn]C@sVCTCUCXC]C`C_C=_C]C{^C@ ^C@[C\C^C_C@bC^aCcbCmCfsC@sCurC@OqCC`CGCCCCກCICCрCC@aCC}CT}C|C|CyC@ssC5zCk|C |C&|C{CW{C+|CR|C{C5{C@{C{C@a|C}C@|C@{CzCyCczC@ {C@yCsC&sCsC@JsCmCaC_C@]C@8\C@\CB^CW\CYCYCWCXCWCXC&WCG_C0lC@fC@eCkdC{`CdC@[C UCSCSCRUCWC@OZC[CZCYC [C=\C@3\C[C@^C@_C@ bCaCRaCgC@8rCsC@JrCrCQCYCWC@C CՁC@ʁC .CC׀CCCT~C@}C|C@|C|C@ yCvC@{C{C{C@{C5{CL{C{C|C{C{C=|C{CB|C|C|C;|C{CEzCzCT{CyCsCpsCpC&pCpkC@JaC_C^C]C]C]C[CWCYC@8WCkXCuVCLYC@JWC0^CflC@fC}bC^C[Cn`C[C0UC=RCRCRCSC@UCXCVCUCYWCYCZCB[C]C@_CaCbC`C^cCnC@rCrCGrCtCzCC`C C C`CZC`ƀCCCWC.~C@}C|C5}C}C@yC@yC|C={C|C{CzC@{C{C^|C|C{C|CE|C|C@|C}|C@{CzCzCn{C{C.zCtC^sCmCLmC{iC{aC^C^C^C^C^CZC@VCWC5WCWCcTCXCGWC@ ]C@mCihCaC[C@ XCG[C[C VC5SCQC@QCQCQCUCTCQCTCWC@XCYCi[C@^C.aC@bC@\`CaCEiCrC@ sCBrC nCC CCCCC@*CCɀCKC@~C@x~C}Ck}C}}C|C@8{CT{C@{C zC{C{CzCY{C{C|C@{C@a|C5|C@O|C@|C}Cp|CE{C@JzCzC@x{C@ |C@zCnuCTsCkC@jCgC@`C&^C^C_C@\_C^C=ZC)UCVC@\VC@ VC@xRCVCiWC[CRnCkCaCiYCVCWCZCWCTC@xQCPCiQCPCnSCTCOCQCTC@\VCXC&YC\CR_CLbC_C`CdCpC@sCirCࣁCC@ӁCCCɁC^CC€C@ʀC@sC;~C@~C}C}C}Cf}Ci|C{CyC&yC{C{CG{CG{C@{C{C{C#|C|C@|Cc}C}C@|C@zC@8zC{C{C |CzCwCGrCTiC@iCeC;`C]C@_C_C@\_C_CiZC WCVC^VCWUCQCSC.WC@[CmCnCBdCXCUCUC;XC YCVCSCPCWQCQC@aQC+UC@OCMCQC@TCUCEVCZCW]CcaC`C^CbCWkCYsCrCCC`CCCCICC@C`C@~C@O~C~C~C~C}C@x}C{|CWzC@JvC@xC){C{CY{C0{C{Ck{C@{C@J|C@|C@a}C@8}C}C@s|C@JzC^zCzC{C@{CzC@ xCcpCpgC@8gCdC5`C@x^C`CW`C_C@x`C[CYC}WCVCTC}PCTQCBVC[ClCpCdCYCUC{UC@UCXC@\XCTCQCfQCQC@!PCTCQC#LCNCQCRC@SCVCZC#_CaC@3]C@_C fC+qCsC@CCC@ӁCށCC ClCCC~C@8~C~C~C~C~C@a}C={C@xCsC}wCR{C@{C{C{C@{C@{C@!|C|Cp}C@}C|C.}C|C@szCpzC@ |C@3|C{C@\zCGxCEnC@8fC@agCeC@\aC@_CaC`CaC@`C]C;]CXCWCTCPC+QCUC@\\ClC@JpCdC@ZCVC@VCTC+WC.YCUCRC}QCQC@8PCRCfSC@MC@LC@NCiPCOC^QCVC;\CaC@J^Ci]C@bCBmCrC#C@C C CClC NC CZC~C=}C{C~C@\CC}C|CzC@tCGpCEwC{C@zC@s{C^{C@zC|C)|C|C }C@}C@}C@s}CL|CzC@zC{C&|Cf{CzCwClCfCfC@dC@aC`CbC.aCbCn_C^C@8_C@!ZC@WCUCQC@PCVC]CGmCoCEdC@\CWC)VCBTCUC^YCBVC@xSCQCRCPCfPCSCMCJCLCMC@MCWMCRCBXC^C}_C;[C}`ChCqC>C C`C`CCC4CKCC@\}C@}CC@CC~C|C{CvCoC@nCwC@O{C{CT{CzC{C{C^|C}C}C@}C}C|C0|Ck{CzC{C@|C{CzC@!wC@kC@eCfCdCbCaCbCaC@bC^C@s_C}`CZCpXCUCRCRCWCT]CplCnmC.cC]C@8XCVCTCTCXC@!WC@\SCQCQC@aPCNCRCOCGKC}JCJCKCJCYLC@SCZC_C[C@\C&dC@oCBC C@CՁCBCCC %C@~CL}C@sC@C@CC}C|C@yCrCmCoCixCzCn{C{C@{C@|C@|Cu}C@J}C@ }C}C}C|C|C@3{C0{C{{C |C{C@zCuC@\jCceCeC@dCbCbCbC@bCRbC]C@a_C_C@x\CXCVCSC@TCXCW]CjC{kCaC@^CEZC^WCUC=TCWCXCSC@RCQC@8PCMCOCOCKC=JC{IC@sIC@GCGHCMCVCG]CB^CTYC@`C@jC+CCCɁC CC+C@sC}C@}C C~C@C~C|C|C#vCnC@kCqCwCR{CzC0zCY{CB|C|C@s}C@}C@|C}C}CB}C{|C{C{C{C@{C {CuyCsCgCeCdC@3cCbCbCbC@bC)bC@!]C^C_C@!]CXCVCUCnVC@\[CW]C@gChCT`C@]CB[CWCUCTC@VC@ XCTCQCQC{OC)NCMCNC@LCJCHCGC@!FC@EC@JHCPCYC.^C@ZC[C@eCC`CC`FCYCCC~C}CC}CBC~C}C{CzCqClCkCsC@sxCLzC{zCzC{C@|C@3}CT~CB|C}C}C@~C|C|C+|CW{C{Cp{C{CuxCoCeC@dCRdC@bCbC@bCcCpcC`C^\C@^C]C0]CYC@VC;VC@XC&]C@]CdC+eCT_C=\C}[CBXC@UCLUC@VC@WC@VCSC}QC@OCTMC#MCMCBLCJCHC@FC@DCCC@ ECJC@!UC@ \C)\CXC@`C"CՁCC`xC~CuCC@~C@~C@aC5~C@~Ci}C;{C{CwC.nC@kCmC@rCvCyCzCzC|C|C}C}C;{C}C5~C@J~C}C|C@{C@{C@{CzCyC5vCjCdCWdCcCRbCaC@\bCbC@dC^C[C]C[C\C5YCiWCVC&ZC+^CW^CbC@aC@^CZCZC5YCUCUCVCWCVCSCRCOC@LCKCYLCcKCpJCICECCCACDC@FC@aOCXC@\CXCW[CCCUC~CC %CCC`/CC@x~C}CE{CTzCfzC@sCulCiCkC@xoC@JuC@3yC@yC{C|C|C{~C@x}C{C@a}C@x~C@~C@ }Ck|C{C@O{Ci{CzCyCGsCfCpcCWdC@JcC)bC@OaC@aCbC)cC\CZC@[C@xZC0ZCYCTWCWCfZC^C^C@JaC`C&^C&ZCYC@YC=VC+UCVC)WCEVC@TCRCWOC@!LCKCJC@JCICICFCCCACBCECIC@SCZCZC@!WCC`C Cp}CC}CfC CC~Ci~C^|CxC@zCxCqCkkCTgChC@kCsC&xCyC5|C@|C5}C~C|C|C}C~C}~C}Cp|C{C@{CY{CzC@JxC@oCcCdCdC@cCaC=aC@aC@\bCbCZCYC+ZC=YCXC@8YCXCWC[C@]CB_CR`C_C@^CZCYC^ZC#XCWUC+VCVC@UCfTC@RCNC@aLC@aJCJC)JC@ ICICGCBCp@C+BCRECFCGNCXCZCWCCCE~C@ ~CC@\~CC CCn~C5|C+zCxC@yCvC@aqCjC@bCEcChC@rC0wCyC|C;}C ~C~C|C}C~CC~C}C@|C|C{CzC@yCwCkCaCdCudCcC@aCG`C`C@bC@`C.YCXC@XCWCXCYCWYCXC.[C@]C^C^_C@^C@^C[CYCL[C;YCVC@UC@VCRUCTC@8RC;NCKCICICICHCHC@HC@aCC{?C@3ACECFC=JC#SC@JZCYCC:C@}C C~C@}C CC~C@ ~C{C5yCyCYxCuCqCYgC^C@J^CgCWqCiuCyC{C|C}~CLC@}C~CCC~C@}CT|C@{C@{CzCyC=uChCfbCcCdC@\dCaC&`C@`CaC _C{XC@XC@WCWC@JYCGZCYC@OYC@x[Cn]C^C^C@3^C\C@ZC@YCW[CZCuXCUC0UC@TC&TCERC@MC@KCIC&HCHC@GC@GCHCDC@ ?C?CTECICHCLNCWC@ZC@CT~C}C~C@\|C{~C@~C)~C=~C{CzC@ zC@szCwC@uC+qCdC[C[CeCoCtC@ayC@{C}CC@Cu~C0CpC@C}C@|C+|C@|C@{C={CyC@sC}eC&bCcCcCcCaC_CR_C@aC@8^C)WCXC@VC@WC@YCZC[C@ZC@![CY]CW^Cn^C\C@ZCYC@xYCZC=[CZC@VCSC@RCRCRCMCIC@HC@!HCHCFC@FC;IC@xFCn?C=CcDCIC@3JCKC@RC@\YC C@|C&~C|CzC=~C|C|CW}CzC@zC|C@yCcwCvCGpCncC@XC#YCdCnC@tCyC@{C~CCC CC@C@~C}C@O|C|C{|C{C.{C^xCpCcCbCEcC@bC=cC`C@^C_C_C\C@VCXCVCuWCZCu[C@ \CR[C[C ]C@x]C)]C@ZC@\WC@xWCXCYC@[C@[C=YCRC@aPC@PCQCNC@IC@GCGC;GC.GCECGC.HC@ACC@HCNCWMCKC@sRC@O|C|C0{C@uC@8{CwC;xC^{C@3{C|C}C@3|CxCyC@vC0pC^CTCYC@adCmCuCxC|CkC CC@8C C@C}C0{C{C|Cf|C{C@xCuC@OkCaCibCEbC@OaCaC^C^]CW^C]C@YCUCVC@JWC@ZC]Ck\CY\C@\C@[C@x[C#\CYC@\TCOCQC@TCkVC@3YC[C\C@TC@MC@JCWMCOCJC.GCEC@DCRFCDC@CCGCkEC=C&CE;C?C#JCQCQCEpCiCpC@!dC.hCwCB{C@{CCCCPC@C={C@kC_C@3_C)[C@]CjC@vC.{C@}C~C1CC;CCC@}C{C@{C.|C}C }C&{CwC@\pC@hCbC`C@_C@_C`C`C@_C@s[C@YCYC@xXCYCTYC\C#]C\C^CbC\CVCQC&OC@KCJCMCTCVC@WC#WCXC@xXCWVCPCJCFC@FC@!IC}FCDCDCTAC@8AC@C>C?CL>C5C@*C CLCLuC@JgC_C@]CZC@^ClCxCzC)}C~CCC@xC@C~C~C|C|Cp{C|C@J}CG{C5wCpCiCdC`C@s_C_C)`C`C^C[C@3ZCGYCYCYCYCE[C@\C=\C@_CfdC\C@aTCNCWMC@JCJC5NCUCWC@WC@xVCWC{WCVC@SCMC+HCDCRGCcGC@sDCCCBC@8@C@\?C=C=C@!?C@JCk=C{;C@CC@O=C;C@=CEChC^]C@gC@JuCvC{C C>CCCCqC@eCaCYC@3UC@sSC@OWC@eCrCvCEzCT}C;CC'C0C@CEC@~CY}C@{C@\{C@|C@3~C{C@\xCwCuC{nCgCBbCR`C@J^C@x^C^C\C@ZC@ZCp\C\C@3XC@ZC\C\C@x_CL[C@\RC@JCHCHCICJCMC@8UC@XCiVC@RC@8SCUCUCTCESCQCLC@DC5DC@xFCBEC@ACn@C>C@O>C@C@=C@C>Cc=C=C=C@>Cn=C C@>C@=CCE>C@xC@C.?C=C@;CWeCpCuC{zC@}CCuC CC@tC_C]C^[CTC@\RCRCRCZCLgC}qCEyCuzCC@ C^C@!CTC@OC#C;~C~CB}C|C}Cf}C|C{CkzCqCgCidC@cC`C`C^C\CR\C@8\C@8[CiZC@3\CT\C\C[C@[CYCQC@LC@\HC#GCFCuICNCQCTC.RCfMCKCLC@QCGRCQC@xRCQC@!OC0OCICFCEGC&HCDCAC>C@O>C>C=Cf>CT?C>CC@3>C@=C>C?C=CmCuCczCR|CC`&CсCC0yCEcCp\C@![CVCSCGRCQC;SC [ChC@JvCyC@}CCCLCCC@ C~C}Cc|C{C|C@}C@|C{C{C@sC@xiCpeCdCucCaC`C^C[C[Cc\CZCZC[C\C)\CZCWYCUCNCKCpHC@aGCcGCGJC{OCTCTC^PCFC=ACCCLC}OCNCOCPC@!OCNCMCIC@HCHC@HCECf@C@J>C>C>C5>CG>CE?C>C@aoCxCzCBC0C`C EC@ CBqC_C\CLYC@\TCSCRCRC SC@ZCTkCiwCYzC~CCnC0C@C CC~C}C{C@J{C|C}C|C@{C@!yC@smCfCdCcCcC@bC`C^CT[C@[C@J\C[C [C[C\C@[C@xYCBWC=SCLC@JCkHCGC@GCKC^PCTC@UCEPCDCk>C>C@IC=MCLCpMC@NC@OC.NCNCJCHC@HCICTGC@BCE?C>C?C>CB>C>C>C@sC {C@a{C C?CW?C>C>C>CxCzCCCՁC@jCCcwCnfC^CZC@VC}TC@SC@TCQCWSCE_CYsCyC|CC~C@8C`C eC .CCC@~C{C@|Ck~C@O}CG{CEwClC@\dCWcCdC cCbC`C.^C@x\CZC@ZC\C\C]C@a]CG\CE[C@JXCSCOCICJC@IC@IC@JCMC@RCUCBVCQC@EC=C5:C@BC+JC@sICpJC@JCNCOCuOCMCJCTICIC@JCFCfBC@?C?C?Cn?C>C@>C{CW{C)C@C@C@C}CrC@dC^C#ZC@WC@aUCTCTCQC{TC@dC@wCzCT~CC^C`C nCCCBCC~C|Cu}C}Cp|C@xyC;qCfCkbC+bCcCbCaCu_C@[C#[C5ZC[C\C@]C5^C@]CY\CZC@ WCQCMCIC@ICJCJCkLCNCTCVCVCRC+GC=CE:C@>CICHC0IC@ICMCWQCBPC&OCJCICICJC@HC@DC@Cc?C@C@Ck>Cn>C{{C~C CుC@CCL{C@nCTcC@a]CZC@WCUCVCuTC#RC=VCkC&zC|C~C.~CCCC NCCC1CC}Cp}C)}C{C@tCjC+cC;aC@aCcCaC@`C@s]CZCZCZC^\C]C]C^C]C@O\CcZCUCOCLMCJCIC@3JCKCMCPCVCWCUC@!SCBHC#>C@:CC|C@C`CЁC@sC@\~CBxC@jCbCE]CL[CWC@VCWCTC@RCZCrC@{C}C}C}C@JCCCCC@3C \CfC~C}C+}CyC)pCfeCaC@s`CbCbC`C_CW\C@ZCZC[C\C@8^Cp_C`CG^C@[C@!YCSCNCKCJC@\JC@\JCLC@OC@RCWCRXCUC@sRCHC>C;C@:CCC@HC=GCEGCHC{NCfSCQCMCIC@xICICIC@GC{DCnAC@?CTAC^@C.?C@3~C`OCwC`C=C|C@sChCaC ^CB[CcXC@OXCXC@TC;SC@aCkvCY|Cc~C|C@~C`πCЀC@SCC@CClCC~C@O~C|CwC5lCdCaC&aCcC@bC@aC^C@a\CYZC@3ZC[C@]C^C`CuaC@_C[CWCiRCfMC@JCICJC@JC@LCPCSCWCBYC@VCRCpICY>C@xC^C:C:C7CCPC@~C}CT~C@ ~C{CwC@wC@apCpjCchCdC@aC@!`C]C[Ck[C\C=\C[C[C]CZCVCRVC@8VCVC.WC@WC^WC@VCSCRCOCQCSCSCnRCuTCQCEC5C ;C9C@38C^8CC+CCFCGCFC{FCEC@DC@ACACiBCfCCfGCHCFCxCtC@ hC=_C@OZCWCVCVC@sVC[C@aCBhCGoCcxCCC@CрC:C ŀC@C]CCC}CzCzC@yC@{C}C@|C5vCkrC#nC.gC@dC#eCfC@3bCaC@\lCaC+[C@aYC#ZC[C@O]C^C]C[C.^C`C@ObC@ bC@`CL\CT[Cn[CR\C[CW]C@ZCBYCZC\C@sVC^ICTAC@=C;=C=CC.BCECGCFC@EC@EC@ EC@CC@AC@AC@JBCTECHCGC wC@oCbC]CXC&WC=VCVCWCp]C@8dCjC.sCzCC݀CCbCCCCC`oCiC~C|C}zC zC@ yCzC@|C@O|C@auCqCkCcC@xaC`C@ aC^C@\aCRmCdC[C@YCZC{\C]C^C)^CG\C]CTaCGcC@\aC_C@[CZC[C@\C[C\C[CXCnYC@\CZCLMCBC@\=CR;C=C=C@3@C&@C>Cu?CkAC)DCFC{FCDCDCDCDCkCC@ACAC@CCHC)ICsC@hC`CYCVCVCiVC@UCXC#`CRgCEoCYwC}CC C`CYC`C`OCC`FCCp~C@{CzCxCxCBzCL|C=|C@uC@qC@!jC@ObC^C^CG^C@!]C@\aClC)fC0^CpZCuZC\C@\C_C}_C]C]CaCEdCaC^CZCYC[C}[CYZC0[C@ZCWCVCYC@[C5TC@GC?C@;CC@\Ci@CBCnAC@C@AC@8CCDC@\FC.ECTCC&ECDC@FC@JECBCEBCCCiHC0kCaC.ZCUCWC@VC=UCVCG]CEeCmCxC|C nCTC)CC9C |C`CuC&C}C@|C@|C5{CxC@xxCwCzCR|C{xCTrC@iC_C]C@]C@\C^\Cn]CdCdCRcCk[C@sYCZC5\C\C_C^aC^C@bCeC@`C]C@3[CXCEXCXCLVCTC@WCWCTC{SC@UCXC0TCGHCAC=CE?CACBCCBCiAC@8BCBCCCEC@\ECCCkDC)ECEC@GC@DC@BC@JBC@ECeC&_CVCkVCWCUCuTCiWC&`C@gCnsC|C~C NC7CC`CǀC@sC C`C}C@zCi{C@|C#{CyCLyCwC@yC|CwCpCgC`C_C@3^C@a]C@x\C@x[C_CccC@eCk\C@YCBZC[C^\C@_C@!bC@a`CcCeC@ aCB]C@[C)ZC WCVCUC@QCSC@ VCTCnRCQCYUCiWC@3OC=FC@C?C=CCCCBCAC&BCBC@3CCTDCDCCCCCkECECGCGCCC.CCCCLcCL[CnUCVCVC@TC;TC@xYCcCjCxC}C@jCCuC@C0CC]CQC~CE{CBxCzC|CzCczCzC{xC{xC|CsC@ mC@eC{bCaC@^C]C{\CWZC]CbCfC}]CLZC[C@\C@ ]C_CaC@aaCcC@sdC@aaC]C[CZCVCYTC5SCPCPCSCTC@RC@sPCPC@UC}SC@JCDC@@C)DCpDC@3CC@ACACCCBCCCRDC^DCCC@ECECEGCLHCRECDC@BCp`CpWC@3UC@VC@ VCTCTC\CeCoC}C@C@ACفC C@C@ CwCCC{|C@xCvC@yC@syCyC{{C{CyCwC@zCqC@3jC0eCeCbCL_Cc^Ck\CZC]CkcChCc_C[C\C]C@]CG^C`CaCbC}bC)`C^Ci[CZC)WC5SC+QCcNCMC@xQC@RCSC@!PCTMCQCTC@OPCHCBCDCFC@CCAC@C@BCcCCCCiDC@!DCCC@DC@ FCFC}ICGCpDCCC@[CGUCVCVCGUCkSC@VC_CgCvCCCCCCCC}C@SC@ ~C{CitCtC0xCuCGxC{CL}CyCvCxCpCBjC^gC@hC^dC`C@^C@\C@\C@8`C@cCgCaC}^C@a^C_C^C]C^C`CbC_C^C+^C@[CZC5XCTCPCMCKC@OC{PC0RCQC}LCLC@\PCTSCLC@ECCCGCDCBC0@CACBCCC@DC^DC@3DCCCECkFC@aHCHCFCDCWC@JUCkVCEVC@TCBSCLYC@8bCkC+|CCiCC C@ʁC`C@C@CC|CLxC@qCuC=vCrCvC|C ~C@yCtC@\wC@arCmCkCGjCLeC`C@J_C ^C@^CaC@dCngC@!cC@aC0aC`C_Cn^C@J]C^C`C@]CG]C_C[CZC YCUCPCLCJC@LCNCOC@PCRMCJCLC@RCPCICDCGC@3DC@\BC?C@O@C}BC@3CCDCDCLDC@JDCECnFCGC@ICGC@ECcUC@UCVC@\UC0SCRTC5]C@eC5rC C`C CCC@C |CC`CC|CuCqCwC@rC@!oCtC@\{C@}C@vCrC.wC@ vCqC)mCjCeCbC_C`C{aCBcC@dCeCBdCcCbCk`CT`C_C]C]C@_Ci[C[C_C\CBZCYC=VCPC;MC@JCLJC@JLC@KCfNCNCKCICLCSCMCLFCFCDC@AC@C>CAC@BCDCDC@DCDCpDCECGGCICWICECTCVC@VCTCRCWVCu`CiC@ayC@ACCÁCC@ӁC CzC#CzC~CR{CYtCtCvCmClCtCzC|CrC@pCvC@OxCtC)lCiCeCbC@aC@bC0cC@OdCdCdCeC&dC@cC}`C@x`CaC]C\C^C@x[C@\[C@_C]CfZCYC@JWC@QCNCJC ICJCLICJCNC@LCpICGCBRC@PCfICfFCDCBACB@C@O>C?C@sAC@CCDC.ECDCDCDCTFC HC.JCFC@UC@VCUCnSC@aRCZCncC@soC@~CC`C`CCׁCCCC^C}}CzCtC0wCqCjC@kC@OsC {CzCoCnC@8vCxCqCkiCYgCeCcCRcCudCcCdCdCcCcCdCbCn`C+`C@bC_C\CT]Cf\C@x[C^C^C[C@YC&WC@ORCOCnKCHCICWHCWGCEKC@ONCGKC0FCMCRCLC)GCDC@@C5@C>C>C@CBC@CCDC@JDCDCDCEC GCHCHC@8VCWCEUCuRCTCY_CgC@8vC݀C@!CC C CCtCC`C@SC|CzCvC{uC@kC@hCjC@rC@zCixCnC@mCsC@tC^mCgC.gC.fCcC@dC@seC@3dCieCdC)bC.bCbCbC_C_CbC`C\C\C@]C5\C@3]C^C=\CZC&WCRC@PCWLC)IC@HCGGC@DCFCMCLCGCiIC@xRCOCICYEC?C@?C?C@!>C+?C@@CCC@DC@DCDCDC@DCECGCICWCiVC@3TC+RCXCbClC)|CbC CCĆCCC`ρC`C@C@!}CzCxC#pCLiC@hC@JjC=qC@\zCWvClC@JlCqCRoCiCgC^hC&fCdCeCfCeC@ eCicC@aCaCaC&aC_C@_CbCaC]C@[C=_C]C\CR^C]C=ZCVCQC}OC@LC@ICGCFCCC+CCIC@MCHCFC@ PC@sQCKC@sGCAC>C@>C=C@a>C@C@\ACBCCCCDC@ DCCCDCECHCVCVCRCRC_CfC+sCCׁC@ CׁC`CCށCC C`CfCB}CzCuCjChChC@jCpCzC@tClC+lC@nCWkC@hC+hC#hCeCeCfCeCTeCdCBcC`CaCaC`C._C_CbC@sbC#_C\C_C@s`C\C+^C]CYYCfUC@PCNC@LCKCHC0EC@aBC@@CCCLCKCFCLCLQCMC@HCDC@3>C=C+>C=C>C@a@C@ACBCBC#DC0CCCCDCFCVC@OTCQC=WCcCikC@yC`OC@aCCC ΁CyCC`CC C~C=|C.zCpC@aiCihCgChCqC@ zCrCkCkCikC@aiC@3hChC{gC=fCgCgCkeCeC@dCbC`C@aCaC`C`C^C@saC@bC@`C5]C{`C.bC@]C.]C\C@WCSC@PCnNC@LCKCLJCDC@aAC?C?C@GCLC@GC@JCfOC0OCTJCFCT@C;=CT>C=C=C?C@CACTBC@!CCBCBC@CCDCUCYSCRC]CfCpC~C`C7C@CC C`C@C C`fC຀C~C|C@xxCmCfiCgCgC@hCqC@azCprC@smCklCkChCuhC@iCgC}gC{hCgCeCGdC.cC@aC`CpaC^aCp`C_C^C@`C@aCaC@x^CRaCbC0]CZC[CUCRCPC5NCLCuKC@KC@ECAC@s>C=C@CCJC#JCHCMC OCKC@GCCC=C@=C=CC}@C@@CGACAC5BCBC CCCC#UCQCEVC@bC}jCvCC`fCC`ρCCC@C"CC7CC~C|CuvC lCiCgC@fChCRsCyCEsCoCcmC@jChC&hChCYfChC&iCgC@dCcC@\bC&aC`CaC@!aC`Cp_C@^C_C}`C5bCu_CTaCcC@J\CkYCGXCSCQCiPC5NCTLC@3KC@KCkGC@C=C=C@>C}GCJCIC LC@NCLCHCEC@?CG=Cf>C@C @C@?C@C@J@CAC0AC@AC&CC@sSC@!RC{\CGfC@nCG{CyC nC`C ΁CفC`ƁC`CTC@ʁCiC@*C~C|C=tC;kChC@\gC#fCiCsCwCtCsC@pCkCgC@8hC0hCfCgChCWgC@dC@cCGbC`C@aC`C`C@3`C_C@]C]C_C@aCp`CiaCdC\CEXCfVC@xRC@OQCWPCuNCkLC@JKCJCHCAC=CC=C=C=C?C?C0@C@?C@C@@C@CBCcRCRUCbChCcsC@C ŁC`fCсC`CCɁCC CCC+C@~C@|CsCjCnhC@afC&fC@jCsCvC@avCwCtCBlC@fCgC@!gC@xdCfCgCfCdCbCbC@aCbC`C{`C@_C@^C5]C@\C@]C`CaCiaCeC]C^WCUC#RCQC=QC@aNCLC@ KCiJCGC@BC.?CC >CpC?CY?C@ ?Cf?C@CE?CACQC[C@8eClCxCԀCLC9CЁCC CCC@CuCՀC@JC@ C|C0sCjC@sgC@OfC@8gCjCqCGtC@vC@yCwCYlCeC@gC@fCcC@!eCfC@aeCcC+bC{aCbCbC@!aCT`C@_Cf^C\C[C[Cn_C@`CBaCfC^C&WCUCRCRC+RCNC0MCKCEJCFCBC?CC@BC@HCJC#KC@OJCJC HC@DCAC?C>C{C?C>C@?CTCaCgCpC}C`FClC#C CCCCCC`CC}CC|CrCiC.gCeCgCjC@ pC@OrC@svCk{CEzCkC@dCgC@eC@cC@3dCeC@\eCbCaC@`CGcC@JdC.bCL`C^_C@!^C#\CZC[CB^C`C`CfC_C@ WCUCSCYTC@RC@OC@MCMCJC@ECiAC@C@=CC>C;C>C?C@>C=C=C>C>C@[C=dC;jCuC@CCyC`FCCC CC݁CࣁC#C`C@ʀC@C@{CurCiCeCdC@gCiCmCpCuC+|CuzC&jC@dCfCdC@dCdC@eCdCbC`Cf`C@cCeCcC{`CR^C]C@\CiZCBZC@\C@J`C`CeC`CLWC=VCUCUCTCPCMCMC{KC@ FCY@CY?CG>C#=C=C@>C@C@FC0KC@IC@3HCHC@FCBC#AC@!?C>CC@!>CB=C=C@=CY`CGfC@\nCyCC`xCWC %CC ΁C CځC CC C@ C ܀CC{C0rCiC@!dCcCfCjC5mCnC)tC{C@JyCciCdC)fC@dCcCdCfC@\eCbC_C5`CdCfC@!eC@a`C@!^C@!]C@ \CcZCYC0\C_C`CcC@_CpWCWC WC WCYTCPCNCMC@KCfHC@C>C>C>CC>CCCJCKCGCGC@JGC^CC@BC?C&>C@O=CC@CY=CB>C@C@?C#GC;LCHCEC@FCDC@AC@C;>CL>C@sC}=CC@CCJCJCcECWEC@8DC@AC@@C.>C>CCC=C@a>CC=CpC=CCp=C@ =C;C:CC5?C@C;C.>C@?CG>C=CoCzC@CC@CqCpC C C`&CCCCPC`C NC#C0}C@wCiC0_Cc`CeChC@jC@mC}lCRjClCoClCfC5fCWnCqC@jCcnCpClCeC@acC;cCnbC`C[C\C]C{]C@^C@8^C@x]C0]C\C^C^C\C\C@xZCVC}SCSCRCQC@OCKCBHCTHC@FC@@Ck=C=C@;C9C:C@a>CDCICFCCCB@C>C>C>C+CCsC.}C`fC`CpC C nC`oC:C .C`XC C=C}CR>C>C@3C?C>C@vC@CCuC@CC@SCCC]CIC@!C`xC@CກCрC@OCT{CuqC@bC `CdCgChC;jCkC@8jCigC@hCnC@OpCkCuoCksCkjCeCLhC@kCnCgCcC`C`C@]Ck\CL]C0^CY]C^C=_Ck]CL]CG]C]Ci^C]C@[CZC5WCSC@RC{RCRCRC@aPCiLCRFC@OGCDC0?C=CC#DCuGCFCBC>C>C>CCnC@C=C@OC?C@!}CTCC C |C`oCCC`ςCࣂCbCYCCǁC`؁CC NC@}C@JwCiCaCdC0gCgCfC@\iCjCiCdCeCmC@\sCtCTwC0pC@eCpeCpfChCkC@gCdC@bCY`C@^C^C^C@^C\C@\]C^C]CR]C#]C@J\C@\]C@s]C&\CEZCWCUC@SCRC@RC@\SCRC@PCJCFCECBC@ ?C=CCBCFC)FCAC=C=C=CCG=CCCCFCCC?C=C&>C^=CCG=C@8:C@7CY9CC=Cp=C@C#C`C`oC`fC`C CࣂC łC łCCCCC`OC`C}CyCqC@skC@!jC@OhC@fCfeCieC@ iC@gCeC@aeCufC@mC@ssCiuCkwC@\pC#jChCBhCYgCiC@3jC@OgCucCaC_C@aC`C@`Cu^C@\^C@]C@]C\C[CL\C\C\C\C[CXCWCXCTC@aQCkPCNCPC@ PCkMCFCcDCCC5ACT?C>C@8C@=C@!=C@\=C&C@;C@9C9C=;C>CEC@CC?C@=C>C=C@J=C=CRC=C@=C@s=Cn=C=CC@=C:CG:C:C+>CDCACW?C@8=C>Ci=CC@=C >C.=CC=C=C@O=C@sCC@3=C@8>Cp=C@OC@C=C@CC0C;CY:C>C@=CC`CCbCCC CCÁCZC`FCGC4C^C C@CC C0C|C;|C}CzC&yCuCoCkCYnC@oC@oCmC@kC@rCzCxCnCfC@xcC}bC@cC cC@aCubC@OcCkbC@aCaC+aC{aCaC_C_C@_C`C#`C^C@3]CL]C@a^C@]C+\C@3[CfYC+ZC@3YC@VCLUC=SCRC@\QCOCOCLC@MC@MC@IC@HCICGC@FCDCBCBCAC=C@\=CL>C@3CCCຂCCC`fC݁C`CځCC@3CC@CCCpC:CCɀC C@~C}CzCxCuC@rC+mC@amCnClClCmCcmCtCyCuC@ iCdC5cCbC@scC@JbCpaCGbC@ cC}bCaC`C`C`C@8`C)_Cc_C`C@OaCGaC@_C]C]C@\^C@\^C@]C@]C[C{YCYC+XCUCTCTC SCQC@OC;NCLCOC^MC@IC@!ICIC@HC5FCpECBCkCC&BC@!>C@=C=C ;C@!8CC@3>CC@=C:C7C)CCCుC@C |C CCC C@sCC@}C}C}CzCpwCtC@qCoCnCfmClCkCkC.jCiCjCkCkClC@tC@tC@JgCbCfbC`CbC@!dCaCc`C`C`CaC@`Cu_C@\_C`C`CT`C#aCaCaC@`C^C@3]C&\C)\C\Cf]C]C@^CZCXC@YC+YCVCWCVCTC@RCPC@xRC@sPCcNCOCLC@JCfICGKC@IC@EC@EC@CCDC{AC?C@J>C@!C;CC CCC`CCqC \CCC@~C}CyCixC@stCpCpoCmC@mCnCnCnClCkC)iC@ fC@JfCngC#hC@8hC hC;lCprC@jCcC0dCcCcCdCdCaCYaC@_CW_CY`C_C@^C^C@x`C@saC@O`CGaCaC@aC_C)^C\C#[CZCZC&\C[C]C]C[CYC@YCuYC@XC=XC.WCVCkSCYSCLSCTQC=PCfOCOC+MCKCKC@ICECECFC#EC@\CC@C@?C}=C@aC^CрC@CCC~CCp~C|C=yCuCtC;pCnC+nCGmCGmCnnCoC^oClCjChCeCeC^gChChC)hC=mCLnCgCdC@dC5dCdCcdC@cC`CR`Cp^C^C@!`C_C@O^C_C`C`C_C`C@`C+aC_C@^C[CZCZCYCp[C@J[CE]C@J^CT\CZCYCYCYCXCuWCVCUC@SCWSCQCPCpOCOCOCKCKCKCGC@JEC@JGCFCECAC@Cn>CuC@3C}CnC@J~C}CB~C@~C@{CyC@tC^sCpClC@mCnClC.mCWnCoCGoC@lC{jCphCeCeCgC=hCgCiCTlC@sjCeCeCEeCdCudC@dC@bC@`C@_C]C@J^C@ `C@_C^C`C`C@`C^C}_Cp`C+`C_C]C@ \CYC@\YC@YCZCp[C\C^C\C[CYC@YC@ZCYCXC@3WC&VC0TC#TCRCQC}PC^OCOCNCKC@8LCJCECnFCHC+FCWCC@BC@J@C@*CCC@}C@|C@{C}C@a{CxCctC@pCTpClCkC@mCnClClC)nC@aoC@nCBmC@jCgC&eC@afChC@!iCgCjCLiCgC@dCfC0eC@dC@dCcCaC_C_C]C]C_C_C^C`CW_C}_C_C^C@J_C^C^C]C[CYCYC@XC@YCE[CY\C^C]C@[C@ZCZC@s[C#ZCXC@WC#WCBUCcTCSC@RCQCPC)PC@PCLC@LCKCGCEC@HC@ HCEC@BCAC C C|CnzCyC.zCR{C@!xC@ tCmCcnCmCjC@kCmCRmCkC&lC@!mCnCRnClCkCRgCeCkfC@ahChC@gCiC)fCeC@!eCeCdC@dCTdCbC@!`Cf^C^C\C]C_C_CR_C_C _C@3_C^C@ ^C+^C}]C@]C@\CB[C@xYCXC}XCYC{[C}[C^C]C\C+[CZCi[CZC@YCWCnWCVCUCTCRCBRCRPC@sOCnPCNCBMC@LC@ICRFCGCpICGC@ DCAC]C~CyC=wCvCyCwC0tCmCRjCmCkC@jC@8lCnCkCkCkCkkClC.nClC@jCfC@ eC@fCgCfC@fCeCWeCeCdC@dCdC@dCbCaC^C^C@^C\C^C_C@s_CB_Ci_C^C^Ci^C]C@]C]CW\C[CZCYC.YC+YCiZC[C[Ck]C@s]C@\C.\CZCY[C[C5ZC=YC@sWC@JWCUCTC@SC@\RC=RC@OCPCOCMCLMCKCHCFC;JCICECBCC@!zC=uCsCtCvC.sCmC#gC;jClCpiCiClClC@jCjCjC@hC@kCkmCmC@\iCneC.eCfCfCeCdCdCdCdCcCdCcC}cC@aCu`C]C#^C@^C@\Cf^C}_Cn_C@_C^C@ _C^CL^C@]C]C;^C[C@[CZCZC ZC@JZCZC[C@[C\C]C\C&\C@O[C=[C[Ck[CYCkWCkWC;VCUC&TC;SCRCWPC@PC@PCNCNC0MCJC@3GC{HCJCTGCCC|CLuCWpCpCsCrC@\nCfC@OdCkCGjC=hC@8jClC{kCiC@iCgCfCkC#lClCfCcdCeC@!fC@ eC@cCdC@scCdC^dCEcCbC^cCcCRaC_C]C@\]C]CB]CY^C@\_C@a_C_C_C^C^C+^C]C^C_CB\C^ZCZC@[CZCZC@\C[C[C@[C]C@\C.\C[CZC[CZCYC0XC WCVCpUCTCSCRCQC@\PCPCOCNCMCLCICGCKCJC@ECwC+oC0lC.nCRqC@nCgC`CcgC5kChCuhCkC^lC@iC iChCeC{fCjClCkCWeCdCeCeC@scCcCbCbCBdCEcCbCbC+cC.bC@`C^CW]CT]CL]C;]C^C^Cn_C_C@O_C@x^C@a^C#^C]C=_C_CL]C[C[C@\[C[C@J[C\C@\C}[CY[C\C\C[C{[CZCZCZC@sZCXCYWC{VCUCTC@OTCSC)SC+QC&QC{PCNC@NCMCJCGCIC^KC@GCqCjC.hC#mC@OmC{hC@saC@!aC@3jCjCgChCGkC+kChCnhCfCcCfCpjC@8lC@8iCdCLeCeCfdCbC@ObC#bCbCcC@xcCEcCRcC5cCaCW`C^C]C]Ck]C\C^C@x^CL_C_Cp^C^C]C^C^C_C`C^C.]C@s\C#\C[C&\CR\C\Cp[C@x[C}[C@[C@[C@\[CZCLZC;ZCZCXC;WC@UC@UCTCYTC&TCSCRC0QCPC@OC)OCNCLC{ICIC@KCWJCjC@dCfCkChC@scC@^CffC@jChCWhCiC{kCiC;hC@gC;eC)dC@gCfjCkC@afCBdCeCkeCcC@sbCbCaCbCkcCcCcCcCbCaC5`C^C]C#^C0^C@8]C;^C^CB_C@_C@O^C@8^CL]C@!^C_C`CaC_C^C@]C\C@\C.\C\C@J\C;[C.[CuZCZC[C&[CZCZCYCYC@xYC.WCUCUC#UC@TCTCSCRCQC@xQCkPCOCNCpNCLKCHCKCELCcC@aCgCTgCdC^CfaCfjCjChChCjC)kCThCfhCfCdC{eChCjC5jCdCWdCBeC@dCbC@ bCbCaCaCcCcC@cC@cC.bCYaC@_C]C]C@J_C^C\C]C]CW_C^C^C;]C ]C^C+`C5aCaCi`C`C@^C]C\C\C\C@]C@[C[CuZC@XCkZC}ZC@ZCnYCpYC@sYCXCXCVCUCTC@SCBTCcSC@!SC@QC@QCPCOC{OCNC;MCiJC@8JCLC@^C`CeC@cC.`C^CngC@jChChC@iC@kCjCgC@gC;fCeCfC)iC@ kC@ahCcCcCkdCEcC@aC^aC.aC@aCaCbCWbC@JcCbCaC`C@]C]C5^C_C]CG]C{]C\C^C]C@O]C\C\C@]C_CnaC+aC@O`C&`C^C@]C\C\Ck\C\C@\\C#\CZCEYCYCYCYC}YCXCEYC@XC@xXCWCUCTCTCSC5SC@3SC@\RCRCLQCPCOCOCNCKCIC}LC@[C@ bC0bC}`C ^CdCkCiChC#iCjC#kCiC@gC@fC@eCfCgC)iC5jC;fCRcCbCbC@aC@_C`C+aC`CaCaC)bCbCnbCaC`C\C#]C@^C_C\C@]C@a]Ck\C]C;]C;\C@a\C@3\C]Cf_CBaC`Cc`C&`C^C@]C#]C@]C\C\CY\C\CZCYC=YCcYCYCYCYCXC@XCGYCXC@VCUC@TC}SCGSCRCYRCQCGRCPC@PC{OCfOCMC@\JC@!KC[C`C^C@^C`CiCkCiC{iC@\jC0kC@!kCihC@gCeCfCBgCgChChCBdCTbCbC0bC@`C^C@J`CE`C`C`C@3`C`CLbCbCaCG_C[Cf]C@^C^C@ \C]C;]C[C]C\C\C[CL\Cu]C_C@`C.`C;`C_C@]C@\C\C]C\C\C@s\C5]C[CpYCYCYC}YCYCXCXC;XC#YCZCEXCGVC@SCSCRC@ORC@aRCuQC@RCPC@PC0OC@\OC@NCKCJC]C^C^C^CgC@lCkCiCjCkCnkC@jCgCeCeCgCgCTgC@hCfCcC&bCkaCYaC_C _C_C_CT`C_C0_C_C@sbCbC@aC^C@[C5]CB_C]C@[C]C@\C}\C)]Cc\C \C[C0\CE]C@8_C_CT_C@_C@_C@\C@!\C[C\Cc\C}\Ck\C\C[CZCYC@YCuYC ZCRYCXC@WC@XCZC5ZC{WCTC;SC@\RCRCRCQCQC@xQCPC&PC@OOCnOCTMC@ KC]C.\C@3^CcCTmC;mC@ kC@kC5kC@\kCjCiC@fCdC;fC^gCYgC@fChC@JdCbCaCaC`C^C=_C_C_C@_C@^C]C@^C@8bCEbCn`CL]C[C]C_C@!]C [C]C\C\C]C\C[CZC[C@s]C@_C@^C@s^C^Cn^C@[CnZC[CT\CT\C\C@\C@!]C[CkZCYCYCYCYCYC@\XC&WCWCYC[C@OYCVCSC@ORC@QCRC@QC@PCQCPCPC@OC@OC&NC=LC@[C\C`CijCoClC0lC@lC@kC@!lC=jCGhC;eCudCfC@OgC@fCgCfCbC@ObCaC@aC`C0^C_C)_C@^C{^Cf]C+]C^CkaC`C@!_C\C[C]C@8_C@\C[C@\C\C]C]C\C[CW[C}[C#]C@\^C]C\C@!]C\CZCYC@ZC[C[CL[C@\C\Cp[C@sYCYCWYCBYCYCYCXCVCVC@XC)[CZCXCTCRC&QC@QCRCPCQC@OPCQCOCOCOC MCZC^_C@!fCpC@ pCmCnC5mCulCukChCgCfdC@dC=fC@fC@fC.hC@dC=bC@!bCEaC@aC^C^CT_CR^C@8^C@]C\C\C^C`C_C]Cf\C[C\C ^C;\C\C@3]C\C]CE]CW\CZCkZCc[C@8\C@]Ck\C[C@[C[C+ZC@XC@3ZCZCZC@ZCG\C ]C\CYC+YCXCXCYCZC0YC{WCUC@VC)ZC^[CZC@VC^SC@aQC@ QCRC QC)PCuPCkPCPCEOC}PCGNC\C@cCmCrC@pC@pC@3pC@8mCflCiC5gCieCcC@xdCfCgC@gCgCcCbCaC@!aC@`C0^C@]C@3^C]C]C.\C[C\CY]C@]C@\C\C\CZCE\C\C\Cc\Ci\C\C@\C;\C [C@ZC@YCZCE[Ci[C@a[C@ZCZC@[C@ZCXCXCYC=YCXC[C\C@\CYCYCXC@sXCXCYC@YCWC@3VCVCuXCR[Cc[C@XC@aUCRCPCQCQCOCPC@ PC@PCOCOC;OC`CGiCLsCsCsC@8sC@oC@xmCikCEhCLfC.dC@bC@cCfC)gC@shC&fC@sbCbC+aC aC_C@a]C\C@a]C\C[C@s[C@ [C\C@\C[CZC\C[CYC@J[C@[C\C;\C[C@![Cc[C@[C;ZC@YCYC@!YC@aYCnZC#[C@ZC^YCZCGZCXCXCXCXC@WCnZC\C\C@aZCXC@sXCXCuXCYCYCXC@!VCkUCWCZC{[CZC@VCSCQCPC+RC5PCPCOC@OPC@\PCTOCRPC}eCpC@svCtCtCsCnCBmC@iCTfCYeCcCbCcCfCgCgC^dC;bC bCc_C_C@^CT\C[C[C[CZCZCc[C[CWZCRYCYC \C;[CEYC=[C@O[C#[C@\[C@ZCZC@sYCZCEYCYCXC)XC@XC@YC[CRZC@xYC@aZC;ZCXCWC@VC@8WCiVCWC@[C@O\CZCiXCXCXCXC)YCYCnYC@WCUCUCXCZC@[CXC@VC)SCQCQC#QCOCOC@OCuPCWOC@OC.lCvCwCwC@vCrC@xnCkCgCeCdCbC@bCcC@fCBhCfCcC;bC`C^C0_C]C[CYC5ZCYC@ZCZC@O[C)[C@XCWC#XCR[CZCYC=[C;[C@[C^ZCYCXC@ YC@aYCYC@XCBXCEWCXCYC[CZCYC@ZC@xZC.YCWC;VCUCUC.VCYC[CZC@XCXC@8YCXCXCiYC+ZCXCVC0VCWCYCZC@YC;WCTCWRC@JQCQCOCPC)OCcPC@sOCOCBsC@syC.yC@JxCvCBqCmCiCeC@dC&dCpbCbCGeCgCLhC@OfCBcCaC@O^C@\C}^C]CZCXCXCiYC@JZC@3ZC[C@OYC+WCUC@\WC@sZCYC@ZC@ZC0[CZCYCYC&XCBXCXCTXC&XC{WC#WCuXC}[C\CZCkZCBZCYZC@!YCkWCUCTC{TCUC@WC@ZC@\ZC@3XCYXC.YC0YC@3YCYC5ZC@YC@XC@VC@WC=YC0ZCZCkXCVCSCQCRCPCEPC.OCOCBPCcOCGxC@zC@zCxCuCoCBlCfC@eC.dCcCbCbC gChCgCeC@xbC`C@J\C]C@]C[C@aXC@WC#XC@sYCYCZCZCuWCRUCTC;WCYCYCZCZC@O[C@ZC@YCRYC0XC@WC@OXCWC@WC@VCkWC;ZCE\C ]CZC@ZC@!ZCYCnXCWCTCSC0TCGTC@UCXCYCRXC@OXC@XC@OYCfYCYCTZCZC@YCWCWCXC}YCZC@YC@\XC@UCnSC@8RCQCfPCOCOCcPCnOC{C{CzCwCrC@!oCYjCBeCdCTdCcC5cC@dCEhCBhCfC@dCaC^C5[CW\C\C@ZCVCVC@XCpYC=ZC@a[CYC;UC}TC@SC@VCXCYCZCZC@[C@ZC@YC@8YCnXCWCWC@WCWCWC&XC[C]C@\C@ZC@3ZC@YC@OYCWCVC&UCSC@\SCTC@TCGWC@XC@OXC XC@8XC5YCYCYCYC[CZC@aYC@!XC@XC&YCBZCWZCXCpWC@UCRCQC@PCPCNC5PC@OC|C{CYyCvC@pC@OmC@8gCEdCdCdCWdCcCifCkiCgCeCcC@`C@\CZC[C@[CXCfVCVC@YCZCL[C[C@VCSCSC@TC@!WCWXCYCRZC@ZC[CZC@YC@8YCXC@WC5XCWCWCWCXC\CL^C\CYC@YC@XCXCWC@VC@UCTC@\SCSC@SC#UCVCRWC@!XC@8XCXCYC ZCZC}ZCE[C@ZC@XCYCcYCYCZCZCnXCVC@sTCRCPCPCOC)OC&PC|CWzC@JwC@sCoCjC@dCcCcC@!dC@dCdCnhChCfCdCbC@J_C[C+[C#[CZCWCVCXCZC@[C\C@YCkTCRCSC@UC+WC@XCpYC@YCZC[C[CYCYCXCWCWC}WC@!XC@sXCZC5]CY^C[CYCYCXCWCRVCVCiVCUC@SC)SCnSC^SCiUC@VCnWCWCXCYCZC@YC@sZC@x[C@O[CRYCXC@XCXC@aZC5ZC@XCWCfUCSC.QCQC@8PCNCPC |CxC@uC@arCnCgC@cC@cC@!dCdCeC0fC{iC@gC@eCcCaC@]C\CZC@8ZCXCVCVC@YC@[CR]C{\CuWCSCESCUC@ VCVC@WCXCYCZC[CR[C@YCiYCXC@XC)XC XC@XCYC[C]C]Ck[CYCYCWXC@VCUCUCUCUC^TCSCSCRC.SC@UCVCWCBWCXCZCZCZCL[C@a[C@ ZC@!YC+YC@!YCuYC[CYCXCVC@TCQC0QCPC@OC.OCTzCvC}tC@qC@alC^eCdC@cC@dCBfCfC+hCRiC@OgCdCcCY`C]C@]CkZCXCWCVCVCZC.]C]CZCTCSCUC)VC@!VCVC@aWC@XCYC[C\C[CLZCYCXCWC@XC@XCZC[C]C@]C\CZCYC)YCXC@VC&VCVC+UCTC^TC#TC)TC5RCQCSC@UCVCYWC.XCYCEZCpZC^\C@x[C@aZC@!YCXCXC YCZCZCXC@WC@UCESCPCPC@PCNC.xC@tC tC@OpC@8iCdCcCYdCeCugC@fC@ iCLhCeCcCbC^CB^C@3]CfYCfWC@VCRUC@VC[C@O]C\CBXCSCuUC@VC@VCUCUCEWCXCYC{ZC\C@\C[CYCXC@WCLXCYCL[C0\C}]C]C[C+ZCYC@YCcXC@WC@ VCTCSCnSCTC@\TC TCRC@OCRCTCVCWCTWC&YCYCZC\CW\CZCnYCXCXC@3XCYCZC#YC@\XCVCTC@QC^PCQC)OCvC@tCsCmCfC;dCcC#eC@JfChCgCiCgCdC@dC@aC@^C _C\C@!XCVCUCTCVC@[C]CZC+VCBUC XCWCUCTC0VCVC@XC@ ZCZC[C\C5\CZC@XCWCXC^ZC[C[C^]C#]C}ZC@YCXCYCXC@3XCVC^TC@RC{RC{SCRTCTC@!SCOCPCSC@xUCWC5WC@!XC YC^ZC@[C@ ]CL[C;YCXCWCWCXC@aZCYC=XC@WC@UCRCPCPCGPC@stCuC@srCujCeC^dC@ dC@eCgC@xhC@hC+hCfCcCcC@ `C5^C5^CZCWCBWC}UCpTCVC[C[C@OXC;VC5WCZCWCiUC@TCUC@VCXCYCYC[C\CE\C@ZC@XC#XC}XCZCZC}ZC[C[CYC@YCYCXCXC.XC@xVCSC@ RC@8RCRC@SCRTCSC@OCPCRCTCpVCVC@WC@JXC@YC5[CE]C[C@YCXC;XCVC@JXCGYCYCXC@!XC@VC&TC@PC}PC@PCWtC@uCoC@hCeC@dCdCfC@xhC@hC@hCgCTfCdCbC^C0^C]C@YCWCWCfUCkTCVC[C@ZC@WCXCYC@ZCWCiTC@TCWUC@VCWCWYC+YCYC\C\C@ [C+YC@ XCWCYCYCXC@ZCLZC#YCnYC}YCXCXCWC@UCSCRC@QCRCRCcTCSCPCOCRCTCpUCVCVC@WCEYCZC\C\CnZCXC XCVCWC@XCYCXCGXC^WC=UC.RC@8PCPCtCsCkCgC@dCcCeC)gC@hC@gC#hC@gCEeCcC@aC]C@]C[CXC}YCXCUCTCVCYCYCYC=ZC#[CYC#VC+TCcTCUCuVCWCpXCpXCYC@[C.\C[CXC@xWCWC@aWC^WCWCXCXC&XC@XCXC=XCkWC@VC=TCGRC@3RC@ RCRCRC)SCRCEQC@OC@ORC^TC@3UC@VCUC@VC@sXC ZCE\C]C[CXCWCVC@VCXC{YC@3YCXCWCnVC@SCPCPCuCpC@iCYgCfdC@dC.fCgChCgCgCEgCdC@scCf_Ck]C\C[CYC[CXC)VCTCnVC;YCZC[C[CZCXCWUCSCTCUC=VC@VCWCWC^XCYC@ZC=ZC XC)WCVCVCfVCUC@VC@VC@VCWC@aWCUC VCRUC^RC#RC@RC@RC@SCQCpRCRC@QC@PCQC@OTCTC@8VCUC}VC@8XCYC@[C]C\CTZCWCVCfVC#XCYCcYC@xXC@XC@!WCUCQC@PCsCRmChCfCfdC@eCfChCgCigCgCfC@dC@aC]C]C\C[CZCi[CYCUC^TCUC@aZC\Cn\C[CYC@WCTC@SCTCVCVCUCVC@WC5XC@XC}YCYC#WC@WCYWCVCkUCUC@UC=UCLUCYUC@UCTCSCTCQCQCRC@RCSCWRCRC@RC@JRCnRCRCRSCSC@UC@OVCVCWCYXC@YC\C]CR[CXCVCVCcWCXC@xYCXC{WCLWCVCSCPCpCfjChCeCdCGfCfChC0gChCBgCeCbC`C]C.]C\C[Cn[CZCWXCUCSCVC@[C\Cn\C[C@YC@VCTCGTCfUCWWC&WCUC@VCWCWC^XCXCXC)VCVCWCWVCWUCUC&UCTCSC@SCRCQCERCRC@QCRCSC@ TCuTC}SC@\RC^SCSCSC@SCiSCSC@UC@!WCVCWCWCWC@ [C}^C\C@YCTWC}VCVCXC#YC@OYC=XC@WC.WCfUC@QClC^jC^hCeCeCfC@fC@gCfC@gC@fCdCaC{^C@]C@\C@\C\C@ZCYCVC;TCSCYC@x]CR\C#\CZC&YCVC@UC@8UCVC@sXCWCVC@UCVCWCWCWCWC@UCXC@!XCWC UCVCkVC@UC@SCpRCQCOCPCQCQCSC&TCTCTCSCRC@OTCTCTC.TC@SC@SCUCWC@WC@sWCfWCfWCEYC@!]CT^CT[CXCGVCUC@WCXCYCpXCWC@OWCfVC@\SCkC@iCgC&fCfCfC@gCffC@fC@gCfC@xaC@`Cc^C@]C\C@\C@a[CYC}XCBUCSCTC)[C@x]C\C[C@ZC;YC@\VC@UCVC@XCYYCXC@VCVCVCVCVCiVC.VC@UC@WC^XCpWCLUCWCWCTWCTCRCPC@OCEOC@3OCPCWSCTC)TCTCTC@OSC@aUCUCUCTC@SCpTCpUCWCWCWCVCVCWC[Ci^C\CTZCGVCUCVCWCYCYCWCVCVCTC.kCiCgCgCgCfCgC@aeC@fCgC@!eCaC`C^C0]C\Ci\CYZC@ YC@aWCuUCTCWVC\C]C@\C@[CYZC@XC&VCVCcXCnYCXC@!XCWCVCVCUCUCLUC@UCUCVCBWC}WCUC@VCYXC@XC@VC@sTCPCNCRNCiNCPC5SCTC@TCGUC@aUCTCVC@VC@UC@8TCSCfTC&UC@VCfWCWC@VC@VC+WC@xYC@^C]C@\C@WCiUC@VC@VCXCZC;XCBWC@VC@VC@jC@hCgCgCgCLgCfCdC@OgC@gCaC`C_C@^C\C@\CL[CXCkXCUCUCTCWC@]C@J^C@]C&[C@ZCXCWCWCYCLYCXCWCWCVC@UC^UC@ UCYTCUCVC&UCUC@WCGVCVCWCXCWCuVCSCPCNC5NC@OCSC@OTC@UCUCVCVC@VCVCTCTCSCETCUCUC@sVCWCVC;WCcVC@WCY\C_C@8]CYCUCfUCpUCWCZC@XCWCVC@ WC@OjCfhCLhC@xhCgC&gCeCBeC;gC@fC@O`C;aC_C]C)\C[CYCXCnWCVCVCUCWYC@]C@]Cc]CZC{ZCiXCWCiYCZCXC@\XCWCWCVCTCTC@TCYTCnUCGVCSCTCVCWCVCWC{XC@!YCWC@!UCQCPCNCOCSCTCcUC@VCVCWCWCVCpTC@SC@SCpTCYUC@\UCUC@UCTVCWC@VC@VC@!ZC5_C@^C@\CVCUCUC.VC@3YC@YCXC.WCVCiC@iChC@3iCfgC@fCcC&fC@JhCcC#`C`C_C]C\C[CXCkXC.WCXC@WC@VCYC@]C@]Cf\C@ZCYCXCXCYCfZC#YC@3XCWCVC@ VC@TC@UCTC+UCVC@3VCSCSC@UCVC@WC}WCfXC@sYCXCWC@SCQCOC@OC.RCTC@xUC&VCVCWCXCVCSCuRC@SC@\TC0UC@JTCTC#UCUCVC5WC@VCRXC@]C@\_C]CXCTCpUCUCWC@YCXCWC=VCEjCiCiCWiCugC@eCcC@ gCYhCYaC@`C`C^C\C)[CZCXC@XC&YCYC@8WC@3VCYC@\C ]CZCXCWCWCYCZCYC@YCEXCVCWC@8UC@!UC@JUCTCUCTVC@JUC@RCpSC@UCGVCWC=WCWC@\YCYCXCVCTCQCPCGQCSCcUCcVC=VCVCTXCnVC^SC@QCSCETCTCSCRCTCUC)VC@!WC@VCWC[CE_C_C@[C@VCpUCUC.VC@YC^YC@XC&WCjC@8jC0kCRhCgC@cCYdChCBfC;`C`C_C0^C.\C[CYCXCXCc[C@ZC=WCUC@YCYZC[C@XCVCUCWC}YCYCYC@aZC@xWC@\WCWC@UCcUCfTC;TC+VC@UCRCQC^SCTC@ VCnWC+WCWCfXC@3XCWCVCTCRCRCQCSCTCUCVC@UC0XC@ VCRC@QC@SCYUC@!TC{SCSCRC@JTCUCVC#WCWCYC@O^C@ `C@O^C;XC^UCUCUCGXC@YCYCWCkCjCjC@!hCfCbCeC@\iCcC@s`C@_C_C]C)\CZCYCXCZC@[CXCiUC^UCWCEXC@XCUCTC TCYVCXC@XCYCYCVCWCWC@VCUC@SCTCfVCETC0PCQCYSCLUC@UC)WCVC.UCVC@VC.VCUC@TC SC}RCkRCSC;TC{UCUCYUCVCUCLRC5QCSCUCTCTCRCQCSC@UCLVCWCRWCXC@\C_C_C@[CVCUCUCVCpYC@YCXCkkCkC&jCgCdCbCgChCbC`C@]C{^C]Cf[CYCXCuYC\CZCVC=TC0UCVC@VC@UC{TC@OSC@JSCBUCVCpUC#YC@ XCUC@WCVCVCnUC@ SCWUCUC@aQC@MCQCRCUCUCUCUCpSCTCuTCTCTCRCRC@QC@RCuSC@TC@UC@xUCTCBVCTC@RCQC@SC@UCiUCTC5SC=RCSCTC@3VCVCXCXCZC_C+`C=]CRXCUCUCUC@!XCBYCYClClCYiC@8gC@cCWdCYiC{fC@aC@_C]C]C@\\CnZC.YCXC@![C@ [CWCUC+TC@ UCUC@UCUCkTCSCSCTC@aSCSCWC+VC;UCVC+WCWC@UC;SCUCSCNCMC@\QCESCLUCLTC@sTCUCQC@ RC)SC@OSCRCQCRQCQCRCLTC@8UCUCRUCTC@JUC5TC@QC@QCSCkUC@VC@ TCSCkRC@RCTCVC@VCWCYXCYC@J]Cp`C_CYCTVCVCUCVCGYCXCplCYkChCffC@JcCeCiCeC@`C\C]C\C[CYC0YCYC@8[CXCpVCUCTC@aUCuVC@VC&VCUCTCTC@SCQCQCuUC@TCTCUCVCXC@\VCSCLTCQC@MCMC@QC@SCTCRCcSCGTCPC&QC@QCRCRC@RCRC@RCRC@TCUC#VCUC@JTC{TC@SC@QCuRCSCTCVC@3UC@TC+SCRCSCUC^WCWCYCWYC[C@_C`C\CWWCVCVCUCWCXC@mC@3jChCeCdChC0iCdC^C.\C@]C[C@ZC@XCYYCYCYC@UCVC+VCUCVCXC@XCWC@VCUCTC@aSCQCQCSCSCSC@!TCVC@XCVC;SC@RCOCNCGOCRCnSC#TCQC#RCGSCOC@PCWRC@RC@\SC@SCSC@SCSCTCVC@UC}UC@3TC@SC@3TCRC@RC)UCBTCVCUC@ UCSCRCSC@8VCWC#XCXCYC;[C5^C_C^CYCUCcVCVC@xVC@XC@slCiC@JhCdCYeCjC5hC@cC@\C\CE]Cc[CXC@XCYC.ZCWCUCWXCWC&WCXC@ZC@YCGYC&WCVC#UCSCQCQCRC@OSCSCSCVCXCUCSCQCOC0OC@PCSCSCSCQC}RC@RCYPCPCRCRSC@SC^TCTC@!UCTCUCVCVC@VC@aTCTCSCRC@ SC.UCTCUC0VC@OUCUCuSCSC;VCGXCXCXCYCkZCR\C_C+`C\CpWCUCVCUCXCikCiCgCdCEgC@kCkgC+aC\C^Cc\CnZC@WCXC&YCYC=VCVCYCXC=YCZC0[CYCXCVCWCUC.TC@3RCLRCRCRCRCSCRVCWCkUC@RCOCuOC@PC@xQC@sTC{SCSC@RCSCRCOCGQC{RCSCRTC}TC@UCUCUC}VCVCVC@3VCTCSCTCRCRC UCTC@UC@VCkUCnUCSCSC@3UCiWC@\XCXC@xYCZC[C^C@s`C^CiYC@3VCWCGVCVC}jCiCgC@eC@OjCkCWfC0_C]C^C[CnYCuWC}XC@xYCXC@VCXCZCZCZC[C[CYCWCnVCVCVCTC@RC^RC@RCSCQCSC@VC#WCUC@3RC@OCEPC0QC@ RCTCuTCSCSCTC&TC^PCPCRCTC#TC;TCUC@VCVC@VCVCRWCWCUCSC)TCfSC{RCUC5UC@8UCLVC&VCVCTC@TC@sTCVCWCcXC@ YC@\YCpZC#]C`C@!`CT\C@WC@UCVCpVCkC&jCgCgCulCjC@dC@a^C@\_C@\^C[CWC@WCXC ZCXCUCYC@[C}[CL[CT\C@ZCYCBWC5UCUCVCTC@QC@aRC@RCQCQC@3SCUC&WCTC@QC@PC0QCPCQC@TC@TC@TCTCcVC)TC@ QC@sPC;RCBTCTCTC@UC@WCWCVCVCWCXC@UCSCkTCTCRC@TC@TCTC#VCUCTVC@UCSCTCUC@3WCWC@XC5YCZC[C@^C@`CG^CTYC&VCVC0VC;kC#jC;gC@JjCYmCjC@3cC_C`C^CZCXCWC@ ZC@YCcWCVCiZC[C@[CB\C[C.ZC@XC=VC^SCTC@aVCSC@sPC@3QCRCRCQCRCTC@VCWSC@QCQCQCPCpQCSCRC.SCTC@VC@JTCQCPC@3RC@UCUC@\UC@\VCXCWC@aVC@xVC&WCWCVCiTCSC@SC@SC@3TC@TC@TCVCVC@VCnVC0UC.TCUCpVCWCWC@XCYCZCn]C_C_C\CWCVCVCkCiCgClC+mC@3iCbC@aC@aC]C[CXCXC@ZC.ZC WCWC{ZC@\C[C[CZCYC^XCUC@QCSC@OTCRCOC@QCQCQCLQCRC@TCVC}SCRCRCLRCiQCYQCQC@8QC@\QCiSCUC@SCPCOC@QC@JUCVCUC.VCYCXC@\WCGWCWCWCVC#UCSC@3TCTCTCUCUC0VC@VC@VCVCUCTC&UCVC WCWCEXC+YC@YC[C@_C`C@^CXCiVC@8WCklCiCiC@ nC;mChCTcC.cC0bC^CZC@YC#YCZCnYC@JVCWC@\CY\C[C=[C@aZC}YCXCSCOCPCWQCOC@OC@\PC.QCPC@QCRRC@\UCVC@SC=RC SCSC@8RCkQCPC@PCGPC@QC@\TC@RC@PCOCRC@UC@WCcWCUCYCXCWC+XCEXC@WC+VCVC@JTC.TCTCRUCTUCUC+VC.WCWC@WC@VCUC@UCVCVCWC@XCXCYC[C]C_C^_C[CWC}VClCWiClCoC@!mCYgCLdCdCkbC5^CZCXC@YC+ZCBXC@UC YC}]C\CZCZCYCYCWCPCNC@8NCNC@MCpNCOCPC@PCEQC SCVCBVCTCQC5SCiTCSC&RC@PC@OOCOCOC@!RCQCOC@OCRCUC@ WC@WC;VCYCcYC&XCXCXCVCUC.VCBUC@TCTC@UCVCVCfVC}WCWCXCWCVCVC@VCWCkWCWC@XCYCZC)\C _C@_Cu]CXCLVCclCcjCnCoC@lChCeCEfCbC]CYCGXCXC@YC}WCVC[C@]Ci[CYC@YCYC@XCTCNC@3NC@LCLC.LCiMCNC@OCEQC{QCSCVCVCTCQC+SCuTC@SCpRCPC@OCNCNC@PCPC@!OCQCSCUCWCXC@JVC.YCYC@ XC@XC@aYCWCUC;VC@VC@JUCUCVC.WCEWC@VC@WC5XCXCiXCWC@WCEWC&WC@WCWC@JXCXCuYC@a[C]C_C@^C&[CWC@kClCpCYpClCGhCgC@!gC@\bC\CZCXC@8YC0YC@VCWC\C]C@ZC5YCZCXC@VCQCMC+MCkLC}KCKCLC@!NCOCPCRC5TCWCXC@SCQCcRCSC@RCQC@OCNCNC@OCOCOCNCQCSCUCVC@ XCVC{XC@YCWC+XCXC@JWC.UCVCWC;VCcVC#VCuWCuXCfWCWCXC@JXC@XCXCBXCWCXCXC+XC}XCXC@YCZC ]C@^C_C@J]CXC@kC)oCqC@xpCplC@!iCiCfC@OaC[CXCWCYC@XCVCXC]C@\CYCYC^YCpWCTCNCBMC@sLC@KC.KC+KCLCMCOCiQCSC@TCkXCXCTSCQC)RC RCQC0QC;OCNC@OCOC@OCOC@OCRCTCVCUC@OXCVCXCXCWCWCXCWCYVCVCTXC}WCVCVC)WC&XCXCnXCXC@XC@XCYCYCXC@sXCXCXCYXC YCXCYC[C]C@a_C@\^CZC@xmC&qC@rC=pClCjCjCfC_C[C^XC@8XCYCpXCEWCZC]C[C^YC@XCWC@UCPCMC}MCLCWKCJC@KCKC^NCOCuQCfSCUC^YC;XC@aSC@QCLRCPC@PCPC@NCNCBPCTPCfPC;PCOCSCTCVC#VC@XC@VCXC;XCVCTWCTXCWC@8WCVCuXC0XCpWCWCVC@ XC@XCcXCXCXCXCRYC&YC@YCXC@YC@8YC{XCXCXC;YCZC\CB_C^C\C@oC sC@sC=pClC^lCjC5eC@8^CTZCXC^YC0ZCnXCWC[C{]C[C@XCXCVC#RCLMCLCMCLCKCJCLCLCOCTPCRCLTCiVC@YC@WC@SC@RCRCuOCOC=PC^NCNCPC RCSC0RCPCSC0UCVC@UC@WC@VC@!XCWCVCWCXCXC@\XC@XC5XCXCWCYCpWC@JWC@3XCXCYCYCYC@YC@YCXC@YC@xYCuYC@XCnXCXC@XCTYC[Cc^C@s_CB^C@rC@!uCusCpCmCcmCEiC@cC]C@JZCcYC@ZCYCcXCXC&\C^\CiYCXCWWCSCNC5KCLCMC@aLC@KCKCRMC@MC PCGQCRCTCVCRYCnXCLUCSCRCOCuNC@ PCOCkOC@sQCSC@UCEUCRC@SCfUCYWCUCTWC+WCWCWC VC0XCXC@XCXCXCXC@xXC@WC@YC@XCiWC}XCXCYCZCYCYC.YC}XCYCYCWYCBYCWCEXCXC^XC;ZC@\C_C^C@sCuCpsCpCoCmC)hCbC\CiZC[CZCZCTXCcYCn\C[CYC@ XCUCkQCKCJCLLCLMCLCMCMCNC@OC@QC@QCRCTC{VCEYCGYCVCiUCBSC@3OCNC;PCPCPCSC{VCnXCWCTCTC.UCuWC@\VCUC@3WCVC XCRVCXCXCWCYCYCXCXCWCRYCYCWCXCXCYCZCYCYC@YC0XC@OXC@JYC@JYCYCXCWC@WCWCRYC;\C@ ^C^CuCuCsCpCoC@kCfCn`C@\C@[C[CZCYC=YC@!ZC\C@[C@YC@aWCSCNC@JC@xKC@JMC@MC@ NCNCOCQCPC@PCuQCRCUC@VCYYCpYCuWC#VC.SCnPC@OC5QCLRC@RCTC@XCYC=YC@UCVCWUCVCVC@TC@JVCTC{VCUCuXCiWCWCYCpYC@WCXCWCXCZCXCXC@XCXCZCZC@YC@YCXC{WC@aXC@XCuXCWC@!WCuWCuWC XCZCW]C#_CvC@uCsCqCcoCjCeC)`C0]CB]C@[CRZCYCYCZC[CfZC.XCVC}RC@\MCKCkMCWNC@OCOC5QCRC=SCQC@PCQCRCTC@VCYCWCWC@3VC@TCQCiQCRC+TCUC@aVCYC@!ZCZCWCRWC@UC@sVCnUC#SC@SCRC)TC@TC@JWCUCVC@YCYCTXCXCWC@WC@ZC@YCXCYCYC@sZC@[CZCkZC{YC@WC^WCYC0XC@OXC0WCVC@\WCWCYC[C}^CvCuC@sC@rC@nCYiCidC@x`C^C]C[C@YC@YCYCZC@O[C#ZCWCVC@QCMCcMC5OCOCQC0RCSCTC@SCQCPC=RC^SCTCVCXC@UCVCUCTCSCYTC TC@UC@VCVCXCGZC@YC5YC@JXC@ VCTC.TC@QCRCnPCPCRC5UCRTCRUCYCRYCXCXC@3XCUCYCpZC@YC@YCXCZCZCZC@[C^ZCXCVCXCTXCuXC+WCVC+WCiWCXCZCL]C@vCuC@tCqCmChC)dC@!aC_C]C@ZC&YC@ZC@YCZCZCXCkWC@sUC)QCNC@OCPC@JQCRCTC@UCVC@SCQCQC@RC5SC}TCVCWC@TCpVC@sUC@!TC}UCUCTC@UC@VCUCVCXC@sYCuYCuXC5VC@aTCSCfQC@ORCNC@NCQCRC@QC0SC@XCYC#YC@3YC@ XC@VC@aXC@\ZCuYCcZCYC@sYCZCZCZC^ZCYCWC.WCXCLXCWCVCVCkWC)XC@YC@[C=wCuC{tCGqCkC@hCndCbC@OaC]C@ZC&ZC@[C@YC.[CBZCXCpWC@TCkQCPC@PCRCESCTC}VCWC@VC=SC0PCRCBRCSCWTC@UC@3VC@TCUC@!UC@SCUCnVC@TCTTCTCSCSCUCWCXCXC#VC@xTCLSCPCQC@OCMCOCQC;PCPCVC@\WC=YC@YC@aXCWCWC ZC#ZC)ZCZC@YC@sZCZCi[C@![CZCXC@WCXC#XC@XCYWCnVCBWCWC@3YCZCiwCuCRtCoCLkCgCeCcCaC]CYCZCZC@ZC@ZC@ YCXC@WCTTC.RCQCLQCSCTCVCWC@aXCTCpRC@PCSC@3RCRC@SCTC@OUCSCTCSCRCUC@aUCSC@RCSCQC@PC+SCTCWCWCUCSCRCPCpQC@!QCNCPCPCYOC@!NCfTCiUCXC{YC{XCXCVCRYCYCYC[C@aZCcZCZCZC@[C@ZC@ZCXC@JXCXCuXC@WCVCVCWC@XC{ZCpwCEvCsCnCjChC@fCeCaC@]CZC[C0[C{[CZCXCYCWCTCpSCERC;RC@ UC@!UCWCnXCnWC@JSC@RCRCuSCQCRCRCGTCTC@ TC^TC SC@aRC@UCTCuSCRCRCPCOCPC@RCTCVCLTCSCuQC;PCPCcRCPCfRC)RC@sPC+MC@QCRCVC.YC@YCEXC@VCXCYC@YC@ [CR[C+ZCZC#ZC[C [CZC@OYC&XC@XCXCWCWC@WC@WC5XC@YCwCuCrC@nC@jChChCpfCaC\C[CR\CZC[CYC@YCEZCWCUC+TCRCSC0UC@3UC.WCTXCVC@RCkTCTCRC{QCERCRCpSCSC@3SC@SCuRC0SCLUCSCSCQCRCkPCYNCOC@PCRC@xUCGTCSC@!PCNCROCuRC@8RC5SC5SCQCMCROC)PCpSCnXCXCXCBXCWCYCEZCpZC^\CZCuZCYCZC^[C@ZC@sZC5YCYC@XCXC@WC@XCWC@JXC&YCvCvC@qC@amCjCjC@iC@afCaC]C\C.\CY[CR[CZC@[C@3ZC#XCVCUCRC@3TCUCTCpWCXC@8TCSCUCTCQCQCuQCRSC@JSCSCTC@SCRCTCTCSC@SCPCPCOC@MCOC#PC@8QC.SC5TC@\TCfOCYMCMC@QC{RCRC5TCRCcOCMCNCPC#VCWCXCXC@3XC@3YC@3ZC@YCc\C[C [C@YCZC@a[C@ZC@ZC ZCXC&YCXCWCXC{XCXCXCvC@atCqC@lCjCjC)jC#fC`C@^C=]C0\C[CT[C[C@x[CYC@YCWCYUCESC@ UC@TCTCWC^WCSCUCBVC@SCQCPCcQCSC@xSCTCuTCSCSCYUCYSCLRCQC@NCNC{MCLC@3NCRPCTPCQCSC5TCNC@aLC#LCOCBQCBQCRCSCPCGNC@MC^NC@SC@UC@WC^XC@!XC5YC@YC;ZC=\C#]C[C=ZC@!YCZC@[C{ZCYCGYCXCXCXCBXCRXC@OXCXC@vC;tCoClCkCkCiCeC@aC@x_C]C\C[CW[C{\C=[C;ZCYCWC@\UCSC@8UC}TCfUC@WCVC&UCVCYVCRCQCGPC&RCSC#TC@TC@!UC@OTCLTCcSC@QCPCPCMC@LCKCKCNCOCOCOC+SCSC@\NCKCJCMCOC@ PC@PCRCQC@sNCMC@MCPC^RCUC@WCWCXCYCfZC[CR]C[CZC;XCYC[CZCZC5ZCXCYCXCXCWCXC@JXCvC@rCnC@kC@kC5kC@OiCeCbC_C@]C{\CR\C\C\C0[CnZCZC@WCTCLTCUCUCVCRXCVC)WCVCVC.SC@aQC@PCRC@sTCUCUCUCTCSCQC0PC@OCNC@LCJCIC#JCMCNCNCNC;QC@JQC@NCKC@aJCKCENCnNCNCTQCkQC#OCBNC@OOC@3PCPCRC.WCWCXC@XCYCu[C]C\C[CYC@XC[CE[CZC)ZCYCXC@YCXCGXCEXCXCuC@8rCmCkC@8lC@jChC@aeC@cC`C ^C\C\C@\C[C@ [CZCXCVCTC@xUC}WC+WCXCXC@WCXC@XCWC0TC@RC)QCSC@TCVC=VCUCpTCfQCNCNCNC@NCiLC@HC@ HCnICuLCNCGMCMCOC.OCLC@3LCJCKC@MC5NC;MC@aOC@!PCOC@sNCiPC@JQC5PC@OC@UC@aWC@XCcXCfXC;[C@\CY]C@\\CYC)XC@!ZC[C@ [C.ZCYCfXCYCWYCXC@XCXCitCqCumCflCkCWjCgCcfCdC`C^C]C^C\C[CZCYC@XCUC0UC@xWCYCYCBYCEYC^XCXCWCXCUCfSCkRC5SC VC@XCkWCuUCSC^OC@xMCNC@MC@xNCKCHCHC@sICLC@JMC{LCLCRNCfMCKCLCiKCLCLCMCLCNCBNCNC@!OCQCuRC@8QCOC0TCWC@XCYC@\WCYC=\C@a]C@\C@ZC@XCYC;[C@[CZC@ZCYCYC@3YCXCXCYCWsCoClCikCkChCgC@fCcCkaC@ _C{^C]C\C[CZC;XCWCUC;WCYC[CZC@ZCYCXCiXCWC5YCTVCSC@!SCSCWC@YCWCpUCQCNCuLCMCMC^MC+KCHCJCJC@JLC@KC@KCLC#MC@8LC@KC.MC@LC@LC@LC@LCLC=MC+MCBNCOC@QCSCnRCNCSC@3XCpYCYCVC@XC[Cp]C]C\CXCYC5[C@[C[CZCZCkYCYCYCXCXC)rCnnClCLkCiC+hC)hC@fC@xdCbCp_Cu_C{]C@J\C5[C@YCWCWCVCXC5\C\C[C@8ZCYCYCWCLXC@XC&VCSCSCTCXCZC@xWCpTCPCMC@!LCLCLC@KCICGJC@LC@KC@3LCKC@KC@KCRLC;KC^KCMCMCNC@ NC5MC@MC{MCLCpMCNCLQCWSC)SC@PCQCXCBZCZCiWC@VC[Cp\C]C;\C@YCfXC@YC[C[C@ZC{ZCYCYCXCXCXCqCmC.lC@ajChC@hC@hCgCeC@bC}`C_C@ ]C\C[C@XC@XC0XC@WCZC\C@\C\C0ZCuYC5YCXCYC.XC@TCSCUCUC@YC&[C@3WCSC@!PCkMCKCiKCTLCJC.HCLCOCLCLCLCKCLC@KC5JCWKC@MC#NCNCNCnMCBNC0NC@LCLCiNC@sPCRC@SCQCRCTXC@8[C@[CXCVC@ [C\CR]Cu\CB[C@JXCYC[C \C0[C@3ZCYCcYC@xYCcYCXCfoClCjCiC#hChChC@gC;fCYbC@saC@_C@]C\CZCXCYC=YCXC@\C\C@\C@[CZC.ZC@YCYCYCVCSC#UCpWCnVCkZCZC@VC.RCOCMCJC@LCKCHCGCNCQCMCLC;LCLC@!MCuKC@ICKCMC@!NC@NCLPCNCNC@OC@JMC{MCMCPC;RC@sSC@SC@SCXC[C@s\CZCVC@YC@\C ]C\C[C.YCBYCZC\C+\CZCZC@aYC@YC@xYC@YCmClC&jCphChChChC@hC@eCRcCaC@^C+]C@\CZC}YC@ZC YC@xYCT\C@\C]C@[C@ZCZCZCZC^ZCUC@TCVCWC@8WC@ZC@ ZCTC+QCPC@LCRKCLC@8KC@ HC}GC)NCPC@ NC@3MC@LC@sMCMCJCWJCLCMC0NC@sNC0PC@NCNC@!PCiNC@sMC@NCPC@RCSC&UCUCWC\C\CY\CWCYC]C\C\C5\C{ZC&YC@8ZCB\C@]C=[CpZCYCZC@YC+YC{mCfkC)iCYhChChC)iChCeC5dCbC@a_C@^C]CL[C@3[C[C@YCZC\Cu\C\C[C@ [C@ZCcZC@ZC@YCUCTC{WCWCWC@ [C5XCSCPC}PC@LC@JLCLCJC@\GC@FC@LCOCNCMCWMCMCMCJC@JCLCMCMCMCOC.OCPCQC@aOCMCNC@PCTCSC@!UC^VCpXC[C]C\CkYCXC\CW]C@x]C@\\C[C@8YCYC\C]C@\CZC.ZCZC@YCYClC@xjC@hChChC;iC@xiCgCfCdCaC_C@^C]C\C\C=[C@ZC[C\C]C\C[C.[CZCZC[C@XCUC@VC@\XCWCXCZC@VCkSC@!QC@OCMCMCLC@sICGC@GCJC@NCMC=MCMCcNCcMC@8KCLCMC@MC)MCLCNC)OC@QC@ SCkPC;NCNC5PC@sUCGTC@UCVCkXC#[C\C@]CZC@OYC\C@]C^]C\Ck\CYCYCZCp]C@]C}[CZCYCpZCYCkC@\iChCEiCiCiCiC@gCfCdCEaC@a`C_C@!^C]C@\]C[C@\[Cn\C\CL]C\C@[CZCYCYCYCWCVCWCRXCWC@XCiYCYUC@ORCPCOCMCNCLCHCuGCGC@IC@MCMCGMCMCNCMCLC@!MCNC0MC@\MC;LCcMC@NCiRCUCERCkOCNC@PCTC;UCTC@VCWCGZC[C]C\CZC@[C]CR]C^]C@ ]C [C@YC@YC&]Ck^C]CZCuZC@8ZCZC@\jChCiCiCiC)jChChCgC@dC+bCaC@_C@^C^C]C\C]C]C]C@]C]C@J[CYCYCXC+XC@WC=WC@OXCXCVCXCWCSCQCWQCYPCNCWPC@LCHC@JHCGC@aJCLCcMC@LCNCNCNCLC@NCOCNC@JMCRLCMCuNC^UCiYCiTC#RC@\OCPC@SC@UCTC}UC@OWCYCZCE\C@\CZCc[C^\C\C@\C@s]C\C@OZCYC\C^C@8^Cf\C@ZCRZCZCEiC}iCciC}iCiCRiCRhChCgC^dCbCaCG`C^C_CT^C{]C@^C@^C5^C.^C\C@ZC;YCXCYWCVCWC@WCYC@XCVCYCVC^SC&QC=QCPCOCPCMC}IC0IC@HCJCLC@LC@MCNCPC@OOC@aNC@PC@aPCROCWNC@LC@MCNC@WC^CWCTC+PCOC0RC#UC@8UCcUC@VCWC5YCZC@\]C[C@ZC[C[C@\CB]C]C@ZCZCcZC{^C_CR]C@O[CZCZCiC@iCiC@jC@sjChC@hC@ iCgC&eCcCaC_C`C_C^C_C+_C@_C^C^C@a\C@ZC@3YC@xWCVCWCXC)YC [C@sWCWCXCVC+SC@PCYRCQCOCYQC@aMCJCICGCJCMCNC@NC@\OCWQCQCOCQCQCPC@OCMCNC{OCXC@cC[C0VCQC@OCiQC0TCUCUC@UC@VC@sWCYC\C\CZCZC@ [C[C{\C@a^CT[CZC@YC]C_C^C\C [C@ZC@iC@jCjCnjC@iC^hCiChC@gC@OeC=dCaC@!aC`C`C_C#`C_C_C@^C5^C@\\C{ZCXCLVCLVCXC&YC@ZC@ZCWWCnWC{WCUCQCQC@SC)RCPC)QCNCJC@HC@8ICLC^OCOCPCPCLRC@\SCYQCRC@RCRCQCOCGPCQCXCdCu]CVCRCOC@PCSC=UCUCUCUCVCXC=\CR\CiZCYC@YCZC[C]C@\C@ZCZC@[C;_C_C]C@[C&[CcjC@iC0jCjC@hC@siCiC@JiCfgCeC.dC@!bC@xaCaC`CaC`C@aC_C_C@^C[CZC5WC{UC@8WC)ZCcZC\CYCnWCnWCVC;UCkQC;SC@TCRCQC@QCMCJCIC@3JCOCRSCRCRCQCcRCTC+SC;SC@SCSC@SC)RCRCRC@sVC@bC^CTWCSCOCRPCRC+UCUCUCTC@UCWC[C\CYCYC@XC+ZC)[C\C]C[CZCZC&^C@`C^C\C@ZCRjC@iCjC@JjChC@iC@iC@iCgC=fC@JcCRbC@ObCbC@aCYaCaCaC`C_CB]C[CuXCUCVC@XCB[C@x\C@a\CXC^XC@3XCUC@SC@JQC&UCTCQC@QCQC@MC@JCICcLC@SCVC#VCUC@SCTSCUCUCUC@sUC@UCTCSC.TCTCUC]C@^CBXCSCPCpPCQC@aTC@UC@3VCTC=UC@WC@[C.]C@aYC@WCBXC5YCZCk[C^C@8\C[C@ZC[C_C}_C5^C@\\CjCjCjCRiCTiC jC@iC@jCgCeC cC;cC@cCcC@\bCYbCibCaC`C@\^C]C[CVCUCTWC@aZC\C\CTZCYCYC5XCcUC@RCQCUCTC@aQCLQCPCMC@3JC@JCnOCUCYC0YCWC@3VCfTCnWC@WC@WCWCWCUCTCWUCTUCUC@YC\CWYCSC@PCpPCQCSC@UC@JVC@OUC}UC@WCu[CY]C@ ZCWCWC@XC@YC0ZCk]C@]C\CZCZC^C`CY_CY]C@jCjCjC}iCiC#jC@JjC@iCgCneCcC@cC@cCcC@bCcCbCRbC`C]C]CZC@VCVCXC[C\CT[CXC[CZC@WC=TC;RC@RCTCSCQC@PC#PC@MC@KC@3LCQCWWCZC}[CYCXC VCYCZCZCYC.XCVCiUC}VCUCkUC@WC ZCkYCTC@QCPCQCfSC@TC VC@UC)VC XC[CB^C@ZCVCVCiWC@OXCYC[C^C@ ]C \CRZCu\C_CE_CW^CjCjC jCiCijC@jC@jCiCgC@dCeCdCcdCcCcC@dC@cCTbC_C5]C\CpYC@WCXC@JZC]Cn[CYCEYCc\C0ZCVCSCQCRCnSCRCuQCPC PCNC+LCNCuSC}XCk[C{\CZCYCYC5[C\C^C@[CTYCWC#VCVC@WCUCVCWC+YCUC.SCQCPCcSC@TC@UC@aVCVC#XC\C_Cn\CVC5VC)WC@OWC@aXCZCL^C^^C ]CZC.[Ci_C `C#_CujCjCiCEjC@\jCjCkC@iC@fC;eC{eCkeCdCdC dC^dCpcCbC@_Ck]C\CYCEXC^XCR\C[CnYCBXC@ZC@[CBXC@sVCfRC@QC)SCSCRC@PCuOC@\PCBOCMC@PC)UC@XC@\CG\CG[C[C0[C&]C@]C@8`C@!^CZC@YCVCWCBXC@VCVC@OWCXCUC@SC;RCPC@RCTCUCVCVCnXC\C`C@^CXCUC@!WC@VCWCWCG\C_C]C[CcZCR]C@`CL_CjCjCWjCjCjCkCkCuhC@fC@eC#fC@eC+eC@dC@adCdCdCbC^CT]C[CYC+YCYC@\C+ZCXCXC\C@ZC.WCGVCQC0RC@OSC@SC}RCYPCPC.PC=OCkOC&SC@JVC+ZC@s\C0\CY[C[C\C@]C]C`C_C@O]CZCTWCWCXCWC@3WC@3XC5YCWC@TCpSC@PC@RCTCUCVCWCYC\C`C`CRZC@VC@VCWCYVCnVC@YC=_C_CL]CZC[C`C_C^kCGjCjCkCYkClCjC@hCfC^gCcfC=fCeC@dCeCdCcC aC^CW]CR\C{ZCXC[C[C@JXCEXCZC0\CXCYWCVCQCSCLTCSCQCPCBQCPC@OCfQC5UCXC[C\C\CB\C\C@^C^Cp]C@8`C`C_C]CXCXC)YC@WC@\XC@YCYCXC@UCTC@JRC@JRCTCVCBVCYWC+YC\C`CaC@x\C)WC VCXCWCUCWC@]C`C_C[CZC.^C`CkCkkCjCTkClC@OlCjC@gC@gCgCcfC)fC&fCueC@3eCYeC0cC@`C]CW]C@]CL[CWYC[CYC@WCXCu[C[CYCXCVCQCWTC UCSC5PCPCSCWQCOC@3TC+XC[C@]C]CT^C@_C@^C@3`C`C@]C@O_C+aC`C@^C@YCWCkXCXCYCZC^ZCYC.WCEUCGSCRCTC)WCVCWCYC\Cp`CaC@3^CXC@VCWCYC@\VCUCZC_C`C]CfZC\C_C;kC@jCEkCkClCkC@iCgC@OhCgCfCfCeC@eCeC@ eC@bC`C@]C]Cc^CZC+ZCZC@JXCWCEYC[C@![C@YC=ZC@ VC{RCTC5UC;SC@OCRCTC}RCPC=WC@x[C@_C`C._Cf`CaCYbCaCbC^Ci_CaC@`C5`C@\\CXCBXC.YCZCW[C@ [C{ZCXCUCSC@3SCTC@WC+WCXCZC\C#_C`C@J^C@YC@VC@ WCZCXCRUCWC]CaC@O_C+[C@x[C{^CkC@jCkClCmC.lC@siC&hC@OhC;gCgCfC.fCeCeCcCaC^C^C`C^CZCYZC@XCWCfXCZC;\Cu\C@[C)[C)UCSCUCfUCRCOCRCTCRC TCZCY_CkaCbCTaCcCeCLfCcCRdCaC}`C.bC@ aC#`C^CZC0YCBZCT\C]C@ \C[CZCVCTCSCTC@VCBXCYC[C\C]Cf^C]C@ZCWC@WC0ZCZCVCcUC@ZC@`C`C\C@ZC]CkC@kC@3lC@smCumC5lC=iChCnhCfC.gC@fC5fCeCWeCEcC@J`Cu_C@ `C`C@\C[CYC+XC.XCYC@ [C@\C;]C\C[C@JTCSCGVCTC@8RC@NC SCUCSCWC^CbCdCeC@eC0fChCjCfCeC&dC)bC@abCaC_C_C]CY[C[C.]C_C5^C\C\CXCUCTC@UC@VCuXC@ZC\C@ ]Cc\C@\C@![C.ZCWCWC@OYC@\CYCUCWC^CaCB_CE[Cf\C@!kCkClCmCnCYkC@3iC@hCgC@8gC@xgCfCeCeC@!eCbC`C`C@aC@`C\C@[C@XC@WCXC0ZCT[C@\C]Cu[CZCSC@SC;VCSCQCNCRCTCUC[CbCRfCfCgCLhC@hC{kClChCgCgCdCbCBbC@a`C_C._C@]C@]C@^CE`C@_C^CY]Cp[C&WC.UC+VCnVCWCZC@!]C@]C[C[CYCTXCWC@VC@WC\C5\C@3WC0UC[CaCEaC\C@\[C@kC@lC)nCnCnC@3kChChCBgCgCTgC@fCeCeCTdC@aC`CaC=bCn_C@\C[C@xXCWCXC@8ZCZC@\C@x\C+ZCXCpSC=TCEUC@sRC@PCNC^RCTC@JWC;_CeChChCjCjCjCcmC^nCkCiC^kCfgCcCcC@`CB_C@_C_C@_C`C`C@aC+aC._C]C{YCVCWCWC@3WCZC@O]C0]C@[C@YC;XC@JVCWCUCWCpZC@]CYC@JUC@XC`C=bC_C@3[C;lC@\mCnCnC@mC@jCiCgCgCgC)gCEfCfC@eCcCaCaCfbCbC0^C@[CWZC@JXC@aXC@XCZCB[C@x\CZCYCGXCRC@xTCSC@3QC@!PC&OCpRC}TCYCpaCLgC@3jCiCjCplClCunCnCRlC@kC}nCkCidCidCbC_C^C@`CTaCbCbCbC@8cC bC;_CB\C&XCXCkXCVCYC\C]C@3[CYC XC@ UCiUC=UC@8VCYCL]C]C@sWCUCp\C@ObC@aCp\C mCWnCoCoC@lC@ajC@aiChCRhC@gCigCYfCfCTeCcCBbC{bCbCaC@]C[C.ZC@XC YCLYC@ZCn[Ci[CnYCkYC@xWCGRC;TC@QC#PCOCOCRCTCYCpaCfC@jC@8jC&kCWmClCnCoC#mC@smC@JpC5nC@fCeCdC@aC@J^C`CRbCfcC@cCcC^dC.eC^aC{^CZC@YC;ZCWCXC\C]C [CZC@ YCuUC@SC.TCTCWC[C@\^C@YC@UCXC@`CbC#_CmC@oC@oC#oClC@jCiChC@hC@gC@gCfCfC@eCdCcCLcC cCT`CG]CG[CYC@\YCYC@ZC@ZC+[C@ZCYCYCVCRCfSC}PC@OCcOC}OCSCTTCYCL_C&eCjC@JjCukCmC@xmCnCoC@nCmCpCpC@OjCgC@ gCcC_C^CaCcCdC+dCeC@fCcCaCi]C\C@\CXCGXC[CE\CZCZCYZCWCRC.SCSC@aVC@OZC^C\C@WCUCW]C0cCaCnCpCoCoC@alC@jCiCiiChChCgCGgC@\gCfCTeCdCcCbC@a_C@O]C#[CGZC ZC5[C@ \Cu[C[CGZCZCnZCVC SC@sRC0PCOCkOCkPC@SC0TC5XC0]C^cC jCfjCkC0mCmCmCoCnC5nCpC@pCmCiC@iCfC`CL^C@s`C)dC=eCeCeC}gC@eCncC`C^C@]CYC@XCZC[CZC@YC[CYCuTCfQCRCTCXC\C^CYC@JVCXCbCbCoC@!pC@\pCfnCmC.kC@iCjC5iChC@!hC@hCgC@ gC@eCeCdCaC_C.]CY[C@[C[C\C\C)\CZCRZC@[C@OZC@3WCSCRCOC@OCPCBRC@TC@TCWC\CbCGiCiC@kClClCmCoCnCWnC@\pC&qCpC@kC@xkCiC@scC^C_CbC@eCfCfCgCfCdC}bCnaCaC@J[CnXCZC@ZC@ZC@YC@[C@[C@WCPCQC;SCUC[C^C[CXCUC@^C dCoCpC#pCWnC@lCkCpkC@xjC@iCLiC;hChChC#gC@JgC@eCLdCaC@\_C@s]C[Cf\C\C]C]C[CZC)[C\CZCWCTCTSCPC QCQCSCTC}UCWC@[CaC}gCkhCiC@iCiCWkC@JnCnCpnC@oCBqC&qC@mC@lCkCYfC`C_C@aC@eCgCgCfgC@gC@!fCcCbCieCG]CYC@YCcZCcZC@xYCYC@x\C@ZCYSCOC@RC0TC@XC]Ck\CYC{VCZCbCoC@pCoC@anClCkCkCkjCjCkiChC@hC@hCkhC@gCfCdCbC_C]C@a]C]C^C@]C5]C;\CZC@[Cn\C[CnWC@ UCSCRC}RC@RC TCUCEVC@XC@!]C`C{eC=fCfCfC@sgCiCBmCnCnCoC qCEqC@nC@mClChCbC5aC_CeChCBiCgCgC@fCdC{bChC`C ZCYCYCpYCYCXC[C@[CYWCOC@PCSCVC\C@\CZCXCBWC_C@OpCpCoCnClC;mClCjCjCiC@iC@iC@siChCgCfCndCcC_Ci^C@ _C_C^C@J^C\C[C{[C@ \C@\\C@[CWC@UCUCSCSC@SC@TCWCWC@YC@]C@a_CbCbC@cCcCdChC5kC@lCinCpCfpC@pC@oCnC@lCkjC)eCbC@`CdC+iCBjCgCgCfCdCbCfC=dC [CYCYC YC@XCXCXC[C@ZCfRCOCRC@TC.ZC]C@ZC#ZCVCB[CkpC@pC@oC)nCmCmCkCkC@jCiC@JiCiC jC@hChC@3fCeC@bC`C+_CL`C0_C_Cc^C\C[CW[C{[C@x[C@x[C@VCVCVC+UC@UC=TCUC@XCXC=ZC]C@^Ci`Cp`C`CaCcCeC0hC)kC@3mC@nCpC@oCnCEnC@lClC#hC^dCkaC&dC0iC@jC@ahCeC@eCdCbCdCeC@[CXCYCiXC{WCWCWC@sYCnZC@UCOC@PC@xSC@WC]CB[CZCnXC@OXCpCkpCoC@mC@mCGmClCkCjC@iC@jCjCiChChCfCeCcCYaC@`C`C_C@_CW^C\C[CZCZCn[CZCWC}WCXC.WCkVCTC)WC5YCuYCZCG]C\C@O^C^C@_C@aCaC@cCeCgCkCknC@oCmC@JnCnClClC@jC@fC@dCdC@aiC@xjC}hCeC=eCdC@abC#bC@cC]CXCnYCGXCEWCVCUCWC@OYCfXC@QCNCRCTC0\C\CYC@YCVCpC@JpCoC@mC@OnC@mC@OlCkCjCjCjCkCiC@iCihC@gCifCdC@aC@`CG`CcaC`C@]C)\C[CYCXCcZC@8ZCXCYXCZCXC@sVCTCWXCYCXC#ZC[C[C@\C@J]C@J^C}`C_CbCbC@dCThC@lCnClC+mCnCmCumCkC@shCfCnfCTiCjChC@eCdCcCTbC@`C@\aC]CXC@OXCXCVCUC@TCTC@sWCXC@TCNC@PCSC@XC@]CYC@YCXCpC@pC@nC}nCnClC@lCkCkC+kCkC@jCciCiChCgCfCeC@bC@`C@`C@bCiaCc]CT\C\C@YCXCYC@ZCWYCWYC]CBZC@VC@TCXCWYC@YCYC[C@\[C[CR\C#^C`Cn^C#`C@`C@bC@JfCkC@mCukC@JlCYnCmCfmClC@\jC@xiCkhCiCGjCEiC5fCdCcCkbC `Cf_C@]CYCWCWC)VCTC@JTCSCRTC@ VC^VCPCcNCRC.UC@3]C@ \CYCYC@pCpC@nC@xnC&nC@lC;lCkkCkC@kC&lCjC@jCjC&iC&hCgCfC5bC@_C}bC.dCaC@8]C@\C[CYC@ZCLZC[C&ZC@x[C@^CZC@VCUCYCYC)YCYCEZCZC@ZC@\C@!^C^C]C=^C5_C`C@eCjC@mCujC@jCinC.nCmC@lCkClC@ jChC0iChCgC@dC@cC)bC`C]C]CYC;WCRWC@VCSC@RCRCRC@xSC@UCSC@MCPCRC@YC^C@YC^YCpC@JpCnC@nCmClCRlCkCkClCilC^jCkCijCiCihCchCgC`C@O`C{dCdC`C;]C\C[CZC@[C@[C@J\Cf[C@\^C@_CZCVCVCYCXCXCXC@YCuZCRZC}[C#^C]C^\C\C]Cf_C@aeCkC@xlCiCiC.nC@mC@OmC@8mCkC)mC@kChC@hChCfC@8dC+bCYaC `C\C;[CYCiWCVCUCSCRC@QC@QCQC@OSCTUC@OCMCPCUC]C#[CXCqCoC.oCnCfmC mCclCkClC@lC@kCjCkC;jC@iCchCiC@xfC_C@`C@seCcC@_C@s]C@]C&\C[C\C\C\C@3\C`C@3`CZCVCWCYCiXCXCXC@JXCZCZC@[C^C]CE\CB\C\C _CeC=kC@kC@!iCLiCkmC0mCmCmC@8lC@xmClCiCphCWhCfC@cCRaC_C^_C\C{YCXCVC=VCTCfTC@QC0QCPCPCPC&UC@\RCMC@3OC}QCZC^CXC@pC@aoCoC@8nC)mC@mC@lC}lClC mC@kCkCnkCiChChC0jC@eC&`C0bC@!eCubC._CL]C^C\C\C]C]C]C.^C@aC_CYCVCXCYCWCXCWC@WCZC@xZCZC@]C]C\C[C\Cf^C@JeCiC}jCRhCkgCkCulC@lC@amCRlCRmClCfjC@hC@hCfC@acC`C^C;^C[CWXCWCWCUCTCTC@QCEQCnPCPCOCQCTC)NC0NC@OCUC;_CZCupCoCoC@amC@xmCmClC mC@amC^lC@kC@OlC+jCiChC@siCjCdC@`CcCucCaC=_CY^CB_C@]Ck^C]C&^C@\C^C@saC@^CBXCWC5YC@YCWCXC;WCWC[C[C@![C@s]Ci^C}]CT\C{\C^C@dCiC=iCfCEeCiCkC@JlC@mC@kCkCilC^kCiCgCgCcC_C@J]C\C\CWCVC@OVCUC{TC@TC@sRC+QCTPCOC@OCOCBTC;QCLCkNCPC@[C]C@spCBpC.nC@smC^nC^mC@mCmC@mClClC&kCiC@hC@gCYjC;kCLeCaCbC@ cCaC;_C^C_C_C@_C@a_C^C[C@^C@aC@a]CWCfWC@sYCXCWC#XC@VCXC=[C[C\C0]C^C^C@a]C5]C@_CdCfCkgC+eCbCfC@ajC@kClC@8kCjCflC0kCiCRhC@gCcC_C]C[CZCfWCEUCTCVC@TC@JTCpRCQCPCLPCuOCNCRCLTCMCMCWNCUC@_C@pC@pC@mC nC@nCmC5mC nCcmC@kClCpiC@hChC)hCkCkC@xfCncCcCcC aC+_Cn_C`C)aC}`C`C]Cp[C@^C_C\C@VCWCXCXCWWC+WCiWCXCZC@[C\C5]C=_C}^Cf]C ^C@_CcCeC#eCucC`CcC@iCjC{kCjCEjCkC@kC+jCWhCgCdC`C\CYCYCBWC@aUC@SC{VC@UC&TCSCnQCTQCTPCOC.OCPC@UC@PCMCMCPC\CfpC@oCmC{nCmClC@mCmC+lC{lC+kCgChC@fChC.mCkC@gCpdC0cCcC`C@s^C`CaCbCaC`C@]C#[Cu]Cp^C@\\C@WCWCXCWC@8VC@UCWCfXC@ZC\C\C}]C_C_C]C^C@x`CcCdCYcC@aC^C@saCgCjCjC@iC5jC0lC@lC+kC@gC@gC@ eC`C\CXC.XC@VC)UCcSCTC{WCBTCfSC@aQCQCnQCPC5PCROC@SCTC@MCMCMCVCupC@nCnC@nClC@amCnC#mC}kC lCEhCLgC@agCBgC@ajCmCkC@hCeCcCbCL`C^CT`C cC@ObC_C@a`C\CZC\C^C[CWCVCWCVC@TCpUC)WCXCZC\C[CL\Cf_C@a`C@]C@3_CBaC@cCcCbC_C^C`C@ fCkiC+iCiCkClCmC@lCgCfCpdC@aC]C@XCVCVCTCWTCSCEXC@TC@RCkQCRRC@xRC@PCQC@OCQC=VCPCMCLCPC@pCmCnC{mClC#mC@amCkC@kCjC#fCcgCfCgC@\lCmC)lC@hCfC}dCbC_C^CfaC@bC`CE^C@O_C\C@JZC@ZC]CZC@VCUC)WCUC@SCUCRWC@JWC@WC5ZCZC[Ci_C@`C;^C@^CEaC@xcC@ bCbC5^C\C@x^CfdCEiChC0iClCmCYnC;lChCdC@cCaC@^CYCUC@TC@TC=UCTC@sWCYWC^RCRCQC@RC@RCQCQCPCUCTCNCGMCLC+oCnCnClCnlC=mC}lC0kCiCLgCeCfCfChCmCEmClC@!iCfC@eC@aC^Cu^CnaCaC^CR\C@^C#[CkYCYC\C@XCVC VCVCUC.SCTC@\WC.VCVCXCYCW\C_C@aCk^C)^C@`CbCaC@aC]CE\C]CEcC@hCiC@ iClCnCnC@mC@hCdCRcCbC`C#ZCRTC+TCSCUCUCVC@XCRCQC@RCSC&TCSC#SC@sQCYTC@!XCLPCMCKC@nCnCmC@kC@slClC@jC@iCgCBeCWfC^eC+gCjC mC@alC@kCiCgCeC^aC@^C@^CaC@_C@\[C[C@!]CYCXC@YCZCVCGTC@VC@UCTC@SCWTC@VC@VCTC@ XC@JYC\C`CaC^C^C`CaC`CaC]C\C@\]C;aCfC iC@hCkC@mCcmCmC@iCdCbCcC`Cu[CTCSC@3SC@TC@UCUC@WCSC@PCQCSC@UC0UCTC@ SCTCXCGUC@ONCfLCnCnC5kCckC#lC@jCiCWhC@eCdC@eCdCgC.lC@lCkCckCfjCiCGeC`C@O^C_Cc`C^CYC[C[C@JXC@\YCGZC@sYC)TC#SC&VC}UCYTC@SCSC@xVC@3VCTC5XC@YC\C@s`C`C@`C_C`CR`C@3`CE_C]C@3]C@s]C.`C@dChChC@OkCikCkC0mCjCkeCbCncCaC@]C{UC@QCcRCSC;TCUCWC)TCQCRCSCfVCVC@VCuUC@3TCuWCYC&PCMCnCBlCjCkCkCjC@shCeC.dCdC@dCBeChCkCkC@ kCkCkC@3iCdCG`C@]C_C_C\C@\YCf[CYC+XC@ZCZCpWC@ TCRCTC@UC@UCTCSCWCUCUCiYCYC\C@aC@`CaCnaC@J`C_Ci`CT^C&]C]CT]C_C@bC@OfC@gC@iCjChCikC@kCfCbC@xcCbC_C+WCRC@QC#RCRCSCRUC@ TC@3QCRC#TCWC@8XCpXCWCVCVCW[CTCMCmCjCjCijCiCiCgC@eCcC@cCfcCeCWiC.lCkCkC5lCkCiC@cC._Cf^C@_C^C@[CfZC5[C@xXCLXCB[CZCVCSCTRCTCVCUCUC@TC@OWC@VCWC[C{YC0]CaCcC@xcC@bCB`C_C@!`C]C@[C@ ]C@]C@ _CaCcCfChChCfChCkC@hCdCGcCcC`CYC;RCQC^QC@JQCQC@SC@RCQC@ORCTCVCYCYCYCWC;WC@ZC@8ZCOCkCjCTjCiCGiChC@afCdCidCcC+cC)eCjCGlCujCnkClC;lCYiC+cC@_C=_C+_C^C#\C[C=ZCWWCXC@\[CXCWCTC+SCUC@WCpVC@UCUCWCuWCYC\CZC]C)eCeC@eC@OcC@_C5^C}_C]C[C[C@O]C@8_CL`CaCdCeCifC@eCeCjCjCfCcC@8cC@_C+\C{SCnQCPC&PC@!PCEQC RCEPCRCTCWWC@ZCZC\C@YCXC@YC5]CSCjC=jCiC@iCiChCfCeCcCbCbCfC@!lCkCnjC;lCmC@slCgC@cC_C5_C^C)^CB]CG\C5ZC@8WCEYC[CWC@8XC&UCcSCTUC@WCVCVCVC@WCWC@[C@]C\C@O`C;jC@OiC}gC@cCT`C^C@a_C]C{ZCZC\C_C@_C@_CnaCbCbCdCbC@gCjC@hC+dCcCk_C@a]CVC@QCPCPCpOCBOC^PCOC^RC@UC;WCZC@!\C@\C[CYCYC]C@YCiCiC@iC{iC kC{iCgCEfCcCLbC;bChCEmCWkC)kC lCnmCkC@eC@bC_Cu^C^C]C=^C.]C@YC@8WCYCYC;WC@XC@UCSCUC5WCcWCWC@8WCVCWC[C^C\CbCnCkC@ahCcC=`C^C^C@]C@YC;ZC^\C_C@_C_C^CL_C;_C`C`CbChCjC@OeCcC_C[CVC@xRCPCPCEOCMC@NCNC@JRCUCLXCYC@\C\C]CZCZC@x\C@\]C@iC^iC@\hCYjCkCjCiCfCEcCGaCcCkC@nC@8kCjCkClCiCeCbC_C^C^C^C@^C@8]CYXCWC@xYC@WCYWCXCTCSC@aTCWCBWCXCBWCUC@VC+\C_Cn^CeCoClCgC@cC`C@3_C@_C^CYC@3YC\C#_C^C]C@J\C#\C}[Ci]C^C^C@eCiCnfC@!dC@_C^ZCWCRCcQCfPCOC{MCKC@MCPC@UCTXC@ZC\C]C#^C\CZC[C^C}iC@hC@hCWlCmC+lC0jCfC@bCLaCfC&nCmCjCjC@kCkCfC@\dC@8aC@^C]C@_CL^C@_C\C@xWC@WCXC@TC5WC@WC@8TCSCSC@VCWCpXCVC@TCUC\C`C_CgCoC=lCfCcC@\bC`C_CB^CXC=XC@J[Cp]C@ ]C@8\CZCZC YC@8ZC@8\C^\CWbCgC@fCcC_C@YC@UCQCRCkPCPCMCKC@KC@NCTC@\XC@x[C]C^Ck^C@]C@\[Ci[C^C@\iC0hCjC@\nCnC@3mCjCeCbCbCcjCoC@alC^jC@jCTkCiC@eCcC`C@]C]Cf_C)_C`C[CWCcXCiVCTCWCTWCTCRCSCVCRWC)WCiVCTC@xUC@\C_CL`C{fCGmC@!kCeC@cC cC@8bC@!`C{]CXCXCZCk[CY[CZCXCXCWC@sXCZC[C_CeCdCcC`CYC@UCPC@OCPC@OCNCGKC}JC@\MC@3SCXC[C#^C^C@^Cn^C\CE[C@x]ChCiC+mCToCoC@nC@ajC@eC;cCeCkmCoC@kC@ iCiCijCfC^eCbC^CE]C@^C _C_C@a`CZC}WCXCTCSC@VC@8WCfTC@RCSC@VC#WCVCUCTC@\VC5\C@\_C`C@eC5kCjCfC0cCbCbC`C@O\CXCWCYC@ZCYCXCWCiWCWWC@3WCZC@[C^CcC@aCaC_CXCnTCOCMCPCOCNC@LC@xJC.LC@QCVC[C@^C@x_C^C^C]C)[C\C@xhCkCBoCpCEpCnCfjC@8fC@eCiiCoC@JnCjChC@iC@ iC@xfC}dCGaC@O^Cu]C^C)_Cf`CW_CZCYCTWC{RC@3TCBWCkWCTCRCSCVCWWC+WCVCVC@WC[C]C_CeC@jC@jCfC@bCaC`C_CZC@WC&VCuXCYCWCRXCnWC@VC^WC{WC@ZC[C]C`CW_C@3^C_C@xXCLTCuOC@KCMCPC@xNCYMCKC@KCOCpTC@YC@^C_C@_Cp^C_C\C[CiC@lC@pC;qCqCoC jCgCWgCmCcpCmCiChC@iC@\hC@fCcC_C@]C^C^_C@s`Cu`C]CZCZC#VC@QCTC@XC5XC#UCRCnSC#VC@sXC@aWC@VCYCYC@[C[C _C=eChC@ajCRgC5bC`C^C@8^CYCGVC UC@VCXC@VC@WCuXCWCkWCWCZCL\C]C]CW]CYC\CXCTCOCKCKC.OCPCMCMCLC@NC@RCkWC]C@`C@_C]CR_CW]CZCjCoCqC@OqCfqCnC@jC&iC#jCLpCcpC@3lChChCjChC@fCaC@^C]C^CY`CYaC@_C]Cp[CGZC}TC@PCUC[C@JXC@aUC@8RCnSCVCYC@\XC@WCZC@YC@ZCZC]CRdCkgC@iC&gC@ bC^C\C\CXC0VC@TC UCWCUC{VCYC@WCiWCWCkZC@a\C]C\CG[CWCkXCWCSCOCJCIC@3MC@aQC^NCTNC{NC@NCWQCnTC@s[C@xaC@`C@^C@^C^C@s[CmC@qCqC+rCqC@nClCkCmC&rC@soC0kChCiC@OjChC.eC@`C0^C]C^C`C+aC^C\Cp[CYCGRC@xPCXC[C@sXC@TCcRCRCWCZCXCXC{ZC@JZCZCZC ^C#dCfC@hC@8fCGaCE]C@3[C@[CnXCEVC@!UCSC@UC}UCUCYC@xXCWCYCkZC@x[C\CGZCXCYVCcTCTCuQCOCBKC@HCJC;QCEQCTOCcPCLOCPCGRCWC@J`CbC_CB]C^C\CoCrCpCrCqCoC@xnC@mCqC}rC@8nCjCgCiCfjCThC@bCT_C]CT^CG`C`C`C@ ^C\C[CuWC@sOCPCYCZCWCSC@RC=SCYC#[CWCWCYCZC@ZC [CG^C dCeC@gCidC@J`C@\[CYCYCXCiVCVC@ TCSC@JVC5VCXC@XC@!XC@ZCYC5[C[CYC@WC+VCRC@RCPCfNC@KCHC#IC@OCRC@QC+RCTQC&QCRC@\TC0]CbC_Cu\C^C]C@qC@pCpC+sCrCqCpC@ pCtCrCmC@iC@OhCjCiCfC@bC0^C@]C+_C@`C_C]C@]C\C+\CTCMCQCXC.YC=UCTC@!RCSC@8[C@ZC@WC@\WC)YC[Cp\CL\C@!^CcCeCeCbC^C#ZCWC@XCBXCTWC=XC5UCTC@OVCVC^XC@aXCXC]CZCfZCZCYCUCUCRCQCNCMCLC@HCBHC@\LCRCESCkSCSCRCRCRC@XC@bC@aC\C[C=^CqC+pC@qCsC@sC@3sCpC@sCuC@ qCEmChCiiC@jC@\iC}eC@`C]C]Cn`C_C\C\C@\\C\C#[CQC@LCQCRVCVC@\TC@VCSCUC\CYC)WCRWC5XC[C@!]C\Ci^CEcC#eCcCaC@a\C@XC@aVCVC@OWC@WCYC WCTCWVCRWC+WCWC}YC@^C[C@\YCXCYC@UCTCTC5RC@NC#MCKC@8IC@GCJC@PC@!TCTC.UC@RC@xRCRC@UC@!`CcC^CZC]C qC5oCrC@tC@uC@tC@sCuC@tCpCkChCiCiiCgC@cC@x`C]C=^C_C#\C@YC[C[C@]C+YCNC@aLC}PCSCTCSC@8WCSC&XC\C=XCVCVCWC@[C@8]C\Ck^C@bCcCaC@ _CZC@WC@VCUCVCGXC[CXCVCVCVC@UC^VCZC_CY\CXC@VCXCUCSC.TC@sSCPC@LC0LC@sJC@JHCnIC)NC#SC@\UCVCTC@8SCSC@SCE[C@dCaC.[C@![CoC@JoC@sC@3vC vC5uCvCEwCtCpCjCiChCBhCYfC cC@O`C^C]C]C@YCkXCZC@x\C@!]CUCLCkKC@NC)QCRC@!UC@XC@UC@ZC\CVCGVCVCVCZC\C[C^CbC^bC_C]CXCWC=VCUCVC@\YCB[C@3ZCWCWC@UC;TCUCBZC@^C@[CVCTCVC WCRC@RCSC&SC{NCLC@KCIC@HCKC@PC UCVCnVCRCRCSC@VC@cCdC5]CYCmCpCTuCvCuCvC@3xC@OwCpsCmCfiCiCBhCgCWeCbC`C]C)]C.[C^WCfXC[C@]C@x[CRC@JCkJC@JMC.OCQC.VCYCXCR]C[C.VC.VCUCUCYC;\CGZCW]C@`C@!`C]CZC@!WCfVC^WCWCVCnYC{[CZC@8XCWCUCRC@UC)ZC@]C@YC@SCSC)TC@aVCRCRPCuRC@ TCPCNCLCKC@HC@JCMC@RCkVCVCTCRCSCTCn^CfCn`CYC^mCEsC@wC@JwC{vCxCxC@vC@rCkCjC}hCgCfCdCcCB`C@\C}[CpXCBWCYC]C\C@XC.PCHCcJC@\LCMCfPC@WCZC[C_CiZCTUCUCTC@TC}XC@OZCYC\C@8_C]C[CXCUC@UCBWCXCWC@8ZC@![CYC@XCWCUCRC^TCXC#[CVC@QCQCQC@ UCSC@xOC{OCSCQC@OC5OC@LCICIC@sLC{OCTC WCVCfRCRC@3UC=YCfCkdC\CoC@OuCwCvC@xCzCyCuCpCjC.jC=gCfC@fC#dC@cC_C[CRZCWC@XC[C^CnZCVCNC@HCpKC)MCMCPCWC\C^C^CXC#UC@UC{TCRCVC@!ZC}YC@\C&]CZCYCkWCUCGUCWC@WCWCZC@sZC@OYC)YCWC5VCRC@\SC XC@YCTCQCWPCWOC@ SC@ TCGOCLCGQC0RC)QC)QCiOCGKCHCJCLCQCVC=VC@3TCBQCTCWC@ bC@gCL_CLqCwC.wCvCyCfzCTxCftCmCkC@\iCneCfgC@!fCdCbC^C@x[C+YCYC0[C@]C@]CXCVCMCIC@MC@8OC OCQC0XC]C@\_C\C^VC@UCuVCTCkRCVC@ZCYC[C[CYC@WC@\VCVCTCWC@WCkXCYCYC)XCXC@XC@VCSCQCUCXCWSC@PCnPCEOCQCTCEPCWLC)NC@QCTQC@RC^RC+NCICLICJC@NC UC=VCUCQCTRCVC@x\C@aiC@cC@stCvC@8vC@ xCzCyC@swC@3rCmCkCgCEeCTgCeCfdC}bC]C[CYC [C}]C@^C[C@JXCTCGLC@KC@JOCPCPCRC+YC]C@_CZCVC@3WCWC5UCSCWCB\C&ZCT[CYZCWCUC@3UC.VCUC@VCXCXCZC@8YCWCXCYXCVC&UC@PCRCVCRCYPCfQC{PCiPC^SCQC@MCLC@3QC}PCRCSC@\QC@8KCHCICKCcRCVC@UCTC@PCUCYC&fChC@uCuCvC@!yCzC@xC{vCpCEmC@\kC.fCfCfCdCncC@`C5^C\C[C\C^C{]CZCLYC@JTCMC@JMCQCBSCSCTCZC]C^CEYC@JWC@WC@XC@VCTCXC]CYC@sZCYCcWC=UC@xUC0WCTSCTCLXC+ZC@\\CYCWCXCXC@WC)VC}QCPC@SCRC@PCQC}RCEPCRCBRC@OC@LCQCPCRC@ TCUC@xNCLJCHCnICOCpUCUCUCkQC@8SC@OYC`C@lCuCtCvCyCyC@xCuC@oC#mC)jC{eC&fCeCLdCLcC_C^C]C[C]C@]C@\C[C)ZCTC=NCNC@xSC5TCUCpVCu[C@]C@]C@YCfXCWCXCWCVCEYC&]C&YCZCZCWC@TCUC XC@8RCSCWC@ZCc]C[C@!YCXC+XCpVCYWCRC@PCPCQCiQC@8QCSC&PC@sRCRCPCNC0QCRCPC@SC@VCSCKCTIC&HCLC=SCVCUCSC@OQCVC]CiCtCtCwCyCRyCwC@sCoC@lCiCeCeC+dC@cC#bC_C_C]C[C@^C\C\C\CfZCSC#OCPC@TC@TCVCWC@[C@]CG]C0[C@XCWC}XC@XC#XCZC\C@XCYC@ZCWCVCWC@XCPCRCGVCYCL]C@\CEZC@XC.WCUCBWCRC#PCBOCOC#RCPCWSCRCQC@\SC@RCOC@PC=UCQCnRC@UC@WC@3OCcKC&HCICPCBVCUCUCQC@SC\CdCusCtCYxCxCGyCvCrC{oCplC@hCeC{cC@cC@3cCaC@`C`C\C)\CL]C@s\Cf]C\C{YCRSC^OCRCUC@VCXC@YCB[C@]C)^C[C@XC@WC@!XCYCYYC[C@O[C@sYC5ZC@ZC#XC@aXCBYCXCuQCERCUC@XC@[C^\C@ZC@!XCUC@SCUCRCPC)OCNCQCQCWRCRC.RCSCpSCQCPC VC@UCSCTCkZC^TCYMCJC@GCMC}TCVCUCSC5RCWYCaCsC@uCwCxCxCvC@xrC@\oCflChCTdC@aC@ bCbCaCaC&`C@[C.]C@]C\Ck^C@!\CXCSC QCTTC@VCXC@!ZC[C@ZC@^C_C@[CYCBXCXC^[C@\[Cc]CE[CYCZC[CiYCYCZC@YC@RC@aRC}TCpVC@3YCZCLYCWC@TCQCSC@QCkOC@OC@8OCQCRC@QCTC@8RC@ TC@TCWRCpQCTC@WCUCTC@YCZCPC5LC@OHC@xKC@RCVCkUC@UCkRCUC_CksCGvCwCxCxC@\uCqCoC@lChCWbC@ aC@ aCaC@aC bC^C@[C\C@]C@]C]C[C@\WCSCRCVCWC@YC[CW]C@[C`CR`C.\CGZC@8YC@YC]C\C0^C@[C@sZC@![C[CLZCZCW[CZCTCRC{SCnUC@WC WCRVCWVCRCPCQC@PCMCOCOC;QCnSC@QCTCSC@\SCTC@SCQCYSCGXCWCYWCcWC@s]CUCOCJC0JCPC}UCVC@UC@TC@SCZCsCuC@vC@xC#xCuCqCfoCnmC)gC=aCn`CB`CaCbCGaC#]C&\C\C@^C]C\CZCWC^TC@TCVCYCZC@^C@]C@x]CaC@`C ]Cf[CZC[C_C@]C^C[C)[C[C\CB[CR[C5\C@ZC@\WCTCpTC=UCVCcTCRCTC@xQCPCOCPC@OMCMCRPC@PC@TCRC@SCTCRCSC@UCRCRCVCXC@YC@WC\C\CTC@JNCIC@NCSC@VCUC{VC@SC@sVCtCuC@3wCEyCcwCtCqC@JpC}mC&fC5aCW_C_CaC@bC.`C]C^\CG]C]C\C[CBYC@8WCTCUCWC&ZC@\C_C^C_CbC`C]C\C@[C]C`C+^C ^Ck\C@8[C[C=\C@8\C@[CY\CB\CYC=WCcUC@UCVC5SCOC@PCOCOCNCOCNC@LCPCQC@TCSC@3SCUCQCQC@UCSCQCUC@JXCkZC@OYCYC`CWYC@RCKCLLCRCnVCVCVCBUCnTC=tC uCxCxC@svCsC@rCpC@xlCdCaC@^C@J`CaCaC=_Ci]C\C]C=\C[C@[CiXCWC@!UC^VCWCY[C@]CG`C@O_C@saC;cC@3bC@a_C@]C]C@`CEaC^C]C@\C[C@J[C@[C\C\C@]C@]C[CZCWCWC^WCSCMCLC@LCpNCOC@NCOCMCOCGSCUCUCSC@UC@QCOCSCGUCRCSCVCfYCBZCXCB^C@_CVCfPC.LC@!QCTCLWCVCVCTCsCYuC@xC@xCuCsC^rCpC@jCdC`C]C@`C{aC@xaC_C;^C}]C\C@[CZCYCWC@3VC@UC^VCXC\C@J_C.aCaCcC^dCcC`C@ _C _CkbC.aCG_C@\]C@8\CY[CZC@ \C\CL^C^C^CL]C@a\CZC@YCXCSC@LCICJC#MCPCNC^PCOCOCETC@3WCVCTCLVC@ RCOC)QCVCBSC@sQC@UCXCYZCXC@ZC@xbCG\C@UC.NC@OCSC@VCWC@VCUC@asC=vCyCLwCuCktCrC@pC@ kCeC`C@_C`C@8aCEbCaC@^C@]Ci[CiZC#ZC@YCWCVCVCVC5YC@3^C`C@bC@cC@dCffC@!eCaCaCRbC@acC)aC`C]C\C[CZC[C;]C_CR`C)_C_C^C@!^C@\C@YC}SCnLC=ICkIC@KCPC0OCPCpQC@8QC@UCYCXC@3UC0VCSCcOCOC@UCTC.QCRC@VCXC;XCcWCaC@JbCYC@OSC@OCSCUC@XC@VC@WCBtC@swCxCvC@avCtCrC@nCjCeC`C_C}`CEbCicCbC_C\C=ZC@OZCZC+ZC@ XC@OWCVCWC[C_C@aCcCdC}fCiCeC@aC@aCdCcC@xaC@`C\C[CZCZCT\C@^C#aC@saC@_CR_C@`C+`C^CYC@SCkLCIC{JCJCNCnOCOCSCSC@WC@ ZCGZCVCUC@TC@PCOCSCVCfRCRPCnTC.WC XC@VC[CeC0_CXCQCBSCTUCWCYXC@WC0uC5xC@3wC@vC@wCTtCqCmCjCeC;aC`C`CcCdCdC`C)[CZCZC\CBZC@XCXCWCXC\C+`CbCdCfCfhCjC@3fCfaCbCeCdCaC`C\C\C[C[CT]C`C@xbCbC@x`Cf`CGaCTaC_C@8ZC@OTCMC@\LC5LCJCLCnOCPCTCcVC@WCZCZCVC@VC5UCSC@PC@\SCkWC@ UCPC@QCUCVC&VC@WC@dCdC@s\C@UCBSCUCcVCYC@WCvC@awCGvCwC@xvC;tCqCfnCkCieCuaC`CaCdCeC@dC^CZCZCG\C\C=ZCYC@XCYCZC^^C&aCcC;fCfC@jC=kCfC@aCcCifCdC@JbC@!aC=]C@]C@\C[C@^C#bCcCbC@aC@aCaC@xbC`CZC@TC@OC{NCNC@LCLC@MC{QCVCYCRYC@ZC[CWCVCVCTCRCRC@WCiWC@aQCOCSCcVCUC@!VCc^C@gCaC@ZCUC)VC@VC@XC@3YC^vC@uCTvCwC@uCrCoC0nC;kCGeCaCpaCbC0eCeC.dC]C[C\C@]C@\CZCZC@ZCZC@J\C@`CaCbC@eC@gCjCjC+dCaCLdC@ fC@xdCbCaC^C^C]C]Cf`CcC@dCbC@!cC@bCLbCaCaC[CVC@QC}PCPCuMCLC@MC.RC@8WCZCZCZC@[CXC#UC@VC@VCUC@RCLVCEXC#TCOC^QC@TCUC+UCLYC0fCeC]CXC@VC.WCWCZCuCuCLwC&wCsCLqC&oCnC@ajCeCbCaCcCdC#fCbC\C@a\C@]C_C\CZC[C[C+\C{^CaC=aC@8bC@\dCnfCiC@3iCbC@aCdC@sdC@acCbC@aC@8_Cc`C_C@!^CWbC@eCneCEcCbCYcCbCbCcaC]CRXC@TCSCQC@OCMCNC@RCWCZC@x[C@ZC]CZCETC@TCWCVCTCUCWC=VCOCEOCnSC{UCcTC@VC@aCTgC`C[C@sXCXCGWC@ZC@tCEuCwCnuC;rCoCoC@nCkiC5eCbCaCbCcC@fCf`C]C]C@_C^C=[C@3[CE]C]C]C`C@bC@J`CaCbC;eC@\gCgC@aCWbC@xdCbCbC}cCbC_C`C@J`C_CcC@!fC5eC;cCaC=bC@xbCYbCibCB_C=[C@WCEUCRCPC#OC{OCRC@WC@JZCZCGZC=_C_C@UCGSC{WC)XC@JUCUCuWCWCRCNCBQC@TCTC0UCn[CgC+dCc^C [CXC}XC^YCsC=vCvC@3rCfpCfoC@oClChC@dC@bCaCaCEdCdC@!`C^C@^C`C@]C[C\C@^C^C@`C@bCaC_CY`CiaCbCLdCdC@\aCbC cCaCibC@cCbC_C_CE`CaCdC@seCdCLbC)`C@`CuaC+bCLcC@!aCp]CYCfVC@SC@!SCPCPCRC;VCWCYCZC@_CbCYCkSCVCRYCUCUCpWCWWC@TCNCBOCSCYTCWTCXC@bC&fC@J`C;]CZCYCBXCsCvCsC pC}nC@8oC@8nClC@gCdC@aCR`C`CcCibC_Ck_C=`C`C]C\C^C`C_CcCbCTaCT_C;`C`C{aC@ cCBcC)aC@bCaC_CubCcCcC^Cf^C@O`C{bC@seC@\dCdC@3aCc^C^C@_C@8bCcCbC5_C[C+XCLUCUCSCRCpSCuTC@aUCVCfYC@aCeC@3_CcVCVCZCVCWUCWC WC@UC&QC@NCQCLTC@xSCVCB]C@eCYbC@^C^\CYC^YC@tCuC@JpCnCnCnC@mCjCfC@3cC`C`C`CbCaC@`C_CTaC_C@J]C]C`CaCbCdCbC@3`C^C`C{aCaCbCbCYaC@ObCi`Cp_C@ObCucC@cC]C]C`CcC@OeC#cCbC_C@\C]C}^C`C@cCbC@`CY]CYCWCXC@OWCSC@OSCRCRCSC@ XC0`CeCaCZC@XC[CXC@xTCVCBVCTVCSCOC#PCSCRCTCYCbC@cCT_C@3^CT[CYCRuCkrC@ nCmC@8nC@ nC mC@iCdC@\aC@_CR_Cc`CaCaCT`C@`CaC=_C]C@\_C@bC@ cC@sdC^dC}aC`C@`CbCbC@aC^bC@bC`CGaC@!`C_C@aCcCcC[C@]C`CdCeCuaCGaC@ `C@O]Cc^C]C=_CbCRbCaC@]C@ZCYC@ZCZCfUCSCRQCPC@RC@VC+_CdC@8aC;]C@ZCn]C5\CTCTC#VC@UCUCPCPC#SCSCSCWCW^CcC@`Ck^C@\CpZCsCnCmC@\mClC@lCkCfCTbC_CG_C@J_C`C{aCLaC&_C`C.aC@^C^C`CcCcCdCbC@!aC@J`CaC@cCcCbCcCaCu`C`C_C@`C`C@xcC&bC[C_CibC{dCdC@\`C_C@`C_C+`C0]C\Cp_C_C_C]C[C[C[CY[CpVCRCOCOCQC@WC^CGdC^C\CZC\C@^C@3UCRC@sUCUC@UC@RCOCRCTCuSC&VCZC@8aC5aC^C@]C@ZC@apC=lClClClCclChCidC`C_C5_C@_C`CiaCT`Ci_C^aC`C@O_C`C;bCdCdCcC`C@`C#aC+cC@aeC@dCbCcC+aC)_C_C`C@!`C@!`CTcC@bC\CaC{dCeC@scC^C@8_CaC@bC@aC#\C@YC[Cc\C^C\C\C]C.\CZC@VCSCnNC{NC@RC0ZC_C@8dC@^C@3ZCXC;ZCR^C&XCRCLTC@TC&VCTC&QC5RCnUCLTCTCYC]C@OaC^Ck^C{\ClClClCjCkkCkCufC@aC_C@_C@x_C aC@!aCWaC_C_C@aC`C_C`CbCcC@3cC@8bC`C_C bC=eC@afCdCbCGbC@3`C_C_C@aC@`C^CkcCWbC_C@dC@fC;gC&bC@J\C^CcCccCaCZCVC)XCGYCpZCZC[C^C@\\CXC@VC@RC0OCLLCTCc]C@aC@dC^C@ WCVCVCZC@YC@RC&TC;UCVCVCfSC}QC@UC@OVCTCBWC@ZC@_C^C]C]CkkC@!lCjCjCjC+hC@xcC0`C@J_C`C`CnaCaC`CW^C@`C`C`C`CaCubCWbC@\aC@!aC@^C_CdCngCgCeCcCaC_C^C_CaC]C\C;cC@cC@aaC.eCihCnhC`CZC@^CbC@abCE_CkYC@UCkUC@!VC@ WCVCpYC]C[CWVCTC.RCPC@!KC+TCaCBeCeC@_CTCTC@!SCUCWCcTCSCBUC@8VCXCWC@JRCUCYXCUCcUCYC@[C{^C@]C]CGkCkCBiCiCiCdC@`C^C#`C@!`C@aCbC@`C^C@^CT`C;`CLaC@aCbC`C@aaC`C@`C@ ^C@aCneCphC@gCeC^bC`C@a_Cp^C&_C;_C[C@[CbC{dCbC@dChChC@\_CYC^C@`C@_C\C@WCTCTCTCTCTCBWCu[C@![C@UCSC@RCTQCKCnQC)dC@ iCchC@aCTC{RCQCQCTCBTC@8UCWC5WCpXCWYCTC5TC@XCnXCUCWCZCf]C ]C\CklCkjChCiC@JgCbC^C@^C@`C`C=cCbC_C]C_C=_C@!`CaC+cCbC_C@J`C@`CT_C^C@cC@gCkiChCdCaC`C@^C]C\C@\CXC[CbCdC@abC5cC@fC@OfC]C@8YC]C^^C@]C}[C^WCGUCBUCTCBSCRC.UCLYCLYCTCSC;TCESCLC&MCicC@OkCTjC@adC@VC{PCQCWPC@QCRCTC^XC@YCYYCYCXCTCEXCc[CWCVC@YCZCf\C@3\CkChC+hChC)dC@3`Cu^C_C0aCRbC{cC`C@^Cp^C_C^C@`C)cCcCaC^C_CaC}_C`CfC0iCjChCLdC@aC@`C@^C@[CYC@JYCVC[CbC dCaC;bCdCcC\C@YCT\C@8]C@]CL]CWYCVCVC#VCSCpSCTCVC@OXC@TC@TCUCUCNC=IC5]ClC#kC=gC[COCQCPC@aPCuQC&SCXC[C@8\CZC[CVC@3WC@\CR[CVC=XCkYCE[C;[C@iCgCgC+eCaC^C&_C`C@aaCcC@bC_C^C^C@a^C^C@!bCcC@3cC_C^C}`CaC`C@xcCThCiCnjChCcC@aC`C=^CBZCXCWCpWC0]C@bCcCbCaCbC}aC\CZC^\C}^CaCbC@O^CZC}YCWCEUCuTC@!UC@UCXC@UC@VC@XCXCQC@HCSCjCkChC@`C.QCGQCQC)QCQCRCWCn]C@\_C&]CL]CZC;WCW\CG^CuYCBWCYCLYC[CgCRgCfC0cC_C^C@_C@8aCGbCeC^aC_C^C^C#]CY_CcC@\cCbC_C@s_C@xaCLbC)aCpeC@iC@jCjC@8gC@8cC^bC`Cf^CYCWWCWC=YC^CBcCdCdCRcCncC@aC@^C@\CT^C+cCYgCiiC@fCcaC)^CZC{WCVCEVC@JVCRYCXCpXCZCZC@xTCTKC@sKC@dCjCYgC@\fC@\UCQCRC@aRC@ SCSCVC.]CaCcaC^^C_C5YC[C`C@8]CXCkXC;XC0YCgCfC@dC`C^C@_C`CaC@!dCcC_C@^C^CW^CB]C@`C@dC#cCaC^C`CbCbCEbC^gC+jC@8kC@iCEfCbCbCn`C^CZCWCYC@\C`C^dCeCfCTeCdCcCaC^C=aC@siC@ nCoC@mChC^cC]C)YCXC@aWCVC[C@ZC@YC ZCZCcWCMCcHCfZC@ kCeCgC@]C5RCSC@TC@aUCUC@VC&\CYaCeCaC@saC]CuZC@x_C^`C[CWC@XCWCfCeC@bC5_CR^C@s_CWaCWbC@dCRbC@_C@^C5_C@^C]CbCdCbCaC^_CaCcCbCYcC@!hC@iCjC@gCdCbCbC@`C_C@ZCYC\C@\`C)cC@fCihCiCfgCYgCfCdC0aC@dCmC+rCtCsC+oCgC_CXC@!WCUCUCZC\CLZC)YC.ZC YC@PC@ JCpQChC@dCeCdC@VC@UCVC@WCiXC=XC[CL`CueCfC@cCcC)\Cf^CbC^C@XC@3XCWCfCpcC@8`CW^C^C@8`C@saCYcCBdC@J`C^Ci_C^C@]C^CcC.dCbCLaC@_C)bCdCcCdChC@jCiCfCcCcCbCaC_C[C\C@a`CdCfCiCjCkCfiChChCfCcCgCknCsC@vCvC@rC&jCp_CVCSCQCRCXC0]C{[CWCWCRYC@SC@JMC{MCcCBgCRcCWhC]CGWCYC@\ZC[CZC\C_CcCiC+fCfC@OaCu]CbCaC[C&XCLXCeCbC@s_C#^CL_C`CaC&dCbC@_Cu^C5_C@^CE^C_CdCcCbCaC`C@bCdCcC{fC@JhCWjChCfCbC}bCTcCbC_C@^C`C@8dCgC@xjC@lCmC@mCjC@xjCjC@JhCfCiCmC=sC@\wC)xCsC@jC.^CTCOCGMCNCnUC[C@\CWC@VC@xXC@WCuPC;NC@\C+jC@!cCigC@xdCZC@[C@s]C_C_CG_CcaCBbCgC}jCiC@gC_C@x`CdCW_CXC)XCkcC@`C^C^^C@3_CTaCcbC@OcC`C^C_C@\_Cp_CB^C@3aC@eCccCbC_C`C+dCLdC@!eCgChC kChCfC@aC5cCcCcC@xaCaCdCLhCkC}mC oC@oC@mCkCkClCRjC@iCEkCkCpCiwCLxCsCiC\CRCpLC}IC@KC@3SC0ZC\CWC@VC@!XCXCTCkQCkYC;jCeCeCfhC_C\C_CnbCcC@bCcCcCeC@kC kCclC@eC_CcCEcC@ \CXCaC_C^C@J^C`C)aC@bCaC0_CE^C_C@\_C_C^C@bC@8eCcCaC@3_CfaCReCeCngC.hChCmC@jC.gC@`CcCeC@3eCcC^fC@iC+lCnC^pCqCpCnC@lClCnC@smCmCmC.jCmCEuC{wCrChC\CRCpLC@ICIC@QCYC]CWCVCGYCYCXC@TCXCEhC@hCeChC@cC^C#aCdC@sgCfC@fCeCdChC@3lC@nC&lC@!bCbCdCE_CYC@x`C _C@]Cu^C_C+aCRbC@`C]Cp^C_C_C@^C^CYcCdCRcC@\`C_CbCeC@3fCEhChC@3lCoC@lC@fC@aCeCfCgC=gCjCmCoC@!qCGrCrC0qCnCcmCnCoCpC@aqC pCjCkCqCtCGrCLiC@]C;TC@OOCLCKC RC@ YC@]CWC#VCZC}[C&ZCXC@YCeCRkCfCgCfC`C@xaCfC.jCjCuiC iCWfC@8fC@kC#nC qCgC@OaC@dCcC0\C@_C@_C@]C^C@_CaCaCu^C@]C@^CG_C@_C#^C_CBdCdCbC_C@_C@cC+eCfChChC@xoC5pClCufC&cCfChC)iC@kCoCpC@qC@rCsCTtC@pC@mCmCnCpCsCiuCrClCiCmCEpC@pC@jC&`CXCTC@ RCOCRCcXC[CEWCTCZC]C@x[Cu[C@[CbCkCgCYgC@gC@bC@bCgClCmClC0lChCfCiClC@qC@nCTcC@cC@!eCk_C@3`C^^C]C^C_C}aC}`Cu]C@\^C_C_C_C@3^C`C=dC#eCaCY_C=aCEdCfeCYfCgC@\kC@8rC@oCkCEfC0dCgCjC.lCnCqCrC@sCsCctC@tCYpC0mC0nC@oCrCRvCwC0vCoC@gCiC@JlCnCkCcC^C\CXCUCTC@!XC@YCVCfTCXC^C]Ck\C^C@bC&jCjCfCYfCdC@bChC@smC@oCGpCnCkCgCgCRjC@nC@JrChC@bC@JeCGbC_C]C]C^C`C@!aCc_C.]C=_C_C@_C^C^CaCdCeC@aaC@`C@3bCdCeC&fC@gCYnC@pC@3nCkC#gCeC.iC@mC@oC@ rCsC@\tCuCuCYuC@sC@pC@OnCRoCqCtCYxCyC@xCsChC eCgC)kC@jCBfC5dC@dC@`C\CXCWXC@WCSC@SCXC]C`C@a]CiaC@cChClCgCieC@dCcChCinCBqC;rCpC nCiC@hC#iC@jC.rCLnC0dC5dC@OdC@^C]C]C_Ck`C`C]C@]C_C;`C;`C^C_CaCLeC@dCaC{aCbCdCdC+fChCoC@nC5nC{lC@gCfCiC@oCrCEtCcuCvCvCwCvCtCqC@!pC@JrC@sC@svCyC@zCGzCvCiC@`CbCTfCEiC@fCfC@8kC@hCcC]CZC&WCRCSCYC^CaC`CcCgChC@kC^iCeCdC@OeChCWnCBrC@sCrC@3qC0lC@iCihChCmCnqCLhCbCdC]Cu]C]CW_C@aC_CY]CY^CT`C{`C_C_C_CaC@JfC@8dC@bC@bC@bCdC{dCfC@sjC0oC@nCoCnkC=gC@!hC5lC}sC@uCuCvCwCxCTxCwCvC@JtCrCsC0vCExCzCL{C^{C yClC\C@\[Ck`CffC;dC{dC@3mCYoC@hCaC^CYC@!SC@xTC@[C@`CcCcC@dC@jCiCjCpjCgC@eC@eCTiCnCrC;tC@sCrCBoC@jC@jChC@hCpC{lCcC@OeC]C]C]CY_C0`C@]C]Cn_Ck`C`C_C`C`C0cC^gCdCdCRbCfbCpdC{eChCmCnCpCnCLjCkgCjCoCwCwCwC@xCyC@8zCiyC@yCxCYvCtCuCwCyC{C{C@3|C zCpC.^CEVCZCbCbC`ChCqCnCfC@xcC@]CYVC@VC^CeCfCgCgClC mCnjCkChC@fCfCjCoCsCRtC+tC@ sCqCkCjC@OiCufC@xkC@nCufCGcCk]C\C^C@_C_C@8]C@s^C_C`C+`C`C`C`CeChCfCeCbCbCdC@gC@JkCoCoCqCkmChC@aiCmCuCuyC.yC;yCzCL{Cu{Cc{C@zC@8{CyCvCwCyCzC@|C@ }C|CuzC@3tC^cCVCXCW`CpbC]C@xaCmCWrCYkChC}cCLZCYC`CgCjCjCjC@JmCoCjCpkC@iChCgCWjCnCpsC&uCtCsCrC@mCjCjC@8gC@\gC.mCiCcC@!]C0]Ci^Ci_C^C]C=^C@`C@x`C@_C`C;`C@!aCgCiC;hCdC@8aC0cC@eCjC@JlCpCuqCqC@jCgCkCrCyC;{CuzC@{C@{C|C&}C|C|C@}C{C}yCyC@\zC{C}C@}C@}CzCuC=iC}\C@J\CEbCbC;]C[C@fCfqCfqC@amC@8hC_C\CaC@iCkC)mC}mCmC@OpC5lCkCjC&iChCjCnCrC@\uC5uCTsCrC=pCjCkCiCeC@hCjCeC\C\C@x^Cc_C]Ci]C@^Cc_C@O_C@_C@`C@_C.cC;iC@iChCcCaC)dChClCimCqCsC{oC^iC@hCoCxC|C.|CT|C@ }C}C@}C}C}C@3~CYC}C{C{C{C+|C}C@}C@}C@x{CEwC+mCucCdChCeC_C@YCaC@lCnsC@ rC@lCdC@^CbCihC@lC@mC@anC@nC@xoCnC#kClC@iCiCpjCfmCqCkuCEuC;sCqC@8qCElCYkCjCgCeC^iC=gCc\C@]C^C^C@\]C]C^C^C^C@x_CL`CR`CeC@jC{iCgC@3cCaC)fCRkClCnC=sCrC@mC5jClC@tC|C~C@}C|C~C~C@~C@x~C~C`C nC^C}C|CW|C@|C@s}Ci~Cc~C|C@wCBnC)hCkkCRpCYlC^eC[C}^CugC@xrCBvCqCigC`C@ bC fC#jCimCmCkmC@mCnC;lC&mCkC;jC#jCBmCpC@atC@auCsC&qCRqCmC@jCkCLiC@xeCfC@gC[C@\C_C@]C ]C]C^CG]C]C^Cf`C#bCTgCjCiC@fCbCcC{hClClC@pCtC@qCmCmCqCyCRC~C@~C~CC CC{C=C`CC eC@C@~C{C{C}CY~CT~C}}CLxCLmC=jC^pCuCsC@JlC@aC_C0dC nCwCvCGlCcCfaCcC@gClC@lCkCkCkCRmClC@mCkCjC5lCoCsCfuC@\sCWpCEpCcoCcjCpkCjCfCeCfC@3[C]C5^C\C\C]C@]C[C@]C_C`CcCBhC iC5hC@xfCbC@eC@OjC)lC@lCsCuCBqC@ pC@rCvC}C CCGC .C^CC C^CԀC'CCCcC~CzCpzCY|C@}Cp~C}CxClCkCYsC.xC@xC sCuhC@cCRcChC@vC@syCRqCeCbCbCeCjC;lCBjC@ iChClC@kC{mClCTkCkCnC^qCtCsCoCnCnClC@ jC@JkChCdC@eC[C^C@\]C\C\C@]C@ \C@[C@s]C_CubCGeCgC@fCgC5eC@ dC}gC@JjC}kCmCuCtC@rCqCuCY{C~C:C`&CgCC,CހCCـCcC`CC C5C|CwCwCzC|Cn}C}C@wCumCmC@auCyC){C@wCoCpiCdCdC@oCyCuCBjC@cC@aCbChC@akCiC@!gCffC@hClCfkC@mC@alC@!lCnCpCitC0tCoC@ mCcmClC+iCYkCjCfCdC\C]C@\C[C\C;]CZCi\C]C`CccC eCLeCeC@!hCdC@aeCgC&jCWkCTnCEwCtCusCqCxC}CC |CC@3C@3C`xC^C ECYCC`C C຀C@C@zC}tCtCxC{C{C@zC@\uC#nCoC@vCLzC)|CEzC@ tC@aoCgCccC&iCuCvC@nChC{bCaC@8fCjCEiCeCdCeCukCEjClC@mC@mCnnC@pCsCtCpCkCkClCiCiCjC@hCBeC@]C\C^\C@[C\C[C@ZC@\C^CaCcCcCbCeCBhC@dCfCkfCLiCiC@oCcxCBsCqCpC{C@\~CyC@ CՀCÁC C@CÁCC@ʁCˁC@C7CC~C@wCrCsC@!wCxC;yC@xC@JrCGnC@rC@yC{C@3}C@x|CxC@\tCWkC@cCdCTmCrCipClCcCGaCfcCRiCiC;eCcC@dChC}jCRkCnCnCoC.qCsC+uC}qC@kC@iC@8kCjCgCjCiC{fC]C\C[CW[C\CnZCT[C\C@`CbC}bCpaCEaCTgC@gCeC@dCueChChC@qCpwCqCnmCpC|C~C`/C`/CCC`FCwC'C`C CC \CCCi}C@vCqCrCvC@vCvCuuCoC@OnCuC}{C}C}C;~CzCkxCoC@dCbCLfCkC{nCnCfCaC@aC#gC@iCkfC5dCRcC@eCGjCjC@nC@\pCpC@3rC@ sC@uC0rCflChCTiC@jCgC@aiC@ jCgC=\C[C[C{[C@\CZC@3\C\C bC@JbC@xaC_CaChCgCdCcCeC@hCfCsC@ uCkoC@JjCrCf}CBCǁC}C@CC@C C#CCCCـC@OC}C{CuCqCWsC=uCuuCGuC@xrC@3mC@\nC@wC}C@~CWCnC@a}CB{C@sCcgC@bC#cCcdCiC@ oCYiCbC@`C@aeChCYhCeCdC^dChCjCnC@arCErCfsCsCkuC@xtCGmCfhCLgCiCLhCfCYjC@hCL[C[CZCB\CZCZC\C=^CEbCaC@_C]CcCiC&hCcCBcC@ gCphC@3gCtCcrCnCiCuC@\}CCC@CYCຂC łC˂CQCCC CC@3~C}CzC@8uC@sCsC@8tCEtCtC@pClC@pCyC@~CCCYC{CG}C@!wC}iC.cCcC`C;cCkC@kCdCk_C#bCfgChCgCgCeCTgCiCnCsC@tCtC@tCuC@vC@oCpiCfC@gCnhC@eChC#iCZC0[CZC+\CYC\C\C@3`CbCWaC@]CT]C5fCkCfCYcC@dChCGgChCsC.pC@nC^lCyCE}CCCC nC`C`CC \C C`C5C~C@a|C{C@ zCtCrC@ssCrCsCtCpC#nC uCi}C@C C@CC`/C~CxCkCdCdCcaC^CeCjC hCf`C+_CdC=gChCiiC@gC&gC@hClC@xtCTwCfvCvC@uCfwCrCjCfCYfCgCLfCeC@!iCZCZC{[C)[CZC\C@\CaC;bC_Cf[C_CciCkCidC;dCgCiCpfC@3iCpC qCqCqC{C#~CC`&CǁC@CCC@sC C@C C}C@J{C@yCyC^xCusCqC@qC@xqC+sC@ uCfrC@qC5yC@!C#C@*CCC@C@~CxCRmC@3eC@eCcCY^C.`CcgCkiCcC]CaCcCgCjC@jChCpiCiC@sC@\yCyC@awCuCwCiuCmC@gCeCfC@fCWdChC@YCYC[CGZC[CT\C@]CaC+bC ]CWZCaC@8lCgC@cCeChCiCLfCThCnC)uCuCuC|C`CBC@C@C`CCzC`C@jCCC|CxC@vCvCvCrCpCpCqCtCvC@ vC@vC}CC`CCiCC ΀C}CLvCmC0gCfC=eC`C#^CbC@gCdC^C_C._C@JdC@hC@kCkC@3jC@3iCnC@yC{CyCGvCvCwCoCiCnfC@eC@3fCdCYeCYCLZC0[C5ZC]C[C@_CbC@`CZC[CcfCkCdC@3dCRgCiChCWeC@OfC.oC+yC@wC@xC~C7CCC C CIC@CgC ΀CCpCzCuC@rCsC@suCnrCoCoCsC}wCzCzC#{C@C@ӂCÂCفCCWCCBCuC@lC@gCcgCBeCbC]C_C5dCpdC^C_C\C_CdCEiCGkCkCjC@sjC@vC}C@{C@wC+vCxCksCkCgCeCeC@eC}cCXC#[CLZC@![C@!\C@\\C@aCbC^C@ ZC^CjC@gCcCLeChCuiC@OhCdCdCTqCf|C@szCzCLC C݂CCC,CC`fCC@!CC}CxC@tCqC@rC@8wC@sCpCqC@wCu|CW~C#C .C@SCwC]C}C CqCC@xC.wC@lC@xhCgC@dC@`C]C_C)cC@xcC@^Cu_C}]C@s[C`CdCiC@8lCGmC=iC@xoC{C;~C@yC@8uCcwCGvCcnChC@fCLeC@eCbCYC[CYC@O\CT[C@^C@xbC`CZCYC@xbCiC5dCcC@eCiCgCgCcCcCusC~Ck{C@O}C`OCC}CCCˁC`C`C %C~CT~C@{CwCctC@sCpuCyCfwC@8tC@avC|C@C C@jC C .CCÃC`ςC`C C@CCTxCnCfhCngC@cCn^C ]C_C.cCcC]C^CR_CYC[C.`CdChC@mC@!lC@xiC@JvC@8~Cp|C@JvCtCwC{qCpjCgCReC@dCdCYCYC+ZCf\CB[C.`C@aC@]CYC@x[CfC@eC)bC.dC@afCgCfC=hC@3bCcCvC=C@|CC CǂC@3CCCbC %C>C@C}CE|C@yCGvCuC0vC@yC }C{CwCzC@ĆC@sCÂC CC C,CwCC:CC5C@yCqC@xiCgCnbC@[C[C_CdC@dC;_C+^Cf`C}ZCWCW[CR_C.dC@kCWoC@!jCmCzC}CpxCTsCGwCtCmCfhCEfCcCcC@YCYC;[C[C&]CaC`C)[C.YC_CkfC@cCbCcC@fCeCBgCgCLaC@ eCyCC@C`FCkCC`CWC`oC %CɀCCT~C{|C@OzCnwC5vCwCkxC+}C C~C@zC~CCCQC ClCƒCC`C NC CC ~C{~C@zCctC@JjC@fCdC@x[CZC_CeCgCEbC@^Cf`C@\C@VCVCRYCW^C{eC@\nC@nC@hCBsC|CzCktCtCiwCfpCiC@xgC@dC@cC@ZC@YCZC.[C^C.aC ^CZC0ZC dC@dCaCbCcCeCcCgC@ gCaCThC@a|C@CkCgCC C@3CC CހCwC@sC@}C@zCwCtC@vCwCByC~C`XCRC@{C .CCCCЃC`CCƒCɃCCC~C@}C}C+zC@avCukC5gCeC@\C[C`CfCkCeC=`C`C_C@xXCRCSC.YC^CiCpCjC@jCwC{CnvCfsCwCsCflCYhC0fCcCYC#ZC@\ZC\C@O`C_C[C@YC@]C@dCnbCbC0cC@cC@8cCcC@gC=fC}bCmC~CCC@CˁCCC .C CC`FCRC}|CxCuC@rCuCvCxC ~C@C~CE{C'CCpCCCCC:CWCC@aC#C#{C |C@!~CzC@wClCfCRgCaC)^CbCfhCmC@3jCcCWaC0aCE\C&SCLCRCWYC@aC&mCoCngC@nC+xCxCsCuuCvCpC}iCYgCcC;YC@\ZCT[C]C@_C@]CZCYCaC@cC}bCcCcCucC{`C@dC@gC@xfCReCYsCCZC C@sCCCC>C)CԀC`C@O~CizCwCprCLpCtCsC@awC@{C}C|C{C`/C@JCCCC`FCC0CC@C@JC@yC0|C~C;|CyCoC^gC@ hCfCaCfCjCnC@nC;gCcbC@ObC@^CVCJCJCRC@ZCfCcpCkCnfC@rCBwC&uCnsCwCsC@kC@hCeC@aYCZC@[C@^C_C\CTZC[C@bCbCdC@8dCcCuaC@_CeChCBgC@iCwC .CkCC`oCCC@ C:C EC`C.C@{CxCtC@oC@ oCpCpC@uCcyCWzCGzC{C@JC`C@SCCCGzC@xC@ yCL{CC`fCzCc}C %C+~C@{CsCiChCiCfC0jC@\nC&pC^rC{kCcC@bC.`C+[CLCFCKCTC@^C.kC5pC@eCRiCrCvCsC0vC@vC pC@hC@!gCYC[C\C#_C]C\CEZC@O^CbC@cCeCfdCbC^C`CfChChCmC@yCC@C`oC C}CzC@svCrClCkC0mCmCsCpwCwC#yC|CKCC4C CC@tC{sC{rC.sC@ {CC@~C@JCࣀCC@}C@vCLlChCkCLkCLoCrC@rCtCunCeCbC`C]C+TC@sFCFC@NCuXC@cCnCukC;cCkCRsCtC@stC=wCGtC.kC@gCnZC[C]C^CL]C@[C@a[C@`C@bCeCfC@cCRaC^C.bCEgChC@iC@qCzCCCCC@C@*CC C EC CiC{CYxCtC;oCYjC@iC@iCBkCpCvCuC#xC}C@CC=CC@aCtC@JsCLqCnC@!sC@*CCC̀C`&C|CwCnC#jCumC@oC5tC@OwC@8vCLwC@xqC@gCcCfaC{\CcYC@LCuECRHCQC]C0iC@oCEdCcC;lCfsCsCvCvC5pChC@a[C\C@]CT]C]C[C\C@\aCcCfC@eCBcC@O_C@^C@cCifC@gCmCtC}}C#CQCCyCZCCC+CC ~CyCwC@qClCWhC0gC@fC=jCoC@vCtC@\wCu~CCCຂC"CCxC@vC@tCpCnC+}C@C`xC`&C7C }CwC.pC;mCupCEtC@\xCL{C@yC zCtC@JjCdC.bC\CZCSCHC@xFCKCXCLcCmCjC_C@cCpoCrC@tC5wCGtCkC@s[C\C]C]C\C&\C]CaC@dCfC@!dCWbC@a^Ci`C.dC@eC}iC@arC.xCC CZCuC@C NCڀC`CCCR{CxCvCoCiCgC@dC^eC@iCpCvCsCwCCCC`؂CC`CY|C@OzCwCvCoC{CCC NCC}C@3xC@qCoC=sC@\xC@{C~C}CW|CwClCigCLdC@O^C@YC.XC@OCHCFC@RC_CfhCnCcC ]CfCpCrCkvCvCoC\C{]Cu]C@]C\C[CE_CRbC@eCeCLcC`C@^CaCcC@eCmC@swC{CyCހCCCICTCCCQC}CyCxCtClCgCEeC5cCeC@jCTrCvCktC@xCfC eCYCCC .C5~CY{CyC=yCtC={C C C^C`C~CRyCprC@qC.vC5{C}CKCC~C{CkpCjCfC`C)YCXC@JTCLCGC#KC[CdC@smC&iC^]C]CjCpC+tCwCtC@\C@3]C^C]C^C@\\C@8`CcCeCcC@bC_C)`CpaCbCgC#uC@8|CCPC@ACPCGC^C4C`CC~C|CyCpwCkrC&kCigCdCcC@xgClC#sCWvC@vC@xCCC CC`8CLCc}C|C@yCyC yC|C \CCtCPCcC@xzC{tCrCRwC}CcC@C@ӀC@jC5~CtC@mCiC@cC+\C&WC@VC@PCKCuGCLUCcC@iCmC=bC.YCaCumCqC}vC&wCG]C\Cc^C@^C]C=]CYaCdCcC@bCkbCu`C`CiaC@cC@nC{C@C@CC C@!CLC`XCCCgC&C}CW{CxCvCpCjC@gCeCgCRjCnCrC@uC)xC@zC7C̀C#CCހC~C0}Cu|C#zCyCzC@~CCCCC~CT{CvCfrCvCc}C@*C .CKC CpCxC@ qC@lCfC`C5WC@xUC{SC=OC@HCMC@`CfCRmCGgC[CYCfC@nC sC{wC.]CT]C@3_C@_C@]C^_CbCcCbCaCTbC0aC^`C&aCfCuCC`C@~C@}CC@C"C`XC`C C;C}C{C@ xC@\tCoCBlChChC@kCmC)oCrCwCzCE}C@C@C`πCC@jC+C~C@}C|C{C@{C@~C#C`πCЀC@~C{C.zCwCiqCftCT{CkCCUCC C@ |CsCoCEhC@aCZC{SC SCGQC@KCHC#YCGfCjC.jC`C@UC;]C@aiC@oCuC\C^^Cf`C_C]CaCcC@8bCaCcC5bCaCT`CbC@!lC }CC`CzC}CCC`/C`&CCCC}CzCvC@sCpCnCjCkCoC0pC@oC&rCyC@\}CEC@ClCC0CCCC@~C~C}C|CW~C@!|C~CpC{CwCvC@uCpC@qCxC@}CCC CiCG~C{wCqCjCbC_C5SC@PCYQCkNC@HC@aOCcChCkC@!eCXCUC@bCfkC@qC@\]C@_CaC@8_Cu`CcCkbC@`C@`C@cCbCu`C`CpeCfsC CC@~C@wC@s~CC@CC C C CuC@8}C+zCfuCtCntCqC@mCLpCrC@qC5qCsC@J|CCC C}C`CC@sCC`C`C`/CkC}C|C}wCLyC@{C^wCrC5qC rCoC@oC@uCfzC}C@3CC@aC}CyCsCmC@cCRaCWC@aNCOCOCJCICcZCgCkCgC@^CSCYCeCmC^C@aaCnbC@`CcCBcCpaC{_CGbCcCYbC_CGbC@jCyCQCyCczCvCCԀC`C:CCCCC+}CyCTvCkwC+wCtCqC@ssCuC@sC@!sC&wC~C C`FCC NC@*C~CˀC@C`&C5C>C@C@|C{CsCsCuCLrC^mC@lCcmCmCmCcrC@vCyC5{C}C}C|CzCuC5nC@eC.aC@s]CLNCKCOC@3MCuJC@OC@cCuiC0jC@bC&WC+SCn^ChC@`CbC=aC{cC@dC{bCk`CY`C dC@\dC}aCn`CeCnC0}C`xC@CwCnzCC`CCC CCCuC@|CByC@swCyCzCwCkuCuvCvCLvCvCzC@C CՁCWCICLC@a}CрC NCkC C`C@*CC`C .C#CC{|CzC{C@}CT|CzC@yCyC=zC{CG~CC`/C`C~C NC@C~C@J~C݀CcCwC#C C@}CiyCvCqCkCgC5eCnaC@`C@!aC@aCcCfCiC}lC}kCjCpC=sC0qC&pC5lC&gCdC@\cC@`COC@EC@JC#PCLCHCRXC}bCiC@!aCYC{QC TCncCbC@iCiiC^fCaCbC@dC@ eCiaCcCWhC^lCxC ΀CC@jC@jCQC`CCCGCiC~C@CC}C{C^|C~C}C0|CzCzCk}C=C \C@C@C ŁC`C C C"C@CC5C ܁CtC@C|CwCtC}pCjCeCbC@_C@^C@_C}_C;bC{cCfC@gChCdCBjC@JnCkC^kChCkeC@cCdCbCWC@FC@ECOCOC@3JC0NC\CkeCeC@ZC@3TCOC0cC@fC@ kCfjCufCRcC@!dC@eC@cCaC.gC+iCmC@O{C nC@C@*C@*CCހC .C@3C@jCuCCCcC@3~C|C@}CGC@!~C@ |C{C|CCC0C,C C`CЂC`CC`CCClCCCC@}CwCfqC@amCiC5dCaC@_Ci]C^C^Ck`CbCdCeC;fCLaCcC5iC}gC^eC@eC@bC#bCdCcC5^C@KCBC@IC@QC@MC@ HC;UC@!_CgC@]C^VCQC5cCpjC@lCkCeCdCdC@fCbCdCiC@iCpC C݁C`C`CCCqCCICCC`C nC`CC@OC}CCC)~C|C@ |C@8~C@*CCɁC \CC@3CCC`8C ܀C`CC]CCqCC5C@xC@oCpkChCcC5aC@`C]CE^Cn_C`CbC#eCeCeCaC`C@cC;dC@_C@`C_C@3_C@bC@3dC5`C=SCCCGCC;OCiQC@ICLCXC0cCcC@WC@SCeCnCnC kCfC@eCfCpfCbC@hCujCiCuCC@CՁC@CC@}C~C#C`C@ӁC@SCC@sC~C CC@sC@AC}C@|C@}CCClC7CWCUC`ςCICCCcCC eCBCCBC̀C@ C@8zCpCjC^hCGdCaC)bC@_C@8_C`C@8bCcCfC@fC@fCcC{`C@aCaC[C[C[C@[C_CcCn`CXCTGCu?CnHC@aRCNCGHCRC[C#gCn[C@!TCjCoCoC&kCfCfCiCdC5fClCjC5mCzC`CÁCCUC@ C#xC|CgCсCށC@sCC@CUC@aC@C@ӀC@aC@~C}C@~CрCuC˂CbCbC`CC@ CZCBC@xCCpC .CkC`πCCC@OzC}qCjCGjCgCcdC eCcC@JaCcCdCeChChC@shCeCbC`C`C@ ZCEVCGXCGXCG]C@O`C@_CZC@LC?CkACNCQC@OJCKCTCaCEbCTCnC@qCoC@kC@gC@hC@jCpdC0kCunCTlCrC~CC@C@jC@CkyC@pCxCuC CC C`ςC`fCGCC .C`8CiCCCTCC0CCǂCCgCCCǁCWCC@s~C`C,C@CC@C@C@C@zC@rCGlC@lCjCuhC5hCLhCeCpfC@gChCjCjC@iCBgCdC@\aC^CWYCWSCSCGTC@YC@8]C^CZCQC@AC=CFCQCNCHC@!OCXC@fCXC)qCrC^pCiCgCkC@xhCTgC@8pCoCLoC5xCC ΁CC,C@!C@oC^jCisC@C`C`oC łC C@CiCZCCCCC C |C@JCC@C@CCIC`ƁC@CCCCu~C}CC,CC`CwCTCLyCqC@mC@mCoC}mCmCWlC@iC@iC.jCEkC}lC{kCiChC@xeC@bC.^CXC@RCOCTQCTCZC@a[CYCiTCuEC+C CفC .CGCƒCCCuCC@CGCC .C`8C`&CǃC`C~C C CCтCC`CCCC C ŁC@CCiCC@~C@C@C~Cu|C^C`FC@SC7CC@xCC@sC C+}C@xC@rC#oClCujChC@eCcC;`Ci[CSCLCIC)OCOC.OCNCSCNC@CCCC@@C@7C#9C@BCEJC@lC&vCpwCzC@C@ӀCC0C@jC eCCC CCCCpC ŁC nCgC̃CуCCCC C@3C EC`/CbC:CCYC CC CCǂCC`ƂCׂCPCC CC`xClC@C;}C|CC@C@!C@\~C@C=CǁCԁCUCzC}CCbC=C@szCsC@OpClC)jChCeC@sdCbCn]CVCOC@8KC.QCLQC PCNCRCTC.HCCCCCf:C3C{C C`oC+CтCࣂCcCC eCCCC@AC`ƁCC nCC@SCǀC@a{CzC |C@aCC@xC`C#CÁC %CCC`xC C`ClC@x|C@tCqClCpjCfhCfC{dCbC@_CYCQC#MCQCTCPC@OPC@!QC@3WCOCECEC@C2C5C;@CuCyC#zC~CC@C~CkCC@CɂCClCCCԀC'C nC@C`FC@ʃCCృCC'C=C ECBC@AC CpC`&CCɂCC`CЂC`fC`fC`CC`8CC`xC CCC@C@{C.zCC@!CC`FCڀCC1C C C@C`oC NCC`C}C@vCqCmCcjCiC@JgC@cCcbC`C[C+UCOCPCXC+SCWQCPCUC^WCJC}FC@FC8C0C9CxC@3zC{C`XCࣀC~C@~C .C~CC C`C@3CCCCC>CpC@jCCԃCCWClClC`CGC C@jCWCLC`8C@CUCCCࣂCCCC@ CCLC CyĆCPCgClCǁCɁC C,CC@SC4C`C`CC@SCC̀CZCీC`CCԀCˀC`C݀CiC@!yC@qC{kC@\hC@xgCgCeCBaC_C.^C0\C@3ZC#UCVCYC@WC@OVCEUCOC@UC@YC+PC)NCHC5CzC@~CYCTC~C C`/C`CwC@JC`/C@Cn~CClC]CcĆCCC4CCC`OC'C1CC@SC ܂C CCCCpC@CຂC`ςC'CC@ӁC`CkCbC'C5C`CCCClCYC@CCClC`CCCBC@C@jCbCC C`CCyC@qC^kC@hC fC@xfC@eC)aC^C]CZCZC@UC@VC@3XCWCUCiWCQCOC@YCUCnOCNC}?C&|C}CLCCkC`C@CUCuC@ʁCzCC~C@C CĆC@jCCCGCwCC:CZC@C CూCCCтCiC`ƁC@CZC:C݁C C`&CC@C,C`&C@ĆC@C C#C@aCwC`CC`CBC ŀC`C~C@}CkCCKC#CCCC@zC@sClC@hCdC5eC&eC@O`C@!^C\C)ZCXCVC@ VCXCVCUC@!WCVCNC;TC@\YCfRCPCfIC=~C@C@CL~CC)CC`fCPC CCu~C@C C@jCqC EC‚CC C@C>CpC@C#C ŀCkCC+C@CPCUC CCC^CC`XC)C@C C CCCC@ C>CKCC1CC]CqC^C0C ClC@*CcCсC@C CC}CǀC@CWC)C@yCrC@JuCwCwCwC@wCpCoC@!tC@zCWCf}C@sxC@tCqC;nCiC+bCdC.cC_C0ZCSCLCLIC=JC@!OCEPCUCWC&UCVCXC@YC@ZC@QC@LCWCC@CC`C nCLCcC]CԀCzC %CC CނC`8C4C EC`C`oCCCCCC CCC@C=C຀CTCTCـCClCBCYC@!CC CcCC C`C C CbCC ~C|C|CvC@JnCnC@xqC@arCsCtC@pCRmCpC@vC}C}C@xC@sC#pCnmCpgCaCuaC^cC^C@[C@TCMC#ICGGCRNC@ PC{TCEXCTVC@3VC@YC@YC[C@JVC^NC@PCC C CkCC+CCC C ΁ClCÂCC`C>C C`xC`xC`xC`C@ʄCPC`CZC@*C@C@ ~C@\}CW~CfC}Cn~C %CClC@ACC@*CтC |C .CCˁCÁCC CـC@~C{C5yC@xC@xtCikChCjCulC@\oCpC@anClC&oCsCn{C}C@xC@sCoCkC@eC@_C}_C@bC]C@[CWCOC KC@8GC@KC@PC@SC@JWCWC@UC@YC=[C[CZCQCMCCCKCC C`CCCiC C`OC`ςC`8CzCɅC}C`&CyCౄCCكC+CсCC|C@yCxC0xC@zC&zCyC@|C~CuC CBCC@AC@ӂC^C`OC C@C}C@O|Cp}C`fC#CԂC@CCyCC@CCC@*C@C \C@8~C|CExC@sqClC@akCeC@hC@8mCnCRsCkxC{C~CC@CkC@aC C@CࣁCC@CC CC@ayCLrCmCkChC@gC@xfC@cCbCbC5aC\C aCiCisC@sCtCvCwCtCnCkgCaC@]C[C_C}ZC[C\CZCXCWC;UCGOC@SC@sUC@WCXCXC@sYC]C_C]C+[CC@CC`XC}C@wC+~C ΁ClCCcCC@C4CCCCCC~C|CzCuCoCBmCjC@cC@hC^nCpCtC+xCk{C}C@JCLC C׀C@C@SCC ŁC'CׁCC:C@3zCsCnC@xkCihCfC{eC{cCaCbC;_CXC]C@hC@sC@tCsC@sCtCsC#oCYfC5_C[C[C`CZC@JYC[CBZCYCYCYYCSCQCTC&VCXCXCYCW\CR`C]C^CÂC@C݂C`&CvCuCZCC@C`CׄCCCKC,CCCCC@O~C#|C@xyCuCqCuoCjCbCckCRpCrC@uCwC{C}C@~C@\C"C@CCQCC`C`CC C`xC=|C5wCqC@3kC@hCgCpfC@\dC`CaC]CVC[CEhCsC@uCsCoCcpCqC@nC@fC@\^C.ZC[C@`C]CXCZC@8[C#ZCEZCc[C&YC@RC0TCSCWC}XCYC@ZCY_Cn`Cp_C ECBCCyCpC@wCBCC@SC@CKCCC nC CbC@JCTC຀C@~C;|C@yCvCrC@aoCgCcC@3nCpC@3sC@tCxC&|CB}C ~C@~C@~ClC>CGCCCC@CࣁCC@}CyCsCLjC@iChCgCYeC`C`C@^CXC@ZCcfCqCsC@JqC#lC^lC#oC@nCRgC@^CZCZCL`Cc`C@YCYCc[CRZCYC@[C@[CnVC@RCRCBUCXCXC@3ZC]CbC@_C`C %C}C qCnC|C`CC1C`C#C`&C@ʃC^C C`C@CWC C~C|CyC@ wCprCmC5eCeCoCpCrC@tC)yC|C|C|Ci}C}C0CCCCC@CࣁCC \C}CzC@rC)jCjCiCiCfCYaC@8_C^C@[C@[CdC{nC@8pCEnCiCiCmC@mChC@3`C@3[CYCn^C{aCE[C@8YC[CT[C@ZCZC[CZC@SC+SC@!RCWC@3XCLYC[CWaC`CPCuCtCcjC@3pCCC C@C0C`fCWC C`8CC@CCPCˀC~C0}CxCuC.pCjC@scC.iCioC@pCrCuC@yC@{C|C@{C|C@}CC ܀C`XC>C ΀C ECCC@ ~CL|CxCpC@iCjC&jC0kC5hCdC_Cu^C@_C@^CcC&kC;lCjCgChCkC@amCjCbC@]CZC\C5`C5]C@ZC@\C\Ci\C@a[C@ZC@\\CVCRCQCfTCXCXCZC@^CcC~CyCkCgCuC`CuC@CC C0C nC C9C`CC`CށCcC@~CyCuC@xsCEpClClCpCtCvC@awCwC5yCyCuyC+zC@a|C@s~C`CC`C nCCC|CWwCtCtCpCkChC@\jClCmCkCgCRbC&^C_CTcCbC}eCfCeC@cCRiCmCcmC@oCiCbCdC@\Cp\C\C^C^C@bC`C`C@\C#[C@[C@UCQCTPC{TCWXCXC[Cp`CtC@hC@ dC@xpCQC ܃C`؄C CCC@C C"CC C CCCCC+}CvC@uCuuCsCpCpC@tCcyC@szC@ zCxCwC@wCwC@xC|C@aC NCCkC@C~C=}C@zCrCpCpC@lC@OjCnhC{iC@lC@lC@jCfCaC^CT_CbCaCdCfC{dC@bC@3gClCimCupCnC^fC=jCaC\C[C@_CaC@3eC0cCWaC`CZCZCXCSCPCQCTVCXCYC]ClCdC@JfCyC4CcC̄C CЃCكC@JCLCCC CtC~C C~C@yC@uC@OxCwCtCsC@8uCxC{C{C{C@xCuC@vCvC5xC@8}CC"CC@C;C~Cf|CLyCpCipC)oCkC@3jCgC@!hCjC@jC@hCdCfaCB`C.aCbCWbCdC5hCgC}cCpeCjCmC.pC;sCkCmC;jC^C@\C_CcC@fCfC@aC@aC[CYCkYCTC@PC}OCSC@3XC@XC[CfCnbCkCCCຄC ܃C@CɃCɂC C`CCCCC ΁CTC|CwC@OwC@OzCxCtCRuC@xC@{C}CY|CzCxC5uCivC@uCwC=}CCyC nC@C~C~C+}C@zC0rC)rC@nC@kCiC@fC@\fChCEhC+gC&cC@s`C@bC@bCEcC@scCeC@!jC@!lCfCdCiCmC@pCRuC@qC;qC@sCdCaC _CgC=hCjCcCnaC@J^CnXC@8YCWCQCNCQC@VC@xYCZCcCcC@uCCCTC CCCC ܁CC`ƂC %C@ CCZC C}CYzC@!wC#zC{CwCsCvC@zC}C@O|C{{CByCvCvCGwC+vCYxC@\}CCC}CC@~Cf~C@}C}|CuC@sCnCpkCgCdCdC@3gCpfCfC@bCaCcCdCfdCeChCkCpClCgCjCnCTqCvCvC@xuCyC@mC=gC`CiCkC@JmCfCn_C_C)YC@!XCYCSC@NC@NCSCXCYCaC@8iCiCރC}CtC"C‚CCC`CkC@!CkC`&CC`ςC@*C{CxCTxCB{CiyC}tC@tC.zC}|C@!}CzCcyCwCxCyCzCGwCxC}C@CC`C@aC~C@~C~C@\}CuCrC@mCjCeCcCcC.eC@fC@3fCcCbCieCfCeCfCkClCLrCWqCkC0mCpCWsC@vC@3yC@yC|CvCEnCfC&jCoCoCBiC@a_C@a^CZCVC@XCWC@OPCMC@PCVCcYCbC+sCzC]CC`CyCC`C@!CCC@jC C̃C:C~CiyC.wC@xyCT{C.wCtC@wCc|C|C |C@8zCxCwC@zCp|C{C)yC@zC}CCCC@Cn~CYC@~C|CsCcmC@!mCiCcC)cC dCkdCdCeCeC@xdCgC@gC@ gC@8gClC@mC@qCsCoCLpCsC@xuC@3wCyCR|C=~Cp|CuC@oC@kCtCrCmCaC@\C@8\C@VCWCYCSCNCNCiSC@XC@gC}CCC C^C CCC CwC`؃CcC@ӃCqCWC{CwC@xwCzC@yC}uC}vC|C|CG{C{CxCwC+yC&|C@}CE}C{C@!|C}C)C}CGC Cu~C~CY~C{CpC=iC@\kChCcCdCdC@cCdCcfC@hC^hCjCLjC@iChClC@mCWqCRtCrCcrCkuC&wCwC@yC|CCECzCvCoCnvCuC@\qCWeCY\C0\CBXCVC#ZC@WCPC{MCPCVCpCC@C0CC CCCC`C`C຃C`FC@C@*C`C@yCvC{wC+{CkxCRvC{C}C#zC@OzC@yCyCyC{C@8~C@~C}C|C}C}CC@CTCC@O~C~C@!}C{CpChC@8jCchC@fCfCeCcCGeCgCLmC)lCmCnCBmC kC@8lC@amC@ pC@tCtC@JtCvCwCwCfyC^|C CWCE}C@{CuCwC@xyCuCjCk^C^[CBYCVCcXCW[CSCNCNC@ TC;|C C`CTCC`؀C C@ C^C NC`CGCQCC@C+C;xC+vC@xC+{CExC@zC=~Cp|CxC;zC@yCEzCzC}C@!C@~Cp~C~C@ ~C@~CGCGC`CWC}CE}C#}CzCsC&kCjC@ajC@iCjCfgCcCpfCjC0pCpCpC@rC@xpClCkClC@nCsCtC@JuCwCxCwCxC@x{CpCCTC~C@O{CyC@{CwCoC cC\CZC)XCWC[CXCPCMCQCiC̃CCC`xCgC`/CZCCC@ʃC .CCృCCk|C5wC@8vCyC#{C@yC@ }C~C{CxC@\zCzC@{C|Ck~CCC~C~C~C~C~Cn}CC~C#}C|C@\|CzCvCoCfmC@nCpnCmCjC0eC@ahC@lCrCtC@sC@auC;sCfnClCpmC@snC=sCtCvC wCxC@wC=wC@yC~CC9C@C@~CY|CR}CzCtChC&_C#[C@ XC@XC[C[CiTC@OCNCTC C݁C@!C`CC C7CCC@3C Ck}C@vCBoCnCfC@O`CfC@!bCWoC@JvC@ {CCC}{C){CC@CuC@wCvCiwCyCzCvC@\xCyCvC#vCyCEzC@wC{CC@|Cu{C@a{CTzCWyCxCuwCGvC@vCwCxC{CY|C.zCn{C|C{CxCyC}Cf~C@}C}C ~CC@8CYCC@3CC~C~C}C}C@ ~Ci}C@|C|C}C~C@{C@ sC@rC@uCkxC@{C@aC0C ΀C ΀C@CCUC`FC`؁C@3C@ CUC#{CsC@oCTkCeC]C@sbC@mCsCyC~CL|CxC{CC{{CtC@xCpvC@xC@\zCyC@wCWyCwCuCuCyCyC@wC{C~C^|C@!{C{CzCkyCkwC wC^uCuCYwCkxC@ {C|CyC{C@{CzC@wCxC|C~C ~C@x~C~C~C@aCCCC@CC~C@~C~C~C=}C}Cn|C@8}CG~C }CEtCqC@xsC0wCyC~CZC`؀CC5C)CkC`&CCCC@C~CfxCWqCoC@hCXCEcCkC@qCxC{CpxC#wC@}CC)tCfvCwC0wCyC@zCyC@xCEyCuC@tCvC@{C@yCwCn|C@~Cc|C#{Cc{CyC@wC.wCRvC@auCuCwCnxCyCzC@syC{C{CyCRwC@\xC^|C=~C{~CR~C@CCCCC@C:CC~CC@\~C@!~C+}C|C@|C{C@O}C}CfwC{rCrCuCxC|C'CC`CCC@C]CZCCuC`8CCC@O|C@tCqC@lCXC@aC@!hC@pC@\vCBvCrCpwC@ C@{CqC@\wCuCwC@3yCzC@yCyC0wC@tCuCyC@8{CGxCGxC{C@|C{C@{Cp{CRyCvCvC@svCuCvCwC@yCuyCzCyC{C{CkxC@vC)xC|C@~C~CC.C@C@CQCCICUCC^C@~C~C.~C@|C.|C{C{{C@{C~C@zC)uCsC@\uCwCzCCˀC~CЁCC C`CC`CCɂC@aC~CyCrC@pC#XCT^CeCnCBsCupC@oC&xC4CcsCsC@3wC@tC@xCyC.zCzCxC@uC@3uCuC@a{CzC@3xC@sxCYzC{C^{C{CG{CWxC.wCvCvCuCvC@wC@yC yCyCyC{C@zC.xCwCxC{C@3C@\C@ C.C@CCC@CCCCuC#C~C~C|CY|C{C{C#{C@J}C@|C^xC+uCuCixCpyC@O~CCkCCYC'CBC@CC@C@CCࣀC|CuCrCWC[C@adC=lC@mCkCioCzC{C5oC@vCTtCRuCxCzCzC.yCwC@OuC@uC}wC5|CyCLwCLxCyCzCL{C|C^{CwCpwCTwC^wCvC+wCTxC=yC@OyCyCkzC{C{CyC@wCyC{CC@C@~CpCC NC CԀC@C@CCL}C{CzC@O{C0|C|C~C@}C}C{C{CR{Cf|C@ACC`FCBC eC~C)C`OCPC ܁C7CCC@CGzC@QC@8XC@\C@x\C\C^eCyCTuCLpC^wCrC)vCyC@zC@zCwCuCcvCuwC@uCzCyCvC{wCwCxC@xCzC#{CRzCpxCpxCyCcwC5uCnwCxCxCxC{yC{CT}CC@~C}C@!}C@J|C@OCC}CR}C}C eC`CC`XClC`CcC}C+CGCW}C{C@zCzC=|C@O}C@8~C@~Ci~C@~C@x|C|C}C1C %CBC CuCC NC@JC@C NC`CCtCC}CQCiVC0XC@WCZCniC{CppCLtCBvC@rCxC@{CpzCyC#vC@uCvCBwCuC{C;yCEwC@wCxCpxCxC@yC@zCzCTxC@yCyCvC.uCwC@ayC@yCxC@yCyC{C .CCkC~C|C@C~CL}C@|C|C@!C@C຀CC1CCǁCC`oC=Cf|CzC0zCzC@ |CE}C~C@~C~C@~CR~C}C~C@aCiCQC`C CuCIC`/CCCC@jC C@CC@PC@aSC@\SC@SCZCqC@8xCpCvCtCYuC{yCG{CkzCwCuCwCwCkvCvC|C yCwCwCkxCBxC=xC@yCYzCyC;xCzCzCYvCuCxCzC{CyCyC&yC@zC7C`C`fCC }Cn~C}C@{C|C|CCCCC ܀C ŁC`ρCCC@8C@{CzCnyC@8zC{C|CT~C)C~CC~C~CC݀C CCbC`XC@sCC"C .C`ƂCUCC łC`8C@COC@PCPCQC5`CxC@ssCusCfwCuCLxCzC@zCyC@8uC@vCRwC@8xCvCGyC.~CyCwCWwCxCyCfxC@3yCzCyC@zC)|C@{CvC@wCyC){C{CzCWyCxC5{CCCyC@AC~C0}C|C {C{Cu}CCCCCCࣁCCCހC@~C@{CBzCyCcyCzC|C}C~CiCCCfC CC`CCC C`fCYC+C7CCC %CCCC@MCMCMCWSCkCzCWrC;uCwCwCyCWzCzCvCYuC@wCwCYxC vC@\|C@~CxCwCLwCpyCYzC@\xCxCyC;yCzCG}C{CwCxC^zC@\|C0|C@JzC yCxC@{CcC@}C5CـC=~C|CT{CzC@O|C}CˀC C@sCC>CC@ӁCIC#C~C|C@zC@ayC0yCizC@{Cu}C~C@ C~CCCCtC@3CCCC@aC@CC'C@C CwC`؁C`C`8CKC@KC@OMC@ZC xC}wCrCuCvCwCxC@zC@yCRuC@!vCyC@OxCxCwC@~CG}C@ayCvCwCxC{zCwCwCyCpyCY{C}C{CxCyC{Cc}C{CWzC.yC}xC{C~C{CC>CC}C{C@8{C}C@~CcCC CـCC`ρC CcCTC~C@!|C@{CyCfyCyC@zC|C}C~C@~C@CC C eCcCCCC@C CbC9CPCCɂC5C"CwCJCJCOC@8hC|CLuC&sCuvC@wCnwCyCR{CExC@stCwCyC@yCxCyCQC&}CxC5vC{uCxCGyC@vCWwCyC@yC@{C~C|CyCzCk|C)~C{C@ zC@!yCyC=|C}CzC~C .C0CC@|C)|C@\~C`CCC@CC}CCC]CYCC|C|CzCYyCyCTzC{C|CL~C~CC@C@C@C}C`ςC"CCbC@C CC^IC0MC}fC=CzC@sC@JtCwCwC@xC@3{CyC@uC@wCf|CyCRyC#zCT~C`C{CwCsCsCwCvCuC;xC@szCzC@{C}C@}C.}C|CC`xC@}CzCGyCyC@{C}CzC@{C;~C@CGCCnC ECC CICC9C ŁC:C`/C`FCCfC@!}C}C|C}zCxC&zC@{CzC{|C}C}C@~CC@C`CC4CCC@CC %CCWC^C݂CC@C@ICUCvCC;wCrCtC@vCwCyCf{C@xCfvC5{C|C yCyCi{CCC{CvCsCEtCvCvC@wCyC@{C@8{C{{C@}C}~C^~C}CZCcC}C@J{C{yCyC{C~CzCzC@|CCC`8C̀CǁC NCԁC#CGC`C CtCIC`C`CC}C@|C|CEzC@xC@\yCzCE{CzC}C@}C}C@~C@OClC0C`XC \C@aCBCtCClC |C`XCC ܂C ECLC}eCTC@~CuC@srCuCvC@xCzCWzCwCLxC}C5{C@xC@syC|CCCczCuCsC@tCvC+wCwC@zC@O{CTzC+{C@}C=C@ C}CYCWC^C{CyC^yCY|C~C{C@3zC={C}CPC C@C`CZC"C@SCCCCCCkCgC@JC|C@{Cu{C@JzC@xCLxC@yC{C@xzC@|C@}C}C}C@~CڀC@CCC`C C@C@aC`8CGC eCuCCCTC5vC`XC&|CrCsC@!vC^wCzC@{CyC@ xCR{C}C@!yC@!xCzC}C~C|C@ayC#uCtCuCuC&wC@ xC {C@zC@zCzC0~C C@~C}~C]C C \CCBClCC`&ĈC`8CтC CiCcC@~C|C@J{C@szCyCyC@wCwCEzC@zC|C}C}C}C}CCCwC`CCTC'CTCC`OCLCQC`C‚C@acC@CC@!yC@rCtC@vCxC{CkzC@sxC@yCi}C{CwC)xCzC~C@~C{CxC}uCBuCEuC@tCvC@xC{CTzCyC{C@\C)C~CCCC`FCyCwC^yC|CCC}C;|CG}CCC@ӂCڂCC=C@ CCqC C@8C@C CC'CyC@ wCxC|C@CC}~Cc}C@3~CCCCCKC.~C}}CC@aCC>CՂCCTCf~C@a{CzCyCyC{CyCwCuCxCBzCR|C~C@s}CB~C~C C`fCCyC`XC@*CC`oCCPCCCCCCC@s}CErCtCwCxCzC}zCxCzC{|CzCwCvC@wC@O{C@|CRzC;zCwC@JvC@OuC@sCntC)vC.yC@zCLzC5{C~CC CTC@aCLC`CC@yCvC@xC)|C@C@CCC;C@jCBCຂCcC C CcC EC@SC@ |CRxCvCB|C~CC@ C@zC^yC@JxC@xC@xC)wCuCvCsC{qCqCsCuCYwCB{C}C@{C}xCEvCwCvC#vC@uC@wC=|C@3}C}CCCGCCCC9C&C{CB{C.|C&|C#|CE}C~C~C@C C@C@sC`&C \CtCÄCYC@CÂC@C~CyC@3wC=xCyC)}CCpC %C'C@CbCE~C}C~C{C %C`CCC@CCࣂC@ C˃C`oC %C`C0{C@vCTyC@!}C@C C}CyCyCxCxCwC@avCnvCuC@aqCoC@qCtCvCwC{C@!}CzC@8wCvCuwC@3vCuC@suCxC}C}CE~C`&CC C@C@CCC@C|C |C@|C@{C@\{C+|C@x}C@~C@CpCCgC:CຄC`C@C@!CyCuC C&}C@yCTwCxCzC}C1CWC@CBCC݁C@Cf}C&~CCCCÁC@ʂCzC CC łCуC@C`ƄC`OCxCvCzC}C&C@}C{C@syC@xCGxCLwCwC}vC^vCsCoC;pC@JrC)vC@!wC+xC=|Cn{CxCvCYvCvCtCtC@uCBzC@~C}C5CICCC C@*C@3CCC}C|C|CT{C=zC@a{C|C~C~C C`8C C C`xC`C`CgCC`CC|CyCpwCfxCzC@O~C׀CpC ŃCC]CC)C}C@|C@CC ŀCC`؂C@jCuCÂCC>C CC@SCuwCxC@3{C}CY~C|C5zCxCwCwCvCvCvCWuC@qCoCqC#sCvC)wCEyC@{C#zCxCwC@uC5uCuCuC@wCE|C0C@C&C CCCbCbC7CfC@*C~CT~C@|CzC@ yC{C@|Cu}C}C5C^C C`8CyCC CCC`C{C{C@!yC@xwCxCzC~C`C CɃC@C@!CC@CG~C@|CE~C`CCCтC`xC EC1CC7CكCC@CwC@yC{C}C}C{CpyC@xCvCuCfvCvCuCsCqCqCrCtC;wC@!wCyCzC@yCfxCkwC@suC@\tCvCwCyC@s~C@C'C@\C]C9C`C`C C`FC@CYCgCC=}CzCxC@8zC|CW}Cf}C}CT~C@CC@C`CC`CqC@C@~C^{CxCWxC;xC.{C@8~CC C`oCCCC CfC.}C@}C`XCCCC}C@jC"CCCC`OCՄCxC@zC.|C|C@s|C@zC@xC+wCGuCuC+vCuC@tCsCrCisCsCEuC@xC@8xCc{CY{CyCyC@vCuC@suCxCzCR|CCCCcC@C`CCC C@ C;CCC@Cn}C{C^xCkyC{C{C@\|Cf|C@|C}C}~C}C~C@~C~C@~C;~C|C@{C5xC@xCxCzC~CpCUC@SCuCwCC nCC~C@|CCCށCC@C`CCC@ CC`FC@C@yC@azC|CY|C|CLyC&wCuCGtCuCuCEuC@sCsC{tC@JuC@3tCvCxCyC@J|C{CzC@8zCwCvCwC{C@|C@J~CC`C CCCC:C ECCCC CGC`/C~C|CyCyC5{C@zC@s{C|C@{C|C}CW}Cu|C|C@|C }C|C.|CzC@xCWyC;yC{C}C eCCIC,CbCCKC CC@~C~CрC C`CՃC̃C C˂CނCICCCyC{C@{C|CzC@wCuCtCtCuC@tC+tCYsC@ uCvCivCtC@xCyC@{C}C{C;|CzC@xCwCyC@{C}C~C@CpC@ʁC CiCC@CtC C@8CUCC@CCC.~CLzCLyCzC@yCBzC@!{CzCzC|C#}C{C@ {C zCzC@!|CR{Cp{CiyCcyCzC{C@8}C@AC4CCpCృC@CzCCCBC~C̀C#C@ CC݃C@CЂC`C eC CICzCi{C@x{C{C@xC@!vC@tC=tCtCtC@tCsC@uCvC{wCvC@vCyC&{CY}C}C@|C@!}C{CzC@3yC+zC@ |C}C=C ܀C CCCCC@C@C CCɀCZCiC CC`؀C |C \C ܀CC>CwC ΁CTC`FCqCC݁C@C0CCC EC |C C`8CC`CTCCCuCsCtC wC{vCuCsCrC&uCyCuCoC@pC5tCkvC@8xCyCxC.yC;zC@{C@{Cc|C@~CC CC CC C1CɃC0C#C`8CLCCCwC7C'C@C@C`8C,C@SC`&CC`ςC nCCpC1CzCກCC`C C C NCPC`fC@C@C@3C`C`XC C`CC9C`C"C`/CC`&CC@C}C@C@!CCqC@C@ACCCgCCCCtC@tCvC@vC@ vCtCqC=rCvCwCrC@oCqCEtC@awCWyCxC&yC zC@zCR{C|C|C CCiCCC@C@CCCUCCCgCCCCC4C@CPCూC=CCCC CC |C@CC@C@C CpCC'CiCCC ŁCCCCC`C>C@JCLCCCC˂C7CC`CBC`؁CC>C`C`؂CC C`C7C`C:C)CisCuC@wC.vC@suCcrCfpC@rCvCWuC)pCpCrC)uCYxC}yC@xC@3zC@zCpzC{C|C}~C |C C@sCC`ςCtCCCCCC)C`fC`C ECCC CCYCC |C@*C@3C`C'C@C C@3C@SCC,CCCGCQC`ƁC~CԁCLCC C'C C C4C@CCC`CC+C CC@aCCCC@3C łCC`XCЃCC@aCCCCsCvCvC@uCrC@oCoC+sCuCrCppC@qCsCvCzC@xCxC{zCzC@!{CT|C}CBC@CހCwCځC1CCCC ΄C CÁCC@C@C`C`OC .C@ C@ACCqCC`XCބCфCCC݃CCԃCCCɀCiC@AC@JC@ʁC`XCÁCZCూCC+CC@C`xC`C`fC`C \CCڂCCЂCCYCQCwC@CC C@CCzCCICC@8uCwCuC@3tCqC@mCoC@!sCsC@8qCqC sCtCxCRzC@xCzCzC{C)|C}C~CYCCـCcCiCLCC@s~C`CC@C@C`8CwC`CC@ӃCC`CpCCClC`C˅CC@C ŃCuC ńC`CZC CC'C@JCiC`CCtC@C@C>CC@*C`CCC7C@!CCuC@C@CCCtC@CCÂCՂCCZC@C@JC`CC=CvC vC@8tCrCnCmCppCsCrC@qCrCtCuC@xCyC@wC{zC@zC@{CB}C@~CCCC]C`OC@CCBuCrCCׄCCCຂC NC`؃C@AC5C4C C@C@C`xC CwCڅC@aC NCqC ΄C@CcCCYCC}|C|C}CC@C`C`oC`CCC CC@ C‚C`&C=CPC CC CC ΂ĈC`ςCC@C`C ܂C)CpCyC+C‚C+C wC@xtC@OrCoClC@amCpCRrC}rC@rC@ tC^uCGvC@syCvCyC@{C{Ck}Cf~CC ΀CC:C .C@C`؁CuCeCYhCRzCLCC`FCBC@CCCICC#C@sC@ C`σCCgC@CC@aC C`xCp~C@C`/C"C`fCC@ C EC̄C@C`CృCكCكCuC C C@CࣂC NC"CLsChC@SCQCYC@QC@RC^C@xlCugC_C@]CTCPC.PCpOC@sMCLCLCLCLCLCMCLC#MCLCLCMC@LCKCJCYJC;ICHCICHC@HCJC@!JC5KCfMC@PCkVCR[C^CcwC˄C ܃CC`8C)CCC݂C@CCpC:CࣆC}CC`C CyC .C@C@nC@snCnC@\nCqCGsC@wC.{C{CyCyC|C@~CBCTC:CLC@CICЁCCCC@~CEmC5]COC@!WCL^CQC@sPCWC_C@YC+UCSCPCOCNCNC;MC@LC}LCLCLCLC#MCMC@LCTMCLCMCLC0MCKCJCIC@ICHC@HC{HCHCHCHC=JCGKC@JNC@OQC)TCgCCyC`C@ CCCcCICՄCCنC`φC`C1CC .C`C@CqC@AC@xnC@\oC@oCoCqCtC^zC@{C{CzC{CB}C~CGC CC`oC CLC'ĈC`oCCtCeC@JTC@aOC_CcC5RCOC@3SCuUCQCPCWPCPCOCBPC@NC@MC+MCMC@JMCLCGMCEMC.MCMCMC{MC@MCMC@MCLCKC0JCICHCICGHC@xHCHCHCHCuICJCKC@sMCXC@}CDŽC`CC C@JC@ӀC`CCYC@C@ӆC CkC@3CCC`XC̄CpCnCpCoCpCsCwC|C@{CzC@{C|C}CCcCbC@C@C`&C ΁C`C#CуCzCEjCEZCOC@QC@gC@fCQCfNCOCPC=OC@NC@JOCfOC@!PCPCNC@8NCMC@sMC;MC=MC@MC@3MC@MC.MCMCMC@3NCWNCMCMC@8LCKC#JC=ICkIC@HC@xHC+HC@HCHC@HCICpJCJC@OCpCwC1CBC CCCǁCࣂC@C̆C@!CTC CkCCɆCCKCCoC pCqCrCtCzC^|C;{CzC|C}C~CC0CCCCyC"C݂ClC~C@JuC_C@3SC@xNCTTC@!pC@!hCQCNCGNCNC@aNC#NC@JNC@NC=PCOCNCBNC@MCiMCYMCMCWMCMC@xMC@aMC@ NCNC@NC@NCNCENCLC@KCYJCJCLIC&ICYHC^HC{HC@8HCHCIC@!JCICRKC}bC@C CCCC C`C@*C@ʊC`fC@C@ӊCyC@!XC@SCpSC@RC@RC^RCRC&RCQCQC+QCPC@OPCOCOCnOCNCkNCNC@MCMCLC@LC@8LCKCKCpKC KCfKCKCKCKC@LC@MC5TCYcCnC@C`OC C@C`CCqC NCC C,CdC@JPCKC^KCLCKCKC&LC=LC)LC@KCLCLCLMC@MC}NCcRC@JmCC`CCC C ΉC`C#CCC>CgCC"CCtCCC=CCcCౌC@C@!tC;WCTCGSCSCSC@RCRCRCRC@!RCQCEQCPCcPCOCPCNCNCNCMCMCLCLCLC@OLC{LCKC@KC}KC@KC@KCKC@LC@LC@OOC.ZC@OgCvC C9CC@!CՀCCCIC C CbCqC_CfMCJCYKCKCKC@KC@KCKCLLCuLCLC@xMC@MCMC+NC=QCdC ܂C@ʈC@ӉCC C~CCC^CCCCˆCC CC C=C`C`8CC5CyC`/CeC=VC@TCSCiSCSCfSC@RC@RCRC@\RC@3RC@QCQCQCPC@PCRPC@OCOC@NCNC@!NCMC+MC.MCLC&LCfLC@KCELCLC=LC@KCKCkLC@3NC@ XCeCuC@|C CC`CC@3CCqC;QCGKC@3KCEKCKC@KC@aLCKCKC@LCuLCfMC;MC@MCMC@ OCVCBsC`xCuC@*CCClCYC CClCCేC`C@SC C@CwCuCC`FCC`CC&}C_C{VC}TCSC#TCSC=SC@RCRCRCRCpRC@RCRCQCQCPC@PCWPC@OCOCNC@sNCMC+MCBMCMCLCRLCpLCLCLCfLCKCKC#LCLCPC@_CWlCyCT{CYC`C`C@JCCu]C@KCJCJC@JKCKCKC@KCLC+LCLCLCMCMCNCMC QCbCYC |CljC`C`FC݊CtCCވCC@jCWCC`C`C@CC@sCC CC eC‹C@C@pCYCGUCTCTCSC@xSC^SCRCRCRCRCRCYRCGRC@RC@QC+QCkQC@PCTPCOCOCNCNC@MCMCfMC@LC@LC}LCLCuLCLC@LCLCELC@LCMCWCfCrCnvCCC CԀC0pCOCJCKC#KC^KCKCKCKCLCLCMC{MCNC+NCMCOCVC@JqC@jC0CPC`CpC CuCwC@sC@CCwCهCCC@*C@3CtCCLjC nCzC CCdCVCUCTCTCTCYTCSC+SCSC5SC@!SC@RCRCRCRC@3RCRQCQCQCPCPCOCOCNCENC@xMCfMCiMCLCLC@LC@LCLCLCGLC@KCLCLC@PC)aC@lCWtCvC C^C`C\CfKC@JCJC@JCnKCKCKCKC;LC@LC;MCMCNCMCNCQCYbCCCC C C@SCCCC݉CICC nC %CCC@CCuCC@C`CGC CCC]C=UCUCUCTCTCWTCTC}SC@8SCSCRC SCRCfSCRCRCQCQCQC@JQC0QCpPCPC@OCNCENC@MC@MC}MC@3MCLCMCMC@LCLCLC&LCLCMCXChCcqCqCu~C`C#C@xOC@ KCJCKCKCKC@3LCKC@!LCLCBMCMCMCMCMC@xOC0XCrC7C@CC`CCC@ӊC@CC:C |CC@aC,C@3C`C CC4CC0C@C0CيCE|C0YC@ UC;UC@UCUCTC;TCLTCSCESCTSCiSCWSCSC@sSC@\SCRC+RCRCfQCQCQC@QC@PC=PCOCNC{NCMC@MCTMCiMC@8MC@JMC+MCLC@LC@\LCLC@LCQCcCmC@oC@xtCCC@3KCJCJC&KCfKCLCELCpLCLCLCiMCMCMC@3NCNC@JSCfC NC4C@C@CCC eC]C)CՊC݊CCщCCCC`/C@JCCCCCC CBCCCtCYCTC^UCGUCUCTUCUC@\TCTC}SCSCcSC@SCSCSCSC@SC@RC}RC@QC@QC@QCRCQCQCPCEOC@NC}NCNC@MC@OMC@sMCMC;MCMCLCnLCkLC@!MC@MC[CjC@3pC@lC}C .CJCJCJCnKCKC&LC&LCfLC MCEMCMC0NC@MCMCPC@\CpyC`oC@ӉC`؊C=CKC`8C`OC C`FCC@!CC ܈C@C@!CQCyC+C@*C CC5C^CC C=nC[CLTCTUCfUCLUCuUC#UC@!UCGTCSCSCTCSC@SCSCSC@SCRSCRC@ORCQCQCQC@QCQCQCPCOCNCNC)NCnMC@MC{MC@MCcMCuMC@LC^LC@LCMCSCWgCoCilCksCCJCJCJCKCKCLLC@LC0MCEMCWMCMC+NCMCNCTCnC>CWCC ŊC@C NC C1C@SCC`fC`8CCCڇC NCCC`fCzCC`C`xC CC`oC@xiC^C@TC@xUC@UCUCUCpUCUCTCRTC^TCSCSCRTC@TCSC@SC@SC;SC@RCQCQCQCBRCRC#QC&QC@OCNCNCNCMCMC@MC+MC@JMC@LCLCLCLCMC@NC{`CoC=pCLjC}CJC^KCKCKCWLCLC MCLC@xMCMCMCMC@ NCPCaC]CC EC CCC`ClC`XC CyCC^CKCైC@C@C@CQCCمC`C'CCC@C@|CfC_CfTCTC}UC&UCUC@UC@aUCTCTCTCTCTCTC@sTC@sTC{SCSCSC SC@QCQC@RC@!RC@RC#RCkQCPCOCOCNCkNC{NCMCMCMC&MCLCLCLC@\MCMCEWC@lCrC@jC@sCJCYKC@LC{LC@LCMCMCMCMCMCYMCMCOCVCftC`FCC׊C@CC C4C`CC@CCCQC5C#C@SC}CC`C`CׅC CCGCCvCpCdC]CSCTCcUCLUCUCVCGUC@UC@UCTC@ UCfTCTCETCnTCSCSCTSCSCRC@RCRCQCRC@\RC RCTQC PCOC@JOCNC@NCGNC=NC@MC@MCEMCBMCLC@OMCMCkPC@fC@sCpC@!jC@aKCKCfLCLC@MCNCMC@MCMC@MCMC@\NCRCdCЂCtC@CCUC@C %C]CC@ʋCˋCCUCC^CCCC CyCkCKCBC}C@3CCEjCdC_CZCkSCTCfUC;UC@UCUCVCUC{UC UCTCTCTC+UC@3TC^TC@TCSC^SCRCRC@RC@ RC^RCLRCQCQC@ QCRPCPC@aOCNC@NCNC@!NCMC@MCMC@LC=MC@OMCENC@O\C@sCLvCiCTKCLCLCMC@OC@OC NCMC}MC@OMCRMCOCXCxCC`C4C^CC CCYCCC@sCًC@C"CC@CC`CC̈C^C0C`C>CCGC@aCT{C;lC@^C@SCPC=QC@ SCTCTC@TC@aTC^TC@TCTC+TCSCSC;SCRSC@SCRCSC@aRC@RC@RCiSCSCiSCSC@SCSCSC=SCRCnSC@SC@OSC@xSC@RCSCRSC@RCRCRCSCSCSCkRCWQCcPC@OCOC@NC]CtCwC}eChC|C຃CICC@CKC`xCCC .C@aC]C@SCCÌC@AC`CC CC nCC CCC eC@CpC C@jĈC C;qC5^CTC@PC)PCfQC@ SCnTC@8UCTC@TC@sTCTCTCTTCSC@xSC@SC{SCkSC@RCSCESC@!SC@aSCSCSCTSC@xSCSCSC;SC{SCiSCYSCSC@xSC@OSC SCSCSCGSCRCSCBSC0TCSCSCQC@PC PCWOC)OCC5C@tCgCLxCCBCCLCTC@JCwCC`ƋC"C`CGC`CC ΌC`C ܋C@*C C`؊CwC@CC"C@ CgCC CC@C nC}C+eCTCEPC@OC@PCQC@xSC TCUCTC@TCTCTCcTCTCSCSCSCSCSC#SC@SCSCfSCSCESC@SCSCSCSC@SCWSCnSCSCuSCLSCBSCBSC=SCcSCSC@OSCRC SC@ SCSCnTCESCSCQCPCOCOC@3C`C@srCqC#C C`ƈC̊C+C)C^CkCC#C5C^CzCyC CCiC`CފCىC`CԋC4C@SCcC@jCCC`OCLCC@CiwCYC;PCNCNC@aPC@RCSC+TC@ UCTCTCTCTCTC&TC@SC@SCLSCSC5TCSCSCcTCSCSCSC#TC@JTCTCSC@ SC@sSC@SC;SCSCkSC5SC@JSC0SCSCSCYSCBSCRC)SCGSC@TC@aTCcSCQC@!QCPCROCC@}C@atCkC:CC@ӉC C:C`xC9CzCًC=CCCCCCьCcCC ŊC@sC`FC CڊC C#CCCC@!CCQC`fC@ pCSCNCOCNC@PCQCSC=TCuTCpTCTCTCTCiTCSC@SCSC@SCkTC@\TC@TC5TC@TCSCSCSCSCSCSCTCSC@3SC@sSC#SCRSC}SCSCpSCkSCSCSCSCSC@OSC;SCSCSC@TC@aSC@RCQCpPCOC'C}C{CC`/CLjC@ʊCCUCqC}C@CCBC@jC>C eCyCCˌCC C@CCCKCCCC`/C@ӄCCC łC`CC@jCPCNCNC@NCWPC;RCSC@sTCTCiTC;TC@TC@TCuTC@SCTTC#TC#TCTCTCTCTCTCTC@sTC&TCSCTCSC@SC@SCSCSCSC@SC@SCTSCSCSC@aSCSCLSC.TC.TCpSC@SCESCTCBTCSCERCpQC@PCсC@sC`/C@ӆC CC'CC]C C`CCыC+C>C C5C CԋCCKC5CZC9CkCCC CC C CCC`xC'CC EC9CC`CɂC:CL|CmCR[COC&NC@NCOC PCRCSCRCRCSCRCRCLSCSC@SCSC@SCSC@aSC@SC5TC@OTC@8TCTCTCTCTCUCTCnTCTCSCSC@SC@SCSC@xTC@SC.TCSC=TCTC{TCTCTC@8TC.TC@TCTC@TCuTCUC@UCTC`C@C0CcC"CCC CCԋCՋC+CkC C nC@aCC CC1CZC C̊CCC@C C C#CC eCC@!C@JpC^C@SC@NC.NC&OC@OCPC@!RCRCRCRC{RCRCLRC@RCESCiSC@RCSCSCSCRTCTTCBTCkTC0TC@\TC@TC{TCTCTCSC@JTC TC@TCSCSC@SCSC#TCSC@SCTCRTCTCTCkTCTC@aTCBTC@TCUCTCfUCUC}TCC׉CЊC`ϋC EC7C+ClC`8C C@!CbC NC@SCzCŒC@C@C@C CC,C C@aC0CCC@C CcC C@CvCbCUCEPCfNCWNC;OC@OCPCQCRC}RCQCRCQC@!RCRC.SC@SC@aSCSCSCSCSCSCTCTCTCSC@TC;TCWTCTC@TCTC@TCTCSCSCSCSCSCSCSC0TC@TCpTCTCTCTC@JTCSCSCkTCTCTCUC0UC׉CCC C7CiC@SCC>CC@3CC~C`OCC@CqC CC`C %CCC]C C`C@C`&C C`CຂCCCkCVC{QCOCNCNC@JOCOCPC@!QC RCRCRCQCfQC@QC.RCRCSCpSCSCSCSCRSCSC=TCRTCSCBTCTC@aTCTCTCTCTCTCTC@JTC@8TCSCTC;SC@SCSCTC@8TCTCTCTCTCTC)TCSC&TC@UC@TC@UC@UC CъCC7C`8C@CiC+C5CgC>CkCCpC CˌC@sCCC~C CC`C C@CCC4CCC@jC@{Cc_CPCfPC0OCNCcNC@OCOC^PC@QC@RCRQCQCPC@PC@ QCQCRC5SCSC{SCSC@SCSC@SC@8TCLTCSCTCTC@ TCuTC@sTCnTCTCTCTCTCGTC#TCSC@sSCSCSCRTC@SC@TCTCuTCTCTCTC5TC TC@TCTCUC@8VC@ C@C`fC@SC@jCGC`FCICgC`CCC@SC CCCຌCC`&CqCCCࣉCވC@C@CCyCYC`C`C@vCWC@NC@OC@ONCfNCNCNCOC@8PCPC;QCPCQCQCkPC@PC5QCRC@SCnSC}SCSCSC@SC}SCSCSCSCSC@SC^TC;TC@8TCTCTCTCTCTCTC@OTCSCSC@OSCSCSC TC}TCRTC@TC{TC@TC&TCSCSC@SCTCkTC;VCຊCC`/C1CGCzC`oC CZC NC`oC`C \CC@C`ƌCyCC`C EC C@sC nCiCCTC@C nCກCC CurCcUCNCkNCMCBNCkNCcOC@OCPCPCPC@PC{PC^PCPCPCQCRCRC5SCSC@SC@TC+SCSCTCTC.TCSCSCTCTC{TC@TC@TCTCEUC@TC@ UC}TCkTC@SCSCSCuSCSC@TCTC+TCTCTC@TCiTC+TCTCLTC0TCUCC:C`XC:CZC CC nC`C@CC`CCC`C CbClC`C@CC C@JC@!CgCCUCCpCWCkTCSC@\SCRC RC#QC@PC@QC&QC@OCOC@OCPC@PCPC@PCTPC=PC^PCPCPCPCBQCQCSCcSCTC@3TCnTCSC TCSCSC@SC@SCTC@xTC@ UCTCUCUC@\UC.UCfUCTCTCTC@\TCSCSCSC#SC@RCRC@aRC@RCRCSCRC@SCSC=SCRCRCRCRC@RCSC7CCC C@*CC C NCCɁCCuC C^C CClCUCETCSCSCiRCRCQC@OQC@xQC@PC0QCQCQCQC TCVCTCRCRCRCRC SCSC@OTCTC@SC@SCkSC@SC@aSC@SCSCSCSCTCTC5UCUCTCTCGTCpTC+UC@TC@TC+TC@TC@SCSCSCSCSCSCTC@TCTC=TCSCSC{SCSCRSCTCSCTCSC@RC@!RC@!RCRCQC&RCQCCqCC@CyC .C]C@CC NC CЂCCPCcC@C_C@TC@SC@SCRCWRC0RCQCQC{QCPCPC@3QCGQC)SC@!YCG\C@ VC{SC@SCRC;SC@ TCTC)TCSCSC}SCSC@SCSC@JSCSCnTCTCLTCTCuUCcUCTC@\TCTCUCTC@TC{TCETCSC@SCSCSCSCpSCSC@SC@SC@SCSCSCSCSC^SCTSC{SCSCSCBSC@SC@ORCQCQC@!RC@QC@QC5C C ΄CC@ʃCwCYCC C݂C@ʂC@CC CࣃCsCWCTCSC@3SCRC)RCQCuQC@8QCPC@ QC0QCQC@RC;WCcCdCVC@SC@ SC}RCSCTC+TC@8TCTC^SC@OSC+SC@xSCSC@\SCSCTC@TCTCTC@\UC@TC=TCkTCpTCRUCUCTCSCSCuSCSCSC}SCiSCWSCSCSC@SC@SCSCSCSC@SCnSC@SC@8SC@aSC^SCSC@JSC^RC@QCQCQC RC}QCщC ECCCC@CC@C`C`؂C`8CCƒC~C ܁C@dCUC@SCuSC@RC@sRCRCQC@8QCLQCPCPCEQC)RC@VCaC@qCgCVCTCRCRCSCTCBTCSCSC SCfSC@SC@xSC5SCTC=TCTCTCTCTC@TCTCTCWTCTCUC+UC5TCSCGSC@8SCSCSCSCSCSCESCpSC@aSCSCSCnSCSC;SCSCRC;SC@aSC@SCSCuSC@3SC@ RCQC@QCuQC RCIC:C`/C@ӃC@CC nCWC@CC`CC^C C@OyCZCUC@SC SCRC@QCQCQC QCPC}PCPCQCTC`C^pCyC@cC@UCSCSC@RC.TCSCTCSCYSC5SC@xSCiSC@aSC@JSCSCTCTC@TCTUC&UC@xTC;TC)TCBTC=UC@UCiUC@!TCSC@\SCuSCSCSC+SCiSCWSC0SC@\SC@!SCLSCSCkSCSC@xSCSCSCSC^SCSC#TC^SCSCRCRCQC@QCRCC`CWCCCC@ʁCC CcC C |CC@JC@\iCUCkTCYSC@RCGRC@QCiQCQCPCLPCPCPCQCuZC&mC.|C}uC\C@sTC+TCRC@RCSCSCTCSCSCYSCSC@SCRCSCSC@TC@TCWUCcUC@ UC5TC TCTC@TC@UC@aUCTC@SCSCSCSCSCSCSC;SCRCSCSCSCRC@SCfSC@aSC@sSC@SC@SCSC0SCSCSCSCiSCRC@ORCQCQCQC@ʅCKC@3C`8C+CC nC`ςClC@CC#CC@|C\CTCTC^SC{RCQCQCPCPC{PCTPCPC@PCRC@cC@xC{C@hC@3WCcTCSC5SC#SCuSCSCSCBSCYSC@SCSC@SCRCSCTC@TCuUC@TCTCUCSCTC@8UC;UC@VCUCTCSCSCSCSCSCSCSCWSCWSCESCRCRCRCBSC.SCSC&SCYSC@SCSCSC^SCSC@TCpSCpSCRC@RCQCfQC`C`C CtC`C`8CiC1C`CC0C=C@C@xmCVCSCpSCpSC;RC@QC@PC@PCPCcPC{PCPCQCTC@jC&yC@oC\CTC@!TCSCSC@3SC@SCTCnSC=SCBSC+TCLSCfSCSCSC@TC@TCUCnUCRUCTCLTC@TCUCuUC@UCcUCETC@xSC@SCSC@SCSCSC@SCSC}SCRCYSCSCRCRCRC&SC@SCWSCRC@SCSC@3SCSCSCSCYSC=SC@RCQC@!QCCtC@JCCC CՂCC@C)CC %CC;_CTCkTCWSC.SCfQC@8QCQCPCPC@sPC@PC0QCQCWCYjCRoC@aC@VC;TCSCSCkSCSCSC;TCiSC@8SC@SCSCpSC@aSCSCTCTCBUCUC+UC@UC@8TCpTC@UCcVC@VC5UCTCSC@!SC@8SCSCnSC}SC@SCSC@SCSC)SCTSCnSC@RCRCRC@ SCRCSC@ SC0SCkSCWSC@aSC+SC}SCSC@SCRCQC@QC`&C CǂC CC@CPC |C'C:CpCC@pCpWCLTC@SC@aSCfRCnQC@PCPCPC@PCPCPC@QCQCWC cCaC^XCuTC@SCfSC@SCSCuSC@TC0TC5SCBSCnSC@SCRCRC@SCTCTCUC@UCUCTCTC@TC@JUC0VC@UCTCETC@SCSCSCSC@aSCSCSCSCSCSCYSC@3SC@SC;SC@RCSCRCRC@SCSCcSCRC@SCRC@SC@RC@SCnSCRC@QCQC@ʄC@CCCǁCCC@C C=CiCCaCEUCSCESCRCQCPCPC@QC&QCPCQCQCRC@ORC.WCk[C@!YCTC+TC;SC@\SCTSCSCSC@TCSC)SC^SC@SCSC@\SC@sSCSC@xTCTCUCUC=UC@JUC@8TCTCUCcVCUC@OTCSCnSCSC5SCSCSCSCLSCSCSCSC;SCRCBSC@RC@SCRC@ SC@RCRCESC.SCSC+SC@SCSC&SC}SCcSCSCRCQC@CCUC`CCPC %C0C CCC C@ACPCcCWCUCTCTCTCTCSC;TC@SCSC@SCSCTC@TCTC@TCLTCGUCcTC@TCTC@TCTC@OVC@VCSCRCRCRCRC@SCTCTC@TCUCTUCUC@sUCkUC}UCUCYVCpVCVC)SCRCQCQCBQC@\QC@QC^QCRC@ RCQCRRCRCRRCQC{QCQC}QCQCQCQC@QC@RCYSC@TC@SCTC@TC@JTC@sTCTCTCTCTC@sTCSCSC@!TCWTC>C>CCCCxC@ZCVCTCTCTCTC@TCTCTC@JTC@SC@TCUC@8WCUC@\TC@sTCUC@TCcTC@sTCTCYTCRUCVCUCRCRCTRC@!SCSCETCTCTCUC@VC@UCVCVCUC@!VCVCVC@\VC@TCSCQCQC}QCQCQCQCQCQCQC@ RCcRCTRCRRC@!RC@QCfQCfQCQCQCQCBRC@aRC@RC}SC@SC+TC TC@ TC@SC0TC@TCGTCkUC@\TCSCfTC@SC@TC@JCɀC@CCC@8hC@OWCUCTCUCUCTC@sTC@TC@TCTC@sTC@sUCXCZC@UC@TCTC@TC@TC{TC@TCTC@\TCTUC@VCTCRCRCRCcSC@SC@TC@JTC@UC@UCUCVCWCVCVC;VCWC@WC@UCSCRC^QCQCQCRCRC@QC@QCRC@JRCQCQC@RC+RCQCQCiQCQCQCQCRC@3RCRCSCBSCSC@SC@SCSC{SC@!TC+TC@TC@UC@TCTCSC@SCSCCCC C@\}C=]CVC@aUCTTCUC@TCTCTC@TC.UCTCTUC@WC@`C@]CUCUCRUCUCTCTC@UCTC@TC@UC@sVC@SCRCRCRCSC.TCkTCTCuUCUCVCiWC@JYC^WCUC@\VCXCVC@TCTSCQCiQC@QCRC^RC@xRC@RC{RCRCRCRC5RCQC@RCRCRC@QC@xQC{QCRQC@ORC)RCRCSC@xSC#SCSC@SC^SC@\SCSC5TCTCTCTCTC@!TCSC@SC@CTC@C ńCYnC@\XC@ VCRUCkTC@UCTCETC0TC UC@UCUCVC@x_CjC@^CUCUC&VC@TCYUCUCUCTCWTCVC}UCRCRCRCRCSCTC@TCUC@xUCUCVC=XC@xYCLWC@8VC^VC@aXCYVCTC@RC@QCYQC^RCRC@RC@SC@SCRC&SC@SCRCQCRCQCLRC@3RCRC RC@RCQCiRCRCSC@RCRC=SCSC)SC@SC@8SCuSCSC@TCTCUCTC;TC@SCSCC}C %C@CYaC^WCUCTCTCTCTCSCTC@TC.UCpUC@ZCBmCsCc^CVC^VC}UCkUCRVCUCTUCWTCTCVCETCRC0SCRCSCSCTCWTCTC@VCiVCWC&XCXC@VC VCVCWCGUCnSC@QCpQCQCGRCSCSCTCTCTC@SCSC)SC@RC=RCcRCQC@RCRCRC@JRC@RCRC@8SCWSCSC@SC#SCESCRC@aSCSC@SCSCTCWTC+UCTC@8TCSC@SCCC`FC&vCfZCVC@UC@TCTC@TC{TCTCTC0UCTUCVC@!gC|CuC\C@VCVCUC@UCVC@OVCUCTTC@JUC@UCWTCRC@SCLSCSC{TC#UCTCTCVCWCYXC@aXC.WCcVC@3VCWCVCTC@sRC@QCQC@RCSCSC&TCTCWTC@TCSCTCSCRC@ORC@RCERCWRCRCnRC@RC@JRCRCRCSCSCcSCuSC+SC@!SC@!SCSCTC@OSCSCTTCUC=UCTC@TCSC€CCC+gCWCUCTCTC@TCTC@\TC@aTC@TCTCUC\CwC@AC&tC]CXCuWCUCfWCVCUC@TC5TCkUCkUCSCRC@aSCESC5TC@sTC@TC@aTC.UCGWC@XC@XCWXCVCUC@VC@VC}UCSC@RCnQCQC0RC@RC@SC0TC@TCUC@TC;TC=TCSC@SCSCSC@RC@RC@RCRCRCRCTSCSCSCSCSCSC#SCRCRCSC@TC@SCSC@TCLTCuUCTCTCSCກC@C}CR]CnVCVCTC@TCTC@TC@8TCSC@!UCVCkVC@hCՂCBCrCY_C@sYC)WC@\VCWC@VCTCTCTCUC@sUCSC@\SC@SCSCTC{TC}TCTCUC;WCTXC=YC@WC@UCUC@UCVC@TCRSCRC5QC;RC@RCRCSC@aTCTCTC)TC+TCETCTC@TCSC.SC)SC#SC;SCRC@SCSCSCSC@sTC5TC0TC@sSC@SC@!SC@\SCSCSC@ TCnSCTCTCTCTCYTC@JTCCC@ nC;YCWVC@UCuTCTC@TC^TC@JTCTCUCUCYC^xC`C`؃C@sC@bC@ZCWCVCWCfUCTCTC@TCUC@TCSCSCfSCTC;TC@xTCRTC@ UC+VC@WC@XC@8YCVCTC=UCUCVC@JTCWRC@QCQCRC@SCSCTC@TCUCTC@TC=TCkTCUCuTCTCSCSC5SC@8SCRC;SCSCSCTCUCTCTCSCfSC@3SC0SCSCSCTCSCSCTC@OUC5UCTCTC5C`ρC@aCWCUC@TC@TCuTC@sTCpTCGTCuTCTCUCWaCځCцC`OC@3vC@eC@\C#YCWCVCTCTC@TC@TCYUC@sTCSCSCSC)TC@TC^TCTCYUC@VCWXC@xXC@JYC)VC=TCWTCUCUCSC+RC@sQC=RCBSCSCSCTCUCnUC@3UC@aTCSC}TCTCTCLTCSC@SC@SCSCSCcSCSC@TCTC@UCfUCTCfTCSCSC.SCSCSCSC#TCSC@xTCTCUCTC@sTCCTvCE[CWC@UCUCTCTC{TC@TC@xTCTCUC.VC@xlC`C NC@CzChC^CZCWCUCTCTCTC@TCTC@TCSC@\SCSCSCRTC@OTC#UC@UC5XCYCXCWC^UCSCTC@8UCTCSC0RC@QCRCGSC&TC@sTCTC0UC@UC@UC}TCTCYTCTC@TCTCTC@SC@3TCTC@!TC@SC#TCTCUC&VCUC@UCTCSCSCSCSCSC@ TCTCiSCSCTC@TCTC@aTC5C@hCXCVCUCTCTCYTCETCTCWTCTC0UCYCwCuCхCృC+~ClC@aC[C WCUC&TC@ UCuTCpTCTCTCSCSC@\SCSC@\TCTCUC@8VCYCG\CWYC+WCTCSCcTC.UC@\TCRC@RCQC0SCSCnTC@TCTCUC@!VCUCTC@JTCcTC@TCTCTCTCSCSCTCTCTTCkTCUCUCVCEVCUCYUCkTCiSCSCSCSCSC@ TCTCSCTCTCTC@TC#~C_CXC@\VC@UC#UC}TCTCTC@TCRTCkTCUC^CuC nC@aCzCÀC@\pCcCZC@VCUC@sTC@TCTCkTCcUC#UCTC@SCSC@ TC.TCUC@JVCVC@3\C)]C@YCVCSCSC@TCfUCSC@RC@!RCLRC@SCTCTC@TC@3UCUC@UC{UCTCETC5TCuTC{TCTCiTCSCSCuTCpUCTCTCTCUCVCVCfVCUC@TCSCTC@SCTC#TCnTCSCSCTC&UC@TCTCpC\CWCUCUCTCETC@\TC0TCWTC0TC@TCUC@gC`CCcC#C@3CrCbCZCUC@OTCTC@TC@TCUCUCiUC@SC@!TC.TC@TCTCUC@VCWXC^CB]CYC@3VC&SCSCTCnUC@xSCRCcRC@RCSCLTCTC#UC;UCUCLVCUCBUCTC@OTCfTCTC@sTC@TCTCfTC@TCUC@UCTCBUC)VCWCVCVC@VC{UCTC TC@ TCTCTC^TC@3TC@SC@\TCTC@TCTC#fCGZC@VCUC0UC@\TCTC@sTCTCnTC@3TCTCXCEuC^C C`XCC`8C@oC5_CGZCUCSCSC@aUC@ UCYUC@OVC&VC#TC@TCTC@TCUCUC5WC&YCL_C@\CYCUCRCSCTC@TCSC@RC=RC}RC@SC;TCBUCcUC@UC@UCUCUC0UCUCTCTCTC@TCpTCTC@UC@UCGVCVCUCYUCVCVC.WCVCVCUCTC@OTC@8TC@aTCTCuTC5TCLTC@SCnTCUCTC@`C@XCpVCUC+UCTCTCTCnTCTTC.TC@UC}^CC@C@ʅC`C7C`FCiC#]C@XCTCLTC@xTCUCYUC5VCVCVC@3TCTCLUCUCUC5VCWCZC_C0\CXC@aUCRCSC@3UCGTCRC@RCQCRCSC@TCTC@UCUCYVCVC@VCUC+UCTCTC@UCiUCUC@TCUC@VCVC=WCVC#VCUCVC@WC@aWCVC@ VC@TCTC@3TC0TC@TCTCTC@TCSCSC{TCTC@O]C@WC@8VCUCTC@3TCTCUC@sTC@SCTC@sUC#lC`C,C…C'C@ CCdC\CuWCTC)TC@aUCUC@sUCRVCVCUC@TC@UCUC5UCWUC@OVCWC[C _C[C#XCTCERCSC#UC@TCRC@RC=RC#SCSC@ UCWUC@xUC@UC@JVC@VCVC=VCUC@JUCLUCTUCUCUC@ VCnVCVCWC@XCEWC@VCTVCWCWCWC@OWCuVCUCTC@aTC@TCBTC@TCUC@TC@ TCSCTC@TC@OZCVC&VCnUC@ UCTC5TC@aTC@TC@ TCTCZC@{CC4CCC eCW|CcC@[CVC)TC}TCVCUC@UCVC@JWCEUCTC@UC@VC@aUCEUC@VC@WC@ZCB^CZCWCTCpRCTCTCkSCRCRC}RC@OSCSC UCUC VC@VC@xVC5WCVC}VCWVCuUC@UCUC@VCVC0WCWCWC@XCuYCXCWC;WCnWCWCWCWC@VC0VC5UCTC@TCTC5UCUC@!UC@TC.TCTTC@TC@XCWVCVCpUC@!UCTC@TCcTC@aTC@JTC@TC@gCCC7C5C`CCyCRdC)[CUCTCTC@sVC=UC@UCVC}VC@TCfTC@sUCkUC@UCpUCTVC@WCZC@]C@JZCuVC@xSCGRC+TCTCYSC@3RCRCRC=SCSC@!UC@VCuVC@VC@ WC@WC@WCWCYVC@3VC@sVC@VC@OWC@VCWC@XC@XC@YCYC ZC@XC@sXCXCTXC@OXCWC@JWC@\VCUC@JUC5UCUCTC@!UCUCLUCTC=TC@sTCVC=VC@UCTC@TCTCnTCTCTC@TC@XCxCCCCCCCGzCeC [C0UCTC@sUCVC@UCUC@VC;VCTCTCUCUCfTCTC@OVC@WC@3ZC#\C@YCYVC@RCRCSCTCRCRC@SC@RC#SCSCUC@xVCVCWWCWCiXCXCXC@VCVC)WCYWCWCWC@8XCnYCZCZC@O[CZC@YCXCYC@3YC.YCXCWC&WCkVCUCUC@xUC@\UCYUC@UCUCTCfTCTC^VCUCVC5UC#UCTC@8TC&TC@OTC@TCdCZC@CC@C`ƇCCCu{C@eCZC UCUC@UC@!VC+UC@ VCVCTCSCTC@TC@aTCWTCTCBVCWCYCG[CYC@UCRC@!RC@JSCuSC@8RC@JRCRCRCSC@ TC@OUCVC@3WCWCWCTYCXCXC@WCWCpWC@WC@!XCXCXCZCZC[C\C[C [CZC[C@ ZCYCYCGXCXCWWCpVC@VCVC@UC@xUC{UC@UC5UCBTCuTC^VCEVCUC@JUC@TC@xTCTCfTCTCWWCuCwCCUC C5C`FC5C|CeCZCTC&UCUC=UCTC@UCBVCTCSCiTCTCLTCETCTCVCfWC@XCZC@\XCTCnRC RC SCRC@RC@QCpRC=SC}SCSCTC&WCXCXCXCYC@XCWYC@XCWC=XCEXC@sXC@YCcYC)[C[C@a\C@\C=\C\C [C[C[CZC.ZCTYCfXCXCWCpVCVC@!VC VCUCUC@UC@TC5TCVCUCkUC@TC@8TCTC@sTC@!TCcTCaCC C@C C@ʇCCuCC@|CgC.YCUC@TCuUCTCTC@UCnUC5TC TC@TCpUCTCiTC@TC=VC@WCYC{YCWCTCRCQCuRC@RC@!RCRCRC#SCTCSCUC@VC@XC@XC@YC&YC=YCYCXC@XCXCXCXCcYCZC5[C\C]Ck]C]C@\C@\C@\C]C@\C5[C@ ZCEYC@XC@WC;WC@VCVCVCUC@8VCUCGUCUC@VCUCuUCTCTCTCiTCTCUCqC CCC@ACC@SC@sC C C~ChCWCTC@UC@TCuTCTCkUCTCTCTCUCuVCLUC@TC@UCVCWC;XCXCVC@xTCRCQCWRC@\RC@RCRCRCYSCSCTCTC@VCXC@XC;ZCYC5YCYCuYCYCYCYC^YCYC[C{\CW^C0^C^C^^C]C]C@]CG^C^]C&\C@8[C5ZC@YCXCWCWC@8WC@VCkVC.VC+VCUCTCGVC@UC@TC@xTC@TCTC@TC)TCc]C@C>CCC CڇCهC@CC@sCceCVCTCTCTCTCTCTC@OTCcTCGUCWCWCTCTCUCVCWC@ XCWCUCSCRC RC&RC)RC@aRCRC)SC@SCSCTCTCiVCXCYCGZC@YC@OZCZCfZC@ZCZC@JZCYC@ZC[Ck]C_Cn`C0`C^`CT_CB_C#_C^C@^C]C\C)[C.ZCYC@3YCEXCWCWC@!WCVCVCRVC@UCkVCUCTCpTCTCTC0TCGUCkC@CpC`φCtCˆCZCCC@ӆCCaC}UC5TCLTC@xTCTC{TC@TC@SCUC#VCXCWCTCUCUC@VCVC@sWC@ WCTCSC{RCQCRCRCRCRCRCSCTCTC@TCUCWCpYCZCEZC@ ZC[C[CG[C\C&[CGZCEZC@[C^CBbCRcCbCbCaC^`C`C_C._CG^C]C\C@J[CZC=ZCXC#XCXCWC@WC@VC@JVCUCVCUCTCTCTCTCTCYCzCCCCCGC@3CCC=C@3|C@\CTC5TC@TC@3UCUC@TCSCSC@UC@VC.XC@OVC;UC}VC@8VCLVC@VC@VCUCYTC@SC@RC.RC+SC@SCSCRC@RCSCSC+TC@aTC@8VC@WCnYCZCZCZCu\C@O\C[C}\C@3\CZCZC[C@a`C@eC@JfC@\gC@fC@ eCbCaC@!aC_C_C@^C;]C[Cp[C@ZCYCYCXCXCWCuWC)WCVCUCTCnTCTCTCTC@TCdCzCC C`CClCuC`&C@C@C.vCYCTC^TC0UC@sUCUC@TCSCTC}UC@VC5WCUCUCVCUCUC@VCVCWUC@SCRC{RCWRCSCSCRCRC#SCSCSCSCTCLVC@WCYC#[C)[C+[C@\C]Ci\C]C]Ci[CZC@[CaCjCjC}kCkkCiCEfC@ dCbC`C}_C@^C ^C@O]C\C@[CZCYC@XCYCXC#XCWC.WC@3UC@TCTCTC@JTCUCcWCtC`CtC`OC %C \C ܆CCiC ΈCCioC{WCTCTCUCBVC@UC{TCSCTCTUC@VCVCnUC5VCVCBUCLVCUCUC@sTC@SCSC SC&SCTSCSCRC@OSCTCSCuSCSC@TCUC@WC)ZC@[C\C@\C]C]C\C^Ck]C[C[C\CaCBmCoCnCBqC@OpC@8kCgCudC@aC@O`C_C@^C ^CR]Cn\C[CZC@YCTYCYC{XC=WCWC@TCTCUC@TC@TCuUCc`C`oCC^CC`C@aCC`C`CڈC@ChCUCTC@TC5UCGVCUC.TC=TCTCEUC@VCUCUC@VCLUC@TCUC}VCUCTC=SC@SC@SCTSCESCSCRCiSC@!TC@3TC@SC@SC@TCVCWC.ZCY]C@]C@]C@]C]C=]C_C@^C@\C[C5\CbCoCsC@!pC@sCuC;qCkC@3hCicCuaC@_C@3_C^C;^CY]C\CE[C@8ZCYC@YCYC5XCBXC{TC@UCUC@TC@xUCVCipC`xCGC@JCɈClCెCKCCYCC .C@sbC@3UCBTC@TCUCUCTCTTCTC0UCVCVCTCiVC@VC@TC@UC)VCVC0UC@8TC@SCTCTCSCRC@RCRCSC@SC)UC@ TC@sSC@TCUCWCkZCf^C_C@`C^C@]C=]C@^C@_C]C;\C\CLaCqCwC@OpCrCxC xCGqCWlCfCcCYaC`C_C5_C=^C\C@\C@ZCkZC@YCYC#YC&XCTCTCTC)UC0UC)^CbCCCiCTC0C`C`C`CCC}C}^CTC@xTCTCUCUCSCcTCWUC5VCWCVCTC@8VCLUC@aTC{UCBWCWCTUCnTC.TCTC UCTCRCSC@xSCLSC@3SC UCSCSC@sTC@UC;WC@xZC#`CbCbC`C=^C]Ck^C_C]C\C[C@_CqCT{CpCmCvC@{CuCfqCjCceCcC@\aCu`C@`C_C@]C@!\C[C;ZCYCZC@YCYCTC@ UCBUC@UCVC@\nCqCمC^C C CC@JC ·C CCqC=xCR\CTCTCpUCVC@8UCTC;UC0VC@WCRYCUC@TCUCUC@aUCUCXCWCUC@aTC@sTCTC@UCSCESCTC@TC@SCkRC@SCSC#SC@TCUCWCBZC@xaCfCdCcbC^C]C]C^C^C^C\C]C@nC@\~CrC#jCRpC{CzCntC.qChCfC&dC@aC;aCaCG_C@]C[C+[C#ZCZC@\ZCYC.UCTC@UCUC@\]CCCkCC CGCC@CC@JC]C@C@sC}ZCTCTCUC@OVCBUC@aTCUC@xVC@XCYCUCTCRUC@UCUC@sVC@XCVCUCTCTCTCTC@SC@SCTCiUC.TCQC^RCSCRCTC&UCVCYCcC@lChC@8dC.`C\C@]C]C@O^C{`C@]C@]CjC~C@tC@gC}iCtC|C@vCtCmCiC@ gC5dCWbCbC@ aC^C\C[CZC{ZCfZCkZC@TCTC#UCVC^mC@!CC@*C@CچCC \CЇCC |C`OCC pCXCTCpUC@VC@xVCTCTCiVC5WC[CYC&UC@\TCiUCVC@VC@sVCWC@UCUCTCSCSC}TC@TC^TCVC@VC0TCkQC}QCRCRC@ TCUCVCYCufC@qC@lC@fCbC\C{\C\C]CBbC@aC]CeCzC@wCThCcdC@amCTyC@!xC@3uC.sCmCkC gCudC@dC#dC_C@]C@a\C[CZC[CZCUCTC@8VC^C9CC`fC`C ECCCˇC@ CCCCUCKCkCuWC@JUCVCBWCUC@TCWUC{VCiXC[CWCiTCTC^VCWCLVC@UC0VCUCTCTCSCSC;TC@UCUC&VC@VCTCQC{QCRCpRC@SC@8UC=VCfYCgCsCoCgC;fC]C@8\Cp[C\CTbCdC_C.cC{uCwCjCaCeCrC&yC@\tC@vC@JsC@qCTkC@3gCeCifCTbC@]C\C[C[C[C5[CTC@TCWWC;nCɅC~CICC |C7CC C"C |CࣈC`8C C@ gC@VCTCVCVCTCTC=UCuVC@\YC{ZCUCSC@UC}WC@WC{UCUC@3UC5UC5UC UC@xTCTC@TC^UCUCUC@UCTCRC@QCRC;SC+TC@3UCcVCXCfC^qC5oCgCgC@O^C=[C@ZC [C5`C&gCpbC@bC@pCtC@akCkbCaC)jCvCtCwCRxCwCqC.kCgC@hCeC+_C+]C\CL[C&[C@\[CTCUC^CCTC C`C`؅CCC C`&CPC@CC`؇C5CaCUC@sUCcVCUCTCUC@UCVC=[CXC@TCSCVC@XC}VCTC@UCVCUCUC@UC@3UCGTCYUC@UC)UCTCTTCYSCQC@QCRCRC.TCUCVCkXCcCkC@\jCkeCeC@J_C}[CLZCiZCc]C@eC@!eCcCElCrCjCcC_CcC@soC+vCuC0{C}C@azC=pClCEiCuiC@bC^C\C&\CZCE[CLUCEWCoCCC@C \C:CLC CC CtC`CՈC}C|C@]C@UCVC{UC@TC@TCkTCUCWC@![CiVCSCTC&WCVCTCTCVCVCUCVCVCUCUC#VCVCTC@!SCSCRCRCQCRC@SC@TCUCVCXCY`CTdCBdC^cCbC_C@ \C@ ZCiYC[CcaCeCicCjCpCiC@cC_C`C^hC#sC@8vC@ |CCCxCpCkC;kC@xfC@_CR]C\C[CZCUC+_C@CCC@ӄCCׅCCC C9C C`oC|CtC@gCKCiC CC@ʈC \C C CTC`/CLC CC`CkC@WC@UC@xUCTCRTCRVCSCRC@ TC@xVCWXCUCSC=TCSC@SCTCTC+UCTC@TCUCSCSC@TCUCiVC@aUC=UCcVC@XCXC&WCVCVC WCBWCWCXCRYCY[CbC@jC}eC@aC@J\CZC@ZCY\C]C^]C[CXCWCVCVC+WCXCLWCuWCXCYC[C@O\C\C^C#gCkuC#CcCcCDŽC@J}CTzClCC'CCైCCC@jC`C@sCCފC@CຌCQCeCVCUC@aUCTC@sUCUCSC@RCYTCEWC@VC@SCSCSC0SCSCTTCGUC)UCTCTCTCSC)TCTCUCTVCUCTCUCYC&ZCXC@!WCVC WCWC@JXC@xYC@3ZC=\CaCgCaC^C@[CEZCYC [C@\C;\C@[CYCWC@aWCVCVC+WC@!WC@VCWCfXCYC[C@[C\C@bCmC@zC CpC`C@C@x|CrC`CC`XC ΈCC]CC`/C CC`xCCCGC`CkVCTCTCTC0VCTC@RC@aSCTC@OVCUC@TCSCGSCSCSCTC@TCUCSCTTCTCSCTCUCRVCVCUC+UCVC@JYCZCXCWCWCWC=XCnYC^ZC[C\C@saC@adC^C@\Ci[CYCWYC+ZC [C0[CW[C@YCXC@WC@WCVC@VC#WCTVC@3WCXCXC@YCZC[C@^CfCptC@}C`XCC@sCE}CxC CຊCC`oC NCC@ChCXC&UC@TC@TC.UCSCRCTSCTC@UCVC XC@ UCRCWRC@OSC@SC}SC@SCSC{SCSC@SCTCBUC@xVCTWCVCRVCUC@UC@aWC@3ZCYCZC\C_CaCW`C]CZCRXC@XCEXCXC@WCfWCWC@VC{VC@VCkWC@WCWC@XCWCVC@VCiVCUCUC^UC.VC@VCVCVC@xWC@WCWC^YCW\CcC}qCCCUC]C CCԉC EC@CCCuCCCˋCCgCXC@UCTCTCRUCRC^RCSC@TCVCWC@3XC@SCRCfRCSC@SC;SCSCSC@8SCSC@TCTCUCVCVC)WC VCUCUC@VCYCYCfZC\C+_Cn`C@^C[CYC XCWCXC=XCpWC@!WCVCpVCUCVCVC@WC;WCfWCiWC@VCUCUC^UC@!UC@TCUCGVCVCVCWC@!WCWCWCYC^^C@!hCxC7CkCYCgC CCC`FCBCCC@JCCWCC@fC{XC.VCTCTCTC@QCRCSCUC@OVCXC@VC@SC@ORC@RCTC@SCSCSC;SCGSCGSCBTCTCGVCVC@VCVC@sVC@8VCUCuVCXCnYCZC;]C@]C^CY\C@aZCXCWCWCWCWCXCWC5WC@VC{UC@UC+VC@VCVC#WCVCnVC@UC)UCUCTCWUC+UCUC;VC#VC@VCWC)WC^WC@XCZC@`C@ oC~CCC`؉C@CC`ƈCC C`xCC:CC C CfCXCUC TCnUCTCWRC@3SC@8TC@ UCVCuXCUCSC0RC@SCTCLTC@SC@SCSC@SCfSCuTCnUCUC@xVCVCWC WCkVC@VC+VCWC@XCYC@!\C\C[CZCYCXCWCXCEXC.XCWCRWC)WC@UCUCTCcUCUC@UCUC5VCLVCYUC@TC&UCTCTCTCTUC.VCUCVC@WCVCWCWCYC\C@eC=vC CTC#C`/C^C1C CC`C C)CwC C+CGdCYXC@UC@JTCUC@SCRCTC#TCUCVCfWC@TC@RCYRCSC@3TC@SC TC@SCSCSC@SC@TCVC@VCVCVCWC@!WCVCVCiVC^WCXC@sYCZCTZC@8ZCYCGYCXC@XC+XCXCXC@WCfWCVC@VC@TC@3TCWTCLUCcUCcUC@UCUCnUCTCTCkTC)TCTCTCUCUCUC}VCuVCVC+WCYXCYC^CWlC}C@!CމCC@CC`C4CЍC`C"C`&CC~C#bCWC@TCTCUC@SC@RCSC@3TCTC@VCUCTCRCRC@TCETC@TCGTCSCLTCpTC0TCTCuVC@WC@!VCVC)WCnWCWC&WCVCEWCWCXCYCYCYCXCXC@XC@XC{XC#YC}XCXC@8WCVCcUCTC@SCTTCTC5UC@aUC@OUC@UC@UC@sTCTC}TC@TC@SCWTC@UCnUCUCUCGVCVCWCWWCXC+[C@cC@3uCZCyC C`OCC`C CC)C C C`oC0{C^C@xVCTC@JTC.UCSC@ TCSCSCTC@UCuUCSCRCRC@3TCTCTCuTCTCRTC@JTCTCTC{VCfVC@VC+WCWCWCXC XC@WCWCWCcXC5YCXCYC@XCXC@XC@XCiXCYCXCXCWCpVCUC@8TC@SCTCiTCTCTCUC}UCUC@TCTCkTCTCcTC@TCTCTC@TCUC@UCVCVCEWC@WCiYCE]CYjCCوC@CCCCC@CCC)CCuC[CUCSC@JUCTC.SCSC@SC}TCTC{UCUCSC5SCSCcTC@TCTCTC#TCnTC@TC@TCLUCEVC@UCVCWCWC XCXCXC@8XC@ XCWCBXCEXCWXC#XC@3XCXCWXCXCYC@YCuXCLXCnWCVC+VCTCSCSCSCTCTCuTC@3UCUC@xUC.UCTCYTCTC#TCTCTCTCLUCUC@sVC@VC@VCRWCXC@ZCaC`C`CKCC@3C@ CCC \CC]C@CYoCXCTCTC@ UCSCWSCRCnTC{TCiTC@ VC@sVCTCRCSCuTCuTC@TC&TC^TC@TCcTC@TC@\UCUCpUC5WC.WCWCEXC@YCXCBYCnXCXC}XCWCWC@WCWCWCWC+XC=YCXCpXC@JXCWCWWC@OVCTCSC@SCTCnTC)UC.UCBUCUC@UCUC@UCTCSC@JTC}TC}TC@TC@!UCUCUCVC@VC@WC}WCXC@\CڈCC CQC`؋C`C`CCCC C CɅC@xhC@aWCUCSC@sTCSCRC@SCTC@aTCTC@OWCEVCSCSC@SCTCpTCuTC@8TCnTCTCTC+UCnUCTCUCVCVCWCXC+YC.YCYC@OYCYCXCWCWCWC@3WCiWC+WCWCXCXC.XCWCWCWC@aVCUC@\TCTCTTC}TC&UCRUC@UC)VCVCGVC@UC@TC@OTC@TCSC@OTC@aTCTC&UCUCWVCVCWC@VC@XC@ZCCZCCCC@ C)CC~CCC@C)cC@VC#TCSCTC#SCRCSC@TC@ TC.UCXC+VCSC=SCRCTCSCSC@ TCTCuTCRUCRUCUCUC VCVCVCWC@XCXCXC@YCYCYCYCLXCWC@sWC@VCVCWCiWC&XCTXCpWCpWCuWCWCWCUCWTCTC;TC@TC@sUCUC@\VC@aVCVCVCnVCVC@TCTC@SC@JTC@SCTC@TCWUCUCVCVCWC@8WCXCCࣉC~CCCCCC@sCCًCu~C@J^C+VC@SCSC@TCRCSCTCETCSCVCXC@OUC5SC@ORCRCSC#TCTCTCTCTCUCUC@UCUC}VCVCWCWC+YC@XC{XCWYCiYCpZCZCXCWCWC@8WCWCVCGWC#WCWC@OWC{WC}WCBWC@sWCVCYUCTCTCTC#VCVCVCVCVC@VCEWCWCVC@JTCSCSCRTC@OTCTC@!UC@UC@8VC@VCVCpWC.XC^C#CC`fC࣍C5C}CCtCC CwC^[CUC@RCTCTC@RCESC@xTC@SCTC;XCXCTCRC&RCRCkSCSCSC@UC@TC@UCUCkVCUCVCBVCWVC@ WC^WC XCWCWCLXCXCTYC[CYCXC;XC@OWC@3WCVC#WC;WCTWC=WCWCEWC@\WC@aWCVC+VC@TC+UCUC@xVCuWCXCWCWC^WC@WC0WCVCGUCWTCSCTC}TCGTCRTC@xUCUC@VCWCEWC@JWC ʼnCuC:CŒCՍCQC`C`ƎCC]C1C@8oCXC@SC@sSC@OUCkSCRCSC@SC@SCUC@XCVCSC@RC@xRC@RC+SCiSC=TC UCUCUCUCVC.VC.VCUCVC@VC@3WCWCWCWC@WC@ XCXCGZC@YC@YC@XC@WC@\WCWC@sWC@8WC@WC{WCVCWC@WC WC&WCiVCUC=UCUCWCXC{YCYC XCWCWCWCWCVCTCTCSCSCSCTC@TCUC@OVC@VCWCVCCC C^CލCCC`CCCChCVC@SC@SCTCSCkSCkSC@!TC0TCVCYC@OUC@JSCRC@RCSCRCSCTC@3UCVCpVC@VCVCVC+VCUCUC^VCWCVCWCWCWC0XCXC YCYC^YCkYCXCWCWCWCWCWC@xWCVCWCBWCVCVCVC#VCUC@JVC@VCTXCZCuZCYCXCXCcXC@WC@WC@UCfTC&TCcTCSCSC;TC@OUC#VC@OVC}VC5WCC |CC@CgCَC@!CpCݍC@jCpCbCTCSCUCTCRCSCSCSCTC&WC@WCTC@ SC{RCSCSCRCTC@ UC@sUC@3WCUCTVCUC@UCVCUCUCVC@\WC#WCWCWC@WC@XCWXCXCXCYC&ZCYCfXCRXCTXCXCXCGXC@OWCVCWWCWCcWC@VCuVC@sVC^VCEWCXC[C}\CZCuYCXCXC@XC@WCVC@8UC;TCTC@TCSCSC@TC@UC VCVCVCkC CCC@C CCC@ʍClC@8}C\C)TC0TCUC@RC.SCSCSCSCfUCXCVCTC5SC@RCTCRC}SC@TCUCVCVC@8UCTVCEUC@ UC+VCUCUCkWCWCVC=WCWC@WCYXCXCTXCXC^YCZCYC@YC}XCXCYXC+YCXC@!XCWCWCXC@OWC@VCWCVCVCWCXC[C^Ck\CnZCZC@XC@XCBXCWCEVCTCSC@TCSCSCTC#UCUCRVCVCC9CgCC`CbC`CCC@CtCXCSCTCTCuRC@TCSCSC@sTC@UCXCVCSC@RCGSCSC@SCRSC@TCGUC+VCUCTCUCUCUCiVC@UCUC&XCWCVCRWC@OXCXCXCWCWCXCXCYC@sZCZC YCTXCXCYCYCYCLXC&XC.XC@WC@WCWCBWCWCWC}XCZC_C_C@!\C[CYCEYCXCWC=WCUCTC.TC@SCSC@OSC@TCGUCUC@VCCqCCԎC@*CGCCCCC@OkC)VCWTCTC{SCSCBTC@SCSCTC+VC@!YC#VC@SC=SCSC@\TC@SCSCTC)UCfUCuUCUC;UCVCUC@!VC@UCVCXC5XCWCGWCEXCiXC@xXC@8XC@WCWCXC@8YC@ZCZCYC@XCXCZCZC@YC&YCXCXCRXCWCWC@WC@WC@WC@sXCYC@^C@`C@ ^C\C[C@ ZC@\YCXCWCVCTCcTCETCSCSC+TCUC#UCVCCC@ACC@aCC̍C CC@AC@cCUCTCTCRCSC.TC@SCSCTC@aWC@XCUC TC=SCSCSCSCSCiTCTCUC@TCTC@xUCVCUCUC@OUC)WCYCWCWCWCXC{XCWC{WC@xWCWCWC=XCYYC@ZCYCXCYC@[C@[CZC@YCYCBYC@XC@XCWC@WCWC@XCXCEYC\C^_C{_C]CW^C@\C=ZC&YC@XCWC@UCTCnTCBTCSCSC@TCTCUC \CC`C NC0C`CЍCɍCCPC^CuUCEUCTCRCTCSCSC@SCBUCWCWCUC}TCpSCTCSC@8TC{SCSCLTC@aTCTCTC@!WC@VCVCYUCUCpWCGYCWCfVC&WCiWCLWC@VCVC@VC@VCWC@WCkXCYC@sYC@XC@3ZC@\C\C@[C@OZCYCYCRYCXCXC@XC@xXC&XC@JYC@YCZC]C@\_C&^C)`C^C[CYCXC5XCVC{UCLTC@aTC@SCuSCTCTCUC ΌC0C CC CຍCٍC CZCwC[CUC#UCTSC TCTC@3SC@3SCSC@UCLWCVC#VCTC@SC@SCcSCSCSC@SC@SCTC@ UCUCWCWC@sVCUCVC5XCXC#WCpVCLVCVCVCVCBVCTVCVC@VC@VCWCXC=YCXCYC]C@]C\CZCYC@OZCYCnYCnXCWXCWXCYXCYCYCYC@O[CE^C^C`CubC ^Ck[C@YCXCWCkVCUCTCTCSC TC0TC@3UCKCŽC@C5C ܍CC`C@C`/CkpC@xYC@aUC5UCRSC@\TC@SCYSCSCTTCUCUCVCVCUCGTC&SC@!SCSCSCnSCTCTCUCVC@WCVCYVCVCYVCGXCXC WCEVC5VC#VCUCUCUCUCUCUCVCVCWCXCXC@xZC\C@s^C}]C&[CpZC@aZCZCYC&YCiXCiXCWXCXC@aZCYCiZC@\C]CL_C)dCaC]CZC@sYCXCcWC@UCTCTCSCTC.TC{TCC`ƎC ΎC`fC@C ܍CڍCڌCC@jCWCUCTTCSC@ TC#SCSCSCTC@JUCnUC@VCEWCUCSCRCuSCSC@SCSCSC;UCkVCGWCWC0VCGVCGVCVCWC@WCVCVC@VC;VC@UCUCUCUCVC)VC VCVCWC@XCXCYC@[C@]C]CL\C.[C@ [CZCZC@YCYCXC0XCYCcZC+ZCZC@ZC\C]CcCeC@`C@O\CYCXCLXC@VCTCTC@TCSCSCTCQC ΎC@ʎCٍC C`CC CWC@dCVCUC@SCTCSCSCSCSC^TCTC#UC@VCcWC@JUCYSC@aRCkSC@SC@OSC@OSCuTCUCVCVCRVCUC@VC@VC^WCWC}WCBWC@!WC@WCVCVCUCUC VC@8VCVC@VCVC@WC.WCRXCXCZC{\C^C]C\C[Cn[CZCYCYCuXCXCXC@8YC ZCYCYC@[C]C=`C@eCdC@8^C5[CZCXC}WCUC@3UCUCTC@8TC@TC`xC@C]C@C`CCC@C~C@`CUC@TC@SCnTCSCSC@8TC@SC@SC@ TCTCVCVC@TCRC@RCESCSCSCSCUCVC@aVC@UCUCUCiVCVC@JWC^WCkWC@WCWC@WC@WCVCfVC@VCVC@VCWC&WC5WCWCWCWCXC@YCZC}\C@x]Cf]CL\C@J]C#\CZCYCpYC@XC}XCLYCYCYC@YCZC@\C@s^C.dC@OgC@aC\CZCYCXCVCLUC@!UCnTCTTC@sTC`C`CwC CC`C1CCWxC@\CWUCcTCLTCSCSCSC@TC}SCSC@SCYTCVCVC}TCRC@RC@SC@8TC@TC@8TC@TCVCUCTC@UCUCVC@WC@WC@sWCWCWCWCWCWCWCVCWCYWCGWCnWCRWC@!WCWCWCWCWCXC}YCZC\C]C]C^C@3]C{[CZCBZC@JYCTXCXCTYCkYCYCZC@O[C\CYaCgC#eC;^C[C@xZC@YCWCuVC@aUCUCTC@TC`8CC@C@ CC@CЌCCpCXCTC@3TCTCSCSC@TCTCGTCSCTC@TCUCUCSCRCSC@SCTCSC0TCUC@VCTCcTCUC@UC@3WC@YCXCWC@WCWCWCXC@3XCWCWCWCWCWCWC@WCWCWCWCWCWC@XCXC@OYCLZCi\C]C@`C@^C\C@\[C@ZCYCYC@OXC#YC@YCYCfZC[C\C_CYeCfC@`C\C[CZC#XCWWCUCnUCTCTC`؍CKC C=C4CݍCCCiCVCSCTCTC@SCuSC.TCSCSCTCcTC@TC@8UCTC@SCRC@OSCTCfTCWSCTC@UCUCTCTC UCWVCLXCXC5XCWCXCnXC^XCfXCTXCLXC XCWCXCWCkXCWC@ XCXCXC@XCWC@8XC XCXC@XCZC\C_Cu`C@3]C#\CZC@3ZCfYCXCXC@ YCfYC@!ZCZC[C^^C@scCfCbC]C@ \CZC@YC@!XCRVCUCUCTC7CCBC9C:CC}CcCbC;UCSCSCSC@8TCSCTCTCWTCkTCTTCTCTCSC@SCRCuTCUCTCTTC#UC@UCRUC@TCUC@UCVC;XCYC@8XCuXCXCXCXC}XCkXCfXCLXC@JXC@ XC@sXCXC=XC@8XCXC)YCXCLXC;XCWCRXC@XCXC@OZC]C`C5]C&\C[CZCYCWYC@XC YCYC@ZCZC[C}]CEaC}eCcC+_CL\C[C@ZCXCWCVCBVCTC@ACC@C C %C`oCC}C\CTCSCSCSC}SC@SC@SCkTCTCTCRTC TCSC@TC@SC{SCnUC+UC@TCTC@aUC@UC;UC^UCiUC@3VC=WCXC@XC@aXC@XCYC}YC@XC@!YCXCXC#XCXCYCXCXC@XC@aXCfYCYCXC@!XC@OXC;XC&XCXCkXCYC@[C_C@\C@O\C[CZC@aZCWYCXC@XC)YC#ZCZC@[C\C`C@acCcC;`C@\C\CZC@YC+XCVCVCUCwC`fCbCC@ӍC=C5C&sCXCSCSCSCkTCSC TCSCSCTCBTCTCSCRCTCTCSCVC+UCTC@OUCGVCUCUC@UCVCpVC}WCXCcXCXC0YC)YCXCpYC@aYCYC5YCXC@XCYCXCXC YC@YCfYCYCYC0YC@XC@XC@XC@XC.XC^XCYC)]C}\C[Ck[CZCZCYCGYC@XC+YC+YC@3ZC}[C0\C=_CbCbC@`C]C@\C[C@aZC.YC@WC@VC+VC`CຎCCCZCC`fCC@iCUC@TCSCTC@SCSCTC@TCGTCTCTCTC@RC@OSCTCSCUC.VCnUCUC@aVC@VCUC@xVCVCVCEWC)XC#YCXC@XC@JYCXC@YCYC@YCYC@OYC@aYC@\YC@XC@XC@XCXC@!YCYCRZC@\YC5YC#YCXCXCXC@sXCcXCXCZC^[CZC@ [C@ZCiZCZC@YCYCYYCYCLZCE[C@J\C@^C@aCaC`C^C\C@\C&[C@YCcXC@WCVC`ώCC@!C`C`CC@CaC@xTC@TC@SC@TC TC@SC+TC=TCTC#TCUCSCRCSCRTCTCTC@UCUC=VC@VCVC}VCVCWC)WCWCXCXCXCXC;YCXC YC@YC@ZCYC@ZC@YC@aYCXCuYC^YCYC@OYCYCYC@YC@YCiYCXC@YC@XCXCXCXCcYC.ZC+ZCZCZCZC@\ZC@aZCYC@sYCYCYC5[C[C]C`CaC@`C@ _C@]Cp\C[CZCYC@3XCVC@ӎC`CCǍCCCG{C[C@8TCYTCTC@sTC@SCSCSCSC5TC5TC@TCLSC@3SC@aTC#TCSCTC@UC+VC@ WC@\WCWCVC@!WCXCcWC.XCXCYCYC@YC#YC@XC@JYC^ZCZCZC@YCcYC@YC^YC^YCpYCYC@ZCYC@ZCZC@YC@YC;YCYCYC@XC@XCXC#YCYCYCnYCYCYCYC@YCYCYC@\YCYC@OZC[C]C_C`C@_C@_C@]CT]C\Cu[CZCXCWCԎC}C`CC@ACCLpCWCuTC.TCUC@ TCSC+TC)TC@TC@3TC+UCSCRCTC5TCSCSC@TCUCVCWCWCEWCVC.XCcXC@WCXCYC&YCYC0ZC@sYCkYCGYC[C[CcZCYC@YCYCYC^YCnYC{YC@YCYCZCYCYC@xYC@YCYCYCYC@JYC;YC@XCEYCYCYCEYCYC@sYCYC@YCYCYCYCYCZC\C^C}`C@_C^C@^C}]C\C@[CZC{YC@XCC+CލC@CCࣅCfCUCTC@TC@TC0SCSC5TCSC@SCTTCTCSCSC@ TCSC@sSCSCTUCcVCWC@XCWC@WC#XCuXCXC{XCYCWYCYCZCZCYCXCYC@J[CZC0ZCYCYCYC@YC}YCYCYCYC@YC@YC@JZC;ZC=ZCYC@ZCZC@YCiYCYCXCcYC@YCLYC;YCfYC@YCYCZCYCYC@YC^YC@xZC[C\C@3`C_C^C@O^C@s]C\C+\C;[C@!ZCYC |CCCzCCCk_C#UC@TCUC@SCkSCSCSCSC+TCcTC@OTCkSCSCETCSCSCkTC@UC@VC@XCYCpXCXCXCWYC&YCYCYCiYCcZCZCZC@YC@JYC@YC@ZC@a[CZCfZC@ZCYC@ZC@3ZC@YCZC@aZC@YC@ZC@\ZCZC&ZCZCfZCTZCkZC@sZCYCYCLYCYC5YC#YC;YC@YCYCYCYCYCYCYC@!ZC{[C@\C@8_C@x_C@O^C@]C]CT]C}\Cu[C@ZCYC nC׍CɍCCLCnwCZC@TCUCTCSCSCfSCTCTC)TCuTC TCSC@ TCSCSCSC@TCUC}WCYC@YCcYC@xYCXCYC@YCfZC5ZCYC^ZC[C.[C@YCYCYCZCG[C#[CZC@JZCZCWZCEZCZCLZCZCZC.ZCnZCZC@ZC@ZCZCZC@[CZC@JZC@\ZCYCZCYCpYCYC@aYCRYCYCYCZCZCYC@YCZC\C@]C@_C@^C]C]Cf]C@x\C5\C5[C^ZC4CǍCCgCC@!mCuWCTCTCSCSC@SCSCSC@8TC@!TCpTC@SC@SCTCSCSC@sTCTCiVC@XCZCnZC.ZC@YCZCYCZCZCEZCnZC+[C)[C@ZCYCYCZC[C[CG[Ck[C=[CZC@ZCZC@![CB[Cf[C^[C [CiZCkZCZCZC[C@ZC@3[C@O[C+[C[C)ZC@OZCZCYCYCpYCYCYCfZC=ZCYC@YCYC@xZC[C\C^C^C@^C]C@]C@\CY\C@[CkZCC్CC`fCCdCUCUCTCTC@SCSCLSCSCcTCSCTC@TC@aSC5SCTCTCTCpUCVCYCW[CZCZCZC0ZCZCZC@sZCBZCZCZCZC@YCYCYCfZCZC[C[C[C[C@[C@[C[C@\C@8\C\C[CG[C@![CZCZCZCZC.[C@ZC@[C)[CZCZC@ZC@ZC&ZCYC+ZCnZCYC@ZCfZC@8ZC@YCZC@8ZC[C\Cf]Cn^C]C]C]C]CY\C[C [CC ܍C CC~C]C+UC@OUCWTC=TCSC5SC@SC&TC#TC@SCTC^SC@JSC@\SC;TCTCTCUCXC5ZC[CZC@8[C}ZCZCZC@ZC[CZCZCZCZCZCYC@!ZCZCc[C[C[C^\C\Cn\C\CW\C@8]CB]C\Cf\C[C@s[C@a[CZC&[C[C[C[C@s[Cc[Cu[CG[C[CE[CZCYC)ZCZCEZC@OZC[CZCZC+ZC^ZCZC@\C@x]C]C]C@]C@]C@\]C\C@ \Cf[C`C`CbC=CrC@8YC@TC@8TC@8TC@SCSCRCSC0TC^SCTC@OTCkSCWSC TCTC@TCuUCVCXC.ZC@ZC@ZC[C@ZCZC@xZCZCZCuZC@ZCZCYCLZC5ZCZCi[CT\Cu[C\C\C@!]C\C@a\C\C]C]C]CW]C@!\C[C[Cp[Cp[C@[C@[C[C[C[C[C5\C[C{[CR[CZCZCZCZCZCZCZCZC5ZCWZCkZC@[CY]C]C@]C]C]CR]C@\C\C@[CຍC CC ΅ChCVCTCGTCpTC^SCSCRCSC@TCSCSC@SCSC@xSCnTCTC@JTCUCWCXC@ZC@8ZCZCZC{[CZCZC+ZCuZCZCZCZCZCZCZC@s[C[Cu\C[C[C]CY]C@]C\C+]C^CB^C]C@ ^C]C0\C^\C[C[C[C[C[C@x[CT[Cf[C@[C\C\C\C[CZC+[C[CZCZC[CG[C[CZCZC@\[C@]Cc]C@]C}]C]C]C@ ]C}\C@a\CຍC`C9C`Cf`CpUCTCTCTC@SC@SCfSC@SC@SCYSCSC=SCRC TCTCTCUCVC@sXCWYC{ZCYC^ZCZC[C@ZC@ZCZC@xZCZCpZC@sZC@3ZC+[C@!\C\C+]C\Ci\CB\C]C]CW]C}]C]C^C^Cf^C@!^C}]C+]C@\C@O\C@O\C[C[C@s[CR[CZC[C@a[C[C[C@[C@x[CR[CW[C[CZCZC@ZC[C[C@![C@ZCZC@\C@x]C@]C@]C]Cu]C@!]C]Cc\C`C NC׉C@wC@8[C;UCSCTCSC}SCRCnSCSCSC@8SC@aSCSCSCTCcTCUCUCWCTXC@8YC@YC^YCRZC@![C5[CZCZCLZCnZC@ZC=ZCTZC@ZC^[C\C@O\C ]C\C[C@x\C]C=]CL]C@s]C]C^C@x^C]C+^C]C@a]C&]C\C\C\C[C[Cp[C@8[C@3[C.[C[C[C[C\Ci\C@[Cc[Cn[C[Ci[C}[C.\C\C+[C@[C[C]Ck]C]C.]C]CW]C\C@\C`OC ΌCCRlCWCTCTC@JTC@SCSC#SCSC=SCSCSCBSCfSC@!TC@TCTC@xUC WCWC@XCYYCnYCYC[CZCZCZC^ZCZC@ZCpZCZC[C.[C;\Cn]C]C@]C@\]C+\C\C@J]C]C]C]C@^C_Cn^C]C@]C]C]C]C@3]C\C\C@]C\C@[C[CT[CL[C@J[C@[C@[C@[C5\C[C[Cc[CZC@ZC@3[C@8\C]C\C@[Cu[C+\C@]C]Cf]C@8]C@8]CG]C\C@*C>CCcC^VC5TC@JTC@SCSC@OSCSCiSC)SCSC@3SCESC@8TC@TCTCTC5VC@xWC5XC@XCYC@ YCRZC[C@JZCZC@ZCZCpZCfZC@ZCZC0[C[C ]C]C@]Cn]C@\C\C\C@8]C5]C^Ck]C^C_C@\^C]C@O^C]C^C+^C]C5]C@a]CR]C]C@8\C[C[C[C@[C@[C@[C@[C#\C[C[C[Cf[C}ZC@![C[C@]C]C@3\Cc[C[C}\C]C]C#]C#]CG]C\C1CwCk{C^]C@JUC@SC0TCSC@SC@!SC#SCSCRSCGSCYSCSC@TC@sTC.UC@VCVCWCXCXCEYCYYC@\[C[C@\ZCGZC@YC@!ZCZCZCZCZC[C[C\C=^C]C]C]C[C\C@!]C]CR^C@]C^C@_CW^C]C5^C@8^Cc^C^C]C]C]C@]C]C@\C[C@[C@[C@![C@a[C@[C@[C@J\Cc\C)\C[Cc[CZC@xZC}[C]C ^C=]C@\C[C\CT]C@^CL]C ]C0]C\C`،CCpCYCTCSCSCSCSC@SCWSCESCSCfSC@SC@SCTCTC@aUCUC@WCWC@XCYC@8YCZC@!\Cu[C&ZC&ZC}ZCYC@ZCZC[C^[C@[C\C\C@3^C]C5]C\C@[C@\C\C{]C@^C@]C^C^C#^C]CT^Ck^C^C_C@J^C]C]C&^C]C@8]CY\C@\C[C[C}[C[C[C[C\C@\\C[C[CZCZC@ [C@\CW^Ck^C5]C[C@[C@3]C]CW^C]C@8]C;]CQC@*C@OgCVCSCuSCWTC@SC@SCSC5SC@SC@aSCSC.SC@TCTCiUCUC@sVCfWC+XCXCYCiYC@3[C=\C[CYZCZCpZCpZC@[C@[C[C[C[C@[C.]C]Cc]C]C\C[C\C@\C]CL^C{]CL^C^C]C]C^C^C_C`C^CR^C+^CB^C@]Ci]C\C@s\CW\C[C[C\C@[C\C@\C\C.\C@\C[C@ZCZC[C@x]Ck_C#^CR\C[Ci\C@8]C^C^]C]CB]C C~C_CUC=SC@3TCSCTC@SC@RC#SCSCcSCSCSCTCnUCUCUC@VCWC0XCYCYCYC@8[C@[C@sZC@ ZCZC@ZCY[C{[C[CB[CT[C[C@O\CG]C]C@]C+]Cc\C[C\C\C^C@^C]Cf^C@8^C]C=^Cu^C@^C_C_C@O_C_C^C]C]C]C@\C\C\C[C@a[C[C@[C \C[Cf\Cp\C@3\C\C@ZCZC@![C\C_C _C&]C\Cn\C@]CL^C^C]CE]C CWtCZC@OTCSCGTCpTC@SCSC@RC#SCSC5TCTC)TC@sUCUC{VC@VC@\WCWC=YCYCYC{ZCZCcZC^ZCZCGZCB[C[C@[C[CT[C[C[C\CG]C]C)]C]C\C[C@[C@\C@`C^C@8^C]C@8^C^]C^Cn_CY_C_C@_C^C^Ck^C@]CR]C]C@3]C\C]CB\C@[C@a[C\C[C[C\C@3\C\Cn\C@[CZC{ZC\C@^C_C@J^C\C\C\C@a]C`C@]C]CLCjCWCSC+TCTC@OTCSCESCRCBSCpSC}TC5TCTC@UCGVCpVCVC{WCWCYCZCLYC0ZC@3ZCYC}ZCZC@ZC@a[C@\C[C)[C@[C@s[CY\C\Cf]C^C@\C{\C\C@[C[C}]C@\aC@_Ck^C^C+^CT]C^C@a_C@8_Cf_C_C_C^C@^C]C]C#]Cf]C#]C@x\C\C[C[C[C[C[C\C[C=\C@\Cu\C@[CZCZC\C^C@_C=^C \C\C]Cu_C@J_C#]C CbCUCSCTCTTC)TCSC@ SCSC@RCTCUC&TCTCcVC VCVC.WCWCpXCYCYCcYCYCfYC@YCZC@ZC@a[C[C@[C[C[C@x[C@[C@3\C\C]C]C ]C\C\C[C[C]C@aaC;`C^C^C0^C]C5^C@3`C_C^C_C^C_C@^C}^C]C&]Ck]CR]C@8]Cc\C[C[C[C[C@[C@!\C[C+\C\C@ ]C\C[CZC[C]C=_C+^C@\C@s\C]C@]C`C]CwC\C@aTCSCcTCSCcSC@SCRC@OSC&SCTCTCUCcUCVCVC@VC@WCXCfXCYCWYCYCXCYCYC@ZCE[C[CT\C[CT[C@a[C[C[CT\C@\C]C.^CT]C@\C ]C[C@[C@]CaC`C{^C^Cc^C]C^C@8aC.`C@^C^C^C=_C@_C@^C#^C@\]C]C@]Ck]C\C@\\C@ \C@\C[C\C\C@[C[CG\C)]C@s]C[C#[C@x[C@s\C^C^C]C@\C#]C]C@a`C}_C@mC;XC@ TC@ TC@JTCTC@8SC@OSCRCRCETCBUCTCTCVCVCVC@ WC@WCXC@XC@YC)YCTYCXCkYCYC[Cf[C@[CW[C[Cc[CZC#\C \C@\C]C^C&^C@O]C)]C@\C[C@[C@ ]C&aC#aC@^C_C^C^C@^C@\aC`C^C@^C#_C5_C@_C_C^C@x^CT^C]C]C@8]C&]C\C\CG\C[C&\Cn\C\C\CL]C]C@O]CG[C@ [C[CL]C^Cc^C@\C\C@8^C^CaCdCUCWSC=TCTCWSC.SCRCESCSCTCLUC}TCnUCUCVCpVCiWC@XC^XCXCGYC@JYCXCXC&YCYZC@![C@[C\C@[C@a[Cp[C{[C\C\C]C@]CB_C+_CT^C5]CE\C[C[C\C_C@`C&_C@a`C@x_C@^C^C@aCaC_C^CE_C@^C_C@_C#_C+_C@^C@\^C^C]C]C@\C\C\CE\C\C@\C=\C[C\C@s^CW^C\C[C[C@s\C]C^CY]C\C]C^C@aaC;]C&TCSC@sTCSC@OSCRC&SCRCETCUCWUCTCUCVCVC@!WC@sWCXCTXCXC=YCXC@JXC@XCnYCLZCW[C@\C[C[C.[C{[CG[C@\Cu\C\C^C@`C`CaC@8^C[C@[C[C@\C#_C+`CE_C`C_CW^C _C@ aC@aC@^C@^C#_C^C@x_Cu`C_C`C_C _C^C@\^C]Cf]C]C]C@\C@\C\C@\\C[CW\C]C^C@]C@[C@a[C[Cf\C]C#^C5]C@!]C]C_CXCSC@TC@JTC@SCRC@8SC@OSC@OSCiUCUC@sTC@TC@3VCVCVC@WC@WCWCWC@XCXCpXC5XCXCEYCZC[C[C[C.[Cn[C[C@[C&\C[C@3]Ck^C@`CdCeC@3_C;\C[C@[C\C^C5_C_C@OaC`C^C `C}aCbCG_CL_Cc_C@_C@_C@a`C`C&aC+aC_C_C^C^C]C.]C\C@\C\C\C@\C\C\C]C_C^C]C[C[C[C]C@^C@]Cu\C@]C^CUCSCTCTTCGSCRCSC@SCSC@\UC@sUCTC@UC}VC@VCWC@XC@XC#XC@XC=YCGYC{XCTXCXCYC{[C0\C\C@s[C[C@[C@\[C[C\C\C\C@^C@`C@iCiC@a`C@\C[C[C\C]C@\^C@!`CYaC@`C@x_C`CbC@\bC@_CB_C_C@^C_CE`C`CpaCEbC@3aC@J`C`C^C^C^C@]CT]C\C@\C@\C@ ]C@\C]C^C_C]C{\C{[C[CL\Cp]C]CB]C@\C^CTCSCSCSCRC+SC}SCWSCTCnUCTCRTC@sUC;VC0WCWCWC@JXC@WCXCXCuXC@XC{XC@!YC0ZCc[C\C[CG[C@[C@[C[C[C[CT\CW\C]C@3aCmC@xmCaC[C@8[C5\C]C]C^C`CaC`C@s_C@aCcCRcC@3`Cf_C_CT_CW_C`C`CbCcC{bC=aC`C@_C#_CW^C]C{]C=]C\C@ ]C]C\C}\C]C@_C@_C@ ]C\C@[CL[C\C}]Ci]C@\C^CSCSC;TCSC@RCSC@SCSC^UC@UC&TCTCUCVCWCXCWC@8XC@aXC@sXCXC@aXCWCXC@YCZCR[C@[C^[C[C[CE\C[C@[C@[CW\C@\CR]CbCnC@ nCaC\Cf[C#\C+]C]C@^C`CaC+aC0`CaCeC}cC#aC_C`C_C`C`CE`CbC5dC@acC&bC{aCY`Cc_C^C^C]CT]C@\C^]C@]C0]C\Cp]C^C_CE^C@s\C@[C[C@[C\C]C@O]C@ ]CSCSC@SCSCSC@TC@SCuTC0UC@ TC@SC@\UC@VC@VCXCLXC@ XC@WCGXC.XCRXCGXC@JXCYCYCkZCZC@[CB[C[C[C\C[C@[C[C[C[C\CaCiCpjCk`C[C\C\Cu]Ck^CT^C_C`C@aC@OaC@\aCfC0dCaC@`C`C^`C@a`C@`Cf`CbC;eC@dCEbCaC@!aC`C_CL_C0^C]Ck]Cn]C@]Cf]C@\CW]C;^C@_C@a_C=]C}\C[C[C[C;]C]C\CSCkSCRSCRCSC@SCSC0UC@TC@SCTCUCVCWC@XC@XC@\XC0XC@\XCBXC=XCXC5XC0YCYCkZC=ZC@ZCB[CB[C+\C\C@8\C[C\Ck[CE[C\CaC}dC@dC@^C=\Ck\CT]C]C&_C^C@J_C`CGbC@bC5aCeCdCaCaCaC@`C`C`C`CbC@eCdC@\bC@aC@aCT`C`C0`C^C@\^C]Cn]C]C}]C@J]C\C]C5_C@_C]C\C\C[C;[Cc\C@3]C\CSC@aSCRC@RC0TCSCTTC)UCTC@TCcUCLVCVC@JXCGXC@WCiXC=XCWCWCXCXCXCYCYC#ZC5ZCZC&[C@O[C@\C@\C[C[C@[C@O[CR[C@\C.`C`C`C{]C@\C\C@8]C+^C^C_C._Cf`CbCidCaCcCdC@8bC@bCaCaCY`CaC@aCYbCeCeCbCaC@aC@`C@`C`C@^C^C@]C@]C@]Cu]C]C@O]C@8]CG^C_C^C@s]C}\C[C[C[C=]C]CSCSCRC@SC@JTC@SCnTCpTCTCnTC@UC;VCWC;XC@!XC@ XC@WCWCWC)XCYC)YCXCYCYCYC#ZCZCZCT[CB[CW[C@[C\Ci[CZCZC&\C@_C@!_C ^C]C@3]C@]C@]C]C@a_C@ _C_C`CbCceC@aCaCcCfbCcCbC@bC`C@`C^aC@3bCeC;gCcC@saC5aC`C`C;aC_C^C@x^Cc^C@!^C@ ^C]C]C)]C]C@J_CY_C]C\C[C@J[C[C}\CY]CcSCRCSCiTCSC=TC@TCTTCTC^UCUC@\VCWCEXCWCWCWCWCWCYC@!ZC@XC@JYC@YC@YCXC@YCZCZC@![CZC[C[C[C@[C@ZCZC@a[C^Cp^C]C5]C@]C]C^C@8^CW_C)_C;_C@_CaCeC}bC@ aCaCaCcCcC@OcC@aC`CfaCRbC+eC@3iC eC^bCfaCaCaCaC{`C_C^Cn^C]CR^C5^C]CG]C@]C0^C;_C^C\CG\C[CZC[C\CSCRCSCTCSC@SCETC@\TC+UC VC@aVC5WCWC@XC5XC@WCWC@sWCXCZCYC{YCYCYCYCYYCYC@YCZCZCW[C[C^\C[C}[CZCZC[Cp]C=^C]C@^C]C@]C^CB^C#_C_C_C_C@JaC+dCbC@O`C`C@aC;dC@JeC^eC@8bCaCaCbCdCjCgCbCaC@aC#aCcaC`C@_CY_C_C@3^Cp^C+^C]C@]C{]C@O^C@^CB_C]C\C@[CZC@J[C@[CRCRCTC@!TCSC@sTCTCEUC)VC#VC@xVCuWCXCWCiWC@WC@WC@8WCiYCZCBZCYC&ZCYC0YCGYC@XCYCYCZC[C@\C@\C.\C[CZCuZCn[C\Cp]CT]C;^Ck^C]C]Cn^C@O_C`C`CE`C@8aCfbC#bC@aCi`C;aC=dCfCuhCdCbCYbC@bCdCkCkC@dCfcCbCaCaCBaCu`C_C@!_CE_C@^C^Cc^C]C]C]C^C@^C)^C\Cc\C^[C5[C \CSCiSCTC TC@TCSC@UCVC@OVC@VCGWC@WCWCWCWC@JXCWCBXC5ZC[CZCYC;ZCYC0YCXC.YC&YC@xYC[C[C\C@\C\C[CZC@JZC[Cc\C\C]Cc^C&_C]C^CY^C@O_C`C`CcaCaCaCaC@`C@`C`CcC0fC5kC+gCbCbCbCTdC@\kC@oChCeCdCcC@aC.aC`C_C^C_C_C^C^C@8^C]C]C5^C@^C^C{]C\C[C@ZCZCRCSC^TC@SCSC5TCUC}VC}VC;VCWC@WCWCnWCWC@WCXCXC@ZCn[CYZC&ZCYCZCpYCXC@aXCTYC@!ZC[CT\C\C@3]C)]C[CZCZC0[C[C@\C+]C^C^C@]C@O^C^C_CiaCaCbC@bCbCaC`C`CaCbC=eCckCjC@dCcC@bCdCjCqCkCRiC@\hCdCbCaCaCn`C@_C@\_Cp_CR_C _C^C]C]C]Cu^C^C&^C@O]C@8\C[C)[CSC@\TCSC@SC@SCRUC@VC@VCVCVCWCWC@\WCiWCWCWCXCLYC+[C=[CZCGZCE[CZCWYC^XCXC@8YCZC)[C@x\C@ ]C]C@a]C[CZCZC[C[C@s\C\CL^C _C^C@3^C&_C0`CbC=cC@dCdC@3cCGbCaC@ aC`C@aCcC@hClCfC@acCicCueCcjC@arCRnCmCmChCcCbCaC5aC`C_C@_C_CY_C@^C^C@x^C@]C0^C@^C^C^]C\C[C [CSCSC@SC TC@TC;VC@ WC@!WCVCWCpWCuWC@WCWCWC@WCEXC@YCE[CT[CkZC@ZC\C [CXCLXC^XC=YC^ZC[C)\C5]C]C@]C;\CZCZCn[C[C@8\Ci]C^C^CG^C@^C=_CG`CWcCeCfC^gCeCncC@aC@aC`CaCbCdC@akC5iCdCdCdC&jCoC@oC@!rCsC@OoCeC@bCRbCbCaC`C_C@_C`CG_C_C@^C@]C@]Ci^C@^C@]C\C)\C[C&TCSC@SC@SCUCVC@VC@VC@VC.WCWC@sWCWCWCWC@WCXC@ ZC@[CZC)ZCZC\CcZCXC@sXCXC@xYCZC@[C@\C]C@8^C@]C@8\C[CZC[C[C^\C\Cu^C^C^C^C#_CaC@dC#iCkC0jC5hCeC#cC@aC`C@aC@aCcCfgC kC^fCdC@dCiCnmCmC@sCxCwCjCcCcCcC=cC@\aC_C_C{`C`C_C^C@3^CE^C@x^C^C@^Cu]C\C@[CTCTCSC+TC@UCWCVCpVCVCfWCWCWCWCXCWCXCXCYCZC{ZCuZC@[C\CZCWXCXCXCiZCZC[CG\CW]C@\^C0]C0\CZC;[C[C[C.\C]C0^C^Cf^C^C_CbCgCnC@oCnCkCiCdC{bC@`C`CaCbCdC@jC#hCeCudCgCjC@jCpCB{CR|C=qCffC@3eC@eCieC@scC`C`C`Cu`C_CW_C^C^C@s^Cn^C^C@\^C\CY\CSC&TC@!TCGUCVC@8WC WCVC@8WC@!WCWC@3XCWCWC&XC@xXCYC@xZC@xZC5ZCZC\C@[C@YC@XCfXCYCYC@ZC[C\Cc]Ck^C@]C[CY[C@\[C[C\C\Ck]C]C^C_C_CaC5fCmC)uCYwC@uC&qCoC@hC&dCfaCaCEaC@bCYdC@iC@iC@aeCdCdCgCgC@!jCxC|C@vCjC@afCgCgCfCbC@_Cn`C=aCn`C@x_C^_Cc^CB^C^C^C@^C@]C=\C@SC@SCTCfUCVC@VC@\VCVCWCWC&XC)XC)XC XCXCXC@YC0ZC0ZC.ZC@ZCu\CZC=YC@\XCYC@YC@YCZC;[C[C@\C@]C\CR[C{[C@[C[C@J\C@]C@]C5^C^C_CYaCidC@kCtC@zC|C{zCcvCvCmC}eCbC#aCaCcCdCGiC{kCeC)dCcCdCeC@!fCqC0yCvCnC@hC@ jCjCjCieC`C@`C^aC5aC`C+_C^C^C^CG^C@a^C^^C\C;TC@SCUCUCVC;VC@VC@VCWCWCWCnXCXCXC#XC@XCYC@YC@!ZCGZCL[C[C@OZC@XC@XCYCYC^ZC@\ZC@\ZC[C)\C\C.\C[C[C[C[C[C@\C]C]C^C`C@sdCiCrCzC@a~C@\C|CcyC{CftCgCcC=aC.aCcCgCYjC)nC@OgCdCYcC=cC@cC@cC@iCRrC@8sCpC&kCkC@mCmCfiCbC`C`C@aC`C_C_C{^C@8^C@^CR^Cc^C@]C+TC@TCYUC+VCVCVC{VCWCWCWCEXCXCXCWCRXCYCYCYCcZC@ZC[C[CYCXC@sYC@YCYCYC@YC@aZC@3[C@[C[C@[C@ZC\C\C[C@\C ]C]C^CT_CBbC=iCpCWxC@{C}C}CyC0xC0zC=zCkCcCaCaCdC@iCmC@rC.lC fC@dCcC0bCbC@dCkClC@OnCmClCpCLpC@mCeCRaCaCTaCaCY`C_C_C}^C^C^C^C.^C=TCTCkUCRVC@VC&VC@OVC@WCWCWCXCYCXCWCXCYC@YC@YC@JZC@\ZC;[C[CZCYCZC@ZCYCfYC@YCZC[Cn[Cf[C@s[C[C[C\Cf\C@]C]C@]Cc^C@s`CdCnCuC@yCxC+zCWzCuuC.uCuC|CqCGeC@bC;bCfCmC@qC@3xCEtC}jCnfC@8dCkbCYbCbC@fCgCiCkmCumC@sC.tC@rCiCGbCaC`CaC`C_Cc_C^Cc^C&^C@]C]CTC@OUC@UC@\VCUCUC{WCWCTWCXCYYC@XCWCXCYC@YC@\YC@\YCTZC@ZCZCZC@YC@YCYC@YCYCZCYC)ZCZC;[C[C[C[C\C0\C\C5^CG^C]C^C@JaC@OgCqCvCvC@qC@!tCuCrCiqC;nC yC@8vCfC@cCRcCkhC@arCuC{C{CpCjCfCYcCLbC&bCcCdCBeCfiC@mCBsCwCvCoCdCnaC`CaCEaC@`C_Ck_C^C@s^C^C@^CTCTCUCiVCTVC=VCWCuWCWCXCYCXC0XC YCYCYCiYC@!ZC ZCZCZCZCYC)ZC@ZC@ZC=ZC}YC@YC^ZC[C0[C[C[C[Cc\CR\C ]CW^C+^C#^C^_C&bC5iCpC@qC;pCkCmC.qCpC@oC@xjCsCpxC@JjC eC@dCjCwCYxC|C~CwC@\qClC@3gC@cCbC@bCbC@bC@eC@jC@pC@3yCBzC@tChCbCfaC`C@aC`C@_C_C^Ci^C}^CB^C@sUCnUCLVC&VCVCVCpWC@3WCWCuYCXCWCXCYCZC.YCfYCYCYC[CZCuZC@8ZCZCZC}ZC@OZC^ZCGZCZC[C[C5\CB\C&\C@x\C\C]C^C^C@^CW`C@3cCjCkC@OkCjCfChClCoCnChC+nC@yCoCgC@ fCfmC5zCyC@xC|C@yCwC@sC@xlC@OfC dCbC@JbC&bCbCifCmC0wC@|CxCmC;dC@aC`C{aCfaC@J`C@_CL_C^C^C=^C=UC@UCVCUCVCWCcWCRWCXCXCGXC@aXCYCZC@YCYC)ZCRZC=ZCZCZC}ZCZCZCZC[CZC{ZCZCZCZC [C\C@J\CW\C\C\C^C^C_C`C@aC@\dCnhCfC;fC@8fCdC@fCGiCmCYpCiClCwC@sClCiCpC{CwCtC@vC@uC@zCyC@JsC@jCfCcC@bCaCbCcChC@qC{C|CrC0gCRbC@`CnaCaC`C_C_C@_C^C@^CkUC@UC@VC@UC@sVC+WCWCWC@\YCYC@XC@XCBZCZC{YC@ ZCBZCYCkZCZC@aZCZCZCZC[C[CZCkZCiZCiZCZC@[Ck\C@x\C\C=]C]C]C0_C_CaCbC@dCfC@dCcdC dCcCndCfC@xkC@ sCmC^nC@3wCxCrCnCsC}CuCRpCpC{oCvC|C@8yC5qCjC@!fC@cCbCaCaC@\dCkCuC@}C@vCnkC@JdCaC@\aCaC`Ck`Cp_C_C^C^C#UCUC=VCUCVCuWC@WCXCXCXCXCBYC[C@YC YCTZCYCYC;ZCZCZCZCRZCZCc[C&[C@8[C@ZC@ZC@ZC@ [C[C@\C@]CL]C@^C@ ^C@3^CT_C5`C@cCcCdC@dCcCcC cC@3cC=dC@8eChCsC@JtC5pC{xC}C wCsCuC@}C@8uClC@kCYjCpoC{C&{C)uCToCjC@ fCucCBbC@aCLbCfC@ nCyC@3yC@oCfCbCaCaCaC@`C_C_C^C@^CUC{UC0VC@ VCVCTWC+WC@xXC;XC5XCYCZC[C@YCYC^ZCZCBZCZCZC@8ZCZCZC[C[C[C[CZCZCTZCZC[C\C]C]C@^C]C^C_CbC@xeCdCdCYcCcCkcC)cCkbC@cC@ dC@!fC@rC@s{C@sC@3zCCzCuC@uC{CuvClCgC@gC@xiC@vC{CtCqC@soC#iCfC.cCbCaC@scC&hC@rCWxC@sCjC@dC@aCYbCaCaC@`C&`C@O_C^CUC@UC@UC^VC@VCWCWCfXCWCXCYC^\CZCYC@ZC@sZCYCZCZC}ZC@8ZC0ZC[C[C=\C)\Ck[CZCZCTZC[C@[C\C]C@x^C@^Cc^C@^C`CfcCgC@fC@eC@cCcCcCcCbCucC@3dCfeCqCC@xC|C:C{CsC@rCuCuCpC@8fC0eCcfCoC@ayC@qCpC@qCmCiC^eC@bCaCaCdCjC@sCuCYoC}gCbCbC)bCaC@`C}`C_C_C@\VCUCVCVCVCuWCXC@XCWC@xYC[C[CXC#YCBZCYC@8ZC@xZC@ZC@ZCYC@xZC@[C@\C@[C\C@a[C@ZC@ZCZC[Ci\C@\C@]C^CB^C^C^C5`CdC.hCfCdC@OcC@!dCcCpcCYcCWcC@dC=fCpCKC }CY~C€CzCoC@nC@nC@xqC=tCgC.dC#eCiCvCnpClC{oCoCmC@JiCdC bCaCbCeClCsCqCkCfeC@bCcC@ bC&aCG`C@O`C_CLVCUCWVC+WCkWCWC@WC}WC@aXCZC\CZC@xXC=YC@ ZCZC@ZCZCZCYC@!ZC;[C@[C@8\Cc\C[C[CZCfZCZC@[C@ \C#]C=^C@^C@^C@8^C@^C@`CeCigC@!fC^dCcCTdCcCcC@cC@JcCeCgCpCˀC{~C}C~CvC@lCkCiCpkC@ tC{kC}cCdCfCoCoC@xhCjCmCoC@nCgCbCaC@8bC}cCufCnCsC@spChCRcC@!cC&cCaC@`C=`C@_CUC@UCVCWCWCWCWCWC^YCiZC\CXCXCYC@aZC@!ZCZC[CYC@YCZCi[C[Cf\C}\C@\CZCZCZC&[C[Cu\CR]Ck^C@ _C^CR^C@ _C`C@dC@eC@\dCcC+dCdC)dCcC@cCcCfC@iCGqC CG{CuC@uC#mChCEiCfC@cC@iC@8pCfCcC@adCcfC&iC@fC&dC.fC@\iCnCRrCGhCbCaC@ObC@sbC@JeCnC@sCurCiCidCdCdCaC@`C`C@UCVC;WCRWCWC{WCGXCYCYC@\[CXC@8XCXC@YCGZCYCRZC@YCYYCZCk[C@[C@3\C@\CL\C[CZC@J[C[C[C@[C0\C@]C@ _C@^C@\^C@s^Ck_CaCbCcCbC&cC}cCdC@cC@3dCcCidCkgClCvC@CzCpCBoCiC@\gCgCfCcC@JeCTmCgCdCcC@seC@eC@eCcCdCfCiC@qC@ oCcC@sbCbCbC5cC@iCqCuCYoCfCdCYeCWcC.aC}`CGVC&WC WCWC@WCWC@XC+YC@ZCZCWC@sXCkYC@ZCZCZCYC@XCWYC5ZCf[C\C\C@ \CG\C[CZC[C[C[C@[C\C]CE_Cn^C^C^C#`CaCbCTcCcC@bCcCcCdCcC@dCfdCiC@pCzC CyC mCjCgCfCfC@afC dC}cCiCgCdCcC@dC@adC@dCdCcC@dCeC+lCcsC@gC@\bC)bC@abC@aC5fC0oC.tCsCBjC0eCfCdCaC`CYVC@VCpWCWC@WCWXCkXC@YCZC#YCWCYC@YCYCYCYC)YCXC{YC[C[C\C\CE\CY\C[C[C[Cc\C@O\C[Ci\Cn]C^CB^CT^C=_CaCaC@bCcC+cCcC@xcC@cC@cC+dCRdC#dCcjCtC+~CuC@zCkCEhC&gC@eC@xeCeCdCbC@eCpfCdC@8dCccC@cCcCWcCncC@JcCdCLgCqC{lCRcCbC@aC@aCcCkCqC@uC.oCfCgC@fC{cCYaC@VCVC}WCWCWC@xXCYCYCZCXC@XC@YC@YCZCRYCcYC@XC{XCYC@a[C@\C@J\C\C&\CR\C\Ck[C^\CT]C\C@[C@[C\C^C]C]C^_CaC@\bCbCdCcC@cCcC^cCcC@dC@dCdCkC@wCTC`CzCjCgCfCeCYeCdC@eC@cC^dCpeC5dCYdCcC@cCcC@xcC{cCcCBcCdC@8lCfqCeCbC+bCaCBbC@hCnCsC.sC@siC5gCphCeCaCfVC@\WCWCWCXC@XC@sYC@YC@!YCXCYCYCYCYCTYC)YCiXC@XCEZC@[CB\C@a\C@\CR\C@\C[C[C\CW]C@s\Ci[C}[C@\C^]C]C]C`C@JbCbCcCcCccCbCbC#cCcC&dCudCeCjC@wCీCC@|CkC@OfC}fCeCdC{dCgCeCcCRdCdCdC@cCucCLcC{cC dCcCpcCcChC+qChCcCbC@aC@aC@8eCBkC@8oCktCmC@fC@JiChCpcC@VC+WCcWCLXCWCWYCYCYCXCXCYCYCZCYC@8YCRXCWC0YCZC@\C;\C\C\C@J\C@\C@[C[C\C@3^CB\C@[C\Ci\C.]C@]C^C@!aC;cC@bC@8cCcC@\cC&cCbCbC)cCdC.dC#eCijCLvCC@ C}ClCfCeCdCdC@cCEhCcgC@cC@cCEdCueC@OdCcC0cCcC@cC@3dC dCcC@\fC@nCYlC@JdCcC@ObCaCRcCniCkCqC@pChChC jC=fC@VCWC@WC@WC@XCYCXCnYCXCYCZCYC@ZCfYCXCXCXCEYC@[C\Cc\C@]C\Cu\C[C[C[C}]C@!^C\C@[C@[CT\CY]C@J^C_CYbC;cCbCcCcC^cCbC@sbCbCbCccC0dCceC@JiCGtCC ΁C@\CnCeCeCdC@3dCcC@gC&jCdC=cC@dCTgCeCdCcCcC@dC@JdCEeCdCdC0lC@8nCfCdCucCbCaCfC@aiCmC@pC@jCRgCBkChC@JWCXCcXCRXC@8YC@ YC@\YC@sYCZC}ZCYC@YCBZCYCXC.XC}XC@YCR[C@[C+\C@\C@\CR\C=\C0[C[C]C@^C[C[C\C)]C@\]C#^C`CcCbCbC@cC@\cCLcCbC@abC@bCcCbCdC)eCgCqC@}C@C`fC&pC@eCdC@cCcC}cCBfCkCTeCcC@sdC@OhC@JhC@eC@OeC@cCcCLdCTfCkgCEdC@ iCmC@gC@eCdC.bC@8aCcChCjC@oClCgCjCkCcWCXCiXCkXCYCXCLYCYCZCYZC@YCYC@JZC@3YCYC@\XCYCZC[C[C@[C\C[C\C\C5[Cp[C]C@\]C#\C)\C\C.]C]CL_CaCcC@ObCpcCcC;cC@3bC@xbCbC=cC@bC0cCcCdCgCBnCY{CˁC@CsC#gCRdCpcCcC@scCeCiCfCBdC=dCgC}kC@fC@fCcCcC+dC@!fC@8jCfC=fClC@!iC@eCfC.cCaC@aC@fChCmC)mChC5hC@mCWCXCXCXC@XCYCYCYC&ZC@8ZCiYC=ZCYC@OYCXCXCEYCZC5[C@3[C[C@[C[C\C@[C@[C[C]C\C[C@\C=]C@]C&^C@O`C#cCbCbC@cCcCbC;bCkbCbCbCbC@xcCdCdCfCkCxC`C`CwCiCYdC&cC@8cC;cC@dCgC@sfC@\dCEdC{gC@mCiC5hCceC@cCdCneC@kCjC@dCiCiCfCYgCdCkbCBaC dC@!hCjClCiCfC@lC@\XC&YC=XC}XCYCLYCZCZC@ZCYCZC@ZCZCpYCYCXC&YC@ ZC[CZC^[Ck[C\C\C[C@![C[C@\C@[C@[C&\C]C@O^C_C=aCkcC@bCncCRdCcCbCbCbC@bCbCcCcCdC.eCgC@\jCGwCCC@OzCkC@dC0cC@bC@bCndC@eCfCdC@dC@3gCkC#lChC@JgC@xdCdC;eC{iC#pCGgC;fC&hCfC@gCgC0cCaCbCEgC iClCiCgCiCYCXCXCXCYC^ZC@sZC@ZCYC@YCZCLZC@YC@XC@XCYYC@ZCLZCZCZC[C@[C@[C\C@[C[C@[Cf\C\C[C\C@^C}^C_CaC@ cCbC.dC@dCpcCcC@bC^cCbCbC@cC@dC@eCfCiCkCLwC C@~CyCkC@eC@!cC@bCbCcCeC^eCdC@eC#gCiC@xlC@jChC@aeC&eCeCfC@3qClCneCfC@eCTgCiC+eC#bCaCidChCkC.kCEgCgC@YCpXCXCXCWYC@ZC[CLZCYCYCZCuZCYC@XCpYC0YC@ZCLZC@ZC@ZCZC@\[C\CY\C@8[Cc[C@[C[C\C\C@]C]C^Cf`C@ObC@bCbCdCcCpcCfcCbCbC@cCbC@cCdC@gCGhC@OjC^mC@vC.}C@xC@!uCjCfCcC+dC@cC@cCdCfC@OeC@eCfCiCkCkCcjCfC@eCgCTfCmCYqC@gCfeC eC@eCjC@ gCcCaCcC+gCjC@lC@\gC@eCTXC#XC@XC@YCYC=ZCcZCYCYC#ZCZCiZCYCRYC@xYCuYC@ZCiZC}ZC@ZCZC#[C@[C@[CT[CT[C{[C[C[C\C+]C@^C)_C`CaCibC dCdCcCcC0cC{bC&cCWcCcCdCkeCckCjC;kCnCYvC=yCrCWoC@iC@hCeCeCeCkcC@dCgC@fC@eCeCiC@skClCjC=hC@fCiCgChC@qCLkCYeCBdCndCRiCijC@dCaCaC@!eCiClCiCeC0XCBXC@XCYCYCZCZC@8YC@YCZCZCZC@YCEYCYCYCGZCZCZCnZCZCZC[C@\C[C[C[C@8\C5\C\Cp]C^C_CBaC@aCbC@dCdCcCbCbCkbCcCcCcCeCfCnC0mC@\jC@soC@uCRtC@mC.jCgCkCiCfCfC@cCdCgC@shCeCeCgCkCmCjCjC@gC=jC@3jCgClC@aoC=gC5dC@!dCWfClCfCYcCaCcCgCkCTlC0fCWCXCYCYCYCLZC@YCYCcZC[CZCkYCBYC@YCZCZCZC@xZC@OZCZC[C@J[C@a[C@[C[C[C0\C\CT\C\C]C^Cp`C@aC=bC@cC@fCdC@cCbCbC0cCcC@!dC@dCpgCgC5nC;mC@hC@nCsCpCiCfCfC nC&nC@hChCdCcCfCjCfCfCeC@iC0nCkClC@hC@iCmCiChCnCjC#eCdCdCkCiCdCbCaCeCiC@OmCgC@XCXC@sYC@YCZC@YCYCZCZC[CBZCLYCLYCYCZC[CZC0ZCYZC&[CG[CZC[C[C[C@\Cf\C\C@!\C\C]Cu_C`CaCbC@\eCgC@OdCbC@bC{bC;cCcCdCeChC+iC@lCikCgClCrC@nCgC}eCeCpmC@apCjCiC+gCndCeCiCYhC@fCdCBgC{nCYmCGmC@3kCjC@8oCclC@hCfkC@mC@fCdC@dC@hClCfCfcCaCbC0hC@kC@jC+XC@YCYCYCZCYCYCZCZC@ZC)ZCYCpYCLZCZCZCZCZCZCZCZC;[Cf[C[C\C\C@]C@\\C\C)]C^C`CaCLbC)cCfC@gC@8dCbCkbC@bC@cC@!dC{dCfC@jC@JjC@jChC0gCWjC@qCmCfCdCeCkCnClC#jChC@xeCpdC@gC&iCfCdC#eC@kC@nCmCnC@\kCRnCnCjCiCmCiCdC^dCfC@lCgCdCRbCbC#fCjC@lC;YCLYCGYC@YC@YCZCTZCWZCkZCZCpYC^YCYC@ [CZCZCZCZCZCZC[Cf[C[C[C@\C@8]C\C^\Cp\Ci]C^_C`CBbC@bC#dC5gC+fCcCbCbCcCYdC@8dCdCfCkC@iCgCgCgCjCoCYmC@3fCBdCeC+hCjCjCjC@jCfCdCeCciCfCdC.dCkgC@nCinCqCmCmCpCmCiC@kCmC{fC@dCdCYjCjCeCcCaC@cC@hCkCXC5YCYCZC@YCYCYCkZCZCYCYCYCZCZC.[C[CZCZCZC@![CY[C[C[C[C]C]C@]C@\\C]C@]C_CaCbCcC@dC@fCYeCicCnbC{cCdCdCdCBfCgC@jCWhCgC{hC@iCjClCkC@eC.dCdCfC0hChCkCBlC@hCLfCeCGgCfCdCcC&eCjC oCqC@pCmC)qCpCkC@jCnC{iC.eC&dCgClCfC#eCbC+bC0fC@iC0ZC@3YCYCZCYCYCRZC@ZCiZCYCYCZCZCE[CW[C=[CZCZCZC5[CB[C[C@[C[CG]C@\]C\Cn\C]C^^Ci`C@aCbCcCdCeC@!dCbCbC@cCeC@eCeCgCRgC{iCgCfhClC&nCYlC5jChC@eCdCceC@fCBhC@8iClCnCiC@hC{fC@afCfCdCcCdCfCmCqCtC@nCpC@aqC@nCjCnCmCfCudCYeCWkC@iC@eCdCaCcChC@YC@YC@aZCYCYCYCuZCYCYCYC#ZCfZC5[C[C}[C&[C@ZC@ZC5[C[C[C@s[C[C\CW]CE]C\C\C]C^C@!aCBbC@ cCcCEdCBdCcCbCbCdCfC@aeC@fChC@gChC@hC@kCpCcsCmChCTgCTfC5eC@eCgCjC@\lCpCEsCBnClC@iC@3fC.fC@dCcC=dC@eCiC@qC&wCrC@anCrCqClClC@pCciCeCdC@hCikCfC+fCbCbC@eC@YCuYCZC5YC@YC.ZC@ZCYC@JYC@ZCYCZCR[C[C0[CY[CZC[C[C[C@\[CT[C[Cf\C ]Ci\C@\C]Cc^C_CfaCubCfcCcCcC@cCbC@sbCcCYeC@fC@eC@8gCjC&hCjC@kCoCWsCYvCnC@ hCBhCgC@fCeChCmCqCtCTxCsCpCmCgCTeCdCdC@dCdCRfC@oCuvC;wC@\mC5rCtC@nC0kC@OpCmC@OhC eC@fCkChC@fCdC@aC@cC#YCYCkYCYCYCYCYCYCYCcZC@ZCL[C[CY[C[CT[CZC@[C#[C[C[C@[Cf[C@8\C@\]C@\C]C]C@^C&`C@aCbC@cCdCbCbCbCbCdCeC@fCeC gCjCYiCRlC@nCsCqC@tClCiC@aiCiC@hC@fC#iCoC@8uCyC}CyC^uC@rC@alC@eC@dCcCdCYdCdCkCtCyC@oC@ oCuC.rCkCmCpC@ lCfC@eCLiCkCfC=gCBcC@bCXCYC@YCYCYCYCYCZC+ZCZCZC@O[C[C@\[C[C[C[C&[C@x[C[C[C[C@[C\C\C@\CE]C@^C_C@!aCpbCcCpdCcCbCbCbC}cCeCeC@eCeC@!gCiC@jCYnC@xoCrC+mCoCLkCLjC@iC@!kCiC^fChCWnCuC|CC@|CyC#uC rC@xhC@8eCdCdCdC@\dC@fC@oCxCtCckC@\uCkuCoCnkCpCGpCWjCpfCgCWkC@hCBhC)eC@sbC{YCuYC0YCYCYCYCYCYCZC}ZCZCR[C&[CG[CY[CZCZC&[C[C@x[C\C@[C@x\Cf\C{\C@\C@]C@J_C`CGbCbCcC^dC@3cCGbCaCbC@dCeCeC@ fCeC}fCiClCnCmC@nC@8iCkC@kC+lC@iCWjCiCeCgClC@rC|C`8C5}C@!{C@tC@ vC@lCfC.dCdCeC@dCeCjC@tCvC@alCpC@wCkrClCmC+rCoCgC@fC@jC@8kCgC.hCbC@OYC YC@YC@YC@YCpYCYC+ZC#[CfZC@a[C@O[C@x[C@ZC[C[CZC[C@[CY\C)\C@!\C@a\C&\C;\C5]C^C_C@!aC@cCbCcCcCEcC@bC@aCbC@adCeCeCeC@eC=fChC}mCnC^jC@aiC^fC iCmCnnCLiCLhCiC@eCfC@iC@nCLxC{C@{CxCqC@suC0rCiCLeCdCufCeCudCgCBpCtCoCkC@vC@avCoC@kCpC@tC@mCfCgC@JlChC@xiCeCXCXCEYCpYCYCpYCYCZCZC{ZC@a[C@O[CZC0[C[C[C@x[C@ \C\C\C)\C^\CL\C\C\C@]C@_C@`CbC5dCTcCbC@8cC0cCaC@aC@cCeCeCeC@eC)eCeCiCBoCnCgCLfCfeC=hCoCqC@aiC@fCgC&eCeCgC@\jCLrC=uCEwC@xtCGpC@qCtCmC}gCdCgC@gC@dCifC@kC@srCpC@kC@OpC yC}rClClCtCtCiCufC@kCkC5iCBiCfXC@XCYCYCYCYC&ZCZCfZC@ZC[C@![C@[C\C@[C[C[C.\C\C\C@\Cn\Cp\C\C]C^Ck`CbC@cCdCbCEbC@bCbCaCTbC@\dCeCeCeCdCdC#fCkCoCGmC@8fCdCdCgC@xpCqC@siCeC@eCdCdCeCgC0mC@3pC@qCpCnC@nC@sC0nC@jCdCgCgCeCeCiC@pCoCkCkCGvC@vCoC@8kC@pCyCppCgChCmC#jC@kC.XCXCpYC@sYCLYCYC+ZCkZCkZC [CZCZCR[C@s[CZCB[C@[C@s\C\C\C@\C\C\C;\C ]C}_C+aCbC#dCcC@JbC@aCbC@ObCaCbC@ eCfC@fCeC@xeCeCfClCoCjCneC@sdCdCfCnC pCciCeC=eC@\dC^dCdC@fChCmC@mC@alCkCkCkpC=mCjCeCeCGgCeCeCiCTnC@nCRkCiC@oCxC@ rCnCkC xCxClC5gCmCRlC5kC@8XCXC@OYC=YCTYCYCYC ZC^ZC@[C[CZCE[C[C@[C5[C+\Ci\C\C\C\C\C\C=]C]C+`C@aC@cCBdC@cCaCaCbCbCbCcC@!fCgCfCfCeCfC@OhC#oC=oChCfCdC@ eC.fC)lC@lC hCneC@dCdCcCdC@ fCufCjCkCiC@siCiC#mCBkCfiC#gCdCYfC fCeCiC5nCToCkCiC@OkC5vCtCpC@kC@3rC}CsCTiCjC{mCTkC5XCXCYCRYC}YCcYCGZCYC@sZC+[CZCn[C[C@[C@[C@[C\Cf\C@\C\C]C ]C@O]C)]C^C`CaCBdCdC@3cCaCaC^bC@saCbCdC@sfC@xhCgCfC=fC@gC@kC@aoC@mCgC@hCfCeC@eC jC^iCfC@dC@8dCcCcCWdC@xeCeCgCpjCiChC@gC jC@iC@fC gCGeC@eCeCdC@gCnCpClC@!iCiCpCGwCqC@8nClC0{CY|CnC@8hCnClCXC=YC@8YC{YCYCYCYC@ ZC[C[C+[Cn[C[C[C@[C\C@\C\C ]C0]C+]C]C^C]C_C@`C@cCdCdC@bCaCfbC@JbCaC@bC eC+gCniCgCfChCjCmClCjC@ iC=mC@jCfC@OgC;iCgCdCcC{cC+cCcCcC@aeCdCeChCiCfCfC@JgChC@fC.eCeCfCdCkdC)fCoCqCmCiCiClC=uCsCpC^lC@JsCGCvC@iCkCknCXC@aYC@\YCYC@YC@YCYCnZCZCL[C;[C@[C@[C[C[Cf\C@\C@]C0]C]C@]C]CB^C^C}_C0aC@cCdCcCpbC@aCbCYbCaCcC@eC@gC@OjCgCLgC@siC@lCpnC@akCjCkCqCknCihCBhC5iCeC@cCcC@cCbC@cCcCdCcCdC{eChCgCfCeCgCgCdCWeChCeCcC+eCclC@rCpCjChCjCpC0uC@qCnCmC;}C~C@pC@hC@8nCcXCYCTYCWYCnYCYCTYC;ZC[CB[C[C[C[C[C@[C+]C&]C\C&]C]C^C@3^C ^C@^C_CaC@cC@dC@!cCaCaCbC#bCYbC@cC;eChCiCgCgC@!jClClC;iC@kC@!oCtCqCiC{jCjCieCcCbC@bC@bC@ cCbCbC#cCRcC@8dCfC@fC@eC@ eCYeChCeC@dC@hC{hCcC{dCuhC@asCqC@lC@hC@iCnC}tCsC@!qCmCuCC#yC@xjC@kCYC@YCuYC;YC)YCYCYZCZC}[C[C \C&\C[C[CW\C#]C]C]CG]C^C@J^C^C^C@_C;`CWbC@dCdCYcC{aC#bC@bCbC)bCncCeC5hChCfC0hC@iC@iCjC@\iCnCrC)uCrC;iC@lCTkC@eC+cCaCWbCEbCcCbC@JbC@abC@!cCcC0eCfCeCeCdCgChCdC@gC=jCdC5dC)fCqCqC+mCjCkiClCqCuCrCpC@oC}CC=qChC@YC@\YCYC@YCYCYCYCZC^[C[C\C@[C[Cf\C@3]C@]C]C}]C ^C@s^C^C^C@3_C@`CiaCcCcC dCkbCGaCYbCbC@!cC@!bC@cCeCgC@gC@ gCgC hCgCgCiCqCtCnsCpCchClClCEeC#cC@abCaC@bC@cCbC.bCbCbCcCEdCeCngCfC@JeCfCjC{eC@eC{iC=fCdCdCmCrCTlC+kCiC@lCppCvCuCqC@oCLvC0C+zC@iCRYC@8YC@ YC@JYCYC5YC@ZC)[C@[C@\\C@ \C[C \C]C]C@J]C@]C]CR^Cu_C_Cu_C@ `C@s`CbC0dCdC&dCbC@aCaC@bCcC@bC+cC=fCfCfC@fChCBgCeC#gC@!kCsCusCoC@lC@fCkClC^eCbCbCnaCbC@cCbC@xaC{aCLbCbCcCpeC@sgCngC@\fCfCBjCgCeCcgCgC@3dC@3dChC5rCkC@iCjCkCoC@tC5xCsC@OqC@xpC~C CCCiyC@mClC@JmC@xcC5`C^C0^C]C]Ci\C[C[C\C#]C@]C]C]CB]CE]C]C ^C@]C^C@^C_Cp`CaCbCWbCdCfC@hChCgCeCdCcC@8cCRcCfClClCnCjCniC5lCfCZC@[C@\C\C]C^CT_Ck_Ck_C@_C0aC5aC^aCbCcC&dCcC@cCccCLcCcC@cC dCGeC@\eCRdCbCbC@bC@bC#jC=yC'C=C .CC]C`/C NC@CC}CuCkCjCmC@cC@ `C^C.^Cn]C)]C\C[C[CZC[C\C]Cf]C]C@\C]C@x]C@\C@\]C^C{^C_C@\`CaCbC&cC@dC}gCgC@gCeC@OeCdC^cCbCdCjC nCunCmCiCkCiCi[C[C\C]C@O^C._C_C_C0_C`C@saCaCbC@bCidC@dC@8dCcC@cCccCcCcC@xdC eC@fCcCbCbCcCpcC@nC@ʀCWCiC %C]C@JCC`C`C@ʈC~C@rCiCiCnC@\dC_C^C^C]C]C\C\C@ZCLZCZC[C\C+]C\C\C@8]C\C\C@\Cn]C]C^C_C@a`C@!aCaCGcC@OeC}gCfCeCReCfC@dCbCccCfClC@!oC@soC@kCjClC[C\C]C]C@^C_C`C_C_C@JaCaCaCbC@cCkdC}dC@xdCcCTcCcCcCTcC&dC@eC@eCcC@bC@bCcCcC@sC C nCbCފCC`C@CC`CCLC&rC@hCiCmC@JdC_C^C^C]C]C{]Cf\C@[C#ZCYCYC@a[CG\C@\C@\C\C@\\Ck\C@\C\CG]C]C^C_Ci`C&aCaCcC@\fCGfCeCeCgCfCicCbC@xdCjC@oC@!pCTmCEkCnlC@8\C\C@O]C]C_C`C;`C@`C}`CaCbC@3bC+cCcCdCdC@dCcCicC@cC^cCicCcCueCLeC@bC@JbC@xbC@cCdCirC CC"C@C̉CLCCkC@C ECC.tC&gCgCLjCcC@_C^Cn^Ck^C^C]C@ ]C[C@aZCYC@XCZC@x[C \C#\Ci\C@[C[C[C[C@O\C@ ]C]C_C_CT`CWaCbC}dCeCdCndCgCgC@dCbC{cCTfClC5qCoC@alCkC\C]C]C^C5`C`C0`C`CiaCbC^bCbCcC@dCdCdC+dCcCpcCcC=cC@\cCdC@eC+eCcCRbCRcC@cC@dC}oCCCC CCCCCTCొCC+zC.gC{eCfC^bC^C@a^C]C^C^C^C@]Cn\CZC@aYCXC@YC@YC[C@[C@[Ci[C[Cu[C[C[C\C]C^C^C@O_C`C@8aCbCpdCcC@dC@3eCjC.gCcC0cC@OdChCpCqCGmClC@ ]C]C^C_C`C@aCf`C`C@\bCbCbCcC@OdCTeCdCdC@OdCcCcC=cC@acCcC=dC@OeCdC@ cC@abCcC@dCdC5lC`FCՊCڊC`C ΉC̊CC@CC CbCCuhCcC;dC#aC@^C@^C@\^C^C`C`C^C ]C@ [CYC@XC@OXC^YCYCB[C\C[C@ZCZC[C[C[C[Cc]C]C@^C#`C@8`CBaC@bC@cC@8cCbCiCiCfCbC@xcCeC5mCrCoCmC0^Ci^C_C=aCTaC`C`CaCEcCbCWcCcCdCdCdCdC@!eCcCcCcC@cCcC}dCeCdC@cC@bCcCdCcC@lC`C@C C C4CgCCC eC@CZCC@iC.cC@bC`C^C ^C@a^C_C0`C`C_C]C@[CZCXCXCXCYCYCZCZCZC)ZCLZC@xZC@ZCu[C\CE]C^C_C_C@8`CaC@bCkbCBbCfC=kC@JiCdCbCcC@gCqC@!sCmC]C@J_C`CaCiaC`C`CbCcCcC}cCfdC^eCdCdC@eC@JeCcCkcC)cCcCcCdCeCdCcCbC@cC@cCcCpCGCC C̉C~CIC@SCGCCC %C nC`؅CkjCcC;aC_C^C@3^C^C}_CB`C`C@`C_Ck\CZC@JYCRXCWCWCXCYC@YCYCYC5ZC#ZC@ZCZC@[C@\C]CG^C@_C_C^`CaCaCaCbC.jCjChC@cCRcCeClCsCpC@^C_C@`CbC aCpaCaC@cCcC@!cCcCdCdCWdCdCWfC@dCcC@cCdCYcCcCneCeCcCcCbCcCcCidCtC`φC>C@C@JCC CQCpCC |C@CCjC+bCaCT_C^C^Ck^C@a_C_C@_C.`C_C@]C[CRZCYC#XCWCWCnXCWYCYCcYC@YC@YCYCZC@ZC[C\C]C^C^C@s_C@O`CaCTaCaCfC@kC&lCffC@cCcC{gCpCsCp_C@`CfbCbCaCaCbC@3dC@cC@scCdCeC@dCcCfC@gCdCcCcC.dCBcCdCeC@dCcCcCbCcCcC@eC@vC@AC |C@CCCC C࣋C CCCClCiCaC`C_C^C]C^C^C_C^C_Ck`C]C0[C@ [C#ZC@!XCkWCWC@!WCWC@XCXC@XC@XC@8YCYC^ZC@3[C.\C@\C]C^C@3_C_C`C)aCaC@bC@iC@ mCTkCdCicCdC@slCsC_C@aC@bCaC@3aCaCcCdC@cCcCeCdCYdC)dC@xgC=fC@cC@cCndCcCcCdCeC@cC)cCbCbC@cCcCfCxCC`C`CCUCbC@C@CCC C~C.hCBaC}_C^C@^Cn]C]C;^C@_CW^C@O^C_C^C[C[C@aZCXCWC@!VC@OVCkVC@VCWC@OXC@XCXC@8YC@YCZCG[C5\C@\C]C@^C_C_CW`CaCaCeCjCnoCThCcCcC0gCpC`CbC}bC@saC^aCTbCcCccCcCndCeCBeC@3dCdCuhCdC@OcCdCdCcCcCBeCYeCcCkcCcCTcC@dCcChCzCcCCCqC \C@CыC C@CC7CtC@fC.aC_CY^C^C0]C@]C]C@s^C.^C\CE]CG]CE[CZC@ZC.YCWCVCUCUCRVCVCWCWCRXCXC;YCYC@ZC[C@\C\C@8^C^C5_C`C`C`CbC@OgC@3oCmC+fC+dCdCkC@aC;cCRbCaC@JaC@cC@cC@cCucCdC=eCdC@cCfCGhC@adCdC@fCdCdCdC+eCdCicC+cCcCcCdC=dC@mCTC`C@C C@CWC`OC@C@CŠC0CGC&xCTeCkaC_C^Cp]CL\Cc\C@\C@]C@\C \C@[C}[CZCZC@ZCYCLXC@sVCVC@3UC0UCUC@VCWCWCWCXC@YC;ZCZC#\C\C}]CY^C@^C@J_C_CBaCaCGdCjCqCjC@dCcCGgCbC cC@aCkaCbCcCcC@scCdC^eC@8eCdCkdC@iC@fCpdCBgC@xhCdCcC@adCdCndC@OcC&cCcCdCeC@dC@OtC eC@3C‹CыC CCCPC CCC C~C@8pCdC`C^C^C]C@[C@ \C\C{\C@!\C [C}ZCkZC@YC@xYC@YC{YCXCVCUCWUCRUC@UC.VCYVC@WCkWCWCWXC=YCiZCu[C[C\C@]C ^C^C0_CY`C@aC@aCeCpCoCgCcCkdC)cC}bCaCnaCaC@ cC@\cCcCfeCdC@eCdC@fC{jCeCeCjC=hCBdCcCLdCdCdCbCcCbCeC@aeCfCn{C@CC C CCъC)C CC`C`8C+zC+kCcCaC@_C^C]C[C@[CL[C[C[CZCYC@JYC@aYCXCXC)YCXC)WC VCUC+UCUCUC@UCVCVCYWCWCXCYCZC@![C\C]Ci]C@a^C@^C@_C`C`CcC@kCsCkCdC@cCcC@JbCaC@aC#bC@cCcCdCeCdC@dCcC@ kCuiCeC@gC@mCWfCcCcC0dCWfCcC@3cC@cCcC=gCkeCiCyCC ܋CCыC CيCC࣋CcC ECCYzC;jC@dC@`CW`C@3_C\C[CZC@xZCZCZC@ZCYC@XC@XC@XCXCXCnXC@8WCGVCUCUCVCUCUCBVCWCVC@WCWCXCYC@aZC[C\C@]C@^C@\^C@^C@O`C`C`CceC@qCpCgCcCcCaCaCaCbC@bC@ cC=eC)eCTdCWdC@afC@aoC@!hC@eC@sjCRkC=eC5cCcCdCgCcCfcCcCLdCfC eCnC,CC`fC`CЋCbC7C#CC .CЉC@*CB}CjCcC`Cu`Cc_C\Cf[CEZCYCYCZC@sYC@JYCXCXC@\XCEXCXCXCWCVCUCUC@JVC@ VCUC@sVC@VC@VCiVCVCXC{XCZCRZC[C\C}]C]C)^C@\_C+`C `CbCkC@tClC@dCnbCaCaC=bC@bCbCcCeCdC=dCdC lC@oCfCffC+kC@hCdC@scCcCfCfC0dCcCRcC@dC@eCeCuCC`C`CC࣋CC CkCCCCCCkC@cCaC5`C^C]CZC@YCXCpXCYCpYC@3YC@XCBXCXCEXCXC@XC@8XC@WCVCcVCVCVCVCVCVCVC WCVCVCWC0YCYCZC@\C\C]C]C^C+`C@J`C@`CffC@rCurCRhCcbCaCbC@aC@bCbC@adCeCLdC@JdCeCrCkCdC@sfC0iCfCdC@dC@!dCgC+fCcCcCpcCdC@3eC@gC@x~CC+CCъCCC`&C C`OC#CCC`C eCCzCgC5`C`C@s]C@8\CZC@XCWCLUCYUCLVCWCWC@XCWCkXC@XCWXC+YC.YC@XCWXCWC@WC@WC@!XC@XC@OXCXCWC@JWCVCpVCVC@WC{XC+YCZC@s[C@]C\C^C5_C@_C`CdC5pC@\vC@aCbCbCTbCbCdCdCEdC@cCgCsCjCpdC=dCeCfC@afCeCeC@fCfCndC@xcCRcC@fCfCgCC@CCCUCC C#CيC C CpC`oC`OC.uC@dC^Cu^C+\C[C@ ZCRXC;VCUC5UCUC@VCWCWC@WC@3XCXCpXC@XCZC@YC}YCkXCfXCcXCXCXCXCXCXCWC0WC@WCGVCVCXC@aXCYCL[C5\C]C;]C_C_C`CLbCjCuC@bC@3bCbCbCbCdCdC@8dC@!dCclC;rCLgC@dC@dCeCfCfCfCeC;fC@OeCudCcCdCYiCfCnC`fC ECCCbC CC`CC~CC@sC@C`υCoCcbC^C@ ]CZCYCBYCWCWVCUCTCTC)VC@WC@WC@WC@XCGYCXC@YCpZC@ZCZCYCXC&YC&YCXCXCYC@XCWC@WC@8WCGWC@VCRWCXCXCZCW[C@\C]C@3^C_CY`CRaCfC@rCGbCkbCRbCbC@cCdC.dC@cCufCpC oC+eC@ dCidCfCfC@3gCgCeC@eCeCcCcCifCkCfC@xCCtC \C@C`CCC`ƊC CC@C C݉CkC;kC`C@]C[CZCXCXCWCUCTCRTC@UCUC@WC+XCYXC+YCYCYCZC@x[CB[CZCZC@YCYC@!YC@!YCXCYCXC@sXC)XCXCkWCWCVCWC@aXCYCZC\C\Cn]C^C_C`CcCYnCbCbCbCcC@ eCeC@!dCGdCiCtCjC@xdCcCdC@\fCfC@gCLgCeCfC@ fC@adC&dCiCkC@hC@C5C@ CC`CCC@CC@C@CKCuC~CC>C{hC_C]CZCXCWC@WCVCUC0UCUC#UCUCLWC@WC@XCGYC}ZCZCYC[C[C@8[C[C.[CZC@sZC@YC}YCXCYCXCXCWCWCYWCVCVCWCXCZC[C@\C\C^C_C@_CfbCiCbCbCbCBcC#eC@3eCpdCeC}oCutC;gCRdCcC.eCufCWgC hCkfCdCfCieCcCueC@lC@OiC&mCC@C^C຋CCWCຊCC`CC@ C@SC`CC`OCWhC_C\C^ZCWC+WC&WCVCWVCUC=UCLUCUC@aWCpXCYC+ZC#[C;[C@\ZC\C[C[C\C[C[C@ZC5ZCYCWYC@ YC@XC=YCXCWXCWCVC@VC@VCXC#YCkZC@[C@\C^C_C@_C@saCEeC=cC@bCcCBdCeC@xeC@dC@hCuCoCdCdCdCeC}fCgC&hC@ fC{eCgC0eCdC#iCmChCuCUCqC@3CcCTCCZC`CC C@C1C C CTCLkC@x_C\CYCVCVC0WC@VCuVCUCUCUC@3VCWCXCcYCZC[C)\C[C@[C[C\C@8\C\C[C [Cc[CZCYC=YC+YC@3YC@ YC@XCWCXCVCVC#WC@sXC@YCZC\C\C^Cn`C`CGcC@acC@3cC@sdCRgC&hCfC@dCnCvCRjCdCdC@dCeC@fC{hC@gCfCBfC@gCdCeClCWkC.kCCCC .C@C %C C@CCC@CCYCtCIC౅CoC@_Ck[CXC@ WC@aVCVCVCVCVCUCUC0VCWCXC@YC}[C@a\C]C[C[C0\C@[C\Cc]CT\C[C[C@8[CTZCZC@YCYCYYC@YCYC;XC@aWCRVCVCWC@XCYC[CL\C@ ^C_C`CaCTcC@xcC@eC&iChCeCgCWtCrCeCkdCpdC)eC.fC@8gC.hCgC5fCgCfCcdChCnC@iCusClC`oC@CC݉C@SCC %CొCŠCCCC`CCC@3tC=_CZC@OXCWCiVC@ WC@VC@VCVCVC=VCVCWCXC ZC\C]Cu`C]C@x[CL\CT\C\C@x^C\C@[C[C=[CZCuZCYCZCYCYC@XCXC@XCVCnVCWCXC@xYCZC+\C\CY_C`C.aCucCdC@shCkC@siCeCmCuC@kC@dCdC@dC@JeC&fCgCgC5hCRgCgCeCdC@skC;lCBkC@SC`/CCC`CPC C ΊCCÊCC`C@C@CCCCYwC_C@ZCWCWCVC@VC)WCWCWCWCVCRWC@WCXC&[C]C{^CcCaC}\CE\C@a\C]C^C0^Cp[C[CL[CZCZCpZCYCRZCLZCRYCXCXC@VC&VC@VCWC@XC@YC@x[C@s\C@a^CY`C@`CYdC fC@lC nC@hCBgC@qCqCgCdCdCeCeCfCugChCjC&hCgC#eCeCkChCsCqCCC C`CC@C݊C`OC݊CCYC^CC CCˉCkyC@_C@ZCLXC@WC@!WC@VCYWC=XC@XCWC@WCWCXCuYC[Cf_C@ `C@\fCEgC@^C]C@]C]Cp_C_CY\C[C{[C[C[C@[CkZCZC [CYC@YC@XC@WCVCVCVC&XC@xYCkZC[C@\C@3`C+aCdCiCkpC@xnC@xfC@jCqClC^fCkdCndCdCeCgCfCjCkChCfCdCfChC@iCCއC@C׋C@C ΉC %CC̊C@ӊCCCՉC`υC \CGCZCCyC_CZC@OXC@WC5WC@\WCWC@aYCYCXCXC@XC@JYC@YC@\C0aCaCLfCkCbCi^C@_C^C_C#aC@]C@[C}[C[C@ZCG[CZCZC@[C)ZCYC@XCuXCVCVC@VC@WCXCYC#[C@J\C^C@aCTfC oCsC@JkCeC#nCoC=iC@eCdCdCdCeCgC{gCpnCkC@hCeCdCkfC@fCoCCpC`&C5CCwC`C@C`CC׊CCˉC NCCC'CCC@yC`CRZCXC@XC@WCWCXCZCZCYC@YCBZCYZCZC@!]CYaC@bCTeClChCaCaC;_C@J_CLaC@^C@!\C@[CW[C[C@ [C=[C[C@O[CZC ZC@XCuXC@WCVC@VCVCXCXCYCG[C@]C@x`C;jC@ssCrCgCThC@nCumCfCdCdCdC{eC{hC@3hC@ajCBqCjCgCdCdCfChCzC`xCPC@C]C %C`FCiC)CފC`CCCɉCCމC %CBCCxC_C@xZCuXCXCWCWCYC[C@[CLZC@ZC@[C@[C@O[C]CaCdCdCiCmC+fCcCfaC@^C`C=`CE\C@[C@[C[C[C@[C@O[C [C@ZC0ZCYCXC@WC@WCUCkVCWCXCYCZC;\C5_CkoC@uC;nCeCWjCGpC@jCeCdCdCdCWfCkC)hCoC)pCiCeC@dC@dCgC@aoC@C`ϊC@C@C@C eC |CɊC C@ C0CTC`C C CC`C NCຉCwC_CZC)YC@XC&XC5XC@8ZC\C{\CZCZC@!]Cu]C}\C^C`C5dCdCeC@OmCnjC@8dCaC@]C@x_C@_Cu]C[C@[C&[C{[C+\C[C[C+[C=ZCfYCXCXCGWCVCUC@VCWCXC;ZC+[C]CfsCGtC}hCfCplCqC@xiCeCieC{eCdCjClCjC&sC@\nCkhCeCGdC@eC lC@azCWCGCьCnjC |C`xCCCCCCC@SC C`&C)CCC"CYCtC_CL[C YC^XC@3XCnXCT[C@3]C@\C@![CE[C]C^C]C^Cc`C cCdC@!dCiClCeCaC]C]C^C=^C[C[C[C@J[C@\Cc\C@[C;[C@ZC@YCYC@XC@XC@VC@ VC@sVC@VCXCEYC@sZC\CtCnCeCgCcpC@oC@8gCfCGeCneC)fCBoCkCnC@srCimCfC@ eCcdC@gC^rC@AC9C+C C`όClC~C@aCWCC CC`C@CCKC@!CC@sC`C@3rC_Ci[CYC;XC#XC5XC[C@]C\C;[C@[C]C@!`Ci_C_C`CaCicC@bCfC@iC0eC{`C@J]C\C\C@s]C\C[C\C@!\C#]C\C@O\Ci[CZCYC;YCXCTXC@WCcVC{UCiVCWC^YCYC[CqCgCeCjCsC@!mCfC@eC@8eC5eCniCrCkCpCBqCkCfCdCdCkjC}yC C`&CUC nC_CB[CXCXCXC@\YC@XC\C_C@^C_C;]CbC)kCiC@seC@bCEcCaCi_C_C5_C^C@]C@^C}\C@[C}ZCL[C[C^C_C_C@8`C]C;[C@8ZC@ZCXCnXC@XC@sXC{WCVCUCVC@OWCXCdCfCWpC@uC@kC^gCgCfC@OfCmC@uC@pCnkC;nCnlCkfC^dCfC}qCC"CC %CC@ӌCCCCC5C CÉCgCCొCqCpCZCъC ΊCwC@ mC_C[C}XCuXCXC=YCXC)\C`C`CaC^C)aClClCdC@`C@OcCbC@_C^C@!^C@]C]C_C]C[CZCZC [C}]C@3`C^C`C@^C[CZC0ZC@YC{XC@\XCXCWCVC{UC@aUCVCXC@dC@gCtC@ sCiCgC@fC@!gChCYpCwC@lCjCoCYlC@dCdCiC{CC@CCÌCຌCڌCCC CъCމC@C׉C CފC`FC`CڊCڊC C`CC=kC_C@[CXCXCYCYCYXC@ZC`C@`C@cCL_C_CjC+mC@ dCk_C^aCicC@_C]C@!^C@a]C]C;aC@!_C[C ZC@aZC{ZC@a[C@ `C@O_C@`C@_C\CZC@YC@YC@XC^XC.XC@XC#WCUCTCUCWC{dCkCwC)oC@gCBhCgC@gC@JjCitCitC@iC@lCGrCiC@OdC=eC@!oC %CຉCCC@CCC,C׋C@JCC`CcC C@CC@CˉC5CC@JC]CIC.jC`C0\C@YCYCYCYCBXC@JZC]C_CdC`C}^C@eCjCbCp^C;`CbCW`C@J]C@x]C@!]C]C@aCbCu\CZC ZCYC)ZC]C@_C@s_CB`C@]CZC.ZCYCYC@\XCXCXCWCVC^UCTCVCeC@pCGvCjC@gCgCgChCkCTwC+nCiCqC@ rCfCcC&fC@sCC@CCCqCCCUCuCC@JCC"C,C CBC`CCCC=CpCChC`C\CLYC@XC@XCXCnXC}YCW[C@8^C0dC@JbC^CaC@!fCaC]Cf`CaC_C@8]C@]CL]C@ ]CW`CfCT^CZCYCYCYCk[C^C@^C_CW_C@\CnZC^YC YC@sXCWCnXCLXCWC@UC@ UCUChCtCrC@hC@gCgCRiC@ hCoCtC jCBlCtCmCdCdC@ hCkvC'C CٌCCkCCC`/C0CC NCCC eC C@CljCC nC`CLCC@*CɃChCaC]C@YCYC@xXC@XCXCYC@ZC@\C@aCcC^C^C5aC`C]C_C@!bCG`C&]C]C]C)\C^CfCaCG[C&ZCYCYC@8ZCi\CB^C#_C_C@!]C[C@YCXC@XCXCGXC@XC@XCVC@8UCTC@lCfuC5lChC.hCjChC#iC@3sCmCjCoCtChCdCdChCuCC@C4C`C}CC@ӌC`CkCԊCC@C`8CbC]C CCCˉC^C`ƊC C`C׉CCzCC CWCKCCCNJC`FC`CiC_C@\CZCZCXCWCXCZC[C@\C\C^C^C@ [CL[C@!\Cc^CaCubCcCbC]C\CY^C_CW^C=_C@\^CZC^YC@aYC@YCYC@YCZCG\C^C_C ]CuZC@JYCXC^XCWCXC@XCWCVC#lCTgC;gCijCkmChClC@lC)pC+rCmCjC)gCndCcCceCfC@OxC@C \C`XC@C@ C@AC`oCోCpC`8C %C`ƉCC@jC C׈CC EC C`xC@C+CChCR^C&\C#ZCXC{XCkWC@XCZC@ZC^C@^C^C@x]C}ZCZC@\C0]CY`CaC0aCbC]C\CG^C0aCT_C@O]C\Cc[CXC;YCYCYC}YC ZCZC\C_CG^C[C@YCEYCLXC@XC@\XC@XCXCWChCgC gC&mCfjC@jCmClCtC@oCkChCfCdCfdC^eC@JhC}CCYC`CCCC@C࣋CBC@C,C‰C`C CCCBCCCC@CqC`xCfC@a^C[C@YCRXCWC XC@3XCYCE[C`C`C^C ]C@ZCZC[C[C^C_C@x_C`C@x^C[C@]C@bCkaC@a]C\C@ZC@JYC@aYCiYCYC@YC@YCYC[C]C^C}\CWZCYCXC{XCXC@XCXCWCgCfChCmC@hC@ nC@xmC@pC@sC}lC@jC5hC eCdC;eCfCkCBC ŋC]CCC@CkCCC`fC C`oCCɉC=CzC@C C`OCC`C`xC0CC`xC C@8jCW]C=YCVCTC@SCSC@ TC SCRCSC@TC^WCXCWCWCXC@\C@ZC@WCVC@\VCVCfVCUCRUCuUCUC@ VC@UCVC@WCYC@ \CaCcC{`C]CZC)ZC@[C_CbCaC@qC@wC)eC@\[C@XCEWCeCcCkcC=dCcCcC@JhC@kCsCWrChCgCuhC5pC@\|CRnC@dCcC&cC#cC@jC@C`CCC@CCCGCC@C5C CCwC EC`&C ܉CyClCBkCp_CWZCVC@TC#SC@SCSCRC@8RCRCSC@UCWCVC=WCWC@YC YC@VCVCTVC@\VCVCpVC^UC0UCUCUC@VC@\VC@WC}XCYC;]Cu`C)_C]C0[C ZC^ZC]C@aC@bCfgCuC@lC@\C0ZCXCidC@cC@xcC@adCcCeChCoCtC@\mC@xfCgCEhCvC{CjCdC=cCcbC@abCpnC:CCCcC@aCC CWC+CCCCiCCZC@SC@*C@CC"CmCBaCZC@VCTCSCLUCSCiSCRC=SCTC@UC@VCfVCVCRWC@8XC#XCVCuVC&VCkVCVCBVCYUCUCUCYUCUCUCVCWC=YCn[C@\]C]C\CT[C@\ZCYC[C`C@cCfbCnC@!pCW`CZC)YCdCYcCudCcC@bCfC}iC=sCkrChC@fC@gCjC{CvCgC@OdC@sbCaC@cC{uC C@*CC ܋C`CC݌C`fC eC@C=C`xC@ʌC@C@CCCbCPCpnC}bCZCWCUC0TCVC@UCSCYSC+SCTCVC#WCVC@WCWCWCBWC@!VCUCUC@UCVCVCVC0UCUCpUC5UC0VC@VCWCYCYC[C\C\C@ZCYCYC@sZC^CcCcCfC@OoCeC[C@YCcCTcCpdCbC@dC@OfCmCtC@JmCeC@fC@fCnC@}C5qCfCfcCbCaC fC{C@CCC .C@C@C`C ΌC5C@C`CC@SCC`oC CTC@*CCpC+nCcCZCWCUC@xUCXCVC@JTCLTC@sTCVCXCXC@VCfYC@xZCWCVC@3VCRUCiUCUCWCWCVCUCUCVCYUC@\UCnVCTWCBXCcYCEZCf[CG[CZCnZC@JYC@YC@[C=bCdCfbCjChC]CZCcCcC{cCcC@dChC sCqChCdC@fC@xgCuC}CBmCfCTcC@8aCaC+iC@C>C]CڋCyCC@CC ܌CCC@CwC'C@C@CC`8C"C0C}kCcCZCEWCUC@VCRZCWCGUC^UC{VC;XC@s[CYCuWC[C@]CWC@3VC@!VC+UC@TCUCWCBYC@XCUCWUC{VCUC^UCUC.WCXCiYCZCEZC@ZC@ZC@\ZC@YC@YCZC;_C@dC@cCeC@hC`CRZC@ cCdCbCcC eC@mCtC nCeCeCifCiC0{C^yCjC@eCbCnaCbCkCGCC'C CC`ƌC CuCC@CCՌC`oC CދCtCCYCC ŃC@aiCucC@[CWC=VCWC\CXCUC.VCWCYZC ^C[CXC#]C5aCXCVCUC+UC TC@!UC.WCZCYC@VCUCVCUC@!UC@UCWC@WCYC@ ZC@YC}ZC5ZC@YCYCXC@YC\C@bC{dCbCfCcC[CcC}cCcC#dCgCsC@rCujCeCeCeCnC~C@uCijCfC0bC}aC@dC.lC`CcC C@ʌCCLCCpC ΌCÌC]CڌC@C`ƌC C`C`C@CTC`C@ahCcCR]CXC@xVCWC\CYCVC@xWC{YC[C}_C^C@!ZC^]CbC}ZCpVC@3VCUCGTC@TCVC@ZC&\CXCUC)VCVCTCUC@VCWCXC0ZC@YCYCGZC@YCYC YCXC@OZC_CLdC.cCcC=dC@]CcC@bCicCfdCimCkuCcpCfCdCeCfCtCY~CGsCkCfCaC+bCdCBmCCCCCC ECC`ϋCC ܌C C C@C#C`C`fC`CC@C C@!CGfCYcC_CZCfVC@WCc[C0YC&WC@JXC@ZC]C@`CaC\C\C.bC;[CWC@VCUC@TC=TC@JVCZC@8]C[CTVCUCVC@aUCUC0WC&WCXC5ZCZCYCYC@YCYC;YCXCXCf\CRcC@sdCaCdC_CicCbCdC@fCsCsC@lCeCeCdC@siC@xC|CrCmC=fCaCcC}dCoCKCC`C ܌C>CCČCC .C`C࣌CތC`OC@CC"CCCC@JcC@bC`CcZC@3VC+VCRYCXCYWC@YC[C]CaCeC@\_C\C`CY[CuWC+VC@VCTCTCVCZC@O^C@^CWC{UCuVCUCUC#WC;XCRXCYC@[C@xYCnYCYCnYCYCXCXC@!ZC@!`CdC@bCbCRaCRcC@cCkdC@lC@uC^rC@xhCYdCdCueCmC@zC^{CuCnCeCaCWcC@dC@JqCCC`،C`CCCCC@CC"CBCIC`8CCCTC`CC~C`CGbCBaCYC@UC@\UCVCVCVCZC\CE^C#bC@gC)cC^C^C[CWCWVCUCTCSCUCYC@^C_CYC{UC#VCUCVC@WC@YC@XCYC\C@ZC@XCYCYYC@YCRYCXC@YC=\C;cCidCaCcbC#cCcCeCsC@tC@oCeCfdC@!eCifCoCk|C@|C@xCpmC^cC@8bC@cC@dC+rC`XCCcC@ӋC@CCPCC C@CًC#C)C`xC C`ƌCtC .CCWyC^CaC@ _CXCpUCTC=UC@UCVC@![C@ ^C]CLaCgC}eC_Ci]CYZC0WCcVCUC@TC+TCUC@ YC^C{_C[CVC@UCUC@UCXC\CWYCYCR\C]CYCYC;YCYCXCYC@3YC@xZC`CLdCTbCbCucCdC@OjCuC}sC;jC@dC{dC@dChCrCfCCGyCjCbC@sbC@cCeCqC~CIC`CC ŋC`CuC=CCC@CC`/CCCCzCC`FC@sC\CW_C^\C@VC@\UC@3TC@TCTCUCZC@O]C@\C]C@JcC@cC^C\CYC@VCUC0UC@OTC@SC@\TC&XC@O]C_C\CVCLUC@UCUC@XCp^C\CYC[C^C@aZCXCXC)YC@!YC@XC@XC=YC@\\C@bCfdCfaCGcCGeCqCtCpCfCdCLdCdC@iCwC=CCvCfCaCbC@cCWeC@nC@CెC@CC@3C ܋CC@*C CԋC nC@C`CGC`8CÌCC~CzClC#\C{\C@XC@UCpTCGSCTC@TCVCiYC[CZCZC@^C_C\C[CcXC0VCUCTC@SCSC+TC@OWC.[C]C[C@WCUC@UC@VCWC&_C@`CZC)[C_C@\C@8YC5YC@aYC@YC=YCXC@JYCZC_C@dC@bCkcChCuC@asCkCkeCTeC@dCeC lC.}C`C@ӀC@qCdC@\bCcC@cCdCkC@ayCCC`C]C`FCKCC CCCC׌C:C@CCCԊC EC@ fCZC@YC;WCTCuSC@RCWSC@UC;VCWC@YC@XC@WCuYCZC@ ZC}YCfWCUC@UCTCSCSCSC@VC@YCZC@YCWCUCUC.VCfWC^C@8eC\CZC^C#_CBZC@ YC@ YCYC&YCXCXCYC#\C&cC@dCfdCoC@uCpChCeCdC.eC@xfCqCCWC)~CckC@bCGbCcCpcCcCThCYrC}C@*C`CCPC@!CgCCNjC@ʋCCUCZC C@C CC^zCf`CYCXCUCSCRC@RCSCUC@VC^WCWCWCUC#VCpWCWC@XCBVCUC UCTC@aSC@SC;TCRVC@YCXC@XCEWCUCVCVC{WCu\C@hC`CZCT\C@_Cf[CYC@3YCYC&YCXC@XC@OYCZC@_C@sdChCuCsCmCfC@eC@aeC&eCchC@wCC@ CwCgCbCTbCcCbCbC0eC@kC&tC}xC'C`oCuC C@aC CC`8CCzCC eC`C4C@C@mC@[CXCWCTCRC@!RCSC@SCTCpVCkWCWCVCUCTC@UC@VC@VCUCWUCTCSCSC.TCTCuVC@8XC@ XC=WCVCGVC@UCVC5WCZC#gCeC[C[C@s^Cf]C@xZCWYCcYC@3YC@!YCYC^YCZC@[C@bC nCwCpC@jCgC@fCBeCeCflC~C,CC0qCeCcbC@bCbCbCaCcbCfC@kC@oC+zC`OCCC C@!CkCC`CٍCCZCCCsC@bCYCLWCUCTCWRCERCSCSC UC&WC@WCVCUCTCTC@3UCBVCWC@!VC)UC0TC@SCTCuUCTCVC@xWCWCVCiVCVCYVC@VCWC}YCdC=jC]C\C@J]C)_CB[C@ ZCYCYCYC;YCYCYC}ZC0_C@uC@8tCnCniCgCfC+fCgCqC C@ʃC@|C{mCcCbCbCcCbC@aC+aCbCeCiCrCCiC nCC@sCౌCCЍC C`ƍC nC C@xwCeC\C@XCVC@TCRC@QCSCTCUCUC@XCYCcWCUCWTCTC@sUCfWCXCVCUCpTCTCUCLXC@sVCVCVC@VC@VCkVCBVCEVCVC@XCWYC_C@!lC.aC\C\Cp^C\CZC@YCYCYC@YCYYC@xYC#ZC\C@xC qCmC@\hC@gC@8gCeCiCExCCuCYxCcjCbC@ObCbCbC@aCY`CB`C`CfbCeC@\nC1CCC CC@ CUC C`XCC݌CChCi]CRYCWCUCTCRC@RCUCWCVCVC ZC@[CXCVC@sUCkUCVCXC@ [CXCuUCiTCTCpWCp[CuXCVCVC#VC@OVCUCVCVC)WC@xXC@!ZC ]CjC@eC\C\C]C^C[CZCYCYCYCfYC@YC@\ZC[C+uCoClCgChCgC@\fC@8lC|C=C ŀCtC@afC@aCYbCcCbC@`C`Ci_C@3`CaCpcClC %C1CC`CC@CwCTC`oC CЊCTwC`CZC@XCVCUCSC=SCSCWC}YCcYCXC@[C]CZCXCVC+WC@ZCnZC^CY[CRVCTC UC0YC]C[CpWCVC@UC@UC@xUC@UC@VCWCEXCYC\CYeC@jC^C]C#^C`C\Cp[CZC@JZCYC@aYCiYC+ZCZCpCfqC=jC@OhCiC+gCgCpC=CނC@ ~C@!oC@\cCuaC@cC@dC@bCE`C_C@_C.`C@aCbCpkC@C C5C CCC@C CYC@CCiC[C@\YCWCVC@ UCSC@SCTCYC]C[CYCu[C}`C^C+[C@ YCYC^C5^C_Ci^CWCTCTCTYC@\_C^C^YCVC@ UCUC@UCUC@VCXCcYC{ZC\CaCkkC bC\C^^C)`C@3_C&\C[C.[CYC@YCYC@ZC@ZC@3qCpC=hCLiCiC fChCTtC`CCxChC+bC@bC@3eCcCaC_C@_C_C`C{aC@bCBiCzC`؆CC'CC4CC@aC |C C~CuaC.[CXCLWCUCTCTC@TCfWC@x[C}_C@\CcYC[C@aCbC+_C@\C@3\CbCcCaCu`CXC@JUCTCXC^C=_C[C@XC@UCUC)UCUCVCXCYCZC@]C@ _C@8gCeC{^C@ _C@_CaC]Ci\C@s[CZCcZCWYCZC@ZC@ssC@kC@JhCjC=hCfC kCwC^CfCpCWdC@ObCdCfC#cC@3`C@a_C@8_C`C@`CaC@\bCpgCvCЃC`CC7CC .CC ΊC>C@oC]CWZCXC0WC VC@TCUCVCYC@ ^C@_Cu\CXC=ZCbCcfCGcC`C^CeC@\jC@bC`C@\ZCUC@TC;WC\Ci^C@s\C@J[CVC@JUC@8UCUCWCXCW[Cn\C@]Ck_CaC+gC@`Cn_C=`CLbC._C\Ck\C&[C@\ZC)ZCZCZCBrChC@!iC@iC@fC@fC}nCzCCyC@hCbCbCgC.fCEbC#`CT_Ci_C`C`C;aC@8bCeC+rCB~CYC`C7CC ŇC຅C9C|CdC[C@YC@XCLWCfVC@ VC@VCWCY\C`CG^CE[CXC@YCbCgC@8fCcC+`CfCnC@\fC#`C@ZCWVCTC@UCYC0[C[C]CXC&UCTCUC@ WCXC.\C^_C]C_C_CGdCbC_CaCaCaCf]CB]C\C@8[CYZCEZC@ZCmChCiC@8hC@sfCiCqC|C@J}CoCfdCLbCidC)iCdCYaC_C_C`C`C^aCiaCbCdCmC@\sCB{C ܃CڅC4CC@3}C{ClC^C&[C@OYCWC@\WCVCVCWC#YC]C_C[C0ZCWC@XC`CeCfC@dC_C@\dCpC@iC@_C@8YCUCTCTCWC@XC@YCn\C@\[CUCTCUCWWCXCc\CWbCE_Cc`C_C@`C{cC{`CbC@aCkcC^C]C@\C@[CB[CTZCpZC@JjC#iChC@fC0gClC@3uC|CvCLhCbC@acCgChCbC@`C@J`C@_C@J`C+aC`CaC@!bC^cC@ gCRjCLrCu}C~C{C@srC.oC@JlC@aC@O\CnZCEXC@WCWCWCWC@!YCYC@]C@]CYC@YC@WCnWC]C@aaCdCbC^CEbC^mCkC@ `CXCVCTCTTCUC)VCVCZC\CWCUCUCWCXC\CdCbC`C{`CW^C@ bCcaC5bCcCLbC{aC)^C]C@x\C@[CZC@sZCiC@iC#gCfC+jCoCxC@xyCnC@dCbCdC5hCkeC@\aC@s`C@`C_C`C`C@3aC@aCnbC@ bCcCdCiCBqCpClCeC@cCaC ]CZCYCXCWCWC@XCYCYCnZC[CG[CXC YCVC0VCGYC&]C@_Cc^C@[Ci_C@hCjC`CXCUC@TCSCTCkUCUCWCi\CYCLUC@ VC.WCXC@O\CieC@OfC@`CaC^C;`CWbCaCdCbCbC^C@s^CG]C[C0[CZCiCgC@ fCngCmCrCwCEsCgC0cCcCeCgCbC@`C{`C_C5`C@s`C}aCaCYaC@\aC}aCaCaCcC@fC5eCYbC^C@3^C@\Cp[C@YC@XCWCXC@ ZCZC@[CZC@ZC@ZCLXC@WCWC@aVC&UCEWCYCZCZC@XC\CcdCfC@_CkXCUCTCSCETCVCUC@3VCYCZCVC VCnWCWXC0[C@dChCbCnbC^C^C@ bC`CdCkdC@8bCc_C#^C@]C@\C@[CZC@JiC@eCeC{jCoCtCuClCfdCTcC@OdCfCdC@3aC`C`C`Ck`C`C@aCbC{aC`C@`C`CB_C_C_C#_C]Cu\C \C@3[CZC@XCWCXCZC]C\C[CkYC5YCWC@VCVCBWCUC UC@UCVCXC&XCVCkYC_CEbC]CWCUCTCSC@TCWCWCVCYXCZCVCUCTWCRXCZCbCGjCdCfbC@_C@^CkbC@JaCbC@eCbCaC@^C@\^C@]C5\C[C@fC fCfC{nCpCuCqC@fCcCdC}dC)eC;bC`C`C@`C^`C`CkaC@8bCbCaC@`C`C_C@O^C}\C@\C@a\CL\C[C[CZCYCXCXCXC@x\C`C]C)ZCcXC@WCTVCVCUCUCfUC@OUC{UCGVC}VC@xVC@UCTWC@[C=^Ck[C@JWCEUC;TCESCTCYCZC@WCVCYC+WC@UCVCXCYC_CjC)fCbC+aC ^C@xaCbC`CceCpcCpaCL^C@!^C@]C\C[C@eCeC^jCoCkrCTuCkC@adC{cCcC@\dCicC5aC`C`CW`Cf`C^aCbCbCaCLaC`C@_Cf^C@\C[CW\C@\[CG[C}ZCZCYCXC5XC@XC@![C_CbC}\CXC WCBVC@UC=UC@UC5UC)VCUCEUCUC@8UC@\UCWUC@VCYXC@8ZCYCVCTCnTC@SC@aTCYC\CcYCVCWC@3WCUC@VC@!XCYC@\C@hCgC0cCbC@^C_CeCu`CbCudC@xaC_C)^C^C5]C@[CieC@fC nCpoC@suCrCgCcCcC;dCcCcbC}aC aC`CL`C`CiaC@abC@!bCaC@aC@s`C_C]C[C@ZC[C@[CR[CpZC@ ZCpYCXCXC@sYC@]C=aC`CBZCVC0VCTUCTC@ UCTC@UCUCVC@3VC@aUCUCTC@!UCUCWCWC@\WC@VC@sTC@8TCTCUCXC]C[CVCVCVC@UCVCWCXC [C@cChC@cCbC_C@]CeC@bC`CEcCbC@_C@s]C ^C@J^C\CeCiCoC qC@wCmC@xdCBcCcC@adCcCaC`C^aC@`C`CaC@!bC@bC@bCaC`C@\`C^C@\C@ZCZCZC@[CZCYC@aYC@XCWC@OXCYCW]C`C\CWCVC@JUCTCTCuTCpTC@OUCVC^XCWC@ UC+UCTC@\UCkVCYVCVC}UC{UCUCSC@aTC@8UCEWC[C+\CWCUCUC@UCpVCEWCiXC;ZCB_C)hCcCbC@`C@]CBbCeC`CaCfbCn`C@]CE]C@\^C@]C@fC@mC+nC@uC@vChC@cCcC@cC@xcCWbC@xaC@aaCaC`CTaC@aCbCbC.bC`C`C_C^C[C@ZCZCZC}ZCZC@sYC@OXCWCWCLXCRZCp\C@^CYCVCEUCfTCTCGTC@!TC@SCTC@WC@8ZC@WC@3UCUCcUCVCTVCWVC@UC)UCTCTC@ TCLTCYVC^VC@XCZC@!WCUCpUC@JUCVCWC=XCYCT\CdCdC@aCaC^C_CfC@OcC@`CaC@aC.^C\C]C@]C iC0oC@pC@zCGrCeCTcCcCcCRcCbC=aC&aC@\aCEaCaC bCbC@bC@aC`C`C@8_C]CZC@ZCGZCYCYCYC@XCXC@!XCXCpYCZCZCZCWWC@UCUCRTCTCSCSCLSCTCLXC[C@XCUCUC@UC@8WCVCVC@xUCTCYTCTC@SCSCfWCUCpVCGXCVC0UCTC@TCuUC@VCXCXCZC `C@eCbC`C_C]CcCnfC@aC_CWaC@_C0]C\C@x^CmCnCwCW{ClC@cCcC dCcCbCWbC@aaC@aCaCaC@!bCnbCfcCbC@\aC`C_C@x^Cu\C0ZCYC@YCYCYCXC@XCWCnXC@XC{ZCYC0YC@JXCVCUCTCEUC@TCWTCuSC@SCSCXC[C@WCUC@UCUCWC@sWC@VCUCTTCSC@TCSCRC@aWCnVCUCUCUCGTCTCLTC@\UCnVC+WCXCYC\CcC)cC@_C@3`C]C@`CcgC@dCi`C_C_C\C.\C^CoC)rC}}CwCfC&cCcCcC{cCbCaCaCbCaC@bCbCbC@cCbC`C_C_C@]Cf[CYC@YCYC@XC@sXC@3XC XCWC)YCZCcZCWYCWCVCVCUCUCVC5UC@SCLSC@RCSCVCYC@WCBUCTCUCXCWC=VC@ UCSCSCSCSCTRCUCVC&TCTCTCGTC^TCLTC@xTCUCVCWC;YC)[C_C.eC_C@x_C^CB^CdCgCbCi_C+`Ck]C.\C@8]CoCyCL~CoCdCcCTdC@cC@bCbCaCaCaC@aCnbCbCcC@!cCaC@`CE_C]C\C;ZCYCXCGXCkXCXCWCWCXC5YC;ZC@YC+XCVCcVC#VC VC{WCkWC@UCSC@RCRC@SC@UCWC5VC@aUCTCTUCWCWCVCpTC@SCSC@SCSC@RCnTC;VC0TCSCRTCSCTCTC0TCWUC{VCiWCXC@OZC&]CdC@xaCL^C_C]CT`C@gC fC@J`C_C ^Cc\C0\CtCGC@3{C@hCcCdCcC@\cCcC@bCaCbCaCbC)cCbC@cCbCaC@_C@^C5]C[CYCXC@!XCWCkXCXCWCWCXCYC@ZCXCWCVC@VC@3WCWCYCWCkUCSCSCSC@OSCTC@UC VC@UC@TCUCVC@8XCVCUCSC{SCiSCSC@aRC@aSCWUC@SCSCTCYSCSCTCnTCUCVCWC#XCYC@ [C`C}cC@!^Cp_C@x^C@]CBdChCbC_C^C}\C\C{C@sCsC}eC@cCEdCdC#cC@bC;bCaC+bCTbCncCbCbC@cCaC@a`C^C]C@\CZC0YC#XC+WC@!XCXCXC@WC@WCXCYCEYCXC@!WC@aWC#WCWCXC;[CWC0UCTC^SCBSC@SCSC@UCUCUCTCTC{UCWCWCnUCSCkSCSCSCRCRCcTC@SC@SC.TC^SC SCTC5TCTC@UC@VCXC@XCZC]CcC@J_C@ _CL_CR]C_C@gCYeC_C_C@]C \C:C|CkC@8dC&dCudC@cCicCbCkbCaC@3bCbC@bC@ cC@bCpbC`C_C]C\C@8[C@!YCXCWCWC=XC@XC@XC^XCXCXCXCiXCWCWC@XC@XCYCYCZC@WCTC@TCfSC@SCSCBSCcTC^UCUCTCSC@8TCiVC@WC@VCTCSCSC@xSCRC@JRC+TCSCSC5TC=SCTSC;TC@TCWTCTCVCWCXCYC@[C)bC@`Ck^C@`C]C]C5cC0hCbC@3_Cf]CB\C~CuC@JfC@\dCdCYdC^cC@bCibCaCaCbCucCYcCbCbCaCu`C^C@J]C \CYCLXCWCcXCWCYCYCYXCnXC@WC@ XCWCiWC@WC@WCYC+YCYC@YCYC@xVCUC@UCnTCSCSC{SCSC@TC}UC UCSCLSCUCWC#WCUCTCTCSC SCRC@OTC#TCRCTC#SCRC5TC@TC&TC{TCUCEWCWCXCZC@_C@JbC&^CG`C@J_C\CR_CfCcCG`C&^C\CB|C@ nCdC@dC@ eC^dCbCbCbCaCbCcC@cC@bC@8bC@sbC@!aC_C5^C@\C[C@XCWCWCWCXCGYCYC.YCXC}WCWCVC@VC@OWC@3XC@ZCYCYCYCTXCfVC.VC@UCTCSCRC+SCSCLTCTCTCSCSCSCUCWCVC@!UCSCETC#SCpRCSC@TCRCuSC@xSCRCSC@xTCfTCTCkUCWCWC;XCYCG]C&bC&_C@_C`Ci]C\C@ObCeC@`C@_C\CwCgCdC@eC;eCcC@bCLbC@aC@3bCbCcC@\cCbCWbCaC`C^C@]CR[CYCBXCWCXCWC^XCiYCXC@aYCRXC@VCUCGVCVCpWCXC@3ZC@aYCXC{XC=WCWCWC@VCTC@SC@SC@sSCSCTCTCTCSC@SCSC&UCWCkXC@VCUCTCSC@RC&SC@SC@3SCRCSC0SCSCYTC^TC@!TCTC+WCWCXC@XC\C^aCf`C^C@aCp^C@\C5^C@adCbC_C@^CoCeCpeCeCdC.cCpbC@JbC@JbC@bCTcCcC@bCkbCfbCkaC@_C^C@!\CZC@YCWC@\WCXCXC@XC+XCfXC@ YCWCUCUCUC@OVC@xXC@ YC YCXC&XCWC@8WC@sXCWCVCTC@8SC@!SCYSCSCSCSCTCTCSCSCTCWC@YCXC@aVCUCuTC@RCRCSCBSCRCRCRC@RC+TCnTC@SC@OTCBVC@WCWC@XCZC_CkbC^C@aCaC\C[C0aC0cC+`CL^CjCeC{fC@fC;dCcCbC@bC@aCbC5dC@cCbC)bC@bC`C0_Cf]C@[CYCXCWCXC{XCWCWCWCWC@ XCVC@8UC@8UCUCVCYC@sXCWCVCWCWCWC)YC@sXCVCTCSCESC+SC{SCSC@SC+TC@ UC@SC@SC@TC@WCZC=ZC@8XCVCTCTSCuRCSCRSCRCRCWRCRCSCSCSC@!TCWUCWCWCGXC@YCG]CbC_C@`CfcCn^C[C]C)bCBaC_CfCgCgC@OeC@cC@bC@JbCaC@bCcC@dCbC@xbC0bC@saCL`Ck^C\CZCYC@JXC+XCnXC@3XC;WCVC WC@VCVCRUCTCUC@ VCVCXCYWC@OVCcVC@aVC@VC@WCXCWCVCTC@SC@xSC5SC@3SCSCSC@SCRUC=TCSCTCWCcYCZC@ ZCXC@sUC@sSCRCRCSC@RC@JRCLRCRC^SCSCSCSCTC@OWCXCXCXC\C`C.`C_CcC`C@x\C@[C`C@8aC_CfCgCgCdC{cCbC)bC@bCibCcCcCbCibCbC`C@^C@]C\C@ [CfYC=XCXC@aXC@WCVC@!VC0VCVCVCnUC{TCUC&VC@\VC}VC)VC@UC@VC+VC=VCWCWCVCuUCWTCSCTSC)SCcSC@SCSCSC@aTC0TC@3TCUC@WCXCcZC@OZC@XC5VC@SCRCRCRC@!SC=RCRCBRCRCSCSC@8SCTCGVC@aXCEXC@xXC[C@a_CBaC@J_CbCYcC]Cf[Cf]CL`C@x`C@3hCiCufCdC@cCbC=bCaCbCWdCbCWbCbCaC`C^Ck\C[CLZCRYC{XC@3XC@WCpVCUCUC@UCUCEUCTCSCGUCUC@UCpUCYUC@UCUC@VCRVCBWC@xVCpUC@TCTCSCSCRCSCSCSCuRCSC@SC@SCVC@XC@\XCYCcZCYCUC@!TCBSCSCLSC@SC)RCQCQCSCSCSC@8SCSCTCWC@sWCWCZCR^CYaC^_CaCdC@O`C[C[C_C@a`C)jChCeCcCbCaCibCbC&cCdCibCbCbC`CL_C]CE\C@[C)ZCXCXC@WCVC@UCUCUCTC@JUCTCSC)TCLUCYUCRUC UC@UC@UC@UC.VCTVC@VC@TC@TCWTC@SCTCSCRC{SC@TC^TC@3SCSC^TCTCVCpXC@8XCWYCYC^YC@8VC#TCSC+SCfSCSCRCQC@RCRC0SC@RC;SC&SCTCVCWCXC@sYCY]Cu`C_C@_C@\cC@!cC\CZC5]C_C0kCgCceC@!cC@bC@bC@8bC{bC5cCncCaCRbCRbCB`CL^C\C\CZCYCXCWCVC@VC@UC^UC@8UC@ UCUCTCcSC@SCTC)UC^UCTCUCEUCUCUCUCuUCkTC@TC;TCSCSCSCRC.TCYTCTCRC&SCSC@xUCnWCXCWCYCXCYCVCTCSC@SCSCTC@\SCQCYQCRC{SC+SC@3SCGSCSC@UCWC@WCXC@[C@_C`C@^CYbCdC@!_CZC@[C@]C}jCgC@sdCcCbC0bCWbCbC)cCWbCaCbCaC_C]C\C[C@8[CYCWC@WCVC}UCiUCUCTCYTCTCSCnSCSCTCGUC+UC#UCLUC@OUCUC@UC5UC@TC@OTCTCTC@!TCSC@3SC@RCSC{TC@TC@8SC0SC@TCVCWCfWCVC@xXCfXCXC^WCUCSCnSC}SC5TCSCRC@QCuRCSC@!SCRCiSC@OSCTCVCWCWCZCp^CpaC^C`C;cCnaC\CZC@\CiCgCcCbC}bC@bC;bCbCbCaCWaCbC@`C^C@]CW\CE[C@sZCXCGWCVCVCpUC5UC UCTCTC5TC{SC@SC@SCUCiUC@JUCBUCUC@TC TC^TC@3TCTC@TCUC@TC@TC@TC{SC@SCETCTCkTCSC{SC&UCWCYC@VCUC@WC@WCfWCWCUC@TC@SCSCTCSC@RC=RCRCSCTSC5SC@RC0SCSCUCWCWCYC]C`Cn_C}^CbCaC@]CZC@[CEjC@eC+cCubCbC@bCbC@bC@JbCuaCaCfaC.`C@3^C@]C[C[CYCWCVCUCUCUCTC@JTCuTC@SCTCSCpSCTC{UC@UCUCTCkTCSCSCSCSCSC=TC@UCUCTCTCSCSCSCTCTCSCTCUC@XC^[CWC)UC@JVCXC@WC@WCWCTCTC;TCLTCLTCSCRC@8RC5SC@aSC.SCRCRC@OSCTC@!WCWCXC[C_C`C5^C`C^bC@_C[CZC0jC+dCcCubC@xbC5bCbC@bC@!bCcaCaC@aC^C@]C\C[C@\ZCXC@VC^VCUCWUCTC@xTCcTCTCLTCTCETC@TCTCUCcUC@TC@\TCETC@SCcSC@SCLSCSC&UCUCUC&TCTCTCTCTCTC@TC@!TCTC@UC@XCE\CWCUCUC@WC@WC^XC@OXCUC0TC+TCTCTCSC@ SC{RCSCSC@RCRCRCTSCBTCUCVC@WCZC]C@aC@ _C@ _C@aC)`C}\CYZCgCLcC@xbCbCTbCRbC@ObCfbCaC}aCaC@a`C^Ck]C\C@![C@YCWCVCUC@xUC@UCTCfTC5UCTCTCUCTC@UCUCVCUC{TC@SC@xSCSCSC&SCcSCiTC@UCVC@UC@TCUCTCUCWTCETCTC@ UCTCUCWCnZCpWC@TCUCVC@JXCXC@8YC WCpTCTCSCSC@SC@!SCRC{SCSC@RC@RC@RCRC@SC5UCVCcWCYC&]C`C@`C]C@`C`C]C@ZC+eC@bCbC@ObC@bC@aC@bC#bC+aCRaCRaC_C^C@]C[C@ZCXC@VCfVC@VCUC@aTC;TCTC5UC@aUC+VCVCUCkUCUCYUC=UC{TC@JTCSCfSC)SC&SCpTCLUC@VC@VCUCuUC=VC@OVCUCTCnTC&UC}VCkUC&UC@UCWC@VCTC0UC)VC@WCXC@sYCXCTUCWTC)TCSCSCLSC@8SCSC@aTCSC;RCRC@sRC#SCTCVC@WCXC[Ck_CaC@x^C _C`C^C[CGcC^bCbCbC5bC@aCbC@aCuaC^aC@`C@\_C]C@!]C[C@YCWCYVC@VCUCUCTCTC=UC}UC#VC@VCVCUC5UCTCTC@TCYTCRTCSCpSCSCRTC^UCcVC@8WCVC@UCUC@UC@UCUC@TC#TCUCBWCBVCTC@TCVC@sUCTC@UCUCLVCWCXC@XCVCTC@3TC@SC@SC@SCSC@RCBTC=SCnRCRC{RCGRCTCUCWCWCTZC]C@bC_C]C@a`C^C\CbCibCLbC@bCaC@ObC@bCaCWaC}aCp`C^C]C\CZCkYC@JWCcVC&VCiUCTCTC@TC@UCVCVCVCcVCUCTC.UC@TCTC;TC@sTCGTCSC@JTCkUC@WCVCkWC@VC@\UC5UCUCUCUCTCYTC@UCWCXCTCTCRUCUCnUC5WCUC@TCVC@WC@sWC@aVC&UCTCSCTTCSC@SCSC@SCSCRC@JRCRC=RCSCGUCiVC#WC&YC{\C@`CbC^C^C=_CB]C&bCLbCbC@bCaC@bC@3bC@aC;aC@!aC`C=^CW]C[C5ZCWXCWC@JVC@UC@8UCTCTCTCUCUC{VC;VC@UCTCTCTCfUC^UCTCUCTCBTC@UC@VCLXC#WCVC@OUCkUC@TCUC@UC@aUC@TCRTCpUCWC@aXC@3UC@OTCUC@3VCUC@ YC@UCTCEUCUC VC@VC@TC@TC@aTCTCSCSCSCSC@OTC@RCRCRC5RCTRCSC@UC@aVCWCZCG_CcC@_C^Cc_C]C@ bCaCRbCkbCYbCTbCbCaCaCBaC@_C^C;]C[CYCWCBVCVC@sUC0UCTCTC@UCTCUC@UC@3VC@3UC@xTC@TCTC@sUCUCUC@UC@TCTCkVC@WC@WCVCUCGUCTCnTC@TCTCUCTC@JTCTCVCXC+UCpTCUCVCYVCYC=WCTCTCuTCfTCTCTCnTCUCTUC5TCSCnSCSC@\TC&SC@RC@xRCnRC@RC0SC@JUCYVCVCYC]C@8bCaCk^C^C^CBbCRbC@abC;bCfbC@xbC@abCaCaC`CL_CB^C\CZCEYCWCfVCUCWUC@UCTCTC@TCTC UCuUCUC@TCTCUCUCUC@UC.VCBUC@UC.UC@VCWCEWCUCTC@sTC@xTC}TC#TC^TCETCkTCYTCTCVC@XC@UC.TCUCkUC{VCYC@WC UC+TCSCSC@SCSCiTC@UCVCTC@8SCRCSCTC@sSC@JRC@\RC=RCQC@RC@JTCUCVC#XCp[C@`CbCT_C]C^CbCbC@bCbCbC{bC@xbCaCaCE`C^C@]C[CkZCXC{WC=VCUCUCUCTC@TC@TC}TC@TCUCUC@TCWUCUCVCUC@VCVCUC.UCUCVC@!WC&VCTCTCLTC@TCTC@OTC@JTC@\TCETC@SCTCUCWC@OUCnTCTC@!TC@3UCEXC@WCUCSC@SCSC&SC5SCSC@UC@xXC@UC@SCiSCSCTCTCRC@JRCiRC@JRCQC=SC@TCUCTWC@xYC;^CbC`C^C]CaCbCbCbCbC@bC{bC)bCYaC_CB^C@a]C[CZCXCVCVCUCiVCBUCTCTC{TC@TC@8UCVCnVCnUCVCfVCVCUCVCVCUCUCUC=VCfVCkUCUCYTC@8TC@TCSCSC@SC@SC@aSC@SCSC{TC=VCUCSCSC^TC@TCVCVC@VC+TCSCiSC&SC^SC@RC@UCBZCYWC@\TCSCSCTCTCSC^RCRC^RCQC@RC@SC{UCVC}XC)\C{aC@aC@_C@]CbCbCcC@3cC5cC@bCbCLbC+aC_CR^CL\CT[CZC@ XCVCLVCVC@aVCUC@TCTCTCEUCVCVC{VCLVC@VC.WCVC#VCVC=VC@!VC^VC}UCUC VC;UC@TC}TCTCUCTCTC@SC@\SCRC@\SCSCTCRUCUCiTCSC@SCSCTCUCYUCSCSCcSC^SCnSC.SCSCBYC@XCTCSC@ TCTC5UCSCSCRCSCpQCQC@RC@TCUC@OWCZC@^CEbC`C_CbCcCcCcC0cC@bCcCaC`C_C}]C@3\C&[C}YC@!WCUCWCVC@3VC@!UCTCTCRUC;VC@sWC@WCpWC@WCWCTWC@VCVCVCUCVCEVC@ VCUC@OUCuUCnUCTC@TCTC@TCTCSCBSCRCRCSCSC}TCUCTCSCSCSC@sSC@SCpTC@SCSCSCSC@TC=SC)SCVCYCUCTCYTC@TCUC@\TC#SC@RC@RC@RCiQCQC TC)UCVCXC.]CiaC`C;`C@bC eCcCncCYcCbCbCRaC`C@a^C\C{[CZC@XC}VC@VCWCWC@UCTC@ UC}UCVC{VC@WC@\XCkXC=XC@OXC.WC@VC@VCYVCRVC@sVC@sVC@aVC@UCfUC@UCUCTCTC@TCLTCGTCTC@3SCRC@RC@RC&SCTCUC@UCSCSC#SC@SCSC}SCWSCSC0TCTCTCSCRCTC@JXC@3VCTCTCTC.VCYUC;SCpSCRCTRCQCPCSCTCUCWCZC@_C@ aCn`CEdC@OeCcCcC@\cCcC@JbC`C@_C]C@\C[C@\ZCWC.VC#WCXCVCUC)UC@JUC@VC WCWC@3XCXCXCXC{XCWCWC@ WCVCVC@VCVCcVCUC@VC5VCUCTC@\TCuTC&TC.UCGTC@SCSCRCRCRCSC@UCEVCTC@SC=SCRCRSCWSCYSC@SCBUC@SCSCSCRCSCGVC@UCUC WCTCVC@VCSC5SC+SCRCRC0QC@QCSCBUCnVC@YCu]C`Cp`C@eC#eCcCcCcCbC@ bC`C@J_C]CG\C{[CZCcWC)VCBXC0WC@VC@UCcUC+VCWCWC@WC@WCEXCYCXCWC;XCRXCWC)WC{VC@VC@VCVCWC@VCVCUC@TCTC^TCuTCUCTCTTCRTC@RCRCRC@SC@3UCVC@aUCTCSCRC@OSCSCTSCSC}UCTCSC@TCSCRCfTC#UCRUCWCUCkVC@VC@ TC@SC@OSCRC{RCWQC@ QC@ SCnTCUCBWC)[C{_C)`CgCdCcC@cCcCEcC&aC@_C^C]C\Ci[CXC.VCVC@WC@VCUCUC@ VCWC+XCWC@VC@VCWCXC{XC@XC@ YCXCWCWCfVC@VCWCYWC)XCWCVCUC@TCTC@!TC@xTCUC{UCiTCuUCSC@!RCRC5SC@TCVCUCRUC@SC#SCSCUCcTCSCUC;UC{TCSCSCWSC)TCWTCTC@VC@!XCVC@WCUCGSC&SC@xSCRCQCQC@QCpSCUC.VC YC]CG_C@\gCcCcCcCcCbC`Cu_C)^C]C[CZCXCBVCWC@VC@8VCUC@UC@VC@WCWCfVC}VCVC@xWCYXC=XCXCYCXCXCWC WCEWCXCXCXCXCVCBVC@TC0TC TC&TCTCUCTCEVCTC@JRC.RC5SC@TCUCUCUCTC@xSCTC=VCpUCTC@3TC&UC@TC+SC@RCRCTC.TCTCWUC@JXCUC@\XCVCpSCRCcSCRCRRC@QCiQC@RC0TCUC@WC[C^CeC@3dCcC@dC@OcCbC`C)_C]C#\CW[CfYC@JWC@VCWCVCUCUCVCGWCBWCVC.VCYVCYVCWCXCXC{YCZCTYCYCTXC@WC@WCXC)YCXCXCWCVCTCSCSCSCSC TCTC@VC@UC{RC@3RCRC@SCTCTCUCTC}SCSCVCVCTCuTCUCUC+TC@xRC@RCnTC@\TCTCTCBWC^VC=WCRWCSCRCRCRCBRC@QC@PCQCLSCTC^VCcYCE]C@dC@cCcCndC@acC.aC`C^C^]CL\C@[CXC@VC+WC}WCVCUC.UC&VCpWCWCVC+VCUCVC@WCYCYC@\ZCYCYCYC5YCXC.XCYCXCkXCWC@\WCVCTC@SCSCSC}SC{SCTC@ VC@UC@3SCRCkRC@SCBTCTCTCTCSCSCUCWCUCUCTCTCTCRC@ORC@JSCTCTC@TC@UC@sVCUCcWCTCkSCRC{SCRCQCQCQCcRC@3TCUCRWC[CcCcCdC@dCcC^aC&`C@a^C]C[C{ZCWCGVC@WC@ WC@8VCcUC@UCpVC@WCVCVC@VCVCWC@OYC[CZC=ZCYC@[CZCYCXCYCYCXCiWCWC)WC@VC@TCTCGTC@SC5SCSCSCUCUCSC}RC@xRC+SC@TCSCTCTCSCSCUCWCVCVCLUCTC@TC=SCRCWSC@TC@UC@UC@TC+VCUCWC UC@SC@aSCGSC@ SCRCcQCuQC@QCTSCcTCBVC@YCcCcdC@sdCcC@aC`Cn_C]C\C@![CZCBWCVC@XC=VCUCTC@UCWCXC@VC^VC@VC@\WCXC@sZC[CZCZCiZC;[Cc[C@3[CYC+ZCYCWCWCVCVCfVC@TCSC@xSCSC#SCSCTCTC@TC;TCRCRCRCSCYSCkTCETCTC@8SCTC@WCWCcXCVCGUC@aTC#TCSCSC}TC=UCUC@ UC@TCkUCcVC@VCcSC@SC@!SC@sSCWRCQCuQC@QCSC@SCfUCiWCcCdC@dC}cC@aC@`C@^C@^C@[CZC@XC+WC=WC@!WC@VCfUC@UCYVCXCXC@sWCWCWCTXC[C[C[C@ZC{ZC@ZC[C@[C\CnZCZCXCTWCVCVCVCWUCuTCTCTCGTC@sSCSCTC@TC@TC^TC@!SC@RCYRCSCSCTC+TCTCSCTC@ WCXCYC^XCVCUCTCUCSC;TCTCUCUC5TCETCuVCWCYTC@SC@SCSCRCGRC@\QCPCQCSCTCiVC@sdC=eCdC@bCaC@\`C@a_C]C[CZCWCVCWC@VC@UC@\UC;VCWC@ ZC=XC=WC5WCWC&ZC@[C@ZC[C[CZCi[CZC[C^\Cp[C@xYCWC@3WCVC@VCiUC@!UCTCGTCTC=TC5TCSCRUC+TC.TC+TCSCRC@xRC@RC@SC@3TC@!TC@ TC@SC@xTCVCRXCYCXCWCVC@UCVCTCYTCTCUC@\VCTCSC@\UC0WCUC@SC@xSCcSCnSCfRC@QC@PCnQCLRC@SC@!UC@dCdCucCBbC@JaC@`C^C\C[CYC@JWC@WCLWC5VC@OUCLUC}VCYCYCWXCWWCWCYC\Cc[CZC@[C[C\CY[CcZC@ [C[CZCXC@JWCVCTVCUCTCTCTC@TCUCUCTCLTCUC0TC@3TCETC@TCSCRCRC@OSCSCSC#TCSC}TCUCWCYCXC)XCWC@VCWC@8VCTCTCTC)UCTCSC=TCWCWC;TCSCSC@SCRCQCfQCQCQCRCSC@3eC@3dC@!cCbC`C@_C^CT\CY[CXCVC@WC@VCUC&UC@UC@3XCTYCXCWCWCXC&ZC]CTZCkZCY\CL]C]C@sZCiYCYC+[CYCWC@VCVC@VCnUCUCTCTCEUC0VCVCUC@UCUC+UCGTC@SC UC@TC@SCRC@xSC TCSCSC&TCTTC@OUC@VC@WC@VCWC@XCWCWCWCUCGUC@!UCTCRUC@SC@SCVCXCUCSCSC@\SCRSCRCiQC^QC@QCWRC@aSCdCcCbCaC@`C_C@a]C\CZCWCiVCfWCUCUCUCWWCBYC.YC5XC@WCWCXCL[C@[CZC=[C+]C_C^CcZC@XC.YCYCXCWCVCVCUC@JUCUCUCUC^UCWC@VCVCUCUCUC TCpTCUCUCpTC&SC=SCSCSC=TC@TCnTCUCRVCVCUCUCXCWC+XCXCVC@UC@UCUCUCSCRC@TC^YCWCSCSCuSCSCRCRCPCQCRQCRC@cCGcC5bC@aC@`C5_C]C[C@YC@WCWC@VCUC5UCUCXC@aYCTXCWCXCXCYC[CuZCYC@\C^CaC^C@sYC+XCXCLXC@!WC@VCWC@aVC@8VC)UC@UC.VCUC@UC@!WCVC@xVC)UCUCUCTC=TCUCWCUCRTCSC@aSCcSCSCSCuTCcTC@OUCVCRUCTCTVCVCWCTWCUCUC@xVCUC@UC@SCRCGSCLWCEXC@\TC@SCSC@SCRCRCQCQCQC@JRC^cC0cC@bCaCE`C#^Cn\Cc[C@XCVCVCVC@UCUCVC@YC@XCkWCWC XCXCZCZC@xYC[C^]C^C`C\C@aXC&XCXC@WC@WCWC@XCVCUC@OUCUC=VCUCUCVC{VC@UCkTC^UCUC)TC@TCUC+WCTVC@TC=TCSC@JSCSC@SC^TC@aTCTC@UCUCSC@TCUC#WCVC5UCTC@VCVC}VC@JTCRC5RC@UCXCUCSCSCGSCBSC0RCRCQCQC@QC0cCbCbC`C_Cf]C[C@ZC5XCVCVC@UC5UCUCWC@JYC@WCWC@JXCGXC@OYCZC.ZC@YC@a\Cp]C^C)`C@[CXCWCWC@WCWC@sXC{WCVC@VC@UC@UC;VCUCUC@JVC#VC#UC@TCUCnUCUCUCcUCVCUCYUCEUCfTCSCSCSC@SC@\TCcTC@UC@\UC5TCSCTCVCVCUCiTCUC@!WC@!WC=UC5SCRC5SCWC@3VCSCSCBSCSCRC#RCQCQCGQC@bCbC@saC`C@^C]C@[CYCVCVCVC@UC@8UC}VCXCWC+WC@8XCXC@sXC@YCZCEZCZC\C]C _C^C@ZC5XC&XC.WCWCXC@8XC=WCpVC@WCpVCUCUCUCUCUCUCTCTCWVCUC@ UCiVCUC@UCUCpUCVCuUCSCSC@SC@SC@SCSCTCnVCLTCSC@JTC@TC@VC UCSCnTCVC@WCGWC@SC@JRC}RC#VCVCTCRSCSCSCRCTRCQCBQC{QCbCaC=aC`C.^C@\C@[C@YCuVCWC5VCUCUCiWCWYC@WC@\WCXCXC@XC)ZCYCZCT\C]C^CR_C]C@YC=XCWC@WC@XCXCWC@VCVCWC@8VC@UC@UC@ VCiUC0UC^UCUCTCVC@3VCfUCVC{VCLVC@UC@UC@VC@aVC@TC{SC=SCSCTC@SCTC@UC@aUCSC0SC+TC@UCTCSC@SC@UCWCBYCpUC@RC@RC@SCLWC@TC.SCSC@sSCSC.RC@ RCQCkQCbCaC)aC_C@]Cu\CYZCWCVCVC5VCUC@VCLXC^XC@aWCXC#YC}XC@YCYCYCZC[C\C^C}_C@\C@YCRXC.XCWC@XC@XCVCLVCGWC@\WCUCfUC^UC@xUCUCTCTCUCUC^VCUC@UCVCVC@VC@UC@UCVCVCWUC@SCSCiSCTC@SCSC=UCUCSCYSCSCUC=UC@SCfSCTCWCZC0XCSC@RCRC@VCTCSC SC^SCTCSC@3RCQC#QCbCWaCk`C@8_C]C@[CZC@WC@aVCVC@UCUCWC@XC@sXC@xWC@OYCXCXCYCXC@YCE[C\C+\C^C=_C}[C@XC@XCBXCXC;XC#WC#VC@UCVCpWCUCUC@!UC@xUCUCUCTCUC@UC@!VCUCfUCVCVC@VCVC@UC@ VCVCUCTC5TCSCSCSCSCYTC@UCTCESC@3SC;UCUC@SCRCpSCUCkYC@ZCTCRCRCUCVCSC@SC@SCuSCTCRC@QCnQC@ObC;aC)`C^C]C@ZCXCVC=WCVC.VCVCiWCXC@WC@XCYCXC@XCWYCXCkZCZCZC@x\C^C]C@[CXC@XC@XC@xXC@WCuVC@VC0VC+WCVCLUC UCTC@TCTCUCTCTC@UCUCTVC@3UC@VCBWC=WCVCUCUC0VCUC;UCTC@3TC@ TCSCTCSCuTCGTCSCRSCTCUCTC@RCSCuTCXC\C@WC SC@xRCSC@!VC5TCRCWSC+SCSCRCRC^QC0bC`C@_CE^CT\C@ZCWCfVC@VC@aVC@VC#WCnXC=XC@WC@aXCnXCnXCYCYCXC@8ZCYCRZC@\C]C\CYCXCXCXCWC@VCVCVCVCTVC)VCTCUCTC)UCTC@TC#UCTCnUC;VC@!VCUC@sVCWC@!WCVC@!VCUCUCUC@\UC@TC@8UCTCpTCSCRSCTC+TCSC@SCuSCUC@TCSCRRC@JSC@UC[CZC=TCGRCSCkVC)UC)SC@OSC@OSCSCSC)RC@QCbC@`C@_C^C)\CYC@VC@VC@xVC@VCpWC@JWCXCWCWCXCXCnXCXCXCYC{YCXCYC\C=]C+\CYCXCXCYXC@!WCuVCVCVC@VCUCUCTCTC@8UC@UCWUC@JUC@aUCUCUC#VCVCuVC@VC#WCWCWCVC@aVCVCUCUCUC@UC@UCTC@aTCSC@SCSC@TC.TC@8SCTCTC@xTCfRC@ SCfTCYC]CnVCSCWRC0UCVC@OSCRC@xSC@3SCSCRCnQC.aC`Cn_C]C[C@XCVCVCEVCcWCWCWC@XC@WC@sWCWC;XC@XCLXCYCYCXCfXCZC[C]C@8\CGYCLXC XCWCVCVC@aVC}WCWC@UCUC@UC^UCUCUC@UCLVC@VC@JVCpVC@xWCLWCVC@VCWCXCXC@VCVCnVCUCcUC@!VC@aVCVC@sUCTCTCSCcSC TCSCiSCSCTCTCRCRCSCWC]CcYCSCLRCSCVCTCRC+SC&SC@SC@8SC)RC@`Cp`Cp_C@]CpZCWCVCVC@VC#XCkWC}XC{XCVC@aWCWCXCXCXC@ YCWYC@XC.XC@aZC]C@_Cf\C@XC;XCWCVC@VCVCVC.WCVC@UC@UCUCVCWVCWCnWCXCXC@ WC.WCLXCWCWCkVCWCGYCYC^XCVCVCLVCUCUCVCTVC@UCUCTCTCkSCSCSCSC@SC@aSCTCSC@sRCRC.UCZC[CTC@RCRCUCkUCpSC@RCTCSCSCRC`C`CE^C\CYCVCVCWVCWC0XCXCXCWC@VCWCWCXC@XC@XCXCXC@aXCYC[C_CaC@[CXC@ XCVCEVCYVC=VCVCVCWVCYVCYVCVCVC@VCXCkYCZC5YCLXCWCnXC.XCYXC@VCWCTYCT[CcYC@WCVCnVC0VCpVC@VCWCiVC@UC@ UC@sTC@SCcSCSC TC@SCSCTCTCRCRCSCWC@]CkWCYSC@RCTC@VCSCSCRSCESCSCRC`C5aCu]C[C@JXCVCfVC}VCXCWCXC@\XCWCuVCkWC@8XCXCXCXCXC@XC@\XCfZC@^C@bC;aC@a[CXC@WCVC.VCVC@VCVCVCiVCVCVCVCVCRXC0ZCT\C]CZCYC@YC&YC#YCXCWC@WCXCR[CZC@YC@WCWCVCVCVCWCcVCUCUCTCTCSCuSCSC@SCSCSCTCLSC@RC@SCUC{[CYC@xTCRC@RCVC@TC&SCSCkSCuSC@xSC0bC_C@3]C@aZC@xWCVC&VCVCXCXCXCYXC@!WCVC@XCYCYCnXCXCXC@xXCXCk\C`CcC`C@ZCYXC^WCVCiVCVC@VCYVCVCVC#WC@VCWCXCYC\C_C_C\C@3[CZC@YC.ZC@aYC;XCXCXCZC@[CR[CXC@WC#WC;WC=WCVC@3WCVCUCRUCTCSC^SC0TCSCiSCkSC@sSCBTC@RC.SCGTC@XCu[CUCfSCRCuTCUCSCRCSCSC@aSCbC^C5\CXCWCVCUCXCiXC@XC@XCWC@VCTWCWCXCYCiXC#YC@XC@XCYC^CbCbC5^CLZC@XCYWC0WCVCVCVCVC@aVCnWCXC+XCXCYC@J[C_C#bCaC^C@J]C]C[C@[CkZCEYCRYCXCYC@[C+]CuYCXC@WC^WCcWCfWCWCpWC@JVCUC@ UCTCSC@SCSC@SC=SCSCTC+SCRC@3SCVC@OZCuWCSCRCuSCBUC@3TCSC@RCSCSCaC]CZCXCVC@ VCVCXC@XC@YC@XCWCBWC@WCXCXCXC@XC@!YCXC+YC@[C_CaC@`C@!]CYCcXCWCVC0WC@VCWCGWCkWCWCRXC.ZCZC@[Cu]CbC@adC@8bCaCaC@\_CR]C^C\C0[CZCYCXCcZC]CL[C)XCWCXCWCWCWCWC+WCkVCUCEUCSCSCSCuSC@8SCWSCTC@TCRCSCTCWXC&YCUCSC@RCkTC.TCSC@RCSCWSC@_C\CkYCWCVC@UC@WCuXC@YC@XC@JXCWC@8XCXCWXC@YC@XCuXC@\YCkYCZC]C_CY`C^Ck[CXC@aXC5XC=WCWCTWCcWCEWCWC@XC0YCR]C=]C\C@_C&eCdC{aCcCYeCbC^C@s`C@_C^C]C.\CYCYC@\C^[C;XCWC;XCTXC@sWCWC@XC{WCVC@OVCUCTCSCSC@TC SCSC@SC@UCETCRCSCVC@8YC5VC TCRCkSCTCSCRC;SC@RC@]CT[C;XCEWCcVC VC&XC@XCXCcXC@XCWCTXCuXCGXCXC+XC#YCZCZC\C]C^C]C@\CYCnXCiXCWCnWCpWC@\WC+WCWC}XCYC@[C`C.`C]CEaCfC@dCkaCufCiCkcC@`C.bCaC@\aC)aC@\_C[C=ZC#[CZC#YCTXCBXCpXCXC&XC}XC@XCRWCVCVC@UCkTCSC@TC=SCSCESCGUC@TC@JSCRCTCWCWCTC#SCRC@3TCSCRCRC@SCR]CYCWCVCVC@VC+XC{YCXCXCXCXCXC&XC@aXC@WCEXCYC@ZC@\C\C=\CW\C[C}ZC@XC@WCWC.XC@WC@WC#WCWC@!XC;YCZC@]C5cCkaCT^C`CBfCfCbCYhCkCcCaCcC@bCudCYdCubC]C@ \C{[CZC}YCYCXCBYC@XC@XC0XCXCXCTWCVC@ VCfUCpTC@8TC#TC@sSC@sSCTC.VC@TCRCSC+VC@WC{UC@OSCRC@8SC@SCRCRC@SC[CXC@VCVC=VCWCLYC@OYCWXC@XCiXCXCWCWC@JXCGXC&YCZC@x\C]C\CW[C@[C&ZCXC XCWCWCXCWC@WCWCWC@XCZC@\C_CcC@bC^C_CeC@hCdC@iCjC@bCbC@dC@dCWeCdCkcC{`C ^C@]C@[CZC@YC@YCWYCYCXC.XC@XCXC@WC=WC@3VC@JVCTC@JTC@8TC^SC@\SC.SC@\UCTCRCRCTCVCVC@!TC&RCRC@TCRSCRC@SCZCWC@!WCVCkVC@WC=YCXCXCXCYC@XCWCWCWWCWCYCk\C5^C@^C[CYCYC@XC;XCEWC}WC@ XCGXC@XC{WC@!XCXCYC[C]C_CcC&cCT_Cf^CkdCiC@OdCgCRfC@3aCaCcC@JcCidC=cC=bCaC`C@_C@\C\CZCZCZCZC)YCXCYCXC@XCWCEWC@VCUCTCTCSC@SC@\SCTCUCESC@RCWSC5UCVC@aUC&SC=RCSCSCRC@!RC.YC WC@VC@VC WCXCXCWCXC5YCXCXC@WCWCWCXC[C@s]CW^CL\CTZCfYCXC@sXC^XCTWC@xWC@WCXC+XCWCWCYCZC;\CT^CB^CcCdC _C]CcC=gCaCkbCaCT^C@s_C`C`CbCaC@!_C`CuaCaC]C]C]C\C[CZCYCXC@YCYC@YC@8XCWCBWC@VCUC@\UCTC@!SCSCSCUC&TCRCRC@aTC@UCVC@JTC{RCRCSC@3SCiRCnXC@VCkWC@VC@XC@!YCWCXC YCYC@XCWCWC)WC@OWCYC\C^C]CZCYC+XCBXC0XCWCWCXCWCXC=XCXCiXC@[C\C]C@^C@_CfC^eC^C]CbC^bC^C@]C@x\CR[C@[C\Cp\C^C+^C.]C^Cc`CbC@^C#_C{^C@a_C^C\CZC@YC@XCYCYCXC{WCWCWWC@aVCkUC UCSC+SC{SCSCUC&SC}RCLSCfTCVCWUCSCWRC@SCSCRCWCWCVCWC@xXC@XCWCWCYCXC XCTWCiWCVCWC@[CT]C]C[CYCYXCcXC{XCWCWCWC@XCLXCXCYCYCkZC]C\C@]C;`CbC@iCeC@]C+^C_C@^C@[CZCYC@XCXCXCYCZCc[C@ZC\C^C}_C^C@^C`CT`C`C]C\C@[CYCYCcYCWXCXC@WC@WCVC VC@UC@SC;SCuSC.SCTCSC@RCRCSCTC@VC+TCRCSCfSCRC)WCWCWCXCXCWCpWCXC)YC@XCWC#WCVC@VCXC[C@a]C}\C@ZCYCXCpXCWCWCuXCXCkYCRYCRYCZCLZC@\C@!_C{]C^C@bC.dC+jC@bC\C]C^\CY[CYCXC@ XC WCVC@VCLVCkWCYCXC+ZC@O[C@\C@\C@]C@_C`C@ aC@_CT^C@\CZCYCYCGYC@OXCWCWC#WCkVC@UCTCpSC.SCcSCSC&TCRCRCSC@aTC@UC@JUC@ SCRC@SC@aSC+WC@OWCVCYC@XC@WC@WCXCXC@WC5WC@OWCVCWCZC@\\C.\CG[CWYCXCXCWCWCWC^YC@YCYCYC[C)\C[CW_C_C_C_C@dCGdC@8fCT_C[C[CYCXCWCVCWVC@3UC@TCTCTC@UCEVCLWCXCXC@YCLZC@[C@]C_C@8aC_Cc_C_CR\Ci[CWZCYC@XCXCWCWC)WC@8VCiUC+TCpSC@SCSC)TCSCRC@RCiSCTCUCSCRC@3SC@aSCWWCWCcWCXCWC@xWC@\XCXC@JXC@aWC#WCVCVC.XC[C[C@a[CZCXCXCXCXC&XC YCZC+[CZCYC^C_C@^CbC`CB`C&`CbC aC`C.\C@xZC@YCWC=WC@ VCTUCTCSC}SC)SCSC@SCTCUCVC@ WCWC@XCYC[C@]C_C@_C^C@`C@\^C\C[CGZCYCYXC@WCWC}WCVCVCTC@SCiSC^SCSCTCSC@RCRCSC;UCTCSC@RC@!SC&WCVC@XCBXC@aWCGWCXCXCWC0WCWCfVC@JWC@XCL[C@s[CZC)YCXCXC@XCEXC@3XCZCn\C\C[CE[CbCBaCaCbCaC_C_Cc_C@\C\C@!ZCXCWC5VCYUCcTCpSCRCRC+RC)RCRCRC+SCTCTCTCUCVC@WCRYC[C]C@^C@^C^`C`C@\_C@]C#[CYC@XCWCWCWCVC@sVC@JUC;TC@8SCSCSCSCfSC@JRCRCRCuTCGUCfSCRCRC@WC@WCXCWCVCWCXC@!XCWCVCVCVC@aXC^ZC[CZCYCnYC@XCBYCXCcXC@!YC]C^C@_C@[C ^CTeC@bCbC@`C@`C=^C\C\CYCYC@XC@WCUCTC+TCRCBRCQCTQC@QCcQC@QC@RC=RCSCSCSC@TC@TCUCWCYC@[C@\C]Cu^C_C@aC`C\CW[C@YCGXC@WC.WC@WC=VCUCTCWSCRC@JSCSCTC&SC@sRCRCWSCTC@TCRCRC@WCkXCRXC@3WC@!WCiXCRXCWCpWC@sVCuVCGWC@YCZC@J[C@ [CYC@OYC@xYC@!YCXCXCZC`CaC@aC+\C@_CueC`C@s`C^C^C\CZC@YCXCXCWCuVCTCSCRCRC@!RC@QCQCQCQC0QCQC@QCRC@RC@ SC SC@SC@SCVCBXCYC[C^\C]C@^C5aC@xcC_C\CZC^YCWCuWCTWCVCBVCGUCBTC+SC{SCSCSCSC}RCRC@RC@TCTC@SCRCWC;XC{WCWCWC@!XC XCWC@WCVCYVC@XCYCE[CB[C}[CYC}ZCYCXC=YCYC]CcC}dC`C@[C_CkbC]C[Cc[Cp[C@YCYC@!XC@XCWC0VCTCSCRC@ORC+RC@QCQCkQCQCQCQCQCQCQCGRC@QC@RCRC@RCWTC VC@XC@3ZC[Cp\C@O]C@O_C{dC@bC^C#]C&ZC@xXCkWCLWC@8WCVCUCTCuSC5SC@ SC@3SC@SC@aRCRCpRCTSC@TC@\TCRC XCXC@3WC@VCcWCXCXC5WC5WCVC@ WCXC[C@[C[C@ZC@ZC[CYCYC@sYCZCf`CdC&dC&^C@[C^C@]C@JZCXCXC@xYCLXC0XC@sWCuWCUC@aTC{SCRC}RCYRCuRCcRC@\RCnRCRCiRC+RC=RC@QCRCRCRCQCRC@3RCRCcTC0VC@3YCZCuZC[C]C0bCcdC@OaC@a_C[CiYC@xWCWCWCVC@UCUCSCRC)SCSC@\SCRCRC@RCRCTCfTC@SCXCBWCWCVCfXC@8XC@WCTWCWCVCLXCYC@[C@\C[CZC\C@[CYCXC@ZC@!\C+aC@cC@`C[C@[C[CYCWC@VCWWC@WCVC+WCVC@UCBTCSCESCERCRCRC}RC@SC@!SC+TCSCSC.SCRCRRCLRC@RCQC@QCQCQC@ORC@RC@TC@WCYC@ YC=ZC}\C_C@cCbC@`C@^CZCXCWC@8WCVC@aVC^UCTC5SCRC@RC@SCSC@RCQCRCESCYTCSCWCVCVC@WC@XCWC@\WC@sWC@VCpWCcYC@ZC{\C\C\C@[C^Cn[CYC@YC@O[C@]C_C_Cn\CYCYCfYC5WCVCVCVCLVC@UC=VCUCuTC@SCRCRCcRC@RCRCSCTCTC{VC@8VCUCTCTCSC@SC@!SCiRC@RCQCQC@QC@3RCSCcUCWC@XCXCWZC@\C`CbC5bCE`C@]CYC=XCWWC)WCVCUCTCSCRCRC@RCSC@SC;RC@JRCRC#TCYTC^WCWCVCWCWCWCTWCWWC@VC@JXC@ZC[C]C@\C[C@ ]C@^CZC^YCZC[C\C]C;\C=YCXCXCWC@3VC@UC@UCUC@TCTCUCWTC@RC@RCRCRCRCSC@RCGTCVC@aVCZCYC@sXC@WCVCUC&UCTCSC@RC;RCTRCRCQCnRCSC@VCnWC}WCYC@JZC\CL`CaC5aC`C \CYC@3XC@sWC@VC0VCUCGTC@!SC@RCRC@sSCpSC0RCRCRCkSCfTCWVC@VC0WCWC@WCWCEWCVC@\WCYC[C@\C@3]C\C.\C^C\C@YCYCZC@[Cc\C[CYCWCWC@WC@VC#VCUC5TCTCTCSCSCSCRCRCRCRCSCTCUCVC@XCYXC)^C.]C#[C[CZCYXCiXC@XC@ VCETC&SCYRCERC0RC@JRCuRC@TCVCUCWC.YC=ZC]C_C`C@abC^C[CYCWC@xWCVC.VCTC;SCRCRCRC@SCRCRCRCRCYTC=VCVCkWCWCVCkWCVC@sVCXC@ZC@3\C\C@\C\C\C^CZCZCZCZC\CY]C@ ZCWCVCVC@VC@!VCTCTC@xSC@SCGSCSC@RCRCRC@SCRCSC@\UCYVC@!VCWCXCXC@3_C0_C\C\C@]C[C[C[CkYCiWCRUC@SCRC.RCYRCRC@RCSCTCkVCYXCXCZC\C^C@aC@bC]C\CXC@!WCWCfVCWUC@SC{RCERCRCpSC@RCRCRC RCpSCVCVCYWC@3WC5WC@VC@aVCWC@YC[C@\C@\C[C[C\C.\C@JZCZC@sZC[C@^CE^CXCVCUC@UCUCUC@SCLSCRCRCcRC@\RC+RC}RCRCSCSCTC)WCWC;VCVC=WC@WCc\C^C\C@[C^C^C#_C^C\Cc[C}XC@TC@OSCRC@\RC@JRCfRCRCLSC+TCVCWC@XCYC@\C&_C@cC@\_C_C@J[C@ XCYWCVCVCTCSCRCfRC@3SC^SCRCGRC@RC@SCWVC WCEWC@VC5WC@8VCVCXC[C@[C@\CR\C[Cp\C@\CZC^ZCZC@ZCp]C@aC ]CWC.VC@sUC@!UCUCTCRCRCWRC.RCQC@QCRCRC&SC5TCTCuVC@XC;XC;VCVC@UCUC@YCnZC@ZC@YC]C@]C_C_CE_C]CE]CWC.UCiSC@sRCLRC@RCWRCRCRCTCWCWCXCZC]CbCaCaC^CYCWC@OWC+VCnUC5TCRC)RC@RCuSCRC@JRCfRC@xRC@VCVCVCWCWC@ VCWCYC@O[C\C\C@[C[C[C@sZCpZCZCZC@ \CY_C@bCkZC0WCUCUC@TCpTC@sSCRC@ORCnQCQC@8RCQC@RCGSCETCTC@3VCWC)YCWC@OUCTC@8TCETC@UCnVCWCRWCYC=[C5^C@]C^Cp^Cf`C\C&XCTCRCSCRCRRCcRCRCiSCpUCVCWCEYC\C`CaCpaCGcC@\C@XCWCVCUCTCSCRC@RC@SCSCRCQCRCVCVC@VCVCVC@VCXC@\[C[C@\C[C[C[C[C.ZC@O[C@s[C[Cp^C@`C@`C@XCEVCTCTCTCSCRC@\RC@QC RC@QCRC@xRC.SCSCTCVC@3XCXCXC@VCTCSCSC@SCWSCSCTCUCuVC@WCLZC)[C[C@x\C`CaC\CVCBTCRC=SC.SCpRCRC=RC@SCiUC@VCXC@ZC_C`C@\`C@dC@OaC[CcXCWCYVC@UCTCRCRCRCLSCRCRCkRCVCVC@VC@VCcVCWCBZC@[C\C@3\C[C[C[CRZC@ZCY[Ci[C]C_C_C[CGWCTCLTCTSCSCSC@RCQCQCQCiRC;RCRC@aSCTCUCWCYCXCVC@UC@SCSCSCRC@RC&RC@SCpSCSC.UCVCXC.YCYC]CYcC`CYCVC@OTCSCTC@SC@RC@3RC@RC=TC@UCWC@YC^C`CE_CbCdC@^CZCEXC@VC&VC UC@SC@JRCRC.SC@RC@!RC@3RCVCTVC{VC}VCVCXCk[C)\C{\C[C[CE[CLZC.ZC[C@![C[C@!`C^C@x\CXCVCTCGSCRC@RC@RC@QC@QCQC@QC@\RCRCSC@SCUCVCYCB[C@sWCfUCTCSCYSC@sSCSC@3RC@JQC@\QC.RC=RCESCTC VCWCWC5ZC@`CbC@\CLXCUC@JTC;TC@!TCnTC@RCfRC@RCpTCUCWC\C`C@!_C_CcC@!cC]CZCfWCVCUC@OTCRC=RCRCRCRCRCVC@aVC@VCuVCpWCYC@3\C@J\C@J\C@[C@x[C[CZC@J[Ci\CZC0]C=aC@[C@3YCVCTC;SCRCRCRC@QCQCQCQCRCRCpSCfSCTC@UC@VCZCWZC@UC@OTCYSC@SCRCiSCRCQC.QCQCPCPC@QCRCSC@UC@UCVC@\CaC0]C=YC@xWC@\VCTCTC^UCcTCSC5RCSC@OUCEWC@YC_C;`Cn^C@J`CcCkbC#]CYC@sWC@VCUCSC@JRCRC@!SCRC@JRCVC^VCYVCVC=XC@[Cp\C@s\C@[C@a[C@a[CWZCBZCB\C[CZC5_C5_CYC@WCUCTCRCRCkRCRCQCQCQC@aRC5SC@SCSC@ TCTCUC^VC@sYC@XC@UC@aTCRC@xRCRCSC@RCQCPCPCYPCPCuPCQC@SCcTCRTCTCXC]C@\CXCWC@!XC@!VCTCVCUC@TC@SCRCSCVC}XC]C@!aC_C@]C`CudC`C\CWCVCUCTCSC&RC0SC SC@RCVCVCVC@\WCYC@\C^\C[C[C@J\CZCYCZCT]CcZC[C@_C#\CWC^VC@TCRC@RCRCRC@QCuQC+RCRC@RC^TCTCWTCSC@SCTCUCTXC@VCTCSC@xRC+RCRCSCRCQCPC@\PCOCuOCOC@aPC@aRC@3SC^SC@SCUCZCZC@aWCVCXCWC)UCVCWC@UC}TC@\SC@sSCWUC.XCZC@`C_C\CY]CTcC@xdC_C;ZCBWCVCUCSCBRCuRCSCRC@aVCVCVCLXC@[C\Cn\Cu[C0\C@[C;ZCiZC+]C[CYC[C]CYCVC@UC@SC&RCQCQCQC@\QCQCRCYSCSCTCTC@OTCSCTCTCUC@WC@UCTCRC@\RCQCfRCSC@RCQCPCiPC@sOC@OCOCLOC@aQCRC+SC@8RCSCVCXCVCTCcWCYCBVCUCWC;VCUC@TC.SCSCWCYC@]C@3`C@^C5[CR_CdC&cC@^CYC@ WCUCTCSCBRCRC+RCVC@!WCEWC@ ZCf\C@a\C@8\C[C\C{[C@YC\Ck^CZCYC[C[CXC@VCiUCSCERCQCRQC{QCQCRC5TC@SCUC.UC^TCSCSC@TCUCVCcVCTC@SC@RCRC QC@ RCuRCRCQC@PC PCOCNCNC@NC@PC{RCRCQC0RC5TCVCUCSCYTCXC@VCUCVCVCVCUC@SCSC=VC@YC@[CB_C^C[C@s[CYbCdCaC[CWCVCUCSC@8RC)RCiRC@8WCVC@XC)[C@x\C\C[C@a\C@J\CiZC.ZC^C^CYC@ZC@[C@YCpWCVCTCuRCQC@aQCcQC@xQC@JRC@TC}UCTCTCTCSCSC@SC@8VC@VC@OVC@VCTC@SC@RCQC@3QC@QC@QCQCQC@PC@OC@OCNC@NC@NC@OCQC{RCQC@sQCRCBUC@\UCWSCRC#VCWC@TCTCVCVCVCUCSCTC{WC@ZC@8]C_C\C@ZC]CcCcCR`CZCfWCVCTCLRC@QC{RCWCWWCYC@3\C@s\C@[C[C\Cc[CYC[CRaC@[CYCYCGZCXCWC@3VCSCRCWQCEQC@3QCBRCSCEWC@UCSCTCTCSC.SC@xSCiWC}WC@VCUCTCSCYRCQCQCQC QCQCPCOCOC@JOC@8NCYNCNCNC;QC@RC}QC.QCQC@JSCSCRSCQC^SCVC@TC5TCEUCUC@OWCVCTC^SC@\UCXC\C^Ci]C@YCZCGaCbCcC]CXCWCUC@SC@3RCBRCWCXC@![CG\C\C\C\C]CZC;ZC_C`CZC ZC@xYC@YC@XC@XC@UCRC@QCQC.QCQCRC@OVCWCLUCRTC)TCRC@RCRCTC@aXC{WCpVCVCTCBSCRCcQC+QCQC@PC@sPCPCOCNC@ OCNCENCiNC@NCiPC@QC}QCPCWQCfRCRCRC;QCQCSCTC@OSC@SCnUCVCVC@xUC@JSC@SCVC+[Cp]C]CZC@YC^]C@O`CbCEaCf[CLXCVC@!UCGRCQCWC@YC[C=\C\C;\C\C[C@YC@]CbC\CYCYCYCWYCXCVC^TC}RCQC@!QC@xQC RCfTC@XCVC@sTC@OSC@OSCRCRCRRCSC@sWC@ WCRVC{VC@TCRC@RCQCQCQCPC@PCOCOC=OCpNCBNCNC@JNCWNC=OC@QC@PCTPCiPC@QC5RCLRC@\QCLQC@RC@SC@RC@RCSC=UC@VC=VC@TCSCTCXC\C@3]C0\C.YC5[Cf^C.`C@JcC^CYC^WCUC@SC5RC@XC#[C\C\C0\C\C@O]C@ZC [C`C@\aC@ZCZC@YCYC5YC@XCUCESCQC@3QCQCRCRC VC@VCTCSC@RCRC@8RC@RCRC@SCVC@xWCVCEVCfTCRCQCQCfQCWQCPC@ PCPCOCNCNC@JNC.NC)NC5NC@NCTPCPC@ PC@3PC@3PCQC@QC#QCPCQCRCRCWRCRC@SC@TCVC@UCRCRSC VC)[C@O]C@\C^YCYC&\C]CaC@aC\CXCVCTCQC@ ZC[CE\C@\\C@[C}]C\CZC]CbC]CZCZCYCYCXCWCTC;RCPC@8QCYQCRCSCWCUC@SC@ SCcRC@RCQCQC@QCSC@ VC}WC@VC@VCTC@8RCQCRQCPC@ QCPC PC@OCOC@NC@NC&NCpNCNC@ONC@NCLOC;OCTOC{OCOCPCPCPC@PCPC;QCYRC@QC@3RCRCSCkTC{UCSCRCSCTXC\C@\CZCXCZC@a\C^C@bC`C+ZCWCVCWSCZC\C@\C@x\C\CG]CZC[CWaC.`Cf[CB[CZCYCWYC@\XCUC@8SCQCQC@QCkRCSC@ UCUCSCSCTRC+RCRCQC@sQCQCiSCUC@WCVCVC@xSCiRC=QCPC@PCPCnPCfPC@xPC{OCNCNCNCNC@\NCNCkNCNC@OCnOCWOC@NC^OCPCPC@OPCuPCPCfQC{QC@QCRCRC@xSCUC+TCRCRCpUC[C\CZCpXC@YCY[C&\C`CbC@ ^CXC WCTC#\C\C\C0\C]C\CYC0_C aC\C[C@[C}ZCRYC;YC0WCTTCuRCQCQC@QC@\SC@SC+UC@3TCRC@RC@aRC@QCQCWQCkQCPC#SC@UC0VCVCpVCSC@!RC@PC@PC@3PCOCOC^PC@\PCPCGOC OC@NCNCNCNCNC@NC#OCNC;OCOCNCOCPCPCPCOC@PC5QC#QCPC@QCRCSC@aTCRC+RC@SCWCc\C[C@XCiXCTZC@ZC^]CbCaC@ZC@WCUC@x\C]C\C@]Ck]C#[C@s[C@aC]C[C@s[C;[CYCRYCBXCUCpSCQCQC5RCBRCTCETCSC;SCRCRCLRCQCPCQCPCPCRCTC@aUC@xUCTC@RCfQCRPCPCPCOCOC@JPCPCOCOC@JOCOC=OCNCMCNC@ OCNCNCOCNCGNCOCPCPCPCPCPC@sQC QCPCQCQCRRCSCSCRCRRCTCYC[CYCWCYYCYC=[C_CcC_CXCVCp\C\C&\C@]C\C ZC=_C_C[Ck[C.[CZCYC@XCpVCTCpRCQC@QCRC^SCTCSCRCRC@3SCSCRCuQC@PCkPCPC;PC@RC@TC5TC@TC+SC@QCPCfOCNC@NCNCNCOCOC;PC@8PCOC=OC5OCuNC@MC@ NCNC@NC@!OCNCNCNCNCOCPC^QC#PC5PCPC@PCPCfPCPCPCRCRCLRC@QC&SCpVCZCYC@8XCXC@YCYCi]CRbC@bCL[CWC\CW\C@!]C@]C@![C@[CnaCT\C@[C[C[C+YC@YC@WCkTC@SCGRCRC@\RCRCTC@UCSCRC@3SC@SC0SCRCQC}PCWPCOCOCQCTSCRC5RC;QC+PC@\OCNC@sNC;NCNCNCNCOC@QCGQCfPCiOC@8OC@NCNC@MC@NC@NC@8OCNC#OCNC@NC0OC.PCRC@OPCOCLPCGQC@ QCOCOCEPC@3QCiRCQCQCBRCSC@XC+ZCXCWC#YC{YC[C_CdC_C;YC ]C@\C]C@]C@3ZCf^C@J_CZC{[C@[CYC@XCXC^UCSCRCRCQCRCpSCWVC+UC&SCSCiSC}SCfSC@RC.QC5PC@PCTOCuOC@PCQCBQCOCiOCNCBNC;NCMC@NC NC@xNC@3NC@PC@3SC@aRCPC@OCBOCNC{NCNCkNCfOCOC+OCOC@NCMCWNCOCQCPCOCOCPCPCPCOCOC.PCQC@QCQCLRCRCUCXCXCWC^XC@3YCYC@]CpbCcCc[C@\C\C@]C@ZC [C&`C@\CfZC[C@ZC@XC@WCWVCSCRC&RCQC@!RCRC@8TCpWC}TCRC@!SC@aSC@SCSC@RC&QC.PCLOCNCNCOCPCOCNCNCMCMC{MCMCMCNCNCNC)QC@TC@SCQCOC&OC OCNC@aNC@ONCOC@ PC@aOCNC)OCGNC@NC#OCPC5QCOC@PCPC@aQC@PCOC&OCOC;PCPCPC@aQCRC@3SCVCWCpXCWCXCXCR[C@`CdC_C\C5]C@\C@YC]C@_CZC[C+[C@JYCWC@VCTCRC@RC@RCRCRC@SC5VC)WC@3TCSCSCSCWSCRCQCPC@OCNCNCMC;NCNCpNC{MC@OMC@MC@8MCnMC^MC@MC@NCNC.OCGQC;UCTCWQCPCEOCOCNCkNCBNCOC)PCOC0OC@3OCNCNCOCPCQC@OCOCPC.QCPCOC@NCOCOCiPC}PCQC@QCRC@TCVCXC@!XC@XCXCYC^C@bCcC\C\C[CZC_CT\C@YC[C#ZC@sWCVCTC+SCTRCfRC&RC@JRCBSCcTCWC@VC)TCpSCRC5SCRC;RCQCWPCOCRNCMCRMC@MCMCMCYMC0MCMC+MC;MC@MC=NCNCiOC@OCPCSCSC@PCOC&OC@ OCNC@NCMCWPCPCEPC@OCfOC+OCOC@NCOC@PCOC@8PC@PCuQCPC@OC@OCNCOCOCPCfPCPCQCSC@aUCfVCWCWC@JXCXCc\C`CWeC\C\C@\ZC@\CY^C@sZCGZC@sZCXC@UCTUC;SCWRCcRC@QC@sRCRC@SCUC}XC@OUC TCSCSC@RC@8RC@QC@!QCOCNCMCMC#MCMC{MC&MCLCMCRMCLCMC@MC@MCNC#OC@PCfPCQCRRC@PC@ PC@sOCNCNCNCGNC@PC@QCPCPC@OCNCOCOCOCPCGPCPCPCQCGQCPC@\OCNCNC^OC@OC@OCPC@8QCRC&SCUCVC}WCWCuXCWZC)_CcC@\C[CBZC]C&\C@ZCZCYCWC@xUCTC}RCRC RC@3RCRC@SCSC@VCWCTC@3TC@SCSCRCQC@QC@PCfOC0NCMCLCLCiMC@MCuMC&MCMC#MCMC)NCkNCpNCNC5OCOC@PC.QCiQC@ PC@OC0OCNCNC+NCWNC@QCRC@3QC@PCPC@!OCPCcPCOCYPCkPCEPC0PCkQCQCPCOCiNCfNCNCOC@8OCOCQC0QC=RCSCUC@OWCBWCEXC@aXC\C@`Ck\C@sZC@[C]C@ZCZC@YCXCUCTC SCRCRC@RC@RCRCRSCTCXCUCTC@SC@SCWSC@RCQCPCPCOC@NCMCMC#MCMCRMCLC)MCMC{MCMCMCNC@JNC@JOC@OC+PC@!QCQCPCOC{OCNC^NC.NC@MCNCPC)SC0RCPC=QCPC@PC@PC@PCPCPC@\PC^PC@PCGQC{PCOCNCkNC{NC@NC)OC0OCOCPCQC@sRCTCVCWC@WC@8XCZC{_C;[CRZC\C\C=ZCYCYCVC@TC{SCRC@RCpRC+RC@RC@SCBSC5UC@ XC@UCpTCTCGSCSCRCQCPCPCOC@NCMCMCfMC5MCLCBMC0MCMCkMCMC@\NCNC@NCOC PCPCPCLQCPCOCOCNC@xNCNC@MCMCQC0SCSCQCWQCPCPC=QC@PCPCYQCPCPC=PC@8QCPC@OCNC@ NCBNCTNCNC OC@sOCiPCPCQCRC@xTCVCVCWC@XC\CZC;[C\CZCYCYC@WC@aUCSCRC@sRCRC@RCRCGTC#SCSC@\VCVC5UC@SC@SC@JSCRCQCRC0QC@PC@aOCNCMC@sMCMC#MC@3MCpMCMCGMC@\MCMC@MCNCTNCOCOC@OCPCfQCcQCBPCpOCNCTNCLNCkMCMC@QC.TC@TC=RCQC@QC@QC@RCPC@8QCWRC@!QCPCkPCnPC@\PC@OC@NCNC@MCMCNCNC@OC@sOCPCnQC@ RCWSCUC)WCWC@OXC@YCEZC[C@[CiZCYC@XCVC=TC0SCRC@RCRCLRC=SC@TCuSCTTCVCUC@TCSCSCRC}RCRCRC@QCPC@!OC{NC@NC@NCMC#MCGMC@LC@\MCpMCpMCMCMC;NC}NCOCOCNCuOCPC#QCPCOCROCiNCMCMCMCPCSCTC.TC}RCRC5RC@RCPC@QCBRCQC@aQCPCPCOC@OCOC@NC0NCMCLNCBNCNC@NCBPCPC@xQCRCTCVCWC@WCYC@ZC[C[C ZCYCGWCUC@SCSCRCRCnRCRCWTCSCSC@TC)VC.UCTCTCRC@QC@QCQCLRCQC@PCOCOC@xNCLNCMCEMC=MC@MCMC}MCMC{MCMC@MC@NC@NCNCNC@NCOC PC@PC@OC OC@aNCENCMCcMCPCSCUC@\UCSC@3SC@SCSC^QCBQCcRCQCQCPC&PCpOC@sOC)OCNCfNCMC@MC;NC@aNC@\NCiOCPCYQCQC@SCUC5WCTWC=XCZC)[CTZCYCXCUCSC@3SC@RC@RCRC;RCSC@3UC@SCSC&UCUCTC=TC}SCRCQCQCRCSC@ QCPC@OCNCBNCBNCYMC@OMCMCMCMCNC@sMCMCTMCMCBNCNCNCNCNC OCOCOCOCOCNCNCNCMC&OC@JSCUCLVCUCTCSC.TCRCPC@RCRC@QCRQCPC@JPCOC@\OC@ OCNCNCMC0NCNCNC@ONCfOC;QCQCQCiSCVC^WCWC[C@[CYCYCWCTCSC0SCSCRCSC@RC@!UCTCSCTCLUCTC)TCTCRCQCQC@PC}RC@RC0QCTQC@OC OCNCNCMC@8MCMCMCMCpMCMCMC@MCMCMC0NC^NCNCNC@NC@\OC@3OCYOC)OCNCLNCNCNC@OC@\SCTC@VC@VC;VCVC#UCSC@QCRCRCRC@QC@QCTQC@JPCPCOC}OCNCMC@\MCNCMC@8NCNCPCQCQC@RC@TCVC@WC@ZC^ZCuYC;YCUC@TC SCRC@RCRCRC@SCUCTCSC@3UCUC@TCTCTC@aRCQC@8QC@OQC@ RC@QC@8QC@3QCOCNC@JNCMCMCMC@MCMCMCMC@xMCMCpMC@MC@MC@NC=NCNCNC)OCNCOCNC@NCGNC+NCBNCNC@PC=SCUC{VC@WC@WCWC@VC=UCRCnSC@SCcRCQC}RCRCQCPCGPCPCYOCBNC@MC@3NCNCkNC@MC@sOC{QC@QCQC@RCGVC@sVC@ZCZCYCWCTC@RC@RCRC@aRC@RCSC@UCcUCSCTCUCTC.TCkTCSC@QCQCQCPC@sQCPC@\QCQC&OCNC0NCuMCMCfMC@sMCMC@MCMCMCGMC+MCMCMC@MC@8NC0NCNCNC@NCNC@xNCNCNC{NC{NC@OCBQC@SC@OUC@!VCTXC=YC@XCWCWCSCSC@aTCRC@RC0SCSC@RCQC;QC@PC@PC@ OC@NCMCMCMCWNCNCPCQC@RCRC0TC@VC@!ZCYC@XC@UCSC@ SC@\SC@xRCRC@RCTCUCTCSCiVC;VCTCTCBTCSCQC0QCPC@PCPCiPC^QC PCNCWNCNC@MCnMCRMCMC5MCMC@aMC@!MCMCWMCMC@aMC{MCLNCNCNCNCfNC}NC{NC@sNC.NCNCLOCPC@RC@\TCRUCLVC.XCYCYC@XC@XCUC@8TCUC@TCSCTCETCTCSCSCQC@3QCOCNCYNCMCMCMC5NCOCQCQCRC)SC@UC@YC@xYCkWC)UCRCRCRCRCRCGSCVC}UCETC=TCWCUCTCTCSCfRC&QC@ QCPCOCPC.PC@!QCOCNC@MCMC@ NCMCMCcMC@8MC@MC@OMC@OMC@MCMCGMCMC@NC{NC@NC@OCNCiNCOCiNCLNCNCuOCPCQC@TCWUC@VC@ WC@WC@xZC@8[C@aYCZCWCTC^UC@UCTC;UCUCUCTCTCRCnRCPCOCENCNCEMCNCMCNC@PCQC@QC@QC@TCXCXC@VCSCRCSCuRC@xRC@RC@TCVCTCSCUC@WCUC;UCkTCSC@8RC@aQCPCOCNCOC)PC@8PC;OC}NCMCMC@MCMCMC@sMC@\MCMCMC@MCMCMCkMCMC@3NC NCNCOC@8OCNC{NCcNCNC@xOC@PCQC^RC@xUC@VC@VCWCWC@ZCE\C^YCZC@\XCUCUC}VCVCVCBWC@VCUCTC5TC@8SC RC#PC;OCRNCMCMCMC}NC@sOCQC.RCQC@SCXCWC@TCRCRC@RCuRC@xRCpSCEVC@aUCBTCSCVCWCWUCTC@sSCfRCiQCPC}OCBOCEOC0OCpOCOCOCNC@MCMCMCNCMC@MC@MCENC@MC@MC.NCMCNC0NC@sNCNC+OC5PC@3PC@aOC@8OC@NCOCPC{QC RC@SCVCWCWCXCWCYC\CBZCiZCYCUCEUCVCWC=WCWCXCVCUCUC@SC@SCQC@OCNCfNCMC@xMCMC@NCPC@sRCQCQCnXCUCkTC@RC@SCRRC@xRCRCRUCVCTCSC@TC=WC;WC@TCSCRCQCQCPCNCNC@NC@OC@3OCNCNCYNCMCMCNC@NCMCMCMCGNCMCMCBNCMCTNCpNC@OC@NCkOC@PCPC@OC@xOCuOCOCEQC@RC@RCSC@VCWC}XCcYCXCYCG\C[C@YC.YCUCUCVCWCWWCXCYCWCVCUCTCTCnRC@xPCcOCNCMC@MCMC@NCOC^RC@8RCQC@JWCTUCSCRCRCfRCcRC@JSC@VCTCBTCLSCTCVCUC@SC#SCQCQCPC5OC@3NC^NC@NCOC@ OCuNCpNCNCNC@MC@MCNCMC@MC@MC@3NC@ NCNCNCfNCiNC@\NCNC@ OC;PCQCQCEPCGPC0PCRPCQC0SCSC}TCWCWC@aYCZCYC@YC@[C[C@XCXCUCUCVCVCWCWC;YC5XCVCUCUCTC@SCRC@OCNCYNCMCMCMCTNCpQCRCQCVCpTCRCRCBRCRCRCTCVCTC@SC@SCUCWCcTC+SCRCQCQCOC=NC@sNCuNC@ OC@NC@NC@NC@NCNCMC@ NC@MCNCMC@MCNC@JNC@NCWOC@OCNCNCNCNCOC@PCRCQCQCQCPC@QC@8SCTCTCTCVCXCYC@ZC@ZC@xZC@O[C}[C{XCWC@sUC^UCUC@3VC@UCUCkXCXCVC@\UCUC@OUCuTCSCQCOCWOC@8NCMCTMC.NCOCRCRCnUCSC^SCRCRC@RC^SC@UC)UCSC^SC@aSCRUCUCSCQCQCEQC@aPC&OCMCMCMCNC@NC@xNCNC@\NCENCNC@xMC@MCMC#NC@MCNCGNCNCOC@OC OCNC@\NCNC^OC{PC}RCQCPCkQCRQCnRCYTC@TCuUC@xUC@VCXCXCT[CZC@ [C#[CZC@OXCVC@ UCUCuUC@xUCTCTCWC XC{WCUCnUCGVC@TC5TC@RC@sPCOC@NCBNC=MCMC@ONC@QCSCTC#SC@ SCRRCiRCRCTCuVCTCGSC@sSCSCUCTCGRC@QC@\QCuPCOC.NCkMC@MC@MC@aNC@NC@NC@NCENCMC@MC@MCMCNC#NC@NCMCNC+OCOCfOC OCNCNCuNC@NC{PCTRC@xRCQCBQC RCfSC=UC@UC@VC@UC^VCWCXC+[C@[C@ZCZC@YCWC0VC@OTC@TC UCTC^SCRC.UCWC)WCUCYUC@UCYUC^TCSC)RC{PCOCNCNCMCMC@OCRCTCRCRCERC@RCRSCkUCUC TC@SCSCSC@8TC}RCQC}QC#QCPCNC NC@MCMC=NCTNCNCNC}NC&NCMCMCMCMC@MC@NC@NC@aNCNCPCTPCOCOC@JNCNC@NCNCOCQCRC+RCRCRCfTCYUC@UC@VCVCVC@OWC@WCYC[C&[C@\ZCXC@sWCLVCBTCSCTCTC)SCGRCSC@VC@WCGVC#UCUC@UC@TC@OTCTSCQC@aPCNCENCMCMC@NC&RC@SCRCcRCRC}RC.TC^VC0TCSCSC@\SCSC@RC@!RCLQC5QCLPCOCNC@sMCMCMC^NC#NC@8NCcNC^NC@NC@MC^MCMCMCMCLNCpNCNCOC@aPC#PC@OC^OCNC@MC@MCcNCOC@PC@ORCuRC@xRCnSCTCUCBVCWCWCVCVCpWC+XCY[C@ [CZC@XC@VCUCTCSC=TCTCRCRCQC@UCnVC@VCUC@OUCnUCTCpTCTCRC=QCOC{NCTNC@MCNC)PC+SCRSCRCRCfSCTC}UCSCTC SC@aSCRCWRCQC=QCPCOCOC@MC@MCNCMC#NCcNC=NCRNCMC@MC;MC@MC@MC@MCNC{NCNC@NCOCRPCcPC@8PCOCNC NCMCiNC@OCOCQCRCRCSCTC;VCVCWCWCGWCVCfVC=VCYC@![C YC@sWC#VCUC5UC}TCTC@SCLSC@QCPCTC;UCVCUCTC@ UC@UC@JTCSCSCQCQCROCNC@MCMCNCSCRC@xRCRCSC@UCkTCTCSCpSC@ SCRCQCPCPCOC@OCNCMC@MCMCGNC@!NC@aNC;NC@ONC@MC@MC@MC@JMCMCMC+NCMC@\NCNCOC@OPC@PC@JPC.PCNC@MCMCNC@!NC}OCBQCLRCRCTCBUC VCVC{WCWCWCVCUCTCWC@ZCXC@xVCfUCTCpUCTC@TCSC^SCQC@PCRCTCTCUC+TC@TCnUC@SCpTC&TC@RCQC#PCNCMCMC@MCRCRRCuRC@ SCTC#UCSC+TCSCYSC@RCQCQC}PC=PCOCNCBNCMCMCMCnNC@ NC@!NCMC@MCMC@JMC@sMCpMCMCMCMC5NCNCWNCOC@OC5PCPCOCNC@MC@OMCMCGNC=OCPC RCRCSC+UCGVCVCWC^XCLXCWC=UC@SC.UC@JZCXC@VCTC@xTCYUCpUCGUC=TCpSCRCPC@ RC&TCSCTCTC@3TC@\TCTCSCSCSC@sRC@\QCNCNCMCiMCRCRCRCSCUCTC@SCTC{SCRCTRCQCPC^PC@OC5OCNC5NCMCMCMC#NCNCMCnMC@\MCkMC@MCfMC@OMCMC@MCMCMC@MCNCNCnOCOC@PC@3PCTOC NCMC@3MC&NCNC@xPC@QCTRC@SC@TCfVCVCWCTXC&YC@3XCTVCSCSCYCXCVC@sTC@SC;UCUCfUCTCSC0RCPCYQCRC@RCSC@\TCSC&TCuTC@SCSC TCcSC#RC0PCNCENC@MCRCiRC@RCTC+UCSCTCTC@!SC@8RCWQC0QC@aPCPCpOC@OCNCNCMCWNCMC@MC@MCMCMCMC{MCNCMCuMCMCMC@\MCMC@MCnNCOCOCOC@PCWPC@OOCNCMCMC@MCNC@OCPCQC@RC^TC@UC;WC)WCLXCYC#YC@VC&SCSCXCXCUCTCTC@xTCUC@sUCVC.TCRC@PC=QC@RCRCRC+TC@SC@xSC@SCSC@SC@!SC@\SC@sRCQCiOC@NC NCuRCRC{SCpUC@3UCLTCUC@TCRCQC@JQCPCPC}OC&OCNC@NCcNCMCMC@MCMCNCMCMC@sMCMCMCiMCiMCMCMCRMC@MCMC@ONC OC^OCPCPC PCOC@NC@NC@MCMC;NCnOCcPC@JQCRCSCUCWCWCXC)YCYCGXCTCQCWCXCUC@TCSCTCTCUCUCnUCSC)QCQC}RC@ SCRC@OSCSC.SCSCiSCSCSCfSC;SC@ RC@aPCNCNC@aRC@SCTCEUC@xTC^TCTC=SCnRC@\QC@ QCTPCPCROCNCNC@NC@8NCMCMCMCNCNCNCMCMCMCMC}MCRMCMCMCcMCMCMC@aNC@NCOCpOC@PC@OCOC@ OC@NC@sMCMCNCOCLPCQCQCkSCTCVCWCXCcYC}YCXC+VC#RCUCXCUCTCTC+TCTCTCUCUCSC5RCYQCfRC@aRC@sRC@SCSCkSCRCRCRCRC@OSC;SC@!SCQCOCNCRC}SCUCEUCTCTCTCRSCnRC@\QC@PCOCOCNCNC@NCuNC NC@MCMCMCMC&NCMCNCNC)NCLNCMCMCMCiMC@xMCYMC+MCMC@NCpOCOCOC@OC}OC@OC@NCNCMC@NCOC@aPC;PCnQCRC@TC@UCWCXCRYCYCXCVC0SC@xRC+XCVCTC0TC+TCTC5SCTCUC@UC@sRCQCRC@RC@RC@OSCESCRCRCRCRCRC{RC@SC@ SC@8RCPC@NCRCTC@8UCTC0TCTCSCRCWQCPCPCOCNC@NC@NC@NC.NC@MC@sMCpMCMC0NC@ NC@MC@MCMCMC@MCMCMC@MC@MCYMCMC@JMCNC@MCnNCNC&OCOC OCNC@NC@NCGNCNC@OCYPCPCPCkRCSCUC&WC@WCGYCZC^YCWC@sTC@8QCLUC@VCTC@OTC#TCLTCSC)TCUC{UC#SC@QC@RC.RCWRCSCcSCRC;RC&RCnRCQCRCRC+SC@RCYQC@OC@OSCTC@aUC{UCTCkTCpSC&RCQCYPC@PCOC&OCNC@NC@MCNCBNCMCMCMCENC@ NCMC@MCMC@MCNCMCMCuMC@MCMC{MC MCMC@MCNCENCNC@NC@NCNCNCNCNCNCOCOCPCPCQC@ SCTCVCWC@XC@YCYCiXCUC#QCRCUCTCTCSC#TCSCESC@UCfUCGTC5RCRCRCQCSC@xSC@8SCfRCQCRC@QCQC@QCRCERCRCkPCSCBUC@UC@\TC@TC@SC@SCQCEQCPC@OCTOC)OCfNC&NC#NC@MC@MC@MCMC)NCNCLNCMCMC&NCuNCNCNC@MC@xMC@xMC@sMCkMCcMCMC@MC@ NC@MCNC)NCMC@3NC@NCMCNCNCROCGPC@PCQCLQCRC+TC@VCWWCXC@OYC@YCfYCVC@QC@PC@sTCnTCTCfTC)TCTCSCnTCBUCUC@\SCLRCRCQC@ SC@8TCfSCTRCQC@8QCQC;QC@8QC.RCRCfRC#QC@TC@UC@JUCTCSCSCBSCQCPCOCBPCNCNC@!NC@MCMCNC@NC@NC@NCLNC.NCNC@ NC@ NC NCNCNCMCMCMCMCMCMCpMCpMC@MCMCMCMC@MC&NCMCNC{MC@MC@NC@JOCOCWPC@QCEQC#RCiSCEUC;WC@!XCpYCZCYC0WCRCPCRCSCSC@JTCSC@aTCSCSC@xUC{UCSCERCRCQCGRCTCnTCRC)QCQC@QC^QCQCfQCRCRCQC@ UCUCTC5TC{SC@SCRC@sQC@ QC5PCOCNCMCNCMCfNC5NC^NC NCGNCWNC@NC@ONCNCNCiNC@ONC@MCMCMCMCMCuMCMCMCMCLNC#NCMCNCMCMCMCMCMCMC@MCNCOCPCPC&QC@QCRC;UC@VCXCXC{YC@!ZC@sXC}TCQC@PC@SCSCSCGSCTCTC@SC@TCUC.TC@ORC@sRCQCQCTCUCfSCQCPCQC@QCQC@PCuQC)RC@QCUCUCTCSC5SCSC#RCPCPCOC@aOCNCpMCMC NC@3NCNCNC.NC}NC@aNC@NC@3NC;MCMC NCMCNCWNCMCNCMCNC@!NCWNCNCYNCNC.NCMCMCNCNC@xMC}MC#MC@MCNC@!OC@OCBPCPCQCRC{TCVCWCXCuYCYCRYCTVC@aRC@PC@xRC^RC}SCSCBSCTCiTCTCTUC@TCRCRC+RC@QCSCUC@TC@RCPCPCuQCPCPCQC@3RCBRCVC@JTCTC&SC@SC@xSCQC@PCcPC@OCOC@ NC;MCMCRNC@xNC^NC^NC5NCGNCNCMCMCMCNCMCMC^NC5NC@3NCLNC@8NCNCNC@NCNC@NCNCNC^NCNC0NC NCMCMCMCMCNCOC}OC@OCPC@PC@ORCTCUCXCXC=YCYCkYCWCTC@QCQC@RCRCpSCGSCSC@\TCuTC@UCTCGSC@RCRCQCRC@TCUCSCcQC@ PCQCPCPCPC@aQCQCiUCSC)TC@SCTC@aRCRQCPC0PC@\OC{NCMCMC@MC@sNCpNCNC+NC@NCNC@!NCNC@aMC;MC@MC5NCMCNCNCNCNCNCNCOCNCcOCfOCcOCOC@OCNC@NCBNC@MC NC@MCNC=NCNC@JOCOC#PCPC@QCRC@UC#XCXCpYC@YC@YCBXCVCSCQCRCQCSCiSCSCRTCWTCUC@TC@TCRC@RC@QCRCETCRUCTCRC)PC@8PC@PCPCRPCPCQCiTC&TCRCSCSCRC@ QCfPCOCOCNCTMC@MC.NCNCRNC@NC@NC@NC@MC5MCMCMC@MCMCMCTNCNCNCNC@ OC@ OCOC@xOCOCOC@OCOCOCOC)OCNC@NCNCMC)NC@8NC@!NCNC@NCOC@OCTPC0QCRCUCuWCXCXCXCYC@!YCBXC+VCSCRCQC SC@aSCRCSC&TCTCYTCYTCSCSCQC@RCkSC5UCTCRCQCPCPCPC@3PCpPCQCTCGSCRCSCRC=QCPC@PC@aOC@xNCMCMC)NCuNC@NCYNC@NCNCMCMCfMC@JMC@aMC@xMCNC@!NCNC@OCLOCuOC@OOC@OCOCOCOCPCPC@PCQCPCOCOCOC@NCMC0NCMCMCNC@NCGOCOC@OC}PCGRCSCVC@XCYCGYC@YCcYC@sXCWCuUCuTCRC)SC#TC+SCSC+TCTC@TC@8TCTC@RC@RCRCSCTCTC@SCQC@OC@3PCRPC;PC@8PCPCTCRCRSCSCQC#QCPCOCGOC{MC{MCMC&NCGNCYNC@NCMCMCMCMCLMCMC@3MC^MCENCNCcOC5OC@OCOC@OC0PC@PC@PCPCPC)QC=QCfQCcQCPCRPC.PC@OOC0NCNCRNC#NCMC@NCOCOC@JOCkOCPCRC@3UC5XC.YCXC@3YC@XCYC@JXCWC@xVCTCRCTCSC)SCSCSC@OSC@xSCTCSCSCRCSC{TCTCpTC+SCQCOCuPCOC@3PCLPCSCRCLSCBRC@aQCPCLPCBOCNCMC@MC@!NC@3NCNCfNCNCMC@MC)MC@xMCpMCTMCWMCMCNCuOC@OCnOCOC;PCPC@PCQCRQC@QC@sQC@RCERCRCRC@RCYQCPCOC@8OC#NC@JNCGNC@NC@3NC&OC@sOCOCOCOCQC@ TC@VCXCTYC@XC0YC@XCEXCiXCWCVCSCWTCTC@SCSCSC@ SCRC@TC@xTCTCSCSC@TC@UCiTC@SCQCOCPC@\PCPCPCRCSC.SC@QC+QCPCPC5OCfNCMCMC=NCNC@JNCNCMCMCYMCEMC.MCMC@3MC^MCNCTOCOC@OC@OC0PCPC@QCQCSC@SC@RCESC@3SC@RC0SCSC&SCRC#RCEQC&PCkNCiNC&NCMCMCOCOCOC@NCGOCPC RC&UC#XC@ YC#YCXCXC@OXCWCnXCXCWUC5TCTCSC@\SCSCRCRCLSCTC&TC SCSCTTCTCTCTCSCPC@PCcPCOCPCRCRCRC@3QC@PC@aPCOCNCNCMCMCNC@\NCNCMCMC{MCcMC;MCLC@3MCMC@8NC@NCuOC@OCOCfPCQCQCRCSCSC@TC@TCGTC TC5TCSCGTC+TC.TC{SCBSCQCOCOC@\NCENC@MCNCpOCOC&OCOCOC@PCRSCVCYCXCnYC@XCXCWC@OXCYC)WCTCTC0TC=SCRCRC@ORCRCcTCTCSCSC5TC@TCTC@JTCLSCLRC0PCPCPC@PCRC@RCQCPC@PC@OCNCNCMCMCNCYNC0NCNCMCMCcMC@MC@xMC^MCMC@ NCNCOCOCOCTPCGQC@RC@aSCSC^TC@UCVCiUCUCWUCTCUCUCVCVCUCUCSC@sQC#PCfOCBNCNCNC@OCiOCNCNCfOCOCQC+UCWCTYCWYCYC@XCXC@8XCXC5XCnVC;UCnTC@OSCSCSCuRC@3RCiSC&UC@8TC&SCSCUCTCTC@SC@ SCPCPCPCPCRCRCEQC@PC=PC@PC@OCNC;MCNCYNC@NC@MCpMCMCBMCfMCLCRMC@8MCMCNCOC@OC@OCEPC;QCRC@ TCTCUC)VCWC@OWCVCVC=VCUCUC@3WCWC@OXC@WCWCWC@TCQCOCNC@3NCNC@NCNC=OCOCOCWOCPCRC@VCYCYCZCXCWCWC@XC@aXCVCUC@\TC TCRCRCcRCQCRCETCTC@TCSCTCTCUC@3TCLSC@QCpPC@JQCPCLRC@aQCPCPCPCOCOC@!NC NCGNC@ NC@8NC{MC@MC@3MCMC@MCMCTMCMCMC@ OC@sOC@aOCPCWQCYSCEUCVC=VC+VC;WCXC@XCnXCXCWC}VC@VCXCYCpZC@aZCZC@O[C@sXC@TCkRCOCNCENC@NCNC+OCNC.OCOCOC@OQCTCWCYC@\ZCiYCWCWCXCcXCWC#VCBUC@xTCSC@RCRCQC@JRCSCTCfTCSCSCTCTC@TC@SC@RCPCBPCuPCQC=QCPCPC0PCOCNCMC@NCNC@ONCNCMC@MC@aMC@JMC@MCnMCMCMC^NCOCOCOC@PCRC&UCVC{WCVCiWC@8XCfYCZC&ZCcZC@YC@XC5XC#ZC[CW[C.\C\C^CE\C5XC@xTCuQC@OCNCNCNCNC@OC@NC@8OCOC@\PC;RC VCTXC@ZCfZC@WCWC@XCTXCXCVCpUCTCSCRCRCRCkQCSCBTCTC@SCSCTCTC#UCSC;SCQC5PCPCQCQC@QCnPC@OC@sOC@xNCMC{NC@8NC@ONC=NCMC@MC#MCMCMCMCMCNCWOC@xOCOC@PCRC@UCWC@!XC@WCWCXCYCZC5\C\CW\Cu[C)ZCZC@[C\C)\C\C]C@_C@_C@[CWC#TCPCOCNC@NC@NC@OC@3OC@NC@xOC@OCWQCETC@ WC@YCZCXC@WCXCXC@sWCVCUCTCTC=SCRC=RCQCpRC5SCTCSCSCGTC}TC{TCiTCfSCRC@PCQC.QCQCPC.PCnPCGOCuNCcNC@NC@!NCLNCMCMC@OMCLMC@ MCMCNC{NC@ OCOCuOCPCQCTCVC&XC@XC@3XCXCZC@[C5]C@^C_C_C@]C\C@[CT\C]C\C\C]C`C)`C]C@aZC@!WCiSC@!QC@OC@!OC@NC@NC@NC OC@OC@aOCPCRC+UCXCfZCYCWCfXC#YC+XC@WCUCLUCiTC@SCRCRCQCnRC@RC+TCRTCRC#SCiTCTCTCSC.SCQCPCQCQCPCPC@JPC@8OCNCNCNCNC)NCMCMCiMC=MC;MCBNCNCNCuOCOCPCQCSC@VC@WCXCfXCXC@ZC{[C]C_C`CcaC`CW`C@^C\C]C0^C]C@[C]C_C`Cp_Cn\CYCnVC@SC@ QCOCOC@JOC#OC&OC@OCOC}OC@JQCSCnVCYC@ZCpXCEXCXC@ XC{WC0VC)UCTC;TCRCRCiRC@!RCiRC@aSCSC^SCRC.TCTCnTC)TC^SCRCPC@QC;QC QCPCPCYOCkOCOC@8NCNC@JNCMC@MC MC@ MCNCMCNC@\OCOCuPC@QCSCcUCkWC;XCuXCXCYCY[C\C@ ^C@\`C`CaC`C@`C+_CT\C{\C@^C@^CE[C\C@^C_C=_C]Cu\C@xYC@VCSC@QCLPCOCOC@3OC5OCNC#OCPCfRCUCXCYCXC&XCXCfXCWC@VC@ UC{TCETC@SCcRCLRCQCLRC@RCkSCSC@8RCiSCLTCcTCTCTCSCpQCQC{QC@QCPCOC@\OCEOCNC@NC@NC@8NCMCkMCLC@!MCWNC OC@JOCOC+PCQCYSC@OUCVCWCWCWC@XC@ [C\C@]C^C_CB`C_C`C_C@J^C\C\C^C.^C[C[Cp]C^C._Cn^C@]C=\C@OYCVCTCQCRPCOC^OC@OC#OCNC@OCQCSCVC+YCXC}XCXCkXCXCLWCUCTCSCTC5SC@xRCRC;RC@RC@RCWSC SCRCSCSCTCTC5SC=RCfQCPCGQC{PCOCkOCOC@NCNCNCMCRMC=MC^MCMC{NC0OC0OCOCPC@sSCTCVCVCiWCWCLXCYC{\C ]C\C]Ci^C#^Cn^C@J]C@x]C\C@ZC[C@s\C0]CY[C[C[C\C@^C^C]CG]C@!\C@OZC@VC@SCpQC&PCOCOCOCNC@OOCBQCRCUCkXCXC&XC{XC{XC+XC@WCVCTC@aSCYTCSC@!RC+RC@sRCQC0RC)SCGSCkRCRC#TC@TCWTC@SCRCQCQC+QC@PCLPCOC@8OCOCNCRNCMC@sMCMCNC@NCOCROC@OC@PC@xRCUC@VCpWC@!WC^WCWCXC\C\C\C[C\C\C@x\C@\\C@[C&[CZCYCZC[C\C[CT[C@ZC{[C[C\C@O]C;]C\C\C}ZC@VC.SCPC@!PC#PC}OCBOCEOCPC@8RC)UCTWC@\XCWCXCWC5XC@XCWC+UCSCSC@SCRC RCkRCQCQC@xRCRC@xRC5RCpSC+TCTCSC+SCQC@QCPCPCOCOCNCOCuNCMCMCMC@MC@NCNC@8OCOCPCQC TC@JVCWC)WCVCWCXC)ZC@]C\C[C@\[CZC@[C[C@ZC@!ZC@xZCuZC#ZCk[C[Cu\Ci\C@[CZCZC[Ck[C@a\C@\C]C@O]C\C@JYCTUCkRC@8QCPCOCLOCOC@!PCQCTCRVCWCVC@XC=XCTXCWXCcWCUCLSC@RCSC@SCQCQC@QC@8QC@QCcRCRCRCRC@SCTCTC@SCQCQCYQC@PC@OPC}OCOCNCMCMCMCMC@3NC@OC@JOC@\OCOC@PC;SCiUCTWC@WC@VC&WC@WCBYC\C\C}[C[C.[C@!ZCZC@xZC@xYCZCZC[C}[C \C\C]C@\]C\C\C[C@8\C&[Cc[C@3\C{]C^]C^C\CWCTCRC@QC QCOC@!OCOCQCRCiUCVCnVCWC@XC&XCXC@WC)VCSC#RCBSCSCQC@QC@QC@PCnQC@QC}RC#RC@!RCRCTC@TCTCQCQCPC@PC@8PCOC@8OCNCMCMCMCWNCNCOCOCWOC@!PCRCYTCUC@xWCWC@VC@!WC+YC@3[C ]Cf[CZC@ \CpZC0ZC@ZC@YCZC[C[C@\C\C\C@x]C]C)^C^C@]C\C]CG\C\C\C&]C]C]C]C[CTWCSC@RCGQCcPCpOC@\OC@3PCTRCTC.VCUC+VCXC@8XCXC)XCVCRTCRCnRCRCQC@PCEQCPCPC@ QC@QCRC@QCRC@aSCTC}TC@QC@!QCPC@OPCOCiOCNCMC@MC@MC@NCNCNCOC@OCOC@PCSCkUC@VCWC@VCVC@JXC)ZC[C\CYC[C@8\C^ZC^ZCZC@xZC[CL\C@\C@\C\CE]C]Cc^C^C_CY_Cn^C@_Cf^C]CB]Ci]CE^C]C@8^C]CZCWCSCRCPCYPC@8OCOC5QC@SCUCuUCuUC@XC{XCXC.XCVC;UC@RC@QCQCRC#QC@PCcPCOCPCPC&RC@QC@QCRCSCTCRCQCPC@\PC@OC@!OCfNC=NCMC@ONCNCNCLOCOCWOC@PCQCkTCVCVCiVC@VCWCXCW[C[CZCZC[C@\CZCZC{ZC[CG\C\C\C[C@[C0\C@!]C^C+`CaC.aCB`CT`C5aC_C^^C^Cf^C]CL]C^C&]CiZC@JVC@RCRC@xPCEOCOCPCYSCTC.UC@TC}VC@sXC@JXC&XCWCUCTSCQCnQC@QCYQCOCYPCOC@OCTPC@QCQCPCRC#SCTCQCQCPC^PCfOCcOCiNCBNCNCNCNC;OCcOC@\OCOC@3QCSC@UC@VC@\VCVCWCXC@YC0[C@ZCZC[CG\C[CZC=[C@![C\CW]C\C=[CZCZCZC)\C^C+`CbC=bC@!bCbC&cCaC=`C@a`C5_C]Cu]C_C^C\C@aYC)UCRC@QC+PC@OC@PCQC@TCTCSC@ UC@WC@8XCXCVCUCcTCRCQC=QC@ QC5PCcOC@OC=OCWPC@PC@QCQCQCLRCfTC@QC@\QCPC PCOC.NCkNCYNCNC@8OC;OCTOCOCPCTPCRCTUC@VC@VC@JVCfWCXC@YC#ZCcZCfZC@[C@x\Cu\C[C[CW[C[CL]C@a\CEZCXCGWCWCXCZC@]C^CaCbCbC=dC@dCcCaCaC_C^Cf]C@J^C@^C _C@O\C@XC TC@3RCWPCOC@OPCnQCSC@TC@TCTCpVC;XCWC@!WC@VC=TCSCQC@3PC@PC#PC;OCcOCOCOCOCuQCQCPCEQCRCQC+QCPC@3PC;OCNC=NCNC#OCOC5OCOCOCOCQC@SC@\VCkWCVCVCEXCYC@YC@YCYC@ZCL\C\C@\CL[C;[C@[C@s[C\CZCWC@VC&UC@UC=WCXCp[C[C@^C`CbCdCeCEdCccC)bC@aC_C^C^C^C_C]Cc[C@UC&SC@aQC0PC@!PCTQCRC TC@aTCiSC@ UC@WCXCnWCVC@TC@xSCRCPC@8PCOCLOC@3OCNCNCOC@PCQCfPCPC.RCQC@PC@\PCOCOCNCkNCOCNCLOC@OC@OCOC.PCRCUCnWC@VC@VC&XCYCZC{YC}YCYC[C@!]C\C@[C[C@[C0ZCZC.[CWCRUC0TCTCUCUCVC XCXC[C@]C_CWcC^dCdCcCbC@bC`C^C@_C@^C^C^C^C@OYC@8TC@ RC@sPCcPCPC@!RCkSCTCnSCSC+WCXCWCVC UCSCRSCPCOCOCNCNCOCuNCTOC@OCBQC0QCTPC#QCRCGQC^PCOC@NCNCNCOC=OC@OCOCOCOCQCSCVC@\WCVCWCXCYC@YCYCYCYC@[C\CT[CZCYC@ ZCXCYCXCUCuSC;SCTCTCfUC@!UC@xUCUCEXC@ZC@\C@8_C@aC@cC@dCcC@3cCbC@`CR`C`C^C+^C^C@\CVCnSC0QC@PCYQCQC.SCTCSC@JSCfUCkXCWC@WC@UCSC@SCQCPCOCOCNCNCNCYNCfOCPC@PCPCPCQC QCOCBOC@OCOCNCNCOC@!PCOCOC{PCQC@JUC@WC5WC@VCBXC@8YCpYCRYCXCYC@ZCY\C[C@YCYC@aYCXC@WCWCVCSCRCYRC@TCTCTCTCTCTCTVC^XCYC[CW]C`CcC&cCbC;dCbCbCbC`C^C_C@x_CYC@UCRCPCQCQCuRCSCSC SCSCBXCXCWC@UCSCRC}RCOC0OC+OCNCNC{NCNC@OCOCPCPCOCQCPC@OCBOCNCNC)OC@OCOC@OC@OCOCPC@\SCVCWCfVCVCXCXCXC}YCYC@ZCu[C@[CYCBXCXCkXC@WC)VCUCSCRCQCERC5TC@!TC@\TCTCYTC^TC^UCnVCLWC@sWC#YC\C`CLaCbCcCcCpbCcC@8bC_C_C`C&]CTWC@SCLQC@QCQC@QCSCSC@RC@8SC5WC0XCkWC@VC)TCRCRC}PCOCNCNC@JNC{NC@\NCNCOCOCPC@OCWQCYPCOC@JOC@aOCNC@ OC@sOCPCOCPCPCQCTC@\WCYWCnVC)WC@aXC@\XC&YCiZCZC[C[CZC YCWCWC@WC@VCTTCTSCQCnPC@OC}QCSCSC{TCTCTC@TC@UCUCUCVCVC@YC@8]C@^Ci`CbCdCpcC.dC0dCaC{`C@8aC_CGZCUC@8RC@QCRCQCRC5TC@SCRCUC@XC@!WC WCnTCfRC@\RCQCLOCNC@NC)NCnNCfNC@MC#OC@OCPC@8PC QCOCOCfOC@OC@OOC@OOC{OC5PCOC@OC0QC@RCUC;WC WCLVCWCWCXCYCZC[CE[C@xZCXC@WCWCWC^VCpTC#SCQC}PCTOCNCPCRC@RCSC@TCTCTCTCUC@OVC}UCUC XCZC5[C]C`CbCccCcCdCncC@aCaCaC@3^CYC@\TC{RC@RC@ RC@RCSCGSC@RCGTC@ WCVCVC0UCRCQC@sQCOCNC}NCNC5NCBNC{NCNC@OC@PCTPC@PC@OCOCuOCcOCNCGOC@PCPC+PCPCQCTTC)VC@VCVCVCWCXCYYC@ZC;[Cf[CZC&YCXCWCVC@aUC}TC@3SCQCPCOCNCMCGPCQC}QCSC^TCcTCSC0TCTCUCUCVC@\XCWYC@8ZC@[C]Cf_CaC@cC@cC@OdC+cC;aCaCaC\CpVCSCSCRCQCSCWSC@RCSCUCUCUC@UCLSC@QCQCPC OC@8NC@NCMCfNC@3NC@xNC@NCOC@OC^PCOCOC@sOCLOCNCOCOCPCPCPC@RC UCcVC@VC^VCRWC@WCYCYCT[CL[CZCXC=XCWC@JVC^UC&TCRC#RCQCPCNC OCRNCNC@PCPC@QCRCERC@QCRCRCpSCTCVC;YC}YC@\ZC@[Ci\C@]C@_C@ cC@dCdC@\dCbCaC@bC5`CYCUCSCSCRCRC}SCRCSC+TCUCTCTC@SCQCkQCPCGOC5NC)NC.NCMCNC@!NC@NCNC@OCPCOC@OCOCkOCOCOCOCOCPCQCSCUCpVCVCVCWCXC@YCZC[CZCiYC@WCWCWC@xTCRCRC@RCWRC@PCNC@JNCPCNC@MCNCOCOCPCOCOCPCPC@PCRC^VC@3YCYCZC@\CL\C\C ^CaCcCdC@dCpcCaCbCcC]CWCTCSC@RCRC@!SC@RCkRCSC+TC@TCTC@TCRRCuQC^QCLPCNCNCMC@NCNCBNC}NC5OCOCLPC5PC@OCOCfOCOCPCOCPCPC@RCTC@UCVCVCWCXCkZCWZC@[C[CYC}XCWC@!WCUC@RCPC+QCQCQCfOCYMCWNCRC@ONC@JMCNCBNCNCNCfNC.NCNC@OC}OCQCTCWC XC#ZC@\C]C@!]C@^CL`CfcCeCeCcdCbCaC@3dC`CZCTVC@!TC}SCRCSC@SCfRC}RCkSCSCSC@SCRCpQCQCPC@!OCNC@ NCMCMC;NCNCNCEOCRPCLPC@OCROCiOCOCOCOC5PC)QCSCUC@JVCkVC@8WCBXC0ZCZCZCc[CYCTXCWC@WCUC@3RCPC=OC@!PCkQCLPC@MCnLCNC@sTCMCLC#MCLC MCMC@\MCLCfMCkMCMCOC#RCfTCUCcWCZC@]Cp^C}_C_C@aC@dCeCeCdCaC)cCBcC]CXCTC&TCWSCSCRCRCQCRCSCSC@SCRC@JQCQC.QCOCNCuNCNCMC)NC@xNCNCNCPC@!PCOCOCOCPCOCPCGPC@JRCiTC5VC VCVC@WCYC)[CEZC)[CZC@XCTXC.XC{VCRCOCNCBNCOC@3PC0NC{LCTLCOCSCkMCRLC{LCfLC@LC@ LC^LCKCkLCLC#MCNC@QCQCRCcTCpWCZCp^C@saC@JaC@xaCcC@eCueCfeCucCbCidC`C@J[CUC@xTCSCSC@\SC@RC}RC@ RCRCRSCcSC@RCRCQCQCYPC@OCNCMCMCMCNC;NCuNCWPC=PCOCWOC)PCOC@8PC@PCQCLSCTUCVCfVCkWC@8XCfZC0[CE[C0[CXC@OXC0XCWCnSC@OC@NCMCMC@NC@NCLCKC@KCOC;PCKC@KC@KC@LCKCKCKC@aKCKCKC@LC@MCOC@OCPCQC@3UC&YC+]C@\bCcCaCbCdC@eCeCeCbCBdCcC;^CWCTCkTCTCSCSC@\RCQC=RC@RCRCuSC5RC@QCQC@ QCOCOC@sNC+NC@MCMC@sNCNCPC)PC+OCOCOCOC@aPCcPCQC@SC#VCUC@sWC@OXCEYC^[C[Ck[C{YCWCWC@aWC@TCPCMCLC@sLCLC&MCLCKC@8KCKC NCLC=KCKC@KC@KC@KCkKC@KC@8KC)KCKCKCMC@3NCYNCTOC5PCpRCcVC@8[CaC@cC bCaC+dC@ fC)eCcfC@xdCcCcCLaC [CUCTCTC@\TCRSCRCQCQC@RCRC@SCSCRCQCQCTPC@8OCOCNCYMCMCGNCNC@PCOCOCOCOCPCPCPCRCnUCUCVCWCWCnZC[C@[C@ZC@!XCXCWC@TCQC@NCLCTLCfLC@LCLCKC}KCKCWKC@3LCKC@\KC+KCKCKCKC@!KC@KC+KCKC@\KCKCMCMC}MCMCNC@sPCTC#YC@_CcCYaC@saCcCWeCeCfCeCdCYdCYcC^C@XCUCTCTCSCpSCQCQCQC@RCSCTCLRCQC@ RCPCOC#OCNCMCNC@NCNC@8PCcOC@sOCOCOCEPCWPCiQCTCUCUCWCcXCXC[C[C@[C@3YC@XC@!XCUC&RCNCLCLCKCLCLCKCKCWKC.KCJCfKCJC@JCKCBKCkKCTKCJCJCBKCGKCuKCKC&LCLLC@sLCLCMC+OC@\SCWC@\C`C&`C+`CEbCeCeC@eCeCeCdCeC@abC[CiVCTC^UCTCSCRCuQC@3QCQCkSCUCRC@8RC@QCQC=PC;OC@NC@ONCMC@MC@aNCOCWOCOCOCOC@PC@PC@RCTCRUCuVCXCBXCBZC0\Ck\C@ZCBXCnXCWC@\SCOC@MC@KC@KCKC@ LCKC+LCpKC@JC@JCJCJC@!KCJC@JC@!KC@JKC@3KC}KCnKC@!KCKCKCuKC^KCKCnKCLCcLC@NCQCVCZCW]C^C^C`CeCeCYeCfC@eC@eCGeCYeC_C@ YC@UCTC@TCuTC@3SCQCfQC#QCRCUCLTCRCRCQCPCOCROCNCMCMC NCpOCkOCOCOCPC#PC@QC@OSCUCfUCXCXCBXCZC\C[CXCXCXCpTCPC@MC@\LC@KCKCKC@KCKCKC@3KC@JC@JCKCJC KCKC@!KC^KC@JKCGKCJCKC@JCKC@KCuKC@JKCGKCKC0KCKCLC@PCTCVC@YC@\C ]C^C5cCdCBeC.fC@OeCfCfC&fC=cCp\CWC)UC@TCTCWTCcRCPC@8QCQC@OTC+VC;SCRCRCQC+PCOCNCMCMC@MC@OOC@aOCPCOCYPCPC@QC{TCTCVCXC XCYYC[C@]CnZC@8XCXC=WCQCNCuLCKCEKCKCKCKC=KCRKCKC+KCKC#KCJC)KC)KCKC+KCKCfKC@!KCLKCJC0KCKCKCKCKCKCJCKC)LCOCRC@SCUCYCu[C)]CLaCcCdC@fC.eCLfCfC&gCeCiaC5ZCiVC@TCTCTC&SCQCPC#QC@RC^VCTTC@RCRC@QC@sPCnPCOCNCMCMC@OCEOC@PCRPCiPCPCRCTCUCWCXC0XC@8ZC\C@ \C XCYCYC@TCOC@!MCKCKCKC}KCKC{KCLKC@KCJC@KCJCKCJC@8KC@8KC@OKC@KCuKCKCKCKC@8KCKCKCJCLKCJC@\KCJC@JCKC@8NCPC@PC+RC)VCYC@[C@_Cf`CbCfCeC@eCgCgC=fCdC@^CWXC@TCTC{UC@SCQCPCPCRQC@TCGUCRSC#RCQCTQC}PCOC.OCMCMC}OCOC@OCpPCPCQC=TCTC0VC^XCWC@ YC&[C#]C@YCWCYCVC+QCNCLCKCpKCKCKC@sKCKCWKC+KCJCJCBKCJCJCWKCBKCKCnKC.KCKCKCKCKC@KC@KCKC.KCJCJCKCJCKC@ MCNCMC OCQC@!VC&XC\C^C@_C@cCeCdCBgChCfC^fC@8cC[C@JVCYTCpUCpUCRC0QCPCPC SC)UCBTC+RC RCQC@3PCOC@OCRNCMCOCOC@!PCOC@PCiRCTC@TCVCXCTXC@YCf\C[CRWC@sXCXC&SCOCLCKC5KCKCfKCfKCKC@xKC@JC@3KC@JCJCJC@JCJC5KC@JKCKCKCKC@KCKCnKC@KC^LC@LCKC5KCJCnKCJC.KCJC.LC@sMCLCLMCOC@RC@TCYC@O]C]C)aCdCdCfCiC@JgC@gC&gC`CYXC@TCTC@sVCSCQC@PC+PC@aQCSCTC@sRCQCfQC@PCEPCPC@ OCMCOCOCOC;PCLQCcSCTCUCWXCXCXC@JZC{\C^YC}WCXCUC{PCMC@LCkKC@KC@OKC{KCTKCKC&KC@aKC@!KCJCJC@KC@JCKC@JCKC@KCKC@KC@!KCkKCKC0LC@sLC@ MC@KC@8KCKC0KCGKC@KCKC@aKCKCLCLCLCNCQCUC@J[CY\C^CbCRdC)fChC@sgC@fCiC=dCn[CGUCTC{UCLUCQCPC@PCiPCRCfSC@RCQCQCQCPC@sPC}OCTNCOCOCPC@PCRCTCkTC@VC@XC;XC YC[C[C}WCWC@WC}RCGNCTLCKCKC@sKC@8KCcKCKCKCJCGKC@JC@JCJC^KCKCJC@sKCpKCKCKCKCGKC}KC;LCLCMC.MCLCKCEKCKCKCKCJCKCKCkKCKC@KCLC.OC@QC@WC[C\C0`CbCeC)hC)hC@8fCiCYhCL_C@WCiTCLUCVC}SC+QCRPCOCQCiRCRCQC{QC@xQCPCnPCOCOC@OCfPC@aPC@sQC=SC@ TCUC@WCXCXC@YC\C@YC.WCuXC@TCOCMCKCKCKCuKCJCJC=KCJCRKC5KC@JC@!KC@8KC}JC@JCJC@aKCKCKC@KC@KC@KCKCTLCELCMCMCLC@KC@KC0KC@3KCKCJCJC@JC@\KC@JCLKCKCMCOCSCYC@\C0^C`CcC@gC@hCfCiC kC@cC@3[CfUCTC0VCTCQCPCOCOCRC@QCPCQC{QC@\QCPCPCOCOCRPCPC@QC@SC@sTC@8VCYC{YCLYC@\ZC0[CWCWCWC^RCMCYLCKCKCWKCKC&KCfKCKCiKCfKCLKC@JC@JKC@KCJC@KCJC@8KCuKCcKC#KCuKCKCKCiLCLCNCNC+MCYLCKCKCKCKCRKC@aKC@JC@JC@3KC@JCKC@ LCBMCYPCpVC[C@J]C^CaCfCYhC}fChC@jC@hC^CWCTC@TCUC}RCPCOCOCQC&QC@sPCPCQC@QCPC@PC0PC@OCPCPCRCTCTC@WCBYCkYC)YC@[CYCfWCXCTC@OCLC@KC@xKCKCEKCKC@KCKCJCKCKCJCJCJCJC=KCuKCBKCRKCJCfKCfKC@KCKCLCLCMC@xOCNC0MC@LCLCLCLCKCkKCRKC5KC@JCJCJCKCiKCLCNCRCYC\C@\C@_C@!eC@JhC@gC+gCjClCfcC[CUCBTC@ VC@!TCTQC@OCOCPCQC#PC@JOCQC@QCfQCPCPCOC^PCQC@\SCTC0VCYCYCpYCYC@ZC@XCWC@8WCRCMCLCKCKC@KC@KCBKC@JCKC@JC@JCcJCJCJCJCKC@JCJC5KCKCKCJCnKCKCKC@3LCMCNCOCOCMCLCLLC@!LC@LC@KCLCBKC&KCJCJCJCJCKCGKCLC)PCVC\C\C@\C&bCgC@hCgChC@lC@gCi_CXC.UC@UCUCRC@!PC@OCOCpQCPCNCGPC}QCWQCQCQC.PC@PCRCSC@TCWC;YCYCXCEZCpZC@WC^WCTCOC@LC@KC@!KCLKCKC.KC@xKCRKCKCJCJCJCJC^KCJC@xKCJCJCTKCJC KC&KC@OKC@aKCELC@LCMCPCPCNC@ONCTMCWLC@MCcMCLC@!LCLCpKCpKCKCJCKCJCKC@LCBNC@3TC@ZC@x\C\CE_CeC)iCiC^hC@ lCjCcC[CYVC5UC}UCkSC@8QCOCOCPCQC@NCNC@PCQC5QCQC PC}QC@SC)TC@UC@XC=ZCEYC@XCcZCBYCWCVCQC@MCLC@KCKC@KC@OKCGKCKCKCuJCJC@JC.KCJCRKCJCKCJC#KC@JC)KC=KCKCKCKC5LCLCMC@OC@sPCOC+NCnMCpLCMC;NCLC=LCLLCKCLKCJCKCKCJC.KCKCLCQC@XC\C@\C]CbChC@jChCjCBlCfC@`C@YC{UCGUCTCQCPCnOC@OCQCOCNC@!PC}QCRQCPC@\PC^RCSC@TC&WC@YC#ZCGXCYCYCXCVC@OTCTOCLCKCcKC@KC@xKCuKCKCKCJCJCJC@JCJCJC@8KC@JCKCJC KC.KCJC@xKCfKCRKC@KC@\LC@MCMCPC@3PCfOCNCMCnLC@MCEOC@OMCLC@LCLC@JKC@8KCJCRKCKCTKCWKCLCOC;WC\C@\C]C`CfCiCWjCjC&lC@hC@dC^CiWCTC@UCRCiPCOCOCPCkQC.NC^NC@PCQCPCPC@JSCTC5VCRXCGYC@XCWCYC0YC}WCUCkQC@MC@LC^KC.KCWKCKCKCcKC@JC@JC@JCJC@KC^KCKCKC.KCKC0KCTKC@JKCKCBKCJC@JCKC@OLCLCNCfOCOCOCMC@LC@LCYMCNCMCLCLC@JLC@LCKCEKCKCKC@JKCJC;KCMCTCu[C\C^C_C@cCLiCjCGkC@JkCiC;fC{bC@sZC@UCUC@SCkQC@OC)OCPC@QC@OCMCOCBQCPC@ RCSCTCWCXC@xYCTXCXCYCRXC@VCRSCNC@LCTKC=KCLKCKC@!KC@KCBKCJCJCKCKCJC{KCuKC@sKC@JKCJCLKCpKCTKC@KC@!KC@OKC@xKC@aKCLC@ MC@MCOC^OCOCMCMCLC@MCGNC^MCWMCMC}LCTLCKCKCKCKC@KCKCkKCLC@aQC0ZC\C^C@O`CBbC@gC}iC@kC@kC)iC@gCfC_CXC@UCLTCnRCLPCOCOCQCQC@MC@NC5QC+QCRCSCUCWCYC YCWCLYCXCWC@OUC@PC^MCKC@8KC5KCYKCKCEKCKCKC@3KCJC@KC@OKC@OKC@KCKCLCYKCGKC@ KC@KC@xKC@3KCEKC@ KC@KCKC=LCLCGMCNC@NC@JOC@MC@MC@MCMCNC@MCMCLC0MCcLCLCKCLCLCLCGLC{KCKC@\NCWC\C@\^C`CbCdC@hCjC@mC@iCEhC@gCdC[CiVC@!TC@8SCWQCOC@\OCPCRCOCMCOC#QCSC@\TCWCWC;YCXCXCXCiXC@VC@!SCNCLC{KC&KCuKC@\KCKCKCKCJCJCLKCcKC@KCKC0LCLC)LCYKC^KCGKCKCKCKCKC@JKCKCLC@LCLC@sMC@ NCMCNC@MC;MCNCNCNCMC@MC@MCMC@\MC@LC+LCnLCMC@MCWMCKCKCLC@TC@8[C@\^C@`CbCudCfChClCYkC@xgCBhCgCTaCXCTC@ TCQC=PC^OCOCQCBQC@MCNCPCTCUC WCWC5XC@WCXCXCLWCUCPC@MC0LCYKCKC@KC@OKC@KC@KCuKCJCJC}KCKCKCKC@LCLC@\LC@xKCfKCJC@KCKC{KCKC@KC^LC5LCMCLCLCkMCGMCMCNCBMCOCOC@OC;MC+NC@NCOC@JNCMCMC@LCMC@NCNCLCuKCLCPCXC\C.`C.cC@dCeC0gCjCRmCgChCBiCeC\CVCSCRCPC{OC^OCPC@QC@\OCpMCOCTTC.VC@aWC@\XCWC@XCXC@\XCVC&SCuNCpLCcKC@KC@JCKC@KCKCKC@8KC0KC=KCTKCKCRLC@LCGMCkMC@\LC@ LCRKCRKCLCKC@KCKCKCLCMCMCLMCRMCMCGMC@MCMCMCiPCQCnOC@MCNC@sOCPCBOC@NCMCEMCMCNCNC@MC@LC@!LC@NC@8VC;[C@^C5bCdCdCufCBhClC@jC@gCiChC@aCYCSCSCQC@PC^OCOCQC#QC@ NC@NC0UCGWCWCWCWCXC{XCWCTCPCpMCKCJCKC@aKC@KCKCKCKCBKC@xKCKCKCYLCLCMCMCuMC@LCKCpKCKCKCnLCKCKCKCLCMCNC=NCMC@MCRMCMCMC@MC@OCuRC@OCLCMCiOCPCPCOCMC&MC@MC@NCNCMCKCKCNCSC+YC]C{`C@dCeC@8eC@fC@iCkCgC@iCjCfC\CUCLSCSCPC+OCLOCPCQCGOCiMC@\VCVCXCLWCXCYCYXC@VCSCOCKC@KC KCKCKCKCLCKCLKC@!KC0KC@KC@8LC@LC@\MCBNCNCMCLCLC@KCKCLC@LC@3LC@\LCLCMCNC@OCYNC@MCMCMC@MCMCLCNCQCOCLCpMCNC@PC@PCOC@NCMCkMCNCNC5MCLC@ LCTMCQCVC;[C{^C0cCfCdCeCEfC@kC@shC^hCjC@ iC#bCXCSC@sSCQC@PC+OC@sPC@RC@PCMCVCcWC@sWC@aWCXCEXCVCuTC@PC@8MCKC@aKC@aKCKCKCKC@KC@KC@KCKCnKC@ LC@LC@\MCNCNCNCMCYLCKC@KCLCLCMCLCLCMCMCpOCOCNCMCMCpMCNCMCMC@MCOCkOCLC0MC@NCOCOCWOCNCMC&NCMC@\MC5MCLCLC}MC@QC@UC@XCB]C`C@\fC@8fC@\dCdC@hC@jCgC5jCWjCfCk]CTC@\SCWRCPCOCOCPC@RC OCfVC@\WC@\VCfXCXCXC;UC SCNC@8LCKCWKCWKC@KCKCLCKCEKCEKCLC@KCLC;MC}MCNC@NC@MCuMCfLCKC@LC#MCMC)MC#MC5MC@MCNC@aPC@OC@NCpMC@MCRMCMCcMCLC@LCNCNC@MCLCMCNCNCkNCNCNCNCfMCLCBMC@LC+LC@LC@OC@ UCVCZC5^C@dCRgCTdCbCeCkCgChCiCWiCbC@WCSC@sSCcQCLPCOCkPC@ RCPC+WCVC WCYCYCVC5TCPC@MCKC@!KC@KC@KCnKC;LC@8LC@xKC&KC@KC@KCTLCMC0MCMCNCOCNCMCLC@xKC@JLC^LCMC@JMCMCMCNC@NCPCPCpNC@MCMC@MCMCEMCLCYLC;MC NC&MCLCWMC@ NC5NCMC@ OCNC@NCMC{LC@8MCTMCLCLCNC@SC@VC+XC@\C@`CfCeC@abCbC@hCiC@fCiCiCgC@\CTCSC@RCkPCOC@OCQCQCVC{VCXCfYCEXC+UC#SCNCLCEKCYKC^KCKCKCuLC@sLC^KC KC^KCLCLCMCBMCRNCNCTNCMCLCWLCLCLCnLC}LCYMC@JNC@JNCEOC0OC=PCOC&OCnNCMC&NC@NCMCMCLCLMC@xMC@!MCWMC@JNCnNCNCMCNCpOCOCNC@LC@LC@MC@MCMCNC@RCUC@UCZC]CdCfCbC;aCYeC@jCYgC@gChCiCaC@VCcSCLSC;QC0PCnOCQC@!RC@VC@VCXCYCVCTTCPC@\MCKC&KC{KCKCKCELCLCKCKCkKCKC@!LC=MC@MC@MC@3NC@JNC@MCLC@xLC#LCKCKC{LC^LC@xMCNC;OC)OCOCWQCPCOC@NCWNCNCNC#MCLCLCLC=NCMC@MCNC@NCMCEMCNCOC=OCNCLCLCMCBNC@NC@NC@QCVC@\UCWC\C@xaCfCndC@3aC@bC@hCiCfChCiCfCZCkTCYSC0RCPC@OC@!PCQC@VC;XCYC@XC@ VCRC@!OC@KCKCcKCKC@LC#LCLCLCKCWKC@KC#LCuLC=MC MC@MCNC@MC=MCLC@xLCKCKC@LC;LC^LC@MCcOCOCOCPC@RCQCiPC@sOCNC}OCOC@MCMCMCMC@NCMC@NC@xOCOC;NCNCWNCOC@OCiOCLCYLCMCNC@OC@3OC5QCEUCVCTC@ZC@^C@dC=eCaCWaCeCkCBhC5gChChCu`CUCSC.SCRQC@PC@OC@JQCTWCYC@YCWCTC@QC)MC@aKC#KC@3KC@KCpLCLCLCKCTKC&KCcKC@KCMCLMCMCiNCWNC@sMC{LC@LCKCKCLC@JLCLCLCWNCOCOCPC@QCSCRC@PC&PCPCPC{OCRNCMCMCMC@NC@\NCNCWPCQCNCMCMCuOC^OC@OC@sMCLC)MCRNC@PCWOC0QCTCUC.UCWC@]C@aCLeC@bC`CcCjC{kCgC@\gCiCeCuZC@SCRSCLRCPCOCPCBXCuYCYC@UCuSCcOCKCkKCWKC@KC@LCRLC{LC@sLCKC@JKCKCKCLCMCMCMC@NC@8NCLCpLCKCKCKCKCLCLC@LC@NC5PCQC@\QCuSCUCSCPCPCPC@PC+PC@ NC@NCNC@NCNCNC.OCPC@QC@OCNCENCNC}OCBOCMCLCMC@MC@!PCPCPC@TC{TC0VCVC@J\Cu_CdC@cC@a`CaC@gClCiCfC@gCgC_C&VCSCRCEQCPCOCYCYCXC@3UCQC@MC@\KCKCKCKCKCLCLC)LCiKCJC@KC@KCpLCLC@!MC&NCNCMC@xLCLCKC@KC@KC0LCBMCMCcMCOC;QC0RCRCUC@VC@SCQCGQCcQCPCPC@NCMCNCNC5NCiOC@OCGRCRCOC@NC@NC=NC5OCNCMCLCMCMCPCQC^PCSCSCBUCVCcZC]CbCkdCaC_C dCkC5mCgCfC@gC@dC}YC@OTC@aSC;RC@PCOCYCYC@JWCSC@\OCLC@JKC@!KC@KCKC.LCLCnLCKCKC+KCKCGLCLCLCuMC&NC)NC@ MC@OLCKCiKC@KCKCpLC.MCMC.OCQCRCSC@xTCVCiVC@!TC=RCRCRCQCQCOCMC@NC@NCMCiOCnPC@RCRCOCNCcNCNCNC@NCBNCLCMC@LCOCQCPCRCLSC@OSCXCkYC&]C@_CdCbC^CaC@ iCnCjCeC@!gC&gC^C@UCLSCRCQCPC@YCXCUCQCGMCfKCKC=KC@KC@3LC@sLCLC@8LC@aKC@\KC@KCKC@LC@8LCLCRMCNCuMCLC.LCLCKCKCKC@8LC@sMCNCPCRC@\SCTTCVCWC@UCYSCRCRCkQCPC@PCOCMC{NC@NC=NC@\OCQC@SCRC@sOC^OC@NCuMCNC)OCNCMC@LC@!MCiNC@QC5QC@QCRCQC&WCpYC\C@]CcC@3cC#_CY_CieC@mC@nCfgCeCWgC@acCXCSCRCQCPCYCcWC@TCOCGLC^KC@JKC@aKC0LCkLCLCLC@KCYKCJCiKC@KCLC@\LCLC@MCMC@LC;LCcLCKCKC@KCKCLCMCOCRCSCuTC)VCVC@VCuTCRC@!SCTRCPCpPC@sPCOCNCNC@\NCMC}OC=QCSCYQCOCOCNCMC;NC5OC@\PCENCLCMC#NC@8PCQCQC)RCPC@sTCiYC[C]CaCLdC=`C^C@bCiCpC@3kCieCfC@fCR]C5UCSCRC&RC)YCVCRCMCKCKCKCKCLCLLCKCKCnKCRKC@8KC@JKC+LCiLCLC5MCWMCLCLCLCGLCKC@KC+LC)LC@LC@MC#PC@3SCTCRUC.WC#VCTCLSC@RCBSCQCOC{PCBPC;PCOCNCNCBNC@!OC^QC SCQC@PCpPCOC@MC@sNCOCQC@JOC@MC@MCNCOCPCQC=QC@3PC;RCWC+[C&]C^CEdCaC]C_CffC@soC=oCfC5fChCWbCYXCSC{RC@JRCnXC)UC@OCcLCnKCKCKCKC@8LC@sLCKCJC@JCJC@!KC@\KCfLC@LC@LCMCiMC=LCLCLCLCLCKCKC;LCGMCnNCPC)TCTCWCWCRUC@!SC)RC;RCRCPCfOC&PCTPCPC@OC}NC{NCMC@NC&PCfRC@QCPCQC=OC@MC@\NC;PCRCPCMC@MC.NC@sOCiPCPCPC@OCPCTCXC\C{]CibC}bC{^C]C)cC@kC@!qC@\jC@OeC@hCeC\CTCRC@\RCcWC;SCNCKCpKCKCKCfLCRLC@8LCJCEKCJCJCcKC@aKC@LC@LC}LC@!MC@LCKCLC@3LC@KCKC@KC+LCLCYNCkOCQCTCVCXCLVC@OSC^QC@3QC@RCiQCNCNCOCOCPC&PCNCNCMCMCYOCQCQC+QCQC@PCNC.OC@PCSCQC0NC&MCNC@OCPCEPCPC@OCNCQCEUCZC+]C_C=cC@_C]C+`CgCoC@nC;fC@JgChC@x`C@WC+SCRC{VCPCuLCBKCKCKCKCcLC;LC{KCKCKCKC&KCKCKC@LCKCLC@ MCpLC}LCLCKC0LCKCLC=LCMCOC@PCRCTCVCXCUCQC@PC@QCQCBPCiNCNCOCTPCcPC@PC&OCNCMCMCNC@OCYPC)QC@aRC@PCNC@8PC@QCuTC@RC@OOC@MCBNC@OCPCPCPC@OCBNCOCRCVC\CL]CbC)aC]C@]C;dC mCpCTiCfCiC@!eCZC@sTC@RC@SCnNCKCWKCKCKCLLC@OLC&LCKC)KCKCKC@OKC@KCkLCLCLC MC@LCGLCTLCLC0LC@LC@KC.LCLCNCPCQCTRCSCVCWCTCPCOC5PCWQCOCiNCYNCfPCOCcPC@sPCcOCNCMC{NCOCNC@JOC0PCLRCBQCOC@8PCRCWUC+SCPC0NCNC@sOCLQC&QCPCOCMCNC@xPCSC@ZC\C@s`CGbC_C\C@3aC@hC;pCmCfC@iCuhC@!_CVCRC+QCpLCKCuKCKCYLCWLCKC@KCKCKCJC@JCnKC;LC@LC@\LC@\LCLCBLCfLCLC@8LCKC@xLCRLC@LCTMCNCPCQC5RCfSCTC@UCRCWPCOCPCPCiOCNC@ OCPCOCOCPC{PCOCNC@OCPCNCNCOC@JQC@QCPCBPC0SC@OUC SCPC@NC#NCOCPCQC@\QCPCMCMC@!OCQC@xVC]C]CbC@3`C@\C^C@eCmCpChChCGkCndC}YCTC@NCKCWKCKCKCRLC;LCKCKCTKCKC@JCKC@KC@LCMC@LC}LC@8MC=LC@!LCBLC0LCGLC@\LC@sLCTMCMCNC@PC@sQC@\QC;RC+SC@SCnQCOCOCcPCLPCOC@OOCTOCOCOCOCOCPCOCfOCPC@QCOC@OCWNC@sPCQCfPC@xPCRSCUCSC5PCWOCMC@8OCPC=QCQCPCNC@xMC@NCOCRC[C@]C@bC`C@J^C\CaCiC@pC@JlC@hCkChC^CcUC@LC&KCKCKCKC0LCKCKC@KC@sKC@JCJC@KCTLC@!MCcLC@\LC@LCLCLCLC@LCKCLCfLC5MC@LCMCNCPCPCPC@PCQCRCPC^OC@JOCPCPCOCWOC@ OCOC@OC@aOCGOCPC;PCOCPC@QCPCOCMC@OCWPCPCPC@aRC.TC)RCfPCWPCMC@NCOCYQCQC@!QC@NCMCiNCOC@PC@XC]C_CaCL_C@\C{_CfCnCoChCjCkCicC@XCKC0KCiKCWKC)LCKCTKCKCWKCiKCiKCnKCKCLC}MCLCKC@LCfLC@OLCLCTLCLCLCLCLC@MCuMCnNCfOCOCOC@3PCPC@PC@OCTOCiOC@PCPCPCLOCOCOC@3OCOCNCGPCpPC@OC0PC@PCQCPCLC^MCNC.OC@PCRCiSC@ RCPCQCYNC=NC^OCPC=QCPC;OC;MC@NC@PCPCTC]C@^CbC_C^^CL^CcCjC@pCkC@jClCGhC@s\C@KCnKCKCKC)LCKCKCWKCkKCKCTKCKC@OLCMCMCLCRLC@LCfLC@ MCBMCLCLCMCLCMC@MCMC@MCNCOCNC@OCOC@OC PC}OC}OC@PCQCOCNCOCOCNCkOC)OC@xOCOC@ PC@!OCOCQCPC@LCLC@aMCGNCiOCQCfSC@OQCPCQCOCMCGOCPCYPCPC@OC@MC^NCRQCPCERC=\C^C@3aCaCB_C ^CuaCpgCoCmC@hCklC@lCaC@KC}KC@KC#LCKCKC{KCRKCfKC@KC@OKCKC@LCfMC&MCLC@OLC@LC@xLCMCMCLC@aMC;MCLCMCuMCMCMCNCNCNC^OC@NCOC@xOC@OCOCTQCPCOC@JOC&OC}OC@NC{OC@OC@aOCNC OC@NCTOCPCOC.MC5LCLCMCNCQCcSCQCPCQCuOCMC@NCPCPCOCOCMC@MC@QCRCQC}XC_C_CbCL`C_C`CdClCpCiCckCmCgC@xKCKCKCKCLCKCKCKC@\KCBKCKC+LCLCMCLC@KCBLCLCLCNCMCfMCMCMCMCEMCWMCMCLC#MCMC5NCNC&NCNCOCnOCOC@QC@PCPCROCOCPC=NCOCPC@OC.NC=OC&OCOCNC{OCMCTLCLCMCNCPC@RC@RC@PCYRC@PC@MCNC@\PCPC@OC}OC@NCMCGPCSC@RCUC_C`CbC;aC`C`CGcChCoClC=jC5mCkC@KC@KCLC@KC@KC@KCKC@KCLKCKC@KCLC}MC@MCcLCKCGLCpLCMC@NCMCNCMC@ MCMC@JMCpMCLCLC}MCkMC{NC@!NCNC;NCGOC@!OC@ OCPCPCYQCOCkPC@\PCnNCYPC@QCOCMCNCOC@NC@NCNCMCLC+MCNC@sOC@OC.QCQC@QCRC@PCcMCYNC@OC0QCPC@NC@NCMC@\NC0TCTCiTC ]C=aCaC@bC`CaCLcCffC@lCoC+jClCumC.KCKC@3LC@KCKC@KC@KC@KCfKCKCpLCEMCnMCfMCKCKC#LCLC}NC{NCMC+NCMC@8MCcMCLC@LCMCEMC@MCMCNCNC@MCMC}NC.NCWNCGPCnPC5QCOCpPCPCOC^PCPC^OCMC@ OCOCNCNCpOCNCLCMC=OC@ PC@!PC@OC@PC{QCGSC@QCMC@!NCOC@PCPC@!OCOCNCiMC@QC&VCTCYCYaC@`C@cC@aC.bC}cC@dC@iC@8oC@kC0kCnCKC@KCKCKC{KCuKC@aKC@xKC@KC@KCnLCBMCMC#MCKCKC@sLCWMCNCLNC@MC=NCpMC@JMC@sMC@LCLCLCMC@NC@NCNCMC@LCMC;NCNCMC5OC@PCPCOCnPC@3PC}OC0PCPCOC5NC@NCOCkNC5OCOCOCMCMC@OCPCOCnNCOCQCSCGRC@ NCMC@OC@ QCPCOCNCNCMCOC{UCUC@WC^CaC5cC@OcCaC^dCdCEgCpmC{mCLjC.nCKCLC@KCKCKCKCiKCKCKC LC0MCMCMCGLC@KC.LCLC^MCNC+NC&NCpNCMC=MC}MCMC.LCuMCNCNCNC@MCMCRMCuMCMCMC@MC=OC@sPCPC@OCLPCPCOCOCOCPCNC#OC5OC@sNC=OC5OC@OCMCuMC@OC@PCOC@MC;NCQCYTCSC OCMC@ OC{QCTQC@3PCNCNCNCNC@SC{VCGVC[CaCbCdCbCidC@eC;fC@jCGnCjC@lCKCKC@KC@KCKC{KC@KCKC@!LCpLCMCMCMC0LCKCiLC@LC}NCNCMCNC.NC@MC@xMCcMCLCLCNC@PCYPC&OC.NCMC@OMCGMCMCNCMCNCPC}PCPCPCOCOC{OC@ PCfQC@NC@NC@NC0NC#OCNCOC{NC@3MCNC@ PCOCNCNC=QCTCSCOCfMCNCPCPCQCOCNC@aNCLNCQC@VCVCYC@_CaC&dCicCcCBfC fC@gCWmC#lCjCuKCKCWKCYKC@\KCKCKC)LC=LCLC@LCMCLCKC@\LC@MC@xMCNCNCNCRNCMCiMC@MCMCLC}MCOCEQC@QCNCNCMC+MC@OMCNC5NC@MCNCPCPCBQC@xPCPCOC.OC;PCQCOCROCNC@8NCNCcOC@xOCOC@xMC@aNCWOC@NCcNC@!OCYQC@ TCSCPCMCNCPCBQC0QC&PCEOCNCNCcQCTC5VC@8WC\CaC@bCidC0cC@eCffC@fCiC^mCjC)KC@KCKC@KC@xKCuKCKCKCYLCLCLC@MC@\LCLC@ MCGMC@ONC@\OC@xNC@NCYNCMCMC@sMCLCLCNC@OQCRC@xQCNCNCMC^MCkMC@ONCfNCMCNCPCpQCQCBPC@OC@OCNCPC}PCOCOC@\NCNC@3OCOC.OCOCNCNCNCNCNC@PCuQCSCSC@PC@NCOCOCPCLQCPCLOCNCNCPCTCUCVCYC`CaCdCbCYdCfCfCRhC@lC@kCKC+LCKCKC@KCKCKCKCRLC@LCMC@MC=LC@LCMCMC@OCNCNC=OCNC&MCMCMC+MCMCOCRC@8SCnQC.OCNCNCMC@ NC@\NC@sNCMCNC@PC5RC@RC;PCpOC^OCOC@PC@OC;OC PC@OCNC+OCOC&OC=OCNC@JNC@NCYOCNC)QC)RCSC@SCPC@NCNC@OCPCQCPCRPC@aOCNCOCuTCTCVC@WCf]C`CcCcCcCTfC@fCfCiC@alC@KCKCKCKC@KCKC=LCLCKCLC@8MCLCLC@3MCMCGOCkOCMC^NCNCMC}MCMCMCnMCNCPCRC@xSC@PC0OC@NC@MCMC5NC@ NC@NCNC.OCGQC@RC@sSCfPCPCOCOCRPCiOC PC@PCcOCOCBOC^PCNCNCNCOCOC@ OC@OCTQCRCSC@OSCPC@OC@OCOCOC@PC5QC@xQC@OCNC5OCTSCRUCUCWC;ZCu_CfaCndCWcCndCfCfCgClCKC}KCLC)KCKC@!LCKC@KCKCLCLCLC@8LCMCNC@PCNCMCNCRNCRMC@sMCMCMCMCBOCpQCSCpSC)QC@OCNCNC@\NCNCiNCNC&OCOCLRC=SC+SCOCLPCOC@!PCPCOC&QCfQCPCLPCOC+PC@3OC=NCTNC PC@ PC@OC&PCQCSC@3SC0SCPC.OCOCOCOCOCWQCQCTPC@NCNC)RCVCTC@VC}XC#]C_CcCccCRcC^fCfC@fCiCKC@KCKCKCKC0LC@KC@KC@LCWLCLCpLCMC@MC@JPCPCfNCMC@NC@8NC@8MCMCNCMCnNC@aPCQCTCSCPC@OC)NCMCNC OCOC@!OC5OCPCpRC@SCRCOCPCOCOCPCPCRC@QCQCPCOC@xPCOC@NCNC@OCQC@\PCPCQCRCSC+SCPC@OC+OCOCOCOCPCQCQC@OCNC+QCVCTCcUCVCZC^CEaCcC{bCndCfC@agCgCKCKC@KCKC@ LCELCKC@LCELCLCLC}MCMCROC&RC@OCMCMC@ONCMC@!MCMCNC+NC@OOCWQC@RC;TC@SCPC@JOC&NC@!NCNCOCOC5OC@sOC@QCnRCuSC@QC@OCPCOCnPCQC.RCRCRC+RCPC+PC@PC@PCOCOCPC;QCPCPCfRC{SCBSC)SCQC@JPCOCOC&PCOCOCfQCTRCOCNC0PCkUCWCSCVCXC]C^CcCbCicC@fC@gCfC@KC@KCKCKCELCKCKCKCWLCLC@8MCRMC^NCQC}QCNCMC@MC@MC@xMC@\MCMCMCNC@PCQC.SC@TC@SC@3QCOCNCNCOC)PCOCOCnOC@!QCRCGSC0QCnOCOC@PCPC@QC#SC@SCQCkQCPCOCOCPC}OCOCOCPC@QCPCcRCSC@SCRCQCPCOC=OCOCOCYOC+PC@RCQC=NCNC#SC^XC@8TCUCcWC[C@]C@!`C0cC@xbCdCgCfC+LCLCKC@xLCKCKCKC&LCLCMCNCNC@ PC@RCPC@JNCMCNC@MC@\MCMC0NC@3NCYOCPC@QCTC@UCTCQCLPCNC@aOCOC@OCNC}OC@8PCRCpSCRCQC@OCOC+PCQCRRCSCSCQC.PC@OPC)OC@!OCPCOCNC}OCPCQC}PC@QCSC@TC@3SC RC@8QCOC^OCOC@OOC}OCOC@QC@JRCOC@\NC)QC@WCVCTCVCYCL\C@!^CBbC^bCcCufCgCKC@LCLC@!LCKCKCKC LC@LC}MCMCiNCQCYRC&PC0NCNCiNCMCWMC@MCkNCYNC#PCQCRCUCVC}TC@aRCQCcOC@\OCOCNCNCOC@QC@SCSCRCQCpPCOCfPCPCQCRCiSCPCEOC=OCNC@aNCPCOCNC@OC@3PCEQC@\QC@QCSCSCSCRCPCOCNCGOC@!OC@OOCOC#QCSC@xPCNC@NCTC@XCBTC@UCWC^\C@x\C`CpbCbC&eC{gC@KCKCKC@LC+LCKCKCLC@!MCMCMCOC@RCQC@sOC@aNCNC@\NCMCMCNC5NC@OCPCQCSCVC@VCpTC@RC@PC;PCOCOCNC@\NC.OCQCTCnTCRC@ORC@PCpOCYPCRPC@ QCfRCRC5PC}NC@NCNCMCNCOCNCuNC&PC@QCQCQC5SC@OSC@aSCGSCRQCnPC@8OC;OCOC@NCOC@PC@RCQC@NCNCQC@\XCkUCBUCWCZC[CL]CaC@3bCcC)gCKC@LC@KC@JLCKC@ LCKC5LCBMCMC;NCQC@8RCuQCOC@NCNCNC}NC;NCOCNC)OCOC@ QC@ TCWCVC=TCSCQCPCPCTOCiNC)NC;OC@RCUC{TCRSCSCPCOCPCOCpPC;QCRCOC@aNCNCTNC@MC#NCfNC}NCNCOCQCiRCRCSC@RCuRCRC@QC@PCOCOC5OCNC{OCPC@QCQC@OC@NCOCLVC.WCTCUCYC[C@s[C`CbCbCeCWLCKCLLCKCKC&LCKC@LC@3MCMCNCQCQCQCYOC^NCNCNC@MC@OCOC@OCBOCPC@aQC@TC@JWC@JVCSCSCQCPCPC0OCNCBNCOCLSC@VCTCRCRCQCOCpOCOC@aPCpPCQC@OCNC^NCnNCMCnMCMC0NC@MC@PCSC5TCSCSCQCQC@RCRCPCBPCOCOC@OC+OC@OCQCYRC@xPCNC@\NC@SCWCTC5UC^XC[C@ZC0^CkaC&bCdC.LCLC@LCKCKCKCLCLCMC)NCOCQCRC{QC@NC@NCNCNC0NCOCkPCOCBOCPCQCUC@!WC@UCRC@RCQCcPC@xOCEOCNCNCOC@SC@VCTCQC+QC@PCNCOCOC PCGPCuRCPC@!OCOCNCMCMC@3MC@MC@xMCOCTCVCUC+TCQCWQCRC@\RCfQCPCPC@3PCOCOCOCPC0RCQCLOCNC@PCVCUCTC}VCZCZC@\[C`CbC@cCcLC@KC@LCKCKCGLCLC.MCWMCNCTPC^RCWSCPCOCNCNCNCNC+PC@PCuOC@OC@OC)RCTCUCBSCQC@QCQCPCOCfOC@NCMC@OCSCWCSCPCRPCPCOC+OCNCOCPCRC@QCRPCOCOC NCMCLCEMCMCNC@UCkWC@VC@TCQCPCBRCQCQC@!QC#QC@PCOC@xOC&PC;PCnQCQCPC#OC@!OCTC+WCTC@xUCYC[CZCn^C@aCnbC=LC#LCKC#LCKC@LCLCYMCNC@NCPC@RCRCRPCNCNC;OCNCNCPC=PCOC@!PCOCBRC^TCTCQCPC RC.QCPCOC+OCMC+NCPC}TCuVCRCOCNCPCLPCOC{OC@ PCPCRC@!RCLQCPCPCOCWMCLC@LC@!MCkNCSCWC@WC@UC@ORCQC@QC.RC@QC@QC@xQC=QC@3PC@OC+PCPCQCQCPCOCNC@ SCVCTCUC^WC@3[CkZCT\CaCbC@LCKC@KCKCLCLLC.MCMC@NCOCfQCRC@xRCOCBOCOCWNCMCcOCEPCTPC5PC@PC@PC@sQC)SC@TCPCPC}QCBQC@OCOCNC@3MCMC@PCTCTCQCNC@NCQC@OPCPC@OC@\PC)QCRCRC@RC@QC+QCPCNCnMCLC@LCnNC SC@WC@WCBVCRCQC@QC0RC@QC@xQCfQCQCPCPCPCPCPCQCPCuPCOCQC=UCUCBTCUCZCZCZC@!_CbCKCKCKCLC@LC@LC@!MCnNCNCPC@RCSCpQC@OCOC0OCGNCGNCOC@OCYPC@PC@PCkPC&QCRCTSC@OPC@PCQC@PCOCfOC@NC@MC@\NC@QC0TC0SCPC@aOCkNC&PCPCOC@PC@PC@PC@\QCERCSCcRC@RC@RCPC@MCLC=MCMCRCVCVC@sVC&SCEQCiQC^RC@aRCQCWQCnQC@sQC@PCPCTQCPC@8QC@ORC@PCOC@PC@3TC@UC@TCUCXC^[CYCW]C@`CKCKC&LCLCLC@ MCNCnNCOCPC@SCRCpQC@OCWPCYOCGNC+OCOCOCPCPCPCTPCPCRCSC@PCEQC@QC@xPCBOCNC@aNC@MC@OPCRCRCQC@RCPCNC+OCOC+QC@QC@PC@OCPC0RCfTC@SCRCRC@QCBNC@MCLC@MCRCVC=WC@JVCSCYQC@QC5RCRC@aRCQCQCGQC@PCQC@QC#QC@PC@ORCuQC@PC PC#SC#UCnUCTCWC@s[CiZC[C^_CLCKC@xLC{LCLCMC+NCNCOCQCSCRCEQCnPCPCOCNC}OCTOC@OCOCcPC@PCPCPC@sRCTSCRCRRC@PCOCOCNCMCNC@QCSCLQC QC@\RCRCNC@NCOCQC@!RC@xPCcOC@ PCRCcTC@3TC@aSCnSCQC;OC0NCMC@MCRCVCVCVCcSC@PCTQC@JRCSCTCkQCQC@PC@PC)QC}QCGRC@PCQCRCRCPCRCTCTCUCYUC@3ZC[CYC@ ^C@KC.LC+LCLCMCMCENCNCcPC@RC@aSCRC5QCQCPC5OCPCOCOC@OCcOC)PC+PC@JOCPCESCTCSCSC@PCOC@NCNCfNCPC@!RCSCPCPC@SCSC PCNCOCQC SC}PCOC@PC@QCfUCUCTCSC)RC@PCNCLCuNC@\RCBVC)WCVC}SC@ QCBQCLRCSC;UCuSCPCTPCPCBQCQC@RC@QCQCRC@\RC@QCRCSCLTCEUCUC^XCp[C{YCL\C=LCKCLCLCpMCMC;NCLOC@QCTCWSC@RC#RC0RC@PC@OC@\PCGPC@8OCNCOC@xOCOCOC@QCSCRUC@\VCSC@PCOCNC@ OCROCpQCSCSC@xOC0QCcTC5TCQCPC{OC@QCSCpQC@PCPCQCpUCUC@TCSC@3RC&QC@OCuMCNC@RCUCWC&WC+TCPCLQCRCSCVC@ UC)QCGPC@sPC}PC@QCiRC)RCcQCuSC5SCSCQC@SCSCTCUCWC[C@aZC@8ZCLCLCLCLCMC)NC&NC0PCnSC;TCTC@\SCRCYRC@xPC@PCWQCGPCOCfNC0OC@JPC@8PCcPCRCUCWCcXCSC@PC&OCNCOCOC@PC{TCRC@NCQC&TC@3TCRC@PCOC{QCWSC0QCEPCPCPC@UC@VC@xUCSC@\RCQC@OCMC@OCSCVC@sWCfWCTCQC#QCYRC@SCVCVC^RCOC@PC@PCPCkRC@SC@ RCiRCYTCSC@RCSCSCTCUC)VC@!ZCk[CYCRLC@LCLC@MCMCMC@NC@QC=TC;TC;TCSCRCRC@PCEQCQCEPC#OCNCNCQCnQCQCTC@VC@ZCYCESCEPC&OCLOCOCOCEQC@xTC@PCOCQCRSCRC@SC.RC#PC@QCRCPCPCPCnPCTC@!WC@UC@SCRCGRC@PCNCPCSC@VCWC&WCTC@QC#QCQCSCVC@WC@OTCPCPC=PCPCQC@JSCRCQC@SCTCSC&SCTCSCiUC)VCXC\CYCuLC@\LCLCMC+MC@MC@PCSC@TCTC@TCSCRCYQCQC}QCQCPC@ONC@MC@8PC@ RC@QCSCWC@XCp\CYCQCOC@NCGOCOC@OCTQC@RCOCOCPC@ORCRCTCQC@PC@\RCRCQCPCiOCPCTCWCVCTUCSC@QCPC@OC@QCSCWWCXC@VCTCQC@\QCRCSC@VCWXC)VC@QCPC@PC@aPCQCSCfSC@8RCSC@TC;TCTC{TCSCSC@UC;WC@[C[C=LC@xLC@LC0MCMCNCQCTCTC UC@TC@RCRCQC^QCRCQC@xOCBNCNC@8QC@RC#SCUC=YC@ZC@\CnWCPC@OC@OC;OC@sOCOC@3QCRC&OCOC PCQC;RCLTCRCcQC@ORCGRCQC@3PC@\OC@\PC@!TC{WCUC@UC{SCkRCpQC@QCSCTC5WCXCWCTCRC@OQCuQCSCUCXCWC@RCPCPCcQC5QC@SCSCRCRC=UCTCSCnTCSC.SC)UCWC@8ZC+\CfLCLCLCLCMCBPC&TC@TC UCGUCRCLRC RCQCQCRCPCOCMCOCRCSC.TCWC0ZC@\C\C@8UC@OC.PCuOCOCOCOCPCPC@8OC^PCOC.QCLRC{RCEQC@!QCQCQCPCnPCOCQCSC@VC UCTC@8SCRRCRCSCTCUCWCYC@xWCTC@RC@aQCQC{SC&VCWCVCSCQCuQCRC@RCRCSCSC@ORCTCTC^TCTCTC+SCSCVCXC\CWLC@LC@ MC@!MC@\NCfRCTC0TCTCTTCRCRCRCQC@OQCuQCOCNCMC{OC^RCSCUCXC@3[Ck\C@ZCRC@OCQCiOCOCLOC.OC@PC@PC)OCOC@PC@JQCQCQCuQC{QCQC;QCPC@PC@ PCGQC)SCUCTCSCRCERCSCTCVC+VCWCYCXC=VCRCQCQCSCYVC+WCVCUCSC@RCRC}SCSCSCSCRC@8SCUCRTC@TCTCSCSC@UCkXC{[CLLCLC)MC@MCPCSC@!TC@TCLTCkRC@QCQC@QC@\QCQCGPC^OCMCMCfPCRCSC0VC@ YCZC)[C@XC@3RCPC)QC@OCOCWOCOCQCpOCOC@\OCOCQC QCPC+QC0QC@PCGPCPCPC@PC@QCRCTC@xSCQC@QCQCRCLUCVC@sVCpXCYC@XCVCSC@\QC=RC@SC#VCVCUC@TCSCTCSCkTCSCRCSC0SCRC@OTCTC@TC UCSCRCSCWWC0ZCLLCMCLCMC5RCSCRC+SCSCQC QCQCQC@QCPCOC@NC&NC@xNCPC@SC@TC+WCXCZC@YC@\VC@\RCiQC=QCnPCOCTOCOC+QCOC@NCGOCPCQCPC}PCkQCPC@aPCOCPC&QCcQCRQC@QCSCRCfPC@OQCQCSC@UCpVC@VCGXCWZC#YCVCSCQCRC@SC@VC@OVCUCTCTCiUCTC@OUC@8UC TC@SCSCpRCRCETC{TC@JUC{TC SC@SCUC@8YC@LC0MCTMC@OCSCRC@\RC.SCGRCPCPC RCQCOCuPC@OCfNCMC5OCQC;SCTCVC YCuYC@aVCUC&SCkQCQCGPCOCYOC@PCPC@3OCuOCOCPCQCRPCOC@PCPCOC@aOCPCiQCQC}QCuRCSCQCPC=QC@ORC@SC@UCUCUC@XCEZCYC@WC@xSC@QC@RC@3TCUCUC@TCSCTCUCUCUC5VCTCSCSC5RCQC@ TCTC#UCfUCSC.SCBTCXCLC@LCNC@RCSC.QCQC@RCQCQCQCRCPCBPCPCBOC@MC@NCOC;RCSCTC@VCXCWC@TCUCSC@QCQCOCOCuOCPC5QC{OC}OCOCuQC@sQCOC@JOC{OCPCOCiOC@!QC@QCQC.RCRC@ SCQC@\PCYQCBRCESCUCUCUCWC@ZCYCRVCSCnQCRCuTCUCTCTC@SC@SC@TCVCiVC WC@3VCuTC@xSC@RCRC+SCSCSCBUC.TC@ SC)SCBVCLC@MC@3PC@SCQC@sPCQCRCQCQC;RCYQC@PCPCOC@NCuMCNC@QCRCWSCGTC@VCWCUC@xTCkVCWTCSC@\RCOCOC@OCQC@JQC@OCOCOCGRCQC@OCNCOCTPCOCTOC@QCQCWRCSC@SC@sSCRCQCQCRC.SCWUCnTCWUCiWC@ZCWYCVCSCQCRC@aTC@JUC}TCTC@SCRCfTC0VCVC WCVCnUC@SC@RCRRCRC@JSCSCTCTCSCRCTC@MCWNC RC@RC5PCPC5RCRC@QC&QC@QC+QC@3PCPCkOCNCNCOCQCRCRCTCVCVC@sTCuTCVCTCfTCQCOC@OC0PC@QC@3QC5PC@OOC5PC@QCQCOCNCNC@OPC.OCLPCRCQCRCcTCSCESCRCQC}RC=SCSCTCTCTUCWCuZCYC#VCTCRCSC@JTCTCTCTCSCRCSC@3UC=VC@VC}WC;VCTC@SCRCRC@RCESCTCTC@ TCSC@SC@MCOCSC@PCOC.QCSC@RCQC@8RCQC.QCOC^OC@OC^NCNC^PCRCQC@RCTC@xVCUCSCUCVCUCfUCQC@PC{OCGPCQCQC@PC=OCOCRCRCOCcNCNCPCEOC@PCQCPC}SCTCTCGSCSC}RC}SCSCSCTCTCWUCWC@!ZCYC{VC VCTC5TC@aTC@TC&TC}TC0TCRCSCSCUCUCVC@VCUCETC SCRCRC0SCSCBTC@TCSC@SC@MCkQCQCOC PCLRCnSCRCQCQC}QCGPC@OCOC.OC@\NC{OCQC@RC@8RC+SCTC@UCSC@TCUCWC@JWCUCPC@OCcOCPC5RC@\QCOCNC@OCRCSCPCuNC@xOCfPCOC@PC@sQCPCSC@8UC@TC@SCBSC@SC@aTC@!UCTTCTCRUCiUC{XC ZCYCVC@VCpVCTCTC@SC@8TC&TCTC@SCRCRC@JTCUCVC;VC@OVCUC@SCSCRC@RCYSCTC@!TCSCTCnOCRC^PC)OCPC@RC@SCRCQCQCQC@8PCOC0PCGOCNC@ QCRCRCQCTCGTC{SCRC@xSCUCWC@XCTCPCiOC@OC.RCRCLQCOCNCOCESCRC0PCNCPCOC@NC&QC@PC@!PCiSC@TC@OTC@SCTCSC@UC@xVC@UCUC}VCVC)XC&ZCYCWCXCXC@3VC@!UCTC)TCSCTCpTCRCSCiSCLTCUCUCRVC{VC@TCSCLSCRC@ SCSC@TCTC@SC@aPC.QCOCPCQCSCSC@RC@QCPC)QC@ PCpPCiPCNC@OCQCSC@ORCuRCSCRCQC@!RC@sSCUC@XCYCTCPC#OC@OC&SC@JRC0QC@ PCNCPCkSCRCPCOC5PCOC+OC@QC5PCPC@SCRC@RC@SCTC@TCnVCXCuVCLWCWC;VC@8XC@JZCYC@3XCYC;YCVCYUC@JTCSC@OTC&UCTCSC@3RC;SC@aSCfTCiUCUC@VCUCSCSCSCnRCTSCSCSCSCQC.PCOCPCRCSCSC@QCPC QC@PCPC&QC@PCOCPC@sRCTC@QCRC#SC{QCPCQCnSC@VCYCTXC@ UCPC@OCpPC@SCYRCkQCPCNCQCfSCfRC#QC)PCPC@NCfOCRCOCPCRCQC@xQCRCUCUCVCXCkWCYCYCuVCXCYCcYCYC@aZC@ZC@WCVCTCGTCTCuUCUCSCWRCfRC@RCSCTCTCUCVCGTCSCSCRCRCSCSCTCPC@OC)PC;QCRCSCRCQC#QC5QCOCkPC&QC#PCfOCBQCSCSC@ RC}SCRC@OCPC0RCWSCXCZC@XCUCPC@JOCPCuSC@RCQCPC@OCiRC{SCRCPCQCQCNC@OCkRCOCkPC@QCPCPCQC@8TCUC+VCiWCWC@ZCYCGWC@WCYC@YC;ZC@ZCGZCXCfVC+UC@TCUCUCUCTC@SCRC#RCYRC@SCSCTCpVCUCSCSCRC@RCTCSCSCOCOCPCQCSCSC+RCPCpQCQCPC@ QC@PC@OC@PC@3RC@TC@SCRCRCPCOCPC)RCRSCYC@ZC@XCUC{PCOC@QCSCRC;QC@QCPC@JSC@SC@RCPC@JQC RCNC@PC@RCOC@xPC@PCOC@OC@QC^SCTCTC&VC@XCZCuZCXCXCYCYZC@ZC@ZC@ZCYCVCUC}UCUC.VCVC@UCTCRCQCRC.SC}SCRCUCuVC TCSC SCpRCSC@ TCSCOCOC@sPCRC&SC{RC.QCYQCQCWQCOC@PCLPC@aOCBPCSCTCRC@SCQC@OC}OCQC}QCSCYC@YCWCkTCLPCOCRCkSCQCLQC@!QC5RCTCTCRCpPCQCQCOCQCRC;PCLPCPC@OOCOCPC@RCSCSC}TCWCYC@ZCfXCYCZC@[C0[C+[CYCXC0WC@xUC@UCUC}VCWC@VC@8UC@SC@RCQCSCRCiRCSC@3VCUC@TC^SCRC@!SCuTCTCPCcPC@PCRCRCRCPCGQCRCPCOC@OPCTOC#OCPC@SC@3TCRCRC@PCNCOCPCTQC@SCYCXCWCnTCOCfPCSCWSCPCPC5RC@sSCUCWUC@RC@PC@\QCPCOCTRCSCfPCOC@PC@OOC@OC=QCQCRCnRCnSC@WC#YCXC#YC@ZC[C@[C[CYZCnYCXCWC@UCcVCUCVCWC0XC@!VC@!TCLSCRRCRC)SCRC}RCTCUC@TC@SCSCRC@TCTC@8PC@xOCPC@xRC&RCPCPCQC#RCBPC@OCcOCLOCOCPC@OSCTCRCkQCYPCWOC@OCPC#QCTC@XC@8XC@WC=TCOC@sQC+TCRC@PCPCRCTCVC VCRCPCkQCOC}OC@JSC@TC@PCOCPCOC0OC@PCpQCQCQCiRC@aVC@WC@WCXCE[C\C@x[CZCYCfYC@XC}WCUC@\VC@JVCcVC@ XCXCVC.UCSCSCRC5SC@xRCRCSCiUCTCSCiSC@RCSC.UC@OCOC@sQCERC@xQC@PCPCRC@QCBOCOCOCNC=OCWQCTC@TC@QC#QCOC;OCPCPC@PCSC@WCXCWCuSC@PCRCuTC@RCQCiQC@8SCGUCkWCVC@xRCPC@PC@NC@ PCWSC@xTCTQCPCPCPC}OC@PCkPC QC@xQC@!RCpUCVCVCXC@a\C]C\C ZC@YCYCXCWCUCUCUC@UCWCYCXC5VC@OTC.TCcTCSC+SCRC@xRC@xTCUC@8TCSCRCSC@TCNC@ PCQCQC.QCPCQC@3SC@\PC@NCNCNCkNCNC@sQC@SC@RCBQCPC@OC.OCLPC@PC@PC@SCXC@ YCXCWRC@QCSCTC{SC RCnRCSC@8VC5WCVCBRCOC0PCNCOC@!SCSCGQCPCnPCpPC0OCOC5PCnPCQCRC)TCUCUC@XC@\CT]C#[CnYCXC}XCWCWCUC@ UC@aUCTC;VCWC=XCVCUC@aTCWTCETCSC@RCkRCGSCTCTCTCSCTSCfTCNC@PC@RCQCQCQC@xRCQCOC=NC+NCYNCNC@sOCQCSCnQC@PC5PCOCOC QC;QCPC@UC@xZC@!ZCLWC0RCRCTCSCSC5SCSCTTCVC@OWC;VCQCPC@JOC@NC)PCRCSC@JQCOCpPCOC@NCNC{OCPCEQCSCWTCBUC+UCXC[C@\\CZCXC@JWCWCBWCVCUCfTCTCTC.UC@VCXCTWCUCTCBUCUCUCpTCRCRCTCBUCBTC@8TCSC@ TCNCPC@QC@xQCPC#QCRCkPCNC@JNCMCMCMC}OCQCRCPCPCOCOC@OPCBQC@QC@PC@!WC[C)[CVCQCSCTC@OTC@3TCTTC@ UCTCVCVC@!UCQC@OPCOC NC5PCRCRCWQCYOCWOCOCNC{NC@NCOC{QCuSCLTC&TC@xTCYXCZCZC@XCWCnVCVC&VCUCTCGTC@SC@SCSCUC}VC@OVCcUCpTC;UC@8UCUCUCSCRCRCTC@TCSCSCLSCOCPCTQCYQCPCQCQC&OCMCMCMCMC@MC@sOC@QCfPCLPCQC@PCPCPC@ RC@PCcRCYCE]C@JZC)UC@QCTCTC.TCSCEUCVCTCVCfVCTC@PCOC#NCMCOCQC RC QC@8OC5OCuOC@aNCENC;OC^OCnQCSC+TCTCRC{WCYCXC@\XCVCcVC@TCGUC@TCSCTCRC@RCRC@8TCTCUCnUCfTCUCUCRVC@xVC@JUC@JSCRCTCUC{TC@SCSCPC@aQCGQCQCPCQC@8PCNCMC@MC@MC@MC5NC;OCPCOC@PCfPCiPC{PC@\QCQCTQC@OTC&[C\CTYC@\TC^SCTC@TCSCSC@JVCBVCUCVCUCSC}PC PCTNC@MCOCQCQCPCNCNCNCMCMCNCOCQCTCSC@SC;RCVCXCWCWCUCBUCSCSCTCRCRCRC@RCRRCRC+TCTCTCSC@SCUCUCWC@VC#TCRCcSC@UCpUC@SC@SC@PCPCBQCQC@PC@PCNCYNCMCMC@sMC@NCENCOCOCOC@PC@PC@xPCPCQCQCQCVCYC^[C=WCSCBSCTCSCSCTC}WCfVCUC+UCiUCSC@OC@OCMCMCWOCQC@OQC@aQCNC;NCNC#NC@MCNC@OCRCSCYSC@aRC@QCUC=XCWC0XCUCTCRCSC&SC+RCQCRC@ RCQCQCRCSC0TCSC@RCnTCRVCWCfXC=VCSC@RCBTCUC5TCSCPCBQCfQCPC^PC@OC=NCMCMCMCMC@MCNCOCBOC@OPC@sPC@sPCPCPC@ORC@sQCRCUC@OXCXCUCBSCiSCTCRCRCTCLXCVCTCTCUCSC@ PCOC@OMCkMCNC@PCPCQC^OC NC@8NCNCMC@NCOC=RCSCSC@QC@QCUCWCWCXC)UC&TC=RC@RC;RCQCPCQCQC@QC@QCQCGSCESCRCRCWSCLVCVCYCuWCTC.SCSCfUC@!UC@SCQCBQC)QCOCcOC=NCMCMCMCMCMCMCTNC0OCkOCPCPCGPCPCkQC#RC0RCYSC@SC+VCVCTCRCSCSCRCRCUCXC@VCRTCUC@OUCnRC@3PCOC@xMCLCNCWOCOCPCNCMC@MC@\NCMC@ONCOCTQC&SCnRCGRCRCiUC;WCWCWC@UCSCRC@QC@ORCPCnPCPC@aPC@JQCPC=QCQC0SC@SCQCQC@OUC@aVCXCBYCcVCSCSCuTCUCTC^QCEQCPC@OCOCMCMCNC+NCMCYMCMCNC@ OCOC@PC5PC@PC@ QCQCRRC@RC@SCLRCGTC@\UCRCERCRCYRCRCSC@JVC@OXCVC@TCUC)UC@QCOC@NC@MC+MCMCNCNC{OC5OCMCMC@JNCMC=NCOCBQCRC0RC@sRCTCUCWCXC@sWCTCSCRCQCQCPCOC@JPC@PCPCPCBPCQCuRCRC@PC@aPCSCcVCWC@aZCWCBUCTC@8TCVCTC@3QCWQCOCNCMCMCNCNC}NCMCMCNCNCOCPCuQCPCQCpQCRC@xRCRC@QC@xQCSC@SC@aQCQCBRCRC0RCTCWCXC@VCTC@VCRUCQC@aOC@3NC@8MCMCMC@sMCMC#OC5OCMC@MC@3NCMCMC@3OC+QCTRCRC@\RC}UCVCVCWC@VCTCWRC+QCPCRQCPCGOC@OC@OC@8PCPCOCOC@aQCRC@sQCPCQCUCWC@YC@YCVCTCSC UC@sUCYQCPC@NCiNCMCMC;NCNC{NCMCWMCMC@NCnOC@PC@!QCQCQCQC=RC@RC.RCPC@!QC@\SC@QCPCEQCQC@RCWSC VCWCXCWC#UC@aVC}TC^PC@JOC0NC@aMCLCLCMCkMC OCOCMC@xMC@\NCMCMC0OC+QC=RCRCRC@OUC WCcWC}WCUCSCTRCWPCPCQCPCOC@JOCcOC@OCPCOCOC@8PCQC@QC@\PCPC{SC=VCXC@3ZC#XCUC@aTCYTCUCPCOC^NC@NCMC@MCNCNC@MCcMC{MCMC@NC@8PC@\QCQCRCQC&RCRCpRC@QCEPC@PCERC@PCPCPCQCRC@SCnWC@xXCXCVC@UC@UC@SCpOCNCMCMC@xLC)LCLCMC@NCNCMC@\MCNC@MCMCOCPC#RCQCRCTC0WCWC&VC@\TC}RC}QCOC@OC@PC@!QC)PCkOC@NC@NCNC&OCNC^OC@PCQCPCOCLQCTCVCZCYC@aVCUCiTC;UC@8PC;OCNCMCMCMC@!OCNCNCMCMCTNC@aOCPC@OQC@QCRCRCRCSC#RC@\QC@OCPCfPCOCOC5PCRCkRC=TCXCYC@3YC@JVC@TCfUCRC@NCMC@MC@MCkLCGLC@LCMC@ONCNC@MCMC@NCkNC@ONC@sNC.PCQCRC@\RCSCUC}VCUC{SCQCPCYOCkOCPCPC0PCOCNC}NC@NCNCNCiNCPC^QCPCOCPCBSC@ VCGXC@8ZCWCTVC@!UCTCOC&NC NC@\NCNCNCOCOC+MCMCMCNCOCuPCQCRCRRC=RCRC SCGRCPCPC@PC@xOC@OOC@!OC@QC@xSCRCVCYCZCXC@sUC@3UC@TCBQC@JNC@ NCMCMC{LC+LCpLC@MCNCGNCMC@JMCOC&NC5NCNCOCRQCQCQCSC@TCfUCSCcRCPCPCNCNCfOC;PCOCNC@aNC@NCMCNC{NCNCNC0PC@QCOC@OCTQCYTCVCXC@ ZCWC@UC@TC@\OCNCNC.NCNCTOC=OCBNCNCTNC@3NCOC=PCQCRCSCcRCRC@RC@RCQC)QCPCPC@!OCNC0PC5SC@SC@ SCWCZCZCWC@SCTCTCPCNCNCTMCLC@xLCfLCLCMCpNCNC@NCMCNCNCENCNC@PC@aQC{QCQC@RC@SCcTCSC@xQCOCkOC}NC{NC@NCOCROCNCpNCMCMCNC5NCGNCNCOCRPC@8PCOC;PCRCTC=WCYCXC=WCUCOCfNC@ OCfNCNC@OCNCMCMC@aNC@xNCLOCOCQC SC@3SCSCRCpRCBRCQC@!QCPCPCNCOC@QCkTCRCWSCuXCZCZCBVC@RCTCTC@!QCNCfNC@MCLCMC^LCLLCMCMC@NC@aNCNCOCNCiNCOC@\PC@PC@ QCQC@ RCRC SC=RC@PCOC@NC@MC@MC@JNC@NC OCMCMCMC@MC@MCNCNC@MCNC@xOCPCEOC@OC#QC@3SCpUCLXCYC)XCVCNC@NCNCNC@NCYOCnNCMCNCWNCNCOCQCRCSCSC@SC;SC=RC@RCLQCRC0QC@OCNCOCnRCTC;SCTCYCZC@aZC+TC;SC^UCSCPC@OCOCMC@LC#MCLCLCRMC@MC@\NCNCNC+OC@NC^NC+OCQCPCPCYQCQCQCRC@8QCOC@3OC@3NCMCMCMCMCpNC@\NCcMCMCMCMC@NCMCMC@MC@NCOC{OCWOCOCQCSCfVCYC@XC@sWCfNC@JOCNC@NC5OCOCGNCMC^NC@\NC@NCOCPC@sSCSCTCSCRCQCkQCPCQC@PCROC)OC@PCESC@OTC@TCVCYCiZCWCYSC;TC@UCQC@sPC@sPCPCOC@LCMCBMC@sLCLCMCMC@NC@OCWOC@OOC@!OCYOCfRCPC@\PCPC^PCPC@PCRPC@OC@!OCLNC^MCGMCMC@JMCMC@MC}MCMC^MCMCNCNCMC{MC@!NCNCTOCNC@JOCPC#RC@JTC{WC@YCXCNCOCNCOCOCNCNCMCENCNCNCOC&RCSCTC@UC@SCRCiQCPC@JQCWQC@3PC@OCPCPCSC@sUCUCVCXCYCVCSC@sUC@JTCPCPCQC;RCOC@\MCMCLCLCRLCLCMCNCkOCOC@ PCGOC&PC@8RCPCOC@\PCPC@OCOC@OCpNCuNC@MC0MCBMCMC0MCMC@ MC#MCMC@LCnMCMCMCMCLMC@sMCBNCNCOC@OC@OC@sQCRCUCpYC@XC}OCcOC@3OCNCNCNC@8NC#NC@MC@JNCNC@JPCRC@xSCTCkUCRC@QCQCpPCPCPC{PCRPC;QCQC0TCVCVCWCXCXC@TCTC{UCRCNC@xPCYRCSCPC@MC=NC@LCLC@LCLC)MC@NC@OCOC#QC PCPCRCPC@OC@PC{OC}OCNCNC@xNCMCMCcMC@LC@MCLC@OMCLCWMCMC@MCLMCMCMCMCkMCRMC@aMCMCuNCcNC.OCfPCQC@SC@xWCZCOCOCNCOCNC@NCGNCMC@MCNCOCQCRCSCUCTCRCQC@PCnPC}PCOC@PCPC@8QCQC)UCXC0WC@sVC@\XCVC TCBTCRCOCNCPCRCSCQC@ NCMCLCLCLCLC@xMC@NC@OCkPCQCPCPCRCYPCOCOCNCNCBNCNC@aNC}MC{MCuMC@LCGMCLC@LCLCLCLCLC@LC.MCMCMCRMC@OMCMCMCNCMCNC@OCPCRCUCYCOC@JOCOC@3OC@NC^NC@MC@MC@!NC@\NCOCQCRC@SCTCSCRC.QC@PCPCOCOCQC@QCPC@!RCVCXC@ VC@UCWC@UCSC@RC@OC@MC@NC@3PCQCSCPC^NC;NC.MC@MCkMC)MCLC@3NCNC@PCRC@sPCQC&RC0PCuOCOCNCTNCMCMC@MCLC@OMC@!MCMCMC@!MCLCLCkLCMCLLC@LC.MCMC@ MCMC#MC^MCMC^MC@MCMC@NC@OC@xQCRCWCOCiOCNC)OCWNCMCMCMCMCNCcPC5RC5RC@SCSC=RC#RCPC}PC#PCNC@PCRCPCOCSCWXCTWCUCVCVC@SC@3RC@OCMC@\MCOC}PC{QC@3SCPCiNCYNC@MC&MC@JMCpMCLC=NCNCPCRCPCRCRC&PCOCOC@\NC@aMC{MCLC.MCLC@LCLC&MC=MCTMCLCLC@LCLC+LCkLC@LC@ MCLC0MCMCRMCLC=MCMC@sMC;NC)OC@PCQCUCfPC&OC@NC@OCNC@ONC@MC&NCMC@ OCYQC@QCERC#SCRCQC@RCQC@ QC@ PC@NC@aQC@xQCOCPCUC@XCUC&UCUC}UC@QC@PCENCkMCMC@PC@aQCpRCBSC@OC@NCNCNC@NCEMCMC)MCMC@aOCPC@RC@JQC@SC@TCQC&OCNCMC@LC MCLCLCLCnLCLC@8MCMC@MCLCLCLC@sLCRLC{LC@LCMC@MCLCLCLMCLCcLC&MCLC@MCNC@OCQC{RCOCOC OC@OOCiNCMC@xNCMCNCOCQCPCQCTRC}QCRC@RC@JQCQC^PCGOC@QCPCOC@RCWC;XCTUC=UCRUC@SCPC@NC@MC.MC@NCQCQCSCWSCGOC@ONCOCOCGOCMCBMCLCMC@OCPC@xRC@\RCUC@aUC@\QCNCNC@MC@LC@LCRLCYLC^LCnLCLC@LC@xMCLC=MCLC@sLCLCiLCLC@!LC@MCLCLCLC&MC5MCRLCiLC@LC@aMC5NCBOC@!PCQCOC&OC@aOC;OCTNC{NCMCMCfNC@\PC@PCPCGRCQC}QC5SCGRC@sRCRC@PC+QC@JRC)PCPC@aTCXCWCUCUC@TC@QCNCMC@MCnMCNC@QCSCTCSCNCNCOCPC0OCMCMCLC#NC#OCQCLRCRCWC@VCRCNCMCMC@aLC@LC=LCLCLCnLCLC@LC@OMCLCLCBLC@3LC@LCLCfLC5LCLCfLCLCLC#MC@JMC@LCLCLCLCMCNCOC@!QC@OCLOCGOC@NC&NC@aNC@ NCMCNCPCPC@PCRCQCRCETC+SCTCSCQCQCQC@PC5RCUCRXC#XC#VCSCkRC@OCNCLMCMCfNCOCRC=UCUC.RC@\NC@!NC@8OC{PCNCMCMC&MCMC^OCQCRC)TCiXCWCRCNCMCLCLC@JLCuLCRLCYLCTLC@OLCLCLC@!MC=LCTLCnLCpLC@xLCLLCLCLC@LCLCLC@LCYMC@ MCLCLCLC@MC@MC@NC@JPCOCNC;OCNCNCNCMCMCfOC@aPC@OOCPC@xQC0QC&SC@!TCSCTC@SC@sRCRCQCBPC@SCUCWCWCUC@RC@PCNC@MCMC5NCkOCcQCSC+VC0TC QCMCNCNCOCMCLCLCMCiNC&OCuPCRCTC0XC@XC0SCNC5MC@LC@OLC=LC+LCGLC@!LC@3LCWLCLCLCMCELC@\LC5LC#LCLCTLCLCLC=MC@LCLCLCLCLCLC^LCLCLC@!MCNCOCcOC@sOC0OC@NCNC@3NCMC@MC@OCOCnOCWQCkQC@RCTC+TC@OTCLUC@OTC@xSC@sSCYQC@ QCSCVCWC@aWC@TCPC@sOCMC{MC@MCNC.QCRSC@!VC#UCQC@NC@MCuMC@8NCNCMCLCLC#MCNC@\OCPCBSC@TCVCkVCRC@xNCLCLCLC@KC@!LC@OLC+LC=LCuLCLC@LC@ MCcLC&LCkLC.LC@LC@JLCLC)MCMCMC#MC@LCLC@LCLCLCnLCLCLC@JMC{OCOC@ OCNCOC@JOC@ NCMC@NCPCNCOCQCRC@TCTCTC@TC@!UCTC@TC@sSC@PC@sQCTCUC@WC@VCRCOC5NC@NCMC@sNCOC=SCUCWCRC@ OCcMCMC5MC@MCNC@MCLCLCcMC@\NCGOCQCSCTCTC@TC&RCLNCMCLCLC@3LCcKCKC+LCLC@aLC@sLC@LC@LC@xLCfLCLCKCuLC^LCLCLCMCRMC@8MC@LCYLC@MCLC)MCLCfLCLCLMC#NCOCOC OCOCNC&NCMCNC@OC5OC^PC@QCYSCTCTC@aSCTCTCUC@VCSCPC@RCGUCYVCVCUC@PC)NCMCNCMCNCPCUC@WC@WC{PCMCBMC&MC)MCMCMC@8MC@LCEMCMCcNC@xOCQCSCBTCRCRCQCMC5LC@JLCLLC&LCKCLC^LCLC+LCLCLCTLCLCELC^LC@JLCTLCLC@LC@\MC@MCMCMCLCLCfLCLC@LC@LCLCLC@LCuMCOC^OCOCOCcNCMC@MCGOCOCYOCPC+RC{TCEUCYTCRC;TCTCGWCGVC RC@JPCGRCUCVCUCSCOC@MC{MC{NCMC@NC@3RC@VCYC@VC@NCMCLC@LC@!MCiMCNC@\MC@MCfMCMC@MC@\OCQCSCTSC)QCPCOCMC.LCKCKC@ LC@KCKCKC)LCKC@JLCuLCcLC@LCLCLCELC@LCLCLCMCMCMC@MCMCLC@JLC@8LCLCLCLCLC@LC)MC@OC@OCYPC@OCcNCMC@NCOCOCOCQC)SC@UCUC@3SCRCSC@UCXCVCQC@QC0SCVCVC0TCSCcNCMC@!NCMCMCGOCGSC@sWCBYCTC&NCLCLCLC MC}MCNCMCLCLC@OMC@MCOC{RC.TCRCkPCOCLNCMCnLCKC0LCKCKCKCBLCTLC@8LC@LC@aLC@xLCLCLCLCELCLLC@LCMCTMCMCMC@aNCMC.MCLC@aLCLCLC)MC@LCLCLCOCYPCPC0OC5NC0NCYNCYOCYOCOCfQC@TCVCUCGRCRC;SC@\VCZC@UC@QCBQC)TCuWCUCESCpQC@JNC@LCMCcMC@MCOCTCWCWCRC@MCLMC5MCMCMC@MCMCMCLCLC@ MCMCPCRC}TCQCWOCNC5MCfLC@LCLCWLCKCKCLLCLC;LC5LCpLC@\LC@sLC5LC@LCLCiLC@sLCMCMCMCMCMCGNC.NCMCLCLC@LCLC@LCuLCLC#LC0PCPCfPCnOC@MCMC+OCOCWOC&PCRCVCVCTCnRCRC{RCYCYCTC@QCQC@aUC@ WCSCRCPCMCLC@MC@8MC^NCPC@UCkWCUCnPC@xMC MC@JMCMCpMC@aMCMC=NCLC#LCMCMCPCYSC;TCQCNC@\MCLCKCKCLCKCKCKCKC&LC@KC@KCELCELC@LC@JLCLC{LCLCpLCLC&MCLCWMCuMCENCNC&NCLC@LCLCLCLC@LCfLCLC@xPCGQCYPCNCMCLNCOCNC@OCnPC#TC@VCVC@ TC RCQCSCZC@XC&TCQCRCiUCTC@QCfQCTOC)MCRMCMCMCcOCRCVCUCSCOCMC@MC}MCMC@xMCTMCWNCNCLC.LCLCuNC.QC@!TCTC5PC@ NCLC)LCBLCLCLC@KC LCKC)LCKCKCKCLC#LCLC)LCLCLC@\LC@xLC@8LCLCMCLCMC#NC@JNCnNC5MCcLCLCLCLCiLC MCLC;QC@ QC@sPC@NC)NCfNC@!OCOC PCPC@UC WC#VC&SCiQC&QCTCZC@aWCSCRCSCTCRCRQCkPCYNCMCMC)NCNCuQCTCWCTCQCNCMC.MCkMC@MCMCMCNC@NCMC@KCLC@!OCRC@8TCLRC{OCLCLCWLCKC@KCLCKC@LCiKCBLCLCnLC@LCKC=LCLC@LCLC@sLC5LCLCfLC@LC@LC@MC.MCMCLNC@sNC NCLCLCLCLC@LC@LC@JLC@QCQCOCNC{NC@aNCOC@OC@PCRC@3VC5WCUC@RC;QC@PC@UCBYCLVC@TCRCSCSCcQCRPCOC@NCTMC#NC@NC@OOCWSC@VC)VCSC@OCMCMCMC}MCMCcMC=NC&PCOCMCKC;MCPCfSC@JTC@8QC@NCRLCLC@LCLC@KC@KC@LC@KC@8LCKCLCLCKC@xLC@LC&LCRLCTLCLCELC#LCLC@3LCELC@LCLC{MCMCNC@JNC@OMCLC@LCTLCLC@LC.LCQC@PC@OCNC)NCNCOC@OC@JPCSCuVC@VCUC)RC@PC@OQC@VCWCUCTC@OSCSCLRC}PCOCNCNCMCNCOC@PCUC@\WCUCGRC}NCMCMCBMCiMC#MC@NCNCiPCOCLCLCiMCPCTC#TCRPCMCTLCKCBLC@LC@KCKCKCKCKCKCKCKCKCcLCLCLCLCLCGLC^LCKCfLCuLC@3LC@LCLCLC@xMC@MCMC{MCLC^LCLCLC@LC@LCWQCPCNCnNCNCNCOCPCPCBTCiVCVC@\TC@QCPC}RCVCUCUCBUCSCSCWQCPC^OC@NCNC0NCRPCPC@RCVC@WC@UC{QCNCMC^MC@MCpMCMCTNCOC.QCOC@LC LCWNC@\RCTCRCOC@JMCLC@LC@ LC@KCKC@KCKCLCKC@ LCKC5LCYLCLCLCYLC@\LCLC@xLC&LCKCLC{LCLCLCLCLC+MCMCMCMC5MC{LCLC@LCBMCLCQCOCBOCNC@JNCNCPCPCQCEUCWC@VC@SCcPC@aPCERCTC@ UCWCGUC@\SCRSC^PC#OCNCOC@NC@NCnPCQC@TC@VCWCTC@\OC@ NC@MCcMCMCuMCNCBOC0PCQCOCLC@8MCnOCTCUC@aRC@OC#MCuLC LCcLCLCnKCKCKCKC@KC#LCLC;LC@sLCpLC@sLC@LC@LCLC}LCkLC@LC@sLCkLCLCLC@LC@LCLCTMCEMC@MCMCLCLCuLCLC@LC@3QCOCOCuNC@xNCpOCOCPCRCVCVC@UCRCOCPCpRCTCuUCXCUC@ SCWRC@NC&OCNCOCNC@JOCPCRCcUC@ WCWCYSC@NC@MC=MCMCMC@NCNCOC@PC^QC@OCiMC@NC+QCpUC@TCfQCNC&MCcLC@LCKC@LCKCLCKCLCKCLCkLC}LC@8LC^LCuLCuLC@xLC@LCLC.LCLLCuLCLCLC@LCLC@8MCLCBMC@MC@MCiMCLC{LC@8LCkLC&MC@3PCOCNC@\NCNCOCWOCPC5TCVCVCUCQCOC@PC.RC@SC@WCXC@ TCRCPC@xNCNCNCOC#OC@OC}RCUCUCWCWC@JQC@MC@aMC@MCNC@\OCOC}OC+PCPC@sQC)OC@NCOC@SCkVC5TCPCMC#MC@LC@LCKCKCKCKCLCKC@KC#LC=LC@OLC5LC@KC@LCLCLCLCLCkLC@3LC@LCLCLC@LC#MCLC0MCMCMCMCfMCkMC@LC@aLCLC@LC@\PCOCNC.OCGOCnOCkOCPCUCVC)WC@ UC+PC@OCPCRCTCXCVC@SCRCOCcNC{NC@xOC@8PCNCPC@TCUCVCYCUC@OCMCuMC5NCPCQCiQCPCPC+QC@PCOCGPCRCVCVC@!SCOCMCcMCLC@LC@LCLCLCKCKCKC@KC LCLC@xLC@KC@KCGLCLC@LCuMC;MC}LC@\LCnMC)MC@OMCLCLCMCnMCMCMC@\MC;MCMCLC@JLC&LCLC@OCYOCNCNCYOCOCOCQCUCWC+VC@8SCnOCLPCOCRCEVC}XCVC@ SC@PC@NC@NCNC^PC5PCOCfRCBVCUC+XC#ZCSC;NCMCMC.PCRCSC@aSCRCQCQCQCQCRCGUCcXCVC{QCROC@MCMC@LCLCuLCKCLC)LCKCKC@LC@!LC@LC@LC@3LCLCELCLCMCENCMCLCLCBMC@MC@!NCMC@MC@3MCMC&NCWMCpMC@8MCMCfMC@LCLCLC@!PCOCNCNCOCNCPC@OSC@3VCVCGUCQCPCOCPCSCWCEWCUCQC@OCNC@NC;OC@PCOC@ QC@TC@VC@VC}ZCWYC=QCNC#NC@NC.RC#UC@UCTC@SC@RCRCRCTCUCWCWCTCWPCNCMC@OMC@LCLC{LCKCLCLCLCKCKC@LCLCLC@aLCLC@LCGMCNC@OCNCMC@\MCBNCiNCNCNCLNCMCNCkNCMC@MCiMCMCiMCLCLCnLCOCNC@NCROCOC@OCPCTC&VC#VCSCPC@OC@3OC+QCTC@XC)VCkUCLPCGOCiOCNCPCPC@OCRC=VC;WCXC[CVC@xOC^NCMCOC@3SCTVCVC;VCLUCTCYTC@3UCYWC@YC@YC@!WC.RCOC@ONC@JMCLCLCLCYLCpLC@aLC^LC LCLC)LCLCMCMCLCLCLC=MCNCPCOCOCMC@aNCYOCBOC@ PCOCNCNC@3OCNCMC@MC@xMCMCLC@sLCuLCOCYOCOC.OC@sNCOC RCUCVCBUC@8RCWPCOCOCERCUC0VCYVCSCOCfOC@OC5OC@JPCcOC@ QC@TCVCWC@3[C@3\C@SCnNC{NCMCOC@aTCWCRXCWCVCUCVC@\WCYC@8[CYCUCPCNCNC=MCLC@LC^LCuLCLCLCKCLC.LCLC@ MCMC^MCYMCMCMCMCOC@QCRCPC=OCOC@OCEPCfPCnPCnOCNCOCkOCNC;NCkMCRMC@LCLC=LCNCOC@OCOCYNC&PC@SCUCnUCSC@QCPCOC@JPCRCuUCUCVCQCNC@ PCWOCpOCOCOCkRC@JUCVCZC\C@YCPCWMCuNCMCOC@UCWCYC@XC@XC#WC=XCYCR[Cu[CWC@!RCNC+NCMCLC@LCLCYLC@3LC@JLC@OLC@LC@LC}LCLCMCNCMCMC&NC@ONCRNCfOC@RCRCQC@ QC PCYPCkPC^QCRCPC@OCPCPCOC^NCMC@LC5MCLC@xLCnOC)OC;OCNCNC@!QCSCUCTCRC@RC QC&PCQCSC@JTCUCVCOC;OC@3PCOCWPC0OCYPCSCUC@xXCT\C\CVCNCMCMCMCPCTC#XCZCYCXCYC@\ZC@ZC@x[C@YCpTCOCMCWMCLCLC^LC.LCYLC@\LCLC@KCLLC@OLC}LCMCNCOCkNCfNC@NCNCLOC;OCRC5SC SCRCQCTQC}QCQC@RC@QCPCPCLRCiQC@OCNC@MC@JMCMC@JLC)OC@OOCOCMC@OCQCSC)TC@SCRCRC@\QC@QCQCSC@sSC@xVCTC;NCGPCPC;OCfPC@OC#RC0UCTVCYC@x]C[CRCMC@MCNCRNCQCUCXC[CZC;YCRZCZC0[CYC=VC@3QC@NCLCLCLCLCnLCKCLCkLCKC@LCpLC@MC@MC@ NC@3PCPCOC@NCEOCOCPC@sOCRCSC@RC{SC@OSC RC@JRCRC@\SC.SCRCQC@RCRCQC OCGNCpMC@OMC@LC+OCOCNC}NCOC@\RC+SCSC@RCRCBSCQC@JQCRCRC@SCLXC@sRCNC@ QCOCiOCiPCOCSC@VCWC[C@]CXC{PCLCMCNCOCRCTC@YC@\CBZCYCZCZC@YCVC@aRCNC+MCLCLCLC@LCGLCWLC.LCLC@KCuLC@LC@NC@NCOC@ QC@JRC#PCNC@3OCPCPC^PCQC@RC@RCTSCSC#SCRCSCRCETCYSCRCRC;TCRCPC@OCRNCMCMCOCiOC=NCNC{PCGRCRC^RCSCTCSC@RC#QCWRCTRC@sUC@WCOCfPC@xPC@JOC@QCPC+QCTCWCRYCB\Ck\CUCNCLCNC@JNCOCSCTC@ZC+\CZCiZC+ZC@aYCVC}SCOCMCLCLCMC)MC@LC@ LCKCnLCKC@ LC@xLCMC0OCpPCnQC@QC@ SC QC#OC@OCQCQC@PC@!QCLRCQCRC)TC@SCLSCSCRC@TCTCRC@aRCTCcTCRCPC@\OC@ NCGMCOC+OCNCNCPC@QCRC@!RC0TCUCSC@aRCPCRCRCWCVCOC@QCOC@aOC SCQCRCVCYXC@ZC.\CZC@RC@MCLC)OCNCRQCTCpUC@JZC[CGZCYC@XCkVCSC@3PCMC@LCLCLCLCMC=LC@8LC@KC@LC@3LCLLC@!MCGNCQCQCRC^RC{RC#QC&OCOC@PC@QC@QCPCQC@QCERCSCSC@xSCSC@xSC@SCTCSC@RCTC@UCSC@QC@OCNC@aMCOC@NC@ NCuOCPCQCQC@SC@UC@UCcTCPCpQC@ORCTC^YCERCPCRC@ OCPCTC@QCTCWCLYCn[C[CVC@\PCMCiMCNCNCYRC@OUCUC@XC@ZCYCfXC@UCiTC@PC.OCMCMCLC@LCLC@xLC@3LCKCKC&LC=LCLCMC{OCGRC@3SC@!SCRCERC@sPCOCOCPCfRC)RCPC^QC@!QCQC@RCSCRC@SCBTCSC@UC;TCRC@!TC@\VCUC@sSCcQCOCiNC@OCLNC@NCGPCGPCQCQC;TC@ VC@VC@SCPC@RCLRCVC@!XC@PCQCPC@NCRCSCRCfWC@!YC@ZC[C+ZC@TCOCiMCMC0OC}OCRC@UC{UCuVCWC.XCVC#SCQCROCnNCMC)MCcMC@8MC@MCLC0LCLC#LC@OLCLCLC=NCOCRC@\SCuSC&SC@QCpPCEOCTPC=QCRC@SC+RC@QC@QCQC@RCGSC@RCRCTCRCSC@TCSC@ TCUC@VCTCRCQCOC@NC@!NC.OCYPCPCQC@RC@aUC@VCUCQCEPCRCSC@JYCUCPCQC@OCpOC@TCkRCiTCXC@YC[C+[C@\WCRC@NC@NCMCNC#PC=SC@UCTCSC@TC@ UCRCPCOCNCMC}MC@MC MCMCLCLCYLCLCLCLCLCMC#OC@sPCSCSCSCcSCWRCnPCOC@PC@aRC@xRC@JTCRCQC0RCQCSCYSCRCQCkSCRCRC@!TCSCGSCTCVCUC@SC@\RCPC@aNCGNC@OCOCQC@QCSCBVC@WCVCPCPCRCUCZCRCiQCiQCNC@OQCSCQCVCYCZC;\CYC@TCQCWOC@\OC@sNCiOCPCRC^TCRCQCQCQC@aPCNCOC@8NCMC@8MC@!MC@LC@sLCMCLC=LC@!MCLCMC@\MCNCOCQC{SCSCTC@SC)RCiPCOC@ QC+TCSC0TCpTC=RCRCGRCRC}SCRCuQCQC;RCPC@RCSCWSCfTCUC5VC@!UCSC@RCWNCNC@OC^PC@JQCRC@OTCVC@JWC@8TCOCQCSCTXCfXC#QCQC@OCNCRCRCnSCLXCZC[Cp[C@WC.SC@PC@PCPCOC@\PCPCQC@QCPCOC@OCcOC5NCLNC}NC@MCuMCYMCLCLCLC}MC@MC@LCMC{MCfMCMC}NC@PCQCTCTC5TCSCYSC@QCPC&RC@3UCTCSCTCSC0SCSC&SC0TC@3SCBQC@xPCQC@PCQCRCRCSC@UCVCVC@UCSCNCNC@OCPC@ QCBRC@aUC@WCXCRC0PCRC&UC@![CUC@QC@3QC#OCuPCSCiQCiUC@YC@[C@\C@OYCUCRCPC@SC@JQC@xPCPCOC PC@OCTNC}NCNCMCMC@MCkMCEMCMCMCMCRMCLCRMCLC@MCMCMCMC@ONC@OC@PCRCTCUC@ TC;TCESC@\QCQCRC@UCWC@OTC{TCSCSC@SCRCGTC@\SC+QC&OCOCOCOC@QC@QCRC.TC=UCVCUCTC@NC@NCTPCQCQC@RCVC+XCVCRPCQC@SC@XC@\ZCRCRCPC@sNCQCQCQC.XC[C[C[CVCRCQCQCuTCQCPC.OCfNCLNC@!NC;MC@MC@aNCMCMCMCcMCMCMCLC@OMCuMC@\MC@!MCLC@MC@OMCMCMCNCOCPCRCTCfUCSCSCSCQCRCTCfVC@8XCEUCuTC@OTC@SC@sSCRCSCRC;QCNCNCOCMCOC@PCiQC@RC0TC;UC@ VCUCNC}OCuPC QCLRCSCuWCXCkTCOCpRC+UCZCYXCRCRC;PCNCQCPC@TC^ZC\C@[CYC#TCQC#QC@RCTCPCPCRNC@aMCMC@LC@3MCpMCMCMCMCMC@MCLCLC@LC@MCMCTMCMC)MC@LC0MCMCMCNC+OCPC@8RCTCUCSCSC0TCuQCRC5UC@VCXCVCTCpTCSCRCkRCRC&RC@PC.NCBMC;NC@xMCMC@OC@ PCQC@OSCTCUC@UC OCBPCPCQCTRC@TCXCXC}QCPCSCWC[CTCRCRCpOCOCBPCTPC;WC@a\C@!]CZC@WCGRCQCWQC@TC@!TCYPC@NCMCMC{LCLCLC;MC^NC@MCMC@\MCLCMCLCLCLMC@MC@LCLC0MCRMCMCnNCNC@\NC@3OCPCRC{TC&UCkTCuSCcTCQC5RCfVC XC@JYCWC@JTC@OTC}SC@RC@aQCQC@PCPC@aNC@LCLC+MCpLCNCNCPC@QC@SCTC@VC@OCPCPC@QCLSCVC@YCWCOCGRCTCZC@!ZCSCSCkQCNCOC+OC@aRCZC^C@J\CkYCTCRCWQCQCUC@!RCOC@MCMCLC@LCLCLCMCpNCNCRNCMC^MC;MCLCLCMC0MCLCLCMC@MCNC{OC=OCNCOCQCfRCLTCTC=TCETC@JTC@QC@RCWCXCEYC@!XCTCSC@SC@sQC PCOC@\OCNCMCGLCLC=LC+LCLCuNCOCEPC@QC{SCUCPC5QC@QC@3RCETC^XCYCESC@OCSCuWCW\C@OWCRC@TC&QC=OCNCROCTC^]C#_C@ZCWCRCQCQCGSCUC@aPCNCMCLC@LCLCLCYMCNCkNC=NC@8NCMCnMC^MCLC@MCMCLCLCMC@MCOC QCPCPC@OCOCPC@!RC@SC TC@8TCTCSCRCSCWCYCWYC@WCfUC@3SCRCPCOC@NCNCMC.MCkLCKC LCKC}LC@MCMCNCPC@8RCTCPC@QCQCSC@UCYCWCPCQC@TCRZC[CTC@8SCTCOCNCcNC^PCXCf_C^C@XCVC@RC{QC@QCTCfTC@NCMC+MC@MCEMCLCLCMCNCNCNCNC@JNCMCMCMCLCMC;MCLMCMCEOCQC@UCSCRCBQCOC@PCQCSC@SC@SC&TC+TCTC@TC&XC@YC;YCVC#UCRC@QCkPC@NCEMCLC@ MCkLC)LCKC^KC@KCKC+MCMC@NCOCPCRC@PCQC;RCSC@WCYC5TCOC@SCVC\CYCiRCETC@RC@xOC@aNC@JNCRC[C5`C]CWCiUCQCLQC0RC@UC=RCNC@MCLC@ MCLCLC#MCcNC@!OC@JOCOCNCGNC NCMCLCLC;MC@!MCNCEOC{QC@OUC@8[C@WCUC@SC0PC@OCPCRCSC@\SCSC&TC@TCkVC XC@XC#XCVC@TCRC^PCOCMCLC+LCLCKCKC@KC0KCKCuKC{LCMCMC@NC{OCQCQC@QCSCUCXC5XC@sQCPC@UCYC\CUC@ RCSCPCNCMCNCBUC@]C_C@sZCWC@aTCQCWQCSC=VC;PCMCpMC@MCMC#MC@LCMCNCOCOC)OC@NCRNCMCMCLC@3MCMCMC@xOCPCTCWC_C@J]CWYC#VC#QCOCOC@ORC&SCRCSC0TCUC@WCYCXC@sWCUCBTCSCkPCMCMC@LC@!LCLCKCKCKC&KC}KCWKCLCMC@MC&NCNCOC@8QCRCSC@VCXC;UC@OCRC@VC{[C{[CSCRCRC@PCMCMC@PCXC@_C^CYC@WC@ SC&QCQCTCUCNCMC.MCMC@MC@3MCBMCNCfOC{OC@OCOC@OCLNCMC@MCuMCBNCiNC;NCGPCQCVC@!YCaCLaC^\CRZCWSCPC@PCcQC SCRRCRCSC@UCXCXCWC@3VC@8UC)TCSC@PCMCLCKC^KCKCKCKCRKCuKC{KC;KCKC@LCMCMC@sNC@NCQCRC@TCWC@WCRCOCSCXC@\CWCQCkRCPCROCMCNCRC#\C_CY\CpXC@VCuQC@8QC@!RCTUCSCLNCcMCMC;NCMCMCMC^OCOCLOC@sPC@OCNCNC=MC.MCMCNCOC@NCPC)RCVCYCW_C`C]C]C@WC@3QCOC5QCuRC@QCQCSC@UCXCLYCWC@\UC@TC@SCTC@3QC@JMCLCYLCKCKCKCKCLKCKC@KC KCiKCnLCENCMCYNCiNCnRC@TCnVCkXC@UCOCQC^UC{ZCp\C@ TCkQCkQC QCRNCMCOCVC@^C_CZC+YC@UC@PCGRC@SC;UCPCMCMCNCMC@MCMC@3OC.PCPC@OCOC0OCBNCMCMCMC+NC@OC@sOCnOC;QC@RCRWCYCp]C@^C^C_C@[CUCQC@\QCRCLQCPCRCGUC@XCYCVC.UC^TCcSC UCRCMCLCLCKCKCKC@KCKCKC@\KC@3KC#KCLC=MCMC@MCcNCSC@TCBWCWCRC0OC@OSC@WC\C@YCTQCPCPC)PCMCMCQCZC0_C^CZCXCBSC@PCRC@3SCSC^OCMC@MC@NCMCNCTNCOCPC@OC@sPC@OCNCYNC@MC@NCMCNC@xOC5OCOC)QC5TCWCXC@[Cp[C]C^C_CZC VC@QC@RC@xQCBPCQC@xTCXC#XCBUC0UC@JTC{SCRTCSCNC@sLCELCLCKCkKCRKC@KCKC@KC@!KCRKCKCLCGNCuMC@ NCSCUCXCUCOC@aPCUCEZC)]C@OUC5PC@OCPC@3OC@JMCpNCTC\C^C\CZCWCPC{RCRC@SCPCNCMCNCOCYMCfNCOC{PC@xPC&PC{PCiOCNCLNC;NCMC@MC@NCOCNC@OCSCUCWC;XC@3YCYC[C@]CG`C#_C[C@TCRCPC&OCPC0SC@VCWC@OTCTCTCSCSCTC@JOCLC@KC@3LCLCGLCLCKCLLCKCKCKC@sKCKC@MCMC@MCTCWCWCSC OCiRCWC5]C{[CRCOCuOCPCYNCMC@PC@sWCG^CG^C@\CuZCTC@aPCSC@\SC@aRCOC@NCMC@OC@OCMC0OCfPCQC@3PC@JPC@JPCuOC@!OCpNC@JNCMCNCOCNC{NCPC TCVCWCWCXC{XCZC@s\C_C`CE_C@YCTCPC@ OCOC+RCpUCTVC@RC@RC@SCSCSCkTCPCLCLCLC@LCTLCRLC@aLC@LC@JLCLLCKCKCKCLCMCkMCUCWCUCOCOCTC^ZC]CWCOCOCOCOCMCNCkRCZC^C@\]C[CpYCfRCQCSCSC@3QC@OC@NCENCOCNC@sNCPCYQCQCPCnPCOCNC0NCMCNC@MC@NCNC NC@NC@QCTCVCRVC@VCWC@xWCZC@ZC\C^CT_C5\C5WC0RCOC@NCPCTC{UC@RC@QCRCuSCRRCSC@QCMCLCLCLC@LCLCLCLCLCLCLLC@KCpKCKCYMC@MCVCBWCSCNCQCVC]C@\C SCTOCNC+PCpNCMCLOC#UC\C.^C\C[C@aWCQCRCSCWSC5PCNC@sNCNCnOC^NC@NCQCRCQCPCPC@OCNC5MCMCENC5NC@ONCNCMCGOC@8RCUCVCTUCUCVC5XCYCYC@ZC\CY]C@!\CZCUC{QC@sOCOCRCSC@QCfPC@QCQCQCRC@JRCNCLC@MCBMCMCMCYMCMCMCGMC@xLCLCKCKC}LCfMC@WC VCWPC@3OCfTCYC]CXCEPC@NCNC^OCMCNC@!QC^XC^C@x\C@[C@a[CTC@PCBSCSC^RCiOCOC@NCuNCNC@NC@PCRC@ RCEQCPC@ PC@ONCMCLCMCMCMCMCpMC{NCPCcSCVC@UC@\TCRUC@\WCYC[CfYCXC+ZCZCZC[CcXC TC@QCOCfQC^SC@xRCPCOCPCQCQCRCNCMC)MCMC@NCMC@MC+NCNC@!NCTMCLC&LC@sKC@KCLCWC@SCNCPCVC{\CL]CTC@OC@NCRNCNCNC@NC@OSC@[C]C+[C[CYCQC RC@ SC@SCQC@3OCOCNCMC+NCOC@JRCRC{RCLQCPC@OCMCMC@KC@LCMCNC@MC@JNC=PC@QC}TC@!VC;UCiSCTCWC[C@J\CYC@sXC@8XCuXC#XC@YC@ZC@VCTCOC@PC@SCRCQCOC@aPC=PC{QCWRC^OCMC0NC@MCNCNC;NC@NCNCOC^NCMCLCKC&KCKCpVC}PCNC@SC@YC]CEZC#QCMCMCiNCWNC.NCPC@VC@]CY\C[C@\[C}VCQC SCRCSCGPC^OCPCWOCMCNC)QC@RCSCRC&QC=PCNC@MCLCLCLCMC@NCMCuOCRCGTCTC=UCTCSC^UC@XC@\C@]C@[CYCWCWCVCpWCYC@WCWCQC@sQCUCTCTTC@3RC#QCPCiQCRCPCNCOC@NCBOC=PC@OC5OC}OCOCuOCTNCMCLCKCKCSCLOCPCVC=\Cu]C@ VC OCMCLMC@aNCNC@xNCQC@YCR^CZC[CZCSCQCRC@RC@!RCOCPC@PC#OC@NC@3PC@\RCSCSC@QCuPCOC)NC@MCLC+LC5MC@NC=NCNC=QCiUC@UCTCSCSCSCVCZC@\\C^C@\CZC^XCWC{VCUC)XC@VCEYC@OUCRCWCWCWCUCSCQC@3RC TCRRCOCOCOC{OCPC0PCOCPCPCYPCLOCNCLC@KCJC@QCNCRCpYC]CZCQC;NC)MCMCNC@NCcOC#TCE]CY\C[C[C@!XCRC)RCRC@3SC&QCBOCQC@QCOC@OOCQCESCSCRCRQC{OCNCWMC.MCLCLC@sNC5OCNCOC5TC@OWC}UCnRCkRCSCSCcXC=\C@a[C@ ]Cp^C&\C@sYC@aXCRWCUCVC@VCWC@WC5UC@XCZCYCXC@WCTCSCuUC@TC@QCPCQC@PC@ QCYQCPC@ QCQC0QC;PCLOC@!NC@LC^KC@OCOCWVC@![C@3]CWCTOC@MC@ MCBNCNCNCWPC@WCc]CZCu[CZC@VCfQCSCRC=SCOCOCERCPCEOCPCRCSCSC@QCPCGOC MCLCLCKC5MC@OPCOCOC@PCWC.XC@TCPC@xQC@RCnTCZC]CYCn[C@^C.]CZCZCXC@VC@VCBVC@TC@WCVCYC=\CB[C[C@ZCRYC5VCWC=VCiTCSC@RCRC)RC@8RC@PCQCQCiRCQC@PCOCMCKCNCkRCYCc\CZCRCNC@aMCLMCNCYOC@ OCQCLZC[C^YCZCYCTCQC@SCRC0RCNCcPC@JRC@xPCPC@RCSC)TCRCBPC@OCMC}LCLCLCiLC@MC@QCPC@OCnSC^ZC@sXCTCPCPC}RCUCR\C0^CWCXC@]C^]CZC)[CnZC@xXC=WCGVCkSCTCWC@xXCZC^[CG\C@\C@\CpYC{YCRXCUCfVCTCiUC=TC@SC}QCRC^RCRC@RC@PCnPCNCLC#OC@aUC@![C@8\CWC.PCMC@LC@3NCOCOC@\OC@8TC[CXCXC=ZCXCRC=RC@sSCSC@aPCNC@QC@ RC@PCYQC;SCSCSC@PCnOCNCLCLC)MC)MCLCNCQCQCQC@!WC\CXC UCQCPC@OSCRWC@s^C]CVCWCZC\CTZC@a\C\C[CYCXCTCRCVCfWC5YC@JZC@3[C@![C@[C@\CYCLYCLWC@sXCWCWC5WCVC@RCQC@RCRCRSCRCPC.PCMC;QC#XC[CZCTCcNCRMC)MCNC@ OCuOC@!PC@VCYC@VCWC@YC#WCQCSCRC@ RCTOCBOCfRCiQC}PC@sRCnSCSC@sRCOCNC@MCLCLCNC@NCNC&OCkQCQCSC^[C]C@XCiUCRCQCSC+YC@_C;]C^VC@VCXCZC@YCk\C@_Ci_C]C[C{WCSC0WCGVCGVCWCXCXC XC@ZCYCXCWCWCYC@YC ZCYCVC@QCfRC@sRCnSCRCRC+QCiOCRTC{ZC[CTXCQCNC@LC@MCBOCTOC+OC=QCWC#WCTC^WC@ZCVCQCSC@3RCBQCNC@JPCYRCQCYQC#SC@SCRCPCuNCYNCMCLCGNCGOCpOCpOC.OCLQC@QCWCY_C@]CWCUC@SCRCUCZC`C\CiVCYVC@XCXCXCZC#bCcCbC`C\CVC@JYCVC@RCUC+VCUC@8TC^VCWCVCfUCUC@8YCYC\CZC)[C{SCQCfRC@xSCSC@xRCQCPCkWCZCZCUCOCkMC@MCNCROCLOCcOCRCVC@OTCRC=XCGZCTC@ RCRCQCPCNC+QCQCBQCQCSC^RC5QCOC.NC=NC@LCNCOCRPCPCPC@PCPC+SC[CaCE]CRWCUCSC@SCUCL\CpaC[CUCVCZCZC+WC@8XCaC@fCeC5dCpaC@[CZC@UC@OC@QC0RC@JQCOCOCBRCSC@xSC@RC@UCXC@3[C0\C.^CXCQCQCYRC{SC SC=RCTQCGYCZCXCSC@xNC@!MC@JMC@3OCNCNCOCSC@TCPC@RCZCkYCSCRCQCPCOC@xOC@sRCuQC@QC0RCWRCBQCpPC@NCMCMCMC@!OCGPC0QCQCPCPC;QCUC^CTbCk\C5WC@TC{SCSCVC]CbC@[CBVCVC^^C]CUCpTC\CfCfCkeCcCn^CY\CUCNC@KC^NCLCJC{JC&LCnNC@OPC@!PC@ORCRUC@XC[C}]C@^C@3SCQC@ORCRC@SCuRC.RCZCYCVCQC@NC MCGNC@ OCNCNCPCiSCRCNCUC[C@XCkRCQCPC)PCOC@PC@3RC@xQC@8QC@RCQCPC@sOCMCMCuMC@NCOC@3PCPCQCPCQC@RCXC@bCaC[CLVCTCRC@SC@XC^C}bC]CVCWC^bCbCfVCQC@VCG`C@xeCeC@bCn^CZCTCuLC@HC@ICIC@GCFCGCHCKCMCOCQCTSC@XC+[C@aCXCWQCQCRC@SCWSCRC)ZCXCBUCPCGMCEMCNCNCWNCNC@PC@8RCOC@OCGWC}ZCYVC{QCPCPCOCnOCPCRCRCQCTRC)QC}PCNCMC@MC.MC^OC+PCPC.PCQCPCiPCSC]CdC@aC+ZC0VC@SC@RCSCXC@3_C@abCp^C WCWCeC&hCXCiPCOC@WCiaCcC_C@ZC#WCQC#KC@FC@GC@HCGCECWECEC@HC@ JCMCNCOCSCXC^C`CRC@QCuQCuRC@!SC@RCLYC@WCSCcOCkMC}MC@NCNC@NC@ OC@PC@PCfNCQCXCLYCUCPC@PCPCPCOC@xQC@8RCfQCfRC{QC@xPCOC;NCWMCBMCMCiPC#PCcOCOC@8PC@PC@OCVC_C5eC`C{YCUCSCRCRCXC^C@ aCL_CWCVC@fC@slC@3]CQCKCOC@![C}aCi\CUC+RCBOC^JC@HC.HCICJC@!HC@!FC@DCECGC@3JCNCKC@LCTCYCcC5XCQC+QCQCRCSC@XC@8VCRC@aNC=MC@!NC@NCMC@NCOCnPC@OC@8NC@SC@xXC@WC+SCQC@sPCPCPC@OCRC@JRC@QCRC@PC@ PCNC#NCLCMC^NCPC@OCLOC@8OC@8OC@xOCpPC@XC@`CEeC`C@XCUCRCQCRCWC]C^C^C)XCTCbCoCdCVC@ LCICSC^C[CYQC@MC;LCkKCKCKC NC@OCTNC@JC;HCECECFCMC@OICGCMCUCY_C@_CiSCQCcQC@aRC@sSCuXCUCnPCMCfMC@aNCMC@xMC@NCkPCEPC@8NC@OC@\UCWCUCBRCpQC@sPCPCOC@aPC@RCQCuRCRCcPC@aOC@NCLCLC@MC@OC;PCOC@NCNCRNC@NCQC@ZCaCGeCG`CYC@VCQCPCcSCWC#ZC[C@[CWC;QC[C{nClC@s`C@OCuHC@sMCZCkZC@OCJC}KCMCPC@RCSCVCVC@QC@NCJCECCC@KC@JC5CCECOC@XC&dCVC+RC@aQCQC@RC)WC0SC@JOCiMCMC@MC@MC&NC OCEPC@OCMC@ QCuUCnVCUC@RC@sQC@PC@ PCOC@PC@RCQCLSCQCiPCOCMCLCLC+NC@\PCPC@OCNCNCTNCfOC0RC@ \CaC{dC`CRYC+UC^QCGQCSC@UCVCXC@XCBTC@3OCTC@ahCprCkC@TCuIC@JC@UCYC@PC@!JCiLCPCVC&ZC@8[C\C@_CZCUCGRC@KCCC@GCMCBCG@CGCRCi`C@^C5SCQCQC0RCnVC@QC@NC+MCMCTMCRMCNC{OC@sPCNC@NC@sRC@!UCUC@8SC^RC@8QC@xPCcOCOC5RCQCRC#SC)RCOCkNCMCELCYMCNCPCWPCTOCNCNCNC@OPCkTCG]CbC=dC_CYC@TC QCRC;UCfUCSCUCTC}QCMC@ PCu`CRtCsCZCYKCIC@ PCWCRC@KC NCUC]CaCcCcC@eCcC{^C@ZC@aUCHCWEC&OC@xDC=C@C[CLCiLC@8MC#NC@NC@sOC@sNCLCLCMCMC@xNC@NCfQC^SC@PCSCTCSCcTCEUCRUCPCPCMC@MC)OC@OCNC@NC@OC PCPC#QCPC^PCQCTC@WC5VCLSC{SCTC@UC@TCTCVCVC[CUCfOCKC0HC@VCfCnnCWpClCLgCYkCpCqC@ tC@ vC@uCdC@sMCSCbC@JfCfChCjCjC@jC5lCnC@\rC@OuCtC#pCWoC@xiCTMC^;C@J9CGC;EC:CuNCLCLCMCNCNCOCpMC@LCGMCYMCMCNCOCRC@RCPCTC@8TCuTCTCUC@TC@OC@xOC)MCMC@OC0OC@NC.OCPCPC)PC@OCPCPCSCYWCYWC@ TC@3RC^SCVC#WCUCUCVCWC_C^XC@3PC&KC@JC@O[C0lC@sC@rC@ nC@\hCiClCnC&qCtCnvCRoC@OWC@UCGeCiCgC@\hCpiChChCjCBmC@qCctC{uC@qCoC@oCZC@@C9CACKCCkBC#OCAC@OMCMCNCNC@MCLC@LCLC^MCNCOCPCQC@OC5PCSC@ UCTC@OSCUC@PC@aNC@NCMCMCNC@NCNCNCNC@JNCMCENCQC0VCXCBXC^UCUC@UCVC^C_C@_C@`C@_C@cC.`C\CVCSC\CGfC@ iCmCqC;pCmC@xkCfkC@\iC@gCfCiC{pCtC@auCpC@sjCElClCiC@hCeCaC@aCfCiC@slCpCsCGtC@qCpC@ gCLQCACBCcKCiKC0MCkMC@8NCMCLCTLCLCLCMCOCNC@3QC@PC@sNCPC@ SCUCWTCSCWSC@3NCNCBNC@MCGNCNCNCNCNCfNC+NCNC@ONC@TC@YCYC@WCUCUCUC#ZC@_C_C@aCcC@eCkCcC\C@TC@\TCaClC@lCGnCqCGpC+mClCplC@jChCfC}gCnC#sCYuC@sCGnClCilC@jC)hC;fC@\bC`C@xeCgCjCnC@rCtCrC=pClCnYCFC@CCGCOCMCMC#NCMCnLCLC&MC@MC@NC^OC@ PCQCOCNC)QC@aSCTUCSCSC@PCMCNCNC^MC@3NC@MCNCNCiNCMCNCkNC@sPC;YC[CZCXCVCUCUC[C@^C^CidCfC@kCpqC@gC]C@UCVCeC@nCYnCoCqCpCmCklClC@3lC{jC^hCfClCRqC@sCtCqC@ nC=lCEkChC@afCpbC@`CcCfC@3hCkCpCsCtCoCmC_C)MCDC HCfNC@OMCMCMCLC@xLCGMCMCMCkOC}OC@OQCQCNC=NC@PCSCGUC@SCRCNC}NC5NC@8NC@NC@NC=NCMC@ NCpNCMC5NCGOCpTC&[C\C]C@ZCEWCTC@TC@s\C]C@^ChC@hCnC)uC@mC@3cC}ZCZCpgCnCmC@!nCqC@sqCmClCmC@mC}kCjCfC@iC@oCfrC@!tCTrCnCYlC@!kCiC}fC@bC@x`CbCeCRgCiCnCrC@stCqCnCeCETCiFC+JCKC{MCNC@\MCLC{LCLC@MCNCPCiPC@ORC.PCMCNC@JQCTCTCRCYPC@NCNC@8NC@ONCRNC}NCMCMC@!NC@JNC@sNCOCRC{XC)[C^C@`C\CXCTC@xUC@\C^]C`C@lCjCoCwCrCkC@bC@aC.iClCkClCpCpC@mC@lC^mC@JnC@OmCplCBhC@hCimCBqCrCrC@!pC.mCjCiC=gCbC@`CaC{dCWfCgC#lC@!qC@ tC@sC0nCuiCYC@ LC#IC@3MCMCMCLC@LCLCRMCMCPC^PCQCQC@8OCMCYOC@QCpTCTCQCNCNC@3NCNCkNCNCpNC@MCMCNCNCLOCGRC@VC}ZCZC@_C`C@a\C@YC@SCLWC#^CT]CaC=oC@3mCoC@wCWwC@8sClCTiCkCkCiiC#kCoCpC&nClCmCnCmC@lC@3jCfC@kCoC@qC@qC.pC@!nC0kC5jC@JgCcC`C`C@ cC@eCfCGjCoCsC@8tCoCkC@x_CQC@JHC@sOCMCMC@LCLCcMCMCBOCPCPCcRCRQC5NC@MCPCQCTCSCQC^NC@NCkNC@NC@NCNCNCBMCMCGOCGOC+QCVC=ZC@ZC[C^C^CZC@sWC.TC@ZCB_C^CbCoCoCoC@vCxCwCsC@oC^nC@akCgC@8iC}nCpC0nC^mC5mCLnC@nCmC@kC@sfC@hCmCpC@pC#pCnC@kCjCfhC@dCR`C=`CbC^dCfChC@mC@qC.tC@JrCkCdCVCELC.NCMCYMCLCLCLCNC@8PC QCLQC0RC@OCMC@NCPCTRC@sUCuRCOCNC}NCNCOC@\NC^NCMC@OMC@ NCkOCOCTC@YC[CZCZC]C@\C@XCVCVC@aCbCR_C=aCnCqC@oC}sCwC@8yCvC@sCpC;mC@gChC5mC0pC@oCimCmCmCmClClCeC@ gC@lCWoCBoCoCnClC@jCiCReCaC_C;aCbCdC@OgCckC0pC#sCsCmC@8hC[CQCKCMCLC@xLC@8MCMCpOCiQCQCRC@RC.OCLMC@3OC=PCSCTCQCGOC@NCNC}OC OC;NCMCMCLCNC@OCBQCWCZC)ZC[CZCZCZCXC@VC[CRiCgC`CaC@mCisCoCoCuCxCwC@OtCqCnChC@xhC.lCRoCnC.nCmClC;mCElC@kC0fCeCjCmCmCnC@nC@lCjCiCBfC@bC`C`C#bC@cCfCjCnC+rC@sCpC5jC#aC@VCMC@!MCGLC+MCYMCnNC{PCQC RCRCPCMCMCiOC@PC{TCSCPCNCNCNC@ PCNC@MC@MC@OMC&MCNCOC@3SC@!YC@OYCYCZCGWC@YC[C@YCYCaC@8pCjC@aCbC@snC=sCmClCYrC@3wCcvCctC@!rC@8pCjC5hClCnCoCnC5lC{kCkC@kCkCeCcCpiClCTlCmCmC@JlC;kCjCgCcC@`C_C aCbCeChCRmCWqCEsCrC#lCeC#[CSCLCLC@3MCMCOCRC&RCRCRCOCMCNCOCuRCTCYRCPCNCuNCnOCOC@MC}MCMCWMCMCNCpPC@UCYC@sWCYCWC@TC@[C@_C\C]C@hCuC&oC#dCfeC@oCsC=mCjCpCtCpuC@3sCpCpClChCkCmCnC@mCkCGjC@jCiCjCceC@OcC&hC^kCkCkC@lClCjC{jCBhC@dCaC_Ck`CaC@dC@gC@kC5pC@xrCisC@nC@hC@_CkXCLCLC@aMC@NC@QCTRCRC}SCQCNC@MC@xNCPC@SCSC@QC@ PC5OC@ONCEPCBOCMCMCMCEMC@\MCNCBRCVCpWCfVC.YCSCRSC`CcC@ aCcC@snC@xCsChCYiCpCrClCniCmCsC@3sCuqC@oCWoCYlCihC@JkC^mC@mC@lCkCiC#iChC0iCcC)bCfC@!jC@jC@jC lCkCjC@iCiCGeC5cCL`C_C`CbC@OfC@iC@snCqC{sCBqCjCdC5\C@LCBMCMC{OC@JRC@\RCBSC0SCPCfMCMCOC@QCcTCRC}QCOCROCNC@8PC@MC@\MC@MC@\NC@MC@MCPCTCVCUCUCVCPCTCfCTfCWfC@OhCsC@!|C@vC@nC+mCqC#rClC@iCRlCWpCYpCoCnC@mC@OkC@\hCjClClCkCciChC.hCfCfC@3cC5`CLeCBiCjCjCBkC@kCLjCpiC@\iC;eCcC;aC_C`CaC.eChCmCpCrCrCmC@JgC`CLCMCNC@PCRC@RCESC5RCNCiMC=NCPCSC=TCRCPCOCOCOC&OCfMC@MCpNC@NCLMC5NCQCTCkUCTCTCpRCNCWCgC)hC@3lClCcwC|C{yCsC qCqC.qCmC@iC@ jC)lClClClClCYiC@hCkClC@3lCiCThCgC@gCeC@cC@8bCn]CcC@ hC0iCiC@JjCjCRjCiChC{fC)dC@bC#`CL`C@`C@!cCgCkCWoCrC.sCRpCiC@cCMCkMC@aOCERC@\RCRCSCQCMC;MC@NC@QCSCRC)QCOCLPC;OC@OC@ONC@aMCNCNCENC@3MCEOCLRCYSCWSCpRCWRC PCPC[C hCkC@JpCpCTyC|CB{CvC)sCrC&qCTmCiC@gC@hChCBhCiCWjCgChCjCkC.kC@ahC)gCYfCGfCfeC bC@`C[CaCeC.hChChCiC@iCiCgC@gCdC@ cCaC@3`C@\`CaC}eCfiCmCqCsCErC@lCfC^MC.NC@xPC@aRC@RC@RCRCiOCLCMC@PC@RCTCRCPCOC)PCOCTOCLC@NCNC0OC@aNC@MC+RCQC@QC@QC@PC{PC+OC@TC_CgC@mC.sC@sqCpxC{C@zC@xC}tC@ sCpClC@iC+eCdCndCcC@eC5iC@fChCjC.kC@jC}gCYfC@aeCeCeCB`Cn^C@YC)]CcCfC@8gC@gChC&iC@hC@ahCgC&eC@!dC@aCu`C@_C aC.dCgCkCoC@rC@sCoChC.MCNCQCRCpRCRC.QC@NCLC@MCQCTCTCTQCPCRPC@OC@OCTMCLC@NCNCNCMC.OCTC{PCPCOCuOC5PCQC@YC@OaC@ gC)pCsC@pCuC@3yCyCuwC@tCrC@JpClCgCcCaC`C@^C@8aC@\gC@gCciC@ajC{jCiCfCeC@\dCeCdC_C\C@JXCWZCiaCGeC@fCEgC@gC5hC}hCgCgCkfCdC&cC@aC`C`C;cC@xfCjCnCqCrCqCGlCMCOCRC@8RCcRC RC;PCEMCLC&OC@SCTC5SC^PCOCPCWOCMCLCNCLOCOC0OC@!NCWRCTCpOCWOCNCkNCPC#UC]C0bC+hC@ rC rCpmC#qCfvC+xCvCYtC@rC@pC@OkC@eC@xbC^CZC@ZC\C0eCLgCGiC@jC@hChC5eCbC)dC+dC@\dC5^CZCVC=XC_CcCeCWfC@fC@gC@gC@hC@xgC@fC@eCpdCcC`C`C^bC@eChC@kC@oC@qCrC@3oCNC@PCnRCRC@JRC@QC@NCLCLC0QCiTCnTCQCEPCOCPCNCMCnLC@NCOCOCOCnOC@UCcSCNCMCNC@NC@ QC@sYC_CbCiCErCmCfhCkCsCvCuC+tCrC0oC@iC@3dC`C@xYC@TCVCWC bCgChCiC{gCgC@ dC@aCRcCdCcC@\^CXCYUC&WC]CpbCdCeCfCfCfC@gCgCfCfC=eCcC@saC@JaCbCdC;gC@\kCnCqCRrCnqCNCQCfRCTRCQCBQC@ NC{LC@!NCcSCTCTCPC@OC@PCLPCMCLCLC@3OCPC^PC@8PC@QC@XC@aRC)NCfMC@MCOCSC\CYaCcCkC.pC0iCncC@fCkpCtCtCfsCrCmC@gCbC@O^CESC}OCRCTC@^CYfChChCfCffCbCi_C#bC@cCbC^CWCSC@ WC@]C@aCcCRdCdCeCeC@sfCfCfC@fC@eC@dCbCaCaCcCfCfiC@smCoCqC@3rCPC@RCRC0RCQC@PC=MCBLC@!PCTCUCRC@8PCOC}QCOCLCYLCWMC@!PCBQCPCRCUC)XC@QCNCMCNCQC}WC}_CbCeClClCeC@_C@cC@mC@sC@rCrC qClC+fC@OaCYCMCJC0NCQC#ZC@dCGgCfCfCeC@bC^CTaCcC@bC^CVCcRCUC\C_C@bCcCcCGdCdCdC@3fCeCfC@eC;eCcC@aCnaCcC@eChCkCoCpC@qCQCcRC^RC@8RC@RC}OCLC0MCRCTCTCPCNC@OCQC^NC^LC^LCENCPCQCQCVCYXC@WCEQC NC@sMCOC@TC@\[C)aCcC@3hClCiCbC\CcC@lCpCGqCcqCoCjCdC`C@VCpIC)FCBJCNC@!WC5bCeCeCGeC@dCbC@^C@_C0cC{bC@J_C@WCRCUC@3\C_C`CaCbCbC@dC@cCdCeC@!eCfCeCdC@bC@aC@bCdCEgC@3jCmC@oC@qC@RCRCRCYRCRCcNCLC@NCTCTC)SC@OC@NCQCPC@\MCLCLC#OCQC{RCBTCZC@ ZCUCPCBNCiNCQCXC^CEaC=dCiCLmC.iC@8aC]CYcCjCinCBnC@oC)mChCcC@`CYUCHCCC@FCKC#SC_C@cCcCdCWdCcC_C_CbCaC;`C@8YCRCSC[C@8^C_C@J`C@!aC@aCcCbCcCcCBdCLeC@8eC@8eC+cCbCRbCGdC@fC@hCklCnCpCRC@RCRC0SCLQC}MCLC@sQCWTCTC@3QCNC}NC@RCOCuLC@KCWMC@xPC.SCSC{WCB]CYC@TCBPCNCOC@sTC@a\C`C^CcCLkCmCkCaC_C@3cCEjC@kCkCmC@akC@gC@bC`CVCJCDC@ECIC@NC[CaCcCEdC@\dC@ cC`C@ _CaC aC`CZC@sTCRCYC)]C^Ci_C_C`CbC@\bC.bC)cCdCdC=eCieC0dCnbCkbC@cC@xeC hC&kC@JnC@oCSCRCfSCSC@JPCMC@NCkSCRTCfSCOCMC@3PC;RCnNC@LCkLCNCRCSCSCZC{]C@XC@SCOCOCQC@XCL_C@J`CZCWbCmC.pCGnCdC^bCcCiCBgCBhCnjCuiC@seC@bC@`C@XCMCHCGCHCTKC@!XC@_CaCWcCcC0cC@xaCB_C`C_C@`C[CRVCRC@WC+[C@]C^C@^Ck_CG`C@`C`CaCEcC#dCdC@8eCdCbCbCbCeCBgCiClCnCGSCSC@TCSCNC#MC.QCSC=TCQC^NC@MCYQCRQCMC@KCTLCOCRCTCUC[C\C=WC@RCOC@PCuSCc[C_C@s]CEWC@bC0nC^qC^pCgCdCcC@gC{dCdCgCWgC@dCcbC_CZC&PCLCJCICICTC&^C@`CbC@cCbCRaCG_C@_C)^C_C\CVC@QCUCYC\C]C@\Cp^C5`C@_C@_C`C@aCcC}dCdCndCcCbC@sbCudCfChC5kCnCRCSCUC@aRC@sMCOC@RC@SC@3SCOCMC.NCQCuPC&MCKC^MCQC@!SCYTC#VC@\\CZC^VCQC^PCBQCVC\C`CYZC)UC@JcC^nC@3rC@!qClCBgC@!dCeCaCaC@eC5fCkdCaC_C&[CRSCYQC@NC@ LC@aJCRC@\C_CaCTbCaC.aCc_C^C@\C^C5]CWC{RC5TCTXC&ZC{[C[C\C+_CY^C^C@x_C`C@sbC@\cC@dCudC@dC@bC@ObCcCeCgC@jCRmC;SCGUCTCPCENCPCRC@JSCQCNCnMCkOCQCOCKCKCpNC#RCSCSCWC[CYCUCnQC@PC@8RCZC@^C`C{VCUCfCoC@ rC@pCBnCkhCLdC@dC#`Cn^CbC&eCcC`C]C@[CVC@xUCRCNCLCRC@a[C^C`CaC`C_C#_C^Cf[C\C5]CXC@SCRCWC+YCiZCYZC[CB^CY^C]C^C_CaCubCcC dC@cCGcC&bC@OcC0eC{gCiC&lCETC@OVCSC@OCOCQCRCRC^PCMCfMC PCQC@ NC@KCKCNC@RCSCSCfYC[C@JYCUCQCQC@TC@\C`CR_C@TC#[CRkC@oCqC.pCuoC0jC@eC@dCu^C+\C@aC@cCbC_C\C\C YCfXCUC@QC@sOCSC@\ZC@]C@^C_C_Ck_C@s^C ^C@ZCL[C\CXCWTC@RCVC}WC@YCYCfZC\C&^C\Cu]C^CEaCaCbCcCdCcC@cC@bCcdCgChC@jCUC)VC@sQCNCcQC@QC@QCQCNCMCMC;PC@OPCLCLCLC@OC@QCpSCTC@ZCp[C@xYCUCQCQCWC^CbC.^C@WC@3dCoC@qCqC0pCoCjCeCeC]C[C`C@bCbC@^Cu\C\CZCYCWCTCRC@TCcYC[CE]C@^CB_C^C5^C{]C#ZCYC[CYCBUC@JSCUCVCTXCYXCYYC@[C]C\C\CE]C@_CEaCaCpcCcCdC@ cC@bC@cCeC@gC&jC@ WC@TCOC+PCRCQC@8RCPC@\MCMCNCOCOCKCKCfMCEOC&RCQCiWC[C@x[CYCUC0RCRCYC`C@aeC@_C_C@!mC@rCqC@oCmCBoCjC@eC^eC^C^]CG`CGbC@`C^C\C\C@[CZC+YCUCTCUC.XCf[C[C\C@8^C^C.]C]CYC@WCT[C}ZC0VC@8TC@aUCUC@aWC#XC#XCZC@[C\C\C{\Ck^Cf`C{aCbC5cCcCcCbC@cCeC@fC@3iC@JVC;RCNCQC}QC@OQC@8QCOC@LCLCMC+OCLCnKCKCcMCWOCQCQCYC=\C^\C}ZCcUCRC@SC+]CcCkhC eCiC=rC@sCppC@kC@8kC@lCjC@eC@eC`CB_C@`C`C_C]C\C@x\CZC@ZC=YCRWCcVC@UCXCZC[C[C\C\C\C\CYC@WCkZCRZCWC@ UC@xTC{TCcUC@WC;WCXCfZC\C\C@O\CY]C_C#aCaCbCcCbCbCbC@8dC.fC@hC@TCiPC;PCQC)QCPCPCNCLCLC+NCYNCGLCnKC}LCMCOCPCTC@[C\C]CYC@8UC^SC@VC@!_ChCkCmCqC@8sC@srCkCWhC@hC@8kChC@!eCeCbC`C`C@J`Cf_C{]C\C[C#[CYCYC@WC@JWCVCYWCkYCWZCZC[Ci\C.\C0\CYCVCYCYCWC@VC@xTCSCfTCVC@OWCXCYC^[CB\C@O\C]C^C;`CaC@bC@cCbCcbCcbC@\cCeCgCRCOC#QCfQCOCPCOCMCuLCLCWNCLCcKCLCLC{MCEOCkPCWC[C]C^CiYC@8UCTCWYCaCkC)oCsCrC{qCoC@ gCdC@eCgCpfCudCdCncCaCE`C_C^C}\C[C{[C@ZCYCYCcXCLWCVCYWCXCEYCEZCZC[Cp[C@ [CXCVCnYCYC)XCVC@OTCRC+SCiUCVCYWCYC@ZC\C[C0\C]C{_C`C@aCbCbC#bCcbCEcC@ eC@!gCYPC+PCPCTPCOCRPCNC@LC^LCLCMC LC@xKCLCfMC@MCpNCRCYC[C@^C.^CXCVCfVCZC@8cC@kC#rCEuCoC@mC@jC@\bC@bCbCdCbCbC&cCcCaC@`C@_CB^C+\C[C)[CYCYC}YCXC@aWC@VCWCXCXC@YC@ZC@YCZC@xZCXC#WC@sXC@YCTXC@\VC@TCQC0RCYTC+VCVCBXCYC@3[C\C@\C\C@^C_C`C^bCibCfbCfbCTbCcCRfCOCPCPCLOC@OC@3PCMC+LCLC@LC&MCKC.KCLC@LCpMCNCUC@\YC)[C_C]C@XCWCXC]C@eC@hC.rCqC@jC@xiCeC.`C`C@`C`C^C`C@aCbC@3aC&`Cp_C@]C@[C@ZC@ZC@YC@8YC^YC@XCWCWCWCWCiXCYC@YCWYCkZC@YCXCpWCkWC@XC@!XC=VCTCPC@QC}SC@xUCiVC@WC@XCZC[C[C;\C@8]C^C_CkaCbCnaCbC@ bCbC@xeCPCPCOCOCOCOCLC@KC@JLC0MC@3LCKC@KCLC)MC@MCBPCWC@XC\C@`C@\CiZCYCZC]CcC eCkoCjCdC@eC@aC_C0`C@]C\CZC#^C@_C_C`C@s_C^C@]CY[CYCkZCXCXCXCWC#WCVC@3WC@sWC@!XCXC@XCXC@YCYC@XC@WC@aWCXCXC@UCSCpQCQCRCTC@JVCpWCXC@JZCZC@\C[C\C0]C@^C@ aCaC@aC@ aCbC)bCBdCOCOCNC.OCPCENC^LC5LC@aLCYMC@ LCKC@!LCBMCLCMCRCWCWC^C`C@\C5[C=ZCZC]Cf_C+bC@jCcCaCaC_C_C@^C[C@WCiVC[Cf\CB^C^C#^C]CG\CZCGYCYCXCXCXCTWC@VCVCVCWCWC@XC@WC;XCXCXCXCWC@!WC@3WCWCVCSC@3QC@QC@JRC@\TC5VC@VCTXC@OYCZC^[C[C@[C@\\C}]C@_C`C@8aC`CcaC@aC@scCOCNCNC;OCOC@MCLCLCLCLCKCKCLCLC@JMC@NCUC}VC@ YC`C`C]C[C@ZC[C]C@XC_CcC^CE_C_C_Cp`CL\CYCTCTCYCYC[C\C\C\Cn[CYC@YCXC=XCWCVCVC@JVCVCVCVC0WC^WCWC@WCLXC@XCTXCWCVCVCVC@VC@3TCQCTRCYRCSC@TCVC XC@XCfYC[C[CT[C[C\C0^C@a`C`C+`C`CaC@bC0OCENCNCOCNCMC@LCLC@LC.LC@\KC@KCGLCMC@MCOCpUCUC\CaCu_C]C\CL[C@ \C@YCSC]C^C\C@_C@J`CaC;_Ck[C@XCBTCSC@VC5WC&YC&[C[C0[C@xZC@XC5XCXCEWCWCGVCUCUCuUC@aUC@JVC WC&WC#WC;WCWCWCWC@WCLVC@sVCVC@UC@xTCkRCQCRC@RCcTCpVCiWC&XCWYCLZC[C[C@ZCZC\C&_C5`C_C}_C}`CaC@NCNCNCOCMCELCKCnLC0LCKCpKC^KC0LCMC@MCPCUC=VC@O^CaCB_C{\Cn[C[CZCTC@3RC \C@3]C^C@bC;bCbC@O]CfZCkXCTCTCcUCUCWCXCYC.ZCYCYCWCnWCVCVCUC)UC@TC@TC@TC@sUC@ VC@VC@VC@VCVCRWCBWC@VCVCVCUCUCTC@OSCRCnRCRCLSCUC@OWCWCXC@XCZCT[C.ZCLZC[C]C_CR_C@ _C_CaCBMCNCNCNCMC}LCKCiLC=LCiKCiKCKC+LC^MCMC@xQCTCWC`C+`C@^C[C[C@\C.YCLPCTSCW]C;_CpbCeC.dCBbC[CZCRXC@VCUC@TCTC@VC{WC}XCYCXCXCWCVC}VCVCUC@TC@aSCSC@SCTCUCUCYVC@sVC@VC5WCRWC.WCBVCUC@UC)UCTUC@SCRCRCTRC@SCTC@!VC0WCWCXCYCZCfZCGYCZC\C@]C@^C]C@^Cp`C.MC;NCOC@NC@MCKC&LCLCKCKC}KCKCLC@JMC.NC@QCSCBZCp`CE_C@\\CZC@[C@[C@VCfNC@WC@O`CYcCgChCTfCaCf[C@ZC@YCYWC0VCUCTCTUC@VC.WC@WCWCWCWCVCUC.UCTCSCRCSC@ SCRC@SC@TCUC@3VCLVC@VCVC.WCBVCUCUC=UC+UC@SCRCRCYQC@RCSCUC@VC=WCWCWXC{ZC}ZCYCWYC[C@\C]C]C]C@\_CMCRNC@sOC#NCLCKCKCLCKC=KCKCKC&MCMCNCQCSCR\C@_C#]CZCZC@[C@\ZCTTCOC@3^CeC@8hCkCkCigC_C[C@[CYCkXCVC@JUC^TCTCUCVC@3WCVC@VCVCUCTC@sTCSC)SCRC@!RC@aRCcRC@RCSC@!UCUC@VC@VCVC@VCVCUCiUCTUC+UCTCRCRCYQCQCSCTCUCWVC@VC0WCkYCZC5YCXCnZC[C\C@\C\C^CTMCNC@OCMCTLC;LC@LCRLCKC&KC@LC)LC@xMCnNCNC@ QCSC]C@^C[CYCWYCZCYCkRC@xUCBeCjC&lC@nCkCuhC`C@]CT]C@ZCYCiWCUCTCSCkTC@UCGVC@UC@UCYUCTCSC@SCSCRCQC@!QC QC@xQC{QCRC^TC@ UCUCUCVCVCiVC}UC#UC;UCTCTCRCQC+QC@\RCRCSC@UCVC@VCVCWCYC@\YC)XCRYCZC@x[C\CR\Cu]C@MCNCiNCMC@KC@KCnLC@KC@KCEKCGKC@LCMCMCOCOC@TC^C]CZC@WC#YCYCYXC@aRC^C@kCoCnCnC@kChC;bC@^C^^C[CYCWC@VCTC5TCcTCTCUC@UCUCTTCSCRCWRCQC@8QC@JPCEPCOCOC@OC@aQCRCSCUCGUCUC;VC@aVC@UC@\UC@UCTC=SC.RC@QC@8QCQC&RCRCTC5UCUCUCVC^XC)YC5XC^XCYCZC[C\C@\C@8NCNCYNC@LCKCKC@ LCKC@xKCKCKCLLC@MCNCNC@!OCWC_C@a[CfXCVC}YCYC}XC^UCfCpCqCpCmCjCiC@!dC aC_C\CGZC@XCiVCUCcTCTCTC@JTCLTCSC@3SCRCQCPC@PCWPCOC@OCNCNCOCOC;QC@RC@SCTCUCUC{VC@UC@UCTC@TCkSC@3RC@OQCQCQCnQCRC@SCiTC@UCUCUCfWCBXCXC@WCTYCZC@ZCn[C\C@JNCNCMC^LCKC@3LCKCKCuKC@\KC@KCLCMCMC@MC@OCYC^C@xYCVC@WCYC@ZCWCG[CmC@asC^rC@oCkC@jChCdCbC_C ]C.ZC@WC#VCTC TCSCSCSCRC@RC0RC0QCpPCOC@sOCNCiNCMC@MCMCMCBNC;PCPCRCSC@TC)UC@UC@UCEUC@TC@SCRSCRC5QC@8QCPCQCQCRC@OTCTCTUC{UC@VCTWCWC@WC@WCYCTZC@ZC@\[CMCNC;MC+LCKCKCKCKCnKCKC)LCLCMC@ NC@sMC@OQCZC}\C@WCUC ZCkZC@\C@3XCTbCLrCuC.rCnCiChChCdC{bC)_C@\CYCWC@UCTCSC@SCRSCRCRCnQCPCkPCOCpNCBNCMCMC@LC^MC@xLCLCLCMC@OC@sQC@RC@SC@TCGUCBUCTUCYTCTC@RC@RCQC0QC@OQC@xQCQCRC@JSCRTCTCUC@sUC@VCEWCkWCVC@XCLZCiZC@ZCNCMCkLCLC@KC@KCKCGKCpKCYKCWLCMCMC@MC@ NCRC@\[C@ ZCUCVCp\C{\C@O]CuXC@gC@tCtC@!qCYlC}gC.gCgCYdCYaC@]CZCXCWC@OUCSC@SC@RCRCRC&QCLPCuOCGOCNC@MC@JMCLCWLC{LCKCKCKCKCLCTNCiOCQCSCSCTCGUCUC@TC^TCRCTRCQC@JQC}QCQCQCQCRCSCiTC@TCLUC=VCVCVCVCYWC@XCWZC@\ZCMC@MCLCKC@!LC@KC@KC KC@!KCKCpLC@\MC@\MCMC@JOC@TC [CVC@TCZC=_C@a^C\C#YClCuC}sC.oCjC@eC@OeC@dC@ObC^C[CXCWCVCTCSCRCRC@\RC@QCPCiOCNC&NC NCLC{LC@JLCKCKCKCKCKC@!KC@KCLCGNC.PCQCRCSC#TC@TCuTC@SCiSC.RC@ RC@xQCkQCQC@OQCQCiRC@3SCSC)TCTCYUC@VC@JVC@3VCVCXC@\ZCYC@MC@LC@KCKC@!LC@KCKC#KCLKC@KCpLC@sMC@3MCRNC@OC UC&YC@JTCVC^C`C_CZC@ZCnC@tCqCpmCWgC@adC@bC@`C_C[CYC@aWCUCUCSCSC@SCWRC@QCPCOCNC@NCMCMCLC)LC@KCKCKCKCpKC@JC{JC@JC LC5MC@NC@PC@ RCkSC@OTC@aTC@!TC@TCSCnRC@3RC#QCBQCQC=QC#QCQC@RC0SC)TC}TC.UCUC@ VC@UCTUCVCfYC@ZC0MCBLC@LCBLC.LCLCKCKCnKCKCLC@MCMCpOCPC0UCVCYSC@YC@aCBaC@s^CXC\C0pCrC0oC5kCpeC;aC_C@!]CZC@!XCVC5UC@TC@OTC}SCSCLRC&RC.QC@OCNCNCcMC@8MC@LC@OLCKC@\KCKCcKCKCKCKC@\JC@\JC@JCKC@\MCNC@PCRC SCpSCSCSC@aSC)RCQCQCQC{QC@JQCGQCQCRCRC@SC@!TCTCGUCVCUC@UCUC@WC@ZCLCRLCKCKC=LCKC;KCKCKC@KC@LC@LC@MCTPC@8QCUC=TCSC]C@cC`C@]CUC_C=pCpCmC@ iCcC^CZC)XCVC{TCSCTCSCSCLSCRC@\RCuQCPC@3OC@NC@MC@MC0MC@LCLCKCkKCJC@3KC@KC@8KCJCJC@JCJCJCKCMC@NCPCGRCSCSC@RC@SC@8RCQCQC5QC@JQCnQCkQC@!QCRC;RCSC@TCTCWUCVCUCUC@xUCGVCYCLCnLC)LCLCKCKCkKCYKCLCKCLCLC@NCPCQCTCRCTVC`C@dC@_C[C}TCbCnC^mC kCfC^bC\CWCSC5SCERCRC&SCfSCSC&SC{RCQC{QCEPC@8OC@NC}MCLC@LCuLC@xLC@!LC@KCKC@xKC@KC=KCKCJCJC^JC@aJC@xJC@LCMCOCPCQC@sRCRC@xRCQCQCQC@OQC@QCGQCQCcQCQCTRC{RC@SCSCETC+UCVC@xUCiUCUCWCLCLC=LC+LCKCKCKCBKCKCKCfLCRMC@ PCPC#RCSCERCZCbCGdC^CfYCTCGeClCiC@hC}eC^aC ZC@8TCPCRPCuPCRC#SCSC@OSCRC@RC@sRC@QCEPC@NCMCLC@LC@LC@!LCuLCLCnKCKC@ LCKCfKCTKCJCJCIC@IC@xJCJC)LC@MC@OC@PCQC@ RC RCQCkQC.QCQCLQC@\QCQCQCnQCRCRC@ SCSCTCTCUCcVCVCkUC{VCGLCLCLCLCLCBKCkKCKCKCKC}LCNC@PCiQCSCGSCSC+^C@3eC}bC\CVCLUCfChCfC.fCdC`CXCRC@ OC.OCPCRC;SC{SC@SC;SC#SC^RC;QCOCNCMC)MCfLCLC LC@LCKCKCkKC@KC@KC@KC@KCJCJC@ JCcICIC+JCJC&LCMCOCPCQC@QC)QCQC0QCPC#QC@PCYQCQCQCQC@ORCuRCRCSCTCTC#VCUCUC}UC@LCuLC@3LCKC@KCuKC@KC@KC@KC@KC@LCNCPCRCTCRC^VCLbC@fCaCcZCRC@WCffCeCGcCdCdCn`CWCOCNC@8OC)QCRCSCBTCSCSCSC}RC@QCfOC@\NCMCMC@\LCLCKCLCLCKC@KCKCLCLC^KC@KC{JC{JCnICEICICIC@3KCiLC@ NCOCQCPC@PCPCfPCPCPCRQC#QCQC@QC@QCYRCRCRC@SC@SCTCkUC@8VCUCUCTLC@xLC5LC#LCKC@8KC KC@KCKCKCLCnOCQCUCfUCnRC@[C@eCYhC_CnWCfPC@XCdC5bC@`CcC@dC_C@VC+OCMC@xOCRCTCTCTCYTCTCSC@RC@PC}OCNC@MCMC@ LC@KCKCLCKCcLCKCKCLCnLC@KCKC}JC@JC0ICIC@IC}IC@ICJCLC@MCuOC@OC@8PC)PCPC@PC@PCPC&QCpQC@QC@QC@RCBRCRCRC5SCTCBUC@UCBVCVCLC)LCcLCKCKCKCRKCKCKCLLC@!MC@PCRSCWCnTC^TC@`CgCgC[CTCNC=YCaC_C_C@cCfeC@^C.UCnOCNC@PC@SCUCTCUCTC@TCSCRC QC.OCuNCMCLMC LC@KCKCGLCKC=LCKC@JC@KC@ LCfKCJCJCICICICICHCHC@xIC@JCYLCNCNCTOCOCOC PCLPCPCPC@ QCQCQC@QCRCQCRCRCuSCBTC@TCGVCVCLC@LC@!LC@LCKC@KC@xKC{KC@KC@3LCMCPC@3VCcXCRCYYCucCiCfeCYCRCuLCWCW^C]C`C@eC&eCf]CTCOC)PCRC^UCiVCRVCVCUC.UCSCRCPCWOCNC@MC@MCLC@KCKCKCLC@OLCKC@JC@KCKC@8KC&KCJCiJCIC@JC@ICHCGCHC^ICJCBLCMCTNCOCOCOCOCPCPC@sPC&QCcQC@sQCQC@QC}RCRC@RCSCTCUCpVCLC;LC@!LCKCiKC@KCKC@8LC@KC^LCOCRCXCVC@OSC^CeC}jCbC@WC^OC=JCUC[C]C@bC@agC@dC\CSCPCQCTCBWC XC@xWCVC)VC+UCSCRCOCkOC@sNC NC@MC@LC0LCKC@LC.LC@LCcKCJC5JCJC#KCJCiJCICICJCLJCkICGC&HCLHCIC@JCLCBMCNCOC@NC@OCOCPC@ PCiPC@QC^QC@QC@xQCQCRCRCfSCTCTC.VCRLCKCLCKCKC@KCKCKC@KCEMC)PCUCYCYTCVCbCeC@hC^CUCKCHC^TCYCB_C0fCRhCdC[C@SCQCSCVCXC@!YCXCVCVCUCTCQC PCOCNC@aNCMC@MCKCKCKCLCKCKCJCJC5JCJC;KC@JCJC+JCJC@JJC@OJCRHC&GC5HCHCIC@JCKCMCENCNC OCpOCOC@OCRPC QC^QCQCLQCiQC@aRCRC^RCLSCTTCYUC@aLC@LCLC@KC@KCKCKCKCELCNCGRCWC#XCTSC\C@cC@eC@eC[C@SCHCGC@\RC^YCkcChChC@cC)ZCTSCSC@UCXCZCZCXCXC@VCcUC=SCRQCPCOC)OCNCNCLCLC&LC)LC#LCKC0KCkJCICIC@\JC@JCJC@8JCIC}JCJC@JCIC5GCGCGC@\HCICJCKCMC@MC@NCNCNCOC@OC@PCPCiQCQC@QCQCRCBRCRCSC@TC@LC@KC@\LC@JLC@KC@KC@KCKC@LCOCnTC@XCVCUCfbCbC@eCRbCnYCPC@OECFC@OPC[C@JgCiChC@aCWCfTC@OVC@XC@ZC[CZCkYC@sXC@JWCRUCRCTQC@PCfOCOC@NCMCLCLCLCLCKCKC@ KCJCICJCLJC;JC@8JC@JCTJCJC@JC@JCJCGC@JGC@aGCcGC@8HCICJCKCLCMCENC+NCNCNCOCPCPC@3QC@QC0QCQCpRCnRCSCSCKC{LC5LC#LCKC@xKC@!LC@LC@MCQCVCXC@SC&\CcCnbCdC@O_C+VCTNCDC@JECPC_C@iC jCfC^CVCcWCYC@[Cf\C@\C[CYCcXCVCTCRC@sPCOCOCOC@NCMC@sLCELCpKC@sKCKCKC#KCJC@IC@ICICJCJCiJCYJCpJCJCJC@JC@!ICFC@GCFCGCiHCICJCkLCLCMC0NC@NCOCOC5PCPC@PC)QC@ QCQC@aRC0RCRC5SCKC#LCKC LC@LCLKC@KCLCOC@sSCWCVCRTC@aCcCEcCcC[CTCKCCCDC@RCpcCjC@iCdC@]CWC[C\C]C@\^C]Ci\CWZCXC@OWCTCGRCPCPCTOCOC@OCMCpLCLCYKCpKCJCKC@JCJCICcICICIC;JCJCJCEJC@JC@JC@JC@ICGC;GCFCFCHCHCiICKC=LC@ MCNC@MCNCfOC5PCPC@PC&QCPCQCEQCRC&RCRC^LC0LC+LCLCELCKCKCMCQC&UCWC@8TC@XC@dC@3dCcCaCWCQC&KC@CCGC WCGgCkCEiC}cC@\CZC^C`C_C_C]C@\CZC.YC5VC;TCRCiPCOC@OC@OOCNC@MCLC{LCcLC)KC#KC@JCJC=JCWICICICICJC@JJCJCJCJCJCJCJCHCGC@\GCGCFC HCHC+IC@JCnLCiMCMC@NCNCYOCRPCPCPCQC QCfQC}RCQCRC5LCGLCLCKCKCKCLCNC@RCVCVCSCp^CeCieCcC]CSCEQCJCFC&NC]C+jCflCEiCcC^^C^C)aCbCaC_C^C@\CZCXC@UCSCQCiPCPC5PCOCNC@MCLCLC@LCKCJCKCKC+JCICuHC@HC@ICIC@8JCcJCJC@ICICJC@JCICHCGC5GCGCFCGCnHCIC@JKCLC@3MCMC@aNCYOCPCEPCPCPC@PCPC@aQC@RCRCKCLLC@ LC@KCKCKC^LCOC@3TCfWCcTC@OUCubC=gCeCaC@!XCuQC@PC@ICfLC@WC=dC#mCcmCjC)dC`CaCbCbCaCT`C;_C\CZC@aXCTUCRC@QC0PC@OC@OPCOCuNCMCYMCLCMCBLCYKC@OKC@JC@3JCuIC{HCHCICICJCICnJC@ICIC@aJC@\JCJC@aHC@aHCGC@GCGC@GCGC@HCJC@ LCLCYMCMC@NCOC@OCPCPCPCPCPCQCQC@3LCnLCKCKCKCLC@MCQC&UCUC5SCpYCfC5gCcC@x]C{SCQC@NCJCUCaC@xjCoCnCjC@JeCLbC5bCcCbC@8bC`C^C^\CYCEWC@OTCTRCPCRPCiPCPC@OCOCMC@xMC@!MC@LCLC@!LCLC+KCJCJCHC@3IC@JIC@IC@IC JCICICICICIC@OJCICHCEHCGHC#GC;GCGCHC ICWKC@3LCLC@MCNCiOCOCOC)PC@PC@PCPCQC@QCLLC@JLC.LC@KC@ LC0LC}NC5RCUC0UCRC@]C@fCpdC@8`C@XCQCQCMC@ OC`C&jCpCirCpCBkCeC@cC@xcC@JdCbCaCi`CR^CR[CYC@VCBSC^QCQC.PCPC@ QCPCBOCMCiMCLC@MCLCLCLCpKCnJCIC@ICHCfIC@ICHC@IC.IC@IC#ICICICICkJCHC@HC@xHCiGCGCFCGC@HC@aJCfKCnLC&MCMCNC@OCLPCOC@OC}PC@sPCPCQCLCLCKCLCKCLC@3PCSC WCpTCTCbC@eC`C\C@VCRCQC@MCTCjC@8qCtC@sCkpCkC@fC@dC@cCdCbCTaC_C@x]CfZCWC@TCkRCPCPC)PCiQCYQCLPC)OC;NCMC@8MCMCLMCLC.LCKC&KCICICIC@IC ICLIC@OIC=ICIC@ICICfJCICfJCTICIC@sHC@HC&GCFCFC}GC@HC KCLCLCMCNCNCPC}OC@OC@OCWPC@PC@\QCGLCLCKCKCLC@NCPCTC;WCSC@aWCcC@ aCZCZC@xVC@SCQC{LC@\CrCuCuCtCpC@ mCThCBeCndC@\cC@ObC`C^C&\CXC@UCSCQCPCPCPCPCQC@PCNC@xNC@MCuMC@3MC^MCLC.LCkKC@KCRJCIC@\IC@HCIC5ICHCfICnIC@ICnICRJCIC@OJCICHCYIC@aHC@GC@FCFCFC@!HC@ICKCLCMC)NCnNCOCROC@OCOC@PCPC.QC@JLCLCLCBLCnLCNCQC@VC@WC5SC\CbCf[CXC+[CuWCUCPC@!NC5hCTwCwCvCuC@OqCnCRiCBeCcC@bCaC_C+]CYCVCRSCQCQCGPCPC@PCQCQC@!PCOCNC@MC@MC^MC@8MC@ MCLCKC;KCiJCJC@IC IC@HC@8ICiHCHCEIC5ICICIC}ICICIC.IC@ICHCGC@FCFCFC@GCHCJCRKC@LCMCNC@NC)OC@3OC@sOCOCPC{PCLCKCLCiLCMCOC{SCnYCfVC&UCu_C^CkUCXC@8]CWYCXCGNCLSCnqC@xC@wC wCsC@xqCnnC@xiCcCcC@\bCf`C^CY[C@sWC@SCQCQCPCPCTPC@PCQCQCPC;OC@NCNCNCNCMCMCiLCKCuKC@JCRJCEIC@HC@sHCHC@HCHCIC0IC+IC=ICcIC@OIC@ICHCIC@IC@HCGCnFCRFC@xFCGCWICJCKC=MCMC@NCNCOCOCOCOC.PCKCKCKC@LCLNCiQC0VC;ZCLVCXCn`CTYC@RC[CE_C[CfXCuKCk]C@svCcxC@3wC@OvCEsC@qCnC{hCncCcC@\aC^C0\C@XCLTC@QCPCPCPCPCPCQCGRCQCnPC@OCOCkOCROCNC@NC+MC@LC@OKC@KCJCcJCICICHC@HC@aHC@8HCHCHCHC@8IC5ICuIC@IC#ICHCWICHCGCGC@aFC@ECFC@HC@ JCKCLCTMCMC5NCNC)OCGOCOCOC@\LCKC)LC=MC{OCSC+ZCZC@xWC\CT^CTC@8SC^C_C@s^CSC&LC)gCwCwC@vCtC@xqCpCmCfCbCGcC_C@\C+YCEUC^QC@OCPCPCPCPCTQC@ RC@QCQC@PC@xPC@OC@OCEOCOCMCGMCWLCKC@KC}JCICIC@HC@HC@HCGCGCHCuHCHCTICHC}IC@ICIC@HC@HCHCGCWGC)FC&FC.FC@JGC)ICJCKCMCMC&NCpNCNC@!OC@ OCPCLC&LCLC@\NCQCYVC.]CG[CLZC_C^ZCPC5VCbC`C]CMCPC@ nCxCvCYvC}rC@oCoClCeC+cCWbC@^CGZCVC@QC@\OCNCPCPCPC@8QC@QCRC0RC5RCPCpPC@PCOCOCfNCNC)MCKC@JCJCuJC@aJCICICYHCGHCLGC@GCGCBHCHC{HCHC@xHC ICHCHCICHCLHC@GCFCGFCFCFCcHC.JC{KCLCLC@MCfNC{NCOCEOCYOCLC@LC MC@OC+SC}ZC_C\CB]C@!_CUCPCRZC^cC+aC@VCICWCitCxC.vC@OuCoCnCoC@akCeC@\cC`C\CXC@OSC}OCMCOC+PCPCPC=QCQCGRC@RCRCQCPCPCBPCOCBNCMCLCTLCKC KC@xJCICICHC@sHC@!HCfGC+GCYGCHCGCHC@HCHCHCHCICHC@\IC}HCGCLGC@!FCEC@3FCGC^IC.JCLCLCcMCMCNCNCiNCOCBLCLC^NCQCVC^C;aC _C@_C\CnSCQC]CbC^C@OCIC@x`CwCxC=vC{sC@OnCfnCWmC@iC.eCbC_C0[CVCWPCMC@MC.OCTPCPCPCQC@8RCRCRCRCQCQCBPCPCNC@NCMC+MC=LC@KCLCJCICICIC@\HC@GCRGC}GCGC@GCGCGC@HCHC=HCHCkHCpHCIC@HC;HC@GC@FC@FC@FCFC5HCICnKC.LC@!MC=MCMCNC}NCNCYLCMCOCTTCZC@bC=bCEaC`CZC@RCUC@_CaCEYCKCLClC@syC@swCuC@sqC+nCmCkChC@JdC5bC=_C@aZC@SC@NC@!LC}MCOCPC.QCQCRRCfRCpSC@3SCRCRC@PC@\PCOCNCNC@NCMCLC{LC^LC@8KCICEICHC5HC HCGCGCGC@GC@HCGCGCHCHC.HCEHC@JHCuHCHC=HC@xGC@JGCBFC@ECFC{GC@IC@\JC@LCKCMC}MCYNCTNCLNCLC@NC@ORCXCY_CdC@scCLbC_C=XCkSC@VC@_C_C@8TCJCVC@ uCyCwCTtCkpC@mClCpjCgCcCaC@_CYC@xRC@sMCELC@MCOCPC@RC@aRC@!RC@JRCSCRCRCQCQCWPCOCNCMCNC=NC@MCMCMC@JCIC@ICHCHCGHCGC)GCWGC@GCGCiGC{GC#HCHCHCHC0HCpHC@HC@HCpHC@GCFCECECFC.HCICnKC^LC{LC@ MC{MC@MCuNCMCWPCUC@J[C@bCeCndCaCY]CWCcTCXC_C^CQCLCicCxCTxCWvCnsCoC#mCjCgCfCbCaC_C0YCQCLCLC@\NC{OC^QC@sRC^RCRCRCRCRCRC@RCQCPC@OCNCMC@NCOC@MCMCLCJC ICHCICWHC.HC@HC GC)GCGCGC@OGCuGCGC HC@GCGCGCWHCHC@HCHCGC@JGCTFC;FC@ECGCHCJCKC^LCGMC@sMCMCYNCNCkSCkYC@ _C#fCGfC dC@_C[CWCUCYC@`C[C@PCQCmCxC;vC#uCqC)nCjCgCfC@8dCaC@JbC@O`CRXCPCLCEMCNCOCQCRCRCfRC SC.SCRCRCRCYRCQCOCOCWNCNCNCMC@!MC@LC KCHCIC@sHC@3HC@HCGCGCGCGCGCGC@GC+GCHCGCpGCGC@ HCRHCHCHCGC}GCFCECECFC@sHC0JCKC=LC@LC;MC@\MC@JNC@aQCWC;\CcC@fCfCbC@^C)[CVC}UC@[C@ aCYCRCYCsC#wCtC+sCoCjCgCdCfcC@bC@aC@bC{`C+WCPCLMCMCNCPC&RCRCRCRC SC@RC@ SC;SC+SCRC.QCPCOCWNCOCNCMCLCLC@aKCkICHCIC@sHC@HC;HCGC@\GC GCHCGCGCGCWGCGCGCGC@GCTHC=HCHCGCGC@GCFCEC@sFC@GC@3IC@8KCKC@JLCLC@MCMCTCZC_C@ fChC5eC.`C]CBZCUC WC^CR`C@XC@TC=bC vCitCrC@pCkCeC@bCTaCWaC`CaCdC_C0VC@OC@OMC@NCOCWQCRCRCfSCRC@8SC@RC^SC@SCTCESCQCPCOC.OCOCNCiMCRLCLC@KCICIC@HC@8HC@OHC)HCGC^GCFC@aGCpGCGCYGC0GC@sGCuGC@xGCGCGCGC@HC@!HCWGC@ GCGFCFCEC GC@HCfJCKCKCLC@JMCTMC5YC@]C@cChC@gC@cC_C@O]C.YC@UC+YC@ aC_C0ZCuWC&iC@OuC@3qC@aoC=lC@ fC)`C._C_C_CaCcCeC]C@\UC@OC@xMCNC@JPCRC@RCSCSCRC@RCRCSCLTC}TCSCkRCPCPCOCOC+OCMC&LC@JLCKCiJCHCHCLHCcHCRHCGCFC=FC5GCpGCWGCGC0GCpGCGCFC;GCYGCGC@GCGCTGC@FCFCFC@ECFC5HCICKCKCKCLCMC\C+`C+fCgC.gC#bC+_C[CWC.WCk\C=bC#_C\C@x[C@nCrC@JnC)kCgC_C\CY]C^Ck_C@xbCfC@!fC\CTCBOC@MC@PCBQC@RC@sSCuSC@SC@ SC@3SC@SCTCUC#TCiSC@ORCPCOCOCOCNC@MCLLCLCGLCJC+ICHCGHCGC@GCGCFCECECFCFCFC@GC.GCEGCGC5GCiGCGCGCGCGCFCFC@OFCEC@ECpGCHCJCEKCKCLC@LC^C5cC@xgC&hCeC@`C]C@ZCVC@XC^CfaCcC^C^bCqCmCijC@gCbC^[C+[C}]C]C@O`CndC@3hC@ fC[C@TCNC)NCpPC@!RCSCSCSCSCWSCSC@ TC@TC{UCnTC@sTCSC@QCOC@OC5OC@JNCnMCkLCLCLC0JC@aICHCGCGCYGCFC{FCYECDCEC@ECFCGC@FC#GC=GCGCGGCpGCGC}GC0GCFCFCYFCECECFCHCIC#KC@KC)LCLC`C@eC)hCgCcC_C\CXCWC@ZC0`CcC}fCaCcjCfpC@iC@fCdC{^CYC[CY]C]CaCfC^jCdCW\CTCNCOC@ QCRC@SCTCGTC@\TCSCTCRTC=UCEUC@JUCLUC@SC@QCcPC@OCNCiMC@LC@LCMCLC#JC@ICpHC@FCFC@FCFC@EC@DCCCECDC)FCFCGCBGC@GC@3GC;GC;GC^GCEGCFC@GCFC5FCEC@ECBFCGCEIC}JCfKCKC@aLCcCigC@!hCfC@bCk^CY\C)XC}XC{\CcaC@gCWiC+gC@8oCjC@xeC{dCbCi[C{ZC\Ci]C_C.dChCWjCdC#]CTCOCOCQC@RCSCTCTCTCTCTC@TCUCUCVC@UCETCQC@!PCOCRNCfMC@ MC0MCLCLC@ICkHCHC@FC@EC}ECDC@sDC@ODC#CC@sCCDCDCECGCFC@FC0GC@xGC@FCGCGC@FCFCFC^FCECECECGCHCIC;KCKCKCfC@hC@ hCkeC_C]C[CWC@YC@J]CcC@kCLlC.lCmCWcCcCcCaCTZC@[C]C&^C@aC;fCiCjC@!eC@]C;UC{OCPCRC5SCTCTC)UCUCTCTCTC@ VCVC&WCYVC.TC@sQC@sPC@OC&NCuNCMCLCLC)LC@\JCHCGCGFCuEC}DCYCC@aBCBC@BC^BC.CCYCCiECRFCFCEFCFC@!GCFCEGCGCuFCFC@xFC@ECECECECkFCHCIC@JCfKCKC@fC.hCgCbC@^C]CZCWCYC^CfClC#oC@\nC@eCW_CBdCeC_C@YC[C.]C_C@ dC}hC@jC@iCeC}^CpTCPC=QCSCSCTC.UCGUC@UC@TCnUC;UCVC@WCWCLVC@TC&QC{PC@OCNC&OCNC@3MCLCLC@JCIC GCECRECCCBC@C@s@C.AC=AC@AC@ACCC@3ECFC@!FCECiGC=GC@!GC@GCFC@FCFC@OFCEC^EC0EC@ECGC@HC@xJC@JC;KC@gCEhC@seC`Cu^C@]CYCEXCYCY`CgCnC@nCWiCZC_CfCeCn]C@ ZC\C^C@bCfC=iCkC@jCfC&_CnUC@QC=RCSC@UCGUC@UCGUC@3UCGUCUCUCWC=XCWCVC@8TCPC@OQCOC@OCfOC^OC@3NCMC@MC@KCJC@8GCECDC@CCBC@C>C@!?C@?C@C@CACCC@!ECECECnFCFC@aGC^GCFC@FCFCEC@EC^ECECECYFC HCIC@JC&KC@hCgC@xcC@3_C^C@\CXC@WCYC+aC@fCnCjC@8^CfTC@bC@iCeC@[CZC5^C@aCeCgC@jClC@skCgC^CUCQC;SCYTC@!VC@UC0UCTC@3UC@UCBVCWC@8XC;YCYXC@xVC@SCQCRCPCPC@OCOCOCNCMC5LCJC@sHC;FCDC0DCLCCAC?C;>C^>C@3>CE?Cp?CBCcDC&EC}ECECFCFC5GCFCFCECFCEC@ECEC^ECECGCHC5JC@JChCeC@`C^C^CZCWCVCW[C`CYgCTjC`CPCnUChCkCcdC[C@\C&`CcCfC@iC)lClC&lCgC@ ^CTC@3RCTC@aUCVC{UCTCTC=UCUC@VCiXC}YCYC@8XCUC.TCnSC}SCRCQCOC}OC@OCuNCLNCLCKCHCYFC@xDCCCCC5BC@C?C>C=C=>C=>C@x@C@sCCCC@DCDC FCFC@GCFCFCECECECECECECECFC@JHCuIC@aJC@hC@cC_C_C@]CfYC@VC@!VCp[C@O]CgC@aCUCJC@]C+mClCaC[C5_C@8cC{fChC@JjClClCklCfC\CTCSCTCVCkWCUCBTC@TCTC=VC@WCYC+ZCZCXC@JUC@SCTCSCRCQCPCOCOC#OC@NCMC@KC+IC@FCCCCCCCcBCWAC@C=@C=C=C=C0>CAC;CC@DCDCECFCFC@!GCFC{FCECEECECDCEC@OECiFCEGCHC@IC&fC0aC^C^C\CXCUCUCYC]C@\bCXC=KC}OCgC{pC@jC`C^C@bC@fC@hC@iC@ kC@3lC@\mClCeCZCTCcTCVCWC@JWC0VC@SCRSCTCVCRXCYCZC@OZCWCTC;TC@TC@SCuRC}QCPCOCNCOCNCMCKC@HCEC@\DC@DCCC@AC#AC?CAC0@C@ ?C#>C@=C&?C5BCDC@DC@ ECFC@GCGCFCpFCECcECECLEC@DCDC@ECFC@8HCIC@8dC_C&_C^CYC@UCSC#UCWWC^C}[C@OC@ JC@[C@8oCpC0hC@J_C`C@fC@!iC)jCjC+kCTlC)mC}kC@OdCYCUC=VCcWCXCXC{VCSC@3SCYTC@VC@XC@OZCc[CYCWCTCUC@UCSCRC@\QCPCOCNC@NC OCMC5KCGCDCfDCkDCDC#BC@C@?C@CAC?C>C=C>C@C@BCECDC@ FC0FC5GCFCECECEC.EC.ECDC@DCECFCGC@ICaC@ _C^C[CWC0TCRC^SC@WC\CTC@aLCuSChC5sCnCdC_C.dCpiC@8kC.kC@ jC@!kC^lC@lCjCpcC ZCVCWCTXCZC@ZCWC@8SCQC@8TCVC@XCBZC[CXC^VC{UC@sVCUC@SC@JRC{QC&PCPCOCTOCTOC@MCJCFCDCDC0ECDCBC@Cf>C@>C+ACp?C>C@>C>C?C#AC@CCDCkECECFC@3GCFCECDC#EC@ECuDCWDC+EC@FCFC@3HCu`C@8^C^]CYC@UC@xRCPC5SCBYC@8XC=PCPC@!bCTqCrC kC@`C@`C@8hCRlC@alC@jCiCjC@lC@lCiCbC@[C#YCXC@OZCY[CZCWC@RCQC@!TCVCYC)[CZCTXC@VC@ WCnWCUC@SCSC@OQCPCpPCPCOCOC0NCKCLGCECfFCFC@DCCC@3AC>CL=C@>Cp?C5>C@?C@C>C?CAC@CCWDC@ECTFCFCFCEC5EC@aDCDCDC@DC@ECiEC@sFC@GC^C@]C[CWWCESC QCOCRTCcYCRTCRC\CnCtC@nCdC]CcCkCBnCmCjC@hCjClCkCBjCfcC;]CZCZC\C ]CE\C@!XCRC@QCSC#WCYCu[CZCWCWCXC@XC{VC)TCSCERCPCPCcPC@PC5PC=NC5KCYHCHCIC@HC)FC5DCBCY@C@=C=C@?C>C?CACnAC@C@C@BCCC@DCECFCfFC@!FCEC@\DCDCDC{DC@aDCcEC@FCGCW]C=\CXC&UCQCpOCOCVCWC@SC^ZCjCsCYqCnhC@]C\C@hC)nCoC@lCLiCgCjC@lC@lCjC0dC+^C0\C@]C^C=^C5]CiXC@RCPC@SCWCYC@[CYCWCYCZC@YCEVCTCSC@ SC@QCPCWPCPCRPCnNCKCICJC=LC0KCRHC@ECECCC?CE>C.?C>C?CACYBC@AC?C@aBCBCfDCEC@ECWFCFCEC@aDC^DC@DCDC#DCDCFCFC\CYCVCRCGPCLNCRQCXCUC@XC@fCsC.sCjCp_CWC_CkC@oC@oC lCfgCgC@kCmC@mC@jCeC@O_C^C&`C_CL_C@]CXC@!SCPC@OSCVC@YC[CYCXC}ZCi[C}YCYVCTCTCSC@QCPCOC@PCOCENCKCJCKCRMCTMCGKCHCHCuFCBC@C@C@C?C@ACCC@CC@CRACBCCCDCECYFCfFC@ FC@DC@!DC@DCWDCDC@xDC}EC@OFC[C@WC@TCPC@NC@ NC&UCWCVC`CoCtCkC@`CuVC@TCpcC@nC0qCoCjCeC@gClCnCoCkCdC`CaC@3bC@3bCG`C^C@xYC@SC}QCSCWC@YCZC@YC@XC@ZC@[CXCUC+UCTUCTC@QCEPCOC@OC=OCMC LC@LCLCMC@xNCMCKCJCICFC0DC@BCAC@CkACBCWCCBCR@CBCBCBDC@ECFC@FC@EC@ EC@\CCDC}DC@CC@3DC@DC@3FCXC@VC@RC;PCuMC)OCWCUCZC@OjC{rC@soC@s`C@JUCNCUC^gCWpCqCoC@hCcC@hCmCpCoCkC;dCibC@8dC=dCcCiaC^CZCTC@QCSCVCXCZCYCYCYC5[C@JYCfVCUCVCTCRCPCNC@NC@NCMCKCMC0MC@sMC@ NC^NCMCLCKC@ICGCDC@JBC BCACBC@CC+DC@a@CBCACCCECEC@ECEC.ECDCCC@!DC@3DCCC@!DCGEC.WCGTC@JQCNC@LC+RCVC@UCaCnCioCeC@TCGMCuKC@JYC@kC;qCqCmC=fC{cC+iC@nC.qC@oCjC@cC@cC.fC@3fC5eCbC@_CZCTCERCTC@VCXC@YCYCYC@YC[CZCWC@VCVC@TCQCcPC@NC@NC@ NCLCKCBMCLCLCLCMC;MCLCLCKCJC@ GCBCBC@3BCLBCCCDCBC@BCCCBC+DC@ FCECECECfDC@OCC@CCDC@CCDC+ECUCuRCPCMCNC TCUCkYCgCnlC#iCYCKC.HCYKC]C@slC@pC&pClCbCRbCiCoCqCoC.hCbC0eCgCgCfCdC@`CR[CUCRCTTC@VCWC@XCYCXCGYC[C[CYCkXCkWC@xTCQC@PCOCNCNCMCKCWMCBMCLC@KC@KCTLCLCLC&LC@8LCICDC@BC@AC@OBCCCCC{DCACGDCACYCC;ECECFCkECDC=CCCCGDCCCCCDC@TC@QCOCLCOCTCuTC@^CgC=gC{aCpMCFC@aFCMC@`C@\lC)oCRoCiC@`CkaChCpCrC@JnC@dC@ObCBfC@hCRiChCeCaC@[C@UCSCUCuVCWCLYC#ZCYYC0ZC]CL]C[C;ZCXC@TC@OCTOC@OOC@NCOCPCTMCMCWMC@ LCJCJCJC^KC0KCiKCKCJCFC@!BC BCACCC@DC}DCAC@3DCBCBCiDCECFCECDCCC@JCCCC{CC+CC@JDCfSCRQCkNC@ MCPCSC@VC@`CcCfbCWCEC@EC@3GCPC`CkCumCoCYgC@ \C@^C^hCrCErCjC@aCaChCiCjC+jCBgCcC}\CUCSCUCVC^WCiXC=ZCYCZC]C@O^C]C[CYCfTC@aNCNC;OC^OCQCQC@OCMCEMC@KCJCYIC@IC#JC@ICJCJCJC@sHCCC@ACiACACDC=DC;CCBCCCACCC@3ECEC+ECEC=DC@3CCCC{CCWCCCCRCPCYMC@MC@8QCERCXC@a^C@]C`CYMC@CCECHC SC`ChCmCpCfcCYWC[CgC+sC@JpCfC{_C)cCiiC@xkC@OlCfkC}hCYcC)\CUCSCiUC@aWC^WCXCZCZC[C^C_C^C\C=ZCSC@xMCOC#PCPC=SCTCRC)OCMC@KCJCHCGCHC{HC@\ICkJCICYJCWEC;AC&BC+ACCC=DC@DCAC@xECAC@CC5DCECECDCDCCCCCCCCCCCuRCOCLC{NC@3PCfRCYCZC^\C@ZC@OECCCGC.KCSC`CneC#pCinC]CSCXC@ajC@sC@mCbC@^CdC@\jC=mC=nCkCiC5dC\CEVC@TC@\VCXCWCWCZCL[C@x\C_Ci`Ci_C\CGZC@SCMCuOCQC@3SCTCYUC@aTCPC;MCKC@ICHC^GCcGC@GCGCIC@IC@JCICBC@aAC@xACBC@CCEDCEBCDCCC@BCCCLECEC@!EC@JDCCC@CCCC{CCYCCQC@xMC@LCNCOCSCWCVC#^CRCTBC@EC@JC0MCUC@^CfC@OsCkCWC@PCWC@8nCsCiC_C}_C fCkCnC@nC mC@OjCdC]CfVCYUC&WC@XC5XCXC)[C\C.]CW_CL`C5_C@8]CZCRCNCTQCSCTC@UCUC@UC#RC@MCKCIC@8HCGCECFC@FC@!HCICGJCKCEC@3@CBCACDCTCC@8DCCC0EC@ACCCDCGECEECDC&DC@BCkCC@CC;CCkPC@aLCMCMC)OCSC@JTC}WC^CHCGCCHC@LC@OCuVC+\C@8jC@rC^dCiRC@NC}[CLrC}qC@eCf^C`C)hClC@oCRoCnCjCeC@3]CVC@OUCWCYCXC@XC@xZC{[C{]C@_C0_C^CE]C@YCPCPCSCTC@TCGUC@sUC@TC.SC)NCKCICHC@GCECkEC&EC@FCIC+JCKCYJC=AC@OBCACCC@BCEDCBC&FCBCBCDCECRECfDC@CC@CCBCCCCCTNCELCTLC=MCGPC;RC@RC@\C@8WC;DC@aECYLCPC@3RCWC\C@oC@oC@\CPCOC@bCtCBnCbC]C@bC@iC@anC@pC@ pC@nC=kC.fC]CWCpVCXC#ZCXCWC@YC@[C@J]C^C^C]C\CYC&QC@RC@TCTCYTCSC@SC5TCfSCNCLCICGC@FCECDCDC@JDCGC@OJC@8KCMCCCACBCLCC0CCCCCC@aEC@DCpBCCC@xDC@aEC5ECDCCCBC{CCCC;MCKCKC@sMCOC@PCcTC^CLCCC0ICQCSC@JTC@sXCaCqCiC@OVC@xOCTCfkCrCiC=_C+^CfeCkCoCpCpCoC@lC@fC@]C5WC{VC@YCZCEYC@XCnXCEZC\Cn]C]C@]C@O\CWCpQCcTCTCWTCRCQC.RC.SC@RCiOC@LCJC@3HCGCFCDCnDCYCCECIC@3JC+MCGCkAC@ACCC{CC@OBCRDCDC@OFCBCCCCC@EC@EC@aDCDC#CC@BC5CCELCKCRLCMCNCPC&YCYC@GCEC5MC@UCRUCYVCZCgC@ oC@!`C@RC@JRC@!]C@\pC@nC@JcC@s]CB_C@gC@JnCpCpCpC@nCkCTfCi]CfWCWC^ZC@ZC@XCWCWCLYC@[C@8\C\Ck\CB[C@VC@JRC&UCTCSC0RCPCOC;QCQCOC MCKC@!ICGCGCEC@3DCBC@CCGC JC@KC@KCBCACGCC=DC@BC.DC@8CCFCDCLCCDC@\ECECDCCCCCBC&CCKCKCKCLMCMCLQCp[C}PCEC@GC@RCXC@aVCZCE^CjC@JhC@WC5RC@WCeCpC@xhC]C@x[C@\^C@jC@\pCqCpC@oC@xnC;kCeC\C{WCXC[CZC@sYCWC@!WCWC@OZCc[C\CB\CZCUCESCTC@SCSCQC@aPCOCkOCPCOC@LCKC@JC)HCkHCGCDC@\CCBCiFCICJCMCcEC@BC@sBC#EC@CCCC@CC@ECFCDCDCDCEC=EC@ DCCCcBCBCKC.KCcLCLC5NCTC)XCICEC@KCWCYCXC]CcCgC@_CSC+UC@]CjCkCuaCZCXC^C@8nCqCfqCpCpoCnC@jCdCW[C@WC@aYC\CZCXCpWC@UCWC@YCZC.\C\CZC@OUCSCTCLSCSCQC@PC#PCNC0NCBOC@LCKCEJCRHCkHC@HCECBDCBCpDCHC@JCKCBIC@BCBCDC@DCpBCCCDCFC0ECpDCnDCECDCLDCCCECCBCEKCKC@aLCcLCEOCVCQCFC@\FC@PC@s[CYC\C#aCcdCbC@aXCpSC@YC}cC@skCcfC@[CWC@JUC;aC@qCrC)qCoCoCmCiC@JbCZC@JXC@\ZC+\CZC@XC^VC@OUCVCXC@ZCW\C\CkZC VCTC)SC#RC@RCQCGQC@ QCMCLCMC@!LC)KCJCGCGC=HC)FCDCBCCCFC@JJCcJCKCDCBC;DC@ECBC@CCBCCECFCECDCECDC@JDCCCpCCfBCJC@aKC@8KCLC^QCUC@LCEECHCTUC@O\C[C@aCcC@bC\CTC5WC^CfC@\iCbCYCUC5SCeC^sCrC@pC@oCnClC@8hC@`CYCXC[C@O\CiZCXCpUCTC@8VCuXCZC#]C@]C@ZCVCuUC#SCQCRCQCPCQC}NC@KC@LCLKCJCJCGCYFCGCfFCfECCC@CCEC@IC@!JCKC@GCCCCCFC;DC@\CCDC@3EC@FCECECDCcEC@3DCDCCC@BCBKCKCTKCMC@aRCRCIC@ECKC@OYCY[C@^CpdCcC_CXCiVC[C.cChChC@aC ZC;SC@ UCkCftCrCoCnC5nCkCfC^CYC@YC\C]C@ZC=VCSCRCTCVC@ZCi^C;^CZC@VCUCRCQCRCpQC@aPC@QCTOC@LC&KCJCICJCHCECECFCDCDC@sCC@ECHCfJCTJC^IC@EC@CCFCECCCWDCCCECFCECDCRECDC@DC@DCCC@aKCGKCKCNCRC@NCGC&GC5PC=[C@[C@\bCeC@cC]CXCYC_CeCgChC@bCZCRCYCoC@stCrC@OoCmCmC#jCcC\CiYCYC@8\C@\C{ZC#TCPCkPCWRC=UCZC_C_C@OYCpUC@RC@QC@sQCQCPCOCPCOC)MC@3JCJC&IC=ICICFC=EC@sFC@DC@DCDCRDCFC@IC@aIC;JC@EC@CCCCEC=DCDCDC@EC@EC@!FC@8EC@\ECpECDCEDC@\CCBKCKC@LCnOCTRC@KCGCIC@SCZC]C@JdCeC@aC\CZC]CcCfChCfiCbC@YC@UCB_CfpCtC+rC@nCnC)lC@JhCYaC^\C5YC@3ZC\C]C@3ZC@QC=MC+MCOC;SCfZC`Cc_CVCGQC@OC^PCkPCOC5PC@OC@OCOC@sMCJCiJC@HCIC@IC0GC@DCWECDC.DCDC@\DC@EC)ICICICfFCcEC;CCECDC+DC ECECEECBFCFC&ECfEC@DCRDCCCJCiKCMC@QC@OCICHC@8LCGVC@ZCE`CdC@dC@aC@]CG]CG`CTeC@gCiCiCbC5[C)YC@bC@aqCtCqC@nCmCkkC}eC_C@ZCXCGZC]C]C@YCiOC@IC@8ICLCiRCZC@8`C^CESC0LCGLCRNCOC@MCiNCMCMCNC@LC@KCJCIC@xHCfICYHCDCDCDCCCEC@ECDCHCIC@!ICGC FCCC+DCpEC.DC@ECDC@3ECECFC)ECEC@!ECDC@ DCiKC@KCNC=QCNC&IC@xIC+OCVC[C`CdCdCaC^C#_CcC@!fCgCjC@xhCbC]C\CdCrC uCRqCYnC@mCiCTcC@ ]C#YC@ XCZC]C@]CXCRNCGC=FC@ICLRC[C`C5^C@PCcGC@IC@OMC@MCKCKCJCJCLC@KCuKC#KCJCGHC@IC}HCFCCCDCCCDCFC@3DCFCICHCGC@JEC@DCCCBECDC@ ECECDC@ECFCcEC@!EC@EC@8DCCC)KCLC}OC=PCKC{IC5KCQC)WCi[C`CcCcC.bC^`CWaC5eCfChC@iC@gCTbC_C^C gCrCtCpCknC@lCgC`CZCWC@WC[C@^C ^C@3XCMCDC@!BCGC5SC\C@\`C@x]COCEC@IC@NCENC@JC@ICIC@HCuJC@OJCIC@KCRKC@HCICGCGCDCkDC+DCDCFCECECHC0IC@sHC@8DCnFCDCpDC)ECDCFCDCDCFCFCcECFC}DCDCLC@3MCOC.NCJC@ICLC@QCVCnZC{`CpcCkdCkbCaCfbC@eCgChCiCeCcC@\aC`C@hC@sC@ tCpCmCjC@JeC@]C.XC@VC@VCZC@^C@a^CWCKC@ACk?CkGCUC@^C`C]C0QCHCMC@RCcQCMCJC5IC@HCICIC@HCIC#LCHCGJCGC@HCFCREC.DCEC@FCTGCpFCHC@IC@HC@DCFC@ECCC@FC@8DCGCDCDCECFC EC@EC@ECcDC&LC@sMCiOCLCJC@!KCMC@8RCUCYC `CcCkdCcC@bCdCEgCWhChCkgCRfC5eCcCcC+kC@xtC@xsCoCmC;iCbC+[C@ VC@TC@VCR[C_Cu^C^XC@JCR?C@\=CGCVC&_C.aC{\CTSCLNCBRCWCVCQCLC0JCICHCGCGC@FCKCYIC@3JCHCRHCHC;FCDCiEC}FC;HCkGCkHC0ICHC@\FC@EC@sGCECREC@!ECWEC+FCECDCFCEC@xEC&FCDC@LC@NCYNC#LCJCKC@MCQCSC@xYC_C@sdCpdCcCTcCeCgC@hC@gC@fCkgC@!gCeCeClC+tCrCpoCLlCEhC@3aC@aYCTCSCVC[C@_C^C@8XCHC>CLCLC@OZC{aCZC@aSCSCTC@OWCEYCXC.UC5QCOC@\MC@LC.JCnIC{FCECKCHCHCGCHCLICLIC@ECGCGCHC@ICICuICGCFCFC+IC@GCDC@3FC@JEC@FCECCCGCFCEC@ECMC@MC@KC)KC@KCKC MC@xMCQCZCaCaCbC@aC#aCaCbCdCuhCikCjCpjC^jCfCmCrCqC@nCikC@xfC)_CUC@ RC@RCVC@sZCf_C`C&XCGC=C@CPC@!\CaCVCOC@OQCTCVCUC@JUCuSC^QC@xPC.NCOC@ NCkJCGCDC0KC@JCpHCGCRHC ICICGCWGCHCpHC0ICIC@\KCLGCHCiFCiICGCfEC@\FC@ECFCEC)DCiEC5GCpFCEC0MCELCKC0KC@3KCKCKCMCERC@!]CG_C^`C@O`C@^C@]C@]C aC+gCjC+lCjC@ kCiCGfCLlC&rC@qCnCkCifC_CUCRCRC@WCYC^C`CXCIC>CRDC UC@^C`CRCTLCOCTCVCTCRCTRC5SCSCQCBQCRCiMC@IC@aDC=ICLC@JIC GCYHCHCHCIC^GC@3HCuHC@!ICiIC@8KCcHC;GCFC@HCnHC)GC{EC{FCECFCECDC=GCFC@EC@ MC@KCKC@JC@JCKCLCMCYTCk\Cn\C^C@O]CZCYC@ZCaCjC@ lC@kCjCiCpiC&fCkCqCEqCnC lCfC^CVCSC^SC@JWCEYC]C@_CYCIC?C@!GCWC`C_CfOC@aICLCSC@VC@JUC@RCRC@sUCpVC UCTC}UC@QCEMCEC@GCLCLC@GCGHCHCYHCEIC@GCHCHCHCICKC@!KCFCFC5HC@HCkGCiECFC&FCGC@ FCDC@!FCnGCiFCLCKC#KCJCJC@KC LC@MCEVCcYC@OZCfZCXCUCUCYCfC@lClCukCjCiChCeCjC@!qCqC@3oC@lCgC^CWCTC@TCWC@XCW\C@^C@3ZC@8JC5BC@!JCYC@`C0^C@MCHCLCWSC=UCcUC@SCTCLVC@WCXC=VCWCTCQCGICRFCLJCMCHC@OHCHC@HC5ICGCGCHCHC@ICJC@OLCGCfFCGC5ICGCFC@\ECFCEFCFCDCEC@xGCFCKC@3KCJCJC@JC@KCLCROC@UCcVC@VC}VCTCSCSCk\ClCmClCkCjC@8iCWhC#eCjCoCpCoClCgC_CXCTC&VCWCWC&[C@x\CXC+KCDC@LCZC`C\CKC@GC@!NCRC@OSCuSCTC@TCVCWCXCXC@ WC@OUCTCBNCFC@HC{NCIC@\HCHCICHCHCGC@HC#ICICJCLCJCFC@aGCICGC@OGCECFC;FC@FCcFC0ECGCGC{KC KCJCLJCJCGKCELCPC@\SCSCSCRC@QCQCTC@JcC@soCmCmClC@hCgCgCdChCunCpCcpCmC{hCWaCZCVCcXC@\XC^WCEYCYC@VCLCGCPCZC@^CG[C@IC@OHCQCRCQCiQCTCSCGUCUCXC@WCcVCTCBTC@RCIC@aHCLCKC@JHCHCICEICHC@GC=HC@ICICKC@LCLCGCFCICHCFCFC}FCFC@OFCFCDCFCWGC@KCJCJCJC@JCKCfMC PCQCQCQC@PC@8PC@QCWCjCoC nC nClCfC;fC;gCdC}gCGlCpC@aqCmCchCaC{[CXCZCYCVC@\WCVC&TC@NCKC@JTCGZCn]C^YC@HC@HCSCTCQCPCRCkRC@3TC^TCWCXC@UCRCBSCTCpMCIC.KC#MCHC=ICICIC.IC@GC@8HC@HC;JCLKCLCMC@JC@FCWHCHCuGC@xFCLFC@GC@sFC@OGC@EC@JFCfGCJCJCJCJCRKCLLCMC.OCnOCOCOCOCkPCRC+^CnCnCnCoC@ajCbC@cCfC@cCcCkiCpC&qCYnCiCkcC}]C=[C\CpZC#WCkUC@\SCQCROCNC@8VC)YCZCWC.HCICfUC@UC@\RCOCQC@sRCTSCSCUC{VC@TCPC;RCSCPC@sKCJCMCLIC@HCIC@JC@ICHC.HCHC@ICWKC MCYNCTLCHC@GCGHCHC0FCFCEGCTFCGCGGC@xEC.GCJCJCJCiKCBKCfLCMC@NCNCOCOC@ OCQCUC&fCBoCnC#pCupCWfC&_CaC@JfC@`C@_C@xfC@oCpC@snCkjCeC_C@^C+_C[CVCRC+PCOC}PC@ QCVCWCXC&UC@GCJCVCXCSC@PCQC@ORCRC.TCSCTC#SCGOCEPCWRC@QCNCfKC@LC@JCICICJC;JCIC@HCHC@IC@JC}LCNCMC=JC+GCuHCHC@FCFC@3GC@GCFCGCEFCFC@JCJCKCKCBLCLCMC#NCNCNC@ OC@OCRCZC@iCnCpoC@!rC@JoCaC@[C@`CcC\C\CdCoCpC@oCkCgCbC`CBaC@\]CVCQCMCMC@\QCRC5VCUCVCSC@ HC&LCTWC@ZCEUCQCQC@SCGSCTCuSCkQCQCNC@NCPC@QCOCRLCLC@JLCICICJCfJCICHC@HCIC@JCLC@JOCNCKC@HC@xHC@GCuGCEC@ GC@\GCpFC@ GC;GCcFCKC@KC^KCKC@xLC@LCMCENCNCNCOC+PCTC^CkC@mCqC@uCkC]CYC`C_C)[CZC=cC0mCpCoCmC@jC@eCLcCbC@]C@VCOC@LC5MC@ORCTCTC@xSCVC#SCICnMCpXC@[CVCQC@xRC+TCSC@TCRCOCOCMC@LCYOCPC#OC0MCKCLCWJCnJCKC@\JCLICHC=ICHC.JCLLCnNC@OCLC0JC.HCHCHCECGCGCFC.GCGCEFCKC}KCKC@OLC@LC@sMCMC@sNCOCWOCNCQCVC@aCTkCoCvCuCgC^[C@sYC`C@ ^C[CYCBbCTlC;rCfqCnoC@8mCiCGfCcC;^C&WCBOCKCMC@!TCUC@aSCSCWCRSC@OKCTOCpYC@!]C@8WCRCLSC+UCTCSC@QCMC@sMCMCKC@MCuOCfOC@LCJCMCJCBKCJC@JCICIC.IC@ ICJCfKCpNCPCpMC@KCHCiICYHCYGCEFCGCGCFCGCEGCKCKCKC}LCRMCMC@JNCNC5OCOCOC)TCXCbCkC}tCzCrC@eCkYCZC@_C&^CZC@ZC@aaClC)tCsCqC@oClCYiC@dC^CTWCYPC@LC@!PC@UC0UC)RCSCYCTC@MCPCYC]C@WCSC@TCVCSC@ RCQC@NCLC@xMCKCNCNCENCMCJCEMC@KC@KC@KCJCICICIC@IC@xICJC@xMC@PC@OC@ LCGJCICIC@HC@JFCGGCGC@FCGC@xGCKCLCcLCLCMC@JNC@JNC@NC@sOC@OCkQC;UCYCcC@nCkyC@zCpCcC@YC]C`C@]CZC@ZC`C@nC@JvCkuCsCrC@aoCkCeC_C@XCRCNCTSCpWCUCQCRTCpZC@UC@OCkPC@\ZC@^CYCUCVCWCSC@PCQC}QC@MC@xMC&MCMCRNC.NCMC@OKCLCLCLC0LCLKC=JCEIC@\IC@!JCICJCKC{OCOC@3LCLCEICIC0IC@ GCnFCGCcGCRGCGCKC@aLCLCGMC@MCNCNCOC=PCOCRC.VC@8ZCdCsC|CyC@pC@aC.\CcC@aC@\CZCZC`C=oC@xCvC@tC@stCqCmCfC0`CZCUC@3RCUC{XC@VCRC@JTCc[CXC5RC@PCYC+_Cf[CWXCWC@3XC@TC@PCRCRUC@QC+NCENCNCNC{NCWNCLCLC#MCLC=LCKC@JJC@IC)ICJCJCICuKC@ OCOCMCfLC@xJCICHC+HC;FC@\HCGC@3GC@GCGLCkLCcMC}MC}NC OC@!OCOCOCQC{TC;VC[CiC@xC}CxC@pCaCTbC.fC@\aCB\CXCXCT_CmCWxCWwCuC@tC@rC@ oCgC`C[CWCUCWC@sXCVCRCBTC.\C@YCSCPC@YCc_C\CZCYCYCBUC@OQC@TC=YC@VCPCPC@PCPCNCNCNC0MC+NCMCLC@OKCTJCIC^IC@JCJCJCJCNC@sOC@NC@KCLCIC@IC@HC@GC@ GCHC&GC@aGCLCLCRMC)NC}NC@OCOCPCOC.RCfUCUC^CnC{CT}CxCuoCcCWiChCcC\CkWC@XC]ClCGwCpvC@atCRtCGsCoCiC;aC^C&[C@YC@JYC@sXC@\VCSCTC[C5YCTCQCRYC@O_C]Cn\CZC@8[CRWC@RCUC@8[C{[C@JVCRCSC RCOCNCPCNCWNCMCLC;KC+JC@IC5ICIC@xJC0KCWKCMC@!OC@3OCMCLC@JC@aJC@IC@xHC@FCYHCGC5GC#LCEMCMCNC+OC=OC@OPC;PCOCSCTUC)WC@ bC tC.}C}CyC oC5hCnCLkCfCn^CYWCpWC\CkC@xuCsCEpCrC@rC@pCiC@bC}aC]C[CZC@XC@VCSCSCWXCVC;VCUC@8[C)_C@]CB]C}\CR[CXCLTC@TC}ZC5^C[CfVCWCTCQC{OCPCOCNC@MC@8MC+KCJC@xICHCICTJC KC@3KC@!MCNCLOCMC@LCKCRJCJC)HC=GCWGCTHCkGC@LCTMCuNC#OCOC@OC.QCuOCQCTCUCYChC@JxC|C@!}C;yCoCpnCrCoC#kC@^CiWC@XC]ClC@sCknC@kCpCcrC@pC@iCdC@cCY`C@]C\CYCXC@xTCSCSC@RCXC;YCi]C _C]C@]C\C[CYCUCGTCXC\C^C@ZCiZC@JXC@SCPCPC@8QCNCWNC@MCKCIC@3IC@HC)IC#JCKCWKC@LCuNC@NCOCLCLCJC{JC@HCHC@FCHCGCfMCNCNCEOCOC@PC@PCOCRC+VCUC@\]CmCzC}C}C@syC@aqCtC@OvC{sCmC@]CZC}\C@`CmCrC@OhC@hCcpCtCqC@akCfgCYdC#bCk_Cn^C[C@JYCYUCRC@8OC@OPC@sZCi\C@\_C_C@8]C\CE\C[CYC@aVCTC@xWC@sZC}]Ck]CG\CYCUC@aRC@PC@\QC@OCcNC)MCLC@JCHC.IC ICJCJCJCkLCNC)OC@NCcMCLCKCJCIC@3HC@JGC@\HC+HCMCNCTOCPCPCPCOCPCTCfWCWC@acC@sCzC@}C}CLyCsC@xC^xC@uClC0_C_C`CdCpCoCYdChCtCvCrC@lCLhCdC@bC#aC;`C^CZCVCRCLC@PC.\C@^C_C_C[C@x[CZCpYCXC^VCVC5XC@XCpZC\C@[CYCVCpSCPCPC0PCLNCLCKC@JCICHCHCWJC@OKC@xJCKCWNC;OC@NCNC@LCLCJCpJCHCGCFC=HCNCfOC@ PCLPC@PCLPCOC@RC@8WC@WC[CkC@JwC{C~C;~CByC@wC{CxCuCiCdC}gCdC+gCsC@mCicC^nCpwCyCtCmCWiC@ fCidCcCbCp`Cu\C@JWC@\SC@MC@TC@_C_C^C^C[C5ZC@\XCWC=WCWVCXCXCWC@VCYC@3YCWCVCSCEPCOCPCMCuLC@KCTKCGJC@HCHCTICKCKC@JC@MC@3OCnOC+OCMC@!LCKCJCICHCFCHC.OC}OC@aPC@aQCRPC@OCPCYTCYC@sXCYbC@rCxC@ }C}C}CyCBzC{CxCsCkClC@lCgC kCuCRmC=eC uCYyC{CvCnC.jC@ gC@OfC)eCcCYbC@3^CXCUCQC=ZCLaC_Cp]C@3\C@8[CcYCWC@OUCUCVCYCBYCWCTC}UCUC@TC{SC@QC@aOCMCBOC@MCcLCKCLCEKCICHCHC@ KCKCfJCWLC@NC@NCNCNC@LCLCWKC@ICGC@GCGCOCOC5QC@xQC)PCOCQCWCE[C[C@lCvCzC@C C}CyCc{C;{C}xCsCrC}sCnC@aiC@oC@swCnChCwCyC@|CRwCoC}jChC@JgC{eCdCcC@`C[C)WCEVC@]CbC`CE]C@YC;ZC@YC@WC=TCSC@sUCkXCYXC@VCnSC@QC{QCWPC@PCNC)MCLC@LCuMC}KCKCKC0LC#JCICBIC#JCLCJCJCMCNCNCNC@MCLCLC5JC@JHCGC@GCWPCPC@RC@QCOC@PCSC[C\CdCtC^yC}C@*C@C{CzC@{CzCyCnvCyC=uC;pCnCuC@3yC@pCmCBxCzC@}C.wC@oCTkC@\hCgCeCeC;eCaC]C@xYC=YC@^CbC@ aC]CXCYC&YCVC=TC#SC@8TC@VC^WCUC@RC)OCNC@LC@LCKCpJCJCJCuMCKCKC.KCKCKCnICBICfICKCKC@JCLCMCNC@NC@NCMC@3MC#KC@HC@GCGC@3PC@RCSCPC@PCQCWC^C._C=nCLyC|CC`8C~C{zC{CG{C{C+|C{{C{CvC@8sCrCBxCzCqCsC@3yC.|C}CuvCoCkChCTgCeCfCfCcC_C@[C[C@^CaCaCL^C@ZCWZC)ZC@WCYTCRCSCVCVC0UC@!SC@MCLCICHCIC@HC@aICJCTLCWLCKCJCcKCLCJC@JCBIC@OKCLCcJCpKC}MC NCfNCOC@MCLCLCWIC+HC@GCPCTCSCLPC@PCSC&]C `C@xfCvC{C#~C`CCW}C@yC{C;|C@}C~C~C@O|CvCRvCivC@xxC{CsCkxC5|C~C}C@tC@oCkChC gC@8fC@fC@fCeCaC^C[C\C@_CaC_C@3[C@\\CG[C^XC@UC@!SCTCkWCWC&UCSCRNC@3LCIC@!GC@xHC@ HCYHCICfJCLCRKCJCJCLCLLCJC5JCJC5LCJCJC@MCLC0NCNCNCLCMCJC{HC5HCSC#VCRC@PCRCXC}bCbCpC@|C}C~C@JC C+{CEyC~C}CC`ƀC@sC@3|CxC@uC0xCxCfzCRxCp{C}~CC@{C0sC@mC kCThCgCGfCfCfCieCbC_C\C[C@a^C@aC`C@J\C\C{]CZC=XC@UCVC@aYCXC@UC@SCOCLC@JCGCIC@OKC=ICICuJCGLCKCIC0ICKCMC^KCJCJC@LC@8LCICLCLCMC@NC@NCMCLCLCHCGCVCLVCRCQCUC@^C@3eChCkwC)~C~C@CC@x~CyC@{C@3C=C %C,CC{CxC5uC@yC@wC@xC|C}CCfCyCupCkCiCkgCfC0fCgCeCeCcC.`C\C@ZC\C`C_C]C@^C_Cn^CE\CYCEZC\C@ZCVC#TCQC@8OCNC@xKC@LCBOC@ LC@ICJC@aKCKC}JCHCICLCpLCKCJCLC@LC@JCKCLCYLC@MCNCNCLC@LC@IC@3HCYC}UC+RCkSCZC@ fCngC.pC|C=C)CnC C|CyCpC`&C0C CbC@3CzC@3vC@tCyC@vCWxCCf~CCT~CvCmCEiC@hCpfC@eCfCgCdCdCcC`C0[C ZC]C@\_C_C_C_C`C`C5aC^C]C@x_C]C}YC@UCSCQC@!QCkPCPC;RC@QCLC@!KC@sLCLLCKCGC@aHCLC0MCWLCKC@KC@MCKC@JC+MC0LC@3MCNCNCLCLCKC5HCYC@TC@RCWC@aC@ jCEkCvCRCC@OCC}C{C{CtCCC5C@!C@\~C@\zCtC0uCyC0vCzC C@~C@CT}CtCBjCkgCcgC;fCfCgCfC@bCbCaCf_CZCBYC0]CR_C_CEaC@xbC@!bCBbC@dCcCaC@bC_Ci\C@XCUC^SC#SC@TCTCTCTCPC@LC@LC@MCfMCICTGCIC@xLCGLCYLCKCMCLCJC@MC LC#LCkMCNCMC&LC@LC@JICXC@TCkUC^ChC.lC@spC{C@CC@JC`C}CyCW~C຀CC]CICC}CxC@sCuC;xCvC|CGC~C@!C|CrChCfC@xgC@fCgChC)eC^C@^C@8^C\CXCXC0]C=_C@`CcCeCYdCcCBfCfCdC@cCaC_C[C@8XCTC@TCVC@WC5WC@3VC@TCOCNC OC&NCMCGC@3HCJC^LCLC@OLCLCMCKC^LC@8MC}KCLC@MCNC=LCLCJC}XCUCZCdCmC@nC@\vC@3~C@!CkCCC@|C{CcCCC C %CC}C@vCrCitC@OvCyC}CCC |C}CrChCfChChChChCWbCZC@YC@YCZC=XCXC]C@^CaCpeChCgCeCfC@fC{eCcC@!bC@`C@]CZCVCTCWCYCXCVCVC@3SC{QCkPCGOC@sPCpKC.HCiICKCLC@JLCLC#MC@LCLC@\MCKCTLCMCMCLCKCBLCWCXC@saCkC&pCrCzC@aC`CC@C~CzC@~CC CICтCށCGC|CtC@rCpCptC@ {Cf~CpCC@C@~CsCjC}hCjCWjCiC@fC@J^CLVCTCTC@ XCWCBYC]C_C@aCfC@jC0jCgCfCeCndCbCaC`C5^C}\C&XC@UCWCZCYCWCWCVCSCQCPC@QC;PCJCHC&JCGLCcLCMCMC MC@LC@aMCLCKC@JMC.MCEMCKCELCXC]ChC@pCrCfwC}CRCC~CLC}C{C@3CCCԂC@ӂC`8C~CzCsC&pCjC sC^|CfC@C"CC}CTuCkC#jCkCkCkiC#dCZCRCPCQC@VCnXCYCE]C^C@saC@JfCkCkCBiCeCcCaC_C`C^_C{]C\C@ ZCWCYXCZCZC)YC)XCBWC@sUC@RCPC@QC@\SCNC+JCcJC@JCLCLC;NC@8MC@LC5MC;NCWKCLCLCpMCKCuKCL[CdC@anCtC=vCi{C}C@ C^CYCGC|C@~CC@C@C`/CڂCC@\~CxCtC0kCfC@JrC}C .C@JCC^C@|C@wC@8lClCkCGkC@hC`C@ WC@OC@3NC@\OC5WC}YCZC]Cf^C0aC@seCjC+kC}iCeC0bCf_C^\C5]CL]C[Ck[C@YC@YCXCZCZCfYC;XCWC@UCRC@3PCuPCBTCRC MC@KCuJC@!MCMC@NCNCMC@MC@ONCWLCLCMCYMC@LC0KC`CpkCrC@vCyCf|C@x}C@ C@sCC~CR}C@C+CڀC`C C |CLC}CwC+sCdCdC@sC&CcC CkCkC }CwC@8lClCjC@jC@eC5]CRTC OC@MCEPC@sWC [C@[C]CR^C`C@adChC@\iChC@dC@8`C.]C@xZC}ZCi[C[CYC@YCuYCYC@ZCRZCcYC}WCWCVCRC@OCNC@RC@sTCPCYMCnLCLC}MC@MCEOC0MC@MC@NCMC+KCnMCfLC@ MC.KCfC0pCvC@yC@|C@!|C}C~CBCCn~C@~C CCCCCЁC^C0|CuxCnCaCdC@ wC .CUCCCi~C}CuC;lC@kC@siChCGcCZC#SCOC&OCQCXC[C\C{]C@]C+`CcCfCfCdCGbC{]CZC@OXC)XC}YC{YCYCEXC@XCYCYC@ZCuXC@WC@aWCUCRC}PC@ NCPCWTC@RC@aOC@MCLCNCMCiOC&NCBMCNCNC=LC@LCLC.MCKClC@3uCyC@ {C|C@{CT}C~CC@xC~C CC`xCCYCCCC.{CwCiCbChC@8{C@ CGC~C~C}C~CrC@JlC@jChC@fC^aC@8YC@JSC@QCRC+TCWC[CT]C@]C0^C_C@sbCdC@!dC@`CL_C=[C@YC{VC+VCVCWCWCWC0XC@YCYCZC@WC0XCVCUCSC@xQC@MC@JNC.SCRCQC@NC)NCpNCnNC&OC@aOCiMCOC@!OCMCpKC@LCLC}LCrCxC&{C|C{C@{C|C@~C CCnC`CBC`OCCC C@CpC@{CuCfCdCoC}CCBCE~C.~CB~C;~CoClCkhC@fCdC_CkYC@TC&SC@VCVCWCZC}]C\CR]C_C;bCcCbC\C [C;XC}WCUC@!UC}TCUCVCVCWC@YCZC@OZC;XCVC@VCnUC@JTC+QC@!OC@MCPCSCRC@ PCOC OC@sOCOCOCMC@NCOC@NC@KCMCTLC&MCvCzC{C|C@yCk{C|C@C9CClCCÀC`C`C@ʂC]CC@8~CL}CqCfCgCvC~CQC:C~C~CCn|CoCpkCfCGeCcC^CEYCcUCuVCZC#ZCXCYCn\C0\C]C@!_CkaC+bC`CZCXCYVC@VCTCTCESCBSCkTCVCWC@YCBZCYCXCBVCWVCTC@ UCQC@PCMCOC{RCQC@aQCPCLPC@ PCOCOC@NC@xNC.PC5OCMC}LCLCLC@yC|C@!|CkyCyC&{CY~C@!C`C4C@jCwC@sCCTC`ƂC`oCC~C|CmCgCfmC{C@CC,CCC'CzCmCiCeCdCdCW_CYC@VC@XC5\C\CYCXCZC0[C\C5^C`CaC_CZC@\VC@TC@TC@UC#TCRCQCQCTCiVCYCYCYC@!YC}VC)VCTC@TCRCQC@OC@MC@QC@3RC0RCPCpQCOCQCOCBPC@NCPC@PCNC@LCMCWLC{C@O|C@a{CxCyC@O{CC`CC}C}C@C:C@C^CC#CCCyCYlCjC uCC,CˀC@C |C'C CC`C#C|C{C@s}C@{C@uCjCfCgCiCiCgCbC@8^C]C=[CTXC@ VCcSC@TCVC@3YCYCYC{ZC\C^C^CT[C@VCYPCENCJCKCOC@\PC@MCROCUCWCVC^YC@aWC@XC@XCUCQC)RCGPC QC@!QC@3PCpPCfOCRCiQC@RCQCQC.RCfRC@QC@xQCEQCNCLCwCvCwCuzC~CC@aC`CCCɂC@CCCÂC`xC CÀC~CbCځCCPC~C}C{zCxCzCxCrC@iC@gCuhCiC@sjC#hC@bC_C@]CZCWCTCQCRC=VCWCXC&YC@YC@[C]C]C@[C@8XC@SC#PC@KCKCOCiQCPC@3PCVC@3ZCVC@XCWXCWCWYC@\XCRC#RC)QC0QC.RCOCQC@NCfQCPC@3RCRC RC}RC@RCQCQCkQCOCMC@vCkwC@xC}CC %CCC C@C@ʂC‚CCC łC:C`C຀CCC ClCC}C;zCvCGuCTvCuC@apCjCRiCiC{jC@3kCgCLcC`C@3]CZCWCSCPCnRCUCXCWCXC@aYC@ZC\C5]C[C@3ZC}WCkTCPCNCPC@RC@8TC;TCLWCT]CXC@sWCXCWC.YCZCUC@QC@RCQC+SCOCQCPC)PC#QC@sQCRCuRCRCLSCRC@\QC=QCQC@NCcvCwC#zC~C@ʀC`C`8C`C nCCׂCC eCC ܂CC`FC}C`C@ʂC`C %CCR{C@ wCrC.qCcrCrCnnCkCjCLjCjC@jCngCcCBaC@x]CZCnVCTRC PC@QCUC@OWC@WCWCWXCYC@![C\C\CT\C@\CYCBWCSC@UC5VC@sWCYC@ ZC^C\CLXC@ XC@JXC@!XC@ ZC@XCSCRC@xQCSC@QCPC@QC@\OCiQCPCLRCRCRCTSCLSCRRC@\QCcQC@OC#wC.xC^|CC>CC C`C ΂CC CC:CCCCCǀCCCCీC@s}C.yCRtC@nC@lCnC=pCmC@lCLlCGkCkC@iCfC dCRbC@]CZC.UC}QCuOC@\RCBUC@JWC@3WCVCVCXC@YC)\C\C@s^C0`C@^C]C5[C@ZC@8ZC@ZC@ ^C@O^C^C@`C[CVC@WC@WCYCYC@TC TCRCkSC)SCOCRC@PCPC@xPC^QC@ORCRC@RC@sSC&SCQC^QC@PC@OwCzC~CԀCC`CCCC˂CbC0C:CC@C@CC`fC#C@CC>CL|C@ wC@sqC@skCpjClCnCmC@!nC@OmC@kCnkChCeCdCbC^C@YCfTCOCOC@OSC@VCWCVC&VC@VCLWC.YC@J[C@]C_CWcCncC@ cC`C_C@J^C _C`CaCG^CaC^CRWCUCVCXCYC@xVCTC@SC@SC@TC@!QCQC5QCPCQCQCQC@8SCSCSCuSCRCQC@ QC@xC@{C{C`oC CCCC˂C@jCKC .CbCGCiC@C#CCCICԀC;C@zC@ uCoCBjCiCjC.mCinCnCnCklCjC)gCdCdCbC_C&ZC^SCNCQCTC@WC@WC@sVCTC.VCVCXC[C@^CaC@eCEfC@ fCdC0bC_C`C`CaC]C _C_CXCSC@TC@aWC@!XCWC@JTC@UC}TC@xTC@OSC@QCQC;QCuQC@ QC{QCWRC@xSCSCTC;SCQCPCyCk}CCׁCCC`CɂC~C=C]C@!CUCǁC@C`/CWC)CiC@C}C@}CyC@sCnC#kC{iCpjC@mCnC;oCnC@lCLjCfC+dCYdC@cC@_CYCERCOC@SCVCYCWCUCTC&VCVCWCZC_CEcC@gCgCgCfC@cC@`C `C_C_C}\C\C_CLZCRRCPCTCWCVCTCUC@JUC.UCYTCRCRCQCQCPC@\QC@8QCGSC+SC@SC@3SCSCPC{CRC@aC@C@ CC`&CC@*CCC ĆC@CC`CCCCCWC{C@wC@JsCBoC@lCcjCjC;nC@nCoCnClCiCfCdCdC^cC_C@YCuQCSCWCkYCZC.XCTCUCVCTWCLXCZC_CdCgChChCgCeC`C^C]C ]C[CZC^]C@ZCRCLCuPCUCVC5SC@TCUCVCTCRTCSC@QCYRCQCuQC}QCuRC0SCSCTC@SCQC+}C CсCూC CC`C |CCځCCCC@SC9CC CYCC'C C=C}C|C@}C}CLC@C.CWC@{C@OrCcC]CeCkC@lCkCkkCjC{jCjCkC;lC@3lC)lC@JlC@3lC@alC@alC@JlC@JkC@\jCjCulCmCnCoC@aoCoCoCjCulCmCRlC@JlC@lC#lC@kC@iC{gC)gCkgChCeC.eCeC fCcdC@eC@fCdCkdCLbCn_C]C@\aCkbCcCGcC@ _C=\CWC@VC;VCYVCWCXCYCYCXC@WCxC@8yC{C`&CC5C,C຀CC@ Cf}C|C}C@ ~CCiCC@C@ yC{mC`C]C}gC@kCkC@kCjCjCnjCjCkClClCElC@OmC@mClClClCkC@jCkCmCnCoCLoC}oC@!pC@!oC@!iCkClCkCkClCkCkC&jCBgCgC@sgChCkfCeCeCffC{eCdC@8gCeC@cCaC`CB]C_CbCcC@cC@aCi]CW[C@ WCWCVC@\WCXCLYCYCYC^XCxC0zC}C CTC@CˀC#C@C@3~C|C@|C|C~CC;CC@}C@vC@gC]C+^CgCkC@akC@jCjCjCiCjCkClCclCmC@OmC@!nCfmC@mC@mClC@kClC@nCoC{pCpC}oC@oC@nC@hCjClC@kCkC{lCkCjCiChC.gCgCGhC=gCGfCBfCfCcfC)eC@gCfgCdCTbC`Ck^C^C@aC0bC@xcCbCf_Ci]CXCiXCVC@WC@XCcYCYCZC@3YC5yC|C C@C]CTCCBCpC}C#|C{C@8}CC@C@C C@O|CrCcCL\C@8_C@gCjC@JjCujCjCjChCiCkCkC@3mC=mC@mC0nC@mCmCmCmCWlCmCYoCpCqC@OpCfnC@nC@nC@xgCijC@kCnkC{kC@kCkCjC5jC@hCgCgC.hC@gCTgCfCfC@gC@xeC^gC@gCfC@bC_C@O_C&_C@s`C+bC@xbCbCGaCL_C[CXC@XCnWC@\XCYC;ZCYCXC@zC@O~CC C@CՀCuCLC@sC^}C@{Cf|C@}CCC`OCC{CnC`C@O[C^C@gCiC@JjCujC@sjCiC0hCiC+kCkC@lCmCGnCpnC@snC^nC@mC@3mC@mCnCoC0qCqC@pCmC&mC@!nCgCiCkCkC;kC@lCTkCpjC@!jC@hCgCgCYhC@ahCRhC@gC@agC@gC@!fCugC@gCfCeCn`C@_C_C`CaCaCbCEbC_C{^CYCGYCXC^XC@YC}ZC@ [C@YC@|CC@C@JC nC C`XC`OC@x~Cf|C{CB|C C CC C@~CxC@jC]C0ZC+_CgCiC;jCjCiC@xhC@8hCiCGkClC@8mCWnC@nCoC@8oC@nC@8nCTnCnCoC@\pC@JqCrCoC@akCElC}mChC@jC@kCkCBkCkCkC@jCjCiCgChC hChChChCchC5hCfC}fCgCgCfCbC_C`C`CuaC@bC@!bC@bC@aC_C\C@8ZCcXCXC=YCZCZC5ZC@~C'CÁC C@C}CCCp}C{C@zC}C+CC`8C@C}CuCgC;[CRXC@_ChCjC.jCjCiC+hC)hCiCjCLlCmCnCioC@pCoCnCknCGnC@nC@spC@qCrCrC@ pCnjCkCpmCjCkClClCplClC@jCjC.jCiC@gC@hC=hChC@hChChCfhCgCfCgCgC@fCeC_CaC`CaC@aCaCbCibC`C_CZCYCXCEYC@JZCZC@8[CCwCC@AC eCCC C|C&{C{C~CC@CQC@OC|CsCYcCXC@aVCuaChCiC{iChC@xiC@hC^hCjCjCkC@mCoCoCEpCpCoCnCnCoCpCqCrCrC)pCjCkClCjCflCpmClClCkCYjC@jC@jC@8jCgChChC@hC&iCLiChCiChC@agCgCgCfCgC5bC`C@JaCaCbC@JbC@aC@bCaC@J`C@\CuZC@xYCcYC)ZC#[CZC@C`CׁC`ƀC@sC ŀC EC}C|CzC|C=C@C`C+C~C@JzCfpCW_CWCiVC^dCiCBiChC@hCiChChCiCjC@\lCfmCWoCLpCqCqCpCTpCWoC@!pCrC@rCrCqC@pC@alCmCWmCLkClCmCmClCkC@iC@jC{kCjChC@ iCuiCiiC.iCiC@xiC@aiC@!iChCgChC@fCgCeC+aC{aCaCbC@bCaC@OcCbC`C@^C}[CYCYC.ZCZC@a[CCԁCుClCCC@~C|CzC@8{C~CC CC C}CyCflCE[CTCYCeC@hChCgC{hC^iCgCphCijC@ kClCmC@oCqC}qC)rC@qCqCoCpCqC@rC)sCqC@nCimCmC@snCkkC@lCnCmC@smC@kCWjCkC@kC0kChCiCiC@iC@iC@jCiCiCjCGhC@gCLhCgCgC@ hCncCbCbC@!cCncCbCpbCbCaCn`C]CLZCcZC;ZC[Cn[C@C@CCC@C5C}C#|CzC|CE~CCCCC@}CwCgCYC@aTC\C@ fC@hChCfC@ahC@8iC@OgCiCiCYkClCinCEpCqC@!rCrCrCBqCBpC@pCqCsC@sC0qCnCLnCnCnCRkCukC=mC@mC.mC@kCRjCjCBkCjC@hChC@xjCijCiC@jCTiC jC@jCRiChC0hC@gC{gChC@JfC@cC@bCcCRcC&cCbCcCbC&aC^CE[C0ZCZCZC[C`C@CC€CC~C|C{CzC@a}CC@C C@ CC}CfuCdC@JZC}UC^`CffC@hCfCfCgChCfCiCLjC@akClCnC@3qC)rCrC}sC0sC@qCupCqC+rC@tCsC@pC@8nC;oCoC@8nCjCnjC@mC@mClC}kCnjC@jC@jC@jCiCiCjCjC@xjC@JjCjCjCkjCiChC@8hCihChC@ahCgCdCbC@ObCcCcC@bC@ cC@bCaC@a`CT]CZC[C@ZC[CˁCC@sCC C}C@J|CzC@|CB~CWCEC~CC@8C|CrCdCZC@XCbC;fC)fCWeC.eC@ gCgCgC@iCjCjCmCkoCqC@rC@JsC@ tCtCqCqC@qCrCtC}sC@3qCTnC@xoC^oC@lCiCiCnlClCLlC{kCjCjC@jC@jCiCiC}jCjC@jCjC@jCfjCijCjCpiC@hC@hChChC^hCfC&dC@xbCbCcCcC@3cCBcCbCaC^Ck[CY[C@ZC[CCCC}C~C|CG{C@J{CE}C{CCn~C~CLC@~C{CfqC@fCZCi]CncC5eCfdCidCdCfC=gCpiCiCniCjCmC pC{rCsCsCtC@sCqC}qC@qCsC@8tC@asC@qC@JoCoCnCkC+iC{iClC@lClC^kC@!kC)jCjCjCjC5iC jC}jCjCkC@!kCkC@ kC@jCiChC^hChC)iCiCgCGeCcCaCbCbCWcCbC@bCaC=`C\Cf[C[CZC,CCC5C}C5|C@{C|CY~CiC~Cp~CEC{C@~C+zC@qC@fC@[CaCcCbC@cCcC5dCfChCkCjCiC@jCmCpCrC@sCEtCptCisC+rC)rCrC@3tC;tC@sC@qC5pC@soCumC@kC.iChCkC&lCkC@jCjCkjC0jCYjCiCLiC@iC+jCjCjC@jCjC5kC@!kCRjChChC5iC+iC+iChCgCdCkaCWaCTbCWbCbCRbCnaC@aC^C@O[C#\CL[C`CCC~C|Cu{C{C}CBC~C~C~CC~Cc}C.yC@qC@\eC@^CbC.cCaC&cCcCYeCkgCkClC&lCjC)lC@nCpCcsCsCtCtCRsCkqCqC@rC0tC@8tCsCGrCpC5nC@ mC@jCTiChCkCkC@skC@3kC@jCjCiCiC@\iChC@iCiCWjC)jC@xjCjC@ajCjC{jChChCiCiCiC@OiCigCfeC;bCk`C)aCbCaC@aC+aCaC_Ci\C[C\C`CCC@}C{C@{C@|C@~C~C+CCCC~C|C@xCqCbCaC)cCaCaCcCdCLfCiClCmCmClCnCoCYqCsCtC@uCuCsCqCqC@rC@sCtCtC@rCcpClCWkCikCnjCiC@kCkC{kCkCjC@iCiCiC@iChCiCiCciC@JiCiC)jC)jCjC.jCiC{hC@iCjCjCiCphCfCncC@`Cu`C@aaCaC`C`C@\aCaC@\^C\C\C@ӀCqC@8C|C{CB|C&~CC&C@!C@xC~CT~Cu}C@!|CxC@ lCaC@bC@cC`CbCdCTeCfgC@jCmCnCoCoCWpCBpC^rC#tC@uC@xuCpuC@asCqC@pCEqCtCptC#tCrCpCRjChClCujC@iC&kC@kCBkC@jC@jC@iC@iCiCiC@hC@ahChChCfiC@iCjC0jCiC@iCRiChCiC@jCiCiChCGgC@dC;aCi_C)aCaC@J`C`C@`C`C_C5\C@\C nCCp}C{C#|C@|C~C~C.CCCG~C@}C}Ck{C&uCueCcCdCcCpaC^dC@3eC@JeCgCjClCnCoC@pC^qC@qCrCtCuCuCcuCsCqCpC@OqCsCtC+tCurC@oCfCeC#lCkjCiC5jCkCjC}jCTjCiC5iC@hC@OhChChC^hC@OhChChC}iC)iC+iChC@hC;hC@iC)kCjCiC+iCgC;eCnbC`C`CaCW`C^_C_C`C`C]C@[C}C~C|C{C|C}C}C~C@!CCC}C}C@|C zCEmC@ bCdC@3eC@bC@bC@ eC@dC@8fChCYjC#lCBnCoC5qC rC@arCsC@3uCuC@vCvCtCrC@pCTqCsCuCtCrCmCaCaCWkCjCEiC@OjC@jCjCjCYjC@iCfiChCihChC@gCgCThCchC@hCBiChChC@gC;hChC)iCWkC.kCjCiC)iCfCcC@JaC`C@aC`C@ _C^C_C`C&_C=\C C~C{CE|C}C}C~CT~C@CC{~C}C}C{C^uC@dCaC@eC@eC@bCdC@eC}dCeC@gC5iCjClC.nCipCfrCLsCBtC@uCivCvCWvCtC rC@aqCqC@tCtCtCsCjC@^C_CGjCjCiC)jC@jCjC@jC@ jC@iCTiChChC@JgCfCfCpgC=hC{gCiCiC hCigCfCgChCpkCkC@jC0jCjC@hCeC5bC@OaCaC@`C@x_Cn]C@O^C`C5`C\CTC|C@{C|C|C{}C@}C@~C`/CC@8~C}C}CyCkC`CcCpgCeC dCBeC@eCReCfC hC@gCiCkC@\mCioCqC@sCtC@vCvCvC}vCtCurCqC+rC@tCkuC@tCrChC]C`CiC@\kC@iCiCLjCjC0jC@3jC@!jCiiC=iCYhC5gCfC.fCgCgCgC^hCiC#hCfCfC@gC0hC0kClCkCjCjC jCfC@cCaCaC@aC_C\C@\C@x^CR`Cn^CY~C{C{C}C}C|C}C@OCC ~C@O~Ck}C{CtC@ dC@_C@eCWhC@3eC@\eCeC@seC@aeC fCugC@!gChCiC^kCnCqCusCtCvC;wCwC}vCuC@sC0rCrC@tCuCsCqCfC^CGcC@iCkCjC@OjCjCjCjCiC@sjC@jCciChCgCfCfCfCgC@gCphC0iCgC)fCeCfCngC@jClC)lCkC@kC0kC;hCBdCbC0bCbC@`C]C[C@]C_C_C|C{C@|C|C|C{C@}CC^C@}C@}C|C@yC@kC_C@saCYgCgCeCeC}fC@sfC fC@gC@agCfCgChC@jC@nCqC@sC@OuCwCwCwCRvC@uCtCrC@sC@8uC)uC@sCYpC@aeC`CTfCjCkC+kC kC@kC)kCjCjC@JjC@jC@jCRiC@gCfCfCfCigCgC@hCiC@!hCeCeCeCgC@3iClCilCkC@JlCYlC@iCneC@cCbCbCaC]C[C@[C@]C`C{C{C}C|C{C@|C~CC{~Cu~C}C0{C@sCbC_CcChCgC5gCfCgCphChCjC@hCfCffC@3gCiCEnCqC@!tCfvC0wC#xC{wCvC0uCtC@sCsCtCtC{sC oCdCicC{iC@jC@lCkCkC@slClClC@\kCukC&kC;kCjCuhCfCEfC@afCngCgC@gC@JiC@hCfC@eC@OeC gC=hC^kCYlCnlC&lCmC@kCgCcCLcCcCcC^CZCYC\CW_C;{C@|C+|C@|CzC|C~C~Ci~C@~CW|C&xCjC_CfaCfChC@ hC^hChCjCkCkClC@8iCTgCfC@JgC@jCGnCqCtCvCwC&xCwCuCGuCEuC@\tC@tCktC@sCsCTmC@eC@afC@!kC^kC@3lCnlC{lC@lClCnlC@lCkC@kC{kCjC@ iC=gCeC@afCgCgCgC iCLiCfC@eCfeC@OfCWgCjCYlClC)lC@lC@xlCiCRdCcC@adCcCaC@ZC@xXCZC@]C{C|C&|C{C@\zC@}C~C@~C@}C@}CzCqCcC@_CdCEhChC@iC@xjC0lC@mCnCpC0oCkCgC@sfC}hCjCmC rCtC@3wC&xC@xC@wCiuCiuCfuCcuCtC@tCsCrClCgC@aiClClC@lC@amCmC@nC@mC@mC@mClClC.lCkC&jCnhC@OgCnfCRgChCEhChC.iCgCfCWfCfC@agC@\iC;lC;lC@akClClC5jCfC.cCdC#eCbC\CWCXC\C@O|C|C{CyC@a{Ck}C=~C~C~C|C+vCjC@^C`CfC^iCiC#lC@!mCnoC5qCqCrC@pClChC@!gC@iCjCnCqCtCwCxCxC=wC0uC0uCvCuCtC+tCGtC=sClCjC@!lCmCmC.mCnCpnCnCnC@nCmCmCmC@lC@xlC)kC@\iCgC@fCgCgC@ hCuhC@hChCgC@gC@fC)gCfhCnkCkCkClC^lC@kChC@bC@\dCeCeC_CWCVCZC@|C{CzC@JyC|C=}C@8~CR~C}CBzCqC5cC\C@bChC@jCclCoCkpC@xrC.sC@stC@ uCrC@xnCGjCiCiC#kCnCqC@uC@ xCxC#xC#wCtCuCivCuC@tCsCtC;sC@xnC@JmCnCinC;nCmC@nCoC@oCoC5oCmCmCGmCmC@lCkC0jCfhC@fCgC@8hC@!hC@gCLhCfhC)hChC@sgCRgC&hCjClC&kCkClCRjChC@sdC@3cC@fCYfCbCYC)TCRXC@O|C@zC@!yC@8zC|C}C~CB~CG|CuC)jC;^C\C@eC{iC@kC@oCqC)sC@atCtCuC@vCktCLpClC@iCiCjCmCrCvC;xCpxCwCvC@!tC@tCEvCWvCuCtC@tCsC@pCoCoCoCnCioCoCEpC)pCupC@oCknCnC@amCumC#mClCjC=iChCgCRhCgCfCgChCgCGhChCgC+hC@iC@kCjC;jC@kCkC^hCfCbC.eC@3gC5eC\C@SCUC{CzCnxCzC|C@!}CG~C@}C@zCRpCdCZC^CgCjCoC@rCsC+uCuCwC@wCwCpuCqC@ nCRjC@iCjCfnC@\sCvCxC@OxCwC vCsCtC@vCuvCtC#tCtCYtCfrCuqC@pCoCoC@soCpCpC@pCpCpC@oC@nCmCTmClClCjC@iCgCgChCgCfCcfC@gC@OgC)hChChCuhCEiC=kCjC@iC@kC@lCgCgCcC@dC@gC@agC`C@\UCQC{CxCxCc{C|C@}CB~CL|C@OuC+jC`CRYC@scC.iC@lC rCTtC@uC@xvC@vCwC@3xCwCvC@tC@pCkC@iCWkCnCitC@JwCxCwC@vC5uCtC@tCvCvCTuC@stC@tCtCsCrCpCpoC.oC+pCpCpCqC@pCfpCWoC@snCmC@mC}mClC@kCiC@8hCgCBhCgCpfC@eC@afC@8fC@gChCiChCiC@kCjChCjClChCfC{eCdC@xfC@hCBdCYCPC+zCxC@!zC@J|C|C~C}CyC)oCeC}]CE\C{fCjCfpCYtCuC@vCGwCxC{xCxC@\xCwCuC@ rCmCjClCpC@uCwC=xC@JwCuCuC@tCuCvC.vCuCtC@tC@OuCsCTrCiqCoC)oCpC@OpCBqCpC@JqCcpCoCnC@mCumC@OmClC@kC=jChChChCgCfCpeC@ eC@eCLgCuhCRiC@iC#jCjCjChChCkCGkCLeC@fCdCeCiCgC@]C=QCyCkxCG{C|C^}C~CY|CuuCiC=dCZCaC@ahC^mC@sCuC@vCwCpxCxC@8yCxCxC@wCfvC@rCnCRlC@JnCTqCLuCxCxC@JwC@vC@\uC@xtC@uCvCnvCuCWuCtC}tCsCrC+qCpCToCpCpC.qCRqCqC@8pCoCWoC^nC@mCmCRmCElC)jC@hCgCgCgCnfCGeCcdC@dC&fC@gCRiCiC@iCjCBkChCgCjClC@fC@8fCfCpeCgC+jC@bCUCxCyC@{Cu|C@}C}CyCnC@eC@aCp\CneCiCqCuCvC@wC@xCxCyC@OyC0yC@xCcxCwC@sCoC@nC@oCWrCuC@wCwCvC@uC@JuC@tCuC@svCvCvC@tC{tCtCsCrCqCpCoCpCpCEqCqC@xqCpCoCGoCcnCmCmClC@3lC@jC@hCgCgChCfCueC}dC@dCeC)gChCBiC&jC@kCGkCEiCugC@iC@lC@!jCdC@!gCcfCgC@sjCfC@ZCwCzC;|C|C}C{CtCgCdC._CaCpgC@JmCktC@JwCwCxCxC@xyC5yC.yC@xCxCxCwC&tCpC)pC@qC@sCBvC&xCwCvCuC}uCuCvC@vCvC@vC@xuCtCtC@sCsC@JrCqCGpC5pCpC@qCqCqCqCpC@oCoCnCmClClCjChCgC@gCGhC@gCfC@\dC^dC@dC@fC@8hC@aiCiCkC@xkC5jC)gChCkCkCYfCfCgC@fC@iC@3jC_C&yC{Cf|C)}C+}CGyCmCYcC@cC_C^dCiCTqCvC@3xCwCxCxCxC;xCYyC@yCwCvC5vCtC=rCqC@ rCsCwC}wC@8wC@vCvCTuCuCvC#wCvCvCuCtC^tCsC@sC^rCqCpC@pCpC@xqC@sqCWqCpCpC@oCoCknC@\mC@mCRlC@jCThC}gCgCgChC&fCeCGdCLdCeC@OgChC@iCkCkC@sjCfgC}gCjClCiCeCYhCgChCTkCfeC@3zC)|C|C@}Ci|CktC^eC@aC#bC@bC}gClCtC@xCxC}xC@wCwCvCvCkxCcwCEtC@ tCtCGuC@sC@rCnrCtC@wC#wC@vCivC@uC@JvC#vCLvCvC@vCuCuCtCntCGtCsCrCqCTqCqCpCpCYqC;qCpC@qCppC@oC@nC)nCmClCTkC{hC@gC@JgCgChC@fCeCdC@cCeCfC^hC.iCijC@ kCjCgCRfC{iCLlClC@!gCgC@hC@gCjCiC@s{C|Cc|C|C@JyClC@x`C)aCbCYeC@xiCqC+wCxCYxC@vCuCtC@rC@uC@uC@ sCnCEoC tC@tCsC@rCEsCtCvCvCLvCvC@xvC@uCRvCvCvC@!vCuCuCuCtC@sCEtCrCkrCrCnqCqC@pCqCqC+qCkqC@pCLpC;oC+nCmClCkChCfC@fCgChC gCeCndC5dC@dC@fCgC@3hCiC@jCjCLhC)fCgCfkClC&jC@gCiCRhCciC kC@x|C|C|C@ {CsCdC^^C@\aCdCgC@!mC#uCxC@8yCuC@pCpC^nCLmCqC;pC+jC=eC@!iC@rCsCsCrC@sC@uCGvC@uCuC@uC.vCvCvCBvCvCuCuCuCuCtCsCsCLsCurC@rC@qC@qCTqCpCpCGqCqC@OqCpCpC0oC@anCmC@kCiCEgCgCgCLhCigCfCdC=dC}dCeCgC@OhC iCjC@!kCiC0fC@fCjC@lClCgChC@ iChC+kC}C|C{C@!yClC^C ]CbC@ fC@jC@qCwC=yC;wC@xoCjChC@xdCfCjCfC\C@YCbCRmCoC)rC@!sC@sCtCvCuC=uC@uC=vCuC+vCTvC)vCTuC@!uCtCuC@tC@tCsCrCsCrCqCkrC@qC@JqCqCBqCqC@qCcqC@OpCkoC@snCmClCiiCgCfC@agC@ hC@gCTfCeC@dCdCeCfgC hC@hCiC@ajC@OiCfC@3fChCkCBlC@JjCRhC;jCYhCjC|C@a|C5{CLtCRdC@[C]C@dCchC@nCuC@xC@xCkqCdC}`C]CXC=_Cc_CXC#OC@xOC\C@dCiCcpCsCrC@tC@uC{uCuCuCvC@uCuCvCuuCutCtCtCtC@tCtC@sCrCrCrC&rC@arC.rCTqC@pC@xqCLrC&rCqCpC@oCoCnClC@3jCgC@fCfCngChCfCeCeC@eCceCfC@\gChC@hCpiCiC@fC+eCfCiC@8kC0lC@hCiChChC@8|C{C@xCplC _C;YC_C5gCjC;rCwCWyCuCeC@XCVC+PCPC@!VCSCIC=DCHCUCXC@bC@pC@rCcrC@3tCtCuCkuC@auCuCuCuCuCtCtCsCsCtC@tC)tCLsC@rCrCsC@rCsC;rC@pCpCqCErC@rC@8rC@qCpC@oC@aoCmCjC@hCWfC=fCgCgCgCfC#eC}dC0eCeCRgCfgChCiC)iC.gC@dCeCgCjCkC@jC@!iCWiCgC{C@ zCsC@eCZCYC@acChCmCvC#yC@xC@alCVCNCKCDC@ICMC@\GCf?C@x>CFCICnLC@`CqC@qC@JrCtC@3tCEuCfuCuCkuC}uC.uCtC@rCrC=rCsCuCGuC@OtC@ sCrCrC@sCsCRsC@rCpCpCpCrCrC@rC@qC@pCpCGoCRnClChCfCeCfC@8gC@gCfC@eC5eC)eCeC@fC@ gCgChC@xhC=gCeCeCfCfhC@jC@skCpiC.jChCzCwCmCc_C@JXC]CffCYkCnrCwCkyCtC\CJCEC?CL>CDC@ GC?C;C ?CFC=CFC@dCqCrCrC@sCTsCLuC0uCfuC@uC@\uC@ uC@sCWqC)qC@qCrCuC@uCktC)sC@sC@sCtCsCtC=sC@qCLpC5qCurC sC@sC{rCqC@ pCRoCWoClCiCgCeCeCgC@gCgC=fCBeC5eC@dCEfCfCfCpgC@gC@JgCdCdC@OeCgC;hCjC0jCiChC{yC@sCRfC[C@!XCbChCnCvCxC=xCiCMC@AC@=C59C@O;CBCCC;CL:C ECBC4CJChCYpCrC^sC5rC@rCuC=uC^uCuCuCtCqCoC=oCYpCnrC@uC@uC@tC@sCtC}tCRtCtC@tCsCrCpCqC.rCrCsC0sC@8rCWpCoC{oCnnCujCgC;fCeC@OgCfC@gCfC@eCeCdCeC;fC^fCfCfCkgC@dC^cCdC)fCYgChCjCiCuiC@vCnC=aCXC[C&fCkCrCwCyCtCXCBCC@DCAC=CDCLC4C{8C@TC@aCcpCftC@soC=lCrC@uC@uCfvC@vCuCrCmCkCmC@pC^sC@tC@vCtCtCuCvCvCvCvCuCLsC@pC{pC@qCrC@sCLtC)sCqCpCpCoC@8mChCfCpeCeC@fC@3gCLgCfC@3fC@aeC@ dC@sdCdC@dC eC#eCdCbC;bCncCdC@eCgC#jC{iC@nCibC@8ZCp\CdCWkC)sC@wCyCLtCWXC=@C8C4C4C8C?CEC@CC@ACKCFC)0C@;CQC_CErCTrC^hC@3hC@qCLuCuCvCBwC@uCqC=lCkCmC@xpC@\sC@JuCuCiuCuCwCfwCvCvCRvCuCsC^qC@OpC@qC@rC@xsCsC@sCBrC@sqCpCpC@nC@xjCfCGeC@3eC@3fC@fCfCfC@3fC@aeCcC cCcC#dCRcCcCTdCRbC@bCbCcC@JdCeCiCiChC@^CpYCW`CfCkoCkvCcyCxC@!jCICCFC@ICJCJCJC5GC&ICLCOC@NCOCQCOC5QC@SCTC@UCVCdC@uCwCtC^tCuCYuC rClCkCnnC@oCkC@fC^CYXCfZCfCErC@wCvC@auC@uCsCsC@sC@sCsCtCRtCsCusCsCsCrCqC@oCjCEfC@dCfdCGdC5cCbCGbC_C\CZC@XCWCWVCUCUCTCSC#TCpUCVCvCzCExCeC@RC@@C=?CWGCGCCn7C8C=C&GCTJC@8KCiLCKC@!JC@ICKC&NCLCJC@KCNCOC@aSCUCiUC@TCXChCpC@nCnjC@pCuC@wC@8tCknC@alCLnCnChCcaCVCMCRKCVCTiCuCWwCvC)vCuC@ uC uC5uC@tCWtCYtC tCsC@sC@sC@rC5rC&qC^mChCeCdC@dCdC@OcCaC aC^C[CiYCXC@ WCWUCfTC TCRCuRCnRCLTCyCxCLjCnVC@3DC@aBCuOC@TCHC@>C9C@O>C@sCCKCIC@LCLC@JLCJCLKCLC0MCHCTGC@aICKC0NCBRCTCUCVC\C@hCiCeCEeCYmCtCRuC)tCoC@anCfoC@mC^gC@!^CEQC@GCFCOCBcCsCwCvCvC@\vC5vCuCtC+uCtC@stCsCpsCsC@sC@rCRrCqC@nCuiCYfCdCeCdCcCbC`C^CB[CYCXCRWC@UCBTCSCRCTRCiQC@sRC&zCtCbC;NCACJC{XCVC{JC.?C@CCCIC@KCKC+NCMCLCKCpKCLC@3KC@DCEC)GC@HC5LCPCLSCUC&WCaC@dC`C&`C@`CiCqCWrC+rCpCpCqCTnCYgC@[CKCBC+DCLC]CoCuCvC{wC}wCvC@JvCuC@uC)uCtC@sCWsC=sC@!sCrC@arCfqCoCnjCfCeC;eCdC@OdCbC`C@_C@\CYCYC@WCBVCTCSCSC@!RCLQC@PC@xCoC[CGC@CCLVC@J^C@VC@JC^AC#GC@!ICLCICTMC@OCNC^MCKC@KC.LCEHCBCnCCDC@xFCuJCOC@\RC5UC@XC@xbC;\CXC\C[CcCkC@ lCnCpCsCGsCoC@gC[C@HCAC;CCJCVChC@qC@tCvCwC@wC#wCvCvCuC#tCsC@sCnsCsCrCTrCqC5pCkCgC@eCeC.eCdCbC`C_C.]CZCXCXC@xVC@3UCTCLSCQCQC;PCvC@hCnSCBC)MC^CL_C)WC{IC&HCLC0MCYKCKC@OC@PCGPCcMCJCKC KCDCAC@OBC@JDC@DCHC@NC{QCpSC@XC]CTC5TC@J[CYUC]CTdCcC=jCnCtCutCoCgC\C@JCACCCWJC@QC&`CkC@qCtCLwC#xCxCTwCvC5vCtC@sC{sC sCpsCrC0rCqCpC@ mCGhC&fC@eC@aeC@dC@cC@aC_C@]C@8[CfYC@\YCWCUC@!TCSC@JRCQCPC@ sCpaCKCWCCYCaC&_CEUC=ICROCNCENCJCMC@QC@sRCPCLCJC}KC)ICCC@AC@OBC@CCBCHC&NC@sOC@QC)VCUC@sNC@aTCfVCNCUC5[C[CTdCkCsCGuCoCfC^C0PCCCBCJCNCWCcCkCcpCuC}wCxC+xCEwC@avCtCsCrC#sCsCrCrCqCpCnCGiCfC@eC@eCdC@JdC@\bC_C]C \CYC@XCXCUCTCSCRCQCPC nC@!YCDCLC`C`C^CkQC@MCQC.OCcLC@KCPC@JTCSC@aQCnLCKCJCGC CCACfCC=CCBC=ICLCMC@aOCRCOCLC^VC@OOCICcNCRC@TCn^C;fCsC5vC@mCcC`CfVCiFCCCJC}LCfQCp]CeCjC@pCuvC@yCxC@wCBvCGuCsC0sC.sCrC#sCrCkqC@pC{nC@iCfCfCeCReC=dCbC@_C]C[CBZCXCXCVCUCSCRCRCPCgCfOCuBC@YC_C_CZC^OCfSCPC@ NCLC+NC@SCGVC@3UC5RCLC@KCJC@!GC DC;DC@8ECkCCCCICKC@KCLCYNCcLCLC@UC@HCECJCTMC@OCWXC@aCWrC vCiC&^C@\_CYCfHCECKCLCEOCXCk`CdCkC}tC@xCyC5xCvC@tCsC@rCnrCsC@8sCrCrCpC#oC@JkCgC=fC)fCeC}dCLcC@`C]C\CEZC&YCGXCWCUC@!TCRCRC@QC@s^C@FCJC_C@a\C]CUCQCTC@OCLCLCWQCVCWCVCpRC}MCBLCKCBHCGCkGCBGC@aDC@EC@IC@IC@HC@JC@JC@JC@MCQC+EC^CCfFCEIC&LCRC\C@\pC@!uCRdCUC@[CYCBKCHC}LCLCNC@VC]C)`C+fCBqCWyCfzCyCcwCtC&sCrCrCrC@rCrC@8rCpCoCkC&hC@afC@eC@eC@dC@3cCYaC@^C[CYC@ YCWCBXCTVCTCWSC@RCQCkSC@AC5XC[CYCYC@xSCTCQC@MCMC@NC@TCYCXCRXC0SCNCOCiMC)KCJC@KCIC@FC.HCICFC=GC@sGCGCEICLC@LC@8CC;BC@ DCFCJC@OCRYCmCtC_CLCfTCYC@NCKCLCLCNC&VC \C^CaClC@xC){C.zC@xC@tCqC@ rCqCrC@asC@rCqCqC@aoClChC{fCeC@eCdCucCaC@^C[CYC@XCpXCYWCYWC@TCSCRC@QC@!HCHCY]C@JUCWCnVCTC^UC5OC=MC@NCQC@WCYCZC@xYCSC5QC@QC@ PC@NCfOC)PCLCIC@JCGC0ECECiECDC@GC@xJCHC)BC@@CACEC)JCMC@JVC@jC.rCZCFCNCYCYRCLCLCRLCNCfUC@ZC\CB_C@3hC@vCzC{zC.yCuCpC0qCqCsCsC0sCurCqCoC}mChC@fC@eCeCueCcCaC@ _C@\CWYC@WCWCnWCBWCUCTC@RCRCAC@SC=WCQC@TCWVCiWCSCMC@JNCPCUCYC#ZC\C@YC}UCiTCTCRCcSCTCSCPCNC@xKCWGCBECFCpCCBCBECHCGEC@C=C@?CDC=JCMCTCfCnCWC@ECGLCYCuVC@xMCICKCNCSCcZC@3\C^C&eC@tC@zC@zCyC#wCqC.qC=rCGsCsCsC^rC&qCoC@mCiCfCceC@JeC@3eCcCnaC@3_C\C=ZC@VC.WCWCVCVC@TC&SCRC@DC@YCpOC5OCTTCYC#XCQCNCpPCTCWCYC[C@!^CYCWCWCWCVC@WC&YCVC#TCPCcMCHCGCGCBCACCCECACf>C:C=CCCJC5LC&RCbC)iCGWC0IC^MCZC@xXCNC;HCpJCGNCRCWCZC}]C@OcC@OrCxC@yCyC@\xCGsCqCLrCsCTsCsCrCpC}oC@mCWjCfC0eCdC+eC@OdC@aC_C\C0[C@WC@ VCWCVCWC+UCSC.RCNC@OSCJCGNCWC@\\C0XC@PCPCUCYC@XCZC.^C)_C[CYCZCZCiZC@![C[C@!YCVC@SCTPCLCBLC@HC@BC?C}ACGBC@=CL;C@6CR:CcCC@ LCLC@xQC]CbC@WCOC@8QCZC0XC@ OCGCJCOC@QCLTCXC@3]CdCoCvCwCByCyCWvCsCLsCGsCsCEsCsC{qCoC@mC.kC0gC@8eCdC@!dCdCbC_CL]C[C5XCUCUCWCVCVC@TCpRCfTC=KCHCEPC\C_CVCQCUC[C{[CXC[C`C_C0]CW\C]Ck\CR\C\C[C@JZCXCUC@SCPC#PC@JC@BC>CB?C)>C:Cn8CB4CE8CFCNCkMCPCXC[CpVCVCkVC@ YCUC5OC@GCKCPC@aQCQC@JVC{\CfdCGoC#sCWtCxCLzCxCvCtCsC@sCLsCrCEqCuoCmCkC@gCeCcCdC@cCYcC@`C@O]Ck[C@8YCUCTCBVCUC@\VC@aTCSC@PCFC@GCGVCaC{_CTCEUC@\CaC[C@YC@_CcbC`C_C@!_C@!_C@^C]C@3]C[CZCiXC+WCVCUCSCWMCDCE?CG>C@J;C@88C{6C2C^8CICQCOCOCRCWVC@UCZCn[CXCSCRMCGC&MCRCLQCOCSC[C@8dCoC@arCpC@wCEzCyCwCuC@\tCsC@ssCqC}qC@soC}mCkC@gCeC}cC@dCdCkcCpaC@8^C}[C ZCWC+TCTC=VCUCUC)SC.JCCC@8KC]C@8eC]C+UC@\CeC5dCf[C&]CcC@ dC5bC@aC@aC@`C^_C@]C\C[CuYC@XC@YCXCWCcVCuPCHCBC>C9Cu7CT5C@1C{:C@LC@8SCfRCnOCOC=RCQCYC5_C[C@PCnJCECNC@aRCLPC@NCRCWYC;cCpC@tCoC@OvCB{C@xzCYxCpvCtCtCsC;qCpCpoCimCkChCdC=cC&cC@bCbC.bC@3_C\CZCXCTUCSC@UC@UCUC TCcEC=BC@QCcCeC=ZCZC0fCkC#dC@\CbC@eCeCeCcCbC`C^_C@a]C@[C0ZC@XCXC@YCYC@YCXCiTC@ONC@GC5BCW;CY8C@5C2CWC@x;C6CR4CL>CYLC@NCRUCRCJCpJCpHC@MC@x]C\C@aMC FC}DCNCNCLCMCQCEVC&aC@qC@vCRsCcuC){C@{C;zCvCTuCitCsC@JrCEnCnCcmCkC}iC@ fC@bC@aCbCfbCbC`C]CZCYC=XCTC}SC@xUCTCGUC@?CKCaCjCaC`CnCtC@lC@dCfChC{iC@jC@\hC@8eCbCaC`C\CYCXC@JWCuXCEZC[C\C@8\C@ \CXC@OUC@MCDCB?C@9CE7C@CHCICTCSCJC@FCDCHCZCYCJCGC@EC@LC@JCJCMCQCUC_C@rC vC5tCuCG{C{C@zCvCtCftCsCWsCnCBnC@amCRlCiCfCucCcaCaCfbCaC=aC^C[CZC=YCVCSCTCYTC{TC@C@SC@iCiC_C@ajCiuCuC@lCgCkC@jClC@OkChCdCcC@bC_C[CXCWCWCXC@[C\C]C]C]Cf]C@[CTCLC#EC@=C@;CACBC^DC+RCWTCLCFCACECVCUCFC@GCFC@IC@FCWGC=MC.RCUC]CpC#tC@qC@vCzC@{C{C@sxC@tCtC@sCsCpC@nCnClCEjC;gCWcCEaCaCbCbC@aC_C@\CZC@YCXC@TCSCBUCSC@FC]CWlCfCTeCLsCyCsClClC@nCWmCmC;lChCeCdCbC)^C@\ZCBYCXCXCYC@[C^C@_C@O_C `C`C_C[CUC&LC@xCC^@CAC@>C}BCNCQCNCICTCCDC@QCNC@AC&GCECTFCBCDCLCYRCUCZC&mC@pCBnCtC^yC@J{CR{C@\yCtCuC@xtC&tCrC pCnC@lCjC@gCcC@`C`CaC@aaC@aC;`C@]C@[CZCYCTVC@\SC@TCSC)MCeC.lCdCnCnyCyCrCnC@pC@xoCfoC)nC}kCgC@dCGdC@aC\C@!ZCZC}YCBYC[C]C_C`Cf`CaCcC@cC@aC\CWSCJC@3FC@BC@J>C@BC@IC@sLC@xPCEOC@FC@DC&MC@\HC}=C)CCDCCC?CBC@LCRC@SCWCfCkCiCprC@wCzCR{C.zC@vC@JuC@ uCctCsC@qC=pCnCpkC&hCdC@!aC@\`C`C`C{aC`C^C@a\CZC)ZC@XC@TCTCSC{WCjCiChC@3wC{CvCrCrC@rC;qCpCmCjC@gCfeCRcCY`C@\C[C@[CZCZC\C_C@`CEaC)bCLcC@eC@sfC@\fC@ cCZCRCLC@ECcACYCCFCGC@PC0TCKCECICCC:C@3@CkCCBCB?CBC0NCLSCRC#UCp_CeCeCpCvC.zC@zCzC@8xCvCuCuCtCrCqC@8oC@alChCdCfaC@_C`C`CaC`Ck_C&]C[CYZCGZC=VCSC@xTC@aC lChCYqCzCzCuCEtCtC)tC@qCoCmCiCfC@JeC@bC_C@\C.]C=]Cc[C@\C@_C.aC@bCRbCcCndCifChC@hCfC`C@OZCQCJC@ECDC@8ECFC+OC5VC@PCHC@HC@C:C>CBCAC?CCCRPCSCQC@xSCXC_CaCmCwC@zC{CRzCxCnwCvCcuCtCBtC@rCpC=nC@iCkeC@aC5_C_CR`CaCTaC;`C ^C{\C[C[CXCkTC@aTCgC@\jCkCxC@!{CWxCvCGvCGvC@stCpCnC@lC@OhC{fC=dCaCG^C@]Ck_CT^C\CL^C@`CbCbCcC dC@eCgC@iCiC&hC;eC@`CkXCPC@ICGCGC@!HC@MCTCSCnMCIC@C@=C@C=CCBC5BCECRCUCPC+RC}TCXC@!^CkCvC0zC{CzCxC xC&wCuCuCtC=sC@qCBoC&kC0fC@bCc_C@^CY_C`C`C}`C@_C\C\C^[C@\ZCYVCTCjCGiCrCzCyCwCwCvCvC0sC}oCmCjCLgCLfC=cC`C^C`C@`C@^Cp^CB`CkbCTcCbCdCdCkfCgCiCfiChCpgCdC@_C@ WC@NCJC@\JCJC@\MCSC{UCRC&MC@EC;DC@DCEC@!DCECJC=VCVCPCQCRC@TC{[C@8kCuCxCEzCzCyCxCxCuCuCtCsCrCcpClCgC@bC^Cn^CB^C_C`C`C_C&]CE\C@s[C@a[CXC@TC;jCkCxCTyC@8wC@vCBxCpwCLuCqCnCflCiC@gCeC@bC@3`C`CWbCaC_C`C@bCcC@\cC@cCdC{dC@sfCgCiChChCuhCgCdC;]CSCOCNC@3NCOCRCfWCVCQCMCKCTKCYJCGCICNCRYCkXC@QCLPCuQCRC@ YCjCsCvCTxCzCzC@xC@xxCwC@uC5uCtCsCiqC@nChCbCT_C@O]C@O]C@^C_CB`C_C]C@[C)\C[CiZCUC@iCcrC#zCvCuCwCwC@vCisCoC@JmCTkC0iCfC@\dCaC@`CbCcC)bC`CbCcCcCpcCdCWdC{dC@sfCgCgC@gCgChChCgCbCYCkTCQC@QC#RCSCXCXC}VCTC+SCRC@PC@MCOCTC0]C@[CBRC@OC@PC@sRCVCiCqCsCYvCLyCzCuyCcxCwCvC uCtCsCqCEpCjC@dC_C\C@\C#]C^C`C`C^Cc\C\C@s\Cu[CXCukCxCnwCtCuCxCwCtCpCmC@lCWjC@3hCnfCcCaCbC)dCdCbCbCcCdCdCYdCneCkdCdC^fCgC@fC fCfC@gChCgCdC@^C@YC@VCUCUC@VCZCG\C@[CZCWCWCWCSC@VCk[CaC0^CRC&OCfPC@RCUC@OfCmCpC@asCRwC+zCWyC@OxC=wCEvCuCuC+tCrCkqC@lC@ fC_C)\Ci[C[C#^C_C`C@_C\Cn\C\CW\CYZCrCyCWsC@!rC@vCWxCvCrC@mC@3mC#lCjChCBfC@cCbCdC@eCceC@dC@\dC@eCeCdCBeCeCBdC@8eC@gCgCgCeC@eCfCBhCgC@fCbC@8^C\C@ZC=ZCZC]C_C@^C@]C[C@[C@\C;ZC\CaCWeC`CSCNCOC@RCTC@8`C@gC0lC}qC0tC.yCyCxCwCvCvC@uCtC@asCrCnCBhC@aCR\CYCZC\C^C`C_C]C@\C#]C@\C[CYxC@auCoCrCwC)wCtCmC@lClCkChCgCeCcCfcCfCgCYfCBeC@eCfC@eC@eC fC@eC@8dCEeC)gC@gCfCdCkdCfCgC;gCgCeC@ cC@8aC_C}^C^CaCbC@bC@aCT^C@_C@!aCu_C;bCifCiCdCUCEOC@OCRCTCWZC^_CfCoCqCwCxCwC@ xCwCvCpvC@!uC.tCrC@xpCjCTcC\CXC@!YC@3[C]C_CR_C@^C\C\C\C@\C@3yCoCnCsC^wCuuCpCRkC@8lC@!lCiC@hC@sgC0eC@cCWdCgCBiC@gCfCgC@3gCcfC@fC@gCdCdC@!eCgCgC@fC@dC@dC@eC@3fCgC.hCWhCgCfC@eCbC;cCdCeCLeCdCaCaC@sdCcC@JfCLjC}lC@gC)YC@QC@OCRCTUCVCXC`C0nC{pC@uCwCvCwCwCwCvC@uC@tC@OsCqClCfC_CXCVCYC\C^CY_C^C]C@ ]Cu]C\C@tC{kCRnCuCvCqCkC@jCmCkC@hCgCfCdC@cC@dCiCiC=hCfgCgCfCfC.hC@gCTcCbCdCfgCgCfCdCdC5eCeC}fCgCGjCkCkC@iCcfCTfCgC0gCigCgCieCTdCLgCGgC@iCmCoCckCT]CuTCQCRC@UCUCUC@s[C@jC^oC#sCBuCtCvCGxC@JxCTwCvCuCsCprC@xoC@hC@aCXCnTCVC[C@]C^C@ _C]C=\C.]C]C+mC@ jC#qC@!vCtC@8mCYhCkCkCgC@3fC@fC@eC@cC bCffCjCiChCYgCgCfC@ hC@iCifC@abC0bCaC@fCngC@xeC)dC@cCcC#dC@fCnhC@lCnCoC=mC@JjCnhCEiC@hChC}iChCgCiC@ jC@lCoCqCnC cCYCTCpSCUCUC@TC@sWC@eC@lC5pCsCpCtCTxCyC0xC@vC@vCtC@sCqCkCdC[CSC^TC5YC\C^C^C@3^C@\C]C@]C+hCkCsCuCnpCgChC@alCiC0eC@\eC@eC@xdC5bC@x`ChCjCiCgCfC hCEgCiCBjCdCaCG`C_C@eCeC@cCbCaCaC&bC@JdChCBnC@aqC^qC@oCklC@jCiC@\iCiCiCjC@\jCBlCTlC.nC@pC;sCqC@ iC_C@\XCTC;VCVCUC@TC5^C)gC@nCrCmCnC+vCcyCyCxCvC@tCsC@qClC@JfC_C@TC@JQC@VCZC]C@x^C.^C@a]C\C]CgCnC@uC&sCjCdCRiC;kC@dCbC@dC}cCbC)_C#`C@gCiCiCfChCLhC@iCkCiCcCbC\C^CcCbC0`C^C]C]C@s^CbCngCoCrCrCqClCiCiCiChC&iCkClCnCmCkoCqCsCsCnCeC@a^C@WCVC}VCVC@!UCXC_CjCpC@lCiC@8rCxCyCxC)wC@uCtC@rCoCEhCcCXC@!QCSCYC\C@]C]C@a]C\C]CiCWqC#uCfnC@cCcCBjC#gC`CbCYbC@aaC@_C[CW`CfCgCgC)eCiCiC.kClCgC@dC=aC=YC@]C@_C\C@[CYCYC}YC@YCi]C@dC@nCWqCrCpCjC@agCfCgCeC#fCiCnCpCoC@pC;rCtCuC@arCkCncCG[CVCVCWC@UCTC@XC@seC}nClC@!gClC@uC@yCyCnxCLvC@8uCisCpC@sjCdC@O^C{SCQCWC[CT]C]C]C@\C\ClC=tC0sCgCY`CpeC@iCaC@^C`C_C@^C@[CXC^CcCgC^eC@ eCjCEjCkC#kCfCeC]CVCZCZCWC@!WC{UC@sUCTC@OUCWC_C0lCnCpC@lCeC@bCbCcC`C+`CTfC@nCqC+qC@aqCrCtCuCutCnCfCG^CWC)VC@VCTCnRC@OTC@_ClCmChCgC@oCxCczCxCvCuCsCrC@lCueC}bCXC=QCUCTZC\CT]C@a]C]C\CpCtCimC@`C=_C}fCdC]Ck]C#^C\C[C@WCVC\C}aCfCbC@gC0jC;kCjC@hC.gCccC+YCUC{WCVC+UC@SCuRCRCTQCQCSC[C@gCiClCpfC@a^C]C@[C\C@aZC@YCG`C@kCnpC&qC@qC&sC@\tCvCtCpC@hC@O_C=XC@sUCUCEUC@QC@ RC+ZC@iC@OmCBkCfC@iCsC@zCyC xCcvCtC=sCoCfCcC]C+TCSCXC=\C]Ci]C@8]C\CrCEsC@eCY\C@`CeC@a_CZCp[CZC@XCVCSC@UCZC`CdC@!aChChC@OjC hCfCfC^C@8UCSCETCETC@\SC@RCQC@PCPCPC@QCWC`CcC@ gC_CXC@XCTC@ VC^TCSCYCGfC^mC@OpCqC{rCtC{vC@tCWpC@\iC_CXCUCfTCUC@QCOC@UC0eClC@mCiCBeCplC#xCzCxC@3wC@xuCsCuqCLiCcCaCYC@ SC@WC@[C\C\Ci]C=\C5uC@mCW^C[C+aC`Cu[CXC)YCVCUCRC)RCTCGYCp`C_CbC@eCgC@hCpdCfC}cC@YCRCRC=SC;SCRRC+RCPCOCLPCOCPC@aUCZC\C@`C@YCUC UCuPC QC@PCEPCLSC=^CffC@lCoCqCYuCwC@tCGpCujC`CiZC@WCnTCVCSCNC@QC^CiC=nC+nCgCidCrCYzCzC xCvCtCrC@JmCudC&cC)^CUC@VCWZC@x\C\C{\C\C=sCeC@YC@[C_C\CXCVC@UCGSC@RCPCPCBTC@XC@3_C@ \C@bC}`CYdC@eCaCeC]CTC^QCnQCfRC&RCQCPCOCOC@JPCOCPC@TC0VCXC5[CLWCpTCSCNCMC^OCEOCOCVC^C^gCjC@!oC@tCwC@ uCpCpkC`C@a\C[CUCUCTCNCOC@8WCcC@mC@qC^lCaChCvC{C@3yC@OwCuCsCpCgCRcC@8aCYC@!VC&YC@ \Ci\C@[C@s\C;nC\CWCf[C\CYCVCTCTRCQCPC@OCPC@SC@!YC[C@\C@^C@\CaC@JbCu`CEaC@WC@JRCPC@3RCRCQCPC@OCOCPCOCPCnQCRCSCVCnXCVC@TCSCNC@MC@OCOC@ NCQCWC@`C eC@kCrCpwC@vCpC^lC@OcC ^C&^C@XC@!UCUC@PC@MCQC\CLjC@asCqCcC`CnoC#zC@azC}xCvCtCrCkCTdCbC)^CWCXC5[C+\C}\C[C;fC^WCWCYCYCWC&SC@RCPCOCpOCOCQCRC@OXCcWCf\CpXCXCG`C]C^CZCSC@PC@QC@RC@\QC@\PC5OCNCcOCPCOC@PCEQC@QCRCLVCWCWC@sUCTSCMCMC@PC@JPCMCMC}RCZC@s_CgC@3oC@auC@vC@sqCkCudCu^C_C[C@JUCTCPC@MCNCYUCTdCrC@JtCgC]C@ fCvC{C@yCwC@xuCtC@oC;gCcC`Ck[CXCZC.\Ci\C[C@]CuUCVCWCXC@TC}QCBPCOCWOCNCOC+QC@3SCVCVCXCTCWC]CYCZC&UCRCLPC@3RCSCQCOCNC@NC@OC+PC@OC.QC+QCYQCSC@VCTXC XC.VCfSC&NCNCRCPCuMC@LCOCUCBYCaCiCqC@ uCqCYlCdC@\C_C^CBWC)SCPC@MCpMC.RC@O\C@mCtCjC^C^CnCzC{CYyC.wC@8uCrCkC@!eCLbC)^CZC[C@\C\C\CVCTCUC@VCXCQCkPC@3OC@3OCNCNC^OCPCRC@\SCVCTCRC;VCXC@VC@UCRC@PCPCRCTCQC@sOC@MC#NCuOC.PC@PC@QCPCQCiSC@VCBXC&XCEVCSCNCTOCTC@3PC@8MC@LC@OC@ORCTC\CdClCqC@3qC@akC@OcC.ZC\C5`C@ZCSCPCOCMCPCVC=eC{rCjC`C{\C@8eC=wC{CzC@wC@uCsCoCgC@cC`C@3\CZC[C@O\C\CSCSC=TC@VCUC@JPC@OC@NC OCLNC5OCOC@PCfRC@ORCSC@QC@RC@TCTC@SCRC5RCPCPCSCSC@sQC@xOCNCTNCOC@PCQCQCQC@RCUC@VC@WCWCUCRCnNCPCTC{OCLCLC@OCpPCQC@aWC^C@gCmCnC@kCaC@WC ZC;`C^CUCRCPCMC}PCTC@[ClC@gC`C]C_CoC5{C{C@yCvCtC+qC@akC}eC@aCR^C\C[C\C}\C@RCRCSCVCQCPCOCNC^NCpNCpNC0PCQCPCQCQCPCQC@RC@QC@QCRCGRCcPC QCRCnSC0QCNC@aNCNCOCQCRCRCRCiTC@UC@VC0WCVCTCnRCNCQC@TCLNC@LCNCPCPCPCTSC@8ZCbCLiCjC@iCaC@VCWC]C`CVCRC@xSCOCOCSCTCdC@\eC^C@!_C@^CgCwC{C@\zCwC@vC@asCnCfhC@3dC)`C]C\C@O\C\C@\QCRC0UCTCPCEOC.OC@NC@MCBNCOCBPCPCPC@ QC@ PC@OCiPCQC{PC@QCRCRC@PCPCRCYRCWQCOCNCOC@OCfQC0RC}RC@SCUCUCVCVC+UCTC@RCfNC@aQCRCcMCLCkOC}QCPC@PCQCUC]CeCfCeCaCWC@OVC@\ZC_CWCcSCYUC^RC@aPC@SCRC@ ZC@bC[C@aC`C@aCuqCzC#{CxCpvCtCpCkCfCbC^CG]C@!\C\C@QC@8RCVC@xQCOC=OCNCNCNCNCOC)PC=PCOC@PCOCOC@OPC&PCPCERC@SC)RCPCPC@QCQCiPC+OCOCYOCPCLQCkRCRCUCnVCWVCUCVCUCYSCQC@OMCPCTQC@LCLCPC@JRCQCWQCfQCYSCYC+bCcCEcC@aC@8ZC5VC@VCn[CTWC@8RC@VC@UCGQC}RCRCRC@3^CXC#aCEdC@_CGhC+wC{CyCwCuCrCmCihCdC`C]C@\C@]CPCkSC&TCOCcOCNC@!NCMCNC@NC@PCPCPCPCPCPC@PC0PC0PCRC@aSCSCRC@xQCRPCPCPC@JPCOC@aOCNC@OCQC@RCTC@UCWCVCcVC@sWCUCRC@3QC0MCOCNCBLC@MCPC@RC@QC#QCQC}RC@TC^C`C`CaC\C@VC@JTCWC+TCOCTCWCRCQCSCPCcWC@WC@!^CgC@aCbCoC@xzC#{CxCvCtCoC@akC#gCbC@\_C]C\C@!QCiTCkQCNCLOCuNC5NC NC@NCOCOCOCOCOC}PCLQC@QCPCpQC)SC@SC@TCRC@xQCOCiPC@OPC^PCuOC@JOC#OCOCQCRC@TC#VC@ XC@8WCVCEXCTCTRC@aPCMCMCBMCLCMCnPCPCPC@PC@PC=RCSC#[C]C@_CaCR]CWCSCSC@ QCLCQCWCTCRCTC@RC)RCUCZC}jCieC{_C@!fCGvCzC@yCEwC@uCEqCmCiCeCaC^C@a]C@RCSC@OC@NCNC@MCMC@MCNCOCGPCLOC OCWPC{QC@aRC@QCPCSCRTC@SCUC@SCfQCPCOCRPCOC@xOC OCNC@OCnQC@!SC@TC#VC^XC@VCLWCWCTCRC@OC@3LCLCGLC.LCMC@OC@aOC@\OCOC@PC;SC@TCXCT[C@^C@`C@^C)WCcSCRCPCKC@xMCTC@TCQC=UCpTC^PCkRCuVCiC+iC@x`C_C@mCyC@3zCwC vCrCfoClChCRcC_C]CSCQCOC^NCLNCuMCMC^NCEOCOCOCOCOC@xQC@RCBSCQCRCcTC@TCETC@xUCSC@!QCOCOCuPCOCOC@\OC@NCPCQCRC;TC@VCXC@\WCWCWC0TC&RC@OCLC@LCKC=LCMC@NC@ NC0NCNCPCGTCYUCXCYCf[C^C]CuXCTCuTC&TC@NC@3MCcQC@SC;QCUCWCQC@OCRC}dClCaC^C@dC.uCzC@xCvCsC@pCmC}kCLfC@aaC^CWRCOC+OCNCNCNCWNCOCBOCOCiOCPCPCRCSC}SCRC@SC^UCSCTC^UCSCPC@8OC@OCGPCOCOCNC@NCQCuRCRC@SCWC)YCYWCVCVCSCRCBPCiLCLCKCcLC@MCpMCMCYMC@xNCTQCUCVCiWCXCTYC^\Cu\C+ZC@VCWCXC@UCPC5QC0SC@PCTCpZC;UCOCOC]C@mCcdC^C^_ClCwC@xCwCcuCqCoC.mCiCcC_CPCOCNCMCMCMCMCOC=OC@!PC@OC;PCQCSCSCRCRCTCUCpSC@UCSC&RCPC@3OC0PCPCOCNCMCNC&QC@3RCiRC@SCWCYCVCkVC=VC=TCSCPC@xLCKC LC^LCLCLCLCTMC@OCuRCVC@WCLWCWCWC@YC@ZCZCWC@YC}^C]C@!WCSCRTCPCSCZC[CRC5OCVCkCfC^C@]C@dC@rCxCwCvCrC@xpCnC@lC@ gCEaC}OCNCMCNCMCMC5OC@xOCOC@\PC@OC@aPCBSC@8TCSC@RCSCTUCSC=TC@TCRCcQCBOCOCWPCOCNCMCMCNC5QC@QCfQCTC@YC@3YCVC;VC@8VC@TCTCPC@!LCKC@KC@KC+LCLCkLCMC=PC@TCYWCpWC@VC;VCVC@WC@JYC@OYCWCYCaCbC@s]CWCWCRCRCYC)_CWCPC@RC@fChC@J^C\C@aCjCuC@ xC.wC@tC@qCuoC=nCjC@ dCOC@\NCMCMC@JMCNCOCOCPC@PCOCQCSCSCkSC=SC@aTC@TC@SCTCBSCQC0PC5OCLOCOC@NCMC@LC@LC@OCiQCRPC0QCVCfYCXCEVCUCVCUC.UCWPCRLCYKCKC@KCLC@KCLC@NCRCVC#WC=VCUCGUCTC@VCWC5WCUCWC=`C@cC^`CnZCB[C;WCTCVC.`C@^CTC0QCEaCjCW^C}[C@3`CcC@soCnvCwCvCrC@pCoCGmC@OgCNCMCMCnMCkNCOC@OC#PC@aQC@PC@PC@RCTCSCSC@8SCUC@TC@\TCUCQC)PCOC@NCOCOCMC@LC@LCLCNCPCcOC@QCWCYC;XCVCVC}VCcUC)UC=PC;LCKC@KCKCLCBLCLCOC5TC@VC@VC@UCTUCYTCuSCnUCEVC@TCRCSC[C@s`C@^CZC#\CZC@ XCUC]CBdCRZCSC \CkC@O_C}YC@]CaC@fCkrC@swCiwCtC@ rCpCpoC@jCGNCNCMC.NCkOC@PC@OPC#QCLQC@PC@PC@3SC0TCWSCRC{SC@TCTCEUCGSC@JPCOC@sNCuNC@NC@8NC@LC@!LC@KCLCNCNC&OCRCXC@XCWCWCWC}VC;UCTCBOCLCkKC{KC@KCLCELCLCLPCTCVCUCTCTCTCRRCuSCLTC=SC5PCOC.VCZCYC@XC@ZC[C}\C@JYCYCdCWaC@OVCWC@xjC@3aCYWC=YCaC@_CjC@ uC)xCvC@8sC@qCpCcnC@MC@MCMCNC)QCPCfPCQCQCPC@xQCSCSC.SCSC;TC@3UC@\UCuTCQC@OC@NCcMCMCMCLCLCKC@KC@JMCOC@NC@OCTCXCWCBWCTXCXCUCUC@3SC0OCLCKCKCKC@aLC@LC@MC@PC;TC@UCTCTC@sSC{RCEPCEPCRCRC;OC@\MCkQCYUCBTCkTC#WC[C@O^C@_CYC`C@fC@YC@8VC@eCdCLUC5UC5]C@]CaC@nCwC@!xCtC@rCqCpC0NCNC}NC@PCQC@PCQC@ RC@8PCPC@QC@SCTCTSC;SCTCUCTC@3SC@OC@8NC@MC@LC MC@LC&LCKCLKCKCnMC.NCNC@sQC@\VC;WC@aXC}WC@XCWCUCSCRCNC@LCKC@KC@KCLCMCMC@\QC@ TCTC@SCRCQC&PC@\NCMCPC@RCOC@LCWOCuQC@ PCPCSCkYC^^C@dC)^C\CkgC@3^CVC_CfC@\UC@!RCRWC@]CZC@aeC@sC@yCYvCsCsC@qCNCNC@OC@JRC@RC@aQC@sRCPCOCuPC@RC@TC^SCSCSC5UC@TC5SC{QCNCfMC@LCLLC@LC{LCKC)KCuKC@\LCYMC0NCNCRC@UC@VCXC@WCXCWCkUCSCPCNC;LCKC@LCuLCLCMCNC@sQCRCRC^QC@xPC}OCMC@LC@8LCMCQCPCLC@ MCNCMC@NCQC@OVC}\C fCTeC]C@dCcC@\WC@ZC+eCWCOC@3RCYCXC}[C@kC5xCxC0uCsC@rCNCiOCQC0SC@QC@RCQC#PC@OCQCSCSC.TC;TCTCpUC@RC@xQCOCMCLC@KCuLCLCLCKCKC@KC@LCnMCnNCiPCTCYVCVCGYCVCVCiVCUCBRC PC@MCKCKCuLC0MCBMCMCfOCpQCQC#QCLOCNCMC@LC@KCcKC#LCEPC.QCLC@KCBMCTMC@MCGPCTSCYC@cCjCbC}aCgCXCBVC@s`CYCNCNCTC.XCVC`C@OtC;yC wCutC}sC@NCfPCSC@RC RC@RCPCOC@OCRC+TCSCTCfTC@TC#SCPCOCnMCLC=LCKC@aLC MCLCKC@LC@ LC@LCBMCOCLRC=UCUC@OXC5YCUCUCnUCTCQC@OC@LC;LC=LCMCpMCMCMCfOCPCPCOCMCMCBMCLCLLC@xKC@LC@aNCYQC.MCKCLCLC@NC@OCQC@VC5_CiC@hCbChC@ ]CuTC@ZCRZC}OCMC@OC^UCRUCWCkCkyCxC@uC@ tCOCGRCSCRC@3RCnRC@3PCOC@PCSCSC+TCUCTC5TC{QC;OC=NCLCLC&LC0LC@LCMCMCMC@MCLCTMC)NC@xQCnTC@UCVC@XCWCTC.TCSC.SC@PC@MCLC@JLCLCMCNCMCNC@!PC@OCOCMCMC@LCMCLC@KC@KC@LCMCQC&NC^KCLCMCMCOCPCSCYCeC+kCeCgCbCTC@OUCXC@PCLC@sMC5QCcTC@SC@^CYvC@zC@wC;uCfQCSCSC@3RC@RC@3QC@OC@OCRCSCSCTCUC#TCTQCNCNCLCWLCLCLCBMCBNCOCOCNCMCWMCTMCOCETCBUC@UC@XCLXCUC@sSCRCRC@ QCOCfMCLC@LC@MCMCTNCRNCNC@aOC@ OCNCLCLC@LC@OCkMC@3LCLC@LC@MCPC@NC@sKCKC;MC^NCpPC@\PCYRC;VC@_C@!iCiCgCgCWCSCUC@QC@LCLCuNCfRC@sSCUCGmCnzC5yCvCRCSC^RC@8RCQC{PCOC@QCSCSCpSCUC@TC0RCOCMCGMC^LC@LCMCMCNCPCRCpPCLOCMCMCMC@ SCWC@UC@OWCXCWCEUC#SCQCPCNCiMCMCMC@MC@NC^NCENCNCfOCTOC)NCLC@LCLCLCOC@\NCLCLC#MC@MCQCOC@LC@JLCMC@aOC@aPC@PC@PC@SC@ZCcC&kCiC)jC@ ]CWTC@SCQCMCKCMCkOCRC@sRC{`C@xCzCwCSCSCQCYRC@PCOC@PC.RCiSCRC;TC@OUCRCOCNC.MCLCLC)MC@MC0NCOCSC@\TCfQCWOCMC}MCOC@VCXCVCTYCXC@UCSCpRC@3QC@xOC}MCLC@MCNCNCBOCNC@OCNCOC@NC MCLCLCMC@OMCQC@OOCMCWMCMCNCPCGPCMCLCMCOCPCPCEPCRCLWC@^CgCiC@jC@bC^VC0SC@\QC@sNCLC@ MC@MC.QCRCVC0qC.{CYyCSC#RCRCQCPCOC@aQCRC@RCRCBTCTC}PC@NCcMC;LC@ LCMC@MCNC#OC@RCWCUCEQCNCMC@MC@RCLYCRXC)XCZCpWCTC@xRCRQCPCMCLCLCMC.OCOC@aOCNCNCOCNCMCnLCKC@MC}NCLC{PCPC@NC@MCNCuOCPC@8QCEOC0MC)NC@OC@PC PCOC#QC^TC@ZCkaCpgChCfCYC@TCQCNCMCMCLC@NC@RCSCdCzCzCRCQC@QC)QCBPCPC@8RC@RC&RC@RC@SCQCNCMCLC}LC@LC@MCNCkOCPCVCZCTC@OCMCMC@OCpVC#ZC.XCYCZC@ WC@SCTQCPC@sOC@8MC@!MCMCOCOCPC@OC@ OC@sNC.OCNC@3MCLCKC@sNCNCMCiPCQCPCOC@OCPC@QCRCYPC@\NC.NCfOCuQCRPCOCPCRC@VC@\ZCaCdC@eCn]C5WCQCTOCNCMCMC@MC@JQCTC5ZC@JuC{CQCQCLQC)PC@PCQCRCQC@QC@SC^RCOC@\MCkLC)LCLCMCYNCOCfPCSC&YCBXCQC@NCcNC@sOC@RC@XC@OXCXCu[CYCVC@!SC&QCBPCpNC^MC@MC{NCOC@PC@PCLOCOCNCNCiNCEMCYLC{LCOC&OCMCOC=QCQCPCPCBRCSCTCTQCNCMCNCQC@JQC}OCOCkPCcSCRUCnZC_CaC@O_CkYC@SCOC#OCNCnNCMC@OC+TC=VCijC{CPC@8QCPCOCfPCGRC@QC@QC@QCRCLPCMCLCKCKC@3MCkNC}OC{PC@QC@UCcYC@JTCOC5NC@OCTQCWUC5YCVC@YC[C@!XC@xTC@!RCPCOCNCMC+NCOC@PCPCOCOCPCNC@OC{NC)NCLC5MCPC@8OCMC#PC@PCPCPCRQCRCSCBTC@QCNCMC#NCQC@QCOC@OCOCPC.RCSCBXC@[C]C@[CUC@JPC@OC PCOC@3OC@NCRCBWC^_C@OxCPCPC@OC&PC;QC@ RC@PC@xQC@xQC@PCiNCpLCpLCKC@LCMC@OCOC@OQC@SCWCBVCTQC^NCNCQC{SCWCWCVC[CZCRVCQC@QC@PCOCNCENC@OC@QC5QC}PCOCPCWPCOCOC{OCROC@OCMCQC@OCMC@PCOCPC@PC+QCRCTSCTCPCNC&NC@xNC@PCQC@PCOCPC0OCOC@NCPCTC5XC)ZCWC@JQC@aOC@QCQCuQCiOCWPCWCYC@nCLPCPCOC@PCQCQCQCQCPCOCLCKCLCKCMCOC@OC@3PCRC@JUCVCSC{OCNCLQC@SC)UCpXCUCXCZC@XC@SCPC@\QC@sPCOCNC@aOCPC@ORCQC@PC@OPCPCuPC@!OCPCnPCQCWPC&OCWRC0OC@MCPC@!OCNC;OC@OC@QCQC@RC@PCNCMCnNCPCQCWQCPC@!PCNC@MC@JMC@3KCMC=QCUC@3YCRC+OCnQCuRCYSC#QC@OCTCnZCcCOCOCOCcQC{QCPC;PCOCOC@MCLCKCuKCLC NCPCOCPCRCUCTCkPCNCOC}SC;UC@ VCnVCUC@YCXCUC@OPCOCPC{QC+PCOCQCLRCSCGRCPCQCQCOCWOCQCPC@JRCRCPCQC;OCNCOCNC@ NCNC@NC@aOCOCOCOCMCMCNCOC@QC@QCPCQCMCKCKC.ICHCGJCNCVCGTC@!OCPCSCTC@TCPCuRC[C\COC@OC@PC5QC@!QC5PCOC@OOC)NC@LCnKC@KC@KC#MC0OCOCOC@QCTC@TCQCOCBOC&RCUC@UCnVCTUCVCXCTVC@aRC@NCEOC@8QCQC@8QC@QC^RCSCSCYRC@QCPCPC@OCcPCRC@PCYRCTC@RC@RCOC@OC@OCkNC@sMCLCLCuMCMCMCBNCWMCRMCMC@NCQCQC@sQC@QCNCJCICHCEC@FC=GCPCkTC@PCOCfTC@UC@WCSCRC.XC]COC@OCYQC@3QC@aPC@JPCNCfNCMCKCKCLCkLC@3NCOCOC@aPCRCSCRCPC)OC=PC@JTC+WCVCUCTUCWC@OVC@SCOC@NCNC@JQC@\RCRCRCSCTTC;SCRC@JQCPCPCOC@3RCRCPCRC@TCTCSC@PCGPC@OCMCLCLC@sLC@8LCcLCLCLCLCLCLMC5NC@sOCQCRCQC+OCBJC^GC+HCECCCBC@HCpQCEPC@!OCcSC@VCYC@!XCSC^UC#^COCPC}QCPCPC@OCGNC5MC@8LCKCKCcLC@MC)OCOC PC.QC@RCiRCQCRPC@OCnRCVC@WCTVCTTCLUC@VCSC@PCcNCGNC;OCQCfSCTC{TC;TC#TC^SCRC@PCQC@QCQC&TCQCTPC@8SCUC@VC@TCQCQCOC;MCLCKCKCKC@KC}KCKCKC5LC@LC@\MCENCPC)RCQC@NCICEC)FCDC@BC?CACKCOCNCRCnWC@YC\C@VC@JTC[CPCRQC@!QC{PCOCkNCMCLC@KC0KCYLC@\MC+OCLOC@OCPCPC@QC@OQCQCPCPC@TCWCWCfTCSC@sTC@SC@PC.OC0NCNC0PCQC0TC@TC@TC@\TC@3SCRC@QCRQCiRCTSCTCYUC@xQCOC@SC&UCWCVCpRC@aQCOCMC}KCJC)KC.KC0KC@JCKCKCKCKCKCYLCNC@QCiQC@NCJCECTDCDC@BC@C}>CECLC=NCkPCfWCYC@3_C@O[CUCWC@\PC@QCPCOC@\NCNC0MCKC@aKC@KCMCNCOC{OC5PC@PCPCPC=QC{QC#PCRC@JVCVC@UCSCRC@SCiQCnOC^NC@ NC+OCPCRC^TC@TCuTC@SCRCRC;QCRRCSCUC@VC@TCPCRPC@!SCTC@VCWC@\SC@QCPCLC+KCJCnJC@JC@JCJCJCJC@!KC@\KCKC@KCGMCPCQCNCJCYECCCCCAC@C=C@CHCLCEOCUCZC@^C`CXC0VCQC+QC)PCOCNC@MC@LCKCKCLCENCOCEOC@PC PC^PCEPCnPCQCPC@PCSC@UC;VCSC@\RCQCQCOCNCNCNC@PC@QC&SC@SCTC@TC@SC#SCRCRC@TC@8VC;WC@3WC@TCPCPC{RCTCVCWCGTC@QCPC#MCJCYJCJC@JCJC@KCJCJC@aKC^KCJC@aKC@KCNCPC OCJCECCC@CCACk@CR?Cu>C@!EC@JC@MCTSC@ZC@]CcC+^C.WC#QC@aPCuOC{NCMCLC@KCYKC@LC@xMCNC#OC@OCPCPCOCLPCPC@JQCQCQCSCTC^TCQCiQCfQCPC@OCfNCTNCOC@QC#RCRCSCTC+UC.TCBSC&SCTSCTCVCWWC}VC0SC@PCPCQCSCUCVCTCQC@\QCMC@JC@xJC;JCJCJC@JC@JC@JC+KC=KCKCJCJC)MC;PCTOC+KCGCCC@xBCAC @C@C?CBC}HCLCQC;YC@8]CcCcCuZCQCOCNCMCpMCLC@3KC@KCLCiNCOCOC@PC@PC^OCOCPC&QCPC@PCRC{RC@OSC@RCPCQCPC@PCOCNCYOCPCuQCRC@RC@SC@UCUCTC@JSCTCTCUC@3VCUCTC@RC@QCQCQCSCTCUCWTCPCPC^MC+JCJCWJCJCJC@JC}JCJCKCKCKCKCJC@sLCNCEOCnLC@GCRDCBCEBCi?C?CAC@ACGCKCLOCWC]CkaCpgC@_CkPCOC&NCBMC@LCpKCYKCKCLC@xOC;OCOCQC@OC@\OCkPCQCPC{PC@QCkRC;QCQCPCPCYPCPCfPCOCfOCRPCQC@JQCRRCRCTCUCTVCTCnTCLUCUCBUC@sUC@OTC@SC@8QC@PCQCPCRC@SCTCWSC@OCOC@MC}JCRJCJCJC.KC@ KCLKC@JCBLCLCTLCKCGKC@KC.NCOC=MC@\IC EC{BCBC&@C@>CAC@BCFCKCNC^TC@3[Cn_CTgCeC@OCNCMCMCLLC@aKC@3KCLCYNCOCTOCRQCPC@NC@ PC@RCQCPCPCQC@3QCPCQCPCOCPCPCPCOCOCPCiQC@RC)SCTC@UCVCBWCVCVC;VCUC@TCcTCWSCRCPCOC@PC@OC@xPCQC@RC@ RCNCNC#LCJCWJCJCJCKCJCfKCcKCLCMC+MCKCuKCJC@!MCOCMC@JC#FCCC@ BC}AC=C@\@CCCECJC@xNC@QCXCi^C@dCiCOCYNCBMC@sLCKCJCKC0MCOCfOC@OPCQCBOCNCEQC=SC}QCPCQC RC@OCWPCPC@OC@aOC@OC@\PCPCBOC}PCPC}QC@SCTC@UCkVC)XCXCVCWCcVC)VC@!TC=SCRCQCPC@OCNCpMC@NC@3OCPCOCnMC@LCKCJCJC+KCEKC@KC@8KCKC@aLCnMCRNCNCLC@3LC@KC@LC@NCNCLCGCCC@ BCBC>C>CBC@ECJC OCPC@VCp\C@OaCiC@NC@MC@LC@JLC&KC@KCLCNCWOCOCcQCPCNC@OCkSCSC}QC}QCQCiPCNC@OC^OC5OC@xOCOC@OCYOCOCPCQCRCTC@aVCEVCWC}YC)YCiXCiWC@VC.UC@SCBRCPCEPCYOCYNCMC^LC@\LCLC@MCMCKC@xKC=KCYJCJCWKCnKCKC@KCLC@LCkNCNCNCMCLCKC;LC@!NCNCMCJC@EC^BCBC#@C@C>C.DC@KC@sRC@UCUC{ZC]CLC@OLC@xKCKC;LC@MCYNCpOCQC@OQCBOC@NC)RCVC)UC@UC@QC@sOC@NC@xNCNCNCNCROC PCOCPC@QCSCVC}WC@XCYCZC[C@s\C[C@[CWCUCTC@!SCPCRNCMCLC@MC@OLC@aLCLC@sLC@MC@LC@KC@KC@KCLCkLCKCWLCMCnMCuMC5OCEOC}PCQCOCnNC@ MC@xLC}LCLCNCNCNC#NCLCGHC@FCWEC@Ck?C@BCGC@PCLUCUCXC]CLCKCiKC)LCLCMCNCPCRCnPC@NC@OC}TCVCWCTC@PC;OCNC}NC@NCNC@OCOCRPC@PCRCSCVC#XC@XC@ZCu[C@\C@\C&[CZCYC@VC@TC@RC+QC@NCnMC@\MCLCMCLC@8MCcMCcLCMCfNCuMCKC=LCLCMCMCLCENCNCNC@OC@PCPCRQCOC@MCcMC}LCLCBMC@3NCOC=OCNC@\NCBKC@FCFCDC@CRAC{ECLC@SC@VCGWC@\CKC0KC=LCLCMC@MCuOC@QCQCPC5OCQC@VC@WCYCRCOCOC=OCNC@NCOCPCLQC#QC@\RC5TCVC@XC@sYC@YC[C]C@a]C@]CZC#YC@VCTCRCPC@3PCMC@MC@LCMC&OCMC@JOCcNC@OMCYNC@OCNCiLCLCMCBNCiOC@LCOCPCNC}OCPCPCQC@OC5NCMCLCMC@MCMCOCOCiOCNCWMCICGC}FCWCC)BCRDC@ICQC@UCkVCZC@KCnKCLCfMCiMC@!NC.QCRCQCOCYPC5SCWWC^[CYXC@QC@ PC;OC@xOCNCOC@PCQCQCRCLTC^WC@XCYC@YCT[Cp]C@]C]C@[C@3YC@VCTC@RC@sPCOC NCiMCMC^MCNCQCGPCkQCpPCMCBNCQC+QCcMCLCMCfOCPCNCNCPC^OC@OOC^PC@OCOCEOC^NCcMCLCLCMCuMCNCPC@PCOC}NCLCIC@xHC}FCCCCC@OGCNC#TCUCYC)KC@KCLCMCMCOC@8RC@RCRQCPCuQC5UCYC@J]C@UCPCPCPCOCOC PCfQC@8RCRCTCWCYC=ZCYCZC]C#^C^C^\CYCVCRTC@RCPCNCNC@\MCNC@NCfNC@JOC@SCQC@RCPC+NCNCPC@!RCOC@MCMC@OCkQCuOCMC#PC.OCpOCOCOC@OOCOCNC@MC@3MC@xMCLC.MC+NCOCPCPC@\OCNCKCJC0IC@ECDCBFCJC@QC@TCEWC@KCLCLCMCNCGQCkSCpRCQCQC@!SCWXC@]C[CBSCLQCPCLPC@QCPC@QCkRC=SCTCVCYC@ZCYCZC@\C@]C@]C\CYCUC0TCpQC@PCROC@OC@JNC)MC)OC)QCPCOCTCkSCSCQCNCOC@OCRC@PC@NCMCOC@QC+OC@JMCNCcOCTOCcOCNC5NC@NC@MCMC@MCMC0MC@MC@8MCNCOCPCOCMCLNC@JLC@KCHCTFCcFCHCcNCSC@UC@8LC@LCLCnMCOC@RCSCRCQCLSCUCp[C_CfXCQC{QC@PC@QCERC@QC@RCiSCTCVCYC@[C}ZCZC[C^C@\^C\CZCUCRC@QC@\OCYOCBOC@QC#OCMCQCRCRC.PC@TCTC@RCQCNCnPCOC@sQC5QC)OCMC0OCOC@NCLC}MCTOCYOCNC)NC=MCiMCLCMCMC@LCLCLCLC@xMCEOC@8PCkPCNC@OOCLNCLCKC@HCBGCHC@KCQC@aTCLCLC MCMCPCSCSC@RCSC@TC@XC}^Cn]CUCRCRCQCSC@RC0SCLTCTC@xVC=YC[C[C.[C@[C]C;^Cn]C[C@WCRCPC@\PCNCOCuPCSCkPC@NCRCGSC@SC@xPCSCiSCQCWQCEOC@PC@ PCBPCnPCNC)MCTNCRNC+NCLCLCNC@PC@OC@MCMC@LC@LC@8MC;MC+MCkMCLC@ MCYMCNCOCQC@!OCNCPC^NC NC=KCHCkHCICNCBSCLCLCLMC OCSC@TCYSCSCcUCVC\C_CZCSCRCRC@SCTC@SC@UCUC@aVC#YC[C}\CY[C[C@\Ck]C@]C[CXC)TC;PCPCQCOC PCRC@OUC)QC0PCWSCSCUC@JQC@QCQCPCQC@OCOC@OC@\OCOCMCnLCMCMC.MCLC@LC@NC@ QC@3PCMC@LC@OLCLMC@MCMCMCLCLC#LCYMCMCOCPC@sPC@NCQC@3PCOCNCKC0IC#IC@LC@QCMCMCMC@PCTC@SC0TCUC@VCZC^C)_C+XCYSCSCSCUCWUCVC@VCiWCXC[C;]CW\C\C\C@\C@8\C@\C@YC@VCQC@OC@RCTRC^QCQCSCUCQCQCRCfRC@TCPC@PC@8PC@PC@QCNCYOCfPC@NCRNCMCLC@KC5LCKCKCKCMC@QC@aQC@NC=LCLC)MCTMCLC@LCLCLCLC@LCGMCMC=PC@PC@aOC@PC@QCQC@JQCMCJCGJCJC@OCfLCLCTOC@8SCTCTCTCWCpXC@!]Cc`C@]C+VC@SC.TC@xUCVCVC@ XCXC@YC@![C\C\C^\C@\C\C\C@ZC@ZCVCSCOC@\PCSCRCRCfRCTC@TCSC@RCRC0QCRCEPCOCkOC@xQCRCNC@!OCBPCOCNCMCKCkKCKC@KCnKC.LCMCOCQCiOCLCELC.MCMC@sMC@LC@LCLCLC}LC@8MCWMC0OC=QC@PCPC{RCnRC}SC@PC@LCJC^JC@JMCLCMCPC}TCTC@!UCVCXC&[C0_C`CZC@8UC@TCUC@VCWC@XCYC@a[C[C\C@ ]C@\C=\C\C[CZCXC}WCWTC@QC@\OC0QCTCSCSCSC@xUCSCLRCQCPC@aPCPC#OC@NCOC=QCRCkOCNC@OCNCNCNCRLCKCKCpKCKC@3LC@LC@ONCPCPC@LCLCGMCMCMCLCLC@LCGLCLCiLC0MC@aNCQC)RCfQCWSCSCTCSC@OCLCJCKC#MCNC@SCUCUCVCXC@YC@]CaC@_CXCEUC VC@WC@WCYCZC[C]CW]C@a]C]CE\CE\C@8[CYCXCRVC@sTC@\RCPC@PCPC0UC@!TCRC@SCRSC@QC@sQC@OPCOC@\PC@OC@NCPC@PCQC@QCLPC^OCOCNCOC&PCLCKC}KCKCLCLC@LC@LCOCROCiMC@KCLCMCMC5MCLCLCYLCRLC@xLCLC^MCOC^RC@RCSCUCUCUC)SCuOCKC=KC{MCEPCTC^UCVC;WCYC\C+`CaC\C}WCWC@sWCWCfXCTZC@[CT]C ^C@!]C@\\C@J\CL\C[CYC@XC@UCSC@RC@RCQCPCQCYVC@TC@QC@RC{QC.PCcPCOC@PCOCOC@OCQCRC@!SCRCPCuPC@OCNCOCPC NC=MCLCLCLCLCMCLC@aMCNCMCLC@sLC@JMC@MCLCLCLCGLCKCLCLCLCEOC@ORC@SC&UC@VCWCWCUC@ORCNC#LCiNCQC@UC@UCVCXC{[C@8_CaC`CkZCWCWC@!XCpXCRYC[C@\C]C]C\C}[C[C0[CYC@8WCUCSCRCQC)RCRCPCRCVCSCYQCnQC@JPCkQC@8QC OC{OCPCTPC#PCSC;TCTCRCTQCfPCNC^NCOCOCRNCBMC.MC.MC@\MC@LC@8NC+MCLC#MCMC@8LC@LCLC{MCLCLC@OLC#LCuKCKC@LCLC@MCQCSCVCWC@ XCXCuXCTCTQCMCkOCUCUC@VCVCZC@]C`C@aC^CYCWC}XCuXCYC0[C\C@]C]C5\C@ZC[C@ZCcZC@WC@TCTCRCRRCfRCRCRCQC#TCLVCRCPCPC@PC@sSCRC@OCOC{PCPC@PCESCTC@UCSCRCPCNCMCNCfNCMCMCMCMC@MC@MC}MC@NCkMCLC@8MC@8MCLCLCiMCYMC@LCRLC&LCKC@sKC}KC0LCLC@OC@SCVC@8YC@YCRYCiYCTWC;TC@8PCpQC@3VCVCGVC&XC[C@^C`C_C@[C@YCYC@YCTYCZC[C.]C]CG\CZC ZCBZC@YCXCBUCfSCRC&RC@RC@RC^SC^SC@RC@ TCSCPCWQC;RCGSC0VCTC&QCPC@xPCOCLPCRC{SC@TC&SCRCOCNCMC^NCMCMCMCkMCTNCMCGMC@MCNCMC@aMCMC@sMC@MC@xMC@OMCTMCMCLCLLC@KCpKC@!LCKCRLCNCQCUC@ZCZCYCcYC@XCVC+SCETC@3VCVCVC.ZCi]C_C_C]CZCZCYCpYC@ZC.[C\C.]Cp\CZCEYC=YC@XC YCuVCRC@SC@RC@8RCRCSCTTCSC+SCiRCPCPC@\SCTC@UCWCWUC@QCnPC@!PC+OCcOCPCfRCSCRC@RC@JPCNC@NC@NC@MC@OMC}MCMCMCNCNC@MC#NC^NCNCNCMC.NC@\NCNC#NCMCLC^LCLCkKCuKC)KC#LCLC}OC=TC@YC@[C@xZCuYCXCpWCUC@UCUCRVCWC^[Cp^CT_C@\^C\CZCZCYCcZC[C^\Ck]C]C@3[C@ZCYC=XC^XC=WCTC@RCSCQCRC)SC@SC@xTCBSC.RCQCOCRC@UCUC@xWC@VCTCQC@PC@8OCNCOCTPCQCpSCQCuQC@OCOC+NCnMCMC@JMC@MC@MC NCfNCNCNCNCNCNCMC)NC&OCOCkOC@\OC@NCMCLC=LCKCpKC;KC@ LCKCMCQC@WC[C@ZCXCXC@aXC.WCVCBVCUCYC)]C_C_C\C[C[C@ZCZC\C@x\C@]CB]C5[CcZCXC@WC@VCWC@TC;RC5SCSCQC@\RCSCSCSC5RCRCQCPCTC@WCBVCVC0UCETCQCOCOCOCPCPCQCQCfQC QCOCNCMCMCNC@MC NC@MCNCfNCNCNCOCOCNCTNC@NCOCRPCiPCPC@sOCOCMCLC&LC@KCfKCuKC@KCiLCNCSCYC@ZCXC@WC@WC@sWC)VCcVCVCZC]C^CY]C@\C@\C[C@[C@\C\C\C]C[CZCcYCWC^VC@UC;VCRC@QCSC@\RCPC@RCRC{RCQC@\QCSC)SCRC@VC@3WCUCTCfRCRCQC@PCPCPC@ QC@PCBQCPCGPCpPC+OCNC@MCMCMC)NCNCNCOCEOCOCOCNCOC@NCNCNCOCQCQC@8QCPCpPCGOCMCMCKC@KCKCKCKC#MCPCVC)ZC@!XCLVCVCkVC=VCiUCXC[C^C^C\C0]C@\C\C5\C^C\C\C@\C5ZCLYC}XC@VCBTC@3UCTC@PCQCRCQC@JQCLSCQCBQC@\QCTRC0VCuTC@TC@sVCpTCRCQCPC^RCQCuPCRPCPC@PCuPC@ PCPCOC@NCOCNC@NCNC@NCNCTOCOCOC@PCOCOC}OCOC@ OC@NCOCOCQCQCuQCLQCQCPCkOCMC@LC@KCKC{KC@KC@OLC@ONCSCuWC@WC.UCRTCTC#VCcUCYC]C@^C]C]C\C]CY\C]CR^C\C[CZCYC@ YCkWC}TCSC@UC@xRC@JPCQCWRC@3QCQC#RC0PC=QCQC.TCVCTCSCSCQC@\PC@OCPC@!QCPC@3PCOCcPC@OCOCNCOC@NC@NCNC@OCOCOCOCPC@JPC@PCPC QCRPCEPC@OC@OCOCkOCOCTPCQCQCRC0RCQC@RC@OPC@NCENCLC@KC@3LCKCKCuLCOC@TCRVCTCRCTSCUCYWC&[C)^C@^C]C]CY]C]C\C_C]C@[CYCXCXCWC@UC^SCSCTC@PC@PC@QCRCPCRC@PC@sPC@RCRC)UC@UCRSC.QC^PCNC)OCNCOCPC0PC@OCkOCYOCNCNCNC@NC@8OC^OCOCPC=RCQCRC@sQCuQCPC{PCPCPC@PC@!QC@OCOCPCPCPCQCRCpRC@QC)RCRC@xQC@PC@OCMCKC LCKC@KC#LCkMCPC@8TCSCQC@aQC@TCXC\C^C^C]C]C]CY]C;^C^C[C@YC@WC@ XC5WCVCSC=RC+TCRC@8PC@QC0RCRCPCRCPCQCSC@SC@\TCESCPCOCNCuMCNC0NCNCOC@8OCROCWOCGOC@\NCNC@xOC@OCPCRQCRCSCSC@TC=TCSC@sRC@!QCPCTPCPCEQC@RC@PC@OCOCQCQCBRC+SC@RCRCTRCRCcRCPCPCNCMCKCKCKC@KCKC@MCPCRC)QCLPCUC@\ZC]C^C.^Ci^C^C@\]C]C^Cn]CYC@VCUCcWC=VCTC}RC=RCSCPCQC@QCRC@QCPCQCQCYTCSCRC+RC+QC@NC@MC5MCMCpNC@NC.NCNC@8OCOC{PCQCOC#PCQC@RC@SCTCUC5VCEVCnVC@VCVCYTC^RCiPCPCkQCSCTCRCpPCPCRC+RC+SC)TCGSC@RCiRCRC SC@QCnQCPC{NCLC@JLC@LCKCKC@sLC^NC@PC@JPC=OC@WC[C^C^C^C^C]C@3]C]C@^C{[CWC0TCUCUCSCRCpQC@RCRCPCWRCRCRC+PC@3RCRC@SCTC=RCPC&PCOCMC@8MCuMCNCpNC@NCYNC@NC@OC#PCRC.SCRCRCWTCUC.WCRWCXCXC=WCEXC0XC@WCWC@sSCQCQCRCTCVCRUC0QCPC}RCSCSCTCSC@JSCRCRCSCRCkRC@QCPC@8NCLC@KCLCKC@JLCLC@MC)OC@NC@8YCn]CG_C5_C@^C^C]C.]C@O^C{]CWCTTCESC0UCTCQC)QCPCiQCQCPC;RCQC@aPCLPC@SC@SCiTCSCPC@OC@OCGOCLMCMCEMCNCNCNC OCOCPC#RCTCWUCTCUCWCXCYC)YCfXCRWCVCXCXCXCBZC@!VCYRC@3RC@\TCVC@XCEWC@aSC@8QCLRCGTCTC@UC=TCkSC@RCRCYSCRC@RCRCRC+PCMC0LC@KC@KCKCKCLCMC@3NCZC@^C_C_Cc^C]C@]C=]C@^C@ZC@UC@QCSCGTCQCpPCPCPC@OQCPCGQCQCPC@OC=RCUCWTCTC+SCOCNC OCNCNCkMC;NC@JOC@OC@JOCOC@PCQCSC@3VCWCTWC@XCYCZCn[C&YCWC+VC@xVCWCWCXC[CXCfTCTCUC=XC)YCXCTC@sRC@sRCTCUCUC@OTCTSCSC@ RC.SCSCSC}SCSC;RCROCLC@\LC@KCKC@KCLC@OLC}MC\C@!_C)`C_C=^C}]C]C]C}]CcWC@ RCPCSCRCOCOCQCPCTQCPC@sQCQCROC@PCpTC@OVCRUCSCQC^OCcOC@OOC@ OCMCNCLOCpPCPCiQC{QCRCSCTTCUCXC@OXCYYC&ZC[CG[C@WCUC UCUCXC)XCXCf[CTZC#VCTCWCYCTZCYCBVC@SC^SC@TCVC@VC@TCSCRC#RCRCSCSC@TCSC;SCQC@NC@!LCKCKCKCKC@sKC@LC]C`C`C^C]C]C]C]CZC)TCnPC&RC@RCPCOC@PCnQCQCQCPCPC@PC@PCRCVCVC@sTC5SCQCPC@OCfOCNC^NC&OC@PCRRC@RC SC@ SCRC@TCnTCUC@8WCWC@JYCZC@s[CYCWVCSCSCVCXCXC@\XCZC0YC@VCUCWCZCnZCWYCWCUCSC@TC@UC@UCTCpSCRC@RC@RCSC@SCTCWTCSCfSCGPC@MC@LCKC{KC@JKCKC@KC@_C`C_C@8^C]C@]C@]CB\CVC@\QCPCRC@QCfOCNCQC@QCQCPCQC@QCPC)QCTCWC@UCRC@QCPCPCPCOCWOC#OCPCGRC;TCTCSCSC@aSCTCSCTC@UCVCYC}YC@ ZC0XCTCSC@SC@xVC YCXCiXCXCXC@VC@VCLWC5ZC#[C@YC@WCUCTCTCUC@TC@SC}SCSCRCRC=SC@SC{TC5UCTCTCRCNCuLC@KCKCKCJCLKC_C@8`C@O_CB^C0^C^CL\CYC@aSC@OCQCQCuPC@!OCOC@SCRCpQC@QCfRC)QCQCRCWVC@OWCSC@PCQC@QCRCQC@PCPCLQCRCTCkUCGTCTC@aSCSC+TC;SCpRC@TC)VCXC5YC@XC@VCYSCYRC#SC@VCYC@XC@XC=WCiVC0UCUCVC@XC[CYCWCpVC@ VC#UCUCTTCSC@ SC)SCRSC@8SCuSC)TCTCUCTUCTC@TCPCMCGLCKC@xKCKC^KC@s`C^_C@^C@x^C]C+]CZCVCYPCPC@RCPC@OCuNCQCLSCQCQCRC5RC@QC@RCYTCUCVCQCuPCPCTQCRC@RCRCRCcSCSCLUCcUCTCGSC@SC5TC@OTCRCQC@SCUC@XC.YCcWC@JUC@RCRRCRCVCXCnWCpWC@VC{UCkTCTCUCWCYCYCXCVCVC@\UC@TC{SCSCRC#SC@8SCSCSC@TCTCUC@UC@8UC@UC@SC+OCLC@KC^KC@3KC.KC5`C^_CL^C^CY]C\C@XCSC.PC@QCQC@OC=NCOC@xSCEQCQC}QC@TC{QCRCSCTCTUC@SCOCOCPCQCSCSCTCTCUCTC@TC@TC@RC@\SCTCTC#TC@RC=RCcSCTCWCXCVC;TCERC)RC@RCUC@WC0VC@UCTCSCSC@SCBUCVCWCYCWCTVC}WCUCUC{SCkSCRC@RCRC0SCTC@TCRUC;UC@UCUC@UCUCQCMCfLCKCEKCKC_C_C^C@^C\CXCiUC@OPC@\QCRRCuPCOCNC@QC@SCPCRCfSC@JTCQCTC@SCiSCSCQC5OCOC@!QCRCGTCTCUC@UC^UC@sTCTCfSC=SCfSCUC@UCTCRCRCYSCLTCVCWC VC@SCQCRCRC@xUC^VCnTC0TC SCRC@RCRCSC+UCWVCVCVCUC@WC@VC)UCSC5SC SCYRCRCRC@SCTC@sUCUC+VCVC^UCiVCcTC&OC@MC{KCKCKC_C@^C^CR]C}ZCVCnRCPCRC@!QCOC@8NCOCRCQCPCSC@!UCBSCRC}UCnSC@RCQC;OCNC@3PC5RCSC@\UC0VC0VCVC&UCSCSCSCSCcTC}VCVC@TCRCRCLSCSCTCTVCBUCSCQC@RCBSCTCUC)SCRRCQCRCRCQCGRCSC5UCUCiVCiUCWCWCUCTCSCSC^RC@RCRCSCGTC#UCuUCVCVCUCUC+VCRCTNC0LCKC@KC@x_C^C@]C\CTWCSC}PCQCQCOC@OCMCkPCRC@JPCQCSC UC@QCTCUCuRCQC@OCENCNCQCSC@TCBVCVCnVCYUCBTCnSC.SCSCTCUCWCUCUCRC@RC@8SC@RCRTC0UC^TCRCkRC@ SCRC@TCUCYRCPC@\PCQCpQC@ QC@aQC SC@!UC^UCnUC+UCVC#XCBVCUC@OTCiSCRCuRCRC+SCSCTC@aUC@3VC@VCfVCUCVCTCPCRMCKCKC^C@O^Cf]CYCTC@QCPCQCPCOCEOC{NC;QC@QCOC@RCTCSC@JRC&WC;VCQCPCNC@MCiOCQCfTCUCVCTWCVC@TCSCESCSCTTC@UCnVCVC@UCTC@RC@RCRC@RCSC@TC=SC@\RCRCSC@RC@SCSC@RC@OCOCOCPC@8PCRPCRCTC@aTCGTCTCUC@XC.VC@TC@OTCSC@ SCRCRCRCRCRTC@TC^UCWCVCEVCVCVCRCNCLCKC^Cu]CT[CUCnRC@aPCQCPCOC@OC)OC@OC@PCPCPCSC@sTC.RC@xSC@YCTC@sQCEOCMCNCPC+SCUC@xVCGWCuWCfVCTCSC@SC@OSC@TC@VCWCVC@UCTCRCQC RCuQCRC@SCRC{RCSC}SCRC@SCRC0QCOC0OCNCPCPCOC@\RCUCTCSCSC@TC@3WC@VCUC@\TCSCSCRCRCRCSCuSCpTCTCVC@\WCVC@VCVCTC@xPC=MCKC;^C\CXCiSC;QC@PC@sQCNCOC#PCNC0OCiPC5PC&RCSCSC@QCUCXC@!SCPC)NC+NCOCQC)TC+VCVC@XC@OWCVC+UCTC@SCSCGUCVCVCUCUC@SCRCQCkQCRQC@\RCRCRCRCYTCSCTSCuSCRCPCOC@NC{NC@!OC@aOC@OOCQCTC@TCTCkSCTTC;VCVCYUCLTC@SCSCRCRCRC@RCRSC@SC@sTCUCVC+WCVCVC@VC@RC0OCLCu]C[C&UCQC@PC.QC@OCNCGPCEPC@OCNC@sPCPCSC)SCRCfRCWCWC@3RCOCMCOCPCpRC@TC@VCBWCWCpWC0WCUC@TCETCnTC@8VCVCfUC@JVCWVCTTCQC@PCPCPCQC@RC@!RC@RCTC@OSCSCSCQCPCfOCNCNCWOC@NCOCPCSCTC@TCcSC@SC5UC@UCUCTCSCSCRCRCSC=SC@SCnSCSCTCUC WC^WCVCGWCTC@aPCpMC=\CXC@RCQCPCPCMCNCpPCOCiNC&OC@3PCPCRCRC@RCETCWCTCPCNC@MCOC@QCSCUC@aVCVCVCpWC0WC@UCTCTCUC@VC VC@UCVC@WC@TCQC@PCPC@QCQCQC@QC@RC&TC@SC5SCSC@QCOCROCpNCpNC@\NCLNC@OCPC@RCRTCSC@8SC@xSC TC@aUC@UCTCpSCRC@SC@RCRCRC0SCnSCSCSCTC@!VC@WC@WCGWC@aVC@xRC@NCTZC@8TC@ QCPC}PCNCLCOCRPCTOC@NC)PC)PCQC@RCSC}SCUC+VCRC@ PCMC@ OCPCQC@sSC@UCUCUCVCWC;WC@OVCTCUC=VCkVCVCVC^WCWCUC0RCRQCQC@xQC@QCQCQCRC@SC.SCSC@SC+RCOCuNCNC;NC;NCNCNCOCiQC^SCYSCSCSCSCTCTCTC@SCRCBSCRCRCRC&SCLSC@sSCTC@TCWUCVCWCWCWCWTC#QC@ WCQCPCPC@OCLCMC@OCPCNCNCPC@PCRCRCTCSCTC@OUC5RCOCMC@OC@PC.RC^TCUCcUCVCiWCWCBWCkVCUC@\VCiWC^VCVCWCWCEXCUCRCGQCQCQCQC@QCcQC@RC}SC}RCSC@SCQCOCNCMC^MC@aMCGNCMCNC@PCRCRRC@RC@RCRC;SCSCTCYSCRC@RC@SCESC@OSCRC+SCfSC@SCTC@ UC0VC@sWC@WCWC@8VCRC@ SCPC}PCOC=NCELC@NC@\OCOC NCOCOCkPCQCSCTC=TC@TCTC@xQCiOCNCPCQC@RCETCkTC@!UCVCWC#XCWC@VC5VCVC@WC=WC@JXCYCpXCXCUC@RCQCEQCQC@sRC0RCRCRC{SC@ SC.SC;SCBRCOC OCMC0MC@LCYNCNC@aNC@8OCPC{QC@JRC@RC@RCRCRCRSC@SCuRC@JRCRC+SC@SCSCRSCLSCSCRTC@UCUC+VCWC=XCYWC}TCQCOCPCNCMCLCNCOC0OC@3NC@PCOC@PC@8SCSCSCSCUC@TCQCOC@OC}QCQCSCSCTCUC@WCEXC@WCfWC@ WCVCcWCGXC@JXCBYC;ZCXCWCUC@RCQCQCfQCSCQCQCkRC@aSCSC}SC@8SCQC QCOCMCLCLCNCNC@sNC@ OCOC;PC@sQCRC@sRCRC@RCRCSCGRCQCRCRC@SCSC@SC@ SC@SC;TCUCiUCVCVC@OXCWCEVCOCPCOC=NC@!LCMC#NC5OC{NCOC@PCOCQC@JTCRCSCTTC#UC0SC@xQCOCpPCRCRCLSC@SCTC@\VC{WC@WCWCWC#WCYWCXCuXC@XCZC@8[CXCXCTCRCQC@PCQC@SC@sRCQC@RC)SC@SC=TCSC@QC@xQCEPC@MC@xLC@LC@MC5NC&NCNCMCnOCPCQC@8RCRCRCRCSC@xRC#RCuQCERC@aSCSCSC@SCcSCTC@\TCUC.VCVCTXCRXCVC@OCPC@NCLC5LCiMCNCNCNC@PCYOCOCWSC;SC@RC@RCTC)TC RC;QCOCTQC@RC@SCuSC0TCUCVC&WCVCVCWC@WCRXCXCXCYCE\C^[CXCWC TC@RC@RC@QCRC@RCRCRCRCSCSCTC{SC@QC@QCPCNCLLC@OLCLMCGNC;NC}NC;NC@MCiOC@8QCQCQCRCSCTSC@3SC@aRC@sQCQC@RCTC&TC TC@RCSC@TCUCUCRVCWCXCXC@OCPCMCGLCEMC+MC#NCcNCNCPCNCfQCSCQC@RCRCLUC5RC@!RCPCPC@RC@sSCSC@SC@TCUCVCVCVCpVCWCXC@JYCYCXC@ZCf]C@[CBYC@VCRSC@SC5SCGQCRC@RC@ RCnRCpRCRCSC@TCSC@QCLQCQCNCLC&LCuMCNCcNC}NCcNC5NCNCOCPC)QC@RCSCSCSC@3SCRCQC@RCSC@OTC@SCuSCSCTCUCUCVC@ WC@WCEXC+PCNCcLC}LCLC5MCBNC@NC@aPC@OC@OC@SC@SC@RC@sRCcTCSCQCkRCPC#RC&SC@TC;TCBSCSC@TCVC@VCUCVC.XCYCYCXCXCZC]CW[CXCUC5SCSCiSC RCRCRCRCRCRC@RC}SC@ TCSCPCQCPCMCLC@LCMCNCNC@NCYNCNCMC@JOC@ PC@PC@RCpTCTCTCTCRCQCQC@RCSCTC+TC@JSC&TC@TC@UCVC+WCWCiXCOC}MC+LCMC+MC&MC@ NC@NCRPCOCQC&TCpRC@SC;RC#UC&QC@QCQCRCRCSCTCTC{RCRC}TCUC@aTC@TC.VC.YC@YC@ YCGXCXC[CR]C@\[CVCTCRCSCSC=RC@RCQC@QCRCQCQC@RC@TC@8SCQC QCPCfNCKCuLCMCNCOCNC@NC@MCMC@NCOCOCQC{SC@TCRVCUCSCTRC@QC@RC@SCSCSC@SCSC)TC&UC VC@3WCWCXCROC@LCMCkMCuLCMCMCOC^OCiPCBSCTCnSCRC@ TC@aSC@OCRCLRC.SC@SCTC.TCRC@\QC+RCuSCTCESC@TC.WCYCYC#YCWCYYC^\Ck]C#[CEVCfSC+SCSCSCRCQC@QCGRC@QCPC5QCRRCYSCSC@PCPCPCMC@8LCLC@MCOCGOCNCNCMC@3NC@MCNCOCPCQCiTCVCVCTUCRCcRCnRCRCSC@!TCRCGSCSCTCcUC5WC@WCuWC&NC0LCNCLCLCMCNCWOCBOCRCTC@SC5TCRCTTCPC}PCERCRCSCSCSCRCQCGPC+QC@RCSCRC@JTCWC+YCLYCXCWC@YC\C\C@ZCUCRC#SCSCSC;RCRCQCkRCQC@xPC^PC@QCnRCfRCOC&PCEOCMCpLC5LCNC@OC&PC@\OCNCNCBNCkNCNC=OCOCPCSCUC@ XCWCTC@RCfRCRC@sSC@SC@8SCRC@OSC@SCUC)VCWCWCMCMCNCWLC=MCOCNC@NC@PCETC@3TCTCSC;RCLRC^OCQC@QC}SCSCRCGRC@OQCEPCOCPC RC0RCRCTCGXC@XC}XC@!XC@!WC@YC]C\CYCWUC@RC+RCRSCRC@RC@RCnRCRCQCOCOCPC@QCQC@OCkOCNCLCGLC5LCMC@OC@xPCOC@NCNC&OCOC=OCOCTOCWPC=RC@TCuWC.XCpVCYSC=RCQCGSCSC@RCWRC@SC@RC+TC@TCVC)XC{LCuOC@MC@!LCNC@!OC@\OC OCESCcTC@TCiTCQC0RCOCOCQCQC@\SCRCQCQC@PCTOCiOCPC}RCQC@RCUCWCWCWC@3WCVCYC\CBZC@ YCuUC.RC@xQC@xRCRCRC SCLRC@!RC#QCOC@NC{OCpPC+PCGOCNCNC@LCLCfLC@MCOCkPCPC@!OC@NCOCOC=PCOC0PCOC@PCRC@\UC@8XC@XC@TCRCQCiRC@xSCSC@RCRC@RCRC@TC@8VCWCNCOC@LCRMCOCnOCOCOC@TCGTCTCRCOC@aPC@OOCPCPC@QCSCQC@sPCWPC@OCNCOC^PCRC@3RCSCVCWC.VC@WC@3VCVCLZC.\C.YC@WCTC@QCQC@QC@aRCRC.SCGRC@QCPCOCNC@NCOC@OCNC NCTMC@sLC^LC@LC+NCOC5QCPCPCOC@OC@aPCQCQC=PCPCPCQCSC@ WCYCVCRSC&RC@!RC@3SC@SC.SC@ORC@RC#RCSCRUC@VCPCMC}LCOCiPCOCNC@QC TCTC@ TC=PCEOC&OCPCPC+PCRC0RC@PC@OCPC@NCNCOCQC@RC+SCuTCVCVC@\UCVCuUCVCLZC@xZCWCUC^TC@JPC@8PC@8QCQCRCRCuQCPC@PCNC@MCNC#NCNCMC&MCLC^LC@sLCLCMC@ PCPC@QC@PC@8PC@ PCQC@SC@SCRCQC+QC@!QC@RC@UCXC@WC@SC@RC@!RC@sRC@SCSCRC@QCuQC@JRCBTCVCPCLC@8MC@PC@PC@NCNCSCRSC@3TCRC@NCNC{OCQCPCPCuQC QCOCcOCOCNCOCPCcRCSCTCVC^WCUC@TCUC@8UCVCXCGXCVCTC@SC@sPCOC@QCQCcRC@3RC}PCOCpNC@\NC@aMCMCTMCMCMCLCLCKCpLC@sLCMC@OCQCQC^QC@QCPC;RCUCLVCTC}SCRC@\RCERCSC0WCXC@!UCLSCQCQC@8SCSCRCQCQCQC@ SC0UCNCLC)OCQCOC@MCLPCRC@xSC@8SCOC@NC@NC@\PC@8RCWPC=PCPC@PCTOCLOCNC@3OCPC RC@RCfTCVCWCWC@TC@TC@UC@TC=VC.XCVC0UC@SCSCPC@PCQCcQCQCPCBOC@MCYNCMC@3MCLCLC@MC@!MC@LC@KCKCnLCLCYMCOCQCERC@QCBQCTQC@RC@sVCXCGWCUC@TCTCBSC&SC@UCuXCVC@ SCQCQC@QCSC@xSCQC@sQC)QC&RCGTC@MCMC@8QCPC@JOC@NCQC@sRCBSC@!QCNCOCOCQCRC@3PCBPCPCOC@NCNCNCOCQC}RC@SC@!VC{WCWCVCTC@UC0UCTC@JUCVC@UCTCRTCSC@PC@PCQC.QC@PC0PC{NCMC{MC)MCLC@xLC^LC;MCLCLC5LC@LC@LC@\MC@JMCNC@8QC@!RC@3RC@QCQCRCcVC@ZC+YC@XCWCVCnUCkTCfTCkWCWC@TC&RCcQCPCRCSC@RC@QCQCLQC;SC@LC@xOC RCPCkNC@aOC@!RC#RCLRCOC@OC@aOCPCpRCQCOC@3PCpPCNCNC@NCfOCPCQCRC@JTC@OVCWC#XCGVCTC)UC@UC@3TCUCGVCUC&UCTC+TCPC@OQC;RCPCPCROCNCMCLCLCMCLC@OLCLCLC@LCKC)LC@LC@LC;MC@NCPC@RCRC@QCRCiSC+VCYCZC@!YC}XCpXCWC&WCTCGVCLXC&UCRC)QC@PCuQCESCSC&QC@PCPCQC@NCQCRRCLPC@MCnQC{RCQCYQC@ PC@PC#PCRC@RCPC0OCkOC+OCGNCNCNCOCPCQCkSCRTC@VCWC@\WCUCUCUCUCSC@UC}UCWUCUCkUCTCPCQCRCPCOCEOC@MCLC@LC@LCcLCLCWLCLCLCLC+LC@LCLCLCMCNCPCRCRCcRC5RCSC0VCcXCZCYCRYCpYCZCYCWC@VCVCVCRCEQC@PCPC@ RCSCuRC@PCPCPC=PC}RC&RCROCOCRCQCQCEQC#RCkQC0QC@RCQCOCNCTOCNCYNCNC OCPC@!QCGRCkSC@OTCUC@VCUCTCVC@VCTCSCUCUC;VC@VCTUCnTCQC@8RCQCPCOCNCNC@LC@aLC&LCuLCLCLCLLC@8LCLCLCBLCkLCLCiMCNC@ PCRC5SCRC@sRCSC@VCWC@JYCYCRYC+ZCiZC5[CZCWCVCWCTCQCPCPCPCRC@!SCQCQCPCQC@RC&QC&NCQC@QC@OQC@QC@JRCTC@QCRCQCRPCNCNCNCMCNC@NCBOCpPC.QCRC@OSCSCETC#UCTCTCWCWWCTC@SCLUCTCVCVCLUCSC@JQCRCQC@OCOCWNCMCLCLC@ LCELCLC@LC@LCELCLC@!LCcLCLC@LC@xMC@ NCOCQCESCRCRC@SCUC@xWC^XCYC^YCYCZC[Ck\CYC@WCLWC@ VCQCPC@ PCOC@aQCRC}RCPC@PCkRCRCOCNC@RCBQCQC{RCTCTC@RC@RC@PC@NC@NCNC0NC@MCOCNCOC@8PCQCQCSCRCRCRC@sSCUCTXCXCTC@TCYTCUCnWCWCUCSC&QC@QC@PC.OC&NCMCLMC@LC}KC@OLC LCnLCLC#LC@LC&LCKCLCLC&MC+MCcNCcOCEQC{RCRCSCSC@UCVC@WCuYC@YC@XCYCZC\C{[CLYCWC#WCSC@PCOCOCPCRCRCQC@PC@SC;RCNCTQC@xRC)QCRC@TC}WCSCSCPC#OC@NC@OCOCMCTNCNCNCYOC@ PCPCQC+RC@sQCQCQC@RC@UC@JYCYCUCTCTC@UCWWCpVCTC@RC QCQCPCOC@MC5MC@LC5LC@KC@!LC@KC)LCcLC@KC@KC LC@xLCfLCLCLMC@MC@!NCOCPC5RCSCRSC{SC@TCVCVCXCBZC0XCXCYC[C@J\C@\ZCXCXCUCQC@!PCOC@OCPCQCGRCQCSC@PCTOC.RC5QCpQC@SC@VCWCRCRCWOC@\NC&OC@aOCNCMCNCNCNCcOCEOCPCfQCQCpPCOCPCkRC{VCZCLZCUC{TCUCUC#WCUC@!TCRC@\PCuPCRPCNC@LCLCnLCKCKCKCKC@ LCBLC=LCKC@LCLCLCMCkMC)NCMC+OC=PC@QCRC@RCpSC.TCUC@VCWC&ZC YCXC@YCYC[CZC&ZCXCWC TCPC@aOC=OCOCPCRCQC@RCOC;QC@QC@\PCnSCUCGYCLUCRCkPCiNCNCOC@OCMC@NCNCNC{NCNC;OCPCPCOCkOCOCOCLRCiWCZCYC@UC@ TC@xUC@VC@JVC&UCSC@QCOCOCGPCNCLC@LC}KC@KCKC{KCKCLC@8LCLCGLC5LCLC@LCLC@MCMC^NC OC@ PCQC@RCSCSCSC@3UCVC@sVC5YCYC@WC@WCWCYCZCZCYCYCiVC^RCOC@NCGOCPCQC+RC@QCOCQC@PC@QCUCYWCYCRCQCNCMC}OCEPCNCMCNCNCGNCOC@NCOCiPCOC@!OC OC@xNCOCRCWCZC=YC VC@TC@OVC@xVCUC^TCRCQC@8OCNCOCNC@LC@KCKCKCKCYKCKCKCLC&LCKC}LCMCLCMCMCNCTNCNCRPCGQCRC@RC@RCSCTCVC)VC@WCYCWCWCVCWCXCYC ZCYCXCiTC@PC=OCNC@OCPCLRC.PC@QC@sQCPCSCfVC=YCVCQC@PC@3NC NC)PCOC+NCMC@aNCNCNCNCOCOC@OCLOCNCNC)NCOCRSC@XCYCYC@VCuUC@aWC@VCUCSCRC@QCOCNCOC@!OCMC@JLC@KCJCGKCKC0KC@KC@KCLCLCLCMCMC;NCMCMCNCOCOC@QC@RC@RC@RC@RCTCfVCkVC.VC@XCTXCVCVCRVCVCkXCZC=ZCYCVCRC+OCNCOC@OC=QC@PC=QCPCQCVCWCYCSCPC@OCMCNCPCNCNCNCNCNC{NC@NC@\NCuOCNCNCNCNCNCnPCSCVC@XC0YC@WCYWCXCfWCUCTC@aRC@sRCOCuNC@aOCOCNC@OLC=KC&KCLKCJC KCnKCKCYLCLCMCMCMC+NCBNCNCNCGOCOCQC@SCcSCRCkRC@TCVCVC@UC@WCYCVCVCUC{UC@ VC.YCZC@ZCXCTCPCNCNC{OC@aPC@PCQC@3PC@SC@VC@YCWCQC@OCNCMCfOCOCMC@8NC NCNCNCOC.NC@NC+OC@JNCMC@NCMCNC@PC@SC=UCXC ZCfXCYC;YCWC@OVC@\TC}RC@RCPC@NCTOCOCNCLCEKCKCJCJCRKC@KCnKC@LC@MC@3MCMC@sNCNC@!NC@NC@ OCcOCPCfRCiTCSC@sRC#RCSCUCVC)VCVCXC@WC}VC;UC@TC@TC@WC@ZC[C@ZC@8WCnSC@!OCcNC@sNC@OOCPC@\PC&QCUCBWCpYCRC@OC@OCNC@NCEPC@NC@MCpNCENCiNC@OCNCRNCNCNCNCLMCNC^NCiOCQCSCTC5YCR[CXC@3ZCYC}WC@VCkTC@ORCuRC@!QC&NC&OCOCNC{LCKC=KC;KCKCJCKCKC@\LCLCkMCNCNC;OCNCNCYOC^OCPCLRCTCTC0RCQC@sRC@!UCVCuVC@VCWCWC@8VC@!UCTCSC@UCZC@8\CG\CYCUC@PCNC@NCNC@\PCPCSCkVC@aXCVCOC@\OCOCNCOCNCMCNCNCNC@NCOCNCMCNCNCMCMCNCNC@OC@QCSCUC)ZC@[C}YCZC5XC@OWCnVCfTC^RC}SCpQCNC@JOC@OC)OCLC@ LC@KC@JC@JCJCTKC@xKCLC&MCfMCcNC OC5OC#OCROC@OCnOCPCRCTCUC}RCQC@QCSC.VCVC;VC@3WCnWC@VCUCBTCTCTCXC@\CB]Cn[CWCTC@NC NCNC@PCQC5UC@3VCRXC@RCNC0PCLOCGOC@JOC@NCMC NCNCNCOC@OCTNC.MC@NCkNC MC@MC@ NC@NC@PC+TCTC0VCZC[C.YC@OYCWCVC@UCTCRCSCQC@NC@OOCiOCNC^MCcLC LC@OKC)KCJCKCKC@LCWMCMCiNCOCROCOCOCYOC@OCWQCRC@TCBUCRCPC@OQCRC@OUC^VCVC@VC@VC@VCUCTC@SC.TCWC \C^C@]C@YCTVC@ QCNC;NCPCSCVCWCnVCnOC.OC@QC@OC.OCNCMCMC@MCMCNC@\OCGOCcNC@JNCYNCMC0MCMCMCNC#RCUCUCLWC [CYC@WCVCUCUC@JUCSCRCSCQCNCOC@xOCNCNCLCYLCLC@JCJCKCKCLC@MC NC@NCLOCOCuOC@OCOCPC@QCSCTC)UCTRCQC@!QCRC;TCUCUCUCUC@3VCnUC#UCYSCSC@VC@\[C_C`C@\CXC@SC^OC@NCPC@TCUC@!WCBRCYNC@PCPCOCNC@MC@MCuMCMC@ONC@\OCOC+OCNCNC)NC5NCLC@MC;NCPCSCWCVC+XCYC WCfUC@3UCTCpTC@JTCRCRC@TCuRCNCNCNC@!OCNCMC MC@xLCKCKC#KCKCLCMCNCWOCOCOCOCOCOC@8PC@JQC@xSCTC)TCuRCQCQC=RC{SC@TCTCUC^UCUCfUC@3UCiSC{SCVCXC{_CaC@_CZC{VCQC)NC@RCUCUC0UCEOC@NCQC=PCOCNC@MC@MCMC.NC}NC@JOCOCnOCuNC@\NCWNCMCMC@MCNCQC@UC@\XC@VC@WCVCcTCSCSCSC)SCSC@\RCYRCnUC{RCTOC@NCNCOC^OC@aNC;MC}LCLCKCRKCKCLC@MCNCnOCOCOCOCOC@ PC&PC@QC@SCTC@SCRRCYQC@PC.RCSCSCETC)UC@UC@!UC.UCTC@TCSCUCXCT^CGbCbC0^C)YCSCOC@xTCUCUCRC@MCPCRC@OC@NC@MCMCLMC@MCMCNC0OCOCOC@\NCNCNCMCLCLCOCSC+VCWC@VC#VC@SCRCRCQCQCRCRC@QCRCLVCRCNC@xMC@NC0PCOCNC5MCLCKCJCJCGKC@OLC@3MCNCOC)PCRPCOCOC@OCLPC^QC@SC@OUCSC@aRC+QCQCQCRC}SCTCkTC@TC@TCRUC@xTC@aTCcSCTCTXC=\CnbCdCaC\CVCcQC.UCTC}TC@NCNC@8RCQCiNCEMCMCMC@3MCMC#NCWOCOCOCOCNC}NC@OC@MC@MCMC@PCSCUCWC;UCTCRRCQCnPC^QCWQCQCPCPC@3SCVC}SC OCMCkOCRPCOC.NC0MC@JLC@KCcKC@JCBKC@JLCMC OCPC@PC@!PC@8PC&PCPCYPCPC@RC@3UCSCRCQC@QCLRCRC#SCSCSC@sTCGTC@8UC@TC@SCSCTC}WCZCcaCdCdCf_C@aYCSC0UCTCQCMC@PC&RCcOCMCcLCMCpMCMCWNCNCOCnOCOC)OCNCNCNCMC;MCLNCRC&TCUCUC@JSC@!SCpQC@xPC@PC@QCQCPC@aPCPCYTCWCSC@NC#MC.OCkPCOC@MCMC@LCKCKC@KCLC@aLCTNCOCPCQC@PCcPC@PCBPC@\PC@xPC;RC=TCSCRC@JRC@RC&RCRC&SCSCSCSC@SCTC@JTC@xSC@SC@SC0VCYC _C+dC@8fCcC)]CVC@TCSC@NC@NCQCPCNC@\MCLCWMC.MCNCNCpOCOC#PC@OCcOCNC OC@NC@MCMCOCRCSC+UC.TCcRC@8RCnQCQCPCRC;RCkQC5PCQCTCWC@TC OC@!MCGNCYOC0NC@JMC@LCLCLCLCLC@ MCkMCNCPCQC@QCPC@PCPC)PCnPC@JPCTQCSCTCiSC@\RC^RC@RCRC#SC@SC&TC@ TCRCTC@3TC@8SC@ SCSCUCXC@x]C@cC@fCfC@`CYC@3TCQCMCpPCQCuOCMC@aLCLCMCMCNC@OCEOCOCOC@xOCNCNCNC@NC.NCYNCPC.RC=SC@\TCRC@RCRC@ORCRC@QCRCpSC@RC@JPCPCTC@WCTCNCcLCMCNC@MC@\MCMCMCMCMCNCNC@3OCOCPCQCQCQC@PC&PC=PCEPC^PCPC@\RC@TCfSCRC@ RC@RC;RC@RCSC#TCGTCuSCSC@3TC@!SCcRC@RCTCpXC[CaC@eCLgCRdC]CBSCEOC@\NC QCiPC@ NCLCLC@MC@MCNCOCOCOC@OCOC0OC@NCNC@ NCNC@NCOC RC@QC@RCRC@QC{SCSC@8TCTSCRC)TC0UC@SCPCPC@TC@sWCTC0NCLCMC@\MCTMCMC;MCuMCNC@sPCPCPC^PCPC@\QCRCQCPCPCnPCPCOC@PC{PCQCSCTCRCRCRCRCRC@!SCTC}TC)TCRCSCRCRCBRCSC+WC@ZC{_CdCpgCfCaC.QC=NCpOCQC@8OCMCLCMCMCLNC@NC@!OCOCOCOC{OCNCfNCRNCNCOCOCBQCRC+RC@RC@PCLRC{TC@sUCVCTCTSCTCVC^UC#RCPC=TC;WC^TCLNCLLC@LCLCMC@LCMCLNCOC@QC@RC@RCQC@aQCQC@QCkQCQCQCPC@PCOCPCPC@PCRC@ TCRC@QCGRCLRC;RCRC^TC}UC.TCSC@RC#RC@QC@QC@SCUCYC^CYbCfCgCdC=OC}NCkPCPC)NCMCLCMCMCuNCNC@OC@JOCkOCiOCfOCNC=NCRNC@OCOCPCRRCRCRCQC@PCYSCUC=WCcXCTCSC@UCRWCWCRCTQC@SCVC@SC@NC@aLC{LCLC@LCuLCkMCNCPCQC^SCSCnRC@RCQC RCQCPCPC@8PCPCPC@\PC.PCiPCGQCfSCRC@QC@ RC@RCRCRCSC@aVCTCiSCRCQCQC{QCRC@TCXC@\C`C@OeCgC@xfCNCOCLPCNC@MC@LC@LCNCNCNCOC.OCOCLOC@sOCpOCNC@3NCkOCuPCPC@RCSC@sRC RCQC@xQC5TC{VCXCXC@TC@SCVCWC@sWCiSCQCRCBUCSC.NC@KC@\LC@LCYLCWLC@MC)OC#PCRC@SC@!TC@SCfRCRCQCLQC#QCPCPC@3PC@PCPC@PC@JPCPCQC@RCQCQC@RCRC&RC^SCUC@UC@TCGRC@QC@3QCGQC@!RC@SCiWCT[C@_CcCfC&gC@NCuPC@OCMCMCMCNCNCWNC@OCNC)OC)OC@ OCpOCnOCENCNCLPCQCRC@xSC{SCRC@QCTPCnRCUCEWCYCXCpTCSCUCXCnWCTCTRCQCkTCSC@NCKCLCKCKC=LCMC}NCNCfQCRCTCSC#RCQCRC@sQCQCPCPCBPCOCOC PCYPCOC&QCQC@xRCkQC+RCQC@QCSCTCRVCTCRCQC@PCQC^QC;RCUC;ZC@]C@sbCeC@8gCOCPCNC@!NCMC&MCNC@sNCOCTOCNCNC@NC&OCPC5OCLNCOCQCRC@sSCcTCSCRCQCQCSCUC@WCuZC@3XCTC@3TCuUC@WC@VCcTCRC#QC{SC@RCNC@KCKCKCKC@KC@OMCMC@ NC@OCRQC=SCSCRCRCQCQC&QCPC@3PC5PCOCPCPC#PC@ PC5PCEQCRC^QC@OQC@QCQC=RCSC@UCTC0SC#QC QCPCRQCRC@SC@\XC\C@`CdCBfCEPCOC@ NC@MCMC@NCNCNCNC@\NCNC@aNC@OC@OCOC OCNCPCRC@SCnTCTCESC@RC+QCQCTCUCXC0[C@WCTC@3TCTCTVCUC@xTCkSCPCERC{RCNC@ LCKCBKC=KCcKCLCiLCLCNCPCpRC@SCRCRCQC{QCPCPCpPC@!PCOC.PCOCOC PC PC@PC.RC@QC@xQCfQCQCQCRC@TCUCSC@OQCPCcPCPCpQCRC@ WC@ZC_CcCeCPC@NCMC@JNCMC@sNCGNC@NC^NCENCNCuNC0OC@JPC@3PC@NCOCGRC@TC^TCfUC@OTCESC@aRCQCSC@TCUCYCY[C;WC@3UC@3TCTC@3UC#TCTCTSC@QCQCQCiOCGLC)KCJCJCLKCKCKCKC#MCNC@QCRCiRCQC@QC@QC&QCBPCpPC PCOCOCPC@OC@OC@OCOCQCRC@QC{QC0QC0QC@8RCSCTCTCQC@PCPCPC0QCQC@TCXC@]CaC@dCnOC@3NCNCNCNCNCNCnNCNCNCMCOC@OCPCPC@\OC@QCSC@\TCTCLUC@sTC}SCpRCRC@JUC@8TCUCpZCEZCRVCTC@sSCSCSCRC@TCcSC@\QCEQC}QC@ PC@OMCJCJCJCJC0KCJCYKCKCTMCOC@8RCQCQCQC@QC@JQCPCPCOCfOCOCOCOCOC@OCOCQC=RCQCQC@QCQCQC@RC^SCSCnRCPCPC@PCQC;QC@RCpWC=ZC_CdCGNCNCfNCMCOCNC)NCMCMCMC)NCOC@ PCPCOC&PC@RC@SCUCTCUCnTCpTCRC0UCUC@xSCUCYC@XCUCTC)TC{SC@RCcRCTC@!SCQCpPCPCEPC@sMCJC=JC@aJCJCTKCJCJCcKCLCNC&QCfQCiQCQCRC@PC@8PCOCOCuOCOC@xOC@JOCOCpOCOC@PCQC)RCQC@QC;QC5QCQCLRCSC}RCWQCPC@ QCQC@JQCERCUC@sXC@\CcCNC@NC^NCGOC@NC@aNC NCMC@MC@MCNC+PCPC@PCOCQCRC@TCTC@UCiUC^UCTCSCWCTC@xRCUC@YC}VCfTC@TCSC@RC@xQC@ RC)TCBSC;QCOCOCRPC{NCKCICEJCJC}JCJCJCKCiKCMC&PC@ QCuQC@QC@!RCPC@\PCOCTOCOCOCOCBOCOCOCOCOC@QCQCTQCQCQC.QCQCQC@RCSC@ RC@PCPCuPCPCQC TCfWCYC`CNCNCNC@OC@xNC NCcMCMC@MC@ NC&PCTPCPC@PCPC@aRCSCSCTCUC#VCVCTC&UCBWC@!SCQC@UCXCYUC@OTCTC5TCcRCPC0RCRCGRC#QCOCOCOC@3OCKCJCBJC+JCfJC@JCJC@aJCJCLC+OC@ QC@QC@QC{QCPCYPCOC{OCOCOCOCOC@OC)OC@OCkOCPC@xQCQCQCQCTQCPCPCQCRCRC@!QCQC@PCkQCRQCRCUCWC\CNCOCTOCNC@!NCMCLMC#MCMC)OCPC@PCPCpPCfQC@ RC=SC@SC TC+UCVCVC@TCEVC0VC@QC@xQCUCVCTCnUCEUCTC5RC@!QCQCERC@aQCPCOCNCOCOCLCJCTJC=JC@8JC@!JC@aJC^JCJCLCnNC@PCQCRC@QCLQCTPCOC@OCiOCOCOCOCLOC;OCNC=OCOC}PC@QCQCBQC@QCPC@PCcQCRC)SCQC@xQCQCiQCQC@QC@TCuVCYC@NCOCNCNCMC@LC@ MC@MCENC@sPC@PC@PC@PCQCRQC@3RCWRCRCTC@VC}WC=VCTCVC@TCPC@OQCRVCcVCUC{VCVCTCGRCRCQC@QC^QCPCOC@8OC@OCOCMC)KC=JC@JC@JJCGJC^JCpJCJC@\KC@MC@OCQCQC@QC@!QCPCPC@OCfOC@NCTOCOCLOCNCNCOC@8PC&PC@QCQCiQCcQC#QC^PC@aQCQC{SC;SCQCWQCfQC@8QCnQC@RCUCWC@OCpOCNCMCkMCMCfMCMCOC@ QCRPCcQCPC@QCkQC}QC;QCRC@TC#WCWCUCTC@sVC5SC@OCQCVCVCVC@WCEVC5TC^SCRCRCfQC;QC@xQCQCOC.OC@OC@NCKCJC+JCJCcJCfJC#JC@\JC;KCMCWOC^QC@QCQCfQCPC@sPC@OCOC5OC@\OCOCROCOCOCWOCOCPCnPC@3QCpQC.QCiQCcPCEPC@QCTC&TC@SCQCWQCQCQCRCTCUCOCLOCNCMCLCLCMC@NCPCPCQC=QCPCPC@PCPCPC@RC@UC@!XCXC;UC=UCUCQCcPC@aSCGVCVC XCXC@sVCSC@SCSC@RCQC@QC#RC^RC@PCGOCNCOCLCJC@ICJCJCWJCRJC5JCJC@LC@NCPCQCQC+QC@PC@OPC&PC@OC@OOC@JOC0OCNC.OCNCNCOCOCOCPC@aQC@QC@PCiPC@!PCQCSC@OUC@sTC0SCQCQC{QCQC@SCUCOC&OC=NC@\MC@ MCMC&NC@PCQCPCQCPCpPC}PCPC@PC.QCSC5VCLXC@xWCTC@xVCTC@PC@PCUC5VCWC@xXCXC@UCRTCTC.TCSCRCkQC@ORC@RCRCOCNCOC@MCJCJC@JCBJC0JCJC@xJCJC@KC&NCnPCPC0QCnQC0QC@PCPCOC&OC@OC@\OC0OC@NC@NCNC@aOC@OC@PC@PC@8QC@sQCPCPCOC@sPC@SCUCUCTC.SCQC=QCQC@RC@xTC@OCuNCMC)MCMCMCOCfPC@PCPC@PCPCOC@QC@\PCPCRCcTC@WCXCUC@JUCVCTCGPC@ORC@UCVC0XCEXC@WCVC@TC}TCUC@TC.SC@QC@xQCSC)RCOC@ONCPC@OOC@KCJCIC#JCICICJCTJC@KCLCWOCOC&QC;QC)QCPCPCOCGOC@OCOCOC=OCNCNCNCOC^OCOC@PCQC)QCPCBPCkPCpRC@JUC@xVC@UCSC;RC@sQC@QCRCSCOC@MC^MCLMCNCNCOCPCLPC.QC@JPCiOCOCiQC@OC@QC@OSCUCBXC}XC@UCUCUCRCPCfTCVC@3WCXCiXCnXCfVCTC@ UCcVCVCTCWRCGQCRCQC@OCNC@QC@PCLCcJCIC@ICIC@3JC@JC@JCKCRLCNCOCPCPC#QC&QCYPC PCWOCiOCOC@NC@8OCNCNCOCOCnOCOC@OCPCLQCQCPC&PC@QC@TC@VCWCnUC@ SC.RC@ RCSC@SCNCMCYMCBNCNCcOCpPC@sPCPC)QC@aOCOCnQC;QCPCQCTCWCXCVCTCTUC@TCERC@RCVC@WCpWC)XC@XCXCVC@UC)VCnWC0WCTC}RC0QCQC@OQC@OCOC@JQC#QC@MCJCICYJCICWJC{JC@JCKC@LCNC@OCOC@xPCPCLQCPCpPCOCfOC@NCOC@3OC@NC+NCOC@OCWOC^OC@sOCPC@JQCTQC@PC@OC@PC5SCEVCcWCVCTCRC@RCRC@SC@sNC@sMCMCNCNC@xOC0PCPCPCOC@OC@OCfRC@xQCQCRCUCXC=XCTC@OTCTCSCQC@TC#WC@WCnWCWC^YCXC0WCEVC@!WCWC.WC@UCSCQCQCPC@OC@OC@sQCQC@3NC0KCGJCICGJC@ICIC@JCKC@aLCMCNCkOCuPC@PCLQCPCPCLPC@OC5OC@\OCOC5OC@NC;OC}OCOC^OC5OCOC@3QCQC@PC@8PC^PCQCTC@WC XCUCTC@JSCRC@!TCMCMCcNCOCLOCOCPCWPC.PCEOC@3OCRQCuRC.RCiRC@SCiWCYCVCSC@sTCTTC@RC@RCUC.XCWCVC@WCEYC@XCWC@WCWCWC{WCVCTC@QCPC@PC+PCPCQCWRC;OCKCICICWJC=JC^JC@IC@KC@KCMCNCNCOC@PCQC@sQCPCOC@NCOCBOCNCEOCNC@NC#OC;OCOCOCOCQC@\RCQC@PCPCQC@8SC{UC@WCVC{UC@3TCSCSCcMCMC@aOC;OC}OC@xOC@3PC@ PC@OOCLOCGPCRC)RCRCSCEUCXCWCTC@SC&TC@3TCRC@SCcWCXC@WC0WCXC YCXCXC@XCXCWCXCVCTCQC@PCPCPC@PCQCRCOC@LC@3JC@ICGJCYJC;JC@aJC)KC}KCcLCuMCMCOCOCPC&QCPCOC&OC OC@ OC^OC@!OCNCNC@OC.OC@!OCNC@NC{PCRCRC@PCOC@3PC@QCTC=VCWC.VC}UCGTCTC@MC@OCOCROCOCfOCOC@OCOC@3PCQCTRCRCTCSC@WCXC@3WCTC@sSC)TCTC@SCiVCXC@WC@WCWCXC@8YCXC@JZCZC@8ZCXC}XCGWCUC}RC.QCPCPC@QC@QCRC@PC@MCJC@JCICJC=JC@aJCKCTKCKC@8MC@MC@MCOC}PC@QCQCOCfOCNC@sOC@!OCuOCNCNCOCNCLOC@!OC@OCOCQCSCQC@OCGPCPC@RCnTCWCVCBVCUCTCNCOCOC OC@8OC@OCPCPC.PC@aQCQC@8RCSC^TCTCWCcXC0VCSCkSC@sTCTCUCXCXC@sWCWCWCXC@XC+ZC@x[C@\C[CYC@XC}WCLUC@RC)QC@PC@QCQCQCkRCQCiNC&KCTJCIC)JC@JJCJCiJC#KC@KC@LCLCMCNCOC@QCQC@\PCOCOC.OCOC@OCNC@NCNCOC0OC@NCOC@OCPCSCGSCBPCPCGPCQCSC}UCRWC#VC.WCUCOC@OCOC;OC)OC@3PC0PCPCQC@!RCQC.TC&UC;TCUCWCWC@UCSCSCTCUCXCYC@WCXC@WC=XC@XCYC@[C\C]CR\CZCYCWCRUCRC@QC@QCfQCQCQCRCQCOCKCnJC@IC@IC;JC@JCnJCKCKCLCLC#MCMCOCPC+QC@aPCOC^OC@NC@\OC@ OC@NC}NCNCOCNC@NCNCOCBPCRCTCQCOCLPCPC@QCTCWCUC@VC@ WC@3PCOCEOC@NC@sOC@PC5QC@xQCQCQCSC5UC.VCpTC@!VCWCVCTCSCUCiUC)WCZCYC0WC+XCWC@XCYC@OZC\C]C@]C@[C{ZCBYC=WC@TCRC@QCEQCQC{QCQCRCRC.PCELC@JCRJCICJCkJC@JC KC@!KCLCLCMCMCNC@PC@PCPCOCOCOC@OC+OCNCuNC@NCNC@\NCNCNCNCOCQC}TCRC)PC0PC@aPCWQC}RCUCUCcVCWC@PCOCOC@\NCOCGQC)RCBRCQCfRCTCVCUCTCEVCnVCUC@sTCTCUC@sVCTYC@ZC0YCWCXC@JXC@YC@YC[C]C]C@3]C [CYCWC@VCTC=SCQC@QCQCQC@3RCLRC@\RC@PC@8MCJC@!JC@3JC@JCJCKCBKCYKCLCLCLCTMCfNC0PC0QCPCOC@OCLOC#OC&OCNCNCNC@NCNCNC@NCLNCNCTPC@SCSCPCOC@PCPC RC@SCpVCUCXCEPCOCNCOCiPC@QCRCRC@RCGTCRVCVCuTCTUC@UC@UCUC@xTCUCfVC)XC;ZC@[CXC@JYCYCYC@ZCZC\C\CR]C\CGYC@WCVCUCTC}SC@QC.QCQC@QCQC{RC@RC@QC@MC@3KC@JC@ICnJCJCJCGKC@sKC0LCLC@sLC@LCMC@JPC@!QCPCPCOCROCNCOCNC@!NC@NCRNCOCNCiNCRNCNC@sOCcQCiSC@sQCPCOCPCQC@RC0UCUCBWC@OC@aOC@NC.PCQCRCkSC^RCRCUCVCUCTCTCWUC=UC#UCLUCpVC)WCRYCBZC}[C@\ZCB[CZC@[C@8[C#[C@a[C[C@J\C@ZCXC@VCUCUC@TC0SCRQC@PC#QCiQCQCBRC@ORCQCNC@KCJC{JC@JJCJC@KCuKCKC@aLC@LC@LC@!MC@NCPCPCPC.PCOCWOCOCOC@xNC;NCiNCNCNC@sNCnNCkNCNCOC@PC@aRC5RC@OCOCPCPC@QCSCUCUCWOCNC@OCWQC}RC@\SCGSC@!SCTCWCVCUCTC@TC@TC.UC@UC@VCEWC@xXCkYCT[C{\CT\C\C\C@\CZCZCZC[CZC@XC@VC@UC@JVCTC@SC SCQCWPCQCQCQC@\RCiRCQCcOCLCTKCJCJCKC=KCKCKC=LCLCLCLC@MC@\OCPCQC^PCOCOCNC{NCiNC@NC0NCNCNC@xNC@sNCNC@NCNCfOC.QCQC@xPCOCOC@PCRCpRCcUC0UC@OC;NCRPCRCRCSC}SCSCkVC@VCUCTCTCTC@TCUCVC5XC@WCXC@YCY\C]C^C+^CG]C[CYCkYC;ZC@8[CYCWC@VC.VCVCTCSCSC@xQC@PCfPCPCQC)RCRCQCPCfMC@KCKCKC{KCKCKCLC@JLC@LC@LCGMCMC+OC#QC)QCPCOCOCNCNC@aNCNC{NC@NCNCNCkNCNC@sNC#OC^OCPCPCQCOC@PCPCLQCQCSCkUCNC@OC#RCRCuSCRCSC@UCWCEVCTCBTCTC;TC@aTC@VC0WCRXCWCXCYC@\]C^C_C@]CT\C ZC{XCXCZC@\ZC@XCTWC@VCWC@UCETCRC@RCkQCPCPC@PCQC@RCRCQCPC&NCLCLCKCKC@KC LCLLCcLCLCLCLC{MC@NC0PCPCPCOCOC@NCNC@NCNCNCNCNCcNCNCNCNCNCROC@PCYPCPCOC@OCOCfPCQC@RC.UC+NCPCRCSCSCSC@UCVCVCUC@8TC@OTC@TCTCUC.WC^XC@XCXCXCZC]Cc^C{^C@\CZCcXC@WC@WC+YCXC@WC@WCWC@WCUCSCRC@JRCQC@PCfPC=QC&RCiRCuRC5RCPCNCMCLC;LCLCBLCLCLC@LCuLCMCLC@MCNCPCPCPCOC+OCNC@ NC@NC@xNCfNCNC@sNCpNCBNC@NCNCNC@sOCOCfPCPC#PC@OCOCOC@OQCQCTC.OCQCGSC@RC@8SCTCVCEWC@UCTCSCTCTCTCVC@WCYC@XCXC^YCu[C@s]C]Cc]Cp[CYC@aWC@\WCXC)XCWXCWCWCXCWCUC#SC@RCQCQCQCPCQCnRCRC&SC)RCPCOCWNCMC=MCLMCYMC@LCLCLCLC&MCLCMCfNCOCPC@PC@OC^OCNC=NC+NCWNCNCNCNC{NC@NCNC}NCNCiOC@OCpPC@xPCkPCOC#OCPCQCQCSCPCRC@RC&SC5TCUC@VCVCUC.TCTCTC@sTCcUCYVCBYCYCXC)YCcYC@[C\C\C@[C)ZC@8XCVC@!WC@ WCWCWCuWC)XCXCWCUCRCRCRCQC+QCQCBRC@RC@RCRCRCnQC@JPCOCNC#NCMCpMCMC@aMC@MC=MC=MC+MCMC)NCfOCRPCOCOC@NCNCNCNCENCNC@NCNCiNC@xNC@NC;OC@OCkOC@PC@PC@QCpPCiPC@OOCOCnPCEQC^RCRCRCRC#SCUCVC@WC#VCTUCTCBTCTCUC@aUCVC@ZCXC&YC;YC0ZCZC[C[C@ [CkYCVCVCVCVC@WCkXCWC&XCWC@\WCTCRC@\QCQCQCQCQCRC@SCRCRCRCQCQCQCPC0OCNCNCNCNC@MCMCfMCRMCWMCNCNCOC@8PC@OC5OCNCTNCNCNCNCNCNCNCNCNC#OC.OCOC@OC@PC@aQCPC}PCOC+OCBPCQCQCRC@RC@RCTC@VCVCWC@ VC}TCTC{TCTCUCUCYCZC^YCYCYCYCYCZC[C[CXCRVC@ WCWWCVCWCXC{XC=WCVCVCTC@RCQCBQCQC@QC@JRCSC@SCRCRC@xRC@JRCQC{QC@xQCiOCOC@NC@NC@NCNCENC@MC@MC;MC@!NC OC@OCEPCOCYOCNCNC@NC=NCNCNCOC@NCNCNC@\OC{OCOC@OCPCQCPCuPC@OC{OCOCPCGQCRC5SC@RC;UC@VCVCVCUCSCRTCRTCUCUC+VC[CYC@!YCYC@JYCXCGXCnZC[CE[C^WCVCWCXCWC;XCXCWCVC;VCUCTC@JSCkQCkQC@8RC@QC@!RC@JSC@OSC)SCRCRC RCQC@QC#QCLPC@OCOCOC@OC@xOCYNCNCuMC@MC@MCNC{OCuOC@\OCEOC@NC@8NCfNCNC.NCOC@NC0OCNCNC@3OCROC@OC@OCPCEQCQC@PC@PC@OC@aOCuPCPCLSCRCBSCpVC@3VCWCUC@aUC=TC@3UCTCUCVCYC[C#YC@ YCYC@XC@WCWCZC^\CGZC@VCVC@XC@XC@XC0YCcXCWCkVCUCTCTC@3SCQCTQCQC.RC@3RCRCLSCRC&RCQC@OQC@8QC@xQC QC^PC@OCOCOCOC@OCNCNC@MC@MCMC@NCcOC@JOCOCNCuNC@NC&NC@!OC&OCROCOCNCOCOCGOCOCOCPCOC@PCQCPCPCcOC@OC5PC@QC@RCRC@TCEVCVCVCUC@TCTCpUC@\UCEVCVC[C@\ZC)XC@XCuXCWCUCBXCZC[CLYC@UCWCYC0YCYCkYCXCWC+VCfUC=TCSC@SCQCRQC@QCRC@QC@QC@RC@RCQCPCPC5QCPC@PCOCOCOCOC@PC@OCNCNCMCMCNCOC#OC@OCBOCOCNC@JNCuNC@ OCuOC@OCOCWOCNC@OOCNCPCOCPCOCPC@QCQCPC@OC@OCOCPCSC@SCUC@VC{VCUC5VCUC@UC@!VC@UC@VCXC@\\C@sXCWCXCWCkUCUCEYC[C@[C;WCVCYCYC@YCZC@YCXC@sWCVC@3UCSC@aSCRCQCGQCYQCQCQCQCQC5RC QCPCPC@\PCPC@OCnOC}OCOCOC@PC@8PCNCNC@aNC@NC@NC@OCOC}OC#OC@NCNCTNCNCROCOCPCPCOCOCOCNCnOCOC@!PCPC&PCQCPCPCkPCiOCOC@PC&SCUCpVCUC@VCpVCEVC@xUC@UCYVC0VCWCR[CYC WC.XCWC{UC.TC@VCXCZCcYCUC@WCYC@YCYCZC@\YCXCWCVCTC^SCRCQCWQCBQCiQCuQCQCkQCQCQC@QCPCPCWPCPCOCOC;OC@\OCOCPCPCROC)OCNCNC@OCOC@OC@OC@NCuNCNC@3OCNC@OC@PC@QC@QCiPCOC)OC@sOC{OCOCPCPCOCPC@PCGPC@OCOCOC@ PC&TCRVCTUC@OVCRVC@VC@aVCUCVCVCWC{YC)\CVCWCXCUC@!TC@SC@VCXC@YCXCVC@YCYYCXCYC@YC@xYCfYCWC@VC@JUC{SCkRCQCQC@PCGQC@QC.QC@!QC;QCiQCPCPC@QCPC#PC@xOCNCNCOC^PC@PCPCPCYOCOC OCOCOCOCkOCNCNC@OC@OOCfOCOC@PC@xQCQCQCBPCOC=OCOCWOC@8PC@PC}PCPCQCRPCOCOC{OCPC@TCVCBUC}VCUCLWCUC)VCuWCGWCXC@\[CXCRUC&XCVC#TCRC@TC^WC@XCYCfWCLXCYCXCWCXC=YC@YCYCpXCWC#UC}SC0RC@QC@QC QCPCBQCpQC}PCRQCQC&QC@8QCPC@PC;PC@OC@NCNCROC@PCPC@PCkPCOCOCLOCOCOCPCOC=OCNCcOC@OCOCOCPCcQC)RCfRCQCWPC}OC@\OCYOCPC@QCRQC@PC)QCPCOCOCOCOCLVC@ VC@UCVCVCRWCUCTWCuXC^XCRZC[CUCnUCBXCTUC0SCRCuUC@WCXCXCWCYCkXCWXC@VCWCXC=ZCYC@OXCVCTCSC5RCQCQCQCPC^QC@QC@QC@QCPCQCQC;QCPCkPCOCNC@NCOCPC@QC)QCWQC@PCOC}OCOCOC@OOC@sOCOCkOCOCPC+PCOCPCQC@QCRCpQC^PCOC@OC@aOCOC{QCnQC QCQCPC PCOCOCOC@VCcUCUC@VCWCVCBVCuXC@YC@OZC@ZC@XCSC@VCWCTC@RCpSCVCXCXCXCXC@xYC@WC@VC@UC@WCYCfZCYCWC@VCTCYSC5RCQCQCiQCQC@QCGRCQC@QCGQC@ORC@QCcQC#QCPCOC@OCuOC}PC@QCRC RCQCPC PCOCOCOC@OC@sOC@OCOCOC)PCPCkPCPC.QCERCRC@RCPCOCOC@OCnPC{QCRC@8QCQC.QC#PC PC@PCOC@UCpUCUC+VCcWCUC@WCYC#ZC[C@aZC@TCiSCWCUCTC@3RCLTCVCWCWC@3XCYCcXCVC5VC@UC@WCuZCLZCXC@WCUCTC+SCQC@xQCQC@QCQCQCRCGRCTQCQC5RCRCRCGQCPC@8PCPCPCQCRCkRCRCfQCQCPCOCOCOCOCYOC}OC@OC@JPCQCGQC@PCPCPC0QCRCcRCPC@8PC^OCOCfPC@JQCRCRCkQCQCGPCOCOCOCBUC@UCUCWC@WC@\VC@YCZCZCiZC@xXCRCTC@xWCUC@OSCRC@UCWCWCWCXC;YCWC@!WC)VCUCfXCkZCYC=XCuVC@UCTC^SCQCQCQCQC@8RCYRCSC@RCQCRC@8SCRC@8RC@QCPCPC@aPCPCRCBSC@RCQCEQCQC@8PC&PCPC@OC@OC@aOCOCRPCPCkPC)QCQCPC@QCPCRCQCGQCOC@OCOCPC}QCRC@aRC@QCQCPC;PC@OC@OCUC@UCVCWCuVCWCBZCf[CEZCpYCTCQCUCVCEUCkRCSC@!VCYWCkWC@OWCXCWXC WCVCVC@VC@JYCWZCXC@WCUC@TC5TCRCQCQC)RCQC@ORCRCSC^SCRC+SC@SC SCuRCQCiQCPC@\QCQCSCWSCRCQCQCPCPC)PCOCOCOCcOCPCPCPCPCRQC}QCQCQCWPC;QCQCpQCPC@PC5PCPCQCRC@ SCQCQC}QCRPCOCOCUCUCVC@VCLVC@XC;[CZC@YC=WC#RC5SC@JVCWVCSCRCTCVCWCVCVC}XC@ WCfVCVCVC@sWC^YCZCXCVC@UC@8UC5TC@RCQCQC=RCRRCRCRCSC@JSC@xSC@SCETC@!SCRC@!RCTQC@xQCQC@xRCSCSCRCQCYQCPCLPCOCOC@OC PCOCkPC@QCcQC&QCfQC@RC{RCQCPCPC@JQCGQCPCOC5PCPCQCRC@RCGRC@RCQCPC@ PCOCUCVC@VC+VCVC#ZCZC@8ZCXC@3TCQCTCVCTCRCSCGUCVCVC)VC^VC@OWCEVCVCWCVCWCTYCRYCWCVCVC+UC+TC+SCQCQC@QCRC)SC@JSCSCSCTCSCSCiSCRCRCRC}RCuRCRCLSCuSCRC@QCQC&QCPC@\PCPCPC@PC@PCPCQCQCnQCQCWRCpRC@RCQC@aPCPCPCPCBPC@PC5QC@QC@3SCRCRCRRCRC5QCOC^PCUC@VCWC#VC.XC@YCZC#YC@8VCcRC@JSCUCcVCSCRC@aTCUC@3WCcVCTCnVCUCUCVC;WC@WCXCXCXC0WC5WCcVC@UC@xTCRCQC@PCQCRC@!SCSC@3SC@ TC@8TC&TCSCcSC{RCRC{RCRCSC#SCTCSCRCRCWRCQC@JQCPCPC^PC&PC@PCQC5RC@!RC@QCQCQCkRCRC@RCQCPC@PCpPC@PC@PC0QCRCRCLSCRC@JRCBRCQCiPC@PCUC@VCLVC@xVCYC@xYCLYCWCuSCRC)UC@OVCWUCRCSC@TCVCWC.UCTCUC@TCUCkVCfWC@WC@\XCXCXCWC@WC{VC@UC@TC@SCRC@PC@QCRC@8SCnSC@SC@SC@8TCRTCSCRC)RCRCRCSCRC@8SCSCSC5SCTRCSCRC0RCQCRQCPCPC0QCQCQC#RCQC@sPC@PCQCSCSCQCPCPCPC@PC QCpQCQCRC@8SC5SC5RCERCRCPCnPC@\VCVCUCcWCXCYCXCUCRC@JTCVCWCSCLSCTCUCWC;WC;TC@TCYTCfTC@UCGVCWWCWCGYCXC@\XCYCWCWCVCcUC@OTC@QCPC@QC@SC=SC@!SCSCTC+TCSC@RCGRC@QCRCRC@SCnSCSCSCSC&SCSCSCSCSC@xRCQC@sQC&QC@QCQCRCQC0QC;PCOCPC@RCSCRCPCPC@PCRQCcQC@QCYRCRC}SC&SCRC^RCQC5QCPCVCVC^VCGWCWC@XC@VCLSCLSC^VCEWC;VCSCTC@JUCVCXCUCSCYTCnSCTCYUCUC&WC XCXCXC}XC@XCXCWCVCUC@TCRC@ QCQC#SCSCnSC@RCSCSCSCRCpQCRC@RCSC@SCfSCSCSCSC@RCuSCSC@3TCSC@SCQCQCQCQC@8RCfQC@QCPC@OCfOCkOCQC0SCESC@ RCPC+QC@QCQCQCRC0RC@RC@sSC@3SCRC@3RCpQCPCVCVCVCiWCWCWC^UC0SC#UC;WC{WCTCTCUCVCiXCWCTCTCSCRC+TCETC}UC@\WCBXCXC#XC@XC@aXCXC&XC@xWC@xVCiTCRC@QCQCRCSC)SCRC@\SC@8SCRCQC#RCSC}SC.SCSC@JSCTCSCRCRCnSCSCSCTCRCRC^RCQC)QC@QC^QC QCPCOCNCOCPCnRCSC}RCPC#QCRCQC@8RC RCQC@sRCSCSCRCRCQCQCVCiVC@ WC@WCVC{VC@xSC@aTCVCWC@VCTC@8WC@VCWCXCUCSC#TCRC5SCSCfTCVCkWCXCXC0XCWCXCGXCXC@XC0VC@8TCSC@QCQCnRCRC@RCRCpRC@!RC;RCQCSC@xSCSC&SC@JSCBSC{SCRCRCRCSCSCSCSC@SC@RCQCcQC@!QCEQCPCPCOC@OCBOCpOCPCQCRC@RC@QCQC5RC@ RCERC.RCQCQCRCSCSCRSC@RCQC@VC@VC@VC@VC)VCTC@SC#VCpWCWC=UC@VCXCWCuXC@OWC@ TC@SCRCRCRCSCSCVC@WCnYC@3XC@3WCWC+XCXC@YC@XCUCSCRCRC.RC@RCRCQCQCQC@xQC RCRC&SC@SC@\SC SCSC@SCRCRC@ORC=RCRCRSCSCRSCSC RCQC QCPC@\PCQCnPCOC&OC=OCfPC=PC+QCRCRCRCQC@\RCSCRCRCuQCWQC#RC@sSCSC@8SCRC}QC@VC@VCEVC@VCfUCSC UCWCWCVCUC@OXCWCWC@WCUC@xRC@3SC@ORC@QCRC@RC)UCGWC)YC@YCWCVC}WC#XCXCZCXCkUCSC@RC;RCkQCQCRQC QC&QC+QCQCRC@sSCpSCSCTSC.SCSC@RC@RCGRC@3RCRC@RCRCSCRCRCPC=QCPCPCPCPCRPCOC@sOC@OCQCQC@QCuQCkRCTRC@QCiRC@RC@aRC@QCYQC@xQC@QCRCSC@SCTCQCVCTVC;VCYUCTC@SC@VCuWC@8WCUC@JWCYC@WCiXCVCSCRCiSC@aQCQC@RCWSC@UC@3YCZCZCWCLWC@WC0XCYCcZC+XCuUC#TCRCpRC@QCQCPC@JPCQCPCQCSCSCSC{SC@8SCRCRC@RCRCRCTRCRC)SCRCQC RCPCPC;PCPC QC@PCPCQCOCOCOC@xQCQCYQCQC@aRC@!RCpQC5RC@sRCnRC@QC=QC@PCQCfRC^SCSCSCRC@8WC#VC@OUCTC@\TC@UCVCWCUCpVC@JYCXC}XCWCGUCRC@RCQCEQCQCRCGTC@!WCZC[C@ [CXCEWCWC@XCZC@\ZCWCnUCETC@RCQCQCQC@sPCOC)QCnQCnRC;TC@xSCTCpSC@aRCRCSCRCRC@sRC5RC@SCRC@RCEQCQC=PCNC@OCLPCPCPC;QC@QC=QCPCGPCQCRC5RC@sRC0RCRCTQCQCRC)RCQC@ QCPC QC@QCRC@SCRSCSCVC#VCTCTCTCVCVCVCTCWC@YCWC}XCYVCSCnRCiRCQCEQCQC.SCUC.XC@\[Cc]CZCYXCTXC=XCZC\C@YCTWCEUC0TCRCTRCRCQC@JPCPC@QC@RCSCSCSC@SCSC@RCRCRCRC=RC@QC@aRC@RCRCQC;PCOC@NC@NC&OC@OPCQC}QCQC@!RCuRCpPC@PCQCRC5RCuRC@QCRCiQCQCWRCRCQC@JQCPC{PC@QCRCuSCkSCSCiVC@UC@sSCUCTCUCWCTC@aVCGYC@XCTXCWC5UCSCRCRC@QCYQC{RCSCkUCXC+\C@8]C;ZCXCXC@XCZC@ ]C@ ZCVCVCUC@SCRC+RCQC^PCYPCQCQC)SCSC&SC@SC@sSCRC&RCQC.RCQC}QC@RCRCQC@PCOC@NCcNCMCNCPCQCQC^RC@RCYSCQCQCkRC&SC@RC@RCRCQCTQC^QCBRC@RCQCPC.PCPCQCRC SCSCBSCUC TC@TCUCUCVCUCTCWCYCWCYC@VCTCRCRCQC^QCQC@8SCSC}VCYC0\Cp\CYC.YCYC;YCf\CL]C@8ZCWCVCUCTCSCRC@QCPC0PC=RCRCSCSCRC{SCSC@!SC)RCQCQC@ QCPCQCQC@xPCiPCEOC@NCMCMC)OC@JQCQC@xRCRCpSCSC SCQCSCSC@sSC@3SCSCGRCQC@QCYRCRCRCPCPCTPC@QC0SCcSC@SC@RCTC@SC@TCUCGUCfVC@JTCUCXCXC@WCpXCUCSC@ SC@RC@8QC#QCRCSCTCVCYCL[CZC@ YCYCXC)YC@\C@]C;ZCWCWC@WCVCTCSC0RC@PCPCQCRCSCRC.SC@SCSCRC.RC0QCPCOCOCPCcPCOC@sOC;NCMCMCNCOC@QCRC SC.TCTCTCSCRCTSCSC@SC@!SCSCRCRC)QCQCRC.RCPC@JPCBPCQCRCSC@SC^SCSCfSC)UC.UCEUC}UCYTC^WCXCVCiXC WCTCSCSCQC@sQCQCRCLSCSC@VC@\XCBYC=ZC@8XCXC.XCYC]CL]C@ZCXCYCXCpWC{VC@!TCRCpQCPCQC.RCRC@RCnRC@OSC@SC@ORCQCPCPC@OCNC@OC{OCOC@NC@!NCLNCNC@NC@PCBRC@8SCSCRTC@TCSC@!SCiRCRSC@SCTC@ SCSC+SC;RC#QC@PCRCTRCQCnPCPC@xPCRCSCSCWSC@RC@TCUC@TC@TC@SCUCXC0XCVCXCUC@!TCTC@\SC@QC@QCRCfSCRC.TCTVCVC@XC@XCkWCWCWCYCL]C;]C@xZCXCYCYCnXCVC@TCRCQCPCQCRCRC#RCRCSC@SCiRCPC PCOCNCNCNC}OC@sNC#NC#NC@NC@aOC@xOC@3QCRC@SCTCTCWTCSC@SCRCiSCWSCTCETCRC.SC@RCQCPCRCWRC{QC@PCPC{PC@QCTTCcTCSC)SCUCTC@TCGTCSC@VCXC@WCWC.WC+UCYTCfTCSCQCiRC#SC@RC@ORCSC@TCUC@xWCWCUC#WCWC@\ZCG]C@\C@YC@YC;ZC@YC@XCWCUC#SCRC{QCPCQCRCGRCRC@SC@JSCQC@3PC@OCOCOCNCTNCcOCNC@ NCGNCBOC}PCPCQCRCTC@TC@3UCTC0SC@ SCRCRCRCSCRTCRCRSC@xRC.RC@QC.QC=RC@QCPCOC@ PCQC^SCETCTCUC;VCBTC@TCSCTCWCXCuVCWC@UCUCTCTCSCRCRCRCTRCfRCSCRC@TCVCUC5UCVCXCZC0]C[C@!ZCBZC;ZC@YC@XCWC+UCRC@RC@!RCiQCQCRCRCRCSCTC#RC^PC@OCOCTOC)NCiNCNCnNC@JNC@NC{PC@OQCRQC@ORCcSCTC)TCTCnSC#RCRCRRCRCWRCSC}TC}SCRCcRCERCPCPCQCQC)QCPC PCQC5SC^TCcTCVCUCSCSC@SC@ VCWCWCVCWC@xUCTCUCUC)SCSC@SCSC;RCuRCRC=RC@ TCUC5TCTCUCXC.ZC\C+[CYZCiZC^ZC@sYCcXCWC=UCTCSCSC@QCQCRCSC@SC.TCTCRCPCPC#PC@OOC&NCNC}NCNC@MCYNC@PCQCRCSC0TCkTC&TC@TC+SCQC5RC#RCRCQCQCcTCSCRC@JRC@RCQCPC}QCQCQC@OPC^PCPCpRCSC@TCVCfTCSCSCTC#WC@XCiVC@WC5WCEUC@\UC@VC+UC^SC@\SC;TCSC@3RCnRCYQC@QC@SCWTC@JSCETC@UCcWC@ZC[CZCZCZCZC+YCYCWCUCTC@SC@8SCQC@QCcRC@JSCnSC@TC0UC@xSC@JQC@PCPCOCNC@NC@NC@xNCMC}NCPCQC@!SCuTC@ UC@aTC@xSC@SC@SCQC@QC@RCRQCQC@3QCSCTC@xRCWRCQC@!RCPCPCQCQCPCWPCPCQCLSC^TCVC@SCRCSCUCWC@WCVCpXCUCUC@VCiVCTCSCSCTCSC@\RCQC@PC@xQC@RC@3SCGSCTCUC;WC#ZCp[C5[C5[C@ZC+ZC}YCXCXCUCSCSC SC@RCcQC#RC@RCkSCTCUCSCRCEQCPCPCNCNCNCMCMCNC.PCQC@JSC.UCVCUCSCQC=RCQC@QC@QCQCPCPC@RCSC@aRCRC@QC@ RC@PC@xPCfQCQCPCiPC@PCQCGSCSCiUC@ SCRCiTCVC@WCVCWCWCUCUCVCVCTC@JTC@TCTCRC@RCRQC=PCPCQCQC&SC@!TCUC@WCYC@[C;[C;[C@xZCYCZCYCWC@UCTC@RCRCRC@QCQCBRC@SC+TC@UC#TC@sRC@aQCPCPCOCGOC5OCiNCMC.NC@PC+RC TCVCVCUCSC@JQC@PC@aQCcQCRQCQC@PCPCRCTRCRCQCQCQCQCPCQC@QC@3QCPC@QCQC@RC@OSC@ TC@RCTC{UCnWCWCGVCWCVC@UCpVCnWC5VC@TCuTCTCTC SCRCPC@PCLPC@\QCQCRCuTCUCWCZCZC}[Ci[C@ZC@JZCZCXC@WCUCSC@QC@OQC=QCPCQCRCRCSC#UCSC@RCRC@ QCPCOCOC@OCNC@MC0NCPCYRCLTCpVCYWCGVCSC#QCPC@OQCQCQCPCGQCPCQCRCQC@RCRCQCRCPC@ QCQC@aQCQCQCQC@RCkSCRC@RCTC@!VCWCVCWCnWC@UC@UCVCVCUC@TCSC@JTC@!SC@RCQC@\PCOCOCPC@QCRCTCRVCWCYCZCT[CT[CZC@ZC[CWC@aVCUC@JSCQCPCYPC5PC^QCQCRC^SCTCSCuRC@ RCQCQCPCOCQC{OCMCENCPCRCTCVCnWC@sVCSCLQC+PC&QCQCQCQCQC@QCQC@sQCpQC@RCRCQCRCQCQCQC@ RC@QC=QCQCRCiSCLRCSCUC#WC&WCUC@WC+VC@TCUCRVC+VCUCYTC@\SCSCRCRC@QC{PCOCpOCPCTQC@RCTC@VC@OWC@YCZC [C[CB[C[CZC@VCUC;TCiSC@QCPCcPCPCQCQC@QCGRCRCRCkRCRRC@QCQCQC@PC@3QC}PC@ONCNCPCSC&UCVCVCUCSCWQCOC@PCQCRCRC@QCQCRC@RC)QCRCESC@RC@QCRC@QCRCfRCQC@QCQCSC@SC@SCTCVCWC@UCEVCVCLUCuUC^UCUC@OUCTCTSCcSC@SCRCQCQCOCOCPCuPC@\QCRC@TCcVCWWCGYCZC[C \C\C&\CYC@VC;UCkTCSCRC@QC;QC@QCRCRCQCQC=QC@xQCQC@RC)RC@xRCRC@QC;QCPCNCNC@QCSC0UCEVC{UCiTCSC5QCPC@QC@JRCRC@xRC@RCRCERC+RC@QCRCSC@JSCQCuRCRCRCRCRCfRCRC SCfSCTCUC WCVC^UC)VC.UC@UCUCUCUC@TCSC@8SC@RC@RCRC@QCPCOCfOCPCPCTQCcRCTC@UCWCYCZC^[C\C\C\CXCTVCGUC@TCSCRCRC+RC@ RC@8RC@RC@RCQC@PC@PC^QCRC@JRCRCRCRC@ QCPC@NC@NC{QC@TCUCkUC;TC=SC+RCPCPCQCRCRCRC^RCRC}RC@xRCQCRCTCSCRCnRC@RC}SC{SC{SC@RC{RCGSCSCUCUC.WC@UCTUC)UC@OUCUC{UCUCTCTCLSC@RCRCnRCpQCEQCPC@OC@OC@OPCOC@QCRCTCVCWC@YCZCc\C@s]CW]C[CYWC@aVCUCTCTCSCWSC@RCRCRCBSCSCRCQCQCQC@!RCRCRCnSC@RCWQCLPCNC+OCQC@8TCTCTC;SC{RC=QCPCPC@aRCSCSC#SCkRC@RCuRC@RCRCQCSC@SCLSCRCRC@3TCETC@TC.TC5SCRC}TCUCVCpVCWTC)UC&UCVC@VCUCTCTTCTC@3SCRCRCBRCQCQC@sPC@PCTPC^PCOC^QCSC@TC&VCWC.ZC@[C@\C]C]C@JZC@VCVC)UCRUCkTCTCSCSC^SC@OSC@SCTC.TC@RC5RCuRCQCRC@xRC&TCSCQCPCTOCOCQCTCGUCSC@RCQC@OQCiPC@xQC.SC)TCSC@JSC}RCRCRCQC+RCQCRCTCTC@RCfSCYTCUCUCUC@!TC}SC@3TCUCEWCTTCSCTCcUCVCVC@UCTCTC@SC@SCpRCERCRCkQCWQCPCPCPC@JPCOCQCSCTCUC@XCZC5\C]C]Cp\CXCVCWC@UCfUCUCTCLTCRTCTC@SC@SCiUCUCSC.SC@SCGRCRC@JSC@ UC{TC#RCPC}OCOCTRC@TC@\UCpSCfRCiQCPCPCPCBSC@TCTC5SC#SCRC@\RC@QCQCQCRC@3TCnTC@ SCSCETC@OVCVCkVCUCTC@TC@VC@VCSCTC@UCVC@xWCVC UC@TC;TC}TC.SCRCRCfRCQC=QCRQCPC@PCPC@3PCnQC@SCTC^VCYC^[C]C&^C]C[C=XCWC{WCpVC@UC UCTC^TC@aTC)TC.TCGTCVCVC@TC@aTCSCRCRCSCnUCUCRC)QC@OCOCRCnTCWUCSC@RCQCQC@\QCRCSC0UC;TCSC@3SCSCRCQCWQC@QC&RC@SCTCSC@SCTC@aVCLXCWCVCUC@sTCVCTCSCRTC@UC&WCcWCWVC@3UC@aTC@aTC{TCRCRC}RC&RCRQC{QC RCLQC@3QCPCPCRCuSC+UCWWC@ZCk\C@3^C@^C]C#ZC&XCfWC;WC)WCEVCUCTCTCTC@TCTCUC@VC.VCUCBUC@TC@OSC@RCSCUCUC@SC@OQC@PC0PCcRCTCUC@aTC@RCRCBRCRCRC@SC0UC}SC0SCSC;SCRCQCQCQCQC@\SCRTC=TC@SCTC5VC@3YCYC@XCWCkUCGVCTSCRSC@TCVCWC@!WCUCUC@ TCTC#TCRC5SCRC@aRC@QCGRC@QC^QCPC+PCnPCQC+TC@UCWCp[CL]C^CY_C\C@OYC@XCcWC@aWCVCWVC}VCYUCTCTCGUC@8UCUC@UCUCUC@UC.UCYTCESCSCUCVCSC@QCOCPC@JRCTC{UC@TCkSCSC@SCRC SCTCkUC@SCRCnSC@SCuSC@8RC{QC@ QC@QCSCTCTCBTC@TCUC@YC;[CEZCXCBWC@JTC@SCSC=UC@VCWCGVCuVCUCTCWTC@SC SCSCRC.RCQCfRCRCQCPC@PC@ QC@QCTC@VCXC#\C]C@!_C^C[CcXC@WCWC.WCVC#VC@VCUC@3UC@TCUCnUCUC&VC{UC@UC@TC@UCTC@xSCSC@JUCVCTCQCcPC@PCRC@TCUC;UC@SCTCSC@OTCSCTCuUC@SCRC;SCSCSCSCQCQCQCRC@SCYTC@TCpTCUCXC@\]C.\C#ZCXCSCRCTCiVC@WC{VC@VCVC@!TC@\TC@\TCSCSCRC@RC RCRC0RCQCQCQCPCPC@aRC#UCVCYCi\C^C@_C^C&ZCXCWC#WCfVCUCUCVCUC&UCTCTCuUC@UCUCYUCUCTUCUCUC&TCuTC@UCUCGTCRCQC@QCSC@UC@xUCUCLTCTCRUCcUCTCSCTC@3TCRC@RC^SC@SCSCRCRCQCSCSC#TCTCTC@\UCWC{]C]C[CZC@xSC@RC#UC@!VC@aVCGVCTWC@ VCSC=TCTC@SC^SCRCnRCkRCQCRRCQC}QCQC@PCGQC)SCnUCVCYCY]C^CW`Cp]C@ZC XC@VC@sVC@UC=UCfUC@UC&UCUC{TC@SCTCUCUC&UC@UC@TCTCcTCTCTCWVC@sUC}TC@RCQCRRC@SC@TC@UC}TC@TCTC.VCTVCUCSCRTC+TC@8SC@SCSC&TC@JTCSC@!RCkRCLSCTC.TC@TCTCUCWC\C&`Ci]C\CRCSC@UCUCUCVCWCTC=TC@xTC@TC0SCRCQCRCQC#RCQC#RCQCQCPCBQC@SCUCVCT[C@8^C_C`C\CYCcWC@VC@UCUC;UCTC@UC UCUC@8TCSCTCUC&UC#UCUC@aTCSC@!TC.TCLUCRVCnUCTC0SCRC@RCTCTUCWUC@xTCTC@sUC}VC@3WCkUCRC+SCSCTC@sSCRSC@SCTCTCRC@RC@sSCTCiTC@JTCfUC;UCUC[C@`C@a_Ck\CRC@TC&UC=UC;VCEWC@JVC0TCSCTCSCLSCRCQCpRCRCQC)RCiRCcRCQCPCRC@8TCUCWC\C@_C`CY`C\C@xYC@WC=VC@8VC@UCTCUCnTC&UC@sUCSCRC@TCUCUC@UCVCTTCSCSC@sTC VCVCUC@UCTCGTC@3TCUCUCTCBTCpTC{UCVC@WCBVCRC@RCSCTCTCSCSC@UCnUCpSCRC@SCTCUC@OTCTCUCVC@\YC=`C@aaC^CRC@JTCTCUC}VC@\WC+UC^TC@\TCUCTCRCQCQC@!RC;QC@QCRCRCRCPC@QC@\RC@TCEVC@8XC\C@!`CWaC^`C\CXCEWC=WCRVCTC@!TC@sTC^TCTCTC@!SCRC@OTC@aUCUCVCWC.TC@RCSCUCVCVC^VCuVCBUC@aTCuTCUC.VCTC@SC@SCUCVC}WCVCGSCRC@SCTCUCkTCSC@JUC.VCnTCkSCSC@TCUCiTC TCUCUC^XC^CbCE`CSCTCTC&UC@VCVC}TCTC@UCfTC=TCRCQCQC@QCpQCRC@xRC@xRC@8RC@QCQCRC.UC=VCXCB^CfaCGbC@`Cu\C@XC@WCGWC@UCTCBTC.TC+TCTCTCRC@JSCTCUCUCVCXCTCYSCSC}UC@3VC#WCcWCnVC@UCYTCTCUCUCuTC0SCSCTCVCuWC#WCTSC@QCSCTCuVCUC@OTCTC@VC@VC@SC@SCTC@8VCGUCTCTCUCWC\CcC@sbC@\SCWSC TCVCVC@\UC@TC@TC@3UC@TC TCQC@8QCQCQCQC^RCRCRC@QCQCRQCRCTC5VC@aYC@^CbCnbC_C@[C@XCXCWCVC;TCTC@TC@OTCUC@TCfSCSC@OUCUCUC;WC+YCUC{SCGTC@xUCVCpWC^WC WCpUCTCfTC@UCUC@TCSCnSCLTCUCWC@WC@xSC@QCTSC^UCGVC@OVCTCTCVCVCTCSCTC@UCUC{TCTCLVC#WCZCaCcC0SCRC@TC@VCVC@UC@JTCUC@TCTCfSCQCuQCQCBQC@QCRCRCpRCQCQC;QCSCTCVCZC`CbCbCp^C [CYC5ZC@OXCUC@TCUCTCLTC0UCnTCTC@\UCUC@!VCUC#WC.XCUC@ TCTC@UCVC0WC@\WC@xVC@TCSCTC@UCTCSCRCRCSCTUCVC@VCuSCQCRSC^UCVCuVCiUCTCGVC^WC@UCSCcTC^UCUC UCTC@aUC@VCZC_CEdCnRCuSCUC5VCTUCfUC+TC@UCTC#UCRCEQCQCPCQC@QC@RC{RCRCQC@OQC@PCRCSCTVC[C0aC@bC`C]C@[CGZCZCXCuVCRUCUCUCTC@UC@UCUCUCUCVCVCVCWC@UC#UCTC&VCVCVCVC@aUCSCRCSCWUCTCkSCcRCTRC@RCTCVCVCWSCQCSCTUC;VCVC@UCUCUCWCiVC^TC@\TCiUCUC+UCTC.UCVC YC]C@cCRCnTC@UC@UC@UCTC@8UCTCTC{TC@aRCRCQC@QCERCRCRRCQCQCQCPCPCTRC@SC@!WC#]CaCaC`C]C{[C@[C@[C@ ZC@JVCGVC VC@UC@OUCVCVCVC@sVC&VCVCVCVC@VC.VCuUCTC@VCWCVCkVC UCSCRC5SCUCTC}SC@aRCRRC@xRCSCVC@WCSCfQCYSCTC@aVC+VC+VCUCUC@WC WCUCYTCUCUCiUCTCUCVC@sXC^\C@sbCESC@\UCkUCUCUC@SC.UC@JTCUCTCWRCRCQCRC#RC@QC@QC@QC@QC@ QCOCPC@ RCiTCXC{^C#aC`C^C@]CB\C.\C\CZC@aWC=VCVCVCVCVCWWCWCVC@VCVCVCVCUC@VCkUCTCWVC@VC^VC VC@\TCYRC@QCSCTC#UCSCRC@\RCkRCRCTC@ VCTC@\QCkRC@TCVC@aVC@aVCUCuUCcVCVC5UC#TCGUCUC@UC@TC@TC@UC@WC@[C0`CSC@\UCkUCVCTC@TCTC@!TCWUC@aSCRCRCBRC@RC@8RCRQC@QC@JQC@PC;PC@OCPCQC UCYC{^C=`C}_C@]C5]C\C\C@^Cu[C@VC{VCuWC@XC@WCWCWC0WCRVCVCVC@WCWCUCUCiUCTCUCRVCRUCRUCSCRCRC+SCTCLUC@TC#SCERCRCQCTCUCBTCTRCQCLTCUC@sVCuVCpVCUCUCnVCUC@aTC@UC@UC.VC@UC@TC@3UC@VCWZC_CTCUC@UCUC@OSCTCSC@\TCTCGSCSC@RCRC@RCcQCuQCQCQCOC@!PC^OC@xPCRCUC5[C@]C_C@]C\C@\]C5]C ]C&^C@ZC@xVC@VCBXCXCXC}XC@!XCWC@VCVCVC^WCXC5VCTCkTCSCYUCUCTTC@TCRC+RCRC@SC@TCGUCTC^SC&SCRC@aRCSCfTC+TC@ SCnQC@xSCYUC@VC+WCVCUC=UCpUCnUC^TCTCVC&WCUCTCUCnVCXC]C@!UC@TCUC@sTC{SCTC@aSCUCSC@SC@SC&SC&SCcRCfQCQCQCcPCOC@PCOCPCRCYVC@a[C]C@]C[Cf\C@J]C]C\C]C=ZCVCWCXC5ZCYCXCXCYWCUCUCVCWCnXCVCnTCLSC^SC@OTC@TCSC5SC@RCBRCRC@8TC@\UC@sUCLUC@TCSC@OSCRC0SCTTC.TCLSCQCRC@TC@JVCWWC)WC.VCiUC5UC@UC5TC@TCVCTWCVC@TCTCUCWC[CTCTCuUCGSCYTCSCSCkTC@\SCSCYSC@JSC@3SC@3RCQCQCPCOC@ PCnPCOC@PC@SC@VC[C+\C@O\CZC;[C.]C]C0]C}]C@YCVCWC YC@[CWZCYCYC{WC VCVC=VCVC@XCWC@TCuRCRC@SCSCSCRCRCRC@RC)UCUCUCEUC)TCSCSCRCSCSCSCSC@8RC=RCTCUC;WCWCcVC@8UCUCTUCTCTCVC@3XC@3XCUCTC;UCVC@!ZCTTC@3UC^TCRCfTC)SC@!TC@TC}SC@ TC)SC+SCGRCRCRCQCPC@3OC@xQCRPCOCPC@SCWWCBZC)[CZCYCZCL]C&]C\C\C@ YC@xWCWCZC\CZC}YC5YCXC@VCUCUCVCpXCWCTCBRC+RC@SCTSCRCkRCRCTSCfTCVC0VCcUC)UCUC@TCSCRC@RCETCuSC@SCRCQCSC}UC@\WC&XC+WCUC@8UC#UCUC@TCUCXCYC@WC@8UC@3UCVCXCTCTCSCSCTCRCSCWSCSCSCiSCSC@3RCRCRCPC^OCOC^RCTPC@8PCPCpSCnWCLYCpZCYC@XC@ZCW\C[C[Ci\C@sYC@WC&WC@ZC\C@J[CcZCcYCXCYVCVCUCGVC XC@XC)VCRCBRC@3SCSCWRC.RCSCSCTCYVCVCTCTCTC}TCSCRCSCTC@OSCRSCpRC@QCSC.UCVCWCBWC@VCTCTC@3VCLUC{VCXCZCYC@VC@3UCcVCWCLTC@SC@RCGTC&SC SC5SC@8SC@TC@SC SCRCRCYSCQC)PCiOCQCRCPCOCPCfSCVC@sXCYCYCWXC@YCL\C[C[C@[C@YCVCEWC[C\C+[C0ZCYCXC@VC@VC@UCfVCWCfXC@\VCTCESC TC@SCuRCcRCSC@TCBUC@xVC@VCcTC@TCTCTCETCGSCSCfTC@SC@xRCRRC@sQCSCTC@VCWC@WC@JVCTCUCUCRVCVC@XC0[C[C@WCUCVC@WC@TCRCSCSCRC@SC SC@aSC@SC@3SC@JSCQC@8SCSCPCPC@xPCRC@3QC@!PCPCPC@SCVC@WCXC@WCXCYC}[C@sZCB[CWZCXCVCWCZC[CZCYCYCYCVC+VCVC@VCWCXC@VCTCiTC0UCTCpSC@\SCSC@xSCTC@OVC{VCUCSCTC@sTCTCSCSCSC@xRCRC=RCQCRC}TC@UCVC@WC@VCUC@TC=VC@8WCYWC@XC0[C@\C@YC@VCEVCVC@SC@ SCTC@\SC&RCSC@sRCSCSC.SC@RCRCSCRCPC@8PCQC@ SCiQC@OCOCBQCSCUC@VC@WCWC&XCTZCZCYC[CYC@XCVCWCYCYCXC@XCYCBYC@WCUC{VC^VCWC^XCVC@UCUCUC@aUCSCSC.SCRCWTC@ VC@VC&VC@SC@TCTC UC@aTCfSCSC0RC@OQC@QCPC)RC@8TC@TCUC@3WCnVCTUCTCfUC0WCWCXC[C]CY\CEXCVCVCRCSCTCiRCRC@SCuSC@ TC@xSCSCRRCSCSCQCPCPCkRCWRC@PCOC@OC@JQC@TC@JUCYVC=WC@3XCXC@sZC@ZC@ZC@ZC@8YC5XCVCGWC@WCXCWCTXCYCXCWCWVCVCVCXCTXCVCUC@UCUCTCSCSCRCRCSCUCiVCVC=TCETC@TC+UCTCYSCRCQC^PCYQCQC@QCpSCTC5UCVCuVCUC@UCEUC;WCXCXC5ZC]C ^CZCWCRWCYSC&TC@OSC@RCRCRC&SCSC=SC@xSCRCSCSCQCPCQCGRC@8QCPCkOC@sPC@xQCSCTCUCkWCXC@YC#ZC@ZC@ZCZCYCXC@WC@WC;WCcWCVCuWCBZC@YC@WCVCVCWC@8WC@sWC@WCUC@VC@UC@TC#SC#SCkRC@QCSCTCVCpVCUC@sTC@xTCnUCTCRCQC@PCOCOC@OQCQCSC0TCTC@aUCUCVC@aUC@3UCWCXC@ ZC@OZCk\C^C@]CYC@WC@TCSC^RCRCSCSCSCTC)TC+SCSCTCYSCERC@PCPC@RCPCPC@JOCfPCQC@SC@\TCUCWCXCYCYCiZC[C&[CYCLYCXC=WCVC@WCVCWCYCYC@OXCWCWC&XC}WCVC@WCUCVC@UCSCRCQC@QC@aRCBTCTCRUC}UC@TC{TCTC@aUC@aTCRC5QCPCPCOC@QCQC=SC@SC@3TCTC^UCUC{UCcUCVCXC@ZCZC\C.^C@^Ci[C;YC@TCRCYQC;SC=SC@aSCLSC@ TC@ TC@SCTC.UCSC#RCPCPCQCPCOCOCEPCQCRCSC@JUCWC@sXCXCXC@\ZC[C[CYZCYCXCWCVC@JWCVC@VCpYC5YCXCGXC}WCYXC@JWC@VCVC5VCUCUC&SCQCQCQCRC@SCUC@TCTC}TCUC@TCTCBTC@RCiQC@\PC@!PC@PC@PC@RC@ SCTCSC@xTCfUCUCVCVC}VCYCZC[C[C@x]C)_C@]CZC@SCiRCQC@SC@SCRCTCTCTCSC;UCTCSC@QCTPC@!QCQCPCfOCOCPCQCWRC}SC@TCVCEXCXC)XC@ZC[C@O\Cc[CLZC@8YCYWCWCWCuVCVC.YCYCLYCXCGXCXCWCVC@VCUC@UCUC SC@!RCQCQC@RC@SC@\TC{SC@TCTCcUC@UCTCSCRCPCnPCpPCOC@PCkRCRCSCSC^TCTCVCVCVCVC@XC}[C[C{[C\C^C_C\C@RC@QC;SC@TCWSC{SCTCTC@TC@TC=VC@TCSCPC@3PC@QCLQCOC@NCOC5PCPC@QC@RCkTC^VCWC@8WC@WC=YC[C;]Cc\C@ZCYC@WCVCVC@VC@VCXCZC@YCXC;XCXCWCUC+UCUCfUC=TCRCRCQCQCnRCSCWSCRCTCTC;VCpUC TC@RCQCnQCPC@PCOCPC@RCLSC@SCSCTC@TC@UCWC{WCWC)YC[C]C\C@\C^C@a`C@O_C@JRC@\RCSC@TCSC@TC.UCUCTCkUCUC@TCRC@PCPCQCPCnOC@OCOC5PCiPCPCQCGSC@UCVC@VC@8WCYXC@J[C)]C\CZC}YC@aWCkVCVC@WC@VC@XC@YCTYCYC;XC^XC@8WCUCUCkUCUC{TCSCSCTRCQC@RCQC@RC@sRCSCTC@!WC+VC^TCRCQCQC0QC@PC@PCPC@!RCSC@SCSCSCTCUCWC@8XCXCTYC[C^C\C]C@O]C`C@`CQCSC@SC;TCnSC@\UC0UC@\UC@TCUCEUC;TC@QCQCQCQCkPC@NCOCYOC#PCPCPCPC@!SCTCUCUCVC@3XCZC\C{\C;[CYC@WCVCBVCVC@WCWC&YC&ZCkZCfXC@XC@WCUC@TC@aTCTCTCTCTCRC@PC@OQCYPC@QC@aRC@SC}UC@aWCVCcTCBRCQCQC@\QC@!QCPCPC@RCcSCGTC@SCSCTC@xUCWCGYCZCZCn\CY^C@^C\C^C_C`CQC@sSC@TC@3SCSC@UCYVC#UCLUCBVC@!UCSCQCuQCRC@PCOC@NCNC@NCnOCOC@aPC@PCRC@JTCUC@UCpVCWCYC)[C[C[CWZCTWC^VCVCVCWC@WC^XCZC[CXCXC@OXCVC@TCTC@8TCTCcUC@TCSCQCPC@OCQCRRCcSCUCVCVCSC@QC@JQC@aQC@8QCPC=QCPCQCSC}SC@SCSCTCUC@VCYC[C@\C]C@3_C`C^C@^C@^CaCTRCSC=TCRC&UC@UC@UCTCVC^UCSC@ORC@RCRC@sQCPC@xOCTNCTNC@NCnOC{OCiOCcPCQCSCTCTCUCTWCXCZCZCZCYCWC@ VCGVCVCVC@VCpXC[C@a\C@sZCXC@aXCRWCUC@TCTCUCuUC@UC+SC{QCOCnNC^PCRC@SCTCUC@UCRCQC@PC@PCPCPC{QCPCEQC@\RCiSC@SC@SC{TCUC@\WCZCu]C=_C `CW`CiaC`C@J_C@x_CaCRCTCSCSC@UCUC@3UC@!UCUC@TCRC@QC@RCRC@PC@JPC5OCNCNC@NC+OC@aOCOC@OCQCLSCBTC@TCVCWCLXCYC}YC@YCYCWC@\VCEVCnVCWCGWCnXCu[C\C[C@XCYC@WCVCGUCWUCVCUC@TC@SCQCOCNC@OC&RCLSCTC@TC@TC@ RCPC@PC&PCOCPCPCQCPCBRCRC@SCWTCTCUCnWCYC^C@3aCbC@bCRbC0cC{aC`CaCRCTCWSC#UCUCuUC@TC@UCLUCTC@JRCRC@SC@QC@PCOC@OC)NCNCNCBOCcOC@OC@8PC@ QC.RCSCTTCUCpVC.WC5YC@XCYCYCTWC@sVCVCVCVCWC@3XCZC]C[C@YCYCnYC@\XCUCUC@VCUC@TCSCQCLOCMCOCYQCWRCfSCSC@ SCRQCOCOCOCYOC@\OCOCpPCPC@QCRC@xSCETC UCUC@3WCYC0_CcCdC@dCcC^dCcCbCYbC@SCSCSC@UC@UC@TC@TCUC@TCTSCQCSC@sRC@QC@PC@OC OC@NC OC@NCTOCLOC@OC@OC@PCRC5SCRTC@JUCUCVC@XCXC@XCEYCWCVCVCnVCcWCXCXCZC@[C[CYCZC@xZCfYC@WC@VCkWC@UC^TC TC0RC@NCMCNCGPCYQCkRC@\RC@QCPCBOCiOCNCNC@NC@NC0PC@ PC QCQC@RC.TCGUC@VCWCYC^CdCpfCTgC@JfCEeC{fC@dC@OcCTCRCTCUC@TC@SC+UCkUCSCRRC#SCfSCSCQCnPCOC.OCNC.OCTOCNCYOC@\OC5OCOCTQCRCSCUCUC=VC@WCXC@!XCWXCWCVCUCRVC@VCWCXC@YCZCYCTYC@ZC+[CZC+XCWCXC;VCTC.TC)RCOCMC@MC@NCOCPC@QC{PC+OCNCNCMCNC@MCpNC@NC@\OCPCPC@RCTCUCWC@WCYC^CeC hC@hChCfC@8hC@gCeCESCSCYUC@ UC@OTC@8TCUC@aTCTSCRC^TCSCTSCQCPCOC@OCOC@\OC.OCNCOC@!OC#OC@OOCPCLRC@OTC@\UC0UC@UCRWCXCWC@OWCVCBVCVCUCUCVCXCYCYCXC@XC[C@[CZC@YC#YCYCVC@8VC@3TC@QCOCMCMCMCkNCROCOCOCuNCMC@MC@MC@MCMCMCNC@JOC#PC@QCQCSCWUCBWC@XCYC]CdCjC@aiCjC@hChCjCgC&SCTC@OUCTCETC@OUCTCSC@3SC)TCTCTCTCQC{PC;PCOCPCOC@NC@OC=OCNC@sNCNCOC.RCSCRUC;UCTUCLVCiWCVC@VC@VC@aVC@UC@UC@UCVC@XCuYC=YC@3XCWCZCZCZCZC=ZCZCRXCWVCRTCQCOC@MC@MC@MCMC@8NC#OCOCNCMCTMCMCMCEMCMCNCNCOCPCRCcSCcUC WCYC@aZC}]C@\cCjCkjC@OjCjC{iClC@ kCkSCYUCTCTCuTCUCTC@SCSC}UCTCUCSC&RCPCBPC{PCOCOCNC@OOC@NC@ONCMCfNCuOC@QCSCTC@\TC@TCnUCUCVC&VC;VC@VCVCUCUCWC@XCYC;ZC@WCVCYCYCZC[C[C[CcYCWCnTCQCNC@NCMCBMCnMCNCOCNCNCMCMC@MC@JMC@MC@xMCLNCGOCOC^PC@QCkSC}UCfWCYC@8[Ck]CbCjCkCiCkCjCkCnCpTC;UC@TCTCTCTCSCTC@aUCBVCUCUCSC@RC@JQC@PCPCPCOC@aOCNCBNCNCMC@MC@NCQCSCTCTCTCTC@JUCUCUCUC.WCVC@3VC@UCVCpXCYCZCBXCVCXCYC@xZC[CR\C]CZC@WC#TCPC&OCYNC@MC@MC;MC@MC@NCWNC}NC@NCMC+MC+MCkMCMCWNCOCOC@PC@QC@8SC^UCWCYC[C@]CaCihCElCpjC5kC@kC#lCoC@\UCUCTC@3TCUCTCETCTC#VC@VCEWCUCSCQC@QC@OQCQC@PCOCNCNC^NCMC.MCMCfNC#QC@OSCpTC@\TCSC@sTCTCUC@sTCUC@VCUCVC@VCWCXCYCZC@XCVCWC@YCZC[C\C^C[CWCWTCQCOC@NCMC}MCWMC)NCENCOCNCNC)NCLCLC@JMC@MCNC@NC;OCpPCcQCTSCUCWCYC\C]C&aC@fC@xlC@xkCjClCYlC@nCUCTCTCTC&UC}TCTC@aUCVCVCVCUCpSCYRCRCQC}QCPC@OCNC@sNCNC MCLC@OMCGNC@PCRCTTCTC@SCSC@3UC@\TCTCuUC@3VCVCVCRWC@WC@3XCYC+[CXC@VCVCXC@ZC^[C)\C^_C]C@XCUCQCPCNC@MC@MC;MCMCNCNC5OCOCNCMC@MCMC=NCNCOCOCPCQC@SC@sUC@VC@YC0^C^C@O`CeC@jCkC@iC;kClCnC#UC;TC5TCTC@3UC@!TC@TC)VCVCVCUCUCTSC@RC@RC@QC@aQCPCYOC@NC.NCMCLC@LCGMC@MCPCGRCSC@SCSCSCTCSCTSC@aTCUCVC}VCWCWCTXCXCZC@XCVCVCXC@YCZC[CB_C@\CRXCUCRC@aQC@sOC;NCMCMC^MCNC@NCEOCOCOCNC#MCMC@JNCGOCPCOCuPCQCSCUC+WCYC)^C@!`C@`C@sdCjClCjCjC#mC@nCTC@SCETC.UC@UCGTCTUCcVC@VC@!VCUCTCSCSCRCQC@QC&PCOCNCiNC{MCLCLC@LCnMCOC@QCSCSCSCSCnTCkSC&SCSC@TCnUCVCWCWCWCYCZC@XCVCVCWC@XCuYC&[C^C@O\CWC@UCSCkRC}PCNC@NC=NCMC0NCNCNCPCPC}NCpMCMCNCOCTPC@\PCPCQCSCUC{WCYYCc^CbCiaCcCiCkC+jC}iCElCnCiTCSC@TCUC@ UCLTCUC}VCVCkUCnUC@xTC#TCuSC@RC@RC;QCPC0OC@JNCNCWMCLC@LC@LC@sMC@8OC#QC+SCLTCSCSC;SC@RCRCSCcTCTCUCVC@VC@\WCXC@ZC YCWCUC@!WCXCXCZCn\C[CEWCiUC@TCSC@QCOCfNCMCMC^NCcNCOCNCQCOCNCMCNC@3OCEPCuPC@PC&RCSC)VCWCYC]CbCbC;cCgCkCpjCWiCkCYnCGTCBTC@UC@UCTCTC@VC@UC@UC@JUCTCTCTCSCRCiRCQC@\PCNC@NCNC@3MCLCLCLC;MCNCPCRC}TCTCSCRCRC@xRCRC.TCTC@xUCVC)VCVC{XC@YCXCWCUCVCWC XC+YCZC#[CVC@\UC@JUC+TC=RC^PC=OCNC5NC@NCNC@NCNC@PC@PCLNCMC@NCcOC@PCTPCPCQC@SCVCXC@!ZC\C@bCfdCcCgCkC@kC@JiCjCLnCSC=TCUC@UCTCTCUC^UCTCYUC@TC@TCWSC&SC@RCQCPC.PCNC@OCpNCBMCEMC@JMC@LC@LCNC.PCRC@OTCRTCRCRC@RC@sRCSCSC5UC@sUCVCUCRVC@JXCYC@XCiWCVCVC@WC@WCkXC+ZC@xZC@VCWUCnUCcTCESCfQC@OCOCpNC@NCfNC@NCNCTOCGQCOC{MC@NC5OCPC;PCPCQC@SCiVCXC[C@ ]CEbCpeC@ eCfCkC@kCiC@OjCcmCSC@xTCfVCTC@TC@UCBUC@aTC@TCUCUC#TC@SCfRC@ORC}QCPCOCNC.OCNCMCMCLCLC@ MCMCOCRCLTCcTCBSC+RC@xRCRC)SCSCGUC0UCUC VCUCXC@YC@XC XCTVC@OVCLVC@WCWCYC@8ZCVCUC.UC@8TCSC@\RCPC@OCNCNCNCOCNCOCQCOCGNCNCOC@OC@aPC0QC@RCSCfVC@XCZC@\C@`CBeCeCfCTjC@\lCkCiCkCSC{UC@aUCkTCYTCTC@UCSC@OUCTCTCSC@ SCRC.RCQCPCcOCNC@!OCNCMC@MCMCLCLCMCOCRCTCTCRCuRCRC@RC@ SCnTCfUC{UCGVCVCVCWWCkXCXCXCVC@UC@UC)WC@WC@YC@\YCVC@ UC{TCTC@SC@RCEQCRPCOC@OC=OC@OCNC@OCPCTPC@NCNCOC@PCkPCcQCkRCpTC0VCXC@ZC}\C_CidC@eC@fC@ajClC.lCWjClC#TC=VCTC@TC^TCTCSCpTCTCTC0TCTC@SCRCRCLQCPCOCOCOC@!OCNCMCMCLCMC}MCOCRCGTCTCRC{RC@3RC&SC@xSC@JTCUCUC@VCVCVCVC@WCXCnXC@OVCTC@OUC VCWCnXC#YCGVCTC.TC@SC@!TCRC@QCPCPC@JPCOCOC@xOCNC0PC+QC@OC)OCPCPCPCQCRCLTCVCXCRZC@J[C]CubCeCcfCjCWmClCfkC;kCTCUCTCETC@SCWTC@\SCTCTCTCSCSC@SCSCYRCPCOC@OC@OCcOC@\OCNC@ NCMCMCLC;MC=OCQCWTCTCuSCuRCRC@aSCSCTC}UC@!VCWC@WCEVCUC@!WCWCXCfUCTC UCUCWVCXCXC@UCfTC@\SC@SC@SC#SCRC@QC@QCQCPC@PCYPCpOCOC{QC0PC@OCPC@xPCWPCRQC)SC@TCVCYC@ZC@ZCB\C}`C0cC#eChCimC@mCTlCkCUC@UC@TCpSCTC0SCkSC@TC}TCSC{TCTCSC@SCRCLPC@OC@OC@OC@OCnOCNC.NC@8MC;MCLC@!MC@OC#RC@TCTC@sSC@ RCRCSCSC;UC@OUCVC@WC@sWC+VCUC#VCWCWC@UC@OTCSC@sUC)VCfXC XCVCSC^RC0SCRC@ORCfRCcSC@SCSCQC@QC#QC{PCOC=PCkPCPCpPC@PCPCQCRCTC=WCYCZCZC@ZC^CaCLcC fClCnCWmCnlCUCnTCSC@!SCSC@ORCTCTC.TCTCiTCTCWTCSCLQC&PCOCROC@OCOC@OCOCNC@MCTMCLCMCOCQC.TCTC#SCuRCRCTCWTC=UCUCVCkWCcWCYVCUCWUCuWC@WCUCSC=TCTCUC@XCWCVC.SCQC@RC@RC+RCcSC0UCUC@xUC@8SC&RCRCPCOC@JOCPCPCQC@\QCPC{QCRCUCWCiYC@8ZCYCYC@\C_CaCcC@OjCoC@OnCmCTC&TC)SC@SCGRCRC@SC#TC@SC@sTCTC@TCTCRCPC@OCPCOCOCWOCOCNC{NCMCLCLC@MC@NC@RCLTCRTC.SCQCRCUC@TC@JUCUCVCVCnWC@VCUC#UC@VCVCcTC{SC@SC TCTUCWCXC@xVC@xSCQCGRCRC5RC0SCVCEWCWC{TCTSC@8SCQCOCTOCOCPC;QC@QC@QC+RC@ SC@xUCWC@YCZC@YC@JYCZC^C)`CaCfC@nCoCnCSC@aSCcRC{RCiRCRC@SCSCBTCLUCTC=UCSCRC@PCfPCOC@OC@OCOCGOCOCNC)MCLCLC@xMC{OC{RCSCSCRC@aRCRSC}UC@UCUCLVCVCVC;WCVCUCUCVC@VCYTC@3SCSCSC@!UC@WC@XCVCSCQCQCRCRC@ TCWC^XCXCLVCkTC=TCRCOC@!OC@8OCOC@QCGQC@QC@QCRCTCWCZCcZC#ZC+YC@YC\C@!_C`C@bCkkCpC;nC@TC@RC=RCQCQC#SC^SC@aSCTCUCUC@TCRCQCPC)PCOCOC}OC@OCOC.OC NC}MCpLC@\LCMC#PC@RCSC@SCRCRCSC@xVC@VCfVCVCcVC#VCWC^VCUCpUCVCVCTC5SCSC@SCTCVCXCVCTCQCRCRCRCTCYC@XC{XC@!WCTCTCSC@PC#OCNCOC@xPC@QCQCQCRC0UCRXCfZCZC&ZC.YC@YC[C]C@J`C@`CpfC@oC5oCSCfQCQC@xQC@!RCRCSC@OTC@TC@TCUCBSC@3RC@3QC@PC@sPCOC@OCOCGOCOC@NCBNC@sMC@LCLCNCPCRC@SCSC@QC0RCBTC@xWCVCnVC@WCVCUCuVCUCUC&UC@!VCWCTCSCSCSCTC@UCXC@VCSCRC@JRCSCTCVCXCXCWC=WCGUCTC@SC@xPCOCEOCGOC@OC+QCQCQC@!SCTCXCZCZCWZC@sYC=ZCZC0]C_C`C;bCkCkoCQCpQCPCEQCRC@8SC@sSC@\TCUCkTCBTCRCQCfQCPCOCOCOCOC@OC@JOCOC@MCTMCMCLC@NCcPCRC@SCRCQC@xRC@\UCWCWCWCXC#VCRUCUCUCWUCUC@UCVCUC@SCSC@SCSCUC@XCVCSC@RCRCSCTC)VCXC^XCWC@VCUC+TCSC)QC@aOCOCOCOC@!QCQCRCWSC@TCWC@ZC@![C@ [CfZC@sZCZCB\C^C`CW`CfCoC5QC@PCPCQC}RC5SCSCTCTCiTCpSC{RCQCPC@PCOC PC@OCOC@OCOCpNCMCRMCLC}MCNC@OC)RC^SCRCRCRCUCWC@VC@\WC@XCuVCUCUCLUCTCUC@\UC@xVCUCTCSCTCSCUC{XCVCTCcRCRC@ TCUC@VCWC@WCWC@8VC&UCSCSC@xQC@OC@OC@ PCLPC@ QCQC@sRC}SCTCkWC@ZC@\[C@[C@ [C.[C[C+\C^C@JaC`C)bC@OkCPC+PCPC@QC@RCSCSC@TC#TC@SCRCpRC@QCQC@ PCPCOCOCPCOC{OCNCMCEMC@3MC@sMCfNCiPC@QCSC@sRCQC;SCUC@WC#WC{WC@WCTVC@UC}UCBUC@TCUC@JVCVCUC@!TC@SCTCSCTCXCVCGTC.RCRC@TCVCWCVCYWCuWC@ UC@TCTRC@RCQCOCOC=PCPCPCQC@SC@\SCTC5WCZC@[C@[C[C[C[C5\C]CaC@aCL`CfC@8PC@ PCfQC@xRC@!SCTTC)TCkTCSCRC@RCcRCQCPCRPC;PC@OC@OC@OCLOCYOCNC@MCMC@MCfMC@ NC@OCQC@3SC{RC@RCSC&VCWCWCWC.WC^VCTCEUC UCTCUCUC@VC;UC=TCSCTCSC@TC@WCVC@TC@aRC@RCTC@UC@VCRVCVCTWCYTCRC@xQC@QCLQCWPCnPCPC.QC@PCQCRC{SCTCVC@YC[Ci\C\C[CL\CR\C^]C@3aC@bCW`C.bCPC#QCQC)SCcTC@aTCSCSCfSCRCRCQC#QC@PCpPC0PCOCpOCOCkOCROCMCMCMCpMCGMCMCOCQCRCRCRC@SCpVCXCWCVCVC@VC@TCTCTC@TCUC^VCkVCUC@!TCSCWUC@TC)TC@VCEWC}UCSCRCTCVCVCVC@VCVC@xTC@QCPC@PC.QC@PCcPC=PC&QC=QCQCiRCSCTCVCGYC[C@J\C]C+]C]C@\C]Ci`CdCaC@J`COC@xQCRC@TC@ UC@SC@SC)SC=SCSCRC@QC@QCuPCPCOC@3OCpOC@OCOCNC@ONC=NCMC@3MCLCYMC@OCERCRCRCRCTCiWCYCWC+VCVCUC@TCETCUCUCUC@!VCUC@xTCRSC@SCBUCTCSCVC@WCUC&SCRCUCVCRWC@WCVCkUC@OTC@QCPC5PC@PC@aPC@xPC=PCQC@QCQCRC+TC@UCVC@XC@O[C@\C^C;^C]CY]C]C}_CWdCcC@3`CPCRCTCTCTC@SC SC@xSCLSCSC@RCQC@\QCPCPCOC@OCOCOC=OCNCNCNCMCMCLCiMCPCRC@SCRC TC@JVCXC.[CWC{VC WCUCTCTCTCTCVC@UCUC@3TCRC.TCTC@8UC@SCiUCWC@sVCTC#SC)VCVCuWC{WCTWCUC@TCRCPCnPCTQCPCQC PC@PCuQC@ORCSC@TCUC@VCXC [C\C^C^C@!^Ck]C]C@x_C@OcC@eC;aCkQC0SC@xTC0VCiTCWSCRC.SCkSC@SCRC@QC&QC@PCuPC@OCNCNC OC@NCGNC@aOCNCNCLCLCBNC@QCWSCBSC@TC#UC@WCZC[C@WCWC=WC0VCUC@\TC@TC@UC@UCUC#UC)TCSC@TC@TCUCSC UC@VC@JWCUCWSCUCTWCkWC=XCWCiVC@UCSCQCPC@\QC@QC#QCPCPCQCWRC@SCTC@UCVCXCZC@J]C^Cf_C^C@^C]CB_CaC@!gCnbC@aRC@8TCkUCUCSCRCRCSC5TCSCRC@QC@!QCPC@OC@NC@NCNC@JNCpNCNCOC@ OCMCEMCpMCOC+SCSC5TCGUCVCYC@ \C[CWCVC@OWCTVCUCTCUCUC@UC@OUC@JUC@8TCRCTC@3TCUCSCTC@8VCpWCVC@!TC@TCcWCVCWCWC@VCkVC@TCRCQCRCQCQCQCPC@!RCRCTC@8UCVCWCXCZC]C=_C`Cu_C^C)^C^CaC)fCeCcSCRUCVC.TC@aSC@ORCSCSCTCTCRCkQCQCPCOCNCNCNCNCTNC@\OC@aPCOCMC{MC@MCQCTCBTC@ VC@WCXCZCR\C[CXC0WCEWC@VC@UCGUCUC5VCUCUCUCkTCESC@TCTC^UC@SCTC@UCWC@WCTCTC@VC@3WCWCLWC@VC@VCTCTC@SCpRCRC5RC}QCEQCQCkSC@OTCVC5WCWCXCZC@]C_C`C_C^C@s^C@s^C`C@OdCgCpTCVC@UC@3SCRRCuRCESC@TCTCTC@RCQC@QCTPCOCNCOCNCNCiNCOC5PCNCNC@MCOCRC.TC@UCLXC@XCYC[C[CBZCWC@VCWWCVCUCUC.VC@3VC;VCVC@UCUCESCcTCSC@TCSCTCUCWC@JXCTCETC{UCWCWCVC@VCWC@aUC@VC@aTC+SCGRC@JRC@aRCQCRCSCTCUC@ WCiWCXCY[C@]C)`C@ aC`C_C^C^C&`CYcChCpUCWCnTC@aSCQCRC@SCUCiUC^SCQCQCQC@PC^OCOC+OCNCNCNCPCkOC@NC&NC;NCPCSCTC@\WC@YCfYC@ ZC[C@ZCcYCWCVCWCVCLVCVCVC@VC}VCUC=VCUCSCTTC^SCTCSCTCuUC@WCXCuVCSC@TCWCVC.VCUCWC}UCVCVCRTCRC&RCRCSCfSCTC@UC.VCLWCXCXC@J[C]C_CaC@OaC@s`C_C@ _CR_CWbC@fC@VC@UCSC@8RCQCSCfTC@UCTCSC@ RC@RC=QCOC+OC)OC@aOC@aOCNC@JOC&PCNCNCNCNCQC@SC@aUCnYCZC@3YCZC@ZC@aYCWCWCWCiWCVCVC@VCiVCVC@UCUC@ VCTTCWSCSCSCfSC@SCTC@TCVCXC=WCTCWTCRXC@VCkUC{TCVC@UC}VCWCUC=SCpRCSCSCSCEUCVC@VCWC@JXCXCZC]C_C@aC@aC`C_C._C_CaCeCVC@\TC@sSCQCRCSCRUCTUC@SC@xRCQCQC@PC@PCGOC0OC}OCTOCNC@!PC@OC.OCNCNC@\OCRCTC@xVCZC@YC;YC[CZC@WCWCEWC^WC@VCVCVCVC@\VC@VC@\UC@JUCTCSC SC@\SC^SCSCSC@TC}TCUCWC@XCfVCTCXCVCfTCSCBUCfUCVC@WCVCSC@RCTC@TCTCUCVC;WCWCXCXC@J[C@]C@_C&aC@aCGaC@s`C@a_C_C@\`C@cC@UCSCRCQCRC5TCVCEUC@SC)RCRC0RC@PC@xOC@NC@sOCPC@sNCNC@PC&OC@NCcNCNC0PCSC@JUC@WCLZCnXCYC[C@YCVCUCuWC@8WCVCTVCUC@UCUC+VCTC@TCTCSCRCRCcSC@JSCSC@SCETCTCVCXCVC#TCWC@VC@SCSC#TCTCRUC&XCVCTC@SCTCpUCVC@VCWCWC@XCXC@\YCZCn]Cf_CBaCaC@aCcaC)`C@\`C`C}bC}SC@SCRCiRC;SCUC@UCTC@SCQC{RC@QCcPC@PC^OCOC+OC@3NC+OCOC@NC@JNC#NCNCPCSCGUCXCcYC+XC5ZCY[C)XCUCUC@3WC@JWC@VCUCUCLUCUC@VC@3UCSC@SCRCQCRC@SC@3SCSC@SCSCTC@UCXCWC@JTCVCUC@RC)RC&SC@SC@OUC@WCWC@UCTCRUC;VCRVCWC@OXC@XCXC@aYCYC [C]C _C`C@aCbCbC`C`C@`CTaCSC&SCRCRCTCUCRUCSC=RCQCRCPCLPC@JOCOCOC@OCNCOC@OC@NCNC^NCOCcQCfTCUCXCWCXCZC[CBWC@\UCUC0WCVCWCUCYTCTC@ VC@VCTCSCSCRCQCRC@sSC@RC@SCSC@\SCSCTCWCWC@TC)VCWVC@JRCnQCQCRC@TCVCWCVCVC VCVC@!WCWCGYCYCXCuYC@ZC[C\C;^CW`C{aCnbCpbC#bC`C@OaCaCSCRCRCSCTC@UC@TC.SC@3RCRCLQCWPCPCkOCOCcOC=NC{NCOCOCNC)NCkNCROCYQC@SC)UCWCWCYCZC@ZC@VCTCUCRWCiWCWC@JUCSCGTCYUCnVCnTC@SCTCRC@ RC@RCRC.RCSC=TCRCSC@aTCVCiWCTCUCUCRC;QCTQC@JRCSCVC@ WCVC0XC@WC#XC&XCXC@aZC[CZCfZCk[Cc\C@ ]C@^Cf_CaC@bCbCbC{aCEaCbC@xSC{RCRCSCfUC@OUCSC@RC@ORC@RCPCOCcOCOCOC@OCMC&OCOC@8OCNC@MC@\NCBOCuQCRCTC@sVCWCYCZC@YCLUCUC@!VCkWCRXCWCTC@3SC@TCBVC@UCTCLTCTC@JSCQC@QCRCRCRCkTC@RCSCSCUC@WC0TCTCUCSCPC@QC@RCSCiVC@8WCcWCYC0YCYC@xYCYC@ZC\C\CZCi\C@x]C]C@]C_C@`C}bCbCcCbCuaC@bCSCSC@SC@TCUC^TCSCRCRCQCOCOCNCNC OCNC5NCNCkOC@OCNCMC@NC5OCPCLRC.SCTC5WCfYCYCTYCTC@TCVC@WCXC0XCUCRC@\SCUCUCfTC+TCTC@SC}RCnQCRC;RCRC@JTC@RC@!SCETCBUC}VCuTC@xTC@aUC@RC@QC#QCBRC@SCVCWCWCpZCW[CuZC;ZC)[C)[C]C}]Cf\C\C@^C@!_C}^C@^C`C@bCcCTcC&cC.bC@ bCRC@SC@TCfUC@UCWTCSCcRC@ORCPCLOC@OCNCcNCNCpNCNCNCfOCNC#NCnNCNCOCRPCPCQC@SCWWC@XCYCWCSCTC@!VCWCLYCWCWTC;RCSC@UCRUC@JTC@\UC}UCUCSC5RCQC@sRCRC^SCRCRCSCTCLVCTCTC@TCRCPCEQCRC&TC}VCXC@sXC [C]C}[CZC[C\C@]C+_C]C]C_C`C_CG^C_C@bCcCcCcCbCbC@SCTCTC^UCSCSCRC@ RCQCOC0OC{NCMC@3NCNCMC@NCNC@JOC#NCNC@NCNCNCOCOCWQCSCVC{WC@YCUCSCTCVC@WC@XC=WCSCQCRC@VC@aUCTCUCWCYVCSCRCGRCRC@xRCRCSCRC+SCSCUC@aUC@UCTCSCPCPCSC@JTCLVC@xYC@YC\C^C\CG\CR\C]C]C@a_C^C]C^`CbC@!aC;_C@O_CaC@OcCcC@dCkcC)bC;TC@sTC@UCUC@!TC@SCQCQC@3QCOCNC@MC@MC}NC;NC@MC@ NCNCNCNCNCNCNCNCNC@OCPC{SCUC@VCWCTCnTCTC@ WCWCXC@VCRCpQCSCXCUC@TC)WC@\XCVCTCSC#SC@RCRCQCRC{RC SCcSC@aTCUC@TCfTCSCnQC@PCRCTCYVCYC&[C5\C^C@^C\C]C{^CT]C@^C@!`C@^CW`CbC@bC`CG_C`CGcCRcCdCcCbCTC@8UCGUCRTCTTCRCQCPCBPC@NCMCMC.MCNCENC@MCNC5OCRNCcNC@3NCiNCNCNCNC@PCPCESCRTCUCUC+TCSCiUC)WC@WCWCLUCRC RCTCnXCnVCTCWC@YC}WC@TC#TCRCnRC&RC{QCRCRCRC@RC@\SC}TCUCETCGTCQCPC5RC@TC@VCYC&\C\C_C_C\C ]CT_C^C]C`C_C`CbCcCaC@_C`CRbCYcCcCdCbCTC.UCTC@\TCGTCRCBQC@PC@OCMCMC5MCuMC=NCMCMCNC@OCNC.NC&NC@ NC@!NCMC@3OCBPC@PC@OSC@SCiUC@TCTCkTCUC@ WCWCWCpTCRCRCVC@OXC@VC@\UC@sXC@YCpWCTC@TCRCuRC@RCRCQCcRCcRC@RCRCSCUCGUCTCRCPCQC+TCVCXC\CG\C=^C{_C@]Ci]C@\_C@^Cc]Cc_C&aCaCbCdC@abC`C@`C@aC@bC@8cC@acCBcCYUC@UCBTC0TC@OSCBQCPC@PCOCYMC@\MC^MCNC@ONCMCMCNCNCNCBNCMCNCMCLNCOCPCERC@8SCSCTCSCTC@UC@VCVCWCVC@3TC@SC@sSCkVCWC@VC=VCXC;YC@WC;UCTTC@RC@aRCYRCQC@aRCuRCRCRC@QCRCUC}VC@sUCSCQCQC@SCVCXCZC[C@J\C^C]C\C@\_C_Ci\C]C}`C@aC@sbCcCEcC`C@s`CGaC bC@bC@cCbCpUCTCWTC0TCTRCQCQCPCMCLC@LC@MCNCnMCMC@aNCOCNC0NCMCMC@MCMC@NCPCQCSCSCETCSC@OSCSC@OUCiVCuVCWC@xVCTC@SCYTCWVCVCWCVCXCXC@VCcUCTCRC@aRCRCiRCRC@xRCQC)RCPCQC@TC@aWCkVC;UCkRCPC@aRC@sUCWC0YCZCZC\C5]C\C0_C_C\C@\CY_C@bCbC@3cC0cC`C@s`CpaCaCnaCaC@xbCUCLTC@3TC{SCLQCcPC@\QCOC@xMC@LC@!MC@3NCNCMC)NCOCnOC^NC@MC@MCMCMCMCNCPCQCSCfSCSC@xSCTSCSCUC0VC WC@sWCTVC@TC5TCTCUCuVC5WCVCXCXC WC#VCTC@SC@RC.SCkRC SCRCQCRCQC@8QC@TCRWCcXCWCSC@QCQCSCWCXC#YCXC@8ZC\C@[C]C@ _C\C\C]C}aCcbCbCbCaCc`C@`CRaC^aC`C@!bC@TCSCSCRC@8QC@!QCGQCNCLCLC@MCNC@!NC@MCNC@PCYOCLNC)MC;MC@sMCMCMC@8OC+QCRCnSCTSCRSCRCRCSCUC@VC@WC WCUC@3UCuTCEUCUCUCVCVCXCYCYXC@VCiUCSC@RCSCRCLSC@8SCRCRC@ RCQC@RCVC@YC.XC@3UCRCYQC@RCUCWCXCWCpXCYC[C\C@^C@]C[C\C0`CaCaCaCaCf`C{`CaC`C@ `C@`CTCTCfSC@QCPCQCPC@8NC)MCLCNCNC@NC@MCOC@\PC@3OCMC+MC{MCuMCMCiNC@OCQCRCSCRCRCRC@RCTCUC@\VCVCVC@sUCUC@ UCpUCUCUCGUCUC)XC=ZC+YC@WCcVC TC@SCpSC@SCcSCSCRCRC5RCPC@QCTCLYC=YCkVC}SCQC=RCTC@VC@WCVCVC@8XCZCW[C]C]CG[C \C+^CaCaCaC@\`C_C_CkaC`C_C_C;TC@SCRCQCRC@RC{OCMCLC^MC)OCNC@MC@OCBPCPCOC@MCLCLMCMCMC@NC.PC)QC@RC@\RCRCRCRCRSC@TC VCWVC&VCUCYUCUCWUCUC@xUCTC@TCUC@WCZCYCXC@VCnTC@\SCSC@OSCSCTC SCRCQC5QC@xQCTCWC@YCLWCTCRC@QCGSCUC5VC#VCUC@WCYCZC@\\C\C[C@[C]C_C@ `C_Cp_C@_C@8`C@`CB`Ck_C^C TC@aSC@RCnQC@RCQCNCLC@LCNC@xOCNCBNC@OCPCOCNC@MC MCMCMC@MCBOC)PCQC@QC@QCQCRC@RCSCWUC@ VC@VC@VCUCTCTCUC@UC@UCTC@\TCUCcWC@YC@ZC@XCWCTCSCRC@RC0SC@TCSCRCRCGQC@PCRCUCWCWC5VCnSC@xQC@!RCTC@xUC;UC@UCRVC@aXCZC@ZCp[C[CcZC@[C@8^C@s_CY_C_Cc^C@ _C@_C_C@_CL^CSCSCRCQC@QC@OPCMCkLC@xMC=OCOC@JNCWOC@\PCPC@JOC@MCRMC@MCcMCMC@NCOCPCQCQCPCPCWRCRCSCUC#VCVCVCUCUCTC@JTCUC;UCTC@8TC@JUC+WCYC@YC@YCYWCUCkTCSCRC@RC@SC@8SC)SC@\RCuQCPCQCkTC@VC@aWC@3WCTC@RCBQC@!SCTUCWUCTC@\UCBWCYCZCZC^ZCZCZC]Ci^C@^C@]C]C@^C{_CW_C_C@^CTCTSC.RC0RCQCWOCcMCMC@NCOC@OCuNCOC^PCOCfNC=MCfMCMCMCMC@NC@sOCEPCPCpPC0PCPCRCRC&TCUCcVCpVCVC@TCTCSCLTCnUCTCTC@TC@aUCWWCYC+YCXC@VCBUCUCTCSCRCRCSC=SCRC@xQC&QC+QC@RCUCVC@XC@UC@ SCnQCRCTCUCcTC UC#VCXCZCTZCYCYCZC[C]C]C]C\Ci]C^CB_C^C)^CSC@RC@\RC@JRCPC@NCnLCMCOCPCNCNC.PCPC=OCkNCMCWMCMCMCMCiNCOC@PC@PC@PCPCQCRCRCTCUCiVCWC)WC@TC@SCYSCSCTC@sTCEUC#UC@UC@\WCYC@!XCWC@VCpUCBUCTCTCRCRC+SCSCRC#RCQCnQCQC@\UCVC5XCVCGTCQC^QCSC@OTCTCTCUC@XCYC@YCYC@YCZCZC)\C@\C@\CL\C\C]CY^CW^C]C@SCRCLRCQC@OCMC@LCWNCOC@aOCNC&OCOC@OCuNC@ NCNC@MCMC@NC&NCNCPCPC@PC@PC@PCQC@RC@3SCTCUCYVCXCVCkTC@8SC#SC@SCkTCTC@TCTC.UC@WCXCWC}WCEVCTC@JUCUCTCRCRC@RC SCLSCRCQC@PC;QCSCLVCWCRWCUC@\RC@QC@RCTCTCGTC@TCBVCXC@YC&XCWCYC@!ZCG[CR\C\C[C@[C@\\C@]C]CT]CSCRCcRCQCOC@xLC@MCNCOCNCNCROCfOC5OC@NCNCNC@NC@NCMC&NCOCPCQCPCPCPC}RCfRC@SCTCTCWCXC@WC@SC@SCRCTCTC{TCTCTCTC.VCXCWCWCUCUCUCVCfUCnSCRCRC@RC;SCRCRCQCcQC@RCUCYWCVCBVCSCQC@RC@SCTCSCfTCUCVCXCWC@8WCWCYC@xZCW[C[Cn[C&[C[C@]C\C\CRCRCRCPCMCELC@MCOC0OC@JNCOC@ OC@3OCNCOCNCNCNCMCMCNCPCQCQCQCPCQC@3RCRC@8TC@TC@TCWCWCkVCSCRCkSCTC@TCYTCTCSCTCUC XCXCVCUC@TC@VC=WCTVC@ TCRCRCRC@RCnSC@aRCQCEQCLQCSCVC@xVC^VCUC@RCQCRC@TC)TCpTCTC@!VCWCXCGVCVCWC5YCZC@ZC@8[CZC[C[C[C \C@RCSC@!QC@NCpLCMC@!NCNCNC@NCNCNC@NCNC@OCOC@NC@NC@NCLNCOC{QCRCRCPC0QCRC@JRCSCTC=TC@TC^WCWCUCSCSCSC;TCSCnTC@SCkSCSCRUC)WCXC5WC.UC@aTC#VCWCVCTC&SCYRCRC@RCRC@RCQCYQC@!QCRC0UC;VCLVC@VC#SCQCRC)TCTTC@SC@3TC{UCVC#WC@sVCUCVCXCYC ZCZC@\ZCZCZC@ZC[CRCRC@PCMCWLCuMCNCNC@3NC.NCENCNCNCOCYPCPC5NCNC^NCYNCOC@QCBSC@QCPC@QC5RCRC@ TC@TC@TCpUC@WCnVCnUC@sTCSCLTC^TC@3TCTCYTCSC@TCcUCVCnXC@3WCUC@TC@JVC^XC@!WCTCSCRCQC@QCnRCRCLRC@RCGQC@aQC@SCfUC@UCWCBTCRCQCSCTCSCkTCRTC.VC@VC0VC@JUCpUCVCXC@XC@YCZCuZCBZCYC)ZCiRCWQC5OCMC@LCYMCNC=NCMCMCNCTNC@OC)PCPCOCiNC}NCNCRNC@PCRC@SCQC@ QC@QCTRC@sSCTCTCUCUC.VC;VC@OUCLUC@SCkTCTC#UC@TCTCBTC+UCUCVCXC{WC@\UCSCUCXC}WCUCSCRCQCQCRCRCkRCRCQC.QCRC@xTCUC@XCUCBSC5RC@!SCTCSC#TC@ TCUCVCUC@UC)UC@UCVC@WCXC@YCYCYC@YC@YCuRCPC@ NCLCTMC5NC@ NC@MCMCMC^NCNCOC@PCGPC@OC@NC@NCLNC@NCQCSCSCTQCQC&RC@aRCSC@TC@TC@sUCUCUCUCVCiVCSC@TC@\UCYUCTCTC@\UCVC@JVCWCXC@sWCTUCSCiUC@WC#WC@UCTC;SC@RCQC@QC^RC;RC@RCRCQCQCSCTC.WC@VC@SCRC@RCSC@SC@SC@TCTCUCVCLUCUC@3UC@OVCWCXCYCcYCkYC@YCXCQCNC@ MCLC@xMC0NCMCMC@MCMC.NCNC@aPCQCPCOCNCNCGNC@OCuRC@SCRC&QC5RC@QCRCTCGTCUCUC=VCTC@\UCWXC@8VC@SCUCVCVCnVCcUCUCVC)WCWC+XCEWC@xUCTC#UC@aWC@3WCGVCTCBTCRCQCRC0RC@3RC@SC5SCRC@QC@xRCSCnVCVCTC@!SCRCRC@3SCSCSC@TC@UC.VCUC.UCUCTCUCRWCWC@XC{YCYCcXCPCNCLC@!MC@MCMCMC@MC^MCMCMC)OC#PCPCPCYOCOCpNCYNCPCRC{SCQCQC@\RC@sRC+SCTCTCUC&VCBUCTCUC@YCUC^TC&VCWC=XC{WCWC@ WC@WC@WCEXCTXCWCUC=UCLUC WCWCVC@UCBTCSCSCRCSCRC@RC@sSC;SCQCQCSC@TCVC@UC@SC.RCYRC0SC0SCSCuTCUCUCUCTCUC@UCUCVCVCXC@YCuYCWC@aOC+MCLC@MCMC@MC@xMC)MCMC@MCGNC@OC=PCPC@OC@OCNC@NC@NC@!QC@RCRCQCRCcRCRCESC;TC@TCVCBVCTCTCVCXCpUCGUCcWCYCfYC5YC@XCXC@XCWCXCXC@VC@OVCUC@UCVC@VC@VC+UCTCuTCSCSCSCSC@JSC@SCSCQCPCRRC@SCiUCUC@TC^RCQCRC@RCSC)TC.UCVCUC@ UC5UCTC@TC^UCVC WC@WC@YCiXCNCGMCMCMCNCMCMC@LC@MCMCfNCOC0PC)PC;PCOCNCNCOCQCRC@RC@RCRCRCRC@8SCTCTCVC@!VC.TCTC@WCXCUC@sVCXCZC@ZC#ZCWYC@sYCYCXCXC@3YC@WC;WC0VCiVC@UCVCcWC+VC@!UCcUCTCTCnTC@sTC@8TCSC@RC#RCPC@PCnRCTCTCuUC{RCQCpRCRC;SCTC@!UCUCUC{UCTCUCUC)UCUCiVCWCfXC@\XC@aMCMCMC+NCNC@MC@LC@LCMCMC@NCOCOC+PCRPCOCNCNC@OC@QCRC=RC#SC&SCRCRSCSCTCcUC@3VC)UCETC@JUCXCWC@\VCXC^YCZC@8[C[CZCZCYCnXCXCXC@XCWCWCVCVCVC@OWCWVC5UCUCRUC=UC@UCUCEUC}TC@RCQCcQCPCuQC+SC{TC@aUCSCQC@ RC@RCSCcSC@!UCUCUC}UCUCTCTC)UCUCUCVCuWCXCkMCMCNCNC{MCLCLCLC@OMCNCOCBOCOC@PCpPC OC5NC@NC)PC+RC@RCSCSCRC@RC@3SC=TC0UCUC&VCTC@TCUCWC@VC^WC@YC}YCZC[C[CZCY[CXCcXCXCXCYC=XCWCWCVC@VCkWCWCUCUCVCTVCUCUC@\VC@UCTSCQCEQCPC^PCQC@8SCTCTCRCRCfRCSCkSCGTC UC@JUCUC@UCTC@\UC@JTC@TC@UCVCVC@WC@ NCNCiNCMC@LCLCLCLCpMCMCNC&OC PCkPCOC@NCYNCNCPC@ORCRC@SC@SCSCSC@8TCTCiUCUC@UC@\TC@3TC@aUC@VC@WC=XCYCXCZCWZC@ZC}ZCZC@WC;WC@\WC)XCYC@!XCWCWCWCWC{WCfWCGVC@UC#VC@aVCcVCUCVCVC@SCQC)QCPCPCWPC@aRC+TCUC&SC5RC@sRCSCSCTTCTCUC+UCTCTCTCTCTCTCiUCVCVCkNC OCNCMC@LCLCLCMCWMC@NC@NC@JOCOCOCOCNC{NCuOCQCRCSCTTC5SC@aSC@SCTCfUC@VCVC@sUCSC@TCTCVC)WCXC@XC@WCYC.YC@OYCXC@WC@sVC@xVCVCWC@\XCuWCVC@JWCWCWC@!WC@WCVC@UCVCWC@VC@aVCGWC@WC@8UC5RC QC@PC@PC@PC@8QCkSC}TCTC)SCRC@SCRCSCnTCTC#UC@OUCUC@UCTCSC@OTC@ UC@UC@ VCOCOCBNC@MCLC5MC@LC@8MC@MCWNCNCOCOC@OC@ OCLNCWOC@PCfSC@8SCpSC@SCSCSC@!UCuUCUCUCWUCTC TC@!TCTCVCWC@OYC@XC5WC.XCWCiWCWCUC@UCUCTVC@VC0WC@JVC@UC@VCWC@VC@\VCWCWCVCTVCWC@WCVCTWCWC)VC@xSCPCQCPC@3PC@PCRC@TCTCTC@RC@sRCRC@aSC;TC@TC@TC@TCTCEUCTC@ TCTCTCTUC.VCBOC)OCMC@LCLCLC@ MC@LC@MCiNCNCOC)OCPC@NCOCOCTRC@\TC@SC)TC@xSCSC@xTCVCBVCVC}UCUCTC@SCTC&UCiVCWC#YC@ WC@VC@xVCVC.VCpVC@UCTCTCUCUC@UC@UC{UC@UC{VCLVC@VCVCWC#VC@VCWXCXC@WC@WCXCVC0TCQCPCPCEPCPCkQCSCTCUCTCpRCRC@RCSC5TCpTC@TC@TCTCTCTCnSCSC@TC@UCOCNCWMCLC@LCWMCMCMCMC@xNC@ OC@8OC OCOCTOCOC}QC+TC}TCSCSCTCnTC;VC^WC@ WCVCTC@8UCRTCTC&UCUC@VCWCXCGVC@ VC@xUC@UCUC@\UCTCSC@TC@UCTC@TC@xTCTC@TCUC@UCEUCUC@OWCEVC5VC;XC@XCXCXC5XCkWC@aUCRC@PC@PC)PCPCPCRC.TCUCUC@OSC@RC@RC@8SCSCTC@TC@TCTC;UCTC;SCESCSCYUC@OOCMCMC@MCMCLCMCMCMCNCYOCNC@OCOC@!PCPCBSCUCTCSCcSC)TCTCVCWC+XCVC@!UC@ UCTCTCLUCUCWC@WCWCuUC^UC@TCUCiUC^TCSCBTC@TC@TCSC@8TC@TC@TCUC@TCUCUCTCVCVCVC@JXCXC5YC@YCnXC5XCiVC@SCQC@PCPCPCPC@QCTCUCVCTCRCYRCSCSC)TCSCpTC{TCTCTCcSC+SC5SC@\TCNCLCLC&MCMC#MCLC@MC@ NCNCOCWOCPC@OCEPCQC0UCUC@TCcSCSC@TCUCLXC@8XC@XC5UCUC@TCTCpUCUC@aVCRWCVC{VCEUC@TC@TCUCTCTCSCSC+TCSCfSC@SCTCUCTCTC@sTCTCTC@VCVC+VCuWCXC@XCYC@YCpXC@3WCfUC@RCPC@sPC0QC@PC@PCRCTC@VCVCSCRC@RCSCSC@SCTC@TC@TCuTC@SC@RC0SC@SCMCLC5MCMCfMC#MC@!MC@MCNC=OC@OCkOCOCPCiQCSC@VCnUC@aTCSCTCTCVC@XCYC@xXCTCUCUCUCVCpUC@OVCVCUCUCTC@UC@UCBUCTC0TC@SCnSCTCWSCRCcSCTCkUCUC^UCYUC)UC@TCUC)VCWVC#WCWCLXC^YC@OYCXCnXC5VC@\SCkQC@PCPC@PCPC@ RCTC5VC}WC@TCRC@RCTSCSCSCSCuTC@TCTC@TCLRCfRCRCMCLC@MC@JNC{MCLCLCMCNC)OC@OCOCfPCBQC@8RCVCVC@UCSC@SCTC@UC@WCXCZC^VCTCUCUCWCUC@ UC&VCUCEUCTCUC@3UCnUCnUCfUCTC@TC@TCTCSCRC@SC+UCUCUC@sUCYUC)UCTCUCUCVC;WC@WCWCXC{YCYC)YCWCTC@ SCPC@QCQCPCQC@aSCTCTWCVCcSC@JRCSC}SC@SCSC@8TC@aTC@TC@TC@RCRRC@aRCLC@!MCNCkNC MCLCpMCNC&OC@8OCPCOCQC@QCSCRVCUCTCSCTC@UCUCXCYCYCUCEUC@UC@VCnWC}UC@3TC@8UC@TCTCUCUC@UCiUCRUC@JUCLUCYTCUCpUC@TCuSCSCuUC@UCYVC5WCVCUC UC@8UCTC@UC@xVCWCLWCXC@\YCYCYC@XCWVCSC@QCQCBQCpQC@3QC RCfTCUCuWCTCRCRC@aSCSCSCTCnTCTCTC@SC@JRC.RCMC@MC@OC@ NCLCMC@NC@NCWOCuPC@PCOC.RCSCTCVCTC@SC5TC+UC@ VCVCXCZCLXC@UCWVC@JWC@WC@JWCTCSCETC)TC5TC.UCUCYUCnUCUCVCfUCUCVCVCpUC@SCTC{UC@aVCWCXCXC^VCUCUCTCTC@UC#WCWC@XCLYCYCGZC@XCWC&UC@ SC0QC@ QC@aQC@OQCWQC@ SC@8UC=WCcVCSCRC=SCfSCSCSC^TCTCTCTTC}RC5RCMC OCOCkMC0MCMC@aNC@NCPCQCPC{QC RC@ TCTUC VCTCTC@TCUCcVCWCZC@YC@VC@8VC.WC XCWCVCSCSC@SC@SCSC@TCLUC@TC@UCVCVC}VCVCRXCWCVC{TCTCUC@aWCfYC@O[C@ZCXC@VC}VC@!UC}TCiTC@3VC@WCXCYCpYCcZCYC@\WCWUC5TCRC&QCQCWQC5QC.RCTC@!VCcWCTCRCSCSC@xSCTTCTCTCTCTCRC&RC@MCLPCNC5MCuMCNCkNC{OCQCQCPCRC@RC{TCUCuTC@SCTCUC@!VCRWCXC5ZC@\XCWVCfWCXCXC@VCTC@OSCRC@SCSC@SC)UC@UC}UC#VC.WC@WCWCXCXCXCWC+UC@OUCVC@3YC@[C]C@]C@ZC@aXCVC)UCTC@xSCTCVCVCWCXCYZCYC@OWCUC@TCpSCQCGQC^QC}QCQC+SC@aTCVCTVC@SCLSCuSCSC@SCTCSCTCTCSCQC{OCnPCMCnMCMC@ OCNC.PCYSCLQC@OQC@aRCSCTCTC@SCSC#UC@VCBVCBXCYC@YCWCWC@YCuYC}WC@JUCSC@RC@RC@SC@SC)TC UC@UCUCVC^XCWXC0XC@XCXCXCkWC0VCVC@WC;ZC ]C@s_C_C@\C)YC@8WC@UCTC@RCSCTCTC.VCiWCZC@YCWCBUCnUC@TC^RC}QCkQC@aQCQC}RC@SCTC@VCTC@\SC0SCRCSCSCiTCTCTCWTC@RCPCuOCMCMC)NC@NCOCQCnSCPCQCLRC@TCTC@SC@aSCTCUCVCWC)YC5YC@XCcVCXC@ZCiXC@VCRTC0SCSC@RC@SC@SCTC@TC@3VCVC@XCYCRYCYCXC#YC.XCWCVCVC@\XC[C@]C@J_C@_C@]CYC@WCnVCTC@RC SC@8SC@OSCTC@UCYCYCXCUCTCVCkSC#RCBQCuQC@QCYQC@!SCTCUCUCSCTC@SCSCSC=TCfTCTCTCSCPC@xNCMCMCNCNC@PCSCRC@QCQCSC@TC@ TC@!SCTCUCkVCVCYCXC@XCWCWCYZCEZCWCTCkSC@SC0SCRCfSC@SC@OTCUCYVCWC&ZCcZCpZC@YCXCXCWCiWCVCLWCXC@ZC]C]CG^C]CZCXC;WC@VCnSCRCRCRCSCSC@WC@OYCXCUCTCVC0UC@RC}QC@QCQCQC@RC{SCTC@ VCfTCSC@SCSCSC&TCLTCTCTCSC@PC@MCMC}NCNCOC5RCSC}QC^RC@RCTC@TCSCfSCTCVCVCXC0YCWCWCuVCXC@ZCEXC+UCSCSC@RC@JSC^SCBSC@SCTCUCWC@XC[C@ZC[CZCYC@YCEXCnWCkWC@WC@YCZC[C@J\CY\C\CZCYC@XC5VCTCLSC.RCLQCQCRC@UC@\XCWXC}VCLTCUCYVCSCQCQC@QC@QCiRCSC@SCUC)UCkTC@8TCSCSC+TC)TC@TC@TCTCNCMCRNCNCROCPCSC&RCRCQCSCTCTCkSCLTCUCVCnWC@XCYC@WC@VC@ WCZCiYCVC@!TCSC5SCGSC@aSC@SCSC@!TCTC@UCWC@ZC{[C[C]C@[C[C5ZCXCXCWC@XCnYCZC@J[C[Cf[C[C5[CZCZCWCTCSCYRC@8QCiQCQCSCVCVC@VCSC@8UCVC}UC@RC@OQCQCQCQCRC@SC@TC}UCnTC@xTC0TCSCTCSC5TCTCTCNC NCOCNCOCkRC@SCQCBRCQC^TC@8TCSCSCTC@UC@8WC@\XC@YCXCWCVC@JXCZCWCTCSCSCRSC@SCSCSC@SC}TCTCRVCpXC@ZC[C[C@^C\C\C@![C@YCXCXCXC0ZCW[CZCZCZCZCZC}[C[CXC+VC;TCRCWQC@\QCcQCWRCnTCUCUCTCTCUCTVCSCQCQCQC@QCiRCESCSCTCGUCTCTC5TC@SC^TC@TCTC@8UC^NCNCNCfOC@PCSCRCRCRC@RCTC0TC@TC@!UC@ UC}VCGWCXCXCnWCVC@3WC=YC@YCUC&TC TCSCETC0TCGTCSCkTCTC}UC0WC@ ZCZCZC=[C^^C@]C\C@[C@OZC@!ZC0ZCYCZC[C5[C@JZCZCRZC}ZC[C\C@ZC@VC@TC}SCQCPCQCQC@RCBSCTCYSCTCTC@VC@TC@!RC{QC#QCQCQCnRCSCGTCUCTCWUCTCTC.TC#TC@\TCTCNCNC@8OCcOC@RC@ SCQCRCWQCESCTCSCTC@!UCUCVCWC@YCXCWCVCXC)YCVC@aTCSC@SCETCTCTCTCpTCTC@UC@!VCRXCZC[CZC[C@x]CT]C@\C[CZC[C@[C@ZC@ZC@[C@s[CZCZCRZCYC[C]C[CiXCUCuTC@ RCQCEQCRC@JRCRCSCBSCTC+TCUCUCBSC@QC@JQCQC@QCRC@OSC@SCnTCTCTC@UCnTCSCcTCTCTCRNC@3OCOCPCSCRC.RCYRCRCTC^TC@aTC@UCiUC@ VCWCGXCpXC@8WC@VC0WCXCWC#UCBTCTCTCTC@TCUC@TCTCUCUCWCuZC\C+\CYC5ZC@s\C@x\Cp[C@ZCkZCW\C@8]C[C@\ZC[C[C@![C[CZC@YC[C@]C\CYCVC@xUC@JSC5QC@OQC@QCTRCQC{RC@RCSC5TC@ UC@UCTCQCTQCRQCQC RC@RCSCSCTCTC@JUC@TC@aTCWTCTC@TCNC@JOCOC5RC@RC@3RCGRC@QCSCLTCLTCTC5UCUCuVCWC XC XCVCVC@WCWCUCTCTC@UC{UC@JUCUC@sUC@UCLUCUC@VCfZC\C]CB\CYCZC\C&\C@s[C[CZC@[C]C\CZC[C[C@[CT\C[CZCn[C@]C@]CRZC}WC VCTC@xQCQC@QC.RCQCGQCRCSCSC)TCcUCUCRC.QCkQCuQCQC@aRCSCSCTC@TCTC{UC@OTCGTC@TC^TC@ OCnOC@PCRCERCRCRC@QC{SCTC@TCnUCYUC@UCVCWCXC@aWCiVC@ WCVCUCTC@UCLUCUCVCTVC)VCUCUCVC@VC@8XC\C@]C\CT\CY[C@\C]CE]C[C@a[Cc[C[C\C@x\CZCZC[C.\C5]CB]C@[C@[Cf\C@x]C[CkYC=WCUCRC@QC@QCRC@RCQC@RC@SC@SCSCGUC@UC@SCQCPC0QC@OQCRCRCSCSCTCTC5UC@JUCTTC@8TCTC&OC@OC@QC@JRC#RC@RCQC^RC=TCTC@xTCUC@TCUCGWCWCTWCEVCVCVCfVC#UCfUC@8VCVCVCVCpVC0VCEVCVCVC@WCZC@^C]CB]C]C&^C0_C_C^Cp\C@\C[C)[C[C@[CZC@ZC@ZC@[C}]C]Cu]C@\[Cu[C]CG\CZC@YC@3WCSC@RCQCRC#SCRC.RCRCSCpSCUCUC@sTCRCBQC@PCWQCQC5RCBSCSCSC@TCTCUC@TCRTC@TC@NCPCkRC@QC.SC0RC@QCSCLTCTCUC@\UCUC@VCXC@8XCVC@VCVCVC{UCUCVC@WC.WCnWCVCTVCUC@VCWC@OWCWC@x[C^C]CB_C@`CaC)bC@!bC`C@3^CT]C@\C\C[Ck[C+[C[CZC5[C@a]Cf^Ci^C\C[C\Ck\CB\CZC@XCBUCSC@RCRC^SCRCRCRC{SCkSCTC@aVCUC@RCPCPCfQC@OQC0RCRC@3SCSC@xTC@TCUC@\UCTCTC@OOCQCQCRCRCQC@\RCTCTC@aTCUC5UC@UC@!WCWCWC@VCVC0VCGUCBUCVCWC=XCWCWC@sVCnVCBVCVC@XCWCpXC@[C^C@`C}cCeCeCdCdC@bC)`C_C+^C]C)]C[C[C@[CZCZC\C+^C^CE^C[C[C@\C\C{[C@xYCLWC=TC@ RCRC@SC@xSCRC@QCSCTCTC&VC=VCSCQCPCQCPCQC^RCRCSCSC}TC@UCUCTC0TC@!PC@QCRC.SC@RCRC@SC@TCfTCUCUC@UCVC@WCWC@JVCEVCVC@UC@sUC;VCWCYCXCpWCpWC@VCEVCVCWCuXC@XCuZCn]C^aC@xfCfiChC@xfCfC@eCdCbCcC`C+`C_C\C[Cp[C.[CZC[C@3]Ck^C^Ck\Cu[C@[C\C]CZC@\XC@UCSCRSC@ TC@sTC=SC@QCRC@TCSCYUC{VCTCQC#QCPCPCfQCQCRCSCSCSC;TC5UCUCTC@QC}QCSC@SC@RC@RCSCiTCTC^UCUCUC@XC#WCfVC@xVCUC@UC@UC@UC@!WC{XC@YCXCXC@sWCVCVC@WCEYC@YC@YC&]C@xbChC@OmC@!nCBiCkfCugCfC@fC&gCgCcC@abC@aC^C\Ck\CY[CZC@[C[C\C^C]C@[C[C\CG]C.[CYCWCLUC@8TC5TCYUC@TC@sRC^RC@\SCSC@TC+VCUCRC@xQC@PCPCQC{QCRC@RCWSCTC=TC UC@JUCTCfQCRC@SCRCpRCfSCSC@TC0UCUCRVC#WCXCVCGVCEVC@\UC@UC@\UCRVCXC.YC)ZCcXCWCWCVC@xWCnXC@\C^[CR]CndC@jCpC@ sCoCgC@eC0gCgCkjC{lClCfCRcCbC@s`C^C^C@\C@J[C[C[C[C@\C\CW\C\Ck\CT]C@J\C@ZCGXC5WC=UCTCUCTCRCRCSCSCTCUC@UCTCQCPC#QC@PC^QC{QC+RCRCLSC@SC@TC@UCUCQC0SCSCSCRCTC@8TC5UC@UCTVC@OWC@WC@WCUC#VCUC@aUCTC^UCWCXCYC@sYCRXCXCWCRXCuXC5[C_C@^C@ eCmCksCvC#vC+oCeCudC gC@iCnCirC@xqC@siC@OdCbCbCaCaC^C[C@[C[C[C[C@[CG\C]C\C]C\C[CnYCGXC@VC}UCUCUC)SCRC@RCSC@SC@sTCUCTC@QCiQCPC&QCPCQC@QCkRCRC@SCYTCRTCUC@RCSCRSCRCSCSCuTCUCVC@WCWCXCWVCUC@!VCUC@!UC^UCUC@WCXCfZC@\YC@ YCfXC@8YCZC@ZC_CbCYeC+oCpvCfyCxCpvC@!mCcCeC@iClCsC@uC@\tC@kC@8dC@3dCeCdC@cCaC]C[C[C[C@O\C}\C\Cc]CR]C]C]C{\C@ZCXC+XC@VC@VC+UC@SCRCSC@RCSC@SCTCTCkRCQCPCPC@PCTQCQCQCRC@aSC.TCTCRUCRC@TCSCSCTCTCTC@ VCVC@8XC#XCXCUCUCEUCUCUCTC^VCTWCXCYCXCYCiYCT\C@\C`CeCgCmCvC{C=zCYxCtC@8kCdC@hC@lC@oCwC@awCYvCknCidC@seChC@!gCEeCdC#_C\C\C@s[C]C\Cu\C]C]C]C@]C]C)[CGYCXC0XCVC@UCSC@SCRCSCSCkSC{SC^TCSCWRC0QCPCPC@PC;QCQCERCSC@SCETCTCTCSCfSC@SCSC@TCUCTVC@3XC.XCYXCVCUCUCUC#UCGUCGUCkVC@WC@YCWYCpYC@3YC[CY`CaC@xfCkCnC@uC{C@!{CwCLuC@qCjC@fCkCYmCrCTyC@xCxCRpCdC@afCBjC@ahCdC}dC)`Ci\C@[C@\C]C@]CW\C@x]C@]C]C]C@\C.\CYCXCXCXCuVC@3TCSCRCYSCSC#SCRCSCSC#RC@QC@QC@PCQCQCQCQC@RCSC;TCTCTCSC@SCSC@OTC@UCVCWC+YC@WCEXCUCUC@UCUC@UC@TCUC&WCWC@XCYCYC[CfaCnfChC.nCqC@tC}xCYzC=wCtCrC@nC@ jC@xiC0mC@lCrC@zCzC@\zCoC dC#fCjC@hCcC0cCf`Cu]C@\C@^C@_CE^C\C]C@]C]C{^C^]C\CZCXCXC@XCXC.UCTCSCnSC0TC@8SCRC@RC{SC@8RC@QCuQC@!QC)QC@QCQCQCQC)SCSCTCTCpSCWSCSCTCUCVCGYCXC@WC=WC@UCUC0UC.UCUC;UCUCWC@!XCnXCYCEZCf_CihC@lC@oCprC@tCuwC@ xC@xwCrCrCoC+lC)jC@kC@kCjCpC@{CzCyCLlC@cC@dC jChCbC+bC`C)]C@^C#`CaC_CW]C\CB]C]C^C ^CW]C@[CYCYC{YCYCVC5UCkTC@sSC@SC@TCRCfRCRCRC;RC{QC;QC@PC#QC@3QCPCQCRC@8SC0TC@TCSC^SCTC.UCUC=XCYCWC{XCVCUC@UCuUC^UC@UCUC#VCWCXC@XC@JZC@]C{fCoCqC@sCRtCvCvCvCEsCoC.qClCiCWjCkCjC@hCfoCGzCxC;uChC=bCcC@hC@gCBcC`C{_Cn]C^C@aCbC@_C^C\C@\C@O]C@^C^CW^C0]C+ZC.YCYC)ZCWWC@UCUC@!TCSC}TCGRCQCQCERCQCYQCQC@!QCTQCcQCPCkQCQC)SC@8TCSCRSCLSC@TCUCVCYCXCWCWC@8VCUCWUCTC@aUCGUCUC{VCWCXCYC#]C dCBoCutCLtC5tC{uCvC@xuC}uC@oC@oC#pC@iCgC@xiCpjC@iCkgCmCTvCvCrCkfCaCaCfC=gC@\cC`C^C+^CG_CkcC5eC@`C_C]C\C=]Cu^C^C}_C+^C@x[CYC@ZCWZC@XC@VC{VCUC+TCTCWSC@QCkQC@QCQC@\QCQC@aQC@QC@OQCPCPC@QCLRCnSCSCBSC@sTC@3UCUCYXCYCWCXC@3WCnUCpUCUCiUCUC@UCUCVCWCnXC]C@cC&lCfuC@vCtCtC)wCuCGuCtC#oCpCnCWgC@eC)hCjC@JiCgCYkCTrCvC@rC@gC+bCnaCidCfCdC{aC_C^C_CcCeCaC@a`C^C@]C=]C&^Cc_C@`C@_C\CZCkZCZC;YCWCcWCWC}UCpTCTC@QC^QC@QCQCPC@QCQCQCWQCPCPC@OQCQCRCcSC@sSC@TC@xUCVCBZCcXC;XCWCVCUCUC@xUCUCUCUC@VCBWCWCZCbC@hC@arC.wCtC0tCtCvCGuC@8wC@tCoCkrC@8oCfCBfCgC)jCiCgC@OiCioC@awC0sChC@bCaCcC@dC@dCWbC`C@^Cc`C@dC@fC@ bC`C@s_C#_C^C]CT`CaC@OaC@]CT\C@[C[C@ZC@XCXCXCVC@3UC.UCRC;QC@PCBQCQC)QCQC@QCQC@QC@PCPCQCRCSCTCTUC&VC0XCZCWC&YCGWCUCiUCUCUC@ VCUCUC WC.XCXC@_C@xgCinC&uCfuC@sC@OsCfuC.vCuCyCEvCRqCuCqCiCiCBjCjCiCgChC@mC#wC@rC5jCcC&bC@bC@OdC@eC@cCaCp`C@aaC0eCfCaC=_C@ `C@a`C_C@^CY`CbCbC@^C]C@\C@[C{[C@YCXCXC@ YCVCUC@TCQC@QC@JQC@3QC@PCQCRCcRCcQCPCPC@QC5RC@SC@UCuUC@sVC@YC@XC@XC@XCGVCUC@VC@!VC@UC@VCUC@OVCWC=XC@!\C5eCpkCYpC+tC@rCrCrCtCRtC@xwC@s{C)wCtCRyCtC nCnC#nCmCjC@gCgClCtCpC@OiCcC.cCbC@cCeCeC@bCaCbCeCfC@aC#_Cn`C`C.aC_C`C#bC@bC&`C^C]C\C^[C#[CZC@YCYCBYC@VCTUCSCYQCPCQC=QCQCQC@\RCQCPCcPC&QCRCYTC@OUCUCWCZCWCYCWC@UC@UCVCVCpVC=VC@OVC@VC&XCXCW`CiCkCEoCpCpCnpC@\pC{qCsCBxCzC@wCwC{C@xwCtCiuC@xsCoCLjCEhCfhC@8lCpClCgC@dCcCaCbC;fCngCRdCcC@cC@eCeCYbCp_C@`C@aC@bC.aC@O`C`CbC@`C@ `C{_C5]C\C@[CZCZCZC[CXCLVCSCRCPCQCPCnQC@\RCnRCRC@8QC@8PC@PC.QC@!UCYUC@xVCYCXCXCYC@VCWUCLVCVC WC@VCUCVC)WCXCY[CeCjCjClClC{pC@!nCLnCoCsCwCxCwC@zC{C@xyCuxC@zC;xCsC@kC@JiCjC@kCnmChCeCeCdC@aC5bCfC hCpdCcCcdCdC@dC@bCaC@`CbCbC@aC`C_CaCaC+`C+`C{^C]C@3]C[C@ [CR[C[C}ZCWCUCWSCuQC@PC@PC;QCRC@RC#RCERCnPCPC@PC@xUCUC@WCYCWCZCWCVC+VCVC#WC@OWCWVC#VCuVCWCXCB_CEhC@hC#hCjC@mCfpCmC@8nCoCtCvCuC@uC@JyCyC@8yC=zC@}CE|CuuCmC@!lCBlCjC@\jCEeCcCdC@cC`CaCdCfC@cC@bCdC)dCcC@cCcCaCWbCcC@bCaC_C@_C@aCaC`C^C^C^C{]C@a[C+[C[C[CYCWCTC@QC#QCPC@QC@QCRCRC@aRCPC@sPCPC@xUCVCXC@sXC0YCYCVCVCVC{VC WC;WCVCUCVCWWCRZCbC@xgCeC@fC^kC#qCpC.pC@pC@3rCkuC@tCrC{sCnuC vCvC@yC@~CW~C@xvCoCnClCiC@fCaCaCcCbC#`C`CbCdCbCaCbCcC@cCdC@!dCWbCYbCkcCcCibC`Ci_CWaCaCE`C^C_C}_C@^C+]Ck[C[C \C@[C+YC@3VCRCuQC@ QC)QCEQCRRC@ORC^RC#RC@PCpPCUC@3WC@XCWC@sZC=XC^VC@!VC@VCkWCWCVC@UCUCWVCWC\CYdCdC+dCWiCmCsCrCsCkrCuCvCrCnpC@pC+qCqCsCvC|C|C@uC@!oCoCkC@hCcC_C=`CbCaC_C_C`C#aC@`C`C@aC)cCcdCdCdCpcC{bC@ dCdCcCWaC@_C@aC^aC{`Cu^C^C`C_CY^C]CG\C.\C\CZCXC@TCRCQC@JQCQC@QCRCTRCRCPC PCVCWCXCYCfZCLWCUCVCVCWC@sWCVCUC@8VCVC@XC@^C{cCbCeClCTrCtCvCvC@tC@swC vCqCTnCmC=lCmC@pC@ sC@xCyCtCmCmCiCfCbCY_C_C aC@`Cf_C@8_C;_CL_C_C_C{aC@cCTdCdCeCcCbC@cC@!eC@OeC@xcCYaCaC&aC_C]C]C`C@`C=`C^C^C\C\C}\CZCEVCRCQCRQC0QCQCRCGRC@ORCQCPC}WC@3XCYXC[CXCiVCUC@8WC@aWCWCRVCUCpUC@8VCVCiZC_CaC&cCiCpC5vCvC@yCYxCvC@wCtC@oCkC5jC@iCjCmCEpCtC@ yCuCjC5iCWfC#eC`C_C{^C_Cu`C{_C^C^C}^C@s^C{_C`C5bCdCdC@\dC@cC;cCbCeCfCeC@JcC@aC`C@_C]CG]C{_CbCaC`C_C;^C]Cu]C[C@xXCTCERCRQCQCQC=RCRCfRCRC^PCWCWCkYC+ZCkWCUCkVC=WCWCWC@UCuUC@UC)VCXC#\C`C@aCeC@mC@uCyC@yC|CnyC{wCivC@sClC@!jC@gCgChC@8kCnCsC@8|CEwCYhCeCdC@8cC`C@_C^C@^C_CW_C^Cp^C@]C;^C@s^C{_C`CucCcCcCcC+cC5bC+dC@OfC}fCeCcC@bC@_C]C\CG^C}`C@ bCEaC@aC`C^C@8^C5]C@\ZC@sVCSCQCQCRCRC{RC@RCRC@sQC@WC0XCZCXCVCVCGWC@!WC@WC@VCUCnUCUCkWCYC{]C@`CaCjCqCyC@{C0}C|C@xyC@vC0tC@oC@iCgC#fC@fCfC@jCpC@vCGCvCgCdCcC{aCf_C@O`C^C^C{_C_C@^C^C&^Cp^C^C_CW`C bCcCfbC5cCbC@aC)cC@8eCfC@gCGeCdCuaC&^C\C]C@_CaCaCbCGbC@aC `C^C\CXC@TC5RCQCQCQCERC@RCiRC5RCWCXCTZCWC5VCVCWCVCWC.VCUCUC@ VCYCE[CW^C@_C#eC@3oCvCB~C@a~CpC|C@xCuCurCplCfgCfCeCeCTfC@kCfsC@zC CqCEqCkzCC;}CuCqC@xpCLiCbC@_C`C`Cf_C^C#^C]C]C&^C]C@]C]C]Cf]C\C0\C@8[C@ [CB[Cn[C@a[CZCZC+ZCZCZCZC@ [C[C@O[C5[C;\C]C@8]C=]CL^C^CpbCjC&qC@{CC~CC#}C+yCnCgCjC@jC@dC0aC@`C@_CaC}`C^C^C_CcC@dCicCaCW_CEbCfChCpeCVC}XC@!\C^C]C}^C@abC}kC.wC@O~C9C@vCmC@8qCi|C{CwC0pC0pCWpC@gCkaC@_CkbC@JaC@^C@^C^C]C]C]CG]C]C#]C\C\C@\C@[C=[C;[C[C@[C)[CY[CZC@ ZCnZC+ZC}ZCZC@ZCB[C@[C\Cf]C]Cn]C@O_C@a_CWaC#iCBqC{C,C~C~C}C@|CuC@jCkCoC iC)cCaC_C@O`C0`CE_C ^Cu^CaC@dCdCBbC_C_C&eCkgChCXC ZC]Cu]C]C_C@eCoC5zCC@|C@mC@lCqC@zCvCnqCjC@qCpCgC`C@saCcCn_C]C@]C]C]C@]C@]C@!]CE]C\Cc\C[C[CW[CZC}[CL[C@O[CW[C@[C [C@ZCZCZCZC{[C#[C0[CT[C\C]Ck]C]C@a`CaCaCiC@OsC{C`C}C|C@|CzCyCYoC@\lCqCnCeC^bC_Cn_C{_C_C@ _C]C@_CLbCWeCcC@a`C@!_C^bC{fChCYC[C^C@3]C^C@bC@hCsC@s|CCrC@aiC lCErCuCqC@kChCsCpCeCBaC@cCbC^C]C@^C]C]C]C]C]C\Ci\C[C@[C}[C@[C=[C@O[C[C[C=[C[C[C@ZCZCZC@ZC#[C@J[CB[C \C.\C\C@]C@^C@aCidCbCkCTwCW~CiC~CzC|C+wC@syC@sC@mC@qCRqCiC@8dC`CT_C@_C_C_C@^C^C`CcC@dCbC_CT`C}dCigCYC@]C]C]C}_CcClCwC}CyCjChC0jCrCoC5mCgC5iCTtCnCcC@bC}eCaC_C@!^C@]C]C^C+^C]C@\C\C[C+[C@[CB[C[C[C[C@[C@3\C+[C[C@ZCZCZC&[CTZC@[C[C[C@8\C0\C\C^C_CbCfC&eCnCzC .C@CCzC}CuC@uCwCoCpCqCcmC&gC@`C^Ci^CY_C+`CG_C^C_CaC@dCcC@`C_CbCeC@[C]C@x]Cu^C`CfCpqC zC }C@oCBeC&gCiCnClCiC@dCGkCkrCiCbC@dC@3eC{aC^C]C]C^^C@ ^C^C]C\C\C[C@ [C@3[C@![C@s[CW\C[C@a\C\C[C;[C)[C}ZC5[CY[C@ZC\C\C[C;]C]C\C_CGaCdC@iCgC@3qC}CUCC C|CC@vCuqCwCftCWnC@oCnC@iC#bCL_C@s^C@^C@J`C^`C_C@_C`CcCLdCBbC`C`CudC^]C]C]C@s_C@bCjCuCzC@wC@xgC&dCfCpiClCTkC@fCcClCmC@xdCbC0fC@dCaC_C]C^C&^C;^C@^C\C^\CY\C[C[CZC;[C@[Cp\C\C=\C[C[Ci[CE[CZCc[Cu[CZC\C\C@\C@^CE^C@]Ck_CEbCgC}lCjCrCG~CC@CCCࣀC@ {CqC@xuC;xCkoC{mCpmCkC)eC_C@x^C^C_C`CE_C_C`CaCcCcCaC`CbC@]C]CB^C_C@JdCnCnwC@zCmC@bCndCeCgCjCniCLdC@cCiCgCaCRdCeC@cC@bC^C@x^C^Cn^C^C]C@8]CL]C@\C[C.[CZCE[C[C[C[C@[C@[C[C@ [C}ZC@ZC@ZCZC&[C@[C\C\C]C@O^Ck]CR^CkaCgC)nCuoC.tC@\}CC C@CUC~CL}C^|CrC fC@_C@^C^C^C)_C`C `C@_C#bCpiCkCpnC@siCWeC@^C\C[C@ZC[C)\C@!]C_C@dCngC@bCdC@gCiaC@bCbCbC@`C_C `C@^C^C`C_C@^C@^C\C\C[Cn[CZCZC[CZC@ZC@ZC[C@\C^C@_CW`CLbCEaCn_C_Cc`CEaCaC bC`C{^C@x]C^CGbC@aC`C^C^C@cC@xiC5jC@iC@xkCnCkC{gCoC+xC~CCC@~CzC@\{C@3uCiC@OaC^C]C^C@^C`C`C_C_CYfCnjC@lClCeC\C[C[C@ZC[C)\C]CbCfC@eC@cChCeCaC@ bCbCbC@`C_C@J`Cf^Ci_CR`C@^C^C]C\C\Cf\C[C@ZC@\[C@[C[C[C[C\C@]CR_C_C`C@bCnaC_C^C_C@_C`CfaC@_CB]C\C.^CaC@aC_CW^C^CdC@lC.kC@3hC@ iC}kCjC@gC@pCuCxCPCC}C@xCpxC.vC)mCTcC^C;^Cc^Cf^C_C`C@\_C^C@sbChCjCmC@fC[Cf[CZCZC#\C\C@3_CEcCfCLdCeCjCdC aCaCcC5bC_C.`C_C^C@_Cc_C@]CY^C]C]C]C@\\C[C[C@[C\C[C@[C@3\C]C{^C@\_CE_C@!`CcCaC^C^C _CW`Cf`Cc`C ^CT\C]C]CaCaC_CT]C=^CWcClC@xkCgC@!gCkiCiCgC@nCrCtC}C@JC{CxCcuC0tCnCeC`C^C@\^C^C@^C;`C}_C@^C_C5eCiClCgC@8[CZCZC[C@\C^]C`C@\dCdCdC@iCiCbCaC5bC@cC`CT_C_C&_C@^C^C@s^C@]C]C]CR]C@]C{\C@O\C}\C@\C@\Cn\C@\C{\C]Cf_C@_C_C;aCdCaC_C@x^Ci_C{bC@`C@!_C]C\C\C]C`C`C)^C]C@]CbC#lC@iCGhCpfCgCiC=gClC;pC@qCyC~CWzC@!yCsC@qCunCgC`C@O^C]Cc^C^C_C_Ci^C{^CaCfC@iC&kCZCiZC@ZC@\C\C ^C@aC@dCcCeC@jCBfCGbCYaCbC@bC_C_C0_C^C^Cc^C]C^C]C]C]C]C\C{]C]C\C@a]C]C{]C@]C_C_C_CW_CaCeCnbC@J_C@_C`CeC@x`C^CL]C\C\C^C_C@_C@]C]C#^CaC)iC&gCgCfCifCkCBgChC+mCqC=wC}C{C@OyCtC@\pCmCgC0bC&_C^Ck^C^C;_C_C_C^C_CcC@fCkCZCiZC[C\C]C_CaCicCcC@gCiC@dCbCaCcbCaCE_C@_C@_C_C^CL^C&^C=^C^C^C]C]C\C@ ^C\CT]C]C]C ^C^C_C`C`C@`C#bCdCbC`C@x_CaChC@8`C ]C\C[C]C]C^C]C\C@]C@!^C@`CfC@seC@eCfCYeClCgCeCpiCsC@uC@{C{C5wC@uCnC@kC&hCbC@!`C@^CB^CE^CT^C@_C._C^C^C@OaC0dC@gCfZC@ZC[C)\C]C@`CaCbCdCRhC)hCdCbC@aC@xaC_C=_C^C=_C^Cc^C^C^C^C^C#^C]C.^C@]C]C#]C@]C=^C@s^C^C_C@_C_C@s`C`CEbCcC@!cC@x`C`CbCRhC@^C\C[C@[CL]C^C]C]C@\C]CE^C@s`CEdC@cCcC@eCdCjC@hCcCeCuCnuCTyC{CuC@uCLnC{jC@gC@cC`C@ _C@^C)^C@]C@s^C^C@8^C@]C^CaC@dC@ ZCR[C[C@3\C@^C`C`CbC@seChC@gCRdC@bC@ aC@_C_C@^C5_C^_C^C^C@^C^C_C^CY^C@8_C@O^C@^C]Ck]Cf^C^C^CG_C@_C_C_C`C`CaCTbCGbCp`CaC@sbC@3eC]C[C[Cn[C@s\C]C@]CL]C\C]C@O^C_C@JbC@\cCRbC@cCdC@!gCgCaC@!cCsCGvC@JvCGzC5tCpC@mChCfCWcCpaC#`C+_C^^C^CT^C@s^C^C]C]C@_CbC}ZC[C\CL]C_C#`CaCbCeChCgCdCWbC0`C@J_C_C^C_C_C_C@^Cp^C@^C@^Cc^C@^C`CT_CY^C]C@]C_C@_C@_C@_C)_C_C_Cu`C@J`C`CaC`C`CaC@3aCaC@O\CZC[C@[CW\C@J]CW]C]C]C^]C^Ci_CaCaCaCaCLcCdC5eC@xaC@OaC@pCwCrCvC@\sClC@3lC@hCfCcC@aC`C@_C^C]C@8^C^Cf^C]C@O]C{^C0`CZC@[C+\C5^C_C_CaCRcC)fC&iC@sgCdC@aaC{_C@_C^C@^C`C_C^C^C@^C_C@^C^CaCbC{`Ck_C@\^CE_C5aC@_C@_C_C_C_C_C_CL`C5_Cc_C@^C+`C@_CY_Cc]C[C[C.[Ci[C@\CL]C\C]C@s]C#]C@J^C_C^aC@xaCRaC`CBbC#cCbC{aC`CmC@3xCpCcrCqCGiC iC@hCYfCRcC`CaC`C{_C^C&^C^CT^C=^C]C@J]C@^C@J[C\C\C@_Ck_CR_C@`CcCfCuiC@gC@cCL`C@!_C^C@a^C}_C_C@_C^C@^Cp^C^Cu^C_C@OdC dCaC`C^C@aCaC@_C_C@_C@_C_C@_C@_C&_C^C]C^C^C@_C@8]C&\C)[CZC}[C[C}\C\C\C;^C]C@ ]Cn^C^C@aC@!aCT`C@_CbCbC@aCLaC`C@kCivC+pCpmCnCgCeC@OgCfC@cC`C`CaC.aC@8^C]C)^C#^C@]C@]CY]C]C[C^\C]C@!_C^CG_C@8aC)dCLhCWiCfC@bC_C^C^C^C@_C_C@^C^Cn^C&^C@^Ck^CaCgCeCdC@aC_CbCRaC_C@O_C_C`CB`C_C_Cu^C]Cc]CT]C]C@!]C \CZCZC@ZC[C[C5\C\C@J]C]C]C]C@O^C@\_C`CaC@!`C_CaCcC+bCkaCaC0jC@JsCoCiCjCgC@sdCeCngCkcC@`C#`C@saCbCi_C^C@3^CY^C]C^C]C@]C[C\C^^CL^C;^CE_CaCpeChChCeC@aC^C^C@^C=^Cp_C@_C@^C@^CW^C]C]C^CcCgCgC@8gCbC`CcC`C_C@s_C_C_C)`C_C_C^CG]C@\C\C@s\C[CZCfZCLZC@ZC[C[C@\\C\C@\C]Cu]C]Cu^C_C_CW`C`CL`C@8aC&cCaCTaC@8bC@ iC{qClCYhCfCgCcCkdCfCLdC@`C@_C`C@dC@`C^C@^Ck^C^C]C@a]C@a]C[C@\C}^C.^C^C@_CbC@eC@hCgCdC_C^C^C ^C^^C^C^C^CT^C]C^]C]C_C@dCgCBhC{hC@bCaCbC `C _CW_C@_C`C`C_C@_C]C)]C\C@x\C[C@ZCZCpZCZCZCf[C[C@\C#\C]CT]C]C@\CW^C^C^C_C@`C`CaCbCbC@`C dChC@3qCRjC^fCcC@\eC@dCcCeC)eC`C_C@\_C@scCcC_Cf^C@!^C5^C@8^C]C]Cf\C]C#^C]C^C`CWcCfC@hC@fCcC^C^C@a^C@]Ck^CR^C@^Cf^C]C@]CE]C]C_C@cC#fC@hCRgCcCbC`Cu_C^C_C_C`CW`C@_C@3_C]C@\C\C[C[C@ZCEZCWZCRZC@ [C@![C[C[C@\\C\C]C@O]C]C]C]C^C_C@`C5aC&aCbC@bC@`CReC@8iCpCiCRdCaCcCcC0dC@cC=dCaC_CW_CcaC@dC@O`C@^C@\^C]C@]C}]C]C]C]C]C]C_CnaC@cCgC@gCdC@J`Cp^C@]Ci^C]C@]CY^C@]CY^C@\]C]C@]C]C_CGbC@dC)fCeCReC;bC@`Ci_C@^C_C `C`C5`C_C^Cp]C\C@!\CZC@s[CZC#ZC@sZCYZCZC[C[C\C\C]C]C]C@3]C@]C@]C]C@^C`C@aCbC@bC@3bC@8aC}fC@jCoCiCbC`C bCdC#dCcCcCaC_C@_C@_C.dCaC_C^C@8^C]C@]C;^C5]Cn]C]C=^C`C@sbCcCgCdCpbC^C)^Ci^C@]C]C@s]C]C=^C]C]C\C]C]Cf_C@`C@bCdC&dCeCaC_C_C^C^C_C`C _C@^C]C\C@\C@s[C;[CZC@[CZCBZCYC;ZC@![C[C[C\C@]C^C@ ^C+]C]C]C]CW^C@_CuaC@aC@aCbCbC{eC@lCmCRiC bC_C@x`C@OcC@cC@cCcCbC@`C_Cn_CbCbC`CE_C^C]C]C^CG]C]C]C@^C)aCbC@dC@3eCcC;`C@s^CR^C&^C]C]C]C]C]C\C\C@!]C]C]C^C_C@`CaCcC@dC@`C`C@_C^C_C_C_C0_C#^C)]C\C[CZC@ZCZC[CZCYCcZCuZC@ [C[C@3\C]C^C@_C]CR]C]C]C]C]C`C`C@aC^aCaCbCdCmClCgCGbC@s_CR_C@bC@bCcCcC@cCnaC_C_C`CbC`C@`Cn_C^C@]C^CG]C]Ci]C@J_CiaC@3bC@xdC@bC`C@^C ^C^C]Cc]C ]C@\]Ck]C]C]C)]C@]CW]C]C+^C^C@!`C@\`C&dC@cCaC@aC_C_CL_C+`CY_C@^C]C]Cn\C[CZCZC=[C@O\C[CiZCZC@ZC@\[C[C@J\C]C)_C_C@ ^C\C]C\Ck]C]C^C@`C`C`CaC@ cCdC@!lClC{fCbC@J_C^CaCfbC@bCcC&cC;cC_C_C_CaCaCaC`C0^C@]C@\^C@]C]C=^C`CaCGcCncC`CL_C^C^CB^C]C]C@x]CL]C]C@]C@\Ck]C\C]C^]C^C^C_C_C@bC@abC0cC@xbC@3`C_C_C@`C@s_C^C]C@\C[CG[CZCZC[C&]C]CZCZCZC@a[C[C[C]C_C^C]C\C\C0]C@\]C@!]C^C`C`C`C{`CccCbC5jCjC@ eC}aC@x_C]CY_CbC@xcCbCbCcC`C_C_C{`C`CaC@JaC@8_Ci]C]C)]Cu]C@x_CnaC@3aCLcCaC_C^C^C^C^CL]C]C]C{]C@\C5]C]C]C]C@]C@]C]C_C^Ck_C.aC@bCdCbC#`CY`C_C_C^C^C@J]C@x\C[CZCZCZC[C]C0^CW[CZC&[Cf[C[C}\C^C^C@^C]C@a\C\C]C ]C]C@a^CaC`Cp`C_C@cCbC@gC@gCcCnaC_C]C]Ci`C@adC{bC@aCcCLbC@_C_C+`C`Cu`C#bC`C]C]CT]C]C@`C`CbCbC)_C+_C0^C^C0^C@]C@]C0]C.]C@]C@x]C@8]C]CB^C]C@]C@]C@^Cc^Cc^C^C#`C@cCndCaC_C`C_C{_C&_C@^C#]C=\Ck[CZCZC0[C\C@O^C^C[C+[C=[C[C@!\CB\C^C;^C]C@]C;\C}\C\C;]C{]C]C@aCaC@_C^_CicCbCeCLeC@bCu`C@O`CR^CE]C@_CcCdCaC}aCbC@3`C^_C@_C@O`C@x`CaC@3aC{^C@]C@3]C@J_C@aC`CbC`CL^C@O^C^C@a^C]C]CW]C\C@ ]C@\]C@]C]C]C@J^C^C;^CR^C^C^C^CT^C_CcCcC@OaC`C@`Cu_C@_C@^C]C\C[CZCZCuZC@[C@\CW^C]Cu[C@[Cn[C[C[C^\C5^C.^C@J]C\Cn\Cp\C\CB]CY]C]C&`C@aC_CR_CaC;bC0dC@OcC@saC`CB`C^C@]Ck^CkaC.fCEaC@`CaC@`C)_C_C_C`C.aC)bC@s_C@]C]C`CL`C^aC@aaCp^C@^C@\^Cp^C@^C@]Cf]C\C@3]C]C@^C@x]C^C@ ^C@]C=^C^^C^C;^C]C]C@8^Ck_C@bC+bCaC_C`C_C_C^C@]Ci\C0[C ZCYCZC[C]C@^C;]C[C[CT[C[C[C\C^C]C\C]C5]C]C}\C@]Ci]C]C;_C@`C)_C#_CW`C@aCcCcC`C_C`C^C]C]C_CfC@bCp`Cp`Cu`C^C@^C_C@`C`C@aC`C@^C_CaC^`CbC_C]C^C^C@^C]C@]C@x]C@]C\C]Cu^C]C^Cp^C.^C@^CT_C^C]CT]C@]C]C^C`C`Cc`C_C@a_C^C^C^C@a]Cn[C@ZCGZCYCZCf\C@!^C@8^Ci\C[C[CZC[C[C\C@]Ck]Ck]C]C@s]C@8]C@a]C@]C]C]C^C#`C&_C^C@_C`CbC=dCTaC_C;`C@!_C]CT]CE_CucCTdC_C_C_C_C@^CR_C@_C`C^aCRaC^C)aC`C@`C@aC#^C^C^C@^C{]C@]C]C\C\C]C^C5_C@^CB_C^C^C@8_Cn_C@\_C]CE]CE]C]C^CT_C@8`CE_C_C^C@^C@^C^C\CZCZC@8ZC@YCk[C\Ci]C]C\C\Cn[CZC[C[C@[CL]C]C@\]C^C^C ^C;]C]C^Cn]C^C_C)_C@^C^C@_CiaCdC@bC_Cf`C@_C]C0]C{^C`CdC`Cc_C_C@a_C^C^C)_C`C`C+aC_CbC0`C@3bC@J_C]C^C#^C]C]C]C]C]C\C]C@_C^C@_C@^C^CG_C_CE`C@x_C]C@\CL]C]C]C@O^C@^CR^C{^C@]CW^C@^C}]C@J\CZCYCZCYC[C@\\C@\Cf\C@!\C@[C@J[CG[C@s[C[C@!\C\C ]C@8]C+_C@^C^CW]C]C&_C]C@x^C`C@_CG^C^C@_C@`C@cC@JdCW`C@_C_C@ ^C^]C^C@_C{cCaC_C_C_C^C@^C^C_C`CT`C#`C`C`CaC#^C]C@]C]C\Ci]C]C\C]C}]CR_C`C^C_Cu^C@^C^C@x_C`C@^CY]C\C\C\C]C@]C]CL^C@]C@]C=^C5^C\C@8[CYCYCYCGZC[C@[C@\C@\C@\\C@[CE[C[C@ZCk[C[C&]C@\C@3]C^C^C@_Cf]C]C^C]C^C^C_C.^CR^C^C@\`CfbC@dCuaC_C@O_C^Cp]C]CW_CWaCbC@_C_C^C^C_C+_Ck_C`C`C@_C`C@\aC^Cu]C]C@s]C@\C{\C]C]C@J]C#]CY^CE`C_CY_C^C^C^C^C`C_C^C\CY\C@[CB\C@!]C@!]C@3]C0^C@]C0]CR]C@]C\CE[C@!ZC{YC@YCZC@[C[C[C[C\CB[Ci[C{[CZCZC[C]C+]C]C^Cc_C@8`C]C@]C^C]C]C@^CT_C^C@8^C@^C`C{aCdCaC_C^C{^C]C]C=_C_C@abC`C#_C^C_C^C@_C#_C_C^`C_Cf`C@a`C]C@]C@]C\Cu\C@ ]C@\]C@]C]C@]C^C.`C@^C_CW^CB^C^C^C@3_C_C@]C\CB\C[C@\C\C\CG]C@]C5]C@\C;]C]Cu\C[C@OYCcYCYC^[C@ \C[C@\[C[C[CZCf[C@8[CZCZC[Cu\C@!^C@^C]C@8_Cf_Cp]Cn^C]C]C]CE^C^C@^C]C_C`C.`CcC^cC_C@3_Cc^C@]C@]C_C@^C;aC@aC _C^C@\^C@_C@ _C@!_C;_C_C_C`CW_C]C@]C@O]C@\C\CL]CL]C]C@s]Cp^C+_C#_C@^C^C@]C@]C@]C^C@^CG^C@]C\C@\\C[C@[C[C=\C@s]C@ ^Ci\C@8\C\C@J]C[C@aZCTYCXCYC[C@\C[C@![C[C[C@ZC[C[C@\ZCZCG[C{\C@x^C@!_C]C^C+_Cu]C;`C@a^C]C@]C^^C^C^C@^C@^C`C0`CcbCTeC_C@^C^C&^C]C0^C@J_CE`CTaC@J`C@ _C@^C&_Cc_C@_C^C@_C_C@`C]C@O]CR]C\C\C\Cf]C{]C@x]CG^C^C_C^C@O_C@^Ci]C\C ^C@^C.^C@8^C]C@\C@!\C@\C@[C@[C\C\Ci]C@\CY[C@J\C\C@\[C)ZCYCYC@aZCL\C.^C\Cc[CL\C@[C@ZCZC@sZC@ZCZC@[C\CT^C_C@\C]Cu^C]C@aC^C\C]C]C^C^C=^Ci^C`C`CaC#gC@8aC_C^C@^C)^C@s^C_C_C@aCc`C^CR^C^C_C_C^CE_C_C^C@\]Ck]C0]C@x\C\C]Cn]C]C@^C^C@^C^C^C^C]C\C\C]C^C@x]C]C\Cf\C\C[CW[C{[C[C\C^C@\C@[C[C@[CZC@YC5YCYCZC@]C@^C@s\Ck[Ci\C@[CZCZCZCiZC@ZCi[C@3\C]C_C)]C@\Cu\C]C@aC{_C}\C]C@^C]C^C^Cp^C_C^aC}`CfCpcCk_C._C_CY^C^CW_Ck_C@`Ci`C@_C^C^CY`C@s_C@8_C^C_C@]C@ ]C]C@8\C{\C\C]C]C]C{^C^C@O_C@^C^C@s^C\C@\C@\]CT^C^C@]C@\]C5]C}\CW\C[C[C}[C \Cn]C^C\Cc[CY[CT[CYZCYC#YCuYCZC@]CE_C0]C[C\Ck[CZCZCZC@ZC@s[Cc\C\C@]C`CR^C@s\C[C]CaCi_C\C^C^C^C#^C^C]C@^C`C@s_CdC&eCT`C^C._C^C^C_C_C`C`C_Cp^C@^C`Cu`C_C@s^C^CR]C#]C\C\C\C5]C]C]C^C_C^C^C^C@^Ci]Ck\C\C@]CE^C]C]C@8]C\C\C\C[C[C\Cc\C]CR_C@8]CZCYC@3ZC@ ZC5ZC@YCYCi[C@a^C@!_C\C@[C\C[CZCZCZC)[Cp\CL]Cc\CT]C@`Ci^C\CW[C;\CR_C@^C\CY]C^C^C^C@]C@^C]C@_C@_CaCeCGbC@_CY_C^Ck^C`C_C`C`C@\_C@s^C^C_C`C_C@^C^C]C]Ci\C\C\C]C@]C@J^C_C+_C._C^C@^Ck^C@]C \C\C@]C@]C]Cp]C=]C]CE]C0]C#\C[C\Ck\C_C`C=]C@!ZC@sYCYCYCYCYC@xZCi\C^Ck^C\C[C#\C[C@xZC0[CZC\Ci^Cu^C@\C@3]C_C^C\C@s[C@[C]Ck]C@\C@]C^^C]C]C]CE]Cp]C^C_C@`C@8dCdC_C@_C@!_C^C`C^`C@!`C`Cc_CR^Cn^CT_CWaC@s`C^C^C@ ]C@\CY\C\C]C]C]C@x^C_CY_C^C@^C@^Cc]C=\C[C\CB]C]C]C@a]Ck]C\C]C\Cf\C\C\C]C@`C@aC@\CYC#YC@\YC+ZCYCYCZC\C^Cc]C@\\C@8\C\C=[CL[C.\CT\C^C_C@^C@[C\C_C@_C]C#[CZC@[C@x\C=\CR]Cc^CR]C@8]C]C^Cu]C@^C@^C`CbC@fCbCf_Cc_Cc^C#`CaC@_C`C_C^C@ ^C^C@`CRaC@_C^C\C@\C@\C\C@]C]C^C_C@_C_C^C^CB^C\C@s[C[C\C]C]C@\C]C]Cu]C@x]C\C]C]C@\C^C}aC@`CW[CXCXC@aYC@YCYCZC[CE]C@^C\C@ ]C@\C\CB[C@\C\Ci]C`C}`Cn^C[C\C^C^C@]CT[CZC[C\C[C]C]Cn]C]C@ ^C@]C]C]C^CaC cCfC@OdCn_C_C^C0_C@3bC`C@`C`C@^C]C@]C_C@aC.`C0_C\C@]C]C@!]C^CW^C@O_C `Cf_C^C^C^C@\C@[C@[C@[C\C@J]C\C@x\CB]C@]C@]CR]C]C@^C@]C]C&_CbCn^CYC}XCBYC@YCZCuZC@ZC@\C]C]C@!\C]C\C\C[C\CY]C]C@JbC@`C\CZC@[C@x_C;_C@\CW[C@sZCuZC^[C@[C@8\C@]CG]C]C0_C^C@x^C]C^C@`C@cC.fCfC)`C`C^C^C@aC)aC _CB`C0_C]C]C@_C@aC&aC{_C@\C]C@]C]C@]CB_C`C_C_C_C^C]C\C}[Cf[C[C\C\Ck\CT\C0]C\C]CW]C]Cu_C]C@]C_CaC\CYCXC@3YCYCZC[C+\C@x]C]C@\C@3]C@]C@\\CY]Cn\Ci\C@\Ci^CaC}^C@[C@ZC[C^C_C}\C[C@OZCRZC@[C[C&\C&]Cu]C]C^C5_C^C]C@s]C;`C@8dCGfCgC`C_C_C}^C@_CaC{_C_C^_CW^C]C&^C@\`C@bC`C\C\C@\]C@^CG^C@_C^`C=_C_C^C^C@\C[CZC@[C\C@8]C\C\C\C@\C\C\CR]C@a^C@^C{]C^C_C]CZCXC@!YCYC@YC[C@J]C^CW^C@ ]C]C]C@s]C\C]C\C@O\C@\C@\Cu_C@\\C@aZC@YC;[C]C@O_C@\CZC@sZC@ZC [Cu[C[C\C@3]C]C_C}`C^C]C+^C^CcCfC hC@aC0_C^C&^C^C=aC@3`C^Cp_C^C]C ^C)_CbCaCY]CT]C@J^C_C@_C`C_C^C^C^C@s^C\CZC@sZC+[C@[C)]C]C\C\C@]C\C\Cn]C^CT^C]C^C^C[CYCXC@8ZC.ZCZC]CY_C@^C]C&]C\C^C\C]C^C+]C[C[C=\CT\CZCYCYC+[C@\C]C[CZCZCZC[C}[CY[C0\C@]C]C^C`C^C@^C@]CL^C@3bCeC@iC@cC@^C._C]CW^C_Cc`C@O_C#_C_C@^C]Cn^CaC@bCc]C]C@^C;_C@J`CaC@a_C^Ci^C^C]C[CZCZC[C}\Cp]CT^C@\]C@\C{]C@\]C@J]C@x]C^C5^C@]Ci^C]CZCXC&YCZCYC\CaC+aC^C\C@\Cc]C_C]C@a]C^C@ ]CT[CZCu[C[CZC@!ZCYZC [Cu[C@3\CZC@3ZCGZCZC@[C@[C[C@\Cn]C\C@3^CaC._C@x^Ck]C]C`CcC+iC@fC_C^C@^C@!^C^C`CY_C_C@^C]C@]C@]C_CcC]C{^CY_CB`C=aC_Cu^C@O^C@^C@^C]CZCZC@ZC\C@\C@^C@ _C\C]C]C.]C]C]C]C^C@\]C]Cu[CYCXCZC[C[C@^C)cCcaC]C\C\C@]C_C]C@]C@]C@\CZCZC@ZCcZC ZCZCZC[C@ZCZC}ZCYCWZCZC+[C[CB\C@[C0\C@]C^]C@!`Cf_C^C@]C]C@^CbCgCjCBaC_C^C^Cn^C_C_C_C^C^C.^C]Cn^CbC]C_C@`CaC@`C^CR^Ck^C#_C]C@!\CZCZCL[C.\C@]CaC^C\C=^C@]C@s]C^C@x]C@^C@ ^C@\CL\CnZC5YCLYCk[C\CL]C@\`C@bC@_CG]C\C\C&]C@_CE]C\C;]C[CYZCiZC)ZCZCYCZCBZC[C@s[C}ZC@YCLYCYCpZC[CB\C[C[C@J\C\C\C_C^C@^C]C]C^C`CWcClCYeC_C_C5^C5^C@s_C_C._C5_C^C^C]C.^C`C^Cc_CfaC`C@_C}^C]C@^C^C]C{[CZCZC@[C\C_CbC]C@\C=^C]C^C^C]C^C;]C@\C[C^YC@JYC@\ZC[C@]C^C)aC`C]C@]C@\C\C\C]C@\C[C@\Ck[CZCTZCZCZC&ZC@\ZCBZCZC[CZC@JYC#YC@YC@ZCY[CT\C\C[C@[CW\C\CG^C@^C0_C@^C]C+^C_C#aC@OiC@ jC`C_C._C5^Cu^C_CW_C@!_C@^CG^C@]C^C^Ck_C`CaC@`CY^C]C^C^C^C]C)[CZCW[C[CR]CcC@`C[C@\C]C@8^Cf_Cu]C^C^^C\C[CGZC@YC@YC[C\Cf^C@`C@\`CT^C@s]C@]C@\C@a\C\Cp\C[C@ZCB\C@\C@[CZCYCZCTZC^ZCYC}ZCE\C@[C@XCXC@YC[C[C\C@\C;\C[Cp\C\C@]C@8^C^C_Ck^C]C#^C@`CdCLmC@JcC+`C_C@a^C@O^C^C_C@8_C@!_C@^C@]Cu^C^C)`CaCaC{_C]C]C+^C^C@s]C@8\C[CZCW[C@\Cn_C@cC]C[C@\Cp]C@^C^C@]C^C]C@\CZC@YC;YC@[C[C]C5_C@`C@x_C]C@!]C\C@x\C@8\C0\C@[CZCZC]CE^C@3]C[CZC@[CTZC@YC@xYCYC@3\C\C@aYCYXCXC@aZCG[C\C\C&\C[C@[C\CR]Cu^C@J_C_C_C]C;^C@3_C@aaClC)hC&aC`C@_C&^C^Cn_C^C5_C _C@^C^C@]C`CaC`Cu^C]C@]C^C]C\CG[C@ZCZC\C@]C`C`C[C@ZC\C;]C@O_C]C&^C]C#\Ci[CZCYC@OZC\C0\C]C_C^_C@^C@]C)]C=]CB\C[C[C[C@![CZC}^C_C@J^C[CZC}\CZCZCYCcYC[C@]C+YC@8XC5XCTZC{[C#\C\C[C[C[C@\C@\CW^C@`C_C)`C@^CB^Cn^C_ChCTmCbCaCu`Cn^C^C_C_C_C_C^C&^C^CaCWaC@ _C^C]CY]C;^C@\C@J\CZCZC}[C@a\C^^C@`Cu]CZCZC[Ck]C@ ^C\C@]C)\Cn[C@ZC@ZCYCZC@s\C\CT^C_C^C@^CW]C\C\C@!\C@x[Cp[C@ZCnZCZC^C@_C^C@[C [C@\C@xZC@ZCYCXC@OZC]CpYC=XCXCYC[C[C\C[C[C[C\C\C]C@`C`C@`C^C@]C^^C^CGdCpCfCbCaC@_C^Ci_C`C_C@^C@^C^C]CbC_C@x^C]C@\]Ck]C]C@\C@[CZCZC[C@]C^^C@3^C[CnZCZCR[C@\CW\C@\Cc\C[CZC@ZC@ZCZC[C\C]C^CL^C]C&^CW]C@\C[Cc[C@8[C@ZCZCZC^ZC@8]Cp]C\C@[C&ZC@8[C;ZC@\ZCGYCpXCYC[C+ZCfXCWCuYC[CY[CY\Cu\C\C[C[C@\C@]C@`C`C _Ci^C]C ^C^C@`CnClC@dCcC+`C^Ci_C.aC@_C^C^C^C_C`C^C.^C@]C@]C@s]C@\C[C.[CZC[Ci\C#]CE]C@[C@ZC#ZC@ZC0[C[C@x[C[C@J[CfZC@ZC@[CZC@ZC;\C]C^C^C]C@]C]C@ ]Ci\CY[CZCZCiZCnZC ZC@ZC#[C@ZCW[CZC@YCYZCYCZC@xYC@XC^YCYZC^ZC+YCEXC@YC@ZC@x[Cu\C\C@O\C{[Cu[C[C\C^CaCn^C@]C]C]C^C0_C@sjC@rC@hCngCaC^C_C`CL`C@^C^C^C@^Cn_Cn^Cp]C ]Cu]C@3]C@x\C[CB[C[C[C\C@\C[C [CYCYCZC@ZC[C@[C[C#ZC&ZC@![CZCZCk[C\C@^C@_CY^C]C]Cp]C@\C[C.[C@ ZCEZCZC@YCYC#ZCYCYC@YC@aYCGYC@JYCYC@ZCZCGYC@XCYC@3ZCfYCXCXC@OZC@ZC@!\CW^C]Cc[C[C[Cp\C]C_C.^C@]C\C]C@J^CB_CeC@tCnC@iCdC_C^C@`C@aCL_C^C^C^C^C]Cf]C+]C.]C\C[C[CZC[C@[C@\\C@[C@ZC@sZCYCYCiZCZC{ZC@ZCZCEZC@YC[C[C[Cp\C]C_C_C&^C@]Cp]C\C@[C#[CZCYCYYC@YCiYCYC@aYCXCXCXC^XC+YCYCfYC[CZC=YCYCYC=ZCZC@ YC@XCZC[C.\CG_C=]Cn[CB[C\Cf\C\C@]C#^Ck]CL]C@a]C]C^C@aCrCuCmChC`C&_C`CbC`C@^C@^C^C@!^C#]C@\]C@!]C\C&\Ci[C.[C.[C#\C@O\C=\CB[CZCTZCYC@!ZC@sZC@sZCZC}ZC ZCYC{ZC@![C@\C\C]C^C@_C)_C^C]C&]C\CZC@sZC@JZC@YC@YCYC@sYCYCYCXCnXCXCRXCYC@XC@XCZCYCYCpYCYCYC@ZC@YCXCYCZC@[C{_CG]C@O[C5[C[C@3\C]C@\C@J]C@a]C.]CW]C]C_C^`C@lCzCWrCnlC@bCY_C@_CbC@aC^C)_C@_C]C@\C\C\C{\CL\C{[C}[C}[C5\C@!\CW[C@\ZCZC@OZCYCZC@\ZCZCZC@ZC@\ZC@YC@3[C.\C\Cu]C]C@_C@a_C^C@3]C^C}\C}[CZCYC@ZCYC@YCYCYC@YCYC@\XC.XCRXC@xXC}ZC@XCXC@ ZCYCZCYC+ZCYCZCZCXCiYC@xZCZC]C]CL[CG[C[C\C\C@J\C@\C@J]C\C]C;]C^Cp`CfCzCxCunC@afC_C`CaC@8cC@O_C@^C@\_C]C@\C\C\C&\C#\C[C[C#\CG\C@J\C+[CZC@ZC@xZCLZCZC[CZC{[C@ZCZC@ZCp[CT\C@]C^CT^C=^C@!_C]C]C&^C\CZCYCZC#YC@YCYCZCZC@YCXCXC@XCXC@XCZCXC^XC;YCYC@ZC{ZCZCZC@YC0ZCXCXC&ZC+ZC[C[C@ZC[C@\[C\C\C\C@x\C;\C]C=]C@x]CG^CG`CTcCBtC}CurChC@`C_C@aCbC`C^C_C\C@ ]C@\C\C&\C@[C@[C@\C@a\C@\C[CZC[C [CZC@ZC@[C[C}[C[CZCZCW[C\C@O]C@]C^C^C]C^Cp]C#_Cc^C[CZCYCYCXCYCWZC@OZCZCZCXCcWC+XCXC@XCZC@YC@!XCXCYCZCZC}ZC.ZC@YCEZC@YCXCYC@ZCZC@O[C@ZC[C@ [C\Cn\C@\\C#\C@O\C\C=]C@O]CL]C0`CbCmC@~CwCkC@bC_C0`C@aCbC _C^C\C@\C\CL\C[C@[C@[C@a\Cu\Cp\C&[CZC)[Cu[C@ [CE[C[C@[C[C[CZCT[Ck[C\Cc]C@ ^C0^C]CR^CR^C]C@_C@^CR\CZC@YC@ZC@YCZCZC&ZC=ZCuYC.XCWCXC@XC@ YC=ZC@3YC@!XCXCYCZC5[CiZCYC@YCEZC;YCYCXCYCYCkZC@ZC@ZCZC[C@\Cp\C[C[Cn\C=]C@8]C@8]CY`CaCgC5zC{C@JnCcC@_C@_C`CpbC_C_Ck\C@\C@\C{\C\C@\CL\Cc\C@\C5\CZC[C[C@[Cu[C[C=\C;\C@O\C@\C#[C[C+\C\C@]C@!^C]C]C}^C]C^C@_C@^C[CZC@3ZC@ ZC.[C#\CZCZCZCYCXCWCWCXCZCZC@JYCXCnXCYC@[CL[CYC0ZCRYC@YC{YCWYCYYC@YC@YCYZCZC@ZC5[Cu[C@\C@\C[Cf\C\C\C{]Cc]C&_CbCcCtC|CqC@fCaC@_C `C@aC aC^C]C\C\Ck\C\Ci\C=\C\Ci\C[C[C[C[Ci[C[Cp\C]C\C\C[C@[C[CY\C@]C]C=^C]C@]C^C@a]C^C._C^C@a[C@8ZC ZC@ZCL]C@]C[CZCZC}YCXCcXCGXCYCW[CYC&YCXC@sXCfYC[CZCGZC@YCYC}YCBYCEYCYCYC}YCYCZCZC&[C)[C[C@\C+\CB\Cu\C@\C]C]Cp^C@bCbCcmC@{C@3uCjC@bC#`C&`Cp`CaCL_C\Ck\C@\C@\CW\C\Cf\C@]C\C[CY[CB\C@\C[C@\C+]C\C\C+\C[C[C[CE\C]C]C]C@]C]C0^C@8]C]Cc]Cc\CTZC@ZC@YCG[C_C]C[CZC@YCYCYYC@XCXC@ZC[C0ZCZC@XC5XCXC[C[CZCYCYCiYCBYCEYC^YCcYC@YC@YCZCkZCZCZC[C\C[CW\C@\C@\Ck]C]C]C`C^cCgCxC;xCmCndC@xaC`C_C`C0`Cu\C\CB\C@\C\C\C&]C]CY\C[C[CE\CY\CR\C@\C]C)]C\C@[CG[C[C@[C\Cn]C]C^C]C@J^C@]C\C0\C@[CZC@YCWYCZCY\C_C{]C[C@[C^ZCYCYCiXCLXC^[C}\CZCY[C@YCWC@3XC@YC@ZC@ZCYCYCEYCYC5YCXC)YCEYCYC@sZCYZCZCZCn[C\CY\C@[C;\C{\C]C)^C#^C}_C@cCdC{sCzCqC}gCbCWaC@ `C@O`C@J`Ci\C@x\C\C\C\Cu\C]C\C@[C\C@!\C@\C#\C\C&]C@]C\C@[C}[C&[C^[C[C@\CL]C]C@x]C]C]C@\C@[CZCYC0YCYCXCZCp]C@8_C@a\C\C@ [C)ZC0ZCYCXC@xYC@[CT]CY\C@\\CYC.XCWCXCYCiZCYC@YCYC@YCXCXC@3YCXC^YCZCZC@OZCRZCu[CG\C@8\C[C\C\C]Cp^C]C@^C@aC&dCmCzCuCkCTdC@bC`C+`C`C\C\C \C@\C@\C@\C\C@8\C[C[C\C@\Cc\C\CR]C@]C\CT[CT[C[C [C[C@\C\C@x]Cf]C@]CG]Ci[CZC@OYC@OYC@xXC@WC@8YC{[C]C]C[C@[C@J[C+ZCZC@YCkYC@YC}[C@^C@^C@]CYCXCXC@JXC@XCYCZCYCcYCYCYC@sXC@3YCXC5YCEYCZCYC)ZC@x[C[C[C\C@\C\C&]C^C+^CL^C@_C@\bChCwC@yCoCeCcdCaCE`C_Cc\C@!\C\C+]C@J\C\C\C[C\C\C]C@s\C@\\C}\C ]C@\C@[C;[CZC@![C@ZC@[C@a\C\C@\C@\C0]C\CZCYYCYC@XCXCXCYC@\C\C\C@\C[C[CZCTZC0ZCYC@YCu[C_C_C\CuZCYCYYCXCXCYCRZCZCYC@JYCXCXC.YC@ YCXCTYCZCZCLZC@ [C[CG\C \C@\CT\C]C^C@!_C^C_CaC@fCrCR|C+tChC@\eC@cC`C_CT\C[C\C\C&\C0]C@!\C@8\CL\C@\C\C#\C\C\C\C@\C[C[C[CBZCZCk[C[C[C[CW\C\CZCYC@XCXC+XCLXCXCZC@[C[C[C}[C@[C\C@a[Ci[CuZCYCYCR[C`C}`Cp\CZC@3ZC^YCYCXCYCWZCZCZCXCXCXCpYCXCfXC.YC@OZC@xZC)ZCTZC@[C@\C[CY\C@\C]C@\^C@_C^_C@_C`CcC}mCzCxC@kCcfCeC)bC`C[C@J\C\C\C\C\C[C@[C@\\C\C\C[C@\\Ci\C[C[CZCZCZC)ZC@JZCZCZCZC[Ck[CZCYC0YC@XCXCXC@\XCuYCZC@[C\C[C@[C\C@ ]C[CL[CnZCZCBZCL[C^CT_C\C[CBZCZC{YC)YC;ZCfZC@[C[C^YCTXCXCkYCXC5XCYCZCZC5ZCcZC@[C[C@[C@\C\C^]C@^C_C_C_C_CaChCBvC{C=pC@fCgC@cCaC=\Cc\C@s\CL\C@O\C[C@[C@!\C@\C]C@\C@\C@[C\C[CE[C[CYCYCYC&ZC@ZCYC@YCuZCZC ZCYCXC@XC}XCXCYCYC=[C[C[C[C[C\C@O]C[CZCZCuZCZCZC\C{]C\C^[CGZCZCYCYCZCZC]CY]C@\ZCXCXCYCXCWCXC@8ZC@ZCZCZCc[C@!\C@\C\C@[C\CY^C^CaCB`C`C`CdCoCG{CtC@gCngCfCcCT\C;\C \C\C[C@[C \C@8\C@8\C@s\C@J\C[CT[C@[C@[C@ZCpZCYCLYCXCYYC@xYCXCiYCYCYCiYC}XCXC)XCkXCXCZCZC=[C{[C@O\C#\CL\C]C]C@[CT[C@ZC@3[CZCZC@[CY\C\C@[C5ZCEZCYCZC@8[CZCp]CT^C^ZCYCXC@sYCXCXCuXCYCZCfZCiZC[C@8\C[Cn\C@\CW\CG^C]CaCaCY`C`C@JbCjCwC5xCjCBfCGhCcC\C@\C[C[C[C[C[C=\CR\C[C[CY[C[C@O[CZCfZC@!ZC{YC)YCXCGYCYCXCYCYYCYCXCnXCXCXCRYCYCZC@![Ck[Ck[C)\C=\C@\C]C]C[C.[C^[C[C@ZCZCZC@[C\C\C@aZCZC+ZCBZCZC[C@\C^Cp[C.YCXCuYCXCTXC@XCZCZCZCZC[C[C\C\C@J\CE\C5^CB^Cu_CaC@`C@a`CaCkeCTrCL{CYoCeC@hCeC\CL\C[C@[C[C@[C\C\C^\C@[C@[C[CR[C@s[C[C@ ZCYCXC@XCXCYCXCXCXCYC)YCXC@OXC&XCYCYC0ZCRZCk[Cc[Cc[C[C@!\C\C]CL]C@[CZC[C[C[CZC5[CB\C\C}\CZC@[CYC@xZC@ZC}ZC\C@O^Cu\CcYCXCXC@XCLXCXC@JZCZCZCfZC@a[C[C[C\C\C\C@s]C@^C^CaC}aCE`C`CbC kC@\zCWtChC@3fCgC[C[C[CT[C[C@[C@[C#\C[C@ \C@[CT[CZCL[CZCYCLYCXCXC@XCYCXCYCYCYCYC{YC@aYC{XC@JYC@3ZCpZCZCE[C)[C)[C[CL\C\CW]C\CL[CZC[C[C[CZCc[CR]C@\\C\C;\C^\CYC=ZCZCBZC@8\C\C@O\CfYC@YCXCiXC;XCWYC@ZC[C{ZC@ZCc[C[C[Cn\C]C\C\C^C]CB`C=bCG`C.`C`CeCRuC@syCYlCdCgC[C[C[C[CZC@[C@[C[C@[C@8[C@O[CZC[CZCYCRYC@XCXCXCYCXC@XCXCRYCYC@aZCZC@YC^YCZCZCZCZC@ZCZCZC{[C@[C@\C@]C+\C@![CZC[CE[CT[C{[C@[C@s^CE\C+\C^C@^CYCYC=ZCYC)[C[C[CYCTYC@XCRXC@OXCYCY[C@\C@ZCZC@[C)[C[Ck\C=]C\C@\C{^C]CB_CaCaC`C`CcCnC@{CYrC@fCeC[C[C[C[C[C}[C}[C[C@[C@[CnZC@JZC@ZCiZC.YCTYCXCYC&YC@XC0YCXCTYCYC{ZC [CG[C@YCpZCZCk[C[CZC@ZCZCZCW[C\C[C\C\C[C@[CZC [C.[CT[C@[C@x^C\CE\C{_C@`C@ZCZCBZCLYC5ZC[C@ZC#ZCYC@XCXCXC@YC^[C\CiZC+ZCZCZCn[C\C@]C\C\C]C@8^C ^CaCaCE`C`CbCRhC@xCwC kCTdC[Cp[C[C0[CG[C[C[C0[CB[C@[C@ZC@8ZC@JZC@YCYCBYC=YCYCYCXCXCYCYCZC@[C\C[C^ZC[CZC[CZC@ZCRZC@JZCZC0[C)\C\C[C@x[C@[C@ZCcZCZCp[C.[CT[C]C@\C\CT_C`C[CZC[CYC#ZCuZC@xZC5[CZCYCYXCXC@ YC@[Ci]C[CZC@\ZCZC[C^\C]C\C]C^Cc^C]C`CbC`C_C@aCEdC@rC{CpCeC[CT[C@[C)[C@[Cf[CZC[CZCZCYC@YCYCBYC@YCXCYC5YC5YCcXC@XCYC@3ZCuZC[C@]C.[CR[C[C{[C}[CEZCYC ZCBZCBZCR[C[C@[CG\CG[C5[CZCZC@aZCZCYCiZCn\C\C\C^C.`C+\C@ [CZCYCuYCYZC@YCE[C@\C@ZCXCXCBYC@ZCc]C^[CfZC}ZCEZCT[C\C]C@]C ]C^C^^C@O]C_C@bC}aC^C@`CcCkC{CvC@iC[CR[C[C@[C[CZCZCkZCYCnYCYCYCYCXC)YC@YC@YCXC@XC@XC@ZCZC@\ZCZC[C@\CZC[C@x[C@x[CEZCYCYC@YC+ZCYCR[C@[C[C[CZCZCYC@xYC@YCYZCYCYC[C[C\C@]C@^C\CZC@ [CYCZCZC@YC[C ]CRZC@JYC@XC+YC[C]C\C@ZCZCkZC[C\C]Cu]C@J]Cc^C^C@\C^C@ bC@bC_C@_CbC@fCvCyCoC.[C)[C@[Cc[C@[CZCiZCYCXCYC@XCXC@ YCYC@YC@YCYC@ YCcXC@YC[C&[CEZCZC[CY[C}[C@3\CZC}ZC.ZC@sYCYC@YC}ZCTZC@x[C@3\C@[Cu[C@sZCZC@3YC@YCYCYCGYCYCcZC@s[C\C@!\C]C@\C@ZC[CYCYCZCZCZC\CZC^YCXC+YC5ZC^]C}\C@[C@ZCZCZC\C@]C@^C\Ci]C^Cu]C@a]CaCbC@`C0_CbCdCcpC@zCtC@[C[C[C[C[C@sZC@YCRYCXC}XCXCXCXC5YCYCnYCYCXCXC[C]C[C;ZCZC#[C[C\C[C[CZC+YC+YCuYC=ZC5ZC@JZC\C[C[C[CYC^YCfYCYC@\YCiYCYC@YCZC@[C&[Cp[C@O\CG\CWZCYZC@3ZC@YCYC@aZCYC[CEZCiYCcYCYCZC\C\C@a\C+[CZC@ZC[C@\C;^C\C]C@_C]C\C@_C@ cCaCf_C@ aC=dC+jCxCEwC[C[C)\C[CcZCYCXCEXC.XCiXCYCYCYC5YC@ YC0YCXC)YCYC^C]C@3[C&ZCiZC@x[C^\CL[CY[C@ZC@JZCYCTYCYCRZC@!ZCZC[C@[C@ZCZCBZC@YC}YCYYC@\YCTYC ZCcYCZCZCZC@3[C[C;[C@YCYC@!ZCYCYCcZCYCZCZCYC@xYC@YC@ZCZC\C]C[Cp[C@ZCR[CG]Ci^C@]C@]C=^Cf^C]C^C=bC{bC@O`C@_CcC@3fCsC@3wC\C\C[C@[C@ZCYCXC@WCXCiXCXCXC)YC^YCYYC@sXCYCYC)\C@J`CW]C@ZCYC{ZC@\C]C@ [C[CZC@YCXCYC0ZC@ZC@!ZC@\ZC@[C[CZCpZCYCYC^ZCYC0YC+YCZCYCZC@ZCYC@\[C@[CZC@JYCYC@ ZCYCfYC@8ZC=ZCZC@YC@!ZCYCkZCiZCYC[C]C@a\C[C@3[C{[C\C]Ci]C5]C]C^CT]Cn]CaC;bC@ aC@_CbCBeC mCvC\C@O\C@[CZC@YC@XCRXCiXCXC@XC@!YCXCXC@YCXCYCpZCZC;_Cu_C\CGZC5ZCG[C\CB\C@[C[C[C@YCXC@OYC@x[C@\[CYZCnZC@3ZCGZCYZCEZC&ZCZCZC)YC@XCfYC[CYCYCZCYC.[C[CZC0YC@\YCZC@ZC@xYC@JZC@8ZCYC@YCZCZCZC[CYC [C]C]C@x\C[C@a[C@\\C@]C@!^C@\]C@]C@^C{]C+]C`CcC0aC@s_Cu`CeC^hC=tC@ \C\C[C@ZCkYCYXCWCXCXCYCXCYCXC@XCXCZC[C@\[C_C@^C[C@OZCL[C@[C\C@[CZCZC@ZC}YCXC&ZCc\Cc[C@8ZC@aZCYCYC@aZC@aZCYCGZCYCXC@XCYC@ZC@YC@\ZC@xYCuYCZC[C[C@8YC@OYCRYCG[C&ZC=ZCZCBZC@YCZC5ZCZCc[CYCnZC@\C\C\C[Ci[C[C\C]C@8]C^C^C]C]Cf^C#cC@aaC_C}_CdCfC;oC\C;\C)[C@YC@OYCXCXC@YCXCYC@XCXCiXC@!XCYC[C[C\C^CE]CZCZC\C\C@[C@ZC@ZC[CnZCXCcYC\C]C[CYZCZCYCYCnZCZC;ZC+ZC@YCXCXCYCZCYCTZCkZCYC@ZC@\C[CYCYC@YC[CZCZC@ZC@ [CZC@3ZCZC@ZCZC;ZCfZC@x[C\C\C[C [C@[CW\C@]C@]C]C@!^C@]C\C@8]C@aCbC@_C@_C@bCkgCjC{]C{\C[C@OYCBXC+XCYC@YC@YC@XCfXCXCXCXC@ZC@ [CZC@s]C]C[CZC[C\C^[C{ZCfZCLZCZC0ZCXC@YC@!]C]C+\CZC@YCYCYC@3ZCEZCfZCZCcYCYC@XC@YC[CZCZCBZC0YC ZC@\CE\CTZCGYCYC[C+[C@YCcZC@![CBZCYC[CL[C [CZCZCZC]C\C\C[C[C[C\C]C=]C@]C]C\C\C_CBbC@_C@_C_CfChC@\]C@J\C{ZCXC;XCYC)ZC@3YCpYC^XC@!XC;XC;XCYCZCpZCZC\C]CfZCZC\C[C@ ZC@xYCYC@YCiZCYC@YCZC@^C]C\C@8[CYCpYCYCYCRZCZCZCTZCYCYCBZC@[C@ZCZC;ZCYCZC\C[CYCYCYC@[C;[CWZC@\ZC[CZCZC@![C0[CZC@YCLZC@ZC\CW]C@!\C[C[C[C@O\C\C@!]C^C@]C@a]C@\Ci^CTaCk`Cn_C^CcC0hC@\C \CYCXC@XCZCYCYC@XC@WCXC@OXCXCcZC@ZC@3ZCZC@\Cf[CiZC@ZC@[C@ZCYC@YC{YC@3ZCYCYCGYCf[CR^CR]C@3]CZCGYC@ YC@sYC@YCTZC@[C@s[C&[CGZCYC[C\C@[CZCYCiYCZC\C@[C@ZC;ZC+ZC \C@ \C[CYC@aZC{ZCZC@a[C@\[CZC@8ZCuZC5[C0\C]C@\C+\C[C[C[Cp\C@]C^C]C@x]C\Cp]Cn`C`C_C@!_C`C@hC\C@ [C;YCXCYCZCYCYCXCXCXCXCYC0ZCYCYCG[C[CuZCZCZCZCkYCEYCGYC@3YCYC@aZC@ZCYC@O]C@]C@3]C]C ZC=YC+YCYCYC@JZC&[C[C[C@ZCYC@\[C@]C@O\C0ZC@xYCYCZC[CkZCZCZCZC[C[C@ZCZCZCpZC@[C[C{[CZCkZC.ZC[C[C@^C\C@!\CL\C@[C@[C[C\C]C;^C^C;^C]C^C`C@_C^C_C#eC&\CZC@XCXC[CYC@YC@3YCXC@XC@XC@XCZCYC@YCYCR[CBZCYCYC@8ZC^YC#YC&YCXCYCpZCWZCZCTZC@s_CR^C\C;\CYCpYC@ YCXCpYCZC@ZC@s[C[CZC@ZC@[Ck]C\C&ZCYC#ZC)[CZC@aZCZCZC@ZC;[Cc[CZCYC@JZCZC[C\C[C@ZC@ZCuZCZC[C]C]C\C\C[C[C@\C\C@^C@\^C^^C^C]C@ ^C_C0_C^C@x_CbC[C YCXCZC[CXCGYC@XC@XC@XC@aXC5YCYCBYCYC@YCZC5YC@sYCYCkYC@XC@YCXCYCYC5ZCnZCYC\C`C]CE\CZCYCYCYC@!YCZCZCZCZCZCW[C\C#\C\C[CYCYCcZC[CZCcZC@xZCZCZCZC[CZC ZCYC@ZC[C\C[C[C@ZCZCu[C\Cn]C^C{]C\C\C)\C@ \C@\C@]C^C^C_C^C]C@^C_C^C^C_CcZCYC@!YCZC^ZCXCXCXCXC@XCfXCXCXC@3YCYCYC&YC;YCcYC@aYC@YCXCXCXCYC)ZCYCYC@YCG]CaC@\C&[CcZC@YC[CZC@xYC@[Cf[C)ZC+ZCZC[C]C\C[CZCZCZCZC[CT[CRZCiZCZC@ZC@JZCGZCZCYC=ZCZC\C\C@[C^[C@ZCZC@ \C@\C]C0^C}]C\C\C+\C@a\CY\C]C@]C^CE_C}`C]C@8^C@ _C@^C@^C0_CfYCXCYCf[C@YC@!YC@XCXCXC@XC@XC{XC@XCYCYCRYC@!YCXC YCpYCYC#YCXC{YC#ZC@8ZC@YC@YCBZC_C}aC@\CZC@YCZC]C@[C@YC]C\CZC@ZCZC[C@]C@\CZCZC{ZC}ZC@s[C#\C[C@xZCYCZC.ZCEZCZC@YC@!ZC#ZCZC@\C\C.\C[C[C@ [C@[C@]C^C+^Cf]C\C\C@\C\C\Cc]C@ ^C@^C^C@8aC@^C@ ^C@^Cu^C@\^C_C@8YC@\YCZC+ZC@XC0YCnYCYCXCXC@XCXCYCYC@YC#YC@ YCYCYCYCYCYCXC@3ZCYC@YCLYCZC [C_CW`C@[CYC[C]C`Cp\C@a[C@^C\C[C[C@a[C@8\C]C@[C@ZC@OZC@ZC@ZC[C\C\C@ZC@8ZCZC@ZCZCZC.ZCEZCZC[C@\\C\C=\C[C[C@ZC@\[C\C@8^C]C#]C\C\C]Cn\CR\C^]C@]C@\^C^C@a`C`CE^CW^C0^CB^C^CYC)ZCE[CYC@XCiYCYCXCpXCXCnXCYCYCYC5YC@XCYCWYCYC}YCLYCXCpYC;[CZCYCYCZC@\[CT_C@J^C@![CZC\C^CaC\C\C+_CR\CE]CG]C\C\C.]C[CZCZCZC^ZC@[C@]C@]C \CZCZC[CZC@ZC@ZCZC)[C\C\C)\C@a\C5\C[CT[CB[CR\C@x]C]C\C@O\C@\CB]CL]C@\C]CE]C]C^C _CaCf_C}^C^CR^CW^CYCZCZC@ YC@XCEYCYCXC@XC@ XC@XCYC@YCiYC=YC@YCXCYC@YCYYCYC@sYC@ZCZCcYC@YCYCZC[C]C@[CZC@s[C^Cp_C`C\C]C@a^C@[C^CG^C@]C@\C@\Cf[C@[CZC@aZCZC[CW]C@!^C@\C[C@ZC [CZCZC[C#\C[C\C\CY\C\C@3]Cn[C0[CG[C@s[C@\C]C\C\C@\C@3]C\C ]C^]C^]C@8]CB^C^C`CB`C._C]C]C]C@OYCZC0YC@XC@YCYC@XC@xXC@XC^XCnYCYCpYCXCYC}XC@3YCYC+ZCYC@YCYCZC@\ZCcYC@ZCpZCZC@[C@[CBZCZC\Cc_C_C_CB]Cc^C@]C0\C@_C^Cc^C]CR\C@[C@x[CZCLZCZC[CY]C@]C\CY[CZC@8[CZC&[C5\C@ ]C&\C\CW]C\C\C^C[C\C@[C[C@ \C\C\CT\C{\C\C\C@a]C@]C]CT\C]C^C@_C`C`C@^C^C^CZCYCXCXCYCBYCXCXCYCYCYCEYCYCcYC@8YC5YCYC=ZCYCYCZCYCZCYCYC[C.ZC@J[C[C;ZCYC@[C@\C^C._C._C]C ^Cf]C\Cc_CY^C]C\C[C#[C@ZC@ZC@ZCZC[C\C]C\C[C[C@ZCL[C@[C\C]C\C\Ci]C@O]C@J]C^C@3]C\C[C\C@\CG\C&\C\C\C\C\Cp]C^C^C ]Cn]C^C^C_C`C_C@^Cn^CLZC@OYC5YCLYCYC@XC@xXC@8YC@XCYCYC@YC#YCYC@YC)YCZCZC0ZCZCYCYC@JZCYC[CZC@aZC[C=[C@XCpZC@\C\C]C@^C=^C@\C^C\C\C]C]C@]CR\C[C@ZCnZCZC}ZCZC[C&\C\Ck\C@[C#[C&[C}[C@[C[C\C\C\C@\]C]C@]C^C]C\CE\C\C@\C[Cn\C\C\C@]C\C;]C]C@^C]C@\C^C@x^C@^C@ `C`C@s^Cc^CYCYCXCkYCXCXCYCXCXCYCYCYYCYCXCuYCYCRZC [CYC@ [C#YCYC@3YCZCL\CEZC.ZC@[CYCpXCL[Cn\C[Cf^C@^Cc]C\C5^C&]C[C#\C[C[C[C=[C)ZC&ZC@aZC^ZCE[C[CE\C@\C\C[CB[C@3[C5[C@s[C[C\C \C ]C]C@]C]C{^C@_C@\C\C@\C\CE\C[C\Cu\C\C\C\C@]C^C^CW]Cf^C^C]C^CaCE_C]C=YCXC@3YC#YCXCXCXCXC^YC@\YCYCYC YCnYCTYCYCZCZCZC.ZCYC@YC@OYCY[C@\CYC ZC[C YC@YC@8\CZCu[C^C^C\C0]C)^C@[C[C[C[C[CZC@ZC@\ZCEZC+ZC@ZCZC\C@\C\Ck\C5[C@8[C[C@[C[C@[C\C\C\C@]C]C@ ^C@]C@_C@]C]C+]C]C@\C.\Cn\C\C\C]C\C]C@s^C_CG^C0^C@J_C]C^C`CaC^C@YCYC=YCXCYC)YCfYC@YCYC@xYCYCTYCYCuYCZCiZC@3[CYC@ZCfYCYCYC)ZC]CZCXC)ZCYCXC@ZC[C@OZC@x\C^C@a]C\C@O]Cc]C[C0[Cf[CT[C[C@ZCZCZCLZCZC0ZC@ZC[C\Cf\C\C[C[C[C[C[C@J[C@\\C@s\C@s]C\C\C]CW]C@^C]C]C@\C]C\C@\C@x\C\C\C@\C]C@\C]C^CR^C@^C}_C=^C]C_C@bC@!_CYCEYCXCXC@XCTYCYCWYCYC=YC+YCYCBYCYCZC&[CZCYCRZCTYCLYCYCc[C@\CYC@!YCYCYCXC[C)ZC@ZC@J]CW]C\C\C\C\C[CE[Ci[Ck[CZC#[C{[C@[C@xZC0[CGZC@ZC+[C@[C\C[C[C[C[C[C[C[C\C@\C@]CB\C\C\C\C^C^C@]C\Ck\C\Cp]C\C\C\C\C@\C@\C]C^C^Cf^C^CT_C]CW^CbC.aCYCYC+YC@XC@XCYCTYCWYCYCYCYCYCYC^ZCZCR[CYC)ZCYCTYCcYCYC\C@[C5YC@YCYCYCYCZCYC@[CL]C\C@]C\C\C.\C[CG[C}[C@\C[C@[C@[C@[C@3[CZC@sZC ZCZC@a[C[C[C[C[C[Cu[C@[C@[C@s\C@\C@]CY\CT\C\C\C@\C^C]C@8]Cn\Cp\C]C]C\C\C\C\Cu\C\C]C^C^C^C_C]Ci]C@_CbCRYCXCXCXC@XCYCYC^YCYCYC@YC@YCYC[C0[C@ZC^YC@sYC^YCYC@YCZC\C@YCXCiYCYC@sYCZCZCnZC[CY\C@\C]C+]C5\C@\C\C[CT\C]C^\C[C[C)[CZCZCZCZC#ZCZC@x[C[C[C@[C@O[Cf[C@[C}[C@\C}\C]C@s\C@[C\C\C@\C@]CR]C]C@J\C@\C\C@]C@\C@\C\C+\C}\C}\C;]C0^C^C@ _C_Cp^C]C]C)cC+YCXCXC@xYCYCLYCLYCcYC@YCYC@YCYCZC[C@ZC@xZC;YCYC@YCYCYC[C@[C.YCYCEYCYC@YCZC0ZC.[C[C[C@x]C@^C]C@\CG]Cc\C[C{]C@O^C@O\C\C[CB[CZCZC@ZCZCTZCZCZCL[C@a[C@[C}[CB[C[CB[Cp[C.\C\Cc\C[C\Ck\C\C\C\C]C@\C@\C@\\C^C@]C\C\C\C\CY\C\C]C@]C@^C@!_C _C]C@]C@`CXCXC@3YC#YC@OYC@sYC@3YCuYCYZCYCYC@YC[C@![CcZCYCLYC@8YCYCYCZCi[C@YCTYCYCYCYCZC)[CZC[C[C@\\Cu]C@^C&^C0]CE]C]C\C@3^C5^C\Cf\C@ZC@\ZC[C@[C@ZCiZC{ZCpZCkZCZC^[C\C[CT[C[C[CE[C\C@[C@a\C@x[C\C\C\C.\CY\CW]C@3]C\CE\Cu^Cp^C\C@s\C\Ck\C\C\Cu]C@]C@^C@3_C^_C5^C]C_CiXCYCYCEYC@YC.YCYCYCYCYCYCZC@\\C@ZC@ ZC YC@YCYCYC&ZCZCZC^YCYCXCZCYC@[C [CZC[C\CT\Ci^C_C_C]C@]C]C\C^C]C]C[CGZCZC@a[C[C@[C@3[C[CZCZCZC.[C[C[C@[C0\C[C)[C&\C+\CG\C[C\Cp]C@ ]Cf\C[Cf]C]C\C=\C]C_C]C\C\C\C[C[C\C]C5]C^C_Cp^C@]C]CXCXC0YCYC^YC0YCYYC@ZCZCYC=ZC[C@ \C@OZC@YC@xYCYCYCZCZCuZC@YCYC@YCYC@YCZCZCiZC@[C@!\C@s\C)]C_C@\bC#aC;^C^C@^C@^C]C@O]C@ \C[C^ZCZC[C[C[C@[C[C[C@ZCZC@ZC[Cp\C@[C@ \C \C[C\CB\C5\C@a[C\C^C]C\C\C@]C]C@\]C\C;]CR_C^C@]C\C@\C\C@\C@x\C0]C@a]C@^CE_C@ _C]Cc]CXC@xYC@sYC@xYC;YCXC@YCZCYCkZCZC\C[CYCYCXCYCGZC[CZCYCcYCYCYCYCYCZCZCZC@[Cc\C\C@x^Cu`CncCbC@_C@_C@_C@^C@]C]Ci[C@ZCZCZC[C[C[C[C\Ck[Cf[C [C [C[C^\C@\C[C[Ci\C\C@\\Cc\C@[C\C+_C@]C\C@3\C@\CY^Cu]CR]C}]C._C_C0]Cf]C\Ck\C0\C\C^]Cf]C]C@ _C^C@^C]CXCfYCuYC;YC=YCYC+[C@ZCYCZC}[C=\CYCYCEYCBYC@!ZC[CZC@YCYC{YCYCYCYCZC@xZC@sZCZC@x\C]C]C _C`C@ cC@bC_C@_C@_Ci^C@!^C]Ck[C@ZCZCZC[Cf[C[C@J\C0\C)\C@a\C@a[C@[C{[C#\C\C.[C[CB\C)]C@\C\C@\CG\C_C ^C]C\Cn]Cp^CL]Ck]C]C^C)`C]C]C\CE\C@[C\C@\CT]C@]C@a^Cc^C^C@]CYC@xYC^YC@YC@OYCEZC@[CYCYZCZC5\C[C@YCYCXCYCZC}[C@YCYCYC@YC ZCYCYCYCZCZC@[C.]C^C^C@\_C^C@bCEcC`C`C_C@O^C@^C]Ci[C[CG[C[CR[C@O[CY\C@\\C\C@O\C@\C[Cn\Cu[C@[C\CZCZC[C\C@\\CL\C@J\C\C@\^C]C@]C\C^CT^C@\CR]C]CB_C#`C^C]C@]Ck\C\C=\C\C]Cu]C@\]C@^C@^C^CYC@YC@aYC&YCYC[C[CYC@\ZCf[C#\C@OYCYCpYCYYCYC.[CZCcYC@8YCnYC ZC@aZCYCYC=ZC@xZC.[C@\C]C^C^C^C^CbCdCWaCaC`C^C=`C@O^C\C[C5[Cn[CT[C{[C@3\C@[C\C=\CL\C@[C@\\C@[CT[C[CZCZCZCE\C[C\C@8\C\C]C]CT]C.]C^C{_C@!]C\C]C_C{`C@_C}]C@]C\CG\C@\C@\C]C]C\C@8^C^C^CpYCYCYCXC@ZC}\CuZC@xZCLZC[CZCYCYCLYCYCZC[CYCYCRYC@YCYC{ZCYCYCZCiZC[C\C^C@3^C@J^C@3]C]C@cCeCaC@bCEaC^CW`C@8_C@8]C0\C{[C[C[C[C[C&\C[C\C)\C@[C@a\C@x\CZC@ [C@ZC{ZC}ZC;[Ck[C@3[C)\CL\C]C.]C0]C]C^C@`C^^C@\C0]C^C&aC@x`C]C^C]C\CE\CB\C]C)^C;]C#]C_C^CZCiYCYC=YC[C\C@\ZC@sZC[C[CYC@YC@YCYCYC [C@[CRYCYC@3ZCkZC#ZC@xZC@ZCZCZC@ZC[C{\C]C^C@a]CE]C@J^CBdCkdC`CaC.aC^Ci`C`C]Ck\C[CE[C@\C#\Cf[C \C@[CT\C[C[C@[C \C+[CZCZCZCZC#[C@[C[C[C@3\Ci]C\CB]C]C^C@`C@`C]C]C@^C@8aC@`C^C]C]C\C\C\CW]C@^C@x]C5]C@!^C^CYCXC^YCZC5]CZCZCZC@\CBZC@YC@3ZCYCEYC;ZC[C@YCYCZC[CZCZCZC@ZCcZCZC@ZC[C@]Cn]C]C@\C\CT_C0cC5bC@_C0`C`C@^C_C`Ci^C\C[C[C@\C@\\Cu[C;[C\C\C@[C5[C@a[CL[CZCpZC+[C[C[C@ [C@O[C[C@[C@[C;]C@x]C)]C]C@^C`CaC ^C\C]Cc`CaC_C@J^C]Ci]C\C@\C]C@]C@]C^]C]C^C^YCYCYCB\C]C@xZC@aZCZC@s[CYCYC{ZCYC@ ZCZCZCYCZC[C@\[C[C@ZC}ZCZC[C[C[C[C@O]Cc]C)]C\C\C@ _C`C_C ^C^C^C@^C^Cf_C@!^C\CR[C@[C]C@8]C[Cn[C#\C\C@3[Ci[C[C[C@xZCRZC{ZCZCZC)[C[C\C\Ck[C5\Cn]CG]C]C@^CY_CbC^C]C]C@^C aC@J`C^Ck^C]C]C]C@\C]C]C&]C@]Cn^C@YCXC@OZC]Cu[C@OZC@OZC[C{ZC@ZC#ZCYC.YC5ZCZCBZCZC[C[C[C[C@8[C&[CZCR[Ci[C@[CB\C]C;]C]C]C\C;^C^C@]C\C]C\C@]C^Ck^C5^C@\\CZC@[C\CL]C[CZC@[C@8[C@3[C+[CZCZCcZC)ZCRZC@ZCZCZC[Cn\C\Ck[C@[CY]C]C@s]Cu]C@^C@aC@s`C^C]C^C{`C@3`C^C^CY^CY]C@]C@3]C]C]C)]C]C^CYC@YC\C@!]C@ZC^ZC+[Cn[C@ ZCZCGZCRYCfYCZC}ZCZC[C@!]C\C@O\C@O[C[C[C5[C[C[C.\C\C\CG]C@a]C\C\C]C\Cc\C[C[Cc\C@\CT]C]C^C\C@ZC@ZC[C@\C@\C[C;[CZC+[C@O[CZCZCGZC@YC@YC@ZC@ZCZC#\C@\C@\]C[C\CE\CT]C]C)^C^C}_C`C@^C@^C{]C&_CW`C@^C^CR^C@]C@O]C]C]CL^C5]C.]C@]C#YCWZCu^C[CZC}ZC[CZCYCZCZC@YC}ZCZC@YCZC+]C]C]C\C[C[C[C[C[C;\C[C0\C]C]C^C]C\C@\C0\C@[CZCu[C@[C.\C\C}\C+]C@J\CB[CZC@ZC+\C\C@\[CZCZC@![CB[CY[C@ZC{ZCZC+ZCWZC0ZC+[C[CG\C\C[C[C\C\C]C@s^Ci]C]C_C^CW^CT^C@_C@`C_C^C^C^C.]C@J]C]CB^C]C@ ]C@a]CuYC@\C]CZCWZCZC@ZCYCYC@ZCYCYC#[C@ZC@sZC@\C;^C@^Cp_C]C=\C@\C@!\C[C[C&\C[C[C\C ^Ck]CG\C@\CL\C@[Cu[CZCZCu[C[C[Ci\C\C[CZCZCZCG[Ci\C@ [CZCZC@[C[CY[C@ZCRZC@ZCZCZCYZCZC\Cp\CW\C\C[CB[C\C@]C^C@x^C\Cn^C@^Ck^C^C^C@8`C_C_C^C^C]C@]C^C]C]C\C\CZC@^C\CZCZC5[C&ZCnYCYC@8ZCkYC@[C [C@YC[C]C^C`C_C\C@\C}]C@[C@[C[C#\CR[C [C\Cf]C\C[C[C@[CZC@ZCZC{ZC@ZCp[C[CY[C@[C[C[CZCZCuZCn[C@ZCZC}ZCW\C[CZC@ZC&ZCiZC [CZCZCZC[C\C[C[C+[C}[C[C\C]C@^C\C\C@J]C]C@^CY_C_C `C@_C^C^C^C@s]C]C]CW^C@]C]C@\C@ ^C[C@ZCZC@ZCXCiYC@8ZC@xYC@JZC@ZCZCZCB]C@8^C_CbC+_C@!]C^C^C\C@[C[C[C@ZCE[C[C=\CG[C[CZCZCZC ZCYC@aZC@ZC[C@[C[C[C@ZCZC@3[C@aZCZCZC[C[C@ZC=\C&[C[C[C@JZC@xZC0[CZC}ZC[C[C\C[C{[C@[CZCR[C[C@\C@]C\Cu\C@\CW]CL^C@_Cu_C@_C@`CT^C^C@a^C]C=^C@^C}^C#^C]C^C[C#[CnZC@[CYC@3YCZCBZCYCZCR[CZC.\CE^C^C@aCaC]C}]C@3aC]C@\CB[CE[C@ZC@ZCZC[C;[CZC[C@ZC^ZCBZCYCYCYCkZC@a[C@ZC@ [CZC@\ZC@ZC[CWZCZCZCfZCZCZC@x[CG[C@ZC@![C}ZCZCZC[CZCZC@8[C.]C\C@3[CE[CY[Cp[C@s[C@[C@\C@\CW\CB\C\C^C_Ci_C+_C_Cn_C@^C^C]C@]C0^C@]C@^Ck]C@]C@[C@\ZC5ZCuZC;YC@8YC^ZC&YCZC+[C@[C[C]Cu^C_CLcC@J`C ]C_C@3bC\C[C[C@ZC}ZC@OZC@JZC@ZC@ZCLZC@!ZCYZCZCYCcYCfYC@!ZCYCZCZCZCZCYC@ZC[C^ZC@YCBZC0ZCTZC#ZCpZCZCZC[CZCLZC@ZC0[CZCTZCZC@\C]C[CZC#[C@O[CZC}[C[C[C@\\C@[C\C\C^C@_C@^C@ _Cu_C@^C^C^C@]C ^C}^Cc^C^C[CZC@YCLZCYC)YCYC@YC@YCk[C[C@ [Ck\C^C{^C@aCbC^C]C@cCp`C\C5[CZCZCZC)ZCYCLZCuZCYC;ZC@YCYCYCYC+YCTYC@YC@!ZCZCZC@ZC=ZCYC@ZC@aZC@3ZCpZCZCZCYC@!ZCYZC0ZC@\ZCZCYC@aZC[C@8[CZCZCk\C^C\C@O[CZCZCZCk[Cp[C@s[CL\C[C@x[C\C@]C@^Cf^C}^CR_C^C@^CW^Cf^C&^Ci^C@!^C^CZCZC0ZC@ ZC@OYCXCYCLYCZC@[C@[C[C]C@^C_CcCWaCW^C_CcC=]CW[C@ZCZCcZC;ZCYCYCYC@YC@YC@YCYCiYC@8YCXCXCcYC@aYCZCRZCZCZC@YCZCZCYC.ZCZCZCZCfYCuYC=ZC)ZCZCZC@\ZCZCZC@ZC@OZCZC+[Cf^C@]C@s[C@ZC [CZC[C[C.[C@[C[C@3[C\C\C@]Cu^C@!^Cc^C^C^C@O^C@a^C5^C^C@3^C@!^C@ZC5ZC0ZC@YCXCYC@YCYCi[C@[C@[C@O\CB^Cp_CuaC@cCaC.^CaC`C@[CZC@ZC@ZC@OZCYCYC@YC@YCLYC@YC@YCYCTYCXC@XCXC@YCXCXCYCYC@YCYCYC@YC@ZCWZCZCZCZC ZC@YCZCZC+ZCZCGZC@ ZC@sZC@xZC@ZCBZC[CE]CY_C\C@J[C@ZCZC&[CZC@ZC@[C@[C@ [C[Cu\C]C@]C{]C]C@J^Cp^C^C@!^Cu^C@!^C^C@!^C.ZCYC}YC.YC@XCYCYC5[C^[C[C+\C)]C@^C@_C@bCdCi`C@^CaC;]CpZC{ZCiZCBZCYZC@YC@YCYC+YCTYC@YCYCXCXC@XCXCXC@XC.YCXCLYC@OYCYCYCYCZCYC ZC@ ZC@ZCZCYC@YC@YC@ZC@JZCcZCRZCRZCTZCZCYZC@8ZC@ZC@\C^C^C}[C[C@ZC@ZCZCZC[C[CR[CZC[C\C\C]C@\C]C@^C^C^Ci^C^C^CY^CYCYCYCkYCYYC@YCYC[C@3[C)\Ci\C@]C_C`CdCRdC_C@^C^C[CZCRZCiZCkZC@YC@JYC@3YCYCXCXCYC@XCXCcXCpXCpXC@JXCXCpXCXCXCXCXC@XC@YCYCYC5ZCYC ZCEZCYC@YCYCGZC@JZC@ZCZCZCRZCZCZC^ZC;ZCZC]C{^C@\C[CZC0[C@ZC@ZC[C[Cf[C&[C@\[C \C5\C@\C@x\CW]C]C^CT^C}^C^CR^C@^CTYC@ ZC^YC@YCYC@YC[C[C}[C5\C@\C]Cc_C@JbCfCbC_C.^C\CZCZCZCYCYCTYCWYCYC@XC5YC YCXCXCXC@XCWC@XCXC}XCiXC@XC^XC@aXCXCXCYCYC@XC@YCnYCYCZCYCYCYCYCZCZC@ZCZC@ZC@ZCcZCWZCpZCZC@[C^C]C@J[CZC@O[C[C[C@ZC@[C[C@[C[C@J[C@\[CB\C\C\C]C^C@!^C@s^Cu^C^C@\_C&YCYC@\YC@JYC5YCZC@8[C@[C@ \C[C+]C)^C_CdCeC@`C]C\C[C+ZC@ZCZC@YC@YCXCRYCXCXC@XCXC@XC@XCXCXCXC@XCRXCXCWC@XCXC@JXC;XCXC0XCXCYCYCBYC.YC@ZCYCYCYCYC&ZCZCnZCYCnZC.[C@ZCfZCZCZC@ZC ]C@^C+\C@ZC@a[C \CR[C@OZC@3[C[C[C[C[CZC[C\C@\C]C@J^Cp^C0^C^C^CY_C@YCYCYC@XCYC@ZC@J[C#[C\C\C\C]Ck`CcfCbC@8_C@\C[CZCYC5ZC@ZC^YC@xYCXCXC@XC@aXCXC@XC@XCWCWCWCWC5XCcXCWC@WC@WCWC@XC@8XCfXCWXC&XC@YCkYCXCYCYC@sYCYCYCYCYCZCZCZCZCZC[CZCTZCYCuZCk[C]C\CZCcZC@3\Cf[C@!ZC@ZC[C@[C[C[C[C+[C\Cu\C\C@3^C^Ck]Cp^C@_C^CTZCYCYC@YCZC0[C[C\CT\C{\C@\C@ ^CbC@eC.`C]C[C@ZC@ZCYC@YCYCYCGYC^YC@XC@aXCXC0XCYXCWCWCWCWC@XCEXC@ XC@WC@WC@WCWCWCXC#XCWC@!XCGXCXCXCXC@8YCBYCYC@YC@YCYC@aZC&ZC@xZCZCZC^\CW[C@ZC5ZC0ZCZC\CL\CZC@JZC@3[C^[CpZCZCZCc[C[C@[C@[CZCR[C[C\C^C^C^CT^C_C@^CYCYCYCYCZC[C[C@3\CG\Cn\C)]C _CcCaCE^C@x\C&[CkZCZC)ZCYC@JYC@aYCYCXCXCXC@OXC@XCuXCWC&XC@WCWCWCLXC@OXCWCWCWCXC@WCWCXCWCWCuXCXCXC.YCiYC@JYCEYCYCiYC@OZCZCZCZCZCZC[C.\CZCfZCZC[C\C=\CZC{ZCZCZCLZC@8ZC@sZCZC@8[C)\C\C[CZC[C@ \C@8]C^C._C^C@_C_CYCYYC)YCYCZC[C+\C\CW\C)\C@8]C`CaC&_C]C@[C{ZCZCYCYC@YCWYCYC@JYC YC@XCXC@\XC@\XCXC XC@WC^WCWC@WC@\XC@WC@xWCWCuWCWCWC@WCWCYWCWC@3XCnXCXCXCXCEYC}YC@YC@YC@sZCZC[C@xZC@ZCZCR[C)\CZCZCZC{[C[C[CW[C@aZC;ZC)ZC@xYCYCWZCc[C@3[C@[C@\C{[CZC@8[C[C@J\C)^Ci^C^C^C@8_C@YCYCYC}ZC;[C0\C\C\CE\CB\C@]C`C_C@]C[C[CiZCYCYCYC{YCpYC@JYC@8YCXCXCfXC@8XC^XC@!XCWCWC@WCWCWCWCWCWCWC@ XCXC@WC XC.WCWCWC@WC@3XC@XCXCWXC@3YCYC{YC@YCuZC@[C]C@[CZCi[C[C[C@[C5[CY[Ci[C;\CB[CE[C@ZCZCBZCYCYC@\ZCZC5[C[C\C@x\CZC;[C@J[C@[CY]CW^Cn^C]C@_CYCkYC@YCZC@[C\C)\Ci\C[CR\CE^CW_C^C@a\C[CZC;ZC;ZCYC@YC@YCYCYYC@XCGYC{XC@XC@3XC@XCXCWCWCWCWCLWC@WCcWC@WC@WC@WCWCWC@\XC@WCWC@WC@WCWCWCXCfXC@XC)YC@YCYC@\ZC[C@3^C[CZC@[C[C[C[C.[C=[C\C@\C@!\C}[CZC@xZCYC@8YC@8YC@\YC@8[C[C{[C@s\C]C[C@ZCZC@a[C\C{]C]CG]C#_CYCpYC{ZC@[C@J\C\CE\C@\C[C\C@a^C@O^C]C[C.[CEZCiZCYCYCYC@YCYC@JYCXCiXCXCfXCWC@JXC@WCWC}WC@WCWCWC@WCWC@WC@WC^XCWCWC@WCWC@WCWCWCWC@WCpXCnXC@XCXCYC@YCZC[C]C@[C[C[C\Cp[CL[C^[C[C[C@J]C[C@\[C@ZCZCYCYC=YCXCZC^[C.[C[C\C\C@ZCZC[C@\\CW]C]C@x]C]C@YC@YCZC&\C=\C@x\C@\C[Cc\C]C]C\C[C@8[C@ZC@OZCZCcYC@YC@YCYCYCYC+YCXC@sXC0XC@XCWCXCWCWCWCWCpWCXCWCXCXC{XC XCWCWCuWCWC@sWCWCWCWC@OXCuXCYCXCYCYCZC}[C@J]C\CZC@3[C\C[C[C[C@\\C\C@]C\C@O[CR[C[C@!ZC+ZCpYCBYCYC@[C@![C[Cn\C+]CZCnZC@ZC[C]C^]C]C&]CYCYC[C.\C\C@\C[C[C\C@]C@\C\CG[CZCZCTZCYCYCYC@YC5YCYCYCXC@XC@XCLXCXC0XC0XC@WCcWC@sWC@WC@WC@WCWC@ XCpXCXCWCXCWC@WCBWC;WC#WC5WCWCXC)XC@XC)YCuYCuYCZCZC\C\C{ZCZC\C[CZCn[C@8\C]Cn]C@\C@[CZC@[C@ZCuYCYCGYCYCuZC[Cc[C[Cu\C@[C@sZCZC.[C{\C@O]C\C\C@YCfZCT\CB\C\C\C[C[C\C@8]C+\C[CZCZCZCZCYCYCYCTYC@YCYCYCXC@XC{XC@OXC@JXCWCXCWC@WC@sWC.WCWC@\XC@XC^XC@XCpXCWC@WCcWCiWC0WC=WCVC@aWCWCWC+XCLXCXC#YC@8YCZCE[CW\C]CZCZC[C[CZCE[C\C\CE]C@\C[CE[C@s[Cu[C@ ZC@3ZCYCYCYC[CZCZC[C@3\CZCZCZC[C\C@\C\C@ ZCi[C\C@s\CL\C&[C@ \C@s\C@\C\C@[C=[CZC@ZCuZC@YCYCYCZCYCYC@XCXC.XCXCXCWXC;XCWC@XCWCWCRWCWCWC@xXC@XC@XC@ YC@aXCXC@ XCWCGWC@!WCYWCVCRWC@WC@WC@3XCXC@XCXCkYCYC [C@\C@O_C \C@sZCE[C@a[CZCu[C\C]C@]C@O]C[CZCZC[C@xZCYC@YC@xYCYC@ZC@ZC@ZC@[C[C@O[CWZCZCZCY]C@\C\CiZCW\C\C\C@[C[C\C+\Cc]C[C[C;ZCcZCZCZCYCYCYCYCfYC@XCXCXC@xXC;XCXCWCGXC@WC@WC@OWC@WCWC@XCXCXCYC+YC+YCXCXCiXCWCWCVCWC@WC@!WCWCWCRXC@JXCnXC YCXCYCZCf]CbC@]CZCZCk[C@ [Cn[C@\C]C]C]C}[C@ZC@ZC^[CZCYCZC+ZCYCZCkZCTZCZC@J[CE[CcZCZC@[C@[C@3]C\CY[C\C@\Cu\C[C@[C[C@\C@\C@a[CZCnZCYZCRZCYCYCYC@aYCYC@3YCWYC@8YCXCYC@WCGXCXCXCWCWCWCXCWCWC=XCYCuYCYCBZCYCXC@XCWC@JWC@8WCVCVCTWC{WC@XCGXC+XCXCYC.YCnYCZCG]CeC_C+[CZC#[CZC&[Ck\C0^C^C]C\C@[CnZCZC@[C=ZC@YC@sZCYCYC ZC5ZC@ZCZC@O[CEZCZCZC)[Ci]C&]C@\C\C\C@[C@[C\CW\C]C[CZC@ZCZCZCZCGZCEZCYCYCYCXCYCXCXCXCXCXCXC@8XC XCWCWCWC@WC{XC@JXCYCYCRZC5[CYCXCXC@WCWC@ WC@VCWCVC@8WCWC.XCWC@WCXCXC@xYC@ZC\CdCp`C[C[CG[C@[C@3[C[Cp]C@8_C]C=\CZCYCWZCn[CZCYCYZC{ZCZC@aYCYZC@\ZCTZC@ZCiZC@ZCZC@ZC\C@!]C@\C\C\C@[C[C\C\C\C;[CZCZCZCZC&ZC#ZC@YCZC@sYC@YC@XCXCXCXCXCXCXC+XC;XCWCWCWCWC@WCWXCXCYCZC[C&[CYCXCXC@OXCXCuWCEWCVCWC@WC@WC@WC+XC;XCXCXCYC{ZC@[C@`C{_C[CE[C@[C=[C@x[C@\[CR\C^C\C@[CZCBZC@YCcZC@ [C@YCYCZCLZC@!ZCYC@YCZCZCWZC@8ZCWZC@ZC)[C}]C@x\C.]C[C@[C@!\Cp\C]C[CZC@ZC@ZCkZC}ZC@ZC@JZCpZCYCYCXCYCXC@ YC@XCXCXCXCfXC@aXC@aXCWCWCWC@\XC@XC0YCZCc[C[C#[CYC{YCXCXCWCWC+WC)WC&WC#WCWCWCXC XCXCXCYC@ZCZC.]CE]C{[C[C[Cc[C@[C\C[C5]C@\Cp[C@ZCZCZC@aZCZCpZC@YC{ZC[CZCYC@YCYCZCiZC@ZCYC@ZC [Cf\C@\C@\C[C[C@8\Cp\C\C;[CZCZCTZCZCZC@OZC@ZCYC@YCYCXCuXCXC YC@8YC;YCRYCXCXC@XCcXC@aXC=XC&XC@JXCXC@YCZC5\C&[CZCYCYCYC&XC@XC.XCYWCkWC{WC@OWCfWC0XCXC@aXCXCXCYC;ZCZCZCc[CZC@ZC[C[CL[C[C[Cf\C}\C@J[C@![CZCZC;ZCZCZCYCZCZCn[CZC@YCYC=ZCZC@aZCZC@ ZCZC[C@s]C@J\C@\C[C \C]C@[CZC&[CZC@ZCZCZCcZC@JZCGZC@YCYCYCXC=YC^YCYC@xYC&YC)YCXCcXCXC@aXCXC@XC@JXCXCYCZC@[C@[CiZCYCYCXC&XC}XC@WCWCWCRWC@xWCfWC@WC)XCLXCXCXCXCYCYC=ZC@ZCZCZC[CZC@ZC[C[C[C[C@\[C@[CZCZC@ZCZCZC@ ZCnYC ZC[C[C@ZCYCYCkZCuZCZCYCZCZC@\]C@[C[CE\C\C\C@J[C@ZCZCZC@xZCZCRZC@JZCZC@ZCYCYCXCYCYCYCYCuYCuYC#YC@JYCXC@sXC^XC@XCLXCEXC@!YCYCfZCL[C@ZC@ZCYC@YCnXC^XCXCWCWC@WC#WCWC@aWCWC&XC@WCXCXCXCYCYCYCfZCZCZC[CZC@ZC[C[C[Ck[C@ZC\C\C+ZC.[C@ZCpZCYZCZCYC[C[C@[CZC@OZCfZC@ZCYC@3ZCZCGZC=\C[C[C[C\Cf[C[C[CZCiZCZCZCZC@ZC@ZC@YCYC@XCXC@ YCZC@ZC^ZC@YCYCYC=YC@XC@XC{XCiXCTXCXCXC@sYCZCZC[CZCGYCYCuXCWCWCWCWCYWCTWC{WC}WCWCWCXC@JXCXC0YC@JYCYCZCZCYC@ ZCp\CZCZC;ZC0[C[C@s[C@![C@x[C\CZC^[CZC@ZCZCZC@8ZC[C\C\CEZC+ZCZC{ZCYZCYC ZC;ZC[C[C\Cn\C@[C5[CZC@ZC@ZC@ZCG[C}ZC@ZC@!ZC@3ZC@YCnYC@XCXCYC@YC@ZC.ZCZC0ZCYCYC@XCXCXC@aXC@XCXC@XCXCYCYCRZCYCXCXCXCWCWCGWCiWCRWCVCVC@WCWCWC^XC.XCXCXCYCYC;ZC5[CZCWZC\C@![C5ZCYCZCZC.[C[CG[C\C[C[C[C[C)[C@OZCZC[C[C^]C@[CYC}ZC@ZCZCZCYCZC[C#\C[C\C[C[C@x[CZCZCZC@[CZCZC@ZCYC@YCuYC@XCYCZC@ZCZC[C[C@ZCYCRYC YCXC;XCXCXCXCYXCXC@ YCLYCYC@JYC@3YCXC5XCEWC@ WC@aWCWCVCVCWC@WCWCWCWC@3XC@!XC@XCXC@aYC@ZC}[C[C@YC\C@[CYCWYCYCYCZC@ZC@O[CL\C[C@![C5[C@[CuZCZCZC@[C[C{]C@!]CZCYZC@[C[CZC@8ZCZC=\C \C\C@[C@[C;[C@8[C[CZC[C#[C=[CZCYCYCYCYC@JYCYCZCcZCZCT[Cn[C@ZC@8ZC@xYC@XCXCWCWC@XCXCXCXC@XC YC@XC@3YCuXCEXCWCWCpWC@aWC0WCWCVCVCWC@xWCWCWCWCpXC@XC@ YC@JYCiZC@[C\CZC\C@!\C@YCXCYC@ZC@8ZC@ZC@a[C@[C[C@\[CZCE[C.[CZC[C\Cn[C\C]C \CZCZC.[Ci[C@ ZCZCn\C)\C@x\C[CY[C[C[C.[CW[CR[Ci[CZCZCZCYCWYC@YCYC^ZC+[C}ZCE[C[C@s[CZC)ZCWYCXCXCXCXCXCWC@sXCXCXCXCkXCXCXCLXCWCWC#WCWC@aWC@3WC@VC@3VCVCWC@WCXCWC&XCfXCXCYC{YC@ZC+\C^[Ck^C[CGYCGYCEYCYCYCZC[C\C[C[C&[C@J[C[C+[CL[C[C@[C\C&]C#]CE[CZC@[C[CZCZCB\C=\C@8\CW[C[C[C[CW[C[C[C=[C[CYCYCYC+YCYCGZCZCYZC [CR\CT\C[C@ZC=ZCTYC@YCiXCWCBXCXC;XC@WC}XCXCXCXCXCXC@!XCWCWCuWCVC@VC@\WCVCVCVCWC@WCnWC@WC@XC@xXC YCXC@OYC0ZC0[C[C+bCT[C@YCYCXCYCYCZCZC[Cn[CZCL[C[C[C[C@ZC[C@[C@[C&]C@!]CB\C[C@[C[C@[C@ [C&\C5\C@[C&[C[C@[CL[C&[C@[C@[CZCZC@sYCTYC=YCYCYCZCZCZC@\[CY]C#\Ck[CZC@YC@OYC@XCXCWCRXC)XC@WCkXCcXCLXC@XC@OXCXCuXCWCWCWC@VC5WC@VCVCVCVCVCVC0WCWCWC@3XC@XCXCXC@XCYC@YC[CdC]CXCXCXCRYC}YC&ZCYC[C}[CZC@ZC@!ZCZC[C0[C[C\CT\C@ ]C]C@\C@![C[C[C\C@[C[C[C@[C5[CL[C@\[C@ZC[C[C0[CZCYCYC@YC5YCYCYCZC@![C@ZC@\CR]C0\C&[CZC@YCGYCXCXCXC5XC XCBXC&XCXCXC@sXC5XCXC@XCXCWC@OWCTWCEWCVC;WC5WCVCfVCLVCVCVCWC+XCXCXC@sXCYC0YCYCZCcC^C@YCTXC YC YC@aYCcYC5ZC@J[C0\CZC@[CZCZC[C=[C@[C@[C@\Cp\C)]C\C\C}[C[C\C\C[C[C^[C#[C[C@[C[C0\C@[C@ZC&ZCZCYCYC@YCYCTZCZCZC@s[C^]C]C@[CZCZCYC YC@XC@XC^XC@XCWCXCXC@aXC^XCXC@aXC@WC@sXCWC@WCRWCnWCGWCWWCVCVCfVC@WC{VCVC)WC^WC@WCXCYCXC@XC@3YCXCYC@a^C^CfYC@XCXCXC)YCYC@OZCZC[C@ZCZC+[CEZC [C[CT[C[C@\C@J\C\C\Cn]C[Cf\C[C@a]C@[C@s[C[C[C\Cp[C[C[Cp[C5ZC ZC@YC@YC@aYCYCYC@xZC@ [CZC[CE]C\C [CZCBZC@YC@YCXCXCXC@ XC@\XC+XCWC@WCXCpXC@ XCEXCnXCWCpWCLWCWCVC;WC#WC5WC#VC@xVC@aVCBVCVCWCWCXCYCkYCYCXC@XCWYC[C+\C5YC@YC@XCXC@aYCYCYCZC@J[C[CZC&[C}ZC@ZC@!\C&[C[C\Cn\C\C]C]C@\CL\Ck\C]C[C[C&[C[Ck[C)[C@[C}[CZCYC@sYC@aYCYCYC&ZCLZC+[CT[C[C@\Cn\C[CZC@ZC@8ZCYCYCXC@XCWCWCWCWCWCWC{XC+XCWCWCXCWCRWCWC WC@8WC@VCWCVCVCGVC.VC&VC@sVC;WC{WC@8XCXC@YCLYCXC=YC;YCYCkZCXC)YCXCYCXCYCZCZCZCZCRZCcZC@ZCZC[C[C[C.\CR\C@x\C;]C5]C@s]Cn\C\C@\C[C[Cu[C[C[C[C@[CZCiZCWYCYYCYC@\YCYC@!ZCZCZC;[C@x[C\C0[CZCZCGZCYC{YC@XC@XC@aXCuXCWCWCWCWCWC@aXC;XCWCWC@WC@WC@xWCWCWC@VCVCVCVCiVCVC=VC@JVC@VC{VCLWCWCXCGYCYCYCLYCXCXC+YCXCYXCYCXC{YCiYC;ZC@ZCWZC@ZC@ZCZC+[C@ZC[CB[CW[C[C@a\C@ \C5]C@\]C^C\Cp\C\C[C{[C[C@[Cf[C[C@![C}ZC@ZCkYCYC@3YCpYC}YC^ZCZCc[C;[C@x[Cu[C5ZCZC@ZC@3ZC@YC@YCXCcXC@8XC@!XC;XCWCWCWCWC@WC@XCWCWCWCWC@8WC+WCWC5WCBWC+WCVC@WCWVCfVC@!VCEVCVC@WC@WCXCGYC+ZCYCYCXCXCXCXC0XCXC&YCfYCYCYCZCBZCuZC@ZC@YC[Cu[CZC.[CW[Cn[C@!\C@s\C ]C@]CB^C]C ]C@\Cc[C@[CY[C[C@ZCp[C@ZCYCTYCYC{YCYCYC@YCZCZC@[C@3[CZCuZC0ZC&ZCYCYCYC@YC@\YCXCEXC@WCXC@WCWC@XC@WCXC@ XCWC@WCWCWC@\WC@WC+WCWC)WCVC5WCVC@OVCUC@VC@VC@VC@VCWCEXCkYC@ZCYCYC@YCXCWYCXCWC&XC@XCuYC;YCYCZC)ZC@\ZC@YCYCZC[C=[CZC{[C)[C[C\C@3\C]C]C^C@]C]C[C@[CL[CZCR[CZC{ZCYC@\YCkYCYC@ YCYC#ZCZC[C@[C[CZCZC@YCYCYCYC@xYCYCXCXC@8XC@8XCWCWCWCXC@aXC#XCWC#XCWCWCWCWC@WCYWC@JWCWCWCWC@aWCVCVC VC@VCVCiVCWC XCGYC@ZCZCGZCYCYC@3YC@XC@WCXCXCYCYCYCZCYC@ZC@8ZCYCZCE\C=\CZC[Cn[C=[C@ \C;\C@\C]C^CW^C{]C[Ci[CZCZC@[CZCYCuYC@sYC@YCpYC@aYC@YCZCZCE[Ci[Ci[C@ZCYCYC@aYC@OYC}YCiYC@YCXCfXCXCkWC+XCXCWC@WCWCWCWC)XCWCWC@WC{WCWCWCXCWCWC+WCfWCVCVC@xVCUCVCnVC)WCWCXCZCZC@ZC@xZCYC@YCYC@WCWCXC^XC@YCYC@YC@3ZCfZC{ZCYC@JZC@!\C&]C[C[C[CT[C[C=\C \Cp]C@ ^C^C@^Cf[CL[C@ZC@ZCiZC&ZCYCnYCYCiYCYCnYCYCZC+[C@[CL[CZCYCYCcYC0YC@\YC@JYCuYCXCXC@XC@JXC@WCWCWC@WCWC@!XCWC@WC@WC5XCWCWCWCWCWCXC@aXC@WCWC@sWCVC@ WCVCVC@OVC@VC@VCWCXCYC@[CR[CZC@8ZC{ZC@ZCWXCWCWCWXCXCYCYCZC^ZC5ZC@ZC.ZC[C@]C#\CZC[C@x[C@\C \CE\C\CT]C^C^C[C[CZCYZC0ZCYCYC5YC@sYCYCYC@YCZC@ZC0[C[C[CZC@YC@\YCYC@8YC@OYCXC)YCXCXCRXCWCWC}XC=XC5XCXCWCWC)XC)XC&XC@OXCWC5XCWCWXC0XC@XC&XC@XCWC}WC&WC@VCVCVCVCVC@WCXCYCZC[C0[CZC@ZCZC@XCLWC@aWC@WC@XC0YC@ZCZC;ZC@ZCLZC5ZC@x[C@O]C@x]CE[Cp[Ci[C[C[C@\Cp\C.]CE^CY_C[CZCZCZCYZCYCYC@sYCYCEYCYCYCZC@xZC@[CZCYZC@sYC^YCpYCTYC@!YC@YCXCXCXCXC;XC@XC@XCRXCXC@JXCXCWCcXCfXC@XCcXCXCnXC@XC;XCXCXCXCXC0YCWC@WC@8WCVCVC}VCVCVC@WC)XCXC@ZC.[C[C@ZCBZCZCTYCWC@aWCWCWCXC^YCYZC@ZC[CZC@3ZC#[C\C@8]C\C[C@[C;[C}[C[CE\C\C#]C^CZC@xZC@sZCYC@OZCYCfYC@YC}YCYC@YCYCYCZCZCiZCYCYCiYCXCXCXC^XCcXCXC@XCXC@3XCnXCnXC@3XC@XCWXCuXCXCnXCXCXCpXCXCRXCXC@\XCuXC@xXCkYCYCcYCXCkXCWCfWC WC VC@VC@3WC@!WC@xWCXCYC@ZC@3\C[CZCZC@YCWCWCWCXCXCYCYCZC[CZC}ZC@ZC@s\C\C^\C&[C@![C[C[C[C@O\CL\CG]C]CZC@\ZCZC0ZCYCYCpYC@JYC@sYCYC@YCnZC@ZCZCZC@!ZC@YC@8YC@!YC@3YCXCXCkXCXCXCXCXC{XC;XC@OXC@XCXC@XCnXC@XC@JYCLYC@XCXCXC@\XCYCfXCXCXC#YC.ZCTZCnYC@XCWCWCVCVCVCWCWCWCXCXC5ZCT\C\Ci[CWZCYC0XC@WC@ XC XC@8XCXCYCYC^[C@[C@ZCZCk\Ci\C}\C@\[CZC;[C[C[C\CW\C\C]CuZCZC.ZCZCcYC@JYC5YC@8YCLYCYCZC@YCYCYC@OZC@YCXC@aYCXCXC@XCTXCWXCYCXCBYCnXCiXC{XC@XC@8YC#YC@XCYC@aYC@YCYCXC@XC@ YC@sXC@XCiXCXCXCYC@ZCZC)ZC@3YC^XCWCWCVCVCVCWCWCWC+XC=YCk\C]CL\CZCZCXC@\XCWCWCWC}XC@xYC=ZCZC@ [C0[C[C[C\CB\C^[C[C[C[C@[C@\\CB\C\C]CEZC+ZCYCYCYCEYCBYCEYCEYCYCYCYCYCYC@YC@YCYC@XCXC@sXCXCXC{XCXCXCXC=XCLXC@XC@XC@3YCpYCiYCuYCYCYCYC@YCXC@sXCXCXCLXCXCXCYCZC@\[C@aZCYCXCcXCWC@VC=VC}VCVCVCWC;XCXC[C@]C\CZC@YCXCWCWC@WCWC#XC@XC@YC@YCZCi[C5[C+[C@\C[C[C@O[CZC@[CG[C\C[C\C@a]CZC&ZC ZCYCYC)YCXC)YCYC@xYC@YCYCYCYCYCYYC+YCXCXCXC&XCXC@JXCXCXC@xXCXCXCYC)YCYCYCYCZC@!ZCYC@ZCTYCXCXC&XC)XC0XC@!XCXCYCYC+[C[CYCXCXCWCVC@!VC@aVCVCVCWCWC@XCZCp]C^C[C0ZC@3YC@OXCWCWC@\WCWCXC@!YC0ZCZCL[C[Cc[C\C@ \C[C[C[C5[C[C[C@[C@\C@\C@sZCZC)ZC^YCuYCXC@XCGYCYCYCYCYC@YC@ZCYC;YC5YC@XC@XCLXCXC@XCXCXCWXCXCXC@ YCYCpYC5YC@YCYCZC@ZCYCZCYCXC@8XC0XCWCWC@XCXC@XCZC@ZC@\C=ZC}YCXCLXCLWCVCVCVCVCWCWCXC@YCn\C]C@[CYC=YCXC@WCWC@WCWC=XC+YCYC@!ZCB[C@[CY[C\C=\CE[C[C@O[C@[C@[C[C}[C[CY\C=ZC@OZC@YC}YCkYCXC&YC}YCYCYCcYCYCYCYCYCYYCXCYXCnXCWXC@XCXC@sXC@aXC@aXC;XCYCYCRYCYCYCYCZC)ZC@!ZC5ZC@ZC@YCXCBXCXCXCWC@WC@OXCYCYC+[C\CZCkZCYCWXCWCuVC@VCfVCVC@8WCcWCWCYCT[C\C[CYCYCXCXCXCWC@WC@WCXC@XCYC}ZCW[C@[C@\\C\C@x[CZCY[C@J[C[C[C[C@[CL\CYCYCBYCpYC@XCXCYC0YCZCBYCYCYCYC@YC;YCXCXC@aXCXC XCXCXCXCXC@YCXC@aYC@YCXCYYC@ YCGYC;ZC@ZCZCYCYC@XC@XC^XCWCWCWCWCXCXCYC[C@8]C[Cn[CZC@XC^WCVCTVCEVCVCVCWCWCXCYC@[C@[C@aZC;YCXCXC@WC@WCTWCWCXCXC@xYCEZC@ZC[C[C@\C[C&[C5[Cf[C@[C\C@[C[C@[CZCYC@YCiYC@XCXC{YCYCYC&YC)YCYCYC@ZCYC@XCXC@3XCXCWC@XCXCXC@XC@ YC@XCYCXCXCXCYCkYCYCYCYCYCYCXCXCEXCWCWCLWCWCWC@sXC@YCZC\C[C[CYCXCWCEWCVCVCkVCVCVC@WC&XCcYC@xZC@ZC@YCYC@XC=XCWCWCWC{WCWCiXC@XCYCuZC;[C[C]C@[C@ZC[C^[C[C@[C[C[C[CYC@YCLYCYCXCLYCLYCYC@OYC^YCLYC&YC@xYCYCEYCXCkXC.XC.XCXC@XCXCXCYC@XCXCYCXCXC}XCXC{YC5YC;ZCcYC@ZCXCXCXCXC@WCkWCWC@xWCWCWCXCBZC@x[C[CE\C5ZCXC@XCTWCVC@VC@VC{VC{VCVC@WCfXC@YC@YCYCYC5XC#XCWCWC5WC@aWCiWCWC^XCYC0ZC@ZC@[C\Cp\C[CZC0[CR[C@J[C[C@[C}[CYC{YCLYCXC)YCYC@YC@OYCXC@XCuYC{YC@YCGYCXCGXCWXCBXC.XCXC0YC)YCXCYC@XCXCXC.XCiXCXCXCXC@XCBYC@YC@aYC{YCXCXCXCWCWC@3WCcWC{WCXCXC@YCkZC@[C@[CuZCXC@XCTWCVCVC@VC@VC)VCkVCRWCXCXC@YC@\YCYCYCWCWCnWC@JWC WC@WCWC5XCXCuYCYC@ZC@[Cp\C[CZC[C[C@ZC@\C[C[CYCTYCXC+YC+YC=YCRYCTYC=YCYCfYCTYC@YC@XC;XCuXC@3XC@WCYCXC@XCXCYCYCXC;XC@WC@WCXCXCXCXC#YCYCYC@YCiYC@YCXCkXCWCWC@8WCWCWCcWC@XCXCYC+[CZCYCXC=XCWC@VC@VCWVC@VCVC0VCWWCWC@3XC.XCfXCXC@OXCWCWCWCVCWCWCWCWC@8XCXCYCTZCc[C@\C[CZCZCW[Cc[C@[C@[C@ \CYC5YCYC@JYC@YCYC@YCYCXCEYCYC@!YC@3YCGXCEXC+XCXCXC@sYCXCXC YCXCXCXCnXCWC&XC@8XC@XC@XC@XCYC@YCYCZC@YC@JYCXC@aXC@WCWCWWCVC^WC0WCWC^XCYC@ZC@ZC@aYCXC@XC@OWCVCVCVCVCVCVC{VCRWCWCWCWCXCEXC@xWCWCRWC@VC@VC#WCVC@sWCpWCuXCYC{YCZC[C[CZCWZC [CW[CR[C0\C[CXCXC@XC@3YCYCYCnYCXC@XCYC@XC@ YC@XC@\XCWXCXC;XCGYCYCYYCYC@XCXCWXCXCBXCWCcXCXC@YC@JYCYCYCZCZCTZCZCGYC@XC@8XCXCWCWC@\WC@JWCBWC}WC@WCXCZCYCuYC@8XCXC@WCVCVC^VC^VC^VC&VC{VCWCkWCiWCWC@WCWC@WC@OWCVCVC@VCVCVC@JWCWC XCXC;YCZCY[C[C@[CkZC5ZC[C{[C[C\CXCiXCYCYC@YC@YCYC5YC@JYCYC@XC@XC{XC^XCEXCXCXCYC@JYCXCXC#YCXCEXCYXC0XCWC@XC@xXCXC@YCZCZCZC;[Cc[CnZCuYC@XC@xXCXC@!XCnWCWCLWCWCWCWC@JXC0YCBYC}XC@xXCWCcWCVCVC@VC@VCVC=VCTVCVCYWCiWCVC@WC@WC@WC@WCTWCEWC@8VCVCVC@aWCWCWC@XCnXC@YC#ZCT[C@O[CYZCZCY[Ci[C[C+\CYCXCYC@JYCLYC@3YCXCXC@ YCXC@YCXCfXCGXC0XCXC5YCYC YCYCTYCXCXC.XCXC@XCXC YCcXCYC@YCEZC@8[CB[C@ \C@[CEZC5YCXCGYCYCWCXCWCWCWCWC}WCWCuXCXC}XCWC@WC&WCVCUC@JVC@sVCuVCfVC}VCVCVCWCWC@8WCWC@OWC=WCWCYWC@VCkVCVCVCGWCiWCXCBXCXC@!ZCZCZCZC#ZCZCZC=[C[CXCXC YC@xYC=YCXCXCXCXC@XC@XCXCXCXC@!XCYC{YC;YCXCLYCYCXCXCXCWC5XCpXCkXC@YC@8YC{YCB[C@J\C\C\C@a\CZC;YC@8YC@!YCYC@xXCXCWC@WC@WCWCWWCiWCWC#XC0XCXC@WCWCVCUCVCVC{VCVCWVC@sVCVC@VCWCVCWCTWCWWCYWC@3WC@VCEVCpVCVCVC.WCcWCXCXCYC^ZCZCZC=ZC@\ZC[Cp[C[C@XCpYCYC0YC@XCXC@YCYCXCXC@\XC@XC^XCBXCXC@sYC0YCXCXC+YC&YC@XCXC)XCXCiXC{XCXCXCkYCZC[C@]CW]C@]C\CZCYYCXCYC@xYC)YCXCcXCXC@8XCRWC@WC@JWC@WCWCWCWC@\WCVCVCUCUC@VCGVC5VC@8VC@VCVCWVCVC@aVCVCVC@VC#WCWCTWCfVC@OVCVCWCLWCnWCkWC@OXC@XCYC@xZCZCGZCRZCZC}[CZCXCYC0YCpYC5YCYCYCYCXC^XC XC@xXCXCXC{YC@xYCGYCXC@\YCYC=YC@XC YCXCBXCBXC@YCXC@XCYYCZC[C]C^C@8^C]CZCGYCpYC)ZCYCYCXCTXCXCfXCWC{WCVC&WC#WCnWC)WC}VCVC.VCUCUCUC@!VC@VCUCBVCUC@VCVC@OVCRVC@VCVC=WCWCWC}VC+VCVC@VC=WC@VCWCWCTXCGYCYCZC@aZCkZCLZC=[C0[CYC;YC@JYC@xYCYCXC@XCiXC}XC@OXC=XCTXCXC@YCWYC@YCXCcYC@ ZCYCnYCYCYCYCXC@!XCXC#YCuYC@YCZC\C@3_CT_CL_C]C[C@ ZCYCZC{ZC@3YC@YCXCXCXCWCWCWCVCVC@VC@WCYVC0VCGVC}UCWUCUCUCUCUC@UCUCUC@UCVC.VC@VCGVCWCWC@WCTWC@VCVCVCWCVC#WC@WCEXC@XC@\YCZCYCGZC)ZCZC@8[C}YC;YC@JYC#YCXCYCXC}XCXCXC=XCXC}XCnYCYCTYCcYCYCZCZCYCZC{YCTYCXCXCYCLYCYCZC[C@J]C@J_C}_CG`C#_C[CZC@ZC{[CfZCYC@YCXC@XCWC@XCWC+WCVCVCVC5VCVCUCUCUCUCUCUCGUC@JUC;UCUCUC@UCVCVCUCVC@VCWCXCWCVCVCVCWCVC@8WC@WC@WC{XCXC@sYCZCZCYCfZC@a[C@YCuYCYC@XC@YCYCXCXCfXCLXCcXC@XC@YC;ZCYC@YCYCZC[CTZCZCYZCYCRYCXCYC;YC@YCZCZC[C]CE_C{_CcaC_Cu\C=[CZC@[C@ZCYCYC@xYCXC+XC;XCWCRWCVCWVCVC@3VCVC.VC@UCUCUC=UCTUC0UCUC@8UC)UC&UC^UCUCUCUCUCGVCWCXCXC@OWC@VC@VC+WC@JWCWC@WC@WCcXCXCGYC@YCYC@YC@8ZCZCuYCYC.YC@YC@3YCXC@XCXC@XCXCXCYYCYC@YC@xYC@aYCiZC@a[C[C@ZCZCZCYC@aYCXC&YC^YCYCZC[C\C]C_C@8_CEbC aC]CE\C\CB\CZC@aZCYCYCXCXC@XCWCLWC@WC@VCGVCBVC&VC=VCUCVCVC@8UC;UCTCTC@ UC@UC@3UCUCiUCUCUCUCkVCVCWCXC.XCWCVCVCYWCYWCWCkWC@WCXCXC@!YCYCZCGZCZCYC^YCYYCYC@!YC@XCXCuXCuXCXCYCYCZCYC@YCYCc[C@\\C@\\C@[C[CZCEZC@xYCYC@YC0ZCZC@\C\C.]C]C@^C@x_CbC0bC@x^C]C+]C\C[CYC@ZCZC@OYCXCXC@ XC@8WCVCfVC VCEVCRVCUCkVC@UCUCUCTCUCTC@TC@OUC@TCYUC.UCUCYUCUCWVCVCBWCnXCYXCWCWCVC@\WCEWCWCWC;WCXCXC@XCYC@YCZC@xZCcYCXCYYCGYC@XC@aXCXCXCYCYCEYCYCkZC@ZCYCpZC@J\C\C\C[C[CWZCZCYCYC@JZCZC@x[C\C]C]C _C_C@ `CbC@bC`C_C@x^C\C)\CZC+ZCZCYC^YC@\YCXC@OWCWCVC@aVCVC@VCTVCUCEVC@UCUCUCUC.UC{TCTCTC@TCUCUC0UC@UCVCVCVCpXCXCXCWCfWCWCWCWCnWC@WCXCpXCXC+YCYCZC{ZC@ YC@XCTYCYC@XC@\XCXCXCYCYCYCZC{ZCZC@YC[C\C;]C\C[CZCYCZCZC.ZC)[C;[CW\C\C@]C5^C=`C^`C`CaC@3aCbC_C;`C@]C]C[C[CZC@YCRZCYCEXCWC@!WC@VCVCVC@8VC;VCRVCiVC@UCUCuUCTCTC@TCTC@TCTC)UC=UCUCUCVCVCWCWCYC@JYC@xXC@WCWCWCWCWC@WC@XCWCXCXCYCZC@ZC@JYCYYCYCXCLXCXCXCXCXCRYC@ZCfZCZCYCZC@!\C]C{]C\Cp[C[C@ZCZCZCZC[C@ \C\C\Cc]C_C`CnaC.`C`CaCcC_CbC_C^C@J]C\CZCZC@ZCYCYCWC@WCVCVCVCcVC@VC)VCTVC0VC.VC@UCTC)UC@TCTCTCTCRUC@UCTUCUC)VCVCVCWC;YCYCYCEXCRXC@OXCWCWCWCWCXC@XCXCXCYC@\ZCXC@YCYC@XCRXC@XC@XCXCYCYC}ZCZCkZC@OZC[C@3]C]Ck]C\C@[CE[C[C[CZC[C\C@O\C\C\C}]C@J_CaC@saC_Ck`C@aCcC_CcCbC^`C@3^C\C[C[CZC+ZC.YC@YC@WC@WCVC+WCVCTVCVCWCVC@ VCRUC.UC@UC UCTC@TCTCUCYUC@\UC@sUC@UC^VCWC@WCXC5ZCZCYCXCXCXCWCWC@WC@WC@OXCXC@3YC.YCZC.YCfYC@XCkXCXC#YC@8YCcYC@OYC@YC0ZCZC@ ZCZC0\C@O]C^]C@]C\C[C@[CE[C@[C@ [CE\C]C\C{\C@3]Cp]C)_CEaC`C._C`C@bCbC@s`C;eCcCEbC_C^Ci\CY\C@[CYCYCYC{XCWC@VC@\WCiWCWC.WCVC@VC{VCUCUCuUCTCUCTCTC5UC@!UC@aUC@OUCUC{VCVCWC@XCYC@xZC@YCYCBYC+YCGXCnWCWCWCXC@XC@OYC@aYCYCYCkYCXCXC@XC=YCRYCYC@ZC@JZC5ZC;ZCZC@[C\CT]Cc]C@]C\C{\C \C@[C [C[C\C.]Cp\C\C@a]C@]C^C^aC_C^C@aCfbC`C`CeCdCGeC+aC_C@8^C]C@s[C@aZCZCZC@xYCWC@WC@WCXCXCGWCuWCVCVC.VCUCfUC.UCUCuTCTCTCfUCiUCUCVCVCVCEWCXCpYCZCuZCYCYCpYCYCWCWCXC@WCXCXC@YCLYCkYCXCTXCXCXC@YC@YCYCYCYZC0ZC^ZCZC@ \C]C]C]C]C@!]Cc\CG\C\Cp[CB\C]C\C\Cf\CG]Cp]C_CnaC _C^CaC;bC@_C`C@bC+dC@agCbC`C_C@8^Cn[C[C@!\CZC@YCWC@XCXCWC@OXCWCpWC^WC@ WCVCUC@UC@UC.UCTCTCTCTC@UCUCUCUCVC@WCWCnYCcZCpZCYCkYCYCYCXC@WC@XCXC0XC@XCXCYYCXC@XC5XCuXCGYCYCYCYCYC@OZC@ZCZC@O[C}\C]C]Cc^C&^C]Cn\C\C\C[C@\C@\C\CL\C]Ci]C]C_CfaC@ ^C^C`CaC^C_C`C@JdC@hC@dC+cC#bC^C@ \C\C\C[CZCXCfXC^XCXCXC@3XC@WCkWC+WCVC@8VCUCUCTC5UC@TCTC^TCTCUCUCVCUCLWC@WCXCYC=ZCYC@ ZCuYC@ ZC@XCWCWC@WCRXCXCXC#YCBYCXC)XCXCYCYC@YC@3ZCpZCEZCZC[C[C+]C]C@x]C]CB^C@s]C@8\C\C\C}\C\C\CY\C\C@ ]C]C]C@_Cu`Cn]C^C@`C_C^C^Cc_C@8eC@ajC^eCdCccC_C@\C]C=^C@3\CkZCYCYXCXCYCXC;XCWC^WCVCVCVC@UC{UCkUCUCTC@TCTCTC@OUCUCUCVCVCTWCXCkYC@YCfZCYCYCYCXC@8XC@WCWCGXC@JXCXCXCXC@XCXC=YCYCcYC@YC5ZCYCZC+[C[C\CW]C\C@]C^C@]C@\C&\Cp\C[CW\C\C\C@\\C\C@!]CB^Ck^C_C^CE]C@^C`C@_C@!`C@_C@_C@eCjCfCWdC@xcC`Cu]C&_Cu_C@s\C@ZC@\YCpXCXCXC@3YC{XCWC@WC@!WCVCVCUCTUCnUCTCTCTC}TCTCYTC@UCUCUCVC.WCWCYCYC)ZCYCYCYC{YC@OXCWCWC@WC#XCXCXCXCYXCXC@YC ZC@YC@\ZCZCYCZC[C=\C@s]C]C\C@]C0^C@]C@\C@\C\C[Ci\C\C\C)]C;]C.^Ck^C^C^C@a]C]C_C@aC`C@`C@J`C`CgC@jCdCbCaCY_C@]C@ `Cu_C@\CZCYCXCXCYC@ YCRXCWCWC WCVCVC@UC@UCUCTCTCTCTCTCTCTCUCUCVCVCWCYCZCYCYCWYCYC@YC@XCWCWCWC@WCBXC@!XC0XCkXC5YC@YC5ZC@YCEZCGZCZC@ \C@!\C\C]Ci]C{]C@ ^C.^C@\]C@ ]C\C\C&\C=\C\C;]C@]C^C^C]C)^C@3]C@ ]C]C@`CTaCaCaC+aCLbC@!hChCbCTaC=_C@s^C^C`C@3_C\C@O[CZCYC YCYC0YC;XCWC@3WCVC@ WCVCVC@UCUC@UC#UCUC5UC@!UCTCTCUCUC@UCVC@WCXCZCYCYCTYCYC@YCGYC@8XCWC0WCWC@WC@XC@XCYC@xYC@YCYC@sZC@\ZCZC[C@\C\C]C@]C]C]C]C^C@8]C@8]C\C\C\C\C)]C]C]C ^C@8]C5]C\C@\C\CT^C@`CnaC@bC}bCaCYdC@ iCfC@aC=_Cf]C\C@]C@_C@8_C\C+[CYCYC;YC@\YC@ YCXCXCuWC@aWC@8WCVCVCLVCVCUC{UC#UCcUC;UCTCGTC@TCpUC@UC@sVCRWCXCZCZCnYCBYCYYCRYCYCXCWC@sWCuWCWC@WCXCfYCZC@YCYCZCZC.[C;\C@]C]CE^C]C]C]C ^C0^C]C5]Cp]C\C\C\C\C=]CT]C\C\C@\C@O\C\C@\C^Cf`CkaCdCbCWaC@eC@hCTfC bC.^C+\C\C@a]Cc_C^C@s\C=[CYC@YC@8YC@YC@XCWCWC^WC@3WC5WC;WCVC@!VC&VCUCUC@JUCuUC@aUCTCTCGTCUCUC@\VC;WC@WCZC@ZCZCYCBYC@YCYC@XCXCWCEWCLWCWCXC@sYC)ZCZCZC@8[C [C[C@]C@]C ^C^C@O^C]C.^C]C@^C;^C]C]C\C@[C\C\C@\C@\C@a\C@ \C@[C@[C@[C^\C]C@_CaCdCbC`CifCEhCgCbC+]C[C[CB]C@_C@ ^C\CZC@YC@!YCYYCXCXC@\XC@WCWCWCWC@3WC@VCVCVCUCUCUCUCUC@3UCTC@TCTCUCUC@VCWCYYC[CpZCYC@OYC@\YCYCXCLXCWCTWCEWCWCBYCYC0ZCZC[CW[C[C\C.^C^C^CE^C^]Cc^C@^C^^C_C^C]C@x\C\C[C\C\CY\C[C[Ck[C[C[C[C[CE]C_C&bCidC.aC^`C@eC@hC@iC@bC\C[C\C]C_Cn]C@\\CZCZCYCLYCYC@OXCWCWCXCXC@WC@OWCWCVCRVC#VC@3VC0VC@aUCUC{UCTC@TC@TCTCUCWVCWC@XCL[C@![CYCYC@xYC@sYCYCWXC@sWCVC@VCTWC#YCZC@ZC@O[Cf[C[C\C]C_Cn_C@^C]C@x^C^Ck^C_CW`C@\_C]CE\C[C@[C@[C[C[CW[C)[C#[CL[CL[C@[C[C&]C@_C@aC)cC`C_C=cC@gCkjCpaC\CL\C@3]C^Cn_C@O]C[CZCYC.ZCYC)YCXCWC XCcXC@XCWCWCWCVCVCVC=VC&VCUCUCUC@ UCTCTCuTCYUCUC0WC5XCYCk[C@\ZC@YC0YCYCWYC5YCXCWCWCVCYCpZCZCi[C[C[CW]CL_C@_C_C@!_C@_C@8_C0_CW_C`C@aC^C\C\C\C[C)\C[C[Cp[C@[CZCZCZC+[Ci[C\Cf_C`CB`C@a_C^CaCfC@xiC@`C\C@s]CG^C_C@^C\C[CZC&ZCYC@YCBYC@XCWC)XCXC+XC+XCWC@WCTWC@VCVCVCVC.VCUC@UCTCUC@sTCTC5UCUC@JWCWCYC[CZCcZC@YCYCYCYCXC@WC@xWC#WC#ZC@ZC)[C[C[C\C=^C@_C`C_C@_C_C@ `C_C@`CaCkaC]C\C@J\CY\C[C[C[C@\[C[C@ZCZCZC)[C.[C[C@s\C]Ci^CL_Ck^C]C_C@!eC^gC_Ci^C^C@O`C@_C@^C]C[CZC)ZCYCYCYCXC#XCRXCXCXCWC0XCWCWWCWCWCWCVC.VC@UC@UCTCTC@JTCfTCTCUCRVCWC@\XCYC@ [C@xZC@YCYCYCYC@XC@3XC@WCVCZCZC@[C\C@3\Ci]Cn_CT`Ci`C_Cf`Ck`Ck`C@3aCbC@\cC`C+]C@\\Ck\C{\C@[C@[C[C+[C[CZCZCfZCZCZC@[C@\[C\C\C@]C]C]C^C@cCceC@_C_C`CaCW`CL^C&]CZCZC@JZC@YCYC&YC)YCnXCXC@aXCuXC@OXC)XCXCWC@WC@WC@WC0WCcVCVCUCUC@TCiTCTCUCRUC@sVC@xWCiXC@!YCZCZCYC@8ZCYC@3ZCXC@XCWCEWCZC[C[C@8\C\C@^Cn`CaC@\`C`CaCaC+aCbCcC@cC^C]C\C@J\C\C[C[C[Cp[CZCZCZCnZCEZCZCZCZCY[C@[C@[C@]C\C]C@bCccC_C`CaCaC@`C@!_C]C@[CZC{ZC@ ZC.ZCnYC@XCXC=XCkXC+XCBXC0XC@3XCWCWCWC}WC;WCVCVCVCUCTUC@TCTC@8UCUC=VCWC@ XCXCYC@ZC@ZCZCpZCRZC@ZC@XCWXCTWCZC[C\C0\C]C@`C@aaC`C`CkbCbC@sbCcCdC@eCaC]CY\C\Ck\C[CG\C@[CT[C[C[CZC}ZCRZCfZC+ZCZCLZCZCZC@[CY\C\C{]C@saCaC^C aC{aCaCk`C_C@ ^C[C@8ZC@JZCYCYCcYCRYCYCXC@aXC@XC@OXC@XC}XCXCWCWCWC@\WCGWC@ WCiVCVC@8UCTC@TC@TCTCUCVCnWCXCXCZC&[C@ZCRZC^ZCiZCYC5XCWCZCB\C\C\C@J^C`CEaC@`CbCcC@cCbC@dCGfC0fC_C@]C\C\CR\C[C[C@s[CL[C;[CZC@ZC@8ZC@YC@!ZC@ZC@OZCZC@ZC@ZCY[C\C@\C\Cf_C@s_C^C@`C`C@xaC@`C^C]C[C@\ZCWZCcZC@sZC@!YC@!YC@YCXCXCXCXC@aXC@XCWC@WCWCWCiWC.WCkWC0WC&VCpUCUCTC=UCLUC^UCcVCWC@WC@WC@\YC@ZCE[C@3[CZCZC+ZCXCfXC@[C@\C{\C]C`CaC`C@`CcC=eCdC@cC&fC@hCcC^C]C@\C@\C;\C{[C[C[C#[CZCZCRZC@8ZC@JZCYCYCYCEZCRZC5ZC.[C[CR\C\C]C]C{^C `C`C`C_C^C@3]C=[C+[CkZCZC@sZCYC YC@8YC{YCiYCXCXC@XCXC@XC@WCWCWCTWCWCWCWC@VCUCpUCUCRUCLUC^UC@8VCEVCfWC@!XC@XC@YCZC@s[CZC@ZCBZC@8YCXC@[CW\C\C^C@`CaC@`CbCkeC fCdCEeChCchC`C^C@O]C\C+\C\C[C@J[C@ZCZCZCZCZC@8ZC@YC}YC&ZC;ZCGZCiZC@8ZCY[CG[C[C@\C\C.]C]C^C_C@ _C_C@a]Cc\C@[CZCZC5[C@aZC5YC@YCXC{YCkYCXCYCGYCXCkXCXCEXCWCWCWCXCWC^WCVCUCTUC)UC;UCUCUCVCiWCRWCWCXC@sZC@[C[CZCEZCYCXC=\C@8\C]C@`CaCaCcaCdCfC;gC@seCfCkC0eC_C.^C\C@s\C5\C@[C[C)[CZCZCZC@ZC@3ZCBZCBZCYC0ZC@YCfZCZCZCZC)[C[C[C@\\C}\C{]C]C]Cn^CT^C\Cu[C[C@[C@\[C[CZCYCXCYYCYCuYCYCXC@YCiYC0YC YC@xXC@3XCWC@WC@3XC{WC}WCWC#VC@\UCpUCWUCTC@UC@OVC@ WC@WCWC@8XCkYC@[C@[C[C@ZC5ZCkYC@8\Cp\C@^C`CRaC`CbCpeC;gCfCeCiCkCbC_C]C\C@\\C@[C[CZCZCZC[C[C@ZCZCYCZCZC+ZCZCZCZC{ZC@ZC#[CY\C[C.\C[C#]CR]C]C]C]C\C[C[C[C&\C\C [C{YCfYCTYC.YCpYCYCpYCYC&YCYCYCYC)YCTXC.XC@WC@WC@WC+WCVCUCnUCUC{UCUCUCVCVCYWC@WCXC)ZC@\C[C{[C@3ZCiYCW\C]C@_CnaC`C`CcCLfC)hCfCBgC^mCpgC`C^Cc]C@\C\C\C@[C#[C@ZCZCZC [C@ZC@xZC@ ZC@3ZC@\ZC@YC^ZCZCcZCZCZCW[C[C#\C@a\C@\C\Cc\C\C\C@\C\C \Cp\C\C\C\C+[CZCYC@3YC@8YC&YC@YC@YCYCEYCYCZCZCYCXCuXC@8XCWCWC^WC WCVC@VCUCUCRUCUC}VC=VC@WCnWCuXC@XCZC5\C[CZCTZC\C^CaCaC5`CaCdCgCfhCfCiCmC@!cC_C@s^C}\C@8\C[C[CZCfZC@3ZCZC@ZC@ [CZC@!ZC@ZCEZCBZC@ ZC@\ZCTZC@ZCZCZC[C}[C[C@!\C[C\C@\C{\CB\C@\C\C\CY\C@\\C\C@O\C&[C&ZCYC@\YC YC#YC@YCYCiYCYCGYCuYCZCZC+YCXC XC@8XCWCWCpWCVCBVCUCUCcUCUCVC@VC5WCVCWC5XC{YC@[C[CB[C#ZC@x]C=_C}aC`C@`C@xbC@xeChChC}gCmC@hCaCG_C@]C\C&\C\CW[CZC@ZC@JZC@aZCcZCZC@ZC@8ZC@\ZCEZC0ZC@YC@sZCWZC@OZCZCZC[C@[C[CR[C[Cp\C#\C+\CB\CR\C@\CB]C@3\C\C\C[C)[CZCZC@sYC@8YCYCYC@YCYCYC@XCYC@ZC+ZCkYC5XCuXCWCnWCWC@sWC}WCVCWVCiVCUCUCUC WCVCVCWCWCXC@ZC[C@[CZCB^CY`C;aC`C+aC.cCWfC@3iCgCiCmCdCaC^C\C[C \C@ \C{[CL[C@aZCZCZCZCZC@ZCpZCBZC@ZCZC.ZCZC{ZCZCZCZC&[C[C@O[C@[C[CB\C@3\CL\C\C@\C\C\C+\C[C[C=[CZCZCYCWYC0YC@JYCGYC@YC;YCXC@sXCXC@XCTYC{YCXCXCXC@WCWCWC@WCVC@ WC@VCVCUC}UC5VC@VCVCWCWC@8XCYC[C[C[C_C5aC`C`C@bC@3dCpgC0hC@sgC@lCjCRcCc`C]C@\CG\C\C[C@ZC@ZCZCZCZCZCZCZCZC@ZC@aZCLZC@OZC@xZC@ZCZC@ZCZCZCp[C[C[C@J\C#\Ci\C0\C@ \C\C\C@\C[C[Cf[C@J[CZCnZC0ZCYC)YCXCYCYC@XCXCWXCXCnXC}XC@ YCXCXCXCWCXC@sXCTXCXCVCVCcVC0VC@UCVCVC@VCWCWCWC@8XCYZCT\C[C`C@JaCu`C@`CEbCpdChCfChC@lC@8fCaC_C@\C@\CE\C[C[CuZC@sZC.ZC@ZCZC}ZCZCZCZCuZC@ZC@JZC@ZCZCZC@[CZCZC[C0[C[C[C@ \C@a\C\C\C@[C[C[Cc\C@[Ci[CZCZC.[CZCZC@YCfYCXCXC^XC@YC@XCWXC@\XC.XC)XCcXCcXC{XCXCWXC@WC@ XCfXC)XCiWC=WC@ WCUCVCVCBVC@ WCVCkWC@3WCXC)YC@a[C5\C#aC@`C^`C@`CWbCeC@gC;fC@JjC@iCeC@8`C@^C\Cp\C[Cn[CE[C@JZC[CZCuZCZC@ZC@ZCZC{ZC^ZC[CZCZCZC=[C@![C[CW[Cn[C[C[C[C@[C5\C)\C[C[Cp[C[C[C[C[C[C[CZCZCBZC@YCYCXCXCXCXCXCXCXCWCWC#XCLXC@XC@XCXC@XCpXCXCXC XC&WCWCkVCUCTVC}VCVCWCVCWCWC@XC)ZCu\CnaC`C`C=aCcCfCeCfCRjCfCkcCu_C]C\Cf\C[C[C[CZC}ZCLZCZCZC[C@ZCZCZCZCZCZC=[C[C@s[Ck[C[CL[C;[C;[C[C[C[C\C@ \C[C[C@[C@ \C@[Cp[C@[CG[C=[CZC@ZC@OZCYC@\YC YC@XC{XCBXCXCuXCRXC@8XC@WCWC0XCpXC@sXC@XCWCiXCXC@XCWCWCiWC@VC@8VC VCuVCVC WC WC&WCWCWC@YCu[CEaC`C`CiaCcC@eC=dCgCchCeCaCT^CE]CW\C\C[C)[CZCZCkZC@xZCZCZC0[CZCZCB[CZC[C;[CT[C}[C#[C[C&[C@x[C[Cf[C{[C@3\C+\C\C[C[C[C[C[Cu[C@[C#[CZCZCZCcZC&ZCYC@\YC YC@!YCXCXCXC@aXC=XC#XCXC0XC@\XC@3XCuXC@XC{XCWCXC@XCXC@WCWC@!WC@xVC#VCVCWC@!WCVC=WCWWCWC=XC ZC@`C@ `C`CaCcCcCdC.gCGfCcC@_C]Cc\C0\C[Cp[C@[CZCZCZC@ZCk[C[C@ZC@3[CZC@[C[C)[Cf[C[C[C@ \CY[C[C{[C+[C[C[C@[C.\C@\C[C[C[C[C[C[C@a[C[CZCZCZCYC)ZCYC5YCXC#YCXCnXCXC@xXCXCWC@!XC@ XCWC@WC@aXCXCXCBXCXC@YCXCXCWCWCVC{VC;VCVCVCVCVCVC@WCWCYC`C_C@`CbC@dCbCdCfC@dCnaC^Cf]C\C&\C@[C@x[C@ZC@ZC@ZCZCZC[C@[C;[CZCZC;[C[C[C[C[C[C[C@[C[C[C[C[C[C[C@!\C;\C\C\C \C@[C[C[C@[C.[CZC@![CuZC0ZCZC@YCYCXCXCXC@XCXCXC@ XCWCWCWC)XCiXCkXCXC@XC@aXCTXCXC@JYC@XCXCWC@WCYVCVCVCVC0WC@VC@WCfWCWCXC`C@O`C@`C+bCbCaCdCdC@cC^C^C\C=\C[C[C@a[C@ZC@ZCZCZC@x[C0[C@s[CL[C@ZC#[C^[C0[C[C[C[C[C@[C[C[C\C\C[C[C;\C@ \C@[C[C[C\Ci\C\C@8\CR[C@[C@x[C@ZC[CWZC.ZC@ZC@xYCiYC@YCYCXCYCTXC0XCWCWCWC@XC&XCXCXCXCXCcXC YCYCXC@XCWC@WCVCVCWCVC=WCVCVC@WCWC@xXC_C_C@\`CaC`CaCWdCcC`Cf^C]C\C;\C@[C [C@ZCZCpZCZC[C@[C[C[C[C@ZC@ZCG[C[C#\C@\C@O\C\C\C[C[C@\C[C[Ci[C@\C.\C[C[C[C\C@\C@a\C@J\C@[C@O[C[C.[CnZCZCYCYC@aYCYCcYC=YC+YCXCXCWCWC@WC@xWC@!XC@8XC@xXC;XC@XCXCXC#XCYC}YC)XCWC@WCuWCVCVC;WCVCVCVCVCWCWCE`C`C@ aC`C@_CnbC{cCbC5^C@x]C\Cn\C[C[C[CZCRZC [C@![Cp[C[C@[C@[C=[CR[Ci[C;[C[CB\C\Cn\C0\C}\C \C[C.\C@[C@[C@[C\C@8\C[C[C@3\C@\CY\C\Ci\C[C0[C+[CZCZCZC@ ZC@YCYCYCYYCYCXCXCXC@JXC@3XCWCWCXCXCXCXC@!XCuXCWXCWC@XC@YCXCWCWCWCWCVCVCWC@VCVC@VCVCWC@_Ci`C@`Cn_C@`CEbCkbC_C]C@]C\C0\C@s[Ck[C)[CZC@ZC@ZC@J[Cp[C[C@[C[CR[CR[C[C@[C\C\C\C\C0\C[C@3\CB\C\C\C[Ck\Ci\C@[C[C[C@3\C@a\CE\C[C\CW[C[C[C@ZC@ZC@\ZC@YCYCiYCYYCBYCYCXCXCXC@JXC@WCWCWCXCXCXC@XCWCWCWXCkXCfXC@3YCXCRXCWCWCWC WCWCVC@VC@VC@xVCVC.WC@J`C0`C`C^C`CaC}`C]Ck]C\CE\C[C{[C[CZCZCZC[C[C[C[C[C[C&\Ck[C[C@\C@\\C@]C]C]C@!\C.\C@O\Cp\Cp\C@3\C@\\CG\C\C)\C\Cp\C[CR\C@[C\C@[C[C5[CZCZCTZCLZC#ZCYCYC@XCYC@XCXCXC@XC;XCWC@WCWC0XC0XC@3XC5XCXCXCXC@ XCXCkXCYCkXCWCWCWC{WCVCVC=VCVCVCTVC@!WC_C_C^C_C`C`C^C]C\C\C\C[C@[Cp[CZC[CZC[C[C\C[C@ \CL\C[C[C[CL\C\C]C]C\C@3\CB\Cu\C\C\C\C\C]CB\Cf\C[C[Cu\C@x\C\C\C[CE[C[C[CkZC)ZC@YCYCYCYYC@XCXC@OXCXCXCXCXC@JXCWCBXC@WCXC@3XCWCWCWCXC@XC+XCiXC@sXCXCWCWCWC@WCGWCVC@VCVCfVCRVCVCT`Ck_CB^C_C;`Cf_C]C@!]C\C\C[C[CE[C=[C#[CZC0[C[C\C@\C@J\CT\Ck\C0\C@\C@3\C\C]CB^C.^C@]CT\C]C\C@!]C\C]C@]C@s]C\C\C@\C\C\C\C@]C=\C}[C=[C[CZC@OZC@sZCZCYC@YC@xYC@YCXCXCXCXCXCYXCWCWCWC@OXC&XCRXCXC@XCXCWCXC#XCWCXCuXC XCWC5XCWC}WCVCVCVC@VCGVC@VCR`C0^C^C@J`CT_C.^C\C\C\C \C[Cn[C[CZC [C@J[C[C[C=\C#\C\C@!]C@]C\CY\C\C]C_C@x_C@^C\C ]C]C\C@\]C]C^C^C^C@]C\C@\C@3]C;]C\Cu]C\C[C[C{[CZC@ZC@ZCZCYCYC@xYCYCXCnXC@sXC@aXCfXCXC@XC;XCWC@aXC#XC@XC=XCWC@XC@XCWC@sXC@sXCTXCXCXCXC@WC@XC#XCWC.WCVCVCVC@VC@\_C]C;_C_C@\^C^]C@\C@\C{\C@\C[C@[C@ZCZC#[C[C[C\Ci\C@x\CB]C@]Cf]C]C\C]C_C@`C@s`C^CL]C@3^C]C)]CY^C&_C=_C^C^C]C\C0]CE^CR]C]CL]CR\C[CZCZC[C@ZC@sZCZCYC@!YCYCXCXCXC@!XC@XCXC0XCWXC&XC#XCXCXCXCXC@XC@WCXC;XC#XC@JXCXCXC@XCXC^XC+XCWC}WC@WCVC@\VCVC.VC@O^C@!^C+_C@s^CR]C\C\CW\C@\C[C[CG[C@ZC[C&[C[C[Ck\CB\C\C]C@J^C=]C+]C]C{^C@OaCBbCaC^C ^CW_C^C@^C_C@a`C`C_C_Cn^Cn]C]C^CT]C]C@]C}\C[C+[CZCZCfZC@!ZCYC@YCYCYCYCXC@sXCLXC@OXCXC@ XC.XC=XCXC{XCRXCXCkXC@3XCWCWCWCWC@aXCXC@xXCYCEYC@aXCXC{XCWCGWC@ WC@VCuVCGVC@^C^C^C]C;]C@\C@\C@\C[C[C[C[C@ZC[C@x[C[Ci\Ci\C@8]C\C]C@\^C@]C]C@^C_CLdCbCnaC_C_C`C@O_C0_CaC=bC`C@8`C_C^C]CT^C0^Cf]Ck]C]C\C[C=[CZCZC@OZC^ZC@YCZC@YCfYCXCXCXCXC@xXCkXCXCBXC=XCcXCXCRXCXC.XC@XCWCXCWCWC@!XCXC@XCXCnYCXCXCXCWC@WC@ WC@VC@VCGVC]C;^C@]C\C]C\C\C[C[C@s[C[C;[C#[Cn[C[C@8\C\C\C\C@]C=_C@O^Cf^C^Cc_C{bC0fCGbC@aaC0_CcaCbCpaC`CcC.eC@aC@`C`Ck_C^C_C@a^C]C@s]C]C\C\C0[C@ZCZCZCZC@YC ZC@YCnYCGYC@xXCcXCiXCXC@3XC@xXC@WCEXCWXC.XCXC@\XC@3XC@OXCWC0XC@WC+XCXCXCXC@YC@YCYC5XCXCXC@WCWCWCVCRVC]C^C.]Cn]C@ ]C\C@\\C \C@[C@[C[C[C[C[C+\C\C@\C\C@\Cc^CW_C}^C^C}_C@`C.eC@eCaCaC_CbCceC+cCbCfC{gC@bCaC@aC;aC_C_C5_C^C0^C]C@\CY\C5[C@ZC@xZC@\ZC@ZCYCYCYCYC@8YCXCXCXCEXCLXCfXC@OXCGXCXCXCXCXC@aXCXCXC@3XCWC@WCWCcXCYCXCYC@YCYCXC@YCWC+WCWCVCVC]C]C\CE]C@ ]C@!\C@\\C@[C5\C@x[C@x[C}[C[C\C\C\C]C@]Cn]C@J_Ck_C}^C^C@`CpaC@fC@cC)aC.`CW`CTdC@OhC@fCReCjCiCdCcC=dC+cCaC@saCE`C_C@\^C]C.]C@[C[C@8[C@ZCZCZCYCYCYCYC@8YC@!YCXCXCXCWCXCcXC^XCXCpXC@\XCXCXCRXC+XC@sXC@WCWCWC@xXCXCXC@YC#ZCYCXC@XCXCXCWCVCVC^]Cn]C]CY]C@a\C\C[C[C@3\C[C@a[C@[C{[C\C@\C\C]C]CR^C_C^C _Cc_CEaCaCeCaC`C_C`CfC@kC}iC&hCnCkC=gCfCgCeC cC&cCbCWaCY^C)^C]CE\C[C[C@[CZCTZCYC@ZCYCYC@YC@JYC@XCXCXC@XCWCLXC@\XCnXCXCGXC@sXCYC@XC@XC@\XCWCWCXCXCXCXC@OYCuZCBZC+YCXC@8YCTXCXCWCVC\C\C@\]C@J]C\C@O\C[C[C[Ci[C+[C[C)\C@\C\C=]C@\C5]C^C@_C^C}_C@x`C@`CnbCcC`C_C_CaChCmCLkC;lCqC@anCkjC{hCGiC@hCfCeCdCbC@_C^C@3]Cu\C@ \C[C[C@\[CpZCZCZCZCZC}YCYCYCYC@XC@XCYXCXC@OXCuXCXC@xXC@XCXCXC0XC@xXCcXCWC@WCXCuXCYYCYCZCZC@YCcYCYC@ YCcXC;WCWWC\C]C=]C\C@s\C@\C[C@[C[C[C[C@[C\C}\C^]C]C]Ci]C@^C_C_C`C`C@3`CaCaC@_C_CLaC}cC@jCmC@JmC@oC}rCnqCkChCkCkC@3iCgC}fCbC@O_C@O^C]C\C=\C[Cn[C[C@ZCZCZC#ZC@ZC+ZCYC@sYCLYCYCGXCLXC@WCXCkXCXCnXC@\XC@sXCXC@XCnXCnXCXCWC@ XCXCXCYC@\ZC[C@OZCBYC5YC=YCBXCWC@3WC\C]C\C\C@3\C[CB\C[C@a[C@[C@[C[C0\C@\C]C]C}]C@^C@_C`C@!`C`CW`C0`CaCG`C@_C@`CbC@JdCiC@jCnCpC@ sCtCkChCkCnCkCjC@gCWcC`C@3_C ^C@x]C@\C}\C[C@ \C^[C[CB[CZC^[CZCYCYCYCXCXCLXCXCXC+XCXCXC@\XC@\XCXC@OXCnXCXCWCXC@ XC@XCiXC@YC@ZC5\C@J[C=ZC@YCZCYCLXCXC@]C@\C\C\C\C@[C@[C[C)[C@[C[Cc\Cu\Ci]C&]C@]C@\]CT^C`C`C@`CaC5`C`C@x`C_C@_C@bC@eCdCfCfhCnCpCsCtCiCfC+jCnoClCGkC@hCdCaC@s`C^C]C=]C\C\Cc\C[CW\C@[C@8[CZCZCYZC@ ZC@aZC+YCXC@XC;XC@WC@XCGXCWC@WC@OXCXCXC@XC XC@XCWCXCWCYXCYCZC@\C\Ck[CYCZC@8ZCXCWC\C@\C]Cf\C}\C[C[C[C[C \CL\C@\C@\C]CR]C{]C^C^CaCaCaCaC_C`C_C0_C;`C{eCeCcC@acCfCmCnC5rC@OtCRhCBdCgClClCBlC@JiCdCcCaC&_C@^C]CW]C\C\C]C0\C0\C[Ci[C5ZC@YC@ZC@ZCYCXCWXCRXCWC XC@!XCWCcXC=XCXCYXCXCXCXC@WCXCXCXCYCZC\C^Ck\CiZC@3ZCZCYCXC@J]C@\C\C@\C@!\C@3\C[C@O[C[C@[C@[C@\C]C@]C@]C^C{^CB`C@bCbCcC bC`C`CR_Ci_CaCgC@ eC@ bCaCeCkC@3lCpC#pCkfCbCdC@gCiC+kCiCfC@eCbC_C_Cp^C@]C\C]C}]CT\C@\C[C#[CBZCZCZCW[C^ZCYC@XC@aXC@WCWCWCWCWC5XC@OXC{XCpXC@\XCXCiXC@WCBXCTXCiXC@ZC@8\C_C5^C@[CZC&[C@xZCXC]C\C\C\C@[C+\C[C@s[C\C)\C}\C\C]C]C]Cf^C_C@aC@cC@\dCdCaC#aCW`C@J_C@_C@bCfC@xcCaC aCdCRhCiCkCjCdC^aCaC@bC.fC&hCfC@fCgC{cC@`C@`C@O_CB^C\C]C@]CL\C@8\CW[C@[CfZCYCZCZCZC)YCXCpXC+XCRXCWCWC^WC@WC@JXC@XCXCkXC{XC@XCXCRXC;XC@XC@YC@[C@a_C_C@]CZC@ [Cc[CZC\C{\C\C[C\C#\C@8\C[C;\C5\C\C@!]C@s]C]C@J^C^C`C@!cC&eCfCeC=bCaC_Ck_C_CTbCGfC@bC`CWaCdCfCeCfC@eCcCaC_C`C{cCdCdC@eCnhCkdC@abC@ bCT`C@ _C]C]C)^C\CE\C@[CZC^ZC@3ZC@ZC@ZCZCZCYCXC@aXC@sXC XCWCWCWCWC.XCuXCXCXCXC=XCGXC@\XCpXCYCZC@3^C@aC@^C\CZC \C@ZC\C\C\C[C@[C\C[Ck\CB\C\C\C=]C]CW^C=^C^_C5aC@dC@!gCkhC@eC{cC@8aC^_C@_C@_C@ bC^dCbCpaCbCudC=eCbCbCaCaC`C_C_CfaCaCbCdCRgC@dC@cC@scC@bC@_C]C@^C^C]C\C[CE[CZCZCZCZCZC@ZC@OZC@YC@YC{XCRXC+XCWCWC;WC@WCiXCXC{XC@XCXCRXC&XCLXC@ YCYCW\C@8aCR`Ci^C@J[C@[C@8\C@\C@\C\C5\C \C@[C@\\C5\C@s\C\C\C]C]C@s^C_C@s`C5bCeCjCkiCeC=dC`Cf_C@J`C@_C@bCcCcC@cC@dC@fC@cC`C`C`CaCB`C@3_C_C@J`C@x`CaC@ cCReCdCGeCeCeC@aC^C_C`C_C0^C\C@[C@[Cc[C[CZCE[C@![C{[C}ZCiYCXCnXC@XC@JXC@WCWCWCGXC@XCXCXC@YCXCBXCXCXCYCZC@3_CaC@\_C\Ck[Cn\C\C@3\CW\C[C[C@[C\Cn\C\C\C@O]C}]C@8^CR_C@s`CaCWcC^hCmCiC@fCcC@J_C0`C`C`CLbCbCfC@dC@gC@xgCbC@a_C_Ck_C@aC`C_C`C`CaC@aCaCGcCdCneC@\gChCdC`C`CaCaC@J`CY^C\C\CY\C@[C[CZC0[C[C@\[C^ZC@YCXCkXCEXCWCWCWCWCXC@XC@XCXCXC{XCXC5YC.YC#ZC@\CaC`C0_C\C#\C\C\C\C[CY\CB\C\C\C\C@\C@]C@]C@_C5`C+aCfaCdC@lCnCiCgC@8aC^CaC=aCLbC@OaC@cC@gC@OfChC@8gCaC;aC@`C@`C^aC_CW_CibC@aC@!cC&cC@aCaCcC@JdCgC&kChCcCaCucCcCcC5`C^C5^C]CY\C@[Cf[CE[C\C[C@[C)[CYCXCXCYXC@WC#XCWCkXC{XCXCXC@XCcXC@xXC@XCXCLZC@ZC_Ck`C@J`C@]C[C\C@O\C@!\C#\C\C[C\C@\C\CW]C]Ck^C;_C@aCaC}bCBgC@JoC@nC@ahC)fC@ `C@_CbCWbCfcC@`C@8eC@!hCgCkgC@ fCbC@acCLbC@aCaC@a_C@_CcCbCeCLeCbCaCaC@bCfCBnCumCeCaCdC@eCeCcC.`C@\`Cu_C@]C\C@\C\Ci[C[C.\C[CZCYC@XCXCXC@WC@!XCLXCXCXC@ YCXC0XCWCXC@XCYCYC@x\C_CT`C#_C\Cu\CG\CB\CE\C@[C\C\C\C\C@O]C@]C@^C`C}bC@xbCcC@jCoC#mC@fCbC^C{aCcCceCpcC@JbC@8gC@gCeC@eC@xdCdC@dC;cC@xcCbC_C`CbC@bCgCeCcCLbCLaC@JaCeCWpC@JrC@hC@bCdCEfC@8hCReCaC)cC^aC@^C]C]C}\C@[Cp[C[C[C[C[CYC+YC@aXC@8XCWCWC=XCXCYC}XCXC&XC{XC@XCYCZCZC]C_C}`C]C\C{\C@a\C@O\C}\C@x\C\C@\C\C]Ci^C}_CibCcCpbC@adC.kC.nChCBdC`C@_C@cCYeC@3hC}cC@sdC@iCfCGcC}bC}bCueC@sdCbC@cCnaC^C_C`C aC@eCdCdCbCaC@`CYcC qCtCiC@aC@cCeCiCgCdC5fC@scC@_C^C5^C]C@O\CZC[CW\C0\C0\CZCYCXCWCWCWC@sXCXCXCXCXCEXCGXC@XC@XC@YC)ZC[C^C`C0_Ci\C;\C\CL\C;\C\C\C@\CY]C]C^CaC.dCcCbCeCjCWjCdC bC_CaCeCiC;iCBeC}hCijC@dCaCaC@ObCcCbC}aC@aCG`Ci^C^C@ _CB_CbCubC@acCcC@bC@_CGbC)oC@8sCiC&bC@JbCWeChChCfC@hCLeC`CL`CW_C^C]Cf[C5[C\C.\C\C@\\C&[CZCYC@!XC XCWCXC@XCXCnXCYXCXC&XC@XC@YC@ZCZC]C;_C`C+\C\C^\C@a\C\C\C@\C@\C@]C]C^_C@bCdCcCbCeCchCGfCaC`C@`C@OeCngC@lCBhCfCLlC#hCcC`C@ `C`C@aC@`C@_C_C^C^CR^C]C@]CE_C0`CaC@cCcC`CbCjC=oC@ jC@xbCaCdC@fC@!gCiCniC@eCLbC`C`C_C]C^\C@[Ci\Ck\C\C\C]C[CZC@XC@!XCXC0XC@OXCXCYXCnXCYXC{XCXC@ YC@OZCYC[C0^C@`CL\C\CY\C\C.]C\C\CT]C}]C^^C`CdCdC}bC cC@OeC@ eCbC#aC aC@bChChClChC@hCkC@dC@`C`C_Cp_C_C _C@^C@s^Cu^C@^C]Cf]C\C@]C^C_CaCkcC@aaC+bC@eC@iC@siC+cC@saC@\cC.dC=eC@iC)iCdCbCbCaCaC0_C&]C{\C\C]C\C#]C]Ci]C@x[CYCXCXCWC@JXC}XC}XCRXCXCXCXCpXCYCTZC@ZC@O]C_CT\C\C@s\Cc\C@\C\CY]C]C^C^C@bC)eCcC@aCcCcC@ObCaCaCbCTfCiC#iCjCBhC}iCgCaC`C@_C_C^C]C@]C]C]C]C+^C^C@\CB\C\C^C^C@`CbC@bCcC)cCGeC@gC@scCaCbCbCTcChC@hCEcC@bCdC&cC@ bC`C]C=]C^C@]C]Ci]C^C^C@s]C@[CYCXCWC;XCGXC0XCBXCXC;XC@sXC@XCXC@ZC;ZCB[C_C\C\C@x\C@]C@\C\C]C@s]C^CG`CcC@3dC@bC@bCTcCbCnaCbC@cC@eCBiC@hC@JgCiCugCfCcC_C@_C@O_C^C]C]C]C@\C@\C@J]C]C@\]C@\C@[C\C]C^C`CnaCcC@eC^bC@bC@dC@acCTaCLaC`CbCgC&hCbCbCeC5dC@bCaC_C^C_CE_C@\_Cf^CR^C=_C}_C\CZCYC@3XCXC@JXC^XCpXC@3XCiXCLXC;XCXC@YCTZC&ZC ^C\C\C@!]C@]C&]C@\C@s]C]C@\^CaCdC@ dCbCcC5bC`CbCeCcfCuiCiCeCdCiCfCBcC`C_CR_C{_C]Ck\Cc\C0\Cn[C=\CL]Cu]C@!]C[C[C[C@a]C@!^C`Cc`CbCpfC^bCTaCbCbCBaC`C`C@abCgCngC@dCbCeCdC@3cCaCaC`Ci`C_C`C@a_C^C_C_CR^C@\CZCYCXCWCWC@XC@8XCYXC{XC@XCGXCLYCZCYC[C^\C\C@]C\C]C;]C\C^^C._CbC@cCcCbC@bCTaC{aCeCphCLjCjCgCcCdC=jCcCY`C^C_C_C@\^C=]C[Ck[C&[C@ZC+\C\C\Ck\C[C@[C\C&]C@^C@_C`CaCfeC@xbC@s`C@\`CEbCnaCaCp`C@bC@fC^gCdC@cCcdC@dC@cCBbCbCTaCfaCaCaC`C `C^Cn_C_C^C@[C@ZCXC&XCWC#XCXCXC}XCkXC@XC@XC.ZCZCZC\C\C.]C]C]C]C]CT^C`CcCncC@JcC@bCGbC^aCdCiCkCmC5hC@cCkaC@fC+hCpaC^CY^C#_C@^C^C@\C[CZCuZCZC[CL\C@\C \C;[C[C\C]CE^Ck_C@_C`CcCnbC`Ck_CkaCbC`C@`CcCfCgCYfCdCdCdCdC@bCcC&cCbCbC@aCbCaC_C_C{`C_C^Cp[CYC@\XCXCWCYXC{XCuXC@XCXC@XC#YC}ZC=ZC\CR]C@a]C]C}]Cc]C]C^CaCbCcCbCcCbC@cChC@mCLmCkCdCaC aChCfdC^_C)^C#^C^C^C\C@[CZCZCTZCZC[Ck\C\Cp[C[C@[C@\]CG^C@^C^_CY_C_CWaCaC@_C@8_C5aCbC`C)aC@bCfChChCeCdCdCeCcCYdCidCcCncCbC@bC cC@3aCE_C`C`C_C.]CZC^YCWC@8XC@OXCYXC}XCTXCGXC@XC}XC@ZC@ZC\C5]Cn]C]C@J]C]Ci^C@_CaCcC+dCbC5cCcCfC)lCmClC@fCTaC`C=bC@fCaC_C5^C^CW^C]Cu\C[C@sZCkZCLZC+[Cu\C&\C[C@[C)[C@[C]C]C]C@^C^C@_C.`C`C_C0_CaCYcC5aC@8aCbCfC;kCiCeCdCeCkfCeC@eC@dCdC{cC#dCcCcC@xbC@_C@^Ck`C@!aC^C#\CYCXCWC@WC)XCuXC@8XCXC@\XCuXCuYC[C]C=]C]C@]C=]C]C^C@`CbCGdCbCbCdCfCBjCimCkChCbCu`C@`CbCbC@3_C^C)^C+]C@]C@a]C[C{ZC@OZC@sZC@ZCp[C@\C[CG[C@\[CY[C@[C^C]C]C=^C@^C^CR_CG`C{_C`CbC@8cC=aC}aCkaC@fCnC@kCkeC@8dC@JeCgC5gCLfC}dCeC)dC@eCcC cC@cC@!aC@8_C_CRaCk`C]C=[CpYC@8XCWCXCfXCWCXC@xXCRXCXCBZCG]CW]C@]CW]C]Cc^Cn_C`CBcC@adC0bC{dCgC@JjCkC@kC@gC;dC`C`C@a`C^bC`C^CB^C@J]C0]C@]C\C@ZCYCZC&ZCZC[C@\Cc[C@O[CZC[C[C@]C]C]C]C;^CL^C_C_Ck_C`CBcC@cCaCaCaCRfCqClC@dCEcC@eCgC@gCfC0dCeCdCdC@3dCbCcC bC_C_C`CBaC^Cf\CZCXC+XC@WCXC@XC#XCTXCBXC{XCYCY]C]C]CR]C]C^C_CaCdCbCbCfC@jC@mCjCfgC#dCuaC_C_C@`C}`C@^C)^C]C\C\C\C[C&ZC=ZC@ZC@ZCZC[C[C^[C^[C[C\C@\C\C&]C]C@]C@8^C^C)_C@\`C_C}aCcCYdCcCbCaC=eCrClC@sdCbCeCfhCgC@fCcCRdC eC@dCkdCbCbCbC`C_C`C)aC_C@]CR[CYCfXC@WC@XCnXC@XC;XCXC@ XC YC]C@O^C@]C]Cc^C@^C=`C@cC;dCaC@eC{jCmCkCgC@bCaC`Cp_C=`C@J`C@^CR^C^C\C;\C\C\C@[CZCiZCZC@[CR[C@[C [C@[C@[C@[C[C\C@\C=]C]C@\]C@x^C^C_Cu`C@`CWaCcCkeCeC5cC=bCBeCqCmCdCbCfC+hCfC&fC@JcCbCdCcCYdCbCbC@3bCnaC@`CBaC`C@`C]C\CpZC@XCXCXCnXC@aXCWCXC@XCnXC.^C]C]C;^CR^C@3_C`C{dCbCcCGhC#nCmChCdC`C`C@_C_C_Ci_C@^C]Cp]C\C=\C]CG\C#[C@![C;[Cc[C@s[CT[C@ZCZC@[C@\\C@\\C\Cf\CT\Ci]C@\C]C@^C@^C@`CaC@x`CEaCcC gC;hC5cCbCeCoC@nCfCcCfCgCkfC@dCucCaCbC cC@xcC&cC@3bCaC@\aC@x`CWaCaC@`CE^C@\C[CYCXCEXC@\XCXC=XCnXC{XCpXC@]C@s]C]C^C^C@_CbCcCaC0fCkCppCjCfC@!aC@`C@_Cc_C`C@^C^C]C]Ci\C[Ck\C@\C[CR[C[C[C[C@x[CE[C)[C)[C[C@\C\C\C\C\CY]C@!]C@]Ck^C`C@3bCbC@aC@JaCbCgC@iC dC)cC5eClCunCgC}eCpgCGhCeCcC{cCbC@aC.bCEbCbC@xbCaC aC`C@3aC`C@`C^C\C[C#ZC@JYC@sXC@!XC}XCYXC@XC&XCGXC@ ^C]CR^C^C)_C`CYcC@bCcC@hC@3oCmCkgCbC_CT_Cc_C`C`C^C]C@s]C@\C\CW\C@O]C\C[C@\C\C\Cc\C@3\C@\[C[C{[C@\C\C\CB]C]C]CE]CL]CG^C^CaCcC=cCaC@saCbCcgC@3jC@sdCicC@seC@lCoCTjChC@8iC@iCeCbCcC@cCbC@saCEbC@aC#bCaCR`C@`C&`C@`C`C@^C\C\C@![CYCYC@XC+XC@XCLXCWXCcXC]C]C@a^C@^C@J_CGbCicC5bCfC@xjC@pCYiC@dC@`C=_C@x_C5_C`C@^C@8^Cu]C.]C\C@\C@ ]C5]C[C[C@]C@a^C]CW]Ck\C[C#[C@[Cp\C]Ci]C ^C^]CL]C]C)^C.^C@!_C`C5dC@cCkbCaCcC@sgC@siC{eC@cCffClCpClC@kCjCiCWfCcC@8cCdC@JcCbCbC@`C@xaC{aC#`C#`Cf_C@_C`Ci_C@\C{\C[C@ZCTYCXC#XCiXCYXC@8XCXC@]C@^C^C^C`C cC;bC@cC#iCEmC0mC@eCbC@J_C@\_CY_C_C#`CE^Cp]CB]C@\C\C[C]C\C@[C5]C.^C^C]C@a]C\C[C[C;\C5]C@J]C]C]CT]C]C^C^C@^C+_C.aC0cCWcC@abCbCbCgC}iCfC5eCpfCkC@OqC oCnCilC@jCfC@xbC@bC@dC@dCbC.cC@aC@aCaC`C@J_C@\_C_C_C_C@]CE\C@3\C@ZCYC@XCnXC@sXC@xXCnXCXC]Ck^C^C_CaC@cCaCfC@siC@xnCgC@JcC`C0_C^Ci_C@_C^C]C]C\C;\C\C+\Cc]C.\C[C]C#_C _Ck^C@\]C\C@\CL\CE]C]C]C]C]C]C]C}^C^CB_C@O_Cn`C@aC@aCaCbCcbC^hC@3jC@fCTfCfgC@8kCLqCWpC@pCmCiCgCbCbCdCeC=cC#dCbC`CaC#aCp_C_C_C^C_C@!^CW\C\C[CkZC^YC}XCXC^XCiXCGXCn^C^C@^CY`CcC@bCcC@OhCjCkCWcCaCL_C@^C_CR_CL_C]CY]C]C\C@!\C[C@\Cu]C\C\C@^C.`C@ _C)^C^C\C@\C@\C]C]C]C]C]C0^C@J^C@^C_C}_C_C`C)`Cc`Cf`CaC@8bCphC@iC@fC@gCgC{jC@nC{pCBpC5oCiiC5hC}cC@aC cCYdC@cCdCdC@sbCaCaCf`C_C@_C@^Ck_C^C}\C\C[C@x[CZC@XCkXC@XCRXC@\XC@^C^C_C)bC@cCfbCfChCclCgC+aC `C^C@ _C@^C@s^C^C@]C@s]C\C\Cn[C[C]CE\C0\C]C_C@`C^C^C^]C]C;]C]C^CB^CB^C^C^C@^C^C@_C;`C_C@`C`C@_C+`C`CT`CaC)gChC@fChC@hC.jClCWmCnCnC@jC^iC@aeCcaCbCcC@bC@seCfgCdCbCaC@aC@`C`C@s`C@^C@^C\C@[C@\C[C^ZCTYCYCXCXC5XC^C@^C`CcC@bCcChChC@kC=cC)`C^C@^C_C^C]C]Ci]C@]CW\Ck[C@[C\C\C@\C[C^C`C)`C@]C]C]C@x]C]C^C_C^Cn_CE_C._C@x_C_C`CaCWaC@OaC)`C_C@_C_C_C`CeC@ fC@!fChCkhCiC@jCcjC)mCmCkCpkC.hC@bCaCWaCaCdCGjChCcCYaCibCbC;bCbC{_CB^C]C[C@[C@[C{[C@3ZC&YCXC@aXCXC^C^_C@aCcCbC.fCphCiC@gC`C0_C@ _C^C^C^C]Ck]C+]C\C@[C[C[C@]C\Cc\C5]C@_CaC@_CL^C{^C{^C]CL_Cp_CE_C`C`C`C{`C^`C@x`C@aCEcC@!cCcCaC@`C@`C_C@_C`CRcCdC@eChC@!gChCiC@hCLkC@3lCknC@ nC@lCeCBaC@`Cu`C@cC;lClCfCbCbCndC@scCkcCaCE^C5]C[Cf[C@s\C[C@ZCYC@XCXCpXCT_CG`C5bC@3cCcCEiC@gC+jCcC@3_C@^C^C^C@a^C@x]C@]Cp]C0]C@a\C@[C[C@\]C@\C\CL]Cp^CaCaC^C;^CL_C#_C_C `C`C_C`C@JbC@aC@aCGaC@`CcCdC+eC@dCbC@`C&`C_C_C@3`CbCucCdC&fCfC@JhCkiCniCjCkCpC^qCYqCjC cC@\aCc`C aCkCfpCjCcCbCdCdCdCcC_C;]C[Ck[Cf[Ci\C@x[CZCcYCXC@aXC&_CfaCcCbCfCniCGhC{gC@aC^Cu^C@ _C@^C]C@s]Cp]C@]C\CG\C[C@\C^Cn]C]C]C@_C@bC;aC@8^C_C@_C@s_C_C`CT`C{`CbC+cCbCBbCkaCaCcCgCfCfCcC@saC@a`C_C=_CB`CaC@bCEdC@eChC@xjCiC;mCGlC@kCqCWrC@rC@oCfC@ObCYaC`CRiCkrC@anCfC}bCdC fC5eCcC@`C5]C[C;[C@a[C@\C@[CZCYCXCXC@`CbC cC@3dCRiChCYgC+eC_Ck^Ck^C^C0^CY]C]C)]CL]C@\C\C@\C]C^C@]C@^C@x^CaC=cC@_C^CBaC@`C_C`C`C@_C.aCbC@bCbCbCaCaCdC^gC@xgC@fC@!cC#bCY`C_C@s_C@`CaCbCcC@eCjC@lCjCpCpClCpCpC;qCBrCjCdCkcC)aCeCqCGpCRjCdC&dC+fC&fCdC{aC]C[CZCZCG[C[C@8[CZCLYCXCaC@bCcCgCEjCgCgC@8bC@!_C^C@^C@^C]C=]C@x]CL]CE]Cu\C@\Ck]CW_C@_CB^C_C}_CbCfbC _CW`C@aC`C@3`C}`C^`Cn`C`CubC{aCaC@OaCpaCaC@dCgC@fC@3fCcCcC`CE_CB_C@\`CaCTbC@xcC@fCTlCEoC kC@pCsCnC@nC@lClC@oCnCThCeCbCcC@nCpC mC0hC@cCeCgCLdC@aC_CW\C[C@ZC[C[C[C@ZC@YC@XC@aCnbCdC@jChC@OfCieC_C@^C^C^C]Cc]CG]CB]C]C\C\C\C=_CE`C@s^C_C_C`C0cC@8aC^CbCaC@`C{`C@`C_CL`C@`C@ aC@O`C_C@J`CRaC`C@cCeCkfC@sdCdCkdC@aC_CL_C@`CaC bCdC@ahC@slCoCkCknCrCnC@xkCgCgC)jCmC@kC)gC#eCaChCnCmCkC@JeCcCeC&eCaC@_Cp]C@![C@sZCZCB[C@[CZCYC@aYCbC5cCgCjC@JfCGfC5bC^C^Cf^C=^C@]C@\C@]Cf]C@]C]C@\C]C`C`C@O_C@!`C`C+bCcC@`C0`CaC`Cp`CG`C@`C@_C0`CY`C@_C@8_C _CW`C@O`CT`C@abCWdCdC@bCRdCdC@aC_C&`CG`CbCbCdChCujC@mCGkC5kC@nC@lCiCdC&dCkeCYjC@lChC@fCcaCcCjCjCLmChCcC@eCGeC@aC@`C@x^C\CZCZCZC@[CB[CZCYCbC@JeCjCniC^eCdCR`CL^C_C^C@ ^C}]C]C@]C]C]C=]CR]C_CbC5`C@_C_C)aC@bCcbC.`C`C aC`C+`Ci`C@_C _Cn_C._C0_C^CB_C&`C_Cu`C`CbC@ cCbC@cC@\dCaC#`C@_Ci`CbC@xbCcCgCgC@iC)iCiC)jCpiCeC=cCaC@bC@eCjCgCufCibC@aCeCYgCjCRkCeCcCYdC=bC5`CT_C]C[C@ZCZC=[C[C@ZC@\ZCucChC@skCpfCdC@!bC@^C@^C^Cu^C@]C]C.]C^C^C]C]Cf^C@aC@aC_C_C+aCaCbCaC@3`C`C`C@`C0`C_CE_C^C^C@^C@^Cc^C@ _C`C_C_CB`CTaCaCaCcC@cCpaC`C@_C@_C@aCbCbCeC@eCgCfC@!hChCgC@sdCbC@`CaCcCfCpgCeCaCk`C@bCdCeC}kC@hC{dC;cCaC_C`C^C[CZCZCZC[C[C@YC@eC@akC@iCcdCcC`C@^C@^C^C@ ^C{]C@]C@]CY^CW^C]C]C_C@cC^aC{_C+`CRaC@8bCaCWaC`C)`C@`C`C_C@3_C^C^C^C@s^C_C@^Cn_C_C@_C@_C_CW`C`C@aCbCaC`C}_Cc_C_C@`C#bC@xbCndC@dCYeC@dCfCgCpfCdC@bC@`C`C@bCcCeCeC@bC`C`C@bCbCWgCjC;gCbCnaC@J`C_C_C+]C@O[C@[C}ZC@ZC@ZC^ZC}iCTkCfCdCbC@_C@^C^C^C]C]C]C^C@x^C ^C@ ^C^CaC@scC_CE_CaCYaC@aC@aC@`C@`C`C`Cu_C^Ck^C@x^C@]C^C^C^C^C@_C.`C_C^C#_C@_C_CaC`C`C_C^C^C@_CE`CaCbCbCcCdCdCdCgCkeCcdC@xbC`C`C@3aC@!aCcCeCcC@3`C_CaCaCbCfiCkC@3eC`C}`C_C_CG^C[Cf[C@3[CZC[CZCpkC@xiCeC@bC@`C^C^C^C^C^C@\]C@^C^C^C]C^^C_CbC=bC^C_CnaC@ aC@saC@!aC}`C@\aC@`C@ `C^C^C]C]C@]C]C]C.^Ck^C_C@_CE_C@^C^C@_C_C@a`C@3`C@!_C^C@^C@_C@!`CE`C`CaCpbCcCdCdCdChCWeCfdCbC`C@`C)`C_C@aaC;dC@!eCaC#`C`C@ bC`C@eC}kCiCaC`C_CG_C^C]C[Cu[CZCZCpZC@kC@gCcCkaC_C@8_C@a_C^C^C^C]C^C;_C@^C@!^C@_CaC@bC_C@^C`C`C`CaCaC@`CpaCaCu_C^C]C@\]C]C#]CE]C]C]Ci^C@_C`C`C0_Cu_C)_C_C_C@8_C@^C@a^C@^C_C`C`C@`C@`C@aCcCdC@dCdCihC&fCdC@bC`C=`C_C_Cn_CaC@dCidCBaCT`C@aC@O`C@saCgCmC@OdC@`C@s_C@^Cp^C]C@[C@[C)[C{ZCZChCBeCbC#`C_C^C;_C_C^C]C^C)_C=_C@^C^C`CTbCaCY^C^CaCL`C@O`C@`C`C`CaC `CW^Cp]C]C\C@]C]C^]C@3]C]C^C@_Cp`C)`C_C5`C_CT`C#`C^CR^C&^Cu_C`C0aC`C@`C_C;aC@cC^cCdCeChCfC=dC)bCaC_C_C_Cc^C_CaC)eC@8cC`CaC@aC_C@cC@slC.jCaC@_C^C^Cf^C\C@![CB[CZCZCgC)cCpaC_C@_C_C^C^C^CY^C_C^CB_C^C@_C@ bCbC_C]C}_C@aCf`CT`CB`C`C)aC#aC+_C]CL]Cf]C\C@\C\C\C@\C]CT_C_C@`CW`Cp`CaCT`C`Ck_C^Ck^C+^C&_Cn`C@!aCaCE`C@a_Cp`CaCkbC@cCeC@iC@gC@cCaC`C@_C_C@_Cf^C]C^CbC@JdCaCaC=aC_C`CfCoCdC5`C _C#^Ck^C)]C@[C@s[CZCZCfCEbC#`C+_Cn_C_C^C^Cp^Ck^CR_C._C+_C@8_C@aCbC@JaC@ ^C@3^CaC`C_C`CT`C`C`C_C^C@]C ]C\C\C;\C\C\C@!]C^C}_C#`CaC_C`CaC`C_C_CY^C+^C^C^C`C@`C`C_C`C@_CaCGaCbCdChC.iCWdCaC5`C@_C@3_C_C^C@\C\Ci_CRcC@cC+aC@aC_C_CcC5mCujCaC_CL^C]C=^C \C@\[Cu[CZCcCBaC@a_C_Cf_C@8_C@^C#_Ci^C@J_C@!_C_C&_C@`CbCpaC@x_C@\]Cc_C@aC=`C@ `C_C@`C`C@`C^C^C]C]C@\C\CG\C}\C@\C]C@_C_C_C`C_C`CTaC@!`CW_C^C^C^C@8^C@^C_C_C`C_C_C}`C`C`C@8bC@eCgChC@dCaCW`C_C_CW_C@^C]C\C]C`CbC@aC`C;`C_CuaCgCTnCeC`C_C#^C@^C@\C[Cp[C[CaC5`C@_C@_C_C@_C@s_C#_CL_C@J_C@_Cc_C_C@\bC&cC#`C]C]C+aC5bC_C_C@_C@a`C_C._C^C]C]C\C\C[C[C)\C@]C@^C_C_C _C@J_C^C_C0`CR_C_Ck^Cf^C@x^C@a^C^CB_C_C^_C_C_CR`C`C`C5bC+dCfC@fC@eC@bC.`C_C_C_C_Cu^C+]C\Ck^C@aCbC&`C@x`CE`C@`CcCmCYkCBcC_C@8^C]C@]C\CE[C5[C`C_C_C@_C@_C@_C@_C_Cu_C@3_C_C@_C`CicC@`C^C]C^C@\cC{aC_C@x_C5`C#`C^CG^C0^C@]C\C\C[Ci[C@[CR\C]C@^C^C]C@^C]C@\^C@^C^C.^C^C^CR^Cc^C@]Cu^C^C^C_C_C_C`C_C`C}aCTdC5fCeCdC0cC`C_C_C_C_C@^C@^Cn]C@3]CR`CbC_C_C_C=`C5aCgCoC5fCaC^C@J^C@]Cn\CZC^[C`Cu_C_C_C_C.`C`C_C@^C@_C@\_C_C@bCbCT_C]C]C`CdC`C_CL_C@_C^C]C@]C@\]C\C\C[CR[C[CB\C@x\C]C]CW]C]C+]C]CL]C@]CW]C]C]C]C]C]C@3^C@]C@\^C^C@^C_C#`C_C_C`CaCcC^fCYdC@cCcCaC_C{_C^C_C_C@!^CR^C^C^CbC@`C@_C_C_C@`CcC@3nC@sjCcC`C@\^C]C]Ci[CE[C `C@_C_C`C@`C`C`C.`C _CE_C+`Cn`CcC@`C^C]C@^C0cC@bC_C_C@^C@_C.^C]C@a]C@ ]C@s\C@ \C@x[Cf[C5\C\C^]C]C\C@!\C@!\C\C\C\C\C@ \C&\C@\CY]CB]C ^C@]C@!^C^C=^C^C_CL`C_C@\_C`C`CEcC@eCcCbCcCbC@`C@_C_C_C_C@a^C _Ci^Cp^CbCbCf_C`Ci_C`CaCuiCoC@eCbC^CE^C]C[C@[C_C@_C_C`C`C@xaC@aC_C^Cn_CT`C@!bC@JbC_C]C^CB`CdC&aC@^C0^C^CR^C]C@s]C^]Cu\C@\\C[C [C[C\C\C@\]C]C0\C[C[C[C.\C[C[CL[C@[C\C\C\Cc]C@8]C@x]C]C]C^C `C@J`C@a`C_C_C`C@3bCLeC@cCWbCcCRcCaC@3`C@_C@_C_C@s^CG_C@J_C^CaCdCaC`C=_CR_C`C eCoC@OiC@JdCk`C^C0^C\C[C@!`C`C+`C`CaC@sbCaC@s_C^_C`C`C@8bC`C@^C0^C^C@bCcC@_C@O^C^C^C+^C@]C5]C@8]C\C[CZC;[C\CE]C]C@s]C^\C@[C@[C=[C\C[C0[C5[C[Ck[C[C@[CG\C]C&]Cf]C@x]C]C@x^CT_Cc`Cc`C`CB`C.`CfaCdC0dCbCkcCcCaC `C `C_C`C^C@^Cu_C._C@!aCeC@!cC=aC_C^C_CbC}lCRnCpfCbCp_C@^Ci]C[C`C`C`C@!bCYcC@bCT`C@ _C_C`C@aC@aC_C^C^C`CcC@OaC_C@]C)_C^C^C]C@s]C@\C@8\C@[C [C[C\C]C\C@\CE\C@[C;[CZC@a[C@J[Ck[C@ZCZC)[C[C\C@[C\C\C;]C@!]C]C^^C)_C@!`C`C^aCcaC`C`CbC@JcCbCkcC=cCbC@ `CaC5`C@`C^C@ _C@J_C@_C#`CdC@eC@bC`C^C)_C@aCgCqC@OiC@dC.`C_CW^C=\C#`C`C@aCcCndCcC^_C@x_C`C@OaCaC@`C^C@^C_CTbC@ cC_C+^Cf^C@^C]C^]C]C\C\C[CZC)[C@[C]C@ ]C@\\CR\C[C@[C+[C[C)[C&[CZCZCZC@ZC[C[C[Cp\C\C]C]C@]C]C_C_C`CaCaC`C@_CEaCbCbC0cCbC@aC@`C@`C@`C@`C_C@_C;_CE_C_CbC@3gCcCaC^C@!^C`CdCoCnCRfC@aC_C@^C\CW`C@aCbCfC@dCaCT_C_Cc`CaCpaC_CW_C_C`CbC^aC._CG^C^C]C@x]C ^C]C\C@[C@a[CZC[Cf\Cc]CW\C[C0\C[C@ZC[C@ZC@ZC[CZCZC@ZC@ZC@[C[C\C@\C@\C@s]C^C@]C]C@^C@_C@_CaCkbC@3aC&`Ci`CaCbCbCaCRaCB`Ck`CaC`C5`C^C^C@_C#_CfaCYfCfCbC@_C]C^CbCkCrCiCcCE`CW_C=^C@8aCbC@eC@fCdC5`C@_C@8`C0aCaC@!`C}_C_Cn`C@\bC@aC_C@^Cn^Ck^Ck]CL]C@x]C]C\C[CZC[C[C\C@8]C[CT[C^[C[C@3ZCLZC@ZCZC[CZCZCZC@ [C@[CG[C\C@\C]C}^C@ _C]C]C^C_C`CaCfbCBaC@_C&`C`CiaCfbCTaC`C`Ci`C`C`C`C=_C_C@!_C@!_C@`C@adC@ gCdC`C^C@^CTaCcgCqCunC}eCaC_C^CBbCdCchC0gC cC@_C_C@`CWaC`Cu_C`C@`CaCbC@x`C@O_C^C^C]C\C@]C]C;]C\C5[CZC[C[Cu\C@x\Ck[C&[C[CnZCEZCZCZCZC=[CZCZCZC@ZC[C[C[C@s\C]CG_C_C]C=^C._C{`C`CB`CaCiaC@ `C_C&`CB`CaC`C`C`C_C@`C`C`C_C;_C@^C0_C_CbC@fCGeCaC^C^CT`CdC@mCqCjCbC_C@_CcChC0jC@OfC@\aC_C@_C@`CaC@ `C@ `CaCEaCLbC;aC_C^Cn^C@^C@3]C]C@]Cc]C]Cu[C@[CZC[C[C&\C[C[C[CZCZC@ ZC@ZC@sZC[C+[CZCZCZCG[C@[C@[C\C@8\CW]C}^Cc^C@^C^C`C;aC{aCp`C@`C5`C_C_Ci`C0`C0aCiaC@\_CY_C`Ck`CY`C`Cu`C_C@^C@^Cp_C`CeC@\fCcC_C@^C_CaCiC@pCnnCWeC`C_CeCTkCiCBdC@!`C_C`CBaC`C@_C`CaCaCaC_C_C@^C+^C]CE]Cf]C]C]C\C[CZCE[C[Cf[C[Ck[CZCZC@ZCZCZC@\ZCZCZC[C@ZCL[C)[CE[C\C[C[C[C\C;^C@]C^C@_C@ aCYbCEbC@aCaCp`C@_C_C@x`C`C`CRaC_C@_C_C_Ci`Ck`C`C`C_C0_CW_C&`C@ cCRgCdC`CG_C_C}`C@xeC@3mCpCiCaC_CiC@mCgCbC_Cc`C`C@ aC;`C^`CbCbCbC`C _C@^C^CG^C;]C@a]C]C@x]C@!^CG\C&[CZCZC[C0[C@[CZCZC[C@ZC@ZCLZC@ZC@ZC@ZCZC{[CT[C[C[C@3\C@[C[C[Cu\C@3]C]C_C@_C@bCcCEcC5cCTbC`C`Cp_CW`CBaC_C5`C@_C^C_C^_C_C5`C@`C@JaC_C@x_C@J_C@_CpaC@sfC@fC@bC@_Cp`Cn`C@JbC@iCGnCinC@dCG`C@3nCkCdC@`C`C5`C@`C@`C `CaCaCbCaC_C@O^C0_C_CE^C]C]C]C^C{]C@8[CZCZC [CZC[CW[C@ZC[CZCfZCYC@YCuZCZC[C[C@[CL\Cf\C@[C\C+\C[C#\C@\CE]C^Ci_CaCcCcCBcC}dC@cC@bC@`C_C+`CaC@!`C`C_C_C@^CG_C_C@`C@`CGaC`C _C_C_C`CdCgC;eC`C`CaC@x`CEeCjCoCjC@aC=pCkhC@xbC@J`C@`C`C`C `C`CGcC@bC@8cC`C@^C_C_C_C@]C]C]C]C@]C\CZC{ZC@![C@ZC[C@[C)[CZCZCWZC@8ZCGZCYCZCGZCZCR[C.\C\C@\C}\C\C\C\C\C]C.]C@8^C@_CiaCbC)cCcCdCeCdC@bC@\aC_C`Cc_C@_C_C_C_CY_CG_C_C@J`C@aCcaC`C_C_C_CbCgCfCbCk`C@aC@`C@aCgClC0oCdCmCeC@`CR`C`Cc`C@x`C{`CbCbC@OcC@aC_CB^C^C^_C^C@J^C@]Cu]C@\]C@]C@[CkZCR[CZC@8[Cp[CG[C@ZC@ZC@ZC@ZC+ZCcZC#ZC@ZC@ZC@3[C[C@\C@\]C@]Cp\C@\C]C]C@\C@3]C@]C@^CR`CaCLbCbCbCeC&fCeC@JdCcC=aC5`C_C)_C@a_C^C@J_C@_C^Cf_Ck_C`CaC`C`C_C`CkaCReCgC@dCaC)bC@xaC@O`CkcCiC@pCujC@hCbC`C`C`C`C`C)aCWcCbCcCY`C=^C^C^C`C@^C)^C]C]C@ ^CY]CZC@JZCE[CZC[C[C;[C#[CZCZCZCZCBZCZCZCZC;[Cu[C@\C@]C]C@ ]CL]C^Cc^C]C]C@J^Ci_C_C`CnaCaCWbCcCeCfC@JeCidCbCR`C_Cu^C_C^C_CL`C_C@_C_C@`CaCaC@!`C_C_C_CcCfCfCbC@aCRbC`C`CeCmC@oCeCaC`C`C`C.`C`C@bCcCcC@ bC^C&^C@^CR_C@_C{^Cc^C]C\C@]C5\C0ZC@ ZC@ZC[C@\C@[C#[CTZCZCZCYCZCYC@[C;[C&[C@a[Cu[C\C]C]C]CB^C@J_C@\_C@J^C^C_C^C@J_C)`C `C@`C@\aCcC@dCfCeC@xeCdCbC`C@^C^C;_C `CaCc`C_C@J_C@_C`C@saCu`C5`C`C_C`C@3eCfCdCYbCbCaC`CaCnhCkpCbC@`CaC@`Cu`C`CaCBdCcC@cCY`C.^C]C@^Cf`Ck_C]CB^C]C0]C ^Ck[C@aZC@ZC@ [C@[C[Ci[CZCnZCZC@JZCYC@ZC@\ZC[C[CZC[C@[C\C]C]C]C@s^C@O_CL_C^C@^C_CY_C^C@^C^C=`C`CRaCGcC@eCceC fCeCWcC#bC@J_C^CW_C_CaC@aC@s_C&_C_C@`CcaC@`C@`C`C)`C_CcC fC;eC@bCcC.cCL`C`C}dCulCaC=aC@aC`CE`C`C@cCcCcCaCY_C^C&^C^C@`C^C;^C]CB]Ci]C#]CZCZCZC[C=\Ci[C@O[CZCZCYCYCYC@ZCZCu[C[C[CG\C\C\C@]C}]C]C^C;^C@a^C@]C^CB_Cn^C^C]C@]C_C@`C@`CbC@8dC@dC@fC@JfCdCcCR`C_C^C@_CaCaCf`Cp_C@J_C_C`C`C`Ck`C@`C_C`CcC^eCcC@8cC=cCaC5_CaChCkaC@aC`C`C.`CbCudCcCbC_C@^C]C@^C_C@_C^C]C]C\C{]C[CZCZC}[C@O\C[C)[CZC{ZC{ZC@ZCYCYCYZCfZC[C@[C@[CY\C\CG]C]C#^C@^C@^Cc^CL^C@x]C0^C@]C@]C]C{]C]C_C#`C_Ci`CbC@cC@!eCfCeCdCaC_Cc_C@O_C`CaC@\aC_C@_C@_C@8`CBaC`C}`C@J`CR_C@_C@aC@adCdCLcC@cCdC_C^CdC}aC@xaCc`C_C}`C@cC@sdCcC5aC_C@\^CR]C ^C@_C^C]C^C@]C\C\CZC{ZCc[C@[C@[C[CZCZCZCYCYCYC@YCZCG[Cp[C5[C[CB\C\Cn]C]C@s^C@^C^C@]CG^C]C@\]C5]C]C)]C@a]C]C^C@ `C_C@^C@x`C@aCdCdCeCkeCbCTaCE`C@8_C#_C`C@aC@`C_C@_CBaC`C)aC@`C@\`C_C@O_Cu`C)bCeC@3cC@cC.dCaC^C@`CbC`Cf`C_C@!bC@dC#dCbC_C_C]C}]C^C_Ck^Ci^C^C+]C]C[CZC#[C[C@\C[CZCnZCZC@ZCYCZCYC@aZCZCu[C\Cu[CE\C\Cc]Cp]C@]Cu^C@^CT^C]C{]C@]C\CT\C\C@\\C\C^]C^C^C]C]Cn_Ci`C@abCcCdCeCbCcCaC@ `C^C_CaC#aC`C{_CaCaCiaC`C@`C@_C^C@_C@J`CicC@cC&cCcCEdC0_C@_CaC`C&`C}`CRdCeC@adCi`C`C^C@O]C@]C_C^C]C@!_C@8^C\CE\CG[CZC[C\CZCZCnZC&[C@ZC;ZC@ZCYCYC@!ZCZC@[C@[C@[C\C\C\C@]C^]C]C^C]C]C\C\C[C[C[C\C@\C\C@ ]C]C#]C]C^C_C`CaC@cC@dCbCBdC)dC}aC^C_C`C@aC`C@!`C@`CaCaC@`C^`C@x_C^C^C_CYaCdCbCcC@eC`C]CaCB`C`C@3bC@aeCdCEbC_C@`C@!^C)]C&^C@x^C@]Ck^C^C]C\C[C@ZC[C\C=[CZCpZCZC)[CZCRZC)ZCYCYCZC+[C[C@a[C[C@[CY\C\C;\Ci\C\CL\C[C@[C[C@[C[Cp[C[C@O[C[C[C\C+\C@[C\C]C@3_C@^Cp`CaC@cCbCdC@fCcC@_C^C`CbC`C@8`C@`CaCaC`C@a`Cf_C^Cp^C^Cc_CbCRcCbCdCdC@^C`CW`C{`C@dC5eCcC{`C`C=`C]C;]C@8^C]C@]C&_C^Cn\C@[C[C[C[C[CZCEZCEZCZCZC@ZCYCYCYCZC#ZCZC [CZC@[C@[C.\C+\C@x\C)\C\Cc[CZCZCZC0[C[CE[C[C@[C@\[C[CB[Cn[C@3[C@[CR]C^C]C^C_C@aCaCWdCfC@ fCaC^C`C}cCcaCaC@_CaCaC`C `C{_C^Cn^C^C@^C}`C;cCaCcC@8eC@`C`C_C.bCeCdCEbC_C@8aC^C@x]C@]C#^C\CE^C@x_C]C[C[CL[C@J[C;\C@8[CZCYZCZC[CZCZCYCYC+ZCYC@ZCnZCZCZC@[C@8[C@a[C[Ck[CY[C@ZCYZCpZC+ZC=ZC@ZC[CZC[CZC@J[C[CZC@ZC{ZC@x[C0\C]C0]C]C@_C`C@3aC@JcC@eCfC@ cC_C@`CYeCpbC`C@_C`C`C`C_C_C^CE^Ck^C^C^CfbCBaCaCcC cCu`C`CdC@eCcC`C`C`C]CT]C]C]CY]C@^CW_CR\C@[C}[C[C[C\CZC@3ZCZC[CG[C@ZCYCYC.ZCZC@ZCYC5ZCYZCWZCZCZC[C;[CG[C [C0ZC ZCYC@YCZCTZC@ZCZCZCZC[CZCZCfZCZCZC[C@\C=\C@8]CL^C@_C+`CWbCdC@fC@cC@`C_CueCdC`C)`C@x`Cu`C`CR`CB_C@^CL^Cp^C^C@8^CE`CaCR`CaC dC_CaCueCWdCaC@_C{aC^CE]C]C]C@x\C]C^C@x]CE[C[C[CT[C@[C@![CZC@ZC@ZC[C[C^ZC@ZC^YC@YCGZCYCYCYC@YCnZCZCZCnZCZCZC}ZCEZCRYCYCcYCYCYC=ZCZC@ZCZCZC{ZC [CYCBZC@\ZCZC[C[C\C]C@8_C@_C5aC@cCdC@cCYbCk`CcCfC aCR`C_C#`C@_C@`C_C@^Cu^C@\^Cn^C#^C@^C`C=`CB`CbC@O`C@dCdC@bC@a`Cp`C`Cp]C@ ]C]Cn]C@\C^Cp_C\CG[C.[CZC@x\C[CZCZC@ZC@3[C@J[CRZCLZC@YC0ZCZCZCYCYCYC@YCYC@\ZCZC@ZCZCZCZCYC+YCBYCXC@YC@YC@ZCkZCZC@ZCZC [CZCZCYZC@JZC@ZC@JZCp[C[C]C^C_C=`CbC{cC=cCbCfaCaC^fC@\bC+`C&`C`C_C`C+`C_Cc^C@s^C@\^C@O^C5^Cu_C`C@_C aCaC=eCdCaC@!`C@aC5_C]C@]C+]C\C@3]C@^C ^C[CE[CZC[C\C&[CZCZC@sZCE[CZCYC@JZC@YCZCBZC@3ZCYCYCYC@YCYC0ZCEZC0ZCZC@ [CZC0ZCRYC@YCXCYCYCYCZCZC@\ZCZCZC@J[C@8[CkZCZCYZC@\ZCuZC[C}]C^C_C_C@`CbC.bCLaCaCp`CcCRcC@`C&`C#`C_Cf`C@!aC._CL^Cp^C@]C@^C@]C^C@8_C@^C@_CncCdCbC)`C@`C`C@]C\C]Cu]C@a]C@]C@s^C@O\Cf[CZC5[C\C\C@ZCZCZCZCZCBZCZCZCYC#ZC@aZCRZCYCYC@\YCYC@ZC&ZC@ZC@OZC@ZC=[C@ZCYC0YC@JYCYYCYCYCYC@ZCZCZCZCZC[C&\CE[C@ZC@xZCfZCZCf[C\C@]C}_C`CW`C`CTaC`CaC;`C@aC@3cCaC`C_C_C`CaC_C^C=^C]C^C]C]CT^CE_C@^CeCcC`C^_CaC@ _C]C\C]C]C\C]C]C@\[CZCZC@[C]C@ \CZCZCZCZCZC@YC5ZCYCYC+ZC+ZCYZCYCkYCYCYCYC.ZCBZC@ZC@ZC@aZCZCWZCcYC)YCXCYCYCYC{ZCLZCEZCZC[C\C\Cu[C[CZCnZC@ZC[CY\C\C@^C@`C@_C@_Cu`C;`C@!aC_CY`CkbCBbCnaC`CW`C_CbC`C._C^C^C@ ^C^C.^C@\^CL_C+_C@dC.bC_C@8`C@`C@]C\C@]C@]C@]C@J]C]C)\CR[C@[C@ZC#]C]C0[CW[CZCZC@ZCYCYCYCYC@!ZC@!ZC.[CLZCYC@YCYCRYCYC@YC@8ZCZCZC+ZCZC ZCWYCpYCiYCYCYCZC@ZCkZCZC[C@3\C]C]C&\C[C@ZC@ [C@ZCZCi[C[C@ ]C5_Cp_C@ _C_C0`C@3`C#`C_CfaC@8bCpbC`CYaC_C`C@xbCc_C@x^C^C^C&^C@]C]CL^C5_CbC@`CT_C@`C^^C}\C}\Cc]C@]C]C@\C]C@[C[CZC[C@^C@\CG[C[C[C@ZCZCYC@sYCZC+ZC@xZCuZCZCYCYC@3ZCYC}YC=YCYC@ZC@ZCZCYC@YC@aZCYCYCYCYCYCZC^ZCZCZCZC@s\C0]C@3]C[C\CG[C@![C[C&[C[C[C\Cn]CG_C{^C5_C_C_C_C_C`CaCbC5bCbCaCE`C cC@`C^Cc^C]C]C]C]C]C@8_CaC_C_C_C]C\C\C]C]C@!]C\C[C@ZC[C)[C]C@s^C[C@J[C[C[C=ZCZCZCZCYCTZC;ZC@ZC@xZCfZCYC5ZCZCWYC+YCWYC;ZC@OZC@YCYC@3ZCYCpYC@YC)ZC@ZC@JZC@3ZC@ZCZC@ZCuZC@8\C@\C@\C[C\C[C[Cp\C5\C\C[CT\C\C]Cf^C^C@_C_Ck_C_C`CaC@bCfdCcCcC@_CfbC+bC{^C^Cn^C^C]C]C&^CY^CR`C)_C0`Ck^CR\C]CE]C^C]C\C@a\C[CZCZC[Cp^C]C+[C[C[C=ZCYCYCYC&ZC@ZC@aZC@\ZC0ZCZC@3ZC@sZCBZCYC#YCLYC@YC@ ZCZCYCYCTZCZC)YC;ZC@ZC[CZCZC&[C@![CZCZCu[C\C@[C[C@O\C[C\C\Cf]C@\CG]C@\C0\C{]C@]C@!^C_Cn`C@_C@_C`C@aCbCfCdCfC`C`C@JcC`C_C@O^C@^C]C]C]C@ ^C@s_CY_C_C\CB\C\C]C^C#]C)\C[C@ [C[C[C[C^C\C[C@\[C@JZCYZCYCYCYCkZCZCZC@8ZC@aZCZCZC@OZC@3ZCYCYCiYCYCYCYCfYCZC@3ZCYCYYCZC^[C0[CZCZCB[C[CZC[C{[C}[C@[C[C\C[C@[C\C{^C@s]C]C ]C@[C\C]C^C@_C`C_CE_C@`CWaC bCfCeCgCbC@x_CbCbC^_C^C)^C{]C]C@]C]C;_C`C@8^CG\C\C\C@a^C]C@\\C\C@a[CZC@[C@\[C@]Cp]C;[Cc[CZCZC5ZCYC@YC@ ZCZCZCZCZC}ZCZCZCWZC;ZCZC0YCEYC@\YC+ZCZCZC@YCYCZCYC.[C;[CL[C@ZC@ZC@ [C0[CZC@ZCZCE[C@ [C[C[C#[C[C[C]C]C@O^C{]C\CG]C]C^CT_C{`C`C@^C@_C@`C.aC@sfC hCfCeC}_C@`CcC `Cp_Cn^C^C]C^C^C@_C&_C@\C@\C@\Cp]C)^C@3]CL\C[CZCZCZC@[C@J^Ci\CT[Ci[CpZC.ZCZC@ ZC@YC@8ZC@ZC@ZC@ZCZCZC[C@YCYCZC#ZC@8YC@!YCYC0ZCYZCBZCYC+ZCYC@!ZC@3[C[CZCkZCZC;[C@J[CZCZC@![CZCZC{[C[C+[C[Cn[C\Ck]C^C&^C)]C;]C^C@!^Cu^C`CaC_C@^C_C`C@sdC.jCpeCfC`C@3_CEcC@ bC_C@^C@^C@]CT]C@ ^C@_C]C\C@\C@\C]C]C^\C@[C@[CZC)[CR[Cf]C@]C[C[CZCBZCZCYCYC@\ZC@sZCE[CE[CZCBZCZCZCYZCZC)ZCYC@3YCYCZCZCWZCZC@ZC@OZCYC@\ZC@ZCR[CZCZC@xZCZC@ZCi[C@8[C[C@ZC@ZC@8[C[C[CZCZC[C\C.]C]C@O]C5]C^C^C@s^C_C)aCY`C@^C@^Cu`C)bC@iCTfC@8dCbC^C@aaC&eCaCY_C_C@^C@\C]C_C@ ]C@J\C@\C@\C]C0]C[C[CZC=[CW[C#\C]C&]C[C[C@\ZC@ ZC@YCZCYC@aZC@ZC@[CZC#ZC@YCZCZCYC@ ZCBZCYC@aYCYCZCZCZCZCYCZC@ZCLZC@ZC[C[CZC#[CZC[CW[C{[C5[C [CZCZC@[C[CZC@aZC@ZC@x[C@\CW]C\C\C@^C@^C@^C@^C`C`C^CL^C_C@`CfC@gCbC@ bC_C`C)eC;dC@`C^C^C]C]C@ ^Cf\C\Cc\C ]C]Cu\C[Ci[C[CZC[C@ ]C#^C\CG[CZCZC@YC@YCYC@3ZC@ZC@3[C@s[C@![CuZC@\ZCZC0ZC@ ZCYCWZCYCYCEZC+[C[C@ZCZCYCZCYC@8ZC@OZC@ZCZCZCZCZC@a[CZC=[C@[CZCiZCZCB[C@\ZC5ZCLZCZCZC[Cu\C0\C\CR]C@]C^C^C^C_C^C#^C@s^C_CkdCfgC@bC@OaCY`C_CcC@gCcC@_C@8^C^^C\C@!]C[Cp\C@\Cp]C\C@[C)[C)[CZC@O[C@a\C^CR]C[C[CZCYCYCZCYCZC[CE[C@ZCZC@sZCZCZCYC@YC@YC)ZC@YC@YCZCf[CZC.ZCYC@ZC=ZC@YCYCZCi[CZCTZC@ZC@ZC@3[C[C@O[C@3[C@ZCfZCZCnZCZCGZC5ZCuZCZCZCc[C@[C[C@\Cc]C@]C]C@\C@^C@s^C@]C]CR_CbCfCbC_Ci`C;`C@aChC;fC@aC@J^C^C@]C\C5\C\C]Cn]C@3\C@a[CZCZC@J[C\C]C^Ci\Cn[CZCBZCYC.ZCZCLZCZC[CZCZC@ZCZCZCZCYC@YCWZC{ZCZCZC@[C[CZC@ZCYC{YCYCYC@ZCZC[C@ZC=ZC@OZCZC[CZC@ZC@[C@ZC;ZCYCZCWZC@YC@ ZC ZC@ZCWZCZCZCB[C[C\C\C)]CG\C@\C@x]C@]C@J]CB^CaC.eCcC_C)`C@3aC@aCWgCjCeC@_C]C]C[C#\CG\C]C\C@[C;[C=[Cf[C@[C\CT^Cn]C\C@ZCZCYZCYC@ZCYC[C@[Ck[CZC#ZCLZC[CZCYCYCYC@YCiZC@!ZCWZCZC[CZCYCYCYCYC@YC@ ZC@ZC[CZCZCfZC)ZC@ZCZCZC@ZC@ZC@ZC.ZC@ZCnZC@YCYC@ZC@ZCZCZC@ZCZC@\[C[CY\C\C[C[CB\C\C#]C@a]C_C@cC}cC`C_C@aC@3bC@JeC@mC@xhCbC@\^C]C[C#\C\C\C@\Cc[CZC[Cf[C\C@O^C^C@\C@J[CZC5ZCnZCYZCBZCZCZC[C@[C@sZC@aZC@ZCZCZCYCYCYC@ZC{ZC@ZC.ZC&[Cf[C.ZCZCYCYCYCZCGZC ZCZCZCYC@OZCYC;ZC@YCTZC@OZC@OZC@ZCZC0ZC.ZC0ZCYC#ZCYCZC@ZCcZC@!ZCuZCG[C@[C[C@[Ci[C@[C\Ci\C@\C]CbC#dC@!aCE_C@aCcC@cC@kClC@dC@x_C]C@\Cp\CW\C\C@[C@ZCZC [C[C@O]C^Ci]C\C[CpZCnZCZCiZCZC@ZC.[CZCZCEZCpZCZCnZCYCYC.YCZC@ZCZCEZCfZC@ZCZC=ZCYYCYC@YC@YCYCBZCpZC@ZCZCYC@!ZCYC5ZCZCYC@ ZC@YC@YCYC@\YCZCZCZCYCYC}ZC@ZCZC@ZCZC[CZCp[CZCZCE[C\C@x\C@\C]C5`CGdCaC_C `C{dCucCiCcoCiCnaC]C@a\CG\CW\C@\CZC@ZCZC5[Cn\C^C^C\C@ZCZC@\ZCZCYCRZC=ZC@3[C@ZCZCWZCEZC[CZCZCEYCWYCYC@ZCZCuZC.ZCYC{ZCZCYCYCYC@YC@YCYCZC@YCYCYCYC@YCiYCYCZCBYCcYC{YCYCkYCYCZC@8[CnZC0ZCYC@ZC[C^ZCYZCZCZC[C@ZCL[CTZCZC[C[C@J\C\CB^CbCibC;`C@_C@dCdC^fCuoCmC@dC^C[C@!\CG\Cf[C[CZC@[C^\C&^C^C]C@[C[C@OZC@!ZC@YC@YC.ZCZC@[C@ZCYZC@3ZCZC@sZCuZCYC@YCYCYCZCZC=ZCZCZCYCZCYCYCYYCXCYCYC@YC@YCEZCZCYCYCBYCTYC@aYCGYCXCYCWYCYC.ZCZCZCZCZC=ZC&[C@[C[CZC@ZC[CZC)ZCf[CYZCcZCZC[C[C@3\C#]C;`CbC)`C_CEbCeCcClC@oCgC`C@ \C\C[C@ [C@ZC@3[Cp[C\C^C@^C\C@![C@ZC@\ZCZCBZCRZC@ZC[C@ZCZC@ZC}ZCZCZC@YCYCYCYCYCRZCZC ZCZC@YCYCYCYCkYCTYC@XC&YCkYCYCYCRZCYCYCYCYC#YCEYCYC@XCXC@OYCYCYC;ZCZCkZCR[CZC@ [C}\C@[C[CR[C@\CW[C@JZC@ZCZC@\ZC@\ZC{[C[C\C0]C}^CaC@`C@_C`C+eCdCgCoC@kCbC\C\C[CZC@ZCZC[C]C^C0]C[CZC@JZCZCZC@ZCZC@ZCZCZCZCZC@xZC{ZCYCYCYCRYC@YCZCLZCuZC@YCkYC@YC&YCYCYC{YCXC0YCYC@YCYCYC@8ZC5ZC@YCYCYCYCiYC;YCXCYC@YC@xYC@YCYCLZCRZCZC=[CE[C@\C@ \C@[C@[C@]C@J\CZC@YC@[CZCZC}ZC@![C@[C\Ci]C@_CaC@3_C_CcCdCcC@mCmCdC[CR[CZCZCZC[C]C{^C]C\C@8[CZCZCZC@8ZC@sZCYZCZCZC@[C@8ZCZCZCZCYCYCcYCYCZCTZCYC@YCYC@YCGYCYC@YCZC@sYC0YC@YCkYC@sYCYCYCZCZCZCYC)ZCTYCYCYCYCYC@ZCZCZCYC@ZCYCZC@ZC[C[C\C0[C[C\C.\C@a[CZCZCZCZCZCZC;[C)\C@]C@]C#aC_CT_CaCdCbCgC@8nCgC[CB[CZCGZCZC#\C]CW^C\C@[CZC@\ZCpZCiZCZC@8ZC@\ZCZCZCZC [CZCZCYCYCkYCYCcYCZC@YCcYC;YC@ YCTYC@YC@YCYC@YC@YC@YCYCYCLYCiYCYCYCYCYCYCZCYC ZCYCZC#[C[CZC@YC@YC@ ZC@ZC{ZCZC[CZCu[C@ [C [C0\C@ \CZCYC5ZC@ZCZCZC@8ZCZC@s[C=]C]C_C}`C._C^`CncCLbC@ cC{kCWjC@[CZCpZCZC[C@\C@^C@s]C\C=[CZCZC^ZCZC}ZC@ZC@sZC@JZC@ZCZCTZC^ZCZCYCnYC0YCkYC@YCYC@YC=YCXC@XCXC@YCYC{YC@!ZCYC@YCYCYCcYC@YCYCLZC@YCuYCZCYCYC@YC@ZCTZC@[C^\Ci[C@YC5ZC@!ZCYC)ZCZC@JZCZC;[CZC@ZCZC{[C[CZC@8ZCZCZCZCYCGZC [Cn\C@]C^C`CE_C_C@bC{bCEaC@OfClC#[CZC5ZCZC[C^C^C\C[CZC^ZC@OZC@xZC[CZC+ZC@xZC@ [C@ZCZCYZCZCfZCYCGYCYCYCYCYCYCYCXCYCYC#ZC}YCTYCYC@YC@YC^YCYCYCYCYCYC@YCcYC@aYCYCYZCfZC@JZCZC \C@8\C[C@xZC@OZC{ZCZCYCZC@OZC^ZCZCWZC.ZCYZCZCZC&ZCYCZCEZCZC@ZC@YCBZC@[C]C]C@\`C_C^C@`CaC@`C@bC^jC#[CcZCZCp[C\C@]C\CT\C[CZC^ZCZC@ZCZCZCTZC@OZC@ZC@ZC@JZCYZC&ZCYC@\YCYCYCYC}YC)YCfYCYCXC@YCpYC@8ZCYCiYCYCYC ZCZC@YCYCYCYC@OZCYC@OYC@YC@YCZCZC@ZCZC[C[C.[C@OZC@ZCZC+ZCYCZC@8ZC5ZCZCWZCZCEZCGZC@ZCZCYC@YC@ZCYCZCYCYCZC@ \C0]C5_C`C_C_CaC@`C`C&eC@ZC@ZCZC[C^]C]C\C[CZCZC.ZCZC[CZC;ZC@8ZCZC[C@\ZC.ZC&ZCZCfYCYCXCBYC)YCXCXC^YC;YC@XCGYC ZCuYC^YC@YCYC@YCYC&ZC)ZCYZCZCZC@ZCYCZCYCiZC@ZCZC[C@ZC@J[CL[CZCZCYZCW[C@aZCYCYCYCZCfZC@ZCYCYCZCZC[CGZCZCYCYCZCYCYCZCG[C\Cu]CR`C^_C@^C`CBaC`CaCZCZC&[C@8\C]C@\C\C[CnZCZCZCi[C)[C{ZCYCuZC@[CZC@YCYCYC@YC@OYCYCXC@YCXC@XC@JYC@ YCXCXCYYC@YCYC@YC@aYCYCYZCZCcZC@ZCZCB[C@ZCZCBZCZCYC}ZCZCZCZCcZC@ZC [CYCYCZCZCuZCTYCYC@YCZCZCLZCYC&ZC)ZCTZCnZCZC=ZC)ZC@8ZC@JZCZCYC@8ZCZC[C@\C_C_C@3_C_C`C`C@`C@ZCZC{[CG]C@J]C@a\C \CZCZCZC[Ci[CpZC=ZCYC@ZC+[C@\ZC@YCYCYCXC;YCXC+YCXCYCXC YC@sYCXCXC@\YCYCLYCZC@YCEZCZCZC[C}ZCT[C[C@\[CW[CZCZC@ZC@ZC@ZCZCkZC@OZCYCZC@YC@YCZC@\ZC@!ZCYCYC@YCWZC=ZCcZCZCZCZCBZCZC@\ZC5[CZC@ZC@YCZCYCYCuZCZC\CE^C`CG_C_C}`C`C_C@ZCZC5\C@\]C\C@8\C{[CZCZCZC=[C[CYCZCYCZCpZC@ZC@ZCYCYCcYCXCYC+YCYCYCXC@XC5YCXCXCYC@ZCYCZC@ZCZC[CR[C@ [C@8[C[C\C[CW[CZCZCZCZC{ZC@JZCBZCYC=ZCYCYCYCYCYCYCWYC@\YC@8YCYCRZC@xZC&ZCYC}ZCYC@\ZC@ZC@![C@ZC;ZC@ZCBZCYCYC#ZCZCW[C\C@_C@_C^Cf_C`C_CZC[C@s\CY]C\C[C&[C0ZCZCZC;[CZC@YCYC[C@ZC0ZCYCYCYCYC#YCXC)YC+YCXCBXCfXCXCXCXC#YCYC ZC.ZCYCZC{[C@[C@x[C[C@[C@!\C&\C+\C[C=[CZCRZC@ZC@ZC@3ZCZCYC@ZCYCYC@aYC@!YC@8YC@YCYCYC@YCYC@ZC@ZC@ZC@ZCRZCZC0ZCZC@ZC@s[C#ZC[CZC@ZC}YC@YC@ZCZC[C@8^C@`C_Cc_C`C@_CZC[CB]Cc\C\C=[CZCEZCZCZC)[C@3ZC@ZC)ZC@ZCLZCGZC@YC@ZCYCnYCXC)YCYC+YC@sXC0XCiXCXCXC&YC@YCZC@aZCZCZC}[C[C@[C[C@s[C[C@8\C@\C\C&\Ci[CZC@ZCZC@ZCZCZCYCYCYC@sYCYC@aYC@xYCXCWYC@YCLYCYC=ZC;ZC@ [C@ZCZCBZC@ZC@3ZCfZC@[C@xZC@ZC[CZCYCYC&ZC@3ZC)[C]C@_C@`C_C_C@`Cc[Cn\C@]C\Cn\CZC@aZC[C@\[Cn[CZCYCYC@\ZCYZCZCYCYCYCYCLYCWYC@XC@3YC@XCfXC@8XC@ XCiYC@YCnYC)ZC@sZCZCZCp[C[C\C[C0[C[C[CW\C@]C@\C\Cp[C@ZC@ZC@ZCZCfZCYC0ZC@3ZC;YCYCYCkYCYYC@XC@XCYCYCYCGZCZCZCZC@sZC@ZC@ZC)ZC@YC+[CZCkZC[C[CYC@YC.ZCYCZC[C^C`CG`C^C@J`C@_C]C\C@\C@\C]C]C^\C@[C@[CZC)[CR[Cf]C@]C[C[CZCBZCZCYCYC@\ZC@sZCE[CE[CZCBZCZCZCYZCZC)ZCYC@3YCYCZCZCWZCZC@ZC@OZCYC@\ZC@ZCR[CZCZC@xZCZC@ZCi[C@8[C[C@ZC@ZC@8[C[C[CZCZC[C\C.]C]C@O]C5]C^C^C@s^C_C)aCY`C@^C@^Cu`C)bC@iCTfC@8dCbC^C@aaC&eCaCY_C_C@^C@\C]C_C@ ]C@J\C@\C@\C]C0]C[C[CZC=[CW[C#\C]C&]C[C[C@\ZC@ ZC@YCZCYC@aZC@ZC@[CZC#ZC@YCZCZCYC@ ZCBZCYC@aYCYCZCZCZCZCYCZC@ZCLZC@ZC[C[CZC#[CZC[CW[C{[C5[C [CZCZC@[C[CZC@aZC@ZC@x[C@\CW]C\C\C@^C@^C@^C@^C`C`C^CL^C_C@`CfC@gCbC@ bC_C`C)eC;dC@`C^C^C]C]CPKNkI@_~66data.npyPK666pyresample-1.8.1/pyresample/test/test_geometry.py000066400000000000000000001505351324347254000223230ustar00rootroot00000000000000from __future__ import with_statement import random import sys import numpy as np from pyresample import geo_filter, geometry from pyresample.geometry import (IncompatibleAreas, combine_area_extents_vertical, concatenate_area_defs) from pyresample.test.utils import catch_warnings try: from unittest.mock import MagicMock, patch except ImportError: # separate mock package py<3.3 from mock import MagicMock, patch if sys.version_info < (2, 7): import unittest2 as unittest else: import unittest class Test(unittest.TestCase): """Unit testing the geometry and geo_filter modules""" def assert_raises(self, exception, call_able, *args): """assertRaises() has changed from py2.6 to 2.7! Here is an attempt to cover both""" import sys if sys.version_info < (2, 7): self.assertRaises(exception, call_able, *args) else: with self.assertRaises(exception): call_able(*args) def test_lonlat_precomp(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) lons, lats = area_def.get_lonlats() area_def2 = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001], lons=lons, lats=lats) lon, lat = area_def.get_lonlat(400, 400) self.assertAlmostEqual(lon, 5.5028467120975835, msg='lon retrieval from precomputated grid failed') self.assertAlmostEqual(lat, 52.566998432390619, msg='lat retrieval from precomputated grid failed') def test_cartesian(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) cart_coords = area_def.get_cartesian_coords() exp = 5872039989466.8457031 self.assertTrue((cart_coords.sum() - exp) < 1e-7 * exp, msg='Calculation of cartesian coordinates failed') def test_base_type(self): lons1 = np.arange(-135., +135, 50.) lats = np.ones_like(lons1) * 70. # Test dtype is preserved without longitude wrapping basedef = geometry.BaseDefinition(lons1, lats) lons, _ = basedef.get_lonlats() self.assertEqual(lons.dtype, lons1.dtype, "BaseDefinition did not maintain dtype of longitudes (in:%s out:%s)" % (lons1.dtype, lons.dtype,)) lons1_ints = lons1.astype('int') basedef = geometry.BaseDefinition(lons1_ints, lats) lons, _ = basedef.get_lonlats() self.assertEqual(lons.dtype, lons1_ints.dtype, "BaseDefinition did not maintain dtype of longitudes (in:%s out:%s)" % (lons1_ints.dtype, lons.dtype,)) # Test dtype is preserved with automatic longitude wrapping lons2 = np.where(lons1 < 0, lons1 + 360, lons1) with catch_warnings() as w: basedef = geometry.BaseDefinition(lons2, lats) lons, _ = basedef.get_lonlats() self.assertEqual(lons.dtype, lons2.dtype, "BaseDefinition did not maintain dtype of longitudes (in:%s out:%s)" % (lons2.dtype, lons.dtype,)) lons2_ints = lons2.astype('int') with catch_warnings() as w: basedef = geometry.BaseDefinition(lons2_ints, lats) lons, _ = basedef.get_lonlats() self.assertEqual(lons.dtype, lons2_ints.dtype, "BaseDefinition did not maintain dtype of longitudes (in:%s out:%s)" % (lons2_ints.dtype, lons.dtype,)) def test_area_hash(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertIsInstance(hash(area_def), int) area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_ts': '50.00', 'lon_0': '8.00', 'lat_0': '50.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertIsInstance(hash(area_def), int) area_def = geometry.AreaDefinition('New area', 'Europe', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_ts': '50.00', 'lon_0': '8.00', 'lat_0': '50.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertIsInstance(hash(area_def), int) def test_get_array_hashable(self): arr = np.array([1.2, 1.3, 1.4, 1.5]) if sys.byteorder == 'little': # arr.view(np.uint8) reference = np.array([ 51, 51, 51, 51, 51, 51, 243, 63, 205, 204, 204, 204, 204, 204, 244, 63, 102, 102, 102, 102, 102, 102, 246, 63, 0, 0, 0, 0, 0, 0, 248, 63], dtype=np.uint8) else: # on le machines use arr.byteswap().view(np.uint8) reference = np.array([ 63, 243, 51, 51, 51, 51, 51, 51, 63, 244, 204, 204, 204, 204, 204, 205, 63, 246, 102, 102, 102, 102, 102, 102, 63, 248, 0, 0, 0, 0, 0, 0], dtype=np.uint8) np.testing.assert_allclose(reference, geometry.get_array_hashable(arr)) try: import xarray as xr except ImportError: pass else: xrarr = xr.DataArray(arr) np.testing.assert_allclose(reference, geometry.get_array_hashable(arr)) xrarr.attrs['hash'] = 42 self.assertEqual(geometry.get_array_hashable(xrarr), xrarr.attrs['hash']) def test_swath_hash(self): lons = np.array([1.2, 1.3, 1.4, 1.5]) lats = np.array([65.9, 65.86, 65.82, 65.78]) swath_def = geometry.SwathDefinition(lons, lats) self.assertIsInstance(hash(swath_def), int) try: import dask.array as da except ImportError: print("Not testing with dask arrays") else: dalons = da.from_array(lons, chunks=1000) dalats = da.from_array(lats, chunks=1000) swath_def = geometry.SwathDefinition(dalons, dalats) self.assertIsInstance(hash(swath_def), int) try: import xarray as xr except ImportError: print("Not testing with xarray") else: xrlons = xr.DataArray(lons) xrlats = xr.DataArray(lats) swath_def = geometry.SwathDefinition(xrlons, xrlats) self.assertIsInstance(hash(swath_def), int) try: import xarray as xr import dask.array as da except ImportError: print("Not testing with xarrays and dask arrays") else: xrlons = xr.DataArray(da.from_array(lons, chunks=1000)) xrlats = xr.DataArray(da.from_array(lats, chunks=1000)) swath_def = geometry.SwathDefinition(xrlons, xrlats) self.assertIsInstance(hash(swath_def), int) lons = np.ma.array([1.2, 1.3, 1.4, 1.5]) lats = np.ma.array([65.9, 65.86, 65.82, 65.78]) swath_def = geometry.SwathDefinition(lons, lats) self.assertIsInstance(hash(swath_def), int) def test_area_equal(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) area_def2 = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertFalse( area_def != area_def2, 'area_defs are not equal as expected') def test_not_area_equal(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', 'msg_full', {'a': '6378169.0', 'b': '6356584.0', 'h': '35785831.0', 'lon_0': '0', 'proj': 'geos'}, 3712, 3712, [-5568742.4000000004, -5568742.4000000004, 5568742.4000000004, 5568742.4000000004] ) self.assertFalse( area_def == msg_area, 'area_defs are not expected to be equal') def test_swath_equal_area(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) swath_def = geometry.SwathDefinition(*area_def.get_lonlats()) self.assertFalse( swath_def != area_def, "swath_def and area_def should be equal") area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertFalse( area_def != swath_def, "swath_def and area_def should be equal") def test_swath_not_equal_area(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) lons = np.array([1.2, 1.3, 1.4, 1.5]) lats = np.array([65.9, 65.86, 65.82, 65.78]) swath_def = geometry.SwathDefinition(lons, lats) self.assertFalse( swath_def == area_def, "swath_def and area_def should be different") area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertFalse( area_def == swath_def, "swath_def and area_def should be different") def test_grid_filter_valid(self): lons = np.array([-170, -30, 30, 170]) lats = np.array([20, -40, 50, -80]) swath_def = geometry.SwathDefinition(lons, lats) filter_area = geometry.AreaDefinition('test', 'test', 'test', {'proj': 'eqc', 'lon_0': 0.0, 'lat_0': 0.0}, 8, 8, (-20037508.34, -10018754.17, 20037508.34, 10018754.17)) filter = np.array([[1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], ]) grid_filter = geo_filter.GridFilter(filter_area, filter) valid_index = grid_filter.get_valid_index(swath_def) expected = np.array([1, 0, 0, 1]) self.assertTrue( np.array_equal(valid_index, expected), 'Failed to find grid filter') def test_grid_filter(self): lons = np.array([-170, -30, 30, 170]) lats = np.array([20, -40, 50, -80]) swath_def = geometry.SwathDefinition(lons, lats) data = np.array([1, 2, 3, 4]) filter_area = geometry.AreaDefinition('test', 'test', 'test', {'proj': 'eqc', 'lon_0': 0.0, 'lat_0': 0.0}, 8, 8, (-20037508.34, -10018754.17, 20037508.34, 10018754.17)) filter = np.array([[1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], ]) grid_filter = geo_filter.GridFilter(filter_area, filter) swath_def_f, data_f = grid_filter.filter(swath_def, data) expected = np.array([1, 4]) self.assertTrue( np.array_equal(data_f, expected), 'Failed grid filtering data') expected_lons = np.array([-170, 170]) expected_lats = np.array([20, -80]) self.assertTrue(np.array_equal(swath_def_f.lons[:], expected_lons) and np.array_equal(swath_def_f.lats[:], expected_lats), 'Failed finding grid filtering lon lats') def test_grid_filter2D(self): lons = np.array([[-170, -30, 30, 170], [-170, -30, 30, 170]]) lats = np.array([[20, -40, 50, -80], [25, -35, 55, -75]]) swath_def = geometry.SwathDefinition(lons, lats) data1 = np.ones((2, 4)) data2 = np.ones((2, 4)) * 2 data3 = np.ones((2, 4)) * 3 data = np.dstack((data1, data2, data3)) filter_area = geometry.AreaDefinition('test', 'test', 'test', {'proj': 'eqc', 'lon_0': 0.0, 'lat_0': 0.0}, 8, 8, (-20037508.34, -10018754.17, 20037508.34, 10018754.17)) filter = np.array([[1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 1], ]) grid_filter = geo_filter.GridFilter(filter_area, filter, nprocs=2) swath_def_f, data_f = grid_filter.filter(swath_def, data) expected = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]) self.assertTrue( np.array_equal(data_f, expected), 'Failed 2D grid filtering data') expected_lons = np.array([-170, 170, -170, 170]) expected_lats = np.array([20, -80, 25, -75]) self.assertTrue(np.array_equal(swath_def_f.lons[:], expected_lons) and np.array_equal(swath_def_f.lats[:], expected_lats), 'Failed finding 2D grid filtering lon lats') def test_boundary(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 10, 10, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) proj_x_boundary, proj_y_boundary = area_def.projection_x_coords, area_def.projection_y_coords expected_x = np.array([-1250912.72, -1010912.72, -770912.72, -530912.72, -290912.72, -50912.72, 189087.28, 429087.28, 669087.28, 909087.28]) expected_y = np.array([1370031.36, 1130031.36, 890031.36, 650031.36, 410031.36, 170031.36, -69968.64, -309968.64, -549968.64, -789968.64]) self.assertTrue(np.allclose(proj_x_boundary, expected_x), 'Failed to find projection x coords') self.assertTrue(np.allclose(proj_y_boundary, expected_y), 'Failed to find projection y coords') def test_area_extent_ll(self): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 10, 10, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) self.assertAlmostEqual(sum(area_def.area_extent_ll), 122.06448093539757, 5, 'Failed to get lon and lats of area extent') def test_latlong_area(self): area_def = geometry.AreaDefinition('', '', '', {'proj': 'latlong'}, 360, 180, [-180, -90, 180, 90]) lons, lats = area_def.get_lonlats() self.assertEqual(lons[0, 0], -179.5) self.assertEqual(lats[0, 0], 89.5) def test_lonlat2colrow(self): from pyresample import utils area_id = 'meteosat_0deg' area_name = 'Meteosat 0 degree Service' proj_id = 'geos0' x_size = 3712 y_size = 3712 area_extent = [-5570248.477339261, -5567248.074173444, 5567248.074173444, 5570248.477339261] proj_dict = {'a': '6378169.00', 'b': '6356583.80', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos'} area = utils.get_area_def(area_id, area_name, proj_id, proj_dict, x_size, y_size, area_extent) # Imatra, Wiesbaden longitudes = np.array([28.75242, 8.24932]) latitudes = np.array([61.17185, 50.08258]) cols__, rows__ = area.lonlat2colrow(longitudes, latitudes) # test arrays cols_expects = np.array([2304, 2040]) rows_expects = np.array([186, 341]) self.assertTrue((cols__ == cols_expects).all()) self.assertTrue((rows__ == rows_expects).all()) # test scalars lon, lat = (-8.125547604568746, -14.345524111874646) self.assertTrue(area.lonlat2colrow(lon, lat) == (1567, 2375)) def test_colrow2lonlat(self): from pyresample import utils area_id = 'meteosat_0deg' area_name = 'Meteosat 0 degree Service' proj_id = 'geos0' x_size = 3712 y_size = 3712 area_extent = [-5570248.477339261, -5567248.074173444, 5567248.074173444, 5570248.477339261] proj_dict = {'a': '6378169.00', 'b': '6356583.80', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos'} area = utils.get_area_def(area_id, area_name, proj_id, proj_dict, x_size, y_size, area_extent) # Imatra, Wiesbaden cols = np.array([2304, 2040]) rows = np.array([186, 341]) lons__, lats__ = area.colrow2lonlat(cols, rows) # test arrays lon_expects = np.array([28.77763033, 8.23765962]) lat_expects = np.array([61.20120556, 50.05836402]) self.assertTrue(np.allclose(lons__, lon_expects, rtol=0, atol=1e-7)) self.assertTrue(np.allclose(lats__, lat_expects, rtol=0, atol=1e-7)) # test scalars lon__, lat__ = area.colrow2lonlat(1567, 2375) lon_expect = -8.125547604568746 lat_expect = -14.345524111874646 self.assertTrue(np.allclose(lon__, lon_expect, rtol=0, atol=1e-7)) self.assertTrue(np.allclose(lat__, lat_expect, rtol=0, atol=1e-7)) def test_get_xy_from_lonlat(self): """Test the function get_xy_from_lonlat""" from pyresample import utils area_id = 'test' area_name = 'Test area with 2x2 pixels' proj_id = 'test' x_size = 2 y_size = 2 area_extent = [1000000, 0, 1050000, 50000] proj_dict = {"proj": 'laea', 'lat_0': '60', 'lon_0': '0', 'a': '6371228.0', 'units': 'm'} area_def = utils.get_area_def(area_id, area_name, proj_id, proj_dict, x_size, y_size, area_extent) import pyproj p__ = pyproj.Proj(proj_dict) lon_ul, lat_ul = p__(1000000, 50000, inverse=True) lon_ur, lat_ur = p__(1050000, 50000, inverse=True) lon_ll, lat_ll = p__(1000000, 0, inverse=True) lon_lr, lat_lr = p__(1050000, 0, inverse=True) eps_lonlat = 0.01 eps_meters = 100 x__, y__ = area_def.get_xy_from_lonlat(lon_ul + eps_lonlat, lat_ul - eps_lonlat) x_expect, y_expect = 0, 0 self.assertEqual(x__, x_expect) self.assertEqual(y__, y_expect) x__, y__ = area_def.get_xy_from_lonlat(lon_ur - eps_lonlat, lat_ur - eps_lonlat) self.assertEqual(x__, 1) self.assertEqual(y__, 0) x__, y__ = area_def.get_xy_from_lonlat(lon_ll + eps_lonlat, lat_ll + eps_lonlat) self.assertEqual(x__, 0) self.assertEqual(y__, 1) x__, y__ = area_def.get_xy_from_lonlat(lon_lr - eps_lonlat, lat_lr + eps_lonlat) self.assertEqual(x__, 1) self.assertEqual(y__, 1) lon, lat = p__(1025000 - eps_meters, 25000 - eps_meters, inverse=True) x__, y__ = area_def.get_xy_from_lonlat(lon, lat) self.assertEqual(x__, 0) self.assertEqual(y__, 1) lon, lat = p__(1025000 + eps_meters, 25000 - eps_meters, inverse=True) x__, y__ = area_def.get_xy_from_lonlat(lon, lat) self.assertEqual(x__, 1) self.assertEqual(y__, 1) lon, lat = p__(1025000 - eps_meters, 25000 + eps_meters, inverse=True) x__, y__ = area_def.get_xy_from_lonlat(lon, lat) self.assertEqual(x__, 0) self.assertEqual(y__, 0) lon, lat = p__(1025000 + eps_meters, 25000 + eps_meters, inverse=True) x__, y__ = area_def.get_xy_from_lonlat(lon, lat) self.assertEqual(x__, 1) self.assertEqual(y__, 0) lon, lat = p__(999000, -10, inverse=True) self.assert_raises(ValueError, area_def.get_xy_from_lonlat, lon, lat) self.assert_raises(ValueError, area_def.get_xy_from_lonlat, 0., 0.) # Test getting arrays back: lons = [lon_ll + eps_lonlat, lon_ur - eps_lonlat] lats = [lat_ll + eps_lonlat, lat_ur - eps_lonlat] x__, y__ = area_def.get_xy_from_lonlat(lons, lats) x_expects = np.array([0, 1]) y_expects = np.array([1, 0]) self.assertTrue((x__.data == x_expects).all()) self.assertTrue((y__.data == y_expects).all()) def assert_np_dict_allclose(dict1, dict2): assert set(dict1.keys()) == set(dict2.keys()) for key, val in dict1.items(): try: np.testing.assert_allclose(val, dict2[key]) except TypeError: assert(val == dict2[key]) class TestSwathDefinition(unittest.TestCase): """Test the SwathDefinition.""" def test_swath(self): lons1 = np.fromfunction(lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats1 = np.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons1, lats1) lons2, lats2 = swath_def.get_lonlats() self.assertFalse(id(lons1) != id(lons2) or id(lats1) != id(lats2), msg='Caching of swath coordinates failed') def test_concat_1d(self): lons1 = np.array([1, 2, 3]) lats1 = np.array([1, 2, 3]) lons2 = np.array([4, 5, 6]) lats2 = np.array([4, 5, 6]) swath_def1 = geometry.SwathDefinition(lons1, lats1) swath_def2 = geometry.SwathDefinition(lons2, lats2) swath_def_concat = swath_def1.concatenate(swath_def2) expected = np.array([1, 2, 3, 4, 5, 6]) self.assertTrue(np.array_equal(swath_def_concat.lons, expected) and np.array_equal(swath_def_concat.lons, expected), 'Failed to concatenate 1D swaths') def test_concat_2d(self): lons1 = np.array([[1, 2, 3], [3, 4, 5], [5, 6, 7]]) lats1 = np.array([[1, 2, 3], [3, 4, 5], [5, 6, 7]]) lons2 = np.array([[4, 5, 6], [6, 7, 8]]) lats2 = np.array([[4, 5, 6], [6, 7, 8]]) swath_def1 = geometry.SwathDefinition(lons1, lats1) swath_def2 = geometry.SwathDefinition(lons2, lats2) swath_def_concat = swath_def1.concatenate(swath_def2) expected = np.array( [[1, 2, 3], [3, 4, 5], [5, 6, 7], [4, 5, 6], [6, 7, 8]]) self.assertTrue(np.array_equal(swath_def_concat.lons, expected) and np.array_equal(swath_def_concat.lons, expected), 'Failed to concatenate 2D swaths') def test_append_1d(self): lons1 = np.array([1, 2, 3]) lats1 = np.array([1, 2, 3]) lons2 = np.array([4, 5, 6]) lats2 = np.array([4, 5, 6]) swath_def1 = geometry.SwathDefinition(lons1, lats1) swath_def2 = geometry.SwathDefinition(lons2, lats2) swath_def1.append(swath_def2) expected = np.array([1, 2, 3, 4, 5, 6]) self.assertTrue(np.array_equal(swath_def1.lons, expected) and np.array_equal(swath_def1.lons, expected), 'Failed to append 1D swaths') def test_append_2d(self): lons1 = np.array([[1, 2, 3], [3, 4, 5], [5, 6, 7]]) lats1 = np.array([[1, 2, 3], [3, 4, 5], [5, 6, 7]]) lons2 = np.array([[4, 5, 6], [6, 7, 8]]) lats2 = np.array([[4, 5, 6], [6, 7, 8]]) swath_def1 = geometry.SwathDefinition(lons1, lats1) swath_def2 = geometry.SwathDefinition(lons2, lats2) swath_def1.append(swath_def2) expected = np.array( [[1, 2, 3], [3, 4, 5], [5, 6, 7], [4, 5, 6], [6, 7, 8]]) self.assertTrue(np.array_equal(swath_def1.lons, expected) and np.array_equal(swath_def1.lons, expected), 'Failed to append 2D swaths') def test_swath_equal(self): """Test swath equality.""" lons = np.array([1.2, 1.3, 1.4, 1.5]) lats = np.array([65.9, 65.86, 65.82, 65.78]) swath_def = geometry.SwathDefinition(lons, lats) swath_def2 = geometry.SwathDefinition(lons, lats) self.assertFalse( swath_def != swath_def2, 'swath_defs are not equal as expected') def test_swath_not_equal(self): """Test swath inequality.""" lats1 = np.array([65.9, 65.86, 65.82, 65.78]) lons = np.array([1.2, 1.3, 1.4, 1.5]) lats2 = np.array([65.91, 65.85, 65.80, 65.75]) swath_def = geometry.SwathDefinition(lons, lats1) swath_def2 = geometry.SwathDefinition(lons, lats2) self.assertFalse( swath_def == swath_def2, 'swath_defs are not expected to be equal') def test_compute_omerc_params(self): """Test omerc parameters computation.""" lats = np.array([[85.23900604248047, 62.256004333496094, 35.58000183105469], [80.84000396728516, 60.74200439453125, 34.08500289916992], [67.07600402832031, 54.147003173828125, 30.547000885009766]]).T lons = np.array([[-90.67900085449219, -21.565000534057617, -21.525001525878906], [79.11000061035156, 7.284000396728516, -5.107000350952148], [81.26400756835938, 29.672000885009766, 10.260000228881836]]).T area = geometry.SwathDefinition(lons, lats) proj_dict = {'no_rot': True, 'lonc': 5.340645620216994, 'ellps': 'WGS84', 'proj': 'omerc', 'alpha': 19.022450179020247, 'lat_0': 60.7420043944989} assert_np_dict_allclose(area._compute_omerc_parameters('WGS84'), proj_dict) def test_get_edge_lonlats(self): """Test the `get_edge_lonlats` functionality.""" lats = np.array([[85.23900604248047, 62.256004333496094, 35.58000183105469], [80.84000396728516, 60.74200439453125, 34.08500289916992], [67.07600402832031, 54.147003173828125, 30.547000885009766]]).T lons = np.array([[-90.67900085449219, -21.565000534057617, -21.525001525878906], [79.11000061035156, 7.284000396728516, -5.107000350952148], [81.26400756835938, 29.672000885009766, 10.260000228881836]]).T area = geometry.SwathDefinition(lons, lats) lons, lats = area.get_edge_lonlats() np.testing.assert_allclose(lons, [-90.67900085, 79.11000061, 81.26400757, 81.26400757, 29.67200089, 10.26000023, 10.26000023, -5.10700035, -21.52500153, -21.52500153, -21.56500053, -90.67900085]) np.testing.assert_allclose(lats, [85.23900604, 80.84000397, 67.07600403, 67.07600403, 54.14700317, 30.54700089, 30.54700089, 34.0850029, 35.58000183, 35.58000183, 62.25600433, 85.23900604]) lats = np.array([[80., 80., 80.], [80., 90., 80], [80., 80., 80.]]).T lons = np.array([[-45., 0., 45.], [-90, 0., 90.], [-135., -180., 135.]]).T area = geometry.SwathDefinition(lons, lats) lons, lats = area.get_edge_lonlats() np.testing.assert_allclose(lons, [-45., -90., -135., -135., -180., 135., 135., 90., 45., 45., 0., -45.]) np.testing.assert_allclose(lats, [80., 80., 80., 80., 80., 80., 80., 80., 80., 80., 80., 80.]) def test_compute_optimal_bb(self): """Test computing the bb area.""" lats = np.array([[85.23900604248047, 62.256004333496094, 35.58000183105469], [80.84000396728516, 60.74200439453125, 34.08500289916992], [67.07600402832031, 54.147003173828125, 30.547000885009766]]).T lons = np.array([[-90.67900085449219, -21.565000534057617, -21.525001525878906], [79.11000061035156, 7.284000396728516, -5.107000350952148], [81.26400756835938, 29.672000885009766, 10.260000228881836]]).T area = geometry.SwathDefinition(lons, lats) res = area.compute_optimal_bb_area({'proj': 'omerc', 'ellps': 'WGS84'}) np.testing.assert_allclose(res.area_extent, (2286629.731529, -2359693.817959, 11729881.856072, 2437001.523925)) proj_dict = {'no_rot': True, 'lonc': 5.340645620216994, 'ellps': 'WGS84', 'proj': 'omerc', 'alpha': 19.022450179020247, 'lat_0': 60.7420043944989} assert_np_dict_allclose(res.proj_dict, proj_dict) self.assertEqual(res.shape, (3, 3)) class TestStackedAreaDefinition(unittest.TestCase): """Test the StackedAreaDefition.""" def test_append(self): """Appending new definitions.""" area1 = geometry.AreaDefinition("area1", 'area1', "geosmsg", {'a': '6378169.0', 'b': '6356583.8', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos', 'units': 'm'}, 5568, 464, (3738502.0095458371, 3715498.9194295374, -1830246.0673044831, 3251436.5796920112) ) area2 = geometry.AreaDefinition("area2", 'area2', "geosmsg", {'a': '6378169.0', 'b': '6356583.8', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos', 'units': 'm'}, 5568, 464, (3738502.0095458371, 4179561.259167064, -1830246.0673044831, 3715498.9194295374) ) adef = geometry.StackedAreaDefinition(area1, area2) self.assertEqual(len(adef.defs), 1) self.assertTupleEqual(adef.defs[0].area_extent, (3738502.0095458371, 4179561.259167064, -1830246.0673044831, 3251436.5796920112)) # same area3 = geometry.AreaDefinition("area3", 'area3', "geosmsg", {'a': '6378169.0', 'b': '6356583.8', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos', 'units': 'm'}, 5568, 464, (3738502.0095458371, 3251436.5796920112, -1830246.0673044831, 2787374.2399544837)) adef.append(area3) self.assertEqual(len(adef.defs), 1) self.assertTupleEqual(adef.defs[0].area_extent, (3738502.0095458371, 4179561.259167064, -1830246.0673044831, 2787374.2399544837)) self.assertIsInstance(adef.squeeze(), geometry.AreaDefinition) # transition area4 = geometry.AreaDefinition("area4", 'area4', "geosmsg", {'a': '6378169.0', 'b': '6356583.8', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos', 'units': 'm'}, 5568, 464, (5567747.7409681147, 2787374.2399544837, -1000.3358822065015, 2323311.9002169576)) adef.append(area4) self.assertEqual(len(adef.defs), 2) self.assertTupleEqual(adef.defs[-1].area_extent, (5567747.7409681147, 2787374.2399544837, -1000.3358822065015, 2323311.9002169576)) self.assertEqual(adef.y_size, 4 * 464) self.assertIsInstance(adef.squeeze(), geometry.StackedAreaDefinition) adef2 = geometry.StackedAreaDefinition() self.assertEqual(len(adef2.defs), 0) adef2.append(adef) self.assertEqual(len(adef2.defs), 2) self.assertTupleEqual(adef2.defs[-1].area_extent, (5567747.7409681147, 2787374.2399544837, -1000.3358822065015, 2323311.9002169576)) self.assertEqual(adef2.y_size, 4 * 464) def test_get_lonlats(self): """Test get_lonlats on StackedAreaDefinition.""" area3 = geometry.AreaDefinition("area3", 'area3', "geosmsg", {'a': '6378169.0', 'b': '6356583.8', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos', 'units': 'm'}, 5568, 464, (3738502.0095458371, 3251436.5796920112, -1830246.0673044831, 2787374.2399544837)) # transition area4 = geometry.AreaDefinition("area4", 'area4', "geosmsg", {'a': '6378169.0', 'b': '6356583.8', 'h': '35785831.0', 'lon_0': '0.0', 'proj': 'geos', 'units': 'm'}, 5568, 464, (5567747.7409681147, 2787374.2399544837, -1000.3358822065015, 2323311.9002169576)) final_area = geometry.StackedAreaDefinition(area3, area4) self.assertEqual(len(final_area.defs), 2) lons, lats = final_area.get_lonlats() lons0, lats0 = final_area.defs[0].get_lonlats() lons1, lats1 = final_area.defs[1].get_lonlats() np.testing.assert_allclose(lons[:464, :], lons0) np.testing.assert_allclose(lons[464:, :], lons1) np.testing.assert_allclose(lats[:464, :], lats0) np.testing.assert_allclose(lats[464:, :], lats1) def test_combine_area_extents(self): """Test combination of area extents.""" area1 = MagicMock() area1.area_extent = (1, 2, 3, 4) area2 = MagicMock() area2.area_extent = (1, 6, 3, 2) res = combine_area_extents_vertical(area1, area2) self.assertListEqual(res, [1, 6, 3, 4]) area1 = MagicMock() area1.area_extent = (1, 2, 3, 4) area2 = MagicMock() area2.area_extent = (1, 4, 3, 6) res = combine_area_extents_vertical(area1, area2) self.assertListEqual(res, [1, 2, 3, 6]) def test_append_area_defs_fail(self): """Fail appending areas.""" area1 = MagicMock() area1.proj_dict = {"proj": 'A'} area1.x_size = 4 area1.y_size = 5 area2 = MagicMock() area2.proj_dict = {'proj': 'B'} area2.x_size = 4 area2.y_size = 6 # res = combine_area_extents_vertical(area1, area2) self.assertRaises(IncompatibleAreas, concatenate_area_defs, area1, area2) @patch('pyresample.geometry.AreaDefinition') def test_append_area_defs(self, adef): """Test appending area definitions.""" x_size = random.randrange(6425) area1 = MagicMock() area1.area_extent = (1, 2, 3, 4) area1.proj_dict = {"proj": 'A'} area1.y_size = random.randrange(6425) area1.x_size = x_size area2 = MagicMock() area2.area_extent = (1, 4, 3, 6) area2.proj_dict = {"proj": 'A'} area2.y_size = random.randrange(6425) area2.x_size = x_size res = concatenate_area_defs(area1, area2) area_extent = [1, 2, 3, 6] y_size = area1.y_size + area2.y_size adef.assert_called_once_with(area1.area_id, area1.name, area1.proj_id, area1.proj_dict, area1.x_size, y_size, area_extent) class TestDynamicAreaDefinition(unittest.TestCase): """Test the DynamicAreaDefinition class.""" def test_freeze(self): """Test freezing the area.""" area = geometry.DynamicAreaDefinition('test_area', 'A test area', {'proj': 'laea'}) lons = [10, 10, 22, 22] lats = [50, 66, 66, 50] result = area.freeze((lons, lats), resolution=3000, proj_info={'lon0': 16, 'lat0': 58}) np.testing.assert_allclose(result.area_extent, (538546.7274949469, 5380808.879250369, 1724415.6519203288, 6998895.701001488)) self.assertEqual(result.proj_dict['lon0'], 16) self.assertEqual(result.proj_dict['lat0'], 58) self.assertEqual(result.x_size, 395) self.assertEqual(result.y_size, 539) def test_freeze_with_bb(self): """Test freezing the area with bounding box computation.""" # area = geometry.DynamicAreaDefinition('test_area', 'A test area', # {'proj': 'omerc'}, # optimize_projection=False) # lons = [[10, 12.1, 14.2, 16.3], # [10, 12, 14, 16], # [10, 11.9, 13.8, 15.7]] # lats = [[66, 67, 68, 69.], # [58, 59, 60, 61], # [50, 51, 52, 53]] # sdef = geometry.SwathDefinition(lons, lats) # result = area.freeze(sdef, # resolution=1000) # self.assertTupleEqual(result.area_extent, (5578795.1654752363, # -270848.61872542271, # 7694893.3964453982, # 126974.877141819)) # self.assertEqual(result.x_size, 2116) # self.assertEqual(result.y_size, 398) area = geometry.DynamicAreaDefinition('test_area', 'A test area', {'proj': 'omerc'}, optimize_projection=True) lons = [[10, 12.1, 14.2, 16.3], [10, 12, 14, 16], [10, 11.9, 13.8, 15.7]] lats = [[66, 67, 68, 69.], [58, 59, 60, 61], [50, 51, 52, 53]] sdef = geometry.SwathDefinition(lons, lats) result = area.freeze(sdef, resolution=1000) np.testing.assert_allclose(result.area_extent, (5050520.6077326955, -336485.86803662963, 8223167.9541879389, 192612.12645302597)) self.assertEqual(result.x_size, 3) self.assertEqual(result.y_size, 4) def test_compute_domain(self): """Test computing size and area extent.""" area = geometry.DynamicAreaDefinition('test_area', 'A test area', {'proj': 'laea'}) corners = [1, 1, 9, 9] self.assertRaises(ValueError, area.compute_domain, corners, 1, 1) area_extent, x_size, y_size = area.compute_domain(corners, size=(5, 5)) self.assertTupleEqual(area_extent, (0, 0, 10, 10)) self.assertEqual(x_size, 5) self.assertEqual(y_size, 5) area_extent, x_size, y_size = area.compute_domain(corners, resolution=2) self.assertTupleEqual(area_extent, (0, 0, 10, 10)) self.assertEqual(x_size, 5) self.assertEqual(y_size, 5) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) mysuite.addTest(loader.loadTestsFromTestCase(TestStackedAreaDefinition)) mysuite.addTest(loader.loadTestsFromTestCase(TestDynamicAreaDefinition)) mysuite.addTest(loader.loadTestsFromTestCase(TestSwathDefinition)) return mysuite if __name__ == '__main__': unittest.main() pyresample-1.8.1/pyresample/test/test_grid.py000066400000000000000000000231001324347254000214000ustar00rootroot00000000000000import copy import unittest import numpy as np from pyresample import grid, geometry, utils def mp(f): f.mp = True return f def tmp(f): f.tmp = True return f class Test(unittest.TestCase): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) area_def2 = geometry.AreaDefinition('areaD2', 'Europe (3km, HRV, VTC)', 'areaD2', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 5, 5, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', 'msg_full', {'a': '6378169.0', 'b': '6356584.0', 'h': '35785831.0', 'lon_0': '0', 'proj': 'geos'}, 3712, 3712, [-5568742.4000000004, -5568742.4000000004, 5568742.4000000004, 5568742.4000000004] ) def test_linesample(self): data = np.fromfunction(lambda y, x: y * x, (40, 40)) rows = np.array([[1, 2], [3, 4]]) cols = np.array([[25, 26], [27, 28]]) res = grid.get_image_from_linesample(rows, cols, data) expected = np.array([[25., 52.], [81., 112.]]) self.assertTrue(np.array_equal(res, expected), 'Linesample failed') def test_linesample_multi(self): data1 = np.fromfunction(lambda y, x: y * x, (40, 40)) data2 = np.fromfunction(lambda y, x: 2 * y * x, (40, 40)) data3 = np.fromfunction(lambda y, x: 3 * y * x, (40, 40)) data = np.zeros((40, 40, 3)) data[:, :, 0] = data1 data[:, :, 1] = data2 data[:, :, 2] = data3 rows = np.array([[1, 2], [3, 4]]) cols = np.array([[25, 26], [27, 28]]) res = grid.get_image_from_linesample(rows, cols, data) expected = np.array([[[25., 50., 75.], [52., 104., 156.]], [[81., 162., 243.], [112., 224., 336.]]]) self.assertTrue(np.array_equal(res, expected), 'Linesample failed') def test_from_latlon(self): data = np.fromfunction(lambda y, x: y * x, (800, 800)) lons = np.fromfunction(lambda y, x: x, (10, 10)) lats = np.fromfunction(lambda y, x: 50 - (5.0 / 10) * y, (10, 10)) #source_def = grid.AreaDefinition.get_from_area_def(self.area_def) source_def = self.area_def res = grid.get_image_from_lonlats(lons, lats, source_def, data) expected = np.array([[129276., 141032., 153370., 165804., 178334., 190575., 202864., 214768., 226176., 238080.], [133056., 146016., 158808., 171696., 184320., 196992., 209712., 222480., 234840., 247715.], [137026., 150150., 163370., 177215., 190629., 203756., 217464., 230256., 243048., 256373.], [140660., 154496., 168714., 182484., 196542., 210650., 224257., 238464., 251712., 265512.], [144480., 158484., 173148., 187912., 202776., 217358., 231990., 246240., 259920., 274170.], [147968., 163261., 178398., 193635., 208616., 223647., 238728., 253859., 268584., 283898.], [151638., 167121., 182704., 198990., 214775., 230280., 246442., 261617., 276792., 292574.], [154980., 171186., 187860., 204016., 220542., 237120., 253125., 269806., 285456., 301732.], [158500., 175536., 192038., 209280., 226626., 243697., 260820., 277564., 293664., 310408.], [161696., 179470., 197100., 214834., 232320., 250236., 267448., 285090., 302328., 320229.]]) self.assertTrue( np.array_equal(res, expected), 'Sampling from lat lon failed') def test_proj_coords(self): #res = grid.get_proj_coords(self.area_def2) res = self.area_def2.get_proj_coords() cross_sum = res[0].sum() + res[1].sum() expected = 2977965.9999999963 self.assertAlmostEqual( cross_sum, expected, msg='Calculation of proj coords failed') def test_latlons(self): #res = grid.get_lonlats(self.area_def2) res = self.area_def2.get_lonlats() cross_sum = res[0].sum() + res[1].sum() expected = 1440.8280578215431 self.assertAlmostEqual( cross_sum, expected, msg='Calculation of lat lons failed') @mp def test_latlons_mp(self): #res = grid.get_lonlats(self.area_def2, nprocs=2) res = self.area_def2.get_lonlats(nprocs=2) cross_sum = res[0].sum() + res[1].sum() expected = 1440.8280578215431 self.assertAlmostEqual( cross_sum, expected, msg='Calculation of lat lons failed') def test_resampled_image(self): data = np.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) target_def = self.area_def source_def = self.msg_area res = grid.get_resampled_image( target_def, source_def, data, segments=1) cross_sum = res.sum() expected = 399936.39392500359 self.assertAlmostEqual( cross_sum, expected, msg='Resampling of image failed') def test_resampled_image_masked(self): # Generate test image with masked elements data = np.ma.ones(self.msg_area.shape) data.mask = np.zeros(data.shape) data.mask[253:400, 1970:2211] = 1 # Resample image using multiple segments target_def = self.area_def source_def = self.msg_area res = grid.get_resampled_image( target_def, source_def, data, segments=4, fill_value=None) # Make sure the mask has been preserved self.assertGreater(res.mask.sum(), 0, msg='Resampling did not preserve the mask') @tmp def test_generate_linesample(self): data = np.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) row_indices, col_indices = utils.generate_quick_linesample_arrays(self.msg_area, self.area_def) res = data[row_indices, col_indices] cross_sum = res.sum() expected = 399936.39392500359 self.assertAlmostEqual( cross_sum, expected, msg='Generate linesample failed') self.assertFalse(row_indices.dtype != np.uint16 or col_indices.dtype != np.uint16, 'Generate linesample failed. Downcast to uint16 expected') @mp def test_resampled_image_mp(self): data = np.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) target_def = self.area_def source_def = self.msg_area res = grid.get_resampled_image( target_def, source_def, data, nprocs=2, segments=1) cross_sum = res.sum() expected = 399936.39392500359 self.assertAlmostEqual( cross_sum, expected, msg='Resampling of image mp failed') def test_single_lonlat(self): lon, lat = self.area_def.get_lonlat(400, 400) self.assertAlmostEqual( lon, 5.5028467120975835, msg='Resampling of single lon failed') self.assertAlmostEqual( lat, 52.566998432390619, msg='Resampling of single lat failed') def test_proj4_string(self): proj4_string = self.area_def.proj4_string expected_string = '+a=6378144.0 +b=6356759.0 +lat_ts=50.00 +lon_0=8.00 +proj=stere +lat_0=50.00' self.assertEqual( frozenset(proj4_string.split()), frozenset(expected_string.split())) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite pyresample-1.8.1/pyresample/test/test_image.py000066400000000000000000000300731324347254000215440ustar00rootroot00000000000000import os import unittest import numpy from pyresample import image, geometry, grid, utils def mask(f): f.mask = True return f def tmp(f): f.tmp = True return f class Test(unittest.TestCase): area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) msg_area = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', 'msg_full', {'a': '6378169.0', 'b': '6356584.0', 'h': '35785831.0', 'lon_0': '0', 'proj': 'geos'}, 3712, 3712, [-5568742.4000000004, -5568742.4000000004, 5568742.4000000004, 5568742.4000000004]) msg_area_resize = geometry.AreaDefinition('msg_full', 'Full globe MSG image 0 degrees', 'msg_full', {'a': '6378169.0', 'b': '6356584.0', 'h': '35785831.0', 'lon_0': '0', 'proj': 'geos'}, 928, 928, [-5568742.4000000004, -5568742.4000000004, 5568742.4000000004, 5568742.4000000004]) @tmp def test_image(self): data = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) msg_con = image.ImageContainerQuick(data, self.msg_area, segments=1) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 399936.39392500359 self.assertAlmostEqual( cross_sum, expected, msg='ImageContainer resampling quick failed') @tmp def test_image_segments(self): data = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) msg_con = image.ImageContainerQuick(data, self.msg_area, segments=8) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 399936.39392500359 self.assertAlmostEqual( cross_sum, expected, msg='ImageContainer resampling quick segments failed') def test_return_type(self): data = numpy.ones((3712, 3712)).astype('int') msg_con = image.ImageContainerQuick(data, self.msg_area, segments=1) area_con = msg_con.resample(self.area_def) res = area_con.image_data self.assertTrue( data.dtype is res.dtype, msg='Failed to maintain input data type') @mask def test_masked_image(self): data = numpy.zeros((3712, 3712)) mask = numpy.zeros((3712, 3712)) mask[:, 1865:] = 1 data_masked = numpy.ma.array(data, mask=mask) msg_con = image.ImageContainerQuick( data_masked, self.msg_area, segments=1) area_con = msg_con.resample(self.area_def) res = area_con.image_data resampled_mask = res.mask.astype('int') expected = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_grid.dat'), sep=' ').reshape((800, 800)) self.assertTrue(numpy.array_equal( resampled_mask, expected), msg='Failed to resample masked array') @mask def test_masked_image_fill(self): data = numpy.zeros((3712, 3712)) mask = numpy.zeros((3712, 3712)) mask[:, 1865:] = 1 data_masked = numpy.ma.array(data, mask=mask) msg_con = image.ImageContainerQuick(data_masked, self.msg_area, fill_value=None, segments=1) area_con = msg_con.resample(self.area_def) res = area_con.image_data resampled_mask = res.mask.astype('int') expected = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_grid.dat'), sep=' ').reshape((800, 800)) self.assertTrue(numpy.array_equal( resampled_mask, expected), msg='Failed to resample masked array') def test_nearest_neighbour(self): data = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) msg_con = image.ImageContainerNearest( data, self.msg_area, 50000, segments=1) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 399936.783062 self.assertAlmostEqual(cross_sum, expected, msg='ImageContainer resampling nearest neighbour failed') def test_nearest_resize(self): data = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) msg_con = image.ImageContainerNearest( data, self.msg_area, 50000, segments=1) area_con = msg_con.resample(self.msg_area_resize) res = area_con.image_data cross_sum = res.sum() expected = 2212023.0175830 self.assertAlmostEqual(cross_sum, expected, msg='ImageContainer resampling nearest neighbour failed') def test_nearest_neighbour_multi(self): data1 = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) data2 = numpy.fromfunction( lambda y, x: y * x * 10 ** -6, (3712, 3712)) * 2 data = numpy.dstack((data1, data2)) msg_con = image.ImageContainerNearest( data, self.msg_area, 50000, segments=1) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum1 = res[:, :, 0].sum() expected1 = 399936.783062 self.assertAlmostEqual(cross_sum1, expected1, msg='ImageContainer resampling nearest neighbour multi failed') cross_sum2 = res[:, :, 1].sum() expected2 = 399936.783062 * 2 self.assertAlmostEqual(cross_sum2, expected2, msg='ImageContainer resampling nearest neighbour multi failed') def test_nearest_neighbour_multi_preproc(self): data1 = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (3712, 3712)) data2 = numpy.fromfunction( lambda y, x: y * x * 10 ** -6, (3712, 3712)) * 2 data = numpy.dstack((data1, data2)) msg_con = image.ImageContainer(data, self.msg_area) # area_con = msg_con.resample_area_nearest_neighbour(self.area_def, # 50000) row_indices, col_indices = \ utils.generate_nearest_neighbour_linesample_arrays(self.msg_area, self.area_def, 50000) res = msg_con.get_array_from_linesample(row_indices, col_indices) cross_sum1 = res[:, :, 0].sum() expected1 = 399936.783062 self.assertAlmostEqual(cross_sum1, expected1, msg='ImageContainer resampling nearest neighbour multi preproc failed') cross_sum2 = res[:, :, 1].sum() expected2 = 399936.783062 * 2 self.assertAlmostEqual(cross_sum2, expected2, msg='ImageContainer resampling nearest neighbour multi preproc failed') def test_nearest_swath(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) swath_con = image.ImageContainerNearest( data, swath_def, 50000, segments=1) area_con = swath_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 15874591.0 self.assertEqual(cross_sum, expected, msg='ImageContainer swath resampling nearest failed') def test_nearest_swath_segments(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) data = numpy.dstack(3 * (data,)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) swath_con = image.ImageContainerNearest( data, swath_def, 50000, segments=2) area_con = swath_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 3 * 15874591.0 self.assertEqual(cross_sum, expected, msg='ImageContainer swath segments resampling nearest failed') def test_bilinear(self): data = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (928, 928)) msg_con = image.ImageContainerBilinear(data, self.msg_area_resize, 50000, segments=1, neighbours=8) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 24690.127073654239 self.assertAlmostEqual(cross_sum, expected) def test_bilinear_multi(self): data1 = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (928, 928)) data2 = numpy.fromfunction(lambda y, x: y * x * 10 ** -6, (928, 928)) * 2 data = numpy.dstack((data1, data2)) msg_con = image.ImageContainerBilinear(data, self.msg_area_resize, 50000, segments=1, neighbours=8) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum1 = res[:, :, 0].sum() expected1 = 24690.127073654239 self.assertAlmostEqual(cross_sum1, expected1) cross_sum2 = res[:, :, 1].sum() expected2 = 24690.127073654239 * 2 self.assertAlmostEqual(cross_sum2, expected2) def test_bilinear_swath(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) swath_con = image.ImageContainerBilinear(data, swath_def, 500000, segments=1, neighbours=8) area_con = swath_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 16762584.12441789 self.assertAlmostEqual(cross_sum, expected) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite pyresample-1.8.1/pyresample/test/test_kd_tree.py000066400000000000000000001165141324347254000221040ustar00rootroot00000000000000from __future__ import with_statement import os import sys import numpy from pyresample import geometry, kd_tree, utils from pyresample.test.utils import catch_warnings if sys.version_info < (2, 7): import unittest2 as unittest else: import unittest class Test(unittest.TestCase): @classmethod def setUpClass(cls): cls.area_def = geometry.AreaDefinition('areaD', 'Europe (3km, HRV, VTC)', 'areaD', {'a': '6378144.0', 'b': '6356759.0', 'lat_0': '50.00', 'lat_ts': '50.00', 'lon_0': '8.00', 'proj': 'stere'}, 800, 800, [-1370912.72, -909968.64000000001, 1029087.28, 1490031.3600000001]) cls.tdata = numpy.array([1, 2, 3]) cls.tlons = numpy.array([11.280789, 12.649354, 12.080402]) cls.tlats = numpy.array([56.011037, 55.629675, 55.641535]) cls.tswath = geometry.SwathDefinition(lons=cls.tlons, lats=cls.tlats) cls.tgrid = geometry.CoordinateDefinition( lons=numpy.array([12.562036]), lats=numpy.array([55.715613])) def test_nearest_base(self): res = kd_tree.resample_nearest(self.tswath, self.tdata.ravel(), self.tgrid, 100000, reduce_data=False, segments=1) self.assertTrue(res[0] == 2, 'Failed to calculate nearest neighbour') def test_gauss_base(self): with catch_warnings() as w: res = kd_tree.resample_gauss(self.tswath, self.tdata.ravel(), self.tgrid, 50000, 25000, reduce_data=False, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour warning') self.assertFalse(('Searching' not in str( w[0].message)), 'Failed to create correct neighbour warning') self.assertAlmostEqual(res[0], 2.2020729, 5, 'Failed to calculate gaussian weighting') def test_custom_base(self): def wf(dist): return 1 - dist / 100000.0 with catch_warnings() as w: res = kd_tree.resample_custom(self.tswath, self.tdata.ravel(), self.tgrid, 50000, wf, reduce_data=False, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour warning') self.assertFalse(('Searching' not in str( w[0].message)), 'Failed to create correct neighbour warning') self.assertAlmostEqual(res[0], 2.4356757, 5, 'Failed to calculate custom weighting') def test_gauss_uncert(self): sigma = utils.fwhm2sigma(41627.730557884883) with catch_warnings() as w: res, stddev, count = kd_tree.resample_gauss(self.tswath, self.tdata, self.tgrid, 100000, sigma, with_uncert=True) self.assertTrue( len(w) > 0, 'Failed to create neighbour warning') self.assertTrue((any('Searching' in str(_w.message) for _w in w)), 'Failed to create correct neighbour warning') expected_res = 2.20206560694 expected_stddev = 0.707115076173 expected_count = 3 self.assertAlmostEqual(res[0], expected_res, 5, 'Failed to calculate gaussian weighting with uncertainty') self.assertAlmostEqual(stddev[0], expected_stddev, 5, 'Failed to calculate uncertainty for gaussian weighting') self.assertEqual( count[0], expected_count, 'Wrong data point count for gaussian weighting with uncertainty') def test_custom_uncert(self): def wf(dist): return 1 - dist / 100000.0 with catch_warnings() as w: res, stddev, counts = kd_tree.resample_custom(self.tswath, self.tdata, self.tgrid, 100000, wf, with_uncert=True) self.assertTrue( len(w) > 0, 'Failed to create neighbour warning') self.assertTrue((any('Searching' in str(_w.message) for _w in w)), 'Failed to create correct neighbour warning') self.assertAlmostEqual(res[0], 2.32193149, 5, 'Failed to calculate custom weighting with uncertainty') self.assertAlmostEqual(stddev[0], 0.81817972, 5, 'Failed to calculate custom for gaussian weighting') self.assertEqual( counts[0], 3, 'Wrong data point count for custom weighting with uncertainty') def test_nearest(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, segments=1) cross_sum = res.sum() expected = 15874591.0 self.assertEqual(cross_sum, expected, msg='Swath resampling nearest failed') def test_nearest_masked_swath_target(self): """Test that a masked array works as a target.""" data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) mask = numpy.ones_like(lons, dtype=numpy.bool) mask[::2, ::2] = False swath_def = geometry.SwathDefinition( lons=numpy.ma.masked_array(lons, mask=mask), lats=numpy.ma.masked_array(lats, mask=False) ) res = kd_tree.resample_nearest(swath_def, data.ravel(), swath_def, 50000, segments=3) cross_sum = res.sum() # expected = 12716 # if masks aren't respected expected = 12000 self.assertEqual(cross_sum, expected, msg='Swath resampling masked nearest failed') def test_nearest_1d(self): data = numpy.fromfunction(lambda x, y: x * y, (800, 800)) lons = numpy.fromfunction(lambda x: 3 + x / 100., (500,)) lats = numpy.fromfunction(lambda x: 75 - x / 10., (500,)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(self.area_def, data.ravel(), swath_def, 50000, segments=1) cross_sum = res.sum() expected = 35821299.0 self.assertEqual(res.shape, (500,), msg='Swath resampling nearest 1d failed') self.assertEqual(cross_sum, expected, msg='Swath resampling nearest 1d failed') def test_nearest_empty(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 165 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, segments=1) cross_sum = res.sum() expected = 0 self.assertEqual(cross_sum, expected, msg='Swath resampling nearest empty failed') def test_nearest_empty_multi(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 165 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data_multi, self.area_def, 50000, segments=1) self.assertEqual(res.shape, (800, 800, 3), msg='Swath resampling nearest empty multi failed') def test_nearest_empty_multi_masked(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 165 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data_multi, self.area_def, 50000, segments=1, fill_value=None) self.assertEqual(res.shape, (800, 800, 3), msg='Swath resampling nearest empty multi masked failed') def test_nearest_empty_masked(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 165 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, segments=1, fill_value=None) cross_sum = res.mask.sum() expected = res.size self.assertTrue(cross_sum == expected, msg='Swath resampling nearest empty masked failed') def test_nearest_segments(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, segments=2) cross_sum = res.sum() expected = 15874591.0 self.assertEqual(cross_sum, expected, msg='Swath resampling nearest segments failed') def test_nearest_remap(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, segments=1) remap = kd_tree.resample_nearest(self.area_def, res.ravel(), swath_def, 5000, segments=1) cross_sum = remap.sum() expected = 22275.0 self.assertEqual(cross_sum, expected, msg='Grid remapping nearest failed') def test_nearest_mp(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, nprocs=2, segments=1) cross_sum = res.sum() expected = 15874591.0 self.assertEqual(cross_sum, expected, msg='Swath resampling mp nearest failed') def test_nearest_multi(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) res = kd_tree.resample_nearest(swath_def, data_multi, self.area_def, 50000, segments=1) cross_sum = res.sum() expected = 3 * 15874591.0 self.assertEqual(cross_sum, expected, msg='Swath multi channel resampling nearest failed') def test_nearest_multi_unraveled(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.dstack((data, data, data)) res = kd_tree.resample_nearest(swath_def, data_multi, self.area_def, 50000, segments=1) cross_sum = res.sum() expected = 3 * 15874591.0 self.assertEqual(cross_sum, expected, msg='Swath multi channel resampling nearest failed') def test_gauss_sparse(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_gauss(swath_def, data.ravel(), self.area_def, 50000, 25000, fill_value=-1, segments=1) cross_sum = res.sum() expected = 15387753.9852 self.assertAlmostEqual(cross_sum, expected, places=3, msg='Swath gauss sparse nearest failed') def test_gauss(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -5, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, data.ravel(), self.area_def, 50000, 25000, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 4872.81050892 self.assertAlmostEqual(cross_sum, expected, msg='Swath resampling gauss failed') def test_gauss_fwhm(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -5, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, data.ravel(), self.area_def, 50000, utils.fwhm2sigma(41627.730557884883), segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 4872.81050892 self.assertAlmostEqual(cross_sum, expected, msg='Swath resampling gauss failed') def test_gauss_multi(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, data_multi, self.area_def, 50000, [25000, 15000, 10000], segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 1461.84313918 self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel resampling gauss failed') def test_gauss_multi_uncert(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) with catch_warnings() as w: # The assertion below checks if there is only one warning raised # and whether it contains a specific message from pyresample # On python 2.7.9+ the resample_gauss method raises multiple deprecation warnings # that cause to fail, so we ignore the unrelated warnings. res, stddev, counts = kd_tree.resample_gauss(swath_def, data_multi, self.area_def, 50000, [ 25000, 15000, 10000], segments=1, with_uncert=True) self.assertTrue( len(w) >= 1, 'Failed to create neighbour radius warning') self.assertTrue(any(['Possible more' in str( x.message) for x in w]), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() cross_sum_counts = counts.sum() expected = 1461.84313918 expected_stddev = [0.446193170875, 0.443606880035, 0.438586349519] expected_counts = 4934802.0 self.assertTrue(res.shape == stddev.shape and stddev.shape == counts.shape and counts.shape == (800, 800, 3)) self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel resampling gauss failed on data') for i, e_stddev in enumerate(expected_stddev): cross_sum_stddev = stddev[:, :, i].sum() print(cross_sum_stddev, e_stddev) self.assertAlmostEqual(cross_sum_stddev, e_stddev, msg='Swath multi channel resampling gauss failed on stddev (channel {})'.format(i)) self.assertAlmostEqual(cross_sum_counts, expected_counts, msg='Swath multi channel resampling gauss failed on counts') def test_gauss_multi_mp(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, data_multi, self.area_def, 50000, [ 25000, 15000, 10000], nprocs=2, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 1461.84313918 self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel resampling gauss failed') def test_gauss_multi_mp_segments(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, data_multi, self.area_def, 50000, [ 25000, 15000, 10000], nprocs=2, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 1461.84313918 self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel segments resampling gauss failed') def test_gauss_multi_mp_segments_empty(self): data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 165 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) res = kd_tree.resample_gauss(swath_def, data_multi, self.area_def, 50000, [ 25000, 15000, 10000], nprocs=2, segments=1) cross_sum = res.sum() self.assertTrue(cross_sum == 0, msg=('Swath multi channel segments empty ' 'resampling gauss failed')) def test_custom(self): def wf(dist): return 1 - dist / 100000.0 data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -5, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) with catch_warnings() as w: res = kd_tree.resample_custom(swath_def, data.ravel(), self.area_def, 50000, wf, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 4872.81050729 self.assertAlmostEqual(cross_sum, expected, msg='Swath custom resampling failed') def test_custom_multi(self): def wf1(dist): return 1 - dist / 100000.0 def wf2(dist): return 1 def wf3(dist): return numpy.cos(dist) ** 2 data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) with catch_warnings() as w: res = kd_tree.resample_custom(swath_def, data_multi, self.area_def, 50000, [wf1, wf2, wf3], segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') cross_sum = res.sum() expected = 1461.842980746 self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel custom resampling failed') def test_masked_nearest(self): data = numpy.ones((50, 10)) data[:, 5:] = 2 lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) mask = numpy.ones((50, 10)) mask[:, :5] = 0 masked_data = numpy.ma.array(data, mask=mask) res = kd_tree.resample_nearest(swath_def, masked_data.ravel(), self.area_def, 50000, segments=1) expected_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_nearest_mask.dat'), sep=' ').reshape((800, 800)) expected_data = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_nearest_data.dat'), sep=' ').reshape((800, 800)) self.assertTrue(numpy.array_equal(expected_mask, res.mask), msg='Resampling of swath mask failed') self.assertTrue(numpy.array_equal(expected_data, res.data), msg='Resampling of swath masked data failed') def test_masked_nearest_1d(self): data = numpy.ones((800, 800)) data[:400, :] = 2 lons = numpy.fromfunction(lambda x: 3 + x / 100., (500,)) lats = numpy.fromfunction(lambda x: 75 - x / 10., (500,)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) mask = numpy.ones((800, 800)) mask[400:, :] = 0 masked_data = numpy.ma.array(data, mask=mask) res = kd_tree.resample_nearest(self.area_def, masked_data.ravel(), swath_def, 50000, segments=1) self.assertEqual(res.mask.sum(), 108, msg='Swath resampling masked nearest 1d failed') def test_masked_gauss(self): data = numpy.ones((50, 10)) data[:, 5:] = 2 lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) mask = numpy.ones((50, 10)) mask[:, :5] = 0 masked_data = numpy.ma.array(data, mask=mask) res = kd_tree.resample_gauss(swath_def, masked_data.ravel(), self.area_def, 50000, 25000, segments=1) expected_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_mask.dat'), sep=' ').reshape((800, 800)) expected_data = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_data.dat'), sep=' ').reshape((800, 800)) expected = expected_data.sum() cross_sum = res.data.sum() self.assertTrue(numpy.array_equal(expected_mask, res.mask), msg='Gauss resampling of swath mask failed') self.assertAlmostEqual(cross_sum, expected, places=3, msg='Gauss resampling of swath masked data failed') def test_masked_fill_float(self): data = numpy.ones((50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, fill_value=None, segments=1) expected_fill_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_fill_value.dat'), sep=' ').reshape((800, 800)) fill_mask = res.mask self.assertTrue(numpy.array_equal(fill_mask, expected_fill_mask), msg='Failed to create fill mask on float data') def test_masked_fill_int(self): data = numpy.ones((50, 10)).astype('int') lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, data.ravel(), self.area_def, 50000, fill_value=None, segments=1) expected_fill_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_fill_value.dat'), sep=' ').reshape((800, 800)) fill_mask = res.mask self.assertTrue(numpy.array_equal(fill_mask, expected_fill_mask), msg='Failed to create fill mask on integer data') def test_masked_full(self): data = numpy.ones((50, 10)) data[:, 5:] = 2 mask = numpy.ones((50, 10)) mask[:, :5] = 0 masked_data = numpy.ma.array(data, mask=mask) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, masked_data.ravel( ), self.area_def, 50000, fill_value=None, segments=1) expected_fill_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_full_fill.dat'), sep=' ').reshape((800, 800)) fill_mask = res.mask self.assertTrue(numpy.array_equal(fill_mask, expected_fill_mask), msg='Failed to create fill mask on masked data') def test_masked_full_multi(self): data = numpy.ones((50, 10)) data[:, 5:] = 2 mask1 = numpy.ones((50, 10)) mask1[:, :5] = 0 mask2 = numpy.ones((50, 10)) mask2[:, 5:] = 0 mask3 = numpy.ones((50, 10)) mask3[:25, :] = 0 data_multi = numpy.column_stack( (data.ravel(), data.ravel(), data.ravel())) mask_multi = numpy.column_stack( (mask1.ravel(), mask2.ravel(), mask3.ravel())) masked_data = numpy.ma.array(data_multi, mask=mask_multi) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) res = kd_tree.resample_nearest(swath_def, masked_data, self.area_def, 50000, fill_value=None, segments=1) expected_fill_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_full_fill_multi.dat'), sep=' ').reshape((800, 800, 3)) fill_mask = res.mask cross_sum = res.sum() expected = 357140.0 self.assertAlmostEqual(cross_sum, expected, msg='Failed to resample masked data') self.assertTrue(numpy.array_equal(fill_mask, expected_fill_mask), msg='Failed to create fill mask on masked data') def test_dtype(self): lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) grid_def = geometry.GridDefinition(lons, lats) lons = numpy.asarray(lons, dtype='f4') lats = numpy.asarray(lats, dtype='f4') swath_def = geometry.SwathDefinition(lons=lons, lats=lats) valid_input_index, valid_output_index, index_array, distance_array = \ kd_tree.get_neighbour_info(swath_def, grid_def, 50000, neighbours=1, segments=1) def test_nearest_from_sample(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) valid_input_index, valid_output_index, index_array, distance_array = \ kd_tree.get_neighbour_info(swath_def, self.area_def, 50000, neighbours=1, segments=1) res = kd_tree.get_sample_from_neighbour_info('nn', (800, 800), data.ravel(), valid_input_index, valid_output_index, index_array) cross_sum = res.sum() expected = 15874591.0 self.assertEqual(cross_sum, expected, msg='Swath resampling from neighbour info nearest failed') def test_custom_multi_from_sample(self): def wf1(dist): return 1 - dist / 100000.0 def wf2(dist): return 1 def wf3(dist): return numpy.cos(dist) ** 2 data = numpy.fromfunction(lambda y, x: (y + x) * 10 ** -6, (5000, 100)) lons = numpy.fromfunction( lambda y, x: 3 + (10.0 / 100) * x, (5000, 100)) lats = numpy.fromfunction( lambda y, x: 75 - (50.0 / 5000) * y, (5000, 100)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) data_multi = numpy.column_stack((data.ravel(), data.ravel(), data.ravel())) with catch_warnings() as w: valid_input_index, valid_output_index, index_array, distance_array = \ kd_tree.get_neighbour_info(swath_def, self.area_def, 50000, segments=1) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') res = kd_tree.get_sample_from_neighbour_info('custom', (800, 800), data_multi, valid_input_index, valid_output_index, index_array, distance_array, weight_funcs=[wf1, wf2, wf3]) cross_sum = res.sum() expected = 1461.842980746 self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel custom resampling from neighbour info failed 1') res = kd_tree.get_sample_from_neighbour_info('custom', (800, 800), data_multi, valid_input_index, valid_output_index, index_array, distance_array, weight_funcs=[wf1, wf2, wf3]) # Look for error where input data has been manipulated cross_sum = res.sum() expected = 1461.842980746 self.assertAlmostEqual(cross_sum, expected, msg='Swath multi channel custom resampling from neighbour info failed 2') def test_masked_multi_from_sample(self): data = numpy.ones((50, 10)) data[:, 5:] = 2 mask1 = numpy.ones((50, 10)) mask1[:, :5] = 0 mask2 = numpy.ones((50, 10)) mask2[:, 5:] = 0 mask3 = numpy.ones((50, 10)) mask3[:25, :] = 0 data_multi = numpy.column_stack( (data.ravel(), data.ravel(), data.ravel())) mask_multi = numpy.column_stack( (mask1.ravel(), mask2.ravel(), mask3.ravel())) masked_data = numpy.ma.array(data_multi, mask=mask_multi) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) valid_input_index, valid_output_index, index_array, distance_array = \ kd_tree.get_neighbour_info(swath_def, self.area_def, 50000, neighbours=1, segments=1) res = kd_tree.get_sample_from_neighbour_info('nn', (800, 800), masked_data, valid_input_index, valid_output_index, index_array, fill_value=None) expected_fill_mask = numpy.fromfile(os.path.join(os.path.dirname(__file__), 'test_files', 'mask_test_full_fill_multi.dat'), sep=' ').reshape((800, 800, 3)) fill_mask = res.mask self.assertTrue(numpy.array_equal(fill_mask, expected_fill_mask), msg='Failed to create fill mask on masked data') def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite if __name__ == '__main__': unittest.main() pyresample-1.8.1/pyresample/test/test_plot.py000066400000000000000000000071021324347254000214350ustar00rootroot00000000000000import unittest import os import numpy as np try: import matplotlib matplotlib.use('Agg') except ImportError: pass # Postpone fail to individual tests def tmp(f): f.tmp = True return f class Test(unittest.TestCase): filename = os.path.abspath(os.path.join(os.path.dirname(__file__), 'test_files', 'ssmis_swath.npz')) data = np.load(filename)['data'] lons = data[:, 0].astype(np.float64) lats = data[:, 1].astype(np.float64) tb37v = data[:, 2].astype(np.float64) # screen out the fill values fvalue = -10000000000.0 valid_fov = (lons != fvalue) * (lats != fvalue) * (tb37v != fvalue) lons = lons[valid_fov] lats = lats[valid_fov] tb37v = tb37v[valid_fov] def test_ellps2axis(self): from pyresample import plot a, b = plot.ellps2axis('WGS84') self.assertAlmostEqual(a, 6378137.0, msg='Failed to get semi-major axis of ellipsis') self.assertAlmostEqual(b, 6356752.3142451793, msg='Failed to get semi-minor axis of ellipsis') def test_area_def2basemap(self): from pyresample import plot, utils area_def = utils.parse_area_file(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'ease_sh')[0] bmap = plot.area_def2basemap(area_def) self.assertTrue(bmap.rmajor == bmap.rminor and bmap.rmajor == 6371228.0, 'Failed to create Basemap object') def test_plate_carreeplot(self): from pyresample import plot, utils, kd_tree, geometry area_def = utils.parse_area_file(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'pc_world')[0] swath_def = geometry.SwathDefinition(self.lons, self.lats) result = kd_tree.resample_nearest(swath_def, self.tb37v, area_def, radius_of_influence=20000, fill_value=None) plt = plot._get_quicklook(area_def, result, num_meridians=0, num_parallels=0) def test_easeplot(self): from pyresample import plot, utils, kd_tree, geometry area_def = utils.parse_area_file(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'ease_sh')[0] swath_def = geometry.SwathDefinition(self.lons, self.lats) result = kd_tree.resample_nearest(swath_def, self.tb37v, area_def, radius_of_influence=20000, fill_value=None) plt = plot._get_quicklook(area_def, result) def test_orthoplot(self): from pyresample import plot, utils, kd_tree, geometry area_def = utils.parse_area_file(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'ortho')[0] swath_def = geometry.SwathDefinition(self.lons, self.lats) result = kd_tree.resample_nearest(swath_def, self.tb37v, area_def, radius_of_influence=20000, fill_value=None) plt = plot._get_quicklook(area_def, result) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite pyresample-1.8.1/pyresample/test/test_rotation.py000066400000000000000000000060161324347254000223210ustar00rootroot00000000000000import unittest, os from pyresample.utils import load_area class TestProjRotation(unittest.TestCase): def test_rotation_legacy (self): legacyDef = """REGION: regionB { NAME: regionB PCS_ID: regionB PCS_DEF: proj=merc, lon_0=-34, k=1, x_0=0, y_0=0, a=6378137, b=6378137 XSIZE: 800 YSIZE: 548 ROTATION: -45 AREA_EXTENT: (-7761424.714818418, -4861746.639279127, 11136477.43264252, 8236799.845095873) };""" flegacy = "/tmp/TestProjRotation_test_rotation_legacy.txt" f = open(flegacy,"w") f.write(legacyDef) f.close() test_area = load_area(flegacy, 'regionB') self.assertEqual(test_area.rotation, -45) os.remove(flegacy) def test_rotation_yaml (self): yamlDef = """regionB: description: regionB projection: a: 6378137.0 b: 6378137.0 lon_0: -34 proj: merc x_0: 0 y_0: 0 k_0: 1 shape: height: 548 width: 800 rotation: -45 area_extent: lower_left_xy: [-7761424.714818418, -4861746.639279127] upper_right_xy: [11136477.43264252, 8236799.845095873] units: m""" fyaml = "/tmp/TestProjRotation_test_rotation_yaml.txt" f = open(fyaml,"w") f.write(yamlDef) f.close() test_area = load_area(fyaml, 'regionB') self.assertEqual(test_area.rotation, -45) os.remove(fyaml) def test_norotation_legacy (self): legacyDef = """REGION: regionB { NAME: regionB PCS_ID: regionB PCS_DEF: proj=merc, lon_0=-34, k=1, x_0=0, y_0=0, a=6378137, b=6378137 XSIZE: 800 YSIZE: 548 AREA_EXTENT: (-7761424.714818418, -4861746.639279127, 11136477.43264252, 8236799.845095873) };""" flegacy = "/tmp/TestProjRotation_test_rotation_legacy.txt" f = open(flegacy,"w") f.write(legacyDef) f.close() test_area = load_area(flegacy, 'regionB') self.assertEqual(test_area.rotation, 0) os.remove(flegacy) def test_norotation_yaml (self): yamlDef = """regionB: description: regionB projection: a: 6378137.0 b: 6378137.0 lon_0: -34 proj: merc x_0: 0 y_0: 0 k_0: 1 shape: height: 548 width: 800 area_extent: lower_left_xy: [-7761424.714818418, -4861746.639279127] upper_right_xy: [11136477.43264252, 8236799.845095873] units: m""" fyaml = "/tmp/TestProjRotation_test_rotation_yaml.txt" f = open(fyaml,"w") f.write(yamlDef) f.close() test_area = load_area(fyaml, 'regionB') self.assertEqual(test_area.rotation, 0) os.remove(fyaml) if __name__ == '__main__': unittest.main() pyresample-1.8.1/pyresample/test/test_spherical_geometry.py000066400000000000000000000345001324347254000243460ustar00rootroot00000000000000from __future__ import with_statement import numpy as np import unittest import math from pyresample.spherical_geometry import Coordinate, Arc from pyresample import geometry class TestOverlap(unittest.TestCase): """Testing overlapping functions in pyresample. """ def assert_raises(self, exception, call_able, *args): """assertRaises() has changed from py2.6 to 2.7! Here is an attempt to cover both""" import sys if sys.version_info < (2, 7): self.assertRaises(exception, call_able, *args) else: with self.assertRaises(exception): call_able(*args) def test_inside(self): """Testing if a point is inside an area. """ lons = np.array([[-11, 11], [-11, 11]]) lats = np.array([[11, 11], [-11, -11]]) area = geometry.SwathDefinition(lons, lats) point = Coordinate(0, 0) self.assertTrue(point in area) point = Coordinate(0, 12) self.assertFalse(point in area) lons = np.array([[-179, 179], [-179, 179]]) lats = np.array([[1, 1], [-1, -1]]) area = geometry.SwathDefinition(lons, lats) point = Coordinate(180, 0) self.assertTrue(point in area) point = Coordinate(180, 12) self.assertFalse(point in area) point = Coordinate(-180, 12) self.assertFalse(point in area) self.assert_raises(ValueError, Coordinate, 0, 192) self.assert_raises(ValueError, Coordinate, 15, -91) # case of the north pole lons = np.array([[0, 90], [-90, 180]]) lats = np.array([[89, 89], [89, 89]]) area = geometry.SwathDefinition(lons, lats) point = Coordinate(90, 90) self.assertTrue(point in area) def test_overlaps(self): """Test if two areas overlap. """ lons1 = np.array([[0, 90], [-90, 180]]) lats1 = np.array([[89, 89], [89, 89]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[45, 135], [-45, -135]]) lats2 = np.array([[89, 89], [89, 89]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertTrue(area1.overlaps(area2)) self.assertTrue(area2.overlaps(area1)) lons1 = np.array([[0, 45], [135, 90]]) lats1 = np.array([[89, 89], [89, 89]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[180, -135], [-45, -90]]) lats2 = np.array([[89, 89], [89, 89]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertFalse(area1.overlaps(area2)) self.assertFalse(area2.overlaps(area1)) lons1 = np.array([[-1, 1], [-1, 1]]) lats1 = np.array([[1, 1], [-1, -1]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[0, 2], [0, 2]]) lats2 = np.array([[0, 0], [2, 2]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertTrue(area1.overlaps(area2)) self.assertTrue(area2.overlaps(area1)) lons1 = np.array([[-1, 0], [-1, 0]]) lats1 = np.array([[1, 2], [-1, 0]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[1, 2], [1, 2]]) lats2 = np.array([[1, 2], [-1, 0]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertFalse(area1.overlaps(area2)) self.assertFalse(area2.overlaps(area1)) def test_overlap_rate(self): """Test how much two areas overlap. """ lons1 = np.array([[-1, 1], [-1, 1]]) lats1 = np.array([[1, 1], [-1, -1]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[0, 2], [0, 2]]) lats2 = np.array([[0, 0], [2, 2]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertAlmostEqual(area1.overlap_rate(area2), 0.25, 3) self.assertAlmostEqual(area2.overlap_rate(area1), 0.25, 3) lons1 = np.array([[82.829699999999974, 36.888300000000001], [98.145499999999984, 2.8773]]) lats1 = np.array([[60.5944, 52.859999999999999], [80.395899999999997, 66.7547]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[7.8098183315148422, 26.189349044600252], [7.8098183315148422, 26.189349044600252]]) lats2 = np.array([[62.953206630716465, 62.953206630716465], [53.301561187195546, 53.301561187195546]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertAlmostEqual(area1.overlap_rate(area2), 0.07, 2) self.assertAlmostEqual(area2.overlap_rate(area1), 0.012, 3) lons1 = np.array([[82.829699999999974, 36.888300000000001], [98.145499999999984, 2.8773]]) lats1 = np.array([[60.5944, 52.859999999999999], [80.395899999999997, 66.7547]]) area1 = geometry.SwathDefinition(lons1, lats1) lons2 = np.array([[12.108984194981202, 30.490647126520301], [12.108984194981202, 30.490647126520301]]) lats2 = np.array([[65.98228561983025, 65.98228561983025], [57.304862819933433, 57.304862819933433]]) area2 = geometry.SwathDefinition(lons2, lats2) self.assertAlmostEqual(area1.overlap_rate(area2), 0.509, 2) self.assertAlmostEqual(area2.overlap_rate(area1), 0.0685, 3) class TestSphereGeometry(unittest.TestCase): """Testing sphere geometry from this module. """ def test_angle(self): """Testing the angle value between two arcs. """ base = 0 p0_ = Coordinate(base, base) p1_ = Coordinate(base, base + 1) p2_ = Coordinate(base + 1, base) p3_ = Coordinate(base, base - 1) p4_ = Coordinate(base - 1, base) arc1 = Arc(p0_, p1_) arc2 = Arc(p0_, p2_) arc3 = Arc(p0_, p3_) arc4 = Arc(p0_, p4_) self.assertAlmostEqual(arc1.angle(arc2), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc2.angle(arc3), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc3.angle(arc4), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc4.angle(arc1), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc1.angle(arc4), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc4.angle(arc3), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc3.angle(arc2), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc2.angle(arc1), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc1.angle(arc3), math.pi, msg="this should be pi") self.assertAlmostEqual(arc3.angle(arc1), math.pi, msg="this should be pi") self.assertAlmostEqual(arc2.angle(arc4), math.pi, msg="this should be pi") self.assertAlmostEqual(arc4.angle(arc2), math.pi, msg="this should be pi") p5_ = Coordinate(base + 1, base + 1) p6_ = Coordinate(base + 1, base - 1) p7_ = Coordinate(base - 1, base - 1) p8_ = Coordinate(base - 1, base + 1) arc5 = Arc(p0_, p5_) arc6 = Arc(p0_, p6_) arc7 = Arc(p0_, p7_) arc8 = Arc(p0_, p8_) self.assertAlmostEqual(arc1.angle(arc5), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc5.angle(arc2), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc2.angle(arc6), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc6.angle(arc3), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc3.angle(arc7), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc7.angle(arc4), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc4.angle(arc8), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc8.angle(arc1), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(arc1.angle(arc6), 3 * math.pi / 4, 3, msg="this should be 3pi/4") c0_ = Coordinate(180, 0) c1_ = Coordinate(180, 1) c2_ = Coordinate(-179, 0) c3_ = Coordinate(-180, -1) c4_ = Coordinate(179, 0) arc1 = Arc(c0_, c1_) arc2 = Arc(c0_, c2_) arc3 = Arc(c0_, c3_) arc4 = Arc(c0_, c4_) self.assertAlmostEqual(arc1.angle(arc2), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc2.angle(arc3), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc3.angle(arc4), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc4.angle(arc1), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc1.angle(arc4), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc4.angle(arc3), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc3.angle(arc2), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc2.angle(arc1), -math.pi / 2, msg="this should be -pi/2") # case of the north pole c0_ = Coordinate(0, 90) c1_ = Coordinate(0, 89) c2_ = Coordinate(-90, 89) c3_ = Coordinate(180, 89) c4_ = Coordinate(90, 89) arc1 = Arc(c0_, c1_) arc2 = Arc(c0_, c2_) arc3 = Arc(c0_, c3_) arc4 = Arc(c0_, c4_) self.assertAlmostEqual(arc1.angle(arc2), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc2.angle(arc3), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc3.angle(arc4), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc4.angle(arc1), math.pi / 2, msg="this should be pi/2") self.assertAlmostEqual(arc1.angle(arc4), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc4.angle(arc3), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc3.angle(arc2), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(arc2.angle(arc1), -math.pi / 2, msg="this should be -pi/2") self.assertAlmostEqual(Arc(c1_, c2_).angle(arc1), math.pi / 4, 3, msg="this should be pi/4") self.assertAlmostEqual(Arc(c4_, c3_).angle(arc4), -math.pi / 4, 3, msg="this should be -pi/4") self.assertAlmostEqual(Arc(c1_, c4_).angle(arc1), -math.pi / 4, 3, msg="this should be -pi/4") def test_intersects(self): """Test if two arcs intersect. """ p0_ = Coordinate(0, 0) p1_ = Coordinate(0, 1) p2_ = Coordinate(1, 0) p3_ = Coordinate(0, -1) p4_ = Coordinate(-1, 0) p5_ = Coordinate(1, 1) p6_ = Coordinate(1, -1) arc13 = Arc(p1_, p3_) arc24 = Arc(p2_, p4_) arc32 = Arc(p3_, p2_) arc41 = Arc(p4_, p1_) arc40 = Arc(p4_, p0_) arc56 = Arc(p5_, p6_) arc45 = Arc(p4_, p5_) arc02 = Arc(p0_, p2_) arc35 = Arc(p3_, p5_) self.assertTrue(arc13.intersects(arc24)) self.assertFalse(arc32.intersects(arc41)) self.assertFalse(arc56.intersects(arc40)) self.assertFalse(arc56.intersects(arc40)) self.assertFalse(arc45.intersects(arc02)) self.assertTrue(arc35.intersects(arc24)) p0_ = Coordinate(180, 0) p1_ = Coordinate(180, 1) p2_ = Coordinate(-179, 0) p3_ = Coordinate(-180, -1) p4_ = Coordinate(179, 0) p5_ = Coordinate(-179, 1) p6_ = Coordinate(-179, -1) arc13 = Arc(p1_, p3_) arc24 = Arc(p2_, p4_) arc32 = Arc(p3_, p2_) arc41 = Arc(p4_, p1_) arc40 = Arc(p4_, p0_) arc56 = Arc(p5_, p6_) arc45 = Arc(p4_, p5_) arc02 = Arc(p0_, p2_) arc35 = Arc(p3_, p5_) self.assertTrue(arc13.intersects(arc24)) self.assertFalse(arc32.intersects(arc41)) self.assertFalse(arc56.intersects(arc40)) self.assertFalse(arc56.intersects(arc40)) self.assertFalse(arc45.intersects(arc02)) self.assertTrue(arc35.intersects(arc24)) # case of the north pole p0_ = Coordinate(0, 90) p1_ = Coordinate(0, 89) p2_ = Coordinate(90, 89) p3_ = Coordinate(180, 89) p4_ = Coordinate(-90, 89) p5_ = Coordinate(45, 89) p6_ = Coordinate(135, 89) arc13 = Arc(p1_, p3_) arc24 = Arc(p2_, p4_) arc32 = Arc(p3_, p2_) arc41 = Arc(p4_, p1_) arc40 = Arc(p4_, p0_) arc56 = Arc(p5_, p6_) arc45 = Arc(p4_, p5_) arc02 = Arc(p0_, p2_) arc35 = Arc(p3_, p5_) self.assertTrue(arc13.intersects(arc24)) self.assertFalse(arc32.intersects(arc41)) self.assertFalse(arc56.intersects(arc40)) self.assertFalse(arc56.intersects(arc40)) self.assertFalse(arc45.intersects(arc02)) self.assertTrue(arc35.intersects(arc24)) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(TestOverlap)) mysuite.addTest(loader.loadTestsFromTestCase(TestSphereGeometry)) return mysuite if __name__ == '__main__': unittest.main() pyresample-1.8.1/pyresample/test/test_swath.py000066400000000000000000000063541324347254000216150ustar00rootroot00000000000000from __future__ import with_statement import os import sys import unittest import warnings warnings.simplefilter("always") import numpy as np from pyresample.test.utils import catch_warnings from pyresample import kd_tree, geometry if sys.version_info < (2, 7): import unittest2 as unittest else: import unittest class Test(unittest.TestCase): filename = os.path.abspath(os.path.join(os.path.dirname(__file__), 'test_files', 'ssmis_swath.npz')) data = np.load(filename)['data'] lons = data[:, 0].astype(np.float64) lats = data[:, 1].astype(np.float64) tb37v = data[:, 2].astype(np.float64) # screen out the fill values fvalue = -10000000000.0 valid_fov = (lons != fvalue) * (lats != fvalue) * (tb37v != fvalue) lons = lons[valid_fov] lats = lats[valid_fov] tb37v = tb37v[valid_fov] def test_self_map(self): swath_def = geometry.SwathDefinition(lons=self.lons, lats=self.lats) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, self.tb37v.copy(), swath_def, radius_of_influence=70000, sigmas=56500) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') if sys.platform == 'darwin': # OSX seems to get slightly different results for `_spatial_mp.Cartesian` truth_value = 668848.144817 else: truth_value = 668848.082208 self.assertAlmostEqual(res.sum() / 100., truth_value, 1, msg='Failed self mapping swath for 1 channel') def test_self_map_multi(self): data = np.column_stack((self.tb37v, self.tb37v, self.tb37v)) swath_def = geometry.SwathDefinition(lons=self.lons, lats=self.lats) with catch_warnings() as w: res = kd_tree.resample_gauss(swath_def, data, swath_def, radius_of_influence=70000, sigmas=[56500, 56500, 56500]) self.assertFalse( len(w) != 1, 'Failed to create neighbour radius warning') self.assertFalse(('Possible more' not in str( w[0].message)), 'Failed to create correct neighbour radius warning') if sys.platform == 'darwin': # OSX seems to get slightly different results for `_spatial_mp.Cartesian` truth_value = 668848.144817 else: truth_value = 668848.082208 self.assertAlmostEqual(res[:, 0].sum() / 100., truth_value, 1, msg='Failed self mapping swath multi for channel 1') self.assertAlmostEqual(res[:, 1].sum() / 100., truth_value, 1, msg='Failed self mapping swath multi for channel 2') self.assertAlmostEqual(res[:, 2].sum() / 100., truth_value, 1, msg='Failed self mapping swath multi for channel 3') def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite pyresample-1.8.1/pyresample/test/test_utils.py000066400000000000000000000245421324347254000216260ustar00rootroot00000000000000import os import unittest import numpy as np from pyresample.test.utils import create_test_longitude, create_test_latitude def tmp(f): f.tmp = True return f class TestLegacyAreaParser(unittest.TestCase): def test_area_parser_legacy(self): """Test legacy area parser.""" from pyresample import utils ease_nh, ease_sh = utils.parse_area_file(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'ease_nh', 'ease_sh') nh_str = """Area ID: ease_nh Description: Arctic EASE grid Projection ID: ease_nh Projection: {'a': '6371228.0', 'lat_0': '90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625)""" self.assertEquals(ease_nh.__str__(), nh_str) sh_str = """Area ID: ease_sh Description: Antarctic EASE grid Projection ID: ease_sh Projection: {'a': '6371228.0', 'lat_0': '-90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625)""" self.assertEquals(ease_sh.__str__(), sh_str) def test_load_area(self): from pyresample import utils ease_nh = utils.load_area(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'ease_nh') nh_str = """Area ID: ease_nh Description: Arctic EASE grid Projection ID: ease_nh Projection: {'a': '6371228.0', 'lat_0': '90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625)""" self.assertEquals(nh_str, ease_nh.__str__()) def test_not_found_exception(self): from pyresample import utils self.assertRaises(utils.AreaNotFound, utils.parse_area_file, os.path.join( os.path.dirname(__file__), 'test_files', 'areas.cfg'), 'no_area') class TestYAMLAreaParser(unittest.TestCase): def test_area_parser_yaml(self): """Test YAML area parser.""" from pyresample import utils ease_nh, ease_sh = utils.parse_area_file(os.path.join(os.path.dirname(__file__), 'test_files', 'areas.yaml'), 'ease_nh', 'ease_sh') nh_str = """Area ID: ease_nh Description: Arctic EASE grid Projection: {'a': '6371228.0', 'lat_0': '90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625)""" self.assertEquals(ease_nh.__str__(), nh_str) sh_str = """Area ID: ease_sh Description: Antarctic EASE grid Projection: {'a': '6371228.0', 'lat_0': '-90', 'lon_0': '0', 'proj': 'laea', 'units': 'm'} Number of columns: 425 Number of rows: 425 Area extent: (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625)""" self.assertEquals(ease_sh.__str__(), sh_str) def test_multiple_file_content(self): from pyresample import utils area_list = ["""ease_sh: description: Antarctic EASE grid projection: a: 6371228.0 units: m lon_0: 0 proj: laea lat_0: -90 shape: height: 425 width: 425 area_extent: lower_left_xy: [-5326849.0625, -5326849.0625] upper_right_xy: [5326849.0625, 5326849.0625] units: m """, """ease_sh2: description: Antarctic EASE grid projection: a: 6371228.0 units: m lon_0: 0 proj: laea lat_0: -90 shape: height: 425 width: 425 area_extent: lower_left_xy: [-5326849.0625, -5326849.0625] upper_right_xy: [5326849.0625, 5326849.0625] units: m """] results = utils.parse_area_file(area_list) self.assertEquals(len(results), 2) self.assertIn(results[0].area_id, ('ease_sh', 'ease_sh2')) self.assertIn(results[1].area_id, ('ease_sh', 'ease_sh2')) class TestPreprocessing(unittest.TestCase): def test_nearest_neighbor_area_area(self): from pyresample import utils, geometry proj_str = "+proj=lcc +datum=WGS84 +ellps=WGS84 +lat_0=25 +lat_1=25 +lon_0=-95 +units=m +no_defs" proj_dict = utils.proj4_str_to_dict(proj_str) extents = [0, 0, 1000. * 5000, 1000. * 5000] area_def = geometry.AreaDefinition('CONUS', 'CONUS', 'CONUS', proj_dict, 400, 500, extents) extents2 = [-1000, -1000, 1000. * 4000, 1000. * 4000] area_def2 = geometry.AreaDefinition('CONUS', 'CONUS', 'CONUS', proj_dict, 600, 700, extents2) rows, cols = utils.generate_nearest_neighbour_linesample_arrays(area_def, area_def2, 12000.) def test_nearest_neighbor_area_grid(self): from pyresample import utils, geometry lon_arr = create_test_longitude(-94.9, -90.0, (50, 100), dtype=np.float64) lat_arr = create_test_latitude(25.1, 30.0, (50, 100), dtype=np.float64) grid = geometry.GridDefinition(lons=lon_arr, lats=lat_arr) proj_str = "+proj=lcc +datum=WGS84 +ellps=WGS84 +lat_0=25 +lat_1=25 +lon_0=-95 +units=m +no_defs" proj_dict = utils.proj4_str_to_dict(proj_str) extents = [0, 0, 1000. * 5000, 1000. * 5000] area_def = geometry.AreaDefinition('CONUS', 'CONUS', 'CONUS', proj_dict, 400, 500, extents) rows, cols = utils.generate_nearest_neighbour_linesample_arrays(area_def, grid, 12000.) def test_nearest_neighbor_grid_area(self): from pyresample import utils, geometry proj_str = "+proj=lcc +datum=WGS84 +ellps=WGS84 +lat_0=25 +lat_1=25 +lon_0=-95 +units=m +no_defs" proj_dict = utils.proj4_str_to_dict(proj_str) extents = [0, 0, 1000. * 2500., 1000. * 2000.] area_def = geometry.AreaDefinition('CONUS', 'CONUS', 'CONUS', proj_dict, 40, 50, extents) lon_arr = create_test_longitude(-100.0, -60.0, (550, 500), dtype=np.float64) lat_arr = create_test_latitude(20.0, 45.0, (550, 500), dtype=np.float64) grid = geometry.GridDefinition(lons=lon_arr, lats=lat_arr) rows, cols = utils.generate_nearest_neighbour_linesample_arrays(grid, area_def, 12000.) def test_nearest_neighbor_grid_grid(self): from pyresample import utils, geometry lon_arr = create_test_longitude(-95.0, -85.0, (40, 50), dtype=np.float64) lat_arr = create_test_latitude(25.0, 35.0, (40, 50), dtype=np.float64) grid_dst = geometry.GridDefinition(lons=lon_arr, lats=lat_arr) lon_arr = create_test_longitude(-100.0, -80.0, (400, 500), dtype=np.float64) lat_arr = create_test_latitude(20.0, 40.0, (400, 500), dtype=np.float64) grid = geometry.GridDefinition(lons=lon_arr, lats=lat_arr) rows, cols = utils.generate_nearest_neighbour_linesample_arrays(grid, grid_dst, 12000.) class TestMisc(unittest.TestCase): def test_wrap_longitudes(self): # test that we indeed wrap to [-180:+180[ from pyresample import utils step = 60 lons = np.arange(-360, 360 + step, step) self.assertTrue( (lons.min() < -180) and (lons.max() >= 180) and (+180 in lons)) wlons = utils.wrap_longitudes(lons) self.assertFalse( (wlons.min() < -180) or (wlons.max() >= 180) or (+180 in wlons)) def test_wrap_and_check(self): from pyresample import utils lons1 = np.arange(-135., +135, 50.) lats = np.ones_like(lons1) * 70. new_lons, new_lats = utils.check_and_wrap(lons1, lats) self.assertIs(lats, new_lats) self.assertTrue(np.isclose(lons1, new_lons).all()) lons2 = np.where(lons1 < 0, lons1 + 360, lons1) new_lons, new_lats = utils.check_and_wrap(lons2, lats) self.assertIs(lats, new_lats) # after wrapping lons2 should look like lons1 self.assertTrue(np.isclose(lons1, new_lons).all()) lats2 = lats + 25. self.assertRaises(ValueError, utils.check_and_wrap, lons1, lats2) def test_unicode_proj4_string(self): """Test that unicode is accepted for area creation. """ from pyresample import utils utils.get_area_def(u"eurol", u"eurol", u"bla", u'+proj=stere +a=6378273 +b=6356889.44891 +lat_0=90 +lat_ts=70 +lon_0=-45', 1000, 1000, (-1000, -1000, 1000, 1000)) def test_proj4_radius_parameters_provided(self): from pyresample import utils a, b = utils.proj4_radius_parameters( '+proj=stere +a=6378273 +b=6356889.44891', ) np.testing.assert_almost_equal(a, 6378273) np.testing.assert_almost_equal(b, 6356889.44891) def test_proj4_radius_parameters_ellps(self): from pyresample import utils a, b = utils.proj4_radius_parameters( '+proj=stere +ellps=WGS84', ) np.testing.assert_almost_equal(a, 6378137.) np.testing.assert_almost_equal(b, 6356752.314245, decimal=6) def test_proj4_radius_parameters_default(self): from pyresample import utils a, b = utils.proj4_radius_parameters( '+proj=lcc', ) # WGS84 np.testing.assert_almost_equal(a, 6378137.) np.testing.assert_almost_equal(b, 6356752.314245, decimal=6) def test_proj4_str_dict_conversion(self): from pyresample import utils proj_str = "+proj=lcc +ellps=WGS84 +lon_0=-95 +no_defs" proj_dict = utils.proj4_str_to_dict(proj_str) proj_str2 = utils.proj4_dict_to_str(proj_dict) proj_dict2 = utils.proj4_str_to_dict(proj_str2) self.assertDictEqual(proj_dict, proj_dict2) def suite(): """The test suite. """ loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(TestLegacyAreaParser)) mysuite.addTest(loader.loadTestsFromTestCase(TestYAMLAreaParser)) mysuite.addTest(loader.loadTestsFromTestCase(TestPreprocessing)) mysuite.addTest(loader.loadTestsFromTestCase(TestMisc)) return mysuite pyresample-1.8.1/pyresample/test/utils.py000066400000000000000000000140541324347254000205640ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2016 David Hoese # Author(s): # David Hoese # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Utilities for testing. This mostly takes from astropy's method for checking warnings during tests. """ import sys import six import types import warnings import numpy as np _deprecations_as_exceptions = False _include_astropy_deprecations = False AstropyDeprecationWarning = None AstropyPendingDeprecationWarning = None def treat_deprecations_as_exceptions(): """ Turn all DeprecationWarnings (which indicate deprecated uses of Python itself or Numpy, but not within Astropy, where we use our own deprecation warning class) into exceptions so that we find out about them early. This completely resets the warning filters and any "already seen" warning state. """ # First, totally reset the warning state for module in list(six.itervalues(sys.modules)): # We don't want to deal with six.MovedModules, only "real" # modules. if (isinstance(module, types.ModuleType) and hasattr(module, '__warningregistry__')): del module.__warningregistry__ if not _deprecations_as_exceptions: return warnings.resetwarnings() # Hide the next couple of DeprecationWarnings warnings.simplefilter('ignore', DeprecationWarning) # Here's the wrinkle: a couple of our third-party dependencies # (py.test and scipy) are still using deprecated features # themselves, and we'd like to ignore those. Fortunately, those # show up only at import time, so if we import those things *now*, # before we turn the warnings into exceptions, we're golden. try: # A deprecated stdlib module used by py.test import compiler # pylint: disable=W0611 except ImportError: pass try: import scipy # pylint: disable=W0611 except ImportError: pass # Now, start over again with the warning filters warnings.resetwarnings() # Now, turn DeprecationWarnings into exceptions warnings.filterwarnings("error", ".*", DeprecationWarning) # Only turn astropy deprecation warnings into exceptions if requested if _include_astropy_deprecations: warnings.filterwarnings("error", ".*", AstropyDeprecationWarning) warnings.filterwarnings("error", ".*", AstropyPendingDeprecationWarning) if sys.version_info[:2] >= (3, 4): # py.test reads files with the 'U' flag, which is now # deprecated in Python 3.4. warnings.filterwarnings( "ignore", r"'U' mode is deprecated", DeprecationWarning) # BeautifulSoup4 triggers a DeprecationWarning in stdlib's # html module.x warnings.filterwarnings( "ignore", r"The strict argument and mode are deprecated\.", DeprecationWarning) warnings.filterwarnings( "ignore", r"The value of convert_charrefs will become True in 3\.5\. " r"You are encouraged to set the value explicitly\.", DeprecationWarning) if sys.version_info[:2] >= (3, 5): # py.test raises this warning on Python 3.5. # This can be removed when fixed in py.test. # See https://github.com/pytest-dev/pytest/pull/1009 warnings.filterwarnings( "ignore", r"inspect\.getargspec\(\) is deprecated, use " r"inspect\.signature\(\) instead", DeprecationWarning) class catch_warnings(warnings.catch_warnings): """ A high-powered version of warnings.catch_warnings to use for testing and to make sure that there is no dependence on the order in which the tests are run. This completely blitzes any memory of any warnings that have appeared before so that all warnings will be caught and displayed. ``*args`` is a set of warning classes to collect. If no arguments are provided, all warnings are collected. Use as follows:: with catch_warnings(MyCustomWarning) as w: do.something.bad() assert len(w) > 0 """ def __init__(self, *classes): super(catch_warnings, self).__init__(record=True) self.classes = classes def __enter__(self): warning_list = super(catch_warnings, self).__enter__() treat_deprecations_as_exceptions() if len(self.classes) == 0: warnings.simplefilter('always') else: warnings.simplefilter('ignore') for cls in self.classes: warnings.simplefilter('always', cls) return warning_list def __exit__(self, type, value, traceback): treat_deprecations_as_exceptions() def create_test_longitude(start, stop, shape, twist_factor=0.0, dtype=np.float32): if start > stop: stop += 360.0 lon_row = np.linspace(start, stop, num=shape[1]).astype(dtype) twist_array = np.arange(shape[0]).reshape((shape[0], 1)) * twist_factor lon_array = np.repeat([lon_row], shape[0], axis=0) lon_array += twist_array if stop > 360.0: lon_array[lon_array > 360.0] -= 360 return lon_array def create_test_latitude(start, stop, shape, twist_factor=0.0, dtype=np.float32): lat_col = np.linspace(start, stop, num=shape[0]).astype(dtype).reshape((shape[0], 1)) twist_array = np.arange(shape[1]) * twist_factor lat_array = np.repeat(lat_col, shape[1], axis=1) lat_array += twist_array return lat_array pyresample-1.8.1/pyresample/utils.py000066400000000000000000000421301324347254000176010ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010-2015 # # Authors: # Esben S. Nielsen # Thomas Lavergne # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . """Utility functions for pyresample""" from __future__ import absolute_import import os import numpy as np import six import yaml from configobj import ConfigObj from collections import Mapping class AreaNotFound(KeyError): """Exception raised when specified are is no found in file""" pass def load_area(area_file_name, *regions): """Load area(s) from area file Parameters ----------- area_file_name : str Path to area definition file regions : str argument list Regions to parse. If no regions are specified all regions in the file are returned Returns ------- area_defs : object or list If one area name is specified a single AreaDefinition object is returned If several area names are specified a list of AreaDefinition objects is returned Raises ------ AreaNotFound: If a specified area name is not found """ area_list = parse_area_file(area_file_name, *regions) if len(area_list) == 1: return area_list[0] else: return area_list def parse_area_file(area_file_name, *regions): """Parse area information from area file Parameters ----------- area_file_name : str Path to area definition file regions : str argument list Regions to parse. If no regions are specified all regions in the file are returned Returns ------- area_defs : list List of AreaDefinition objects Raises ------ AreaNotFound: If a specified area is not found """ try: return _parse_yaml_area_file(area_file_name, *regions) except yaml.scanner.ScannerError: return _parse_legacy_area_file(area_file_name, *regions) def _read_yaml_area_file_content(area_file_name): """Read one or more area files in to a single dict object.""" if isinstance(area_file_name, (str, six.text_type)): area_file_name = [area_file_name] area_dict = {} for area_file_obj in area_file_name: if (isinstance(area_file_obj, (str, six.text_type)) and os.path.isfile(area_file_obj)): with open(area_file_obj) as area_file_obj: tmp_dict = yaml.load(area_file_obj) else: tmp_dict = yaml.load(area_file_obj) area_dict = recursive_dict_update(area_dict, tmp_dict) return area_dict def _parse_yaml_area_file(area_file_name, *regions): """Parse area information from a yaml area file. Args: area_file_name: filename, file-like object, yaml string, or list of these. The result of loading multiple area files is the combination of all the files, using the first file as the "base", replacing things after that. """ from pyresample.geometry import DynamicAreaDefinition area_dict = _read_yaml_area_file_content(area_file_name) area_list = regions or area_dict.keys() res = [] for area_name in area_list: try: params = area_dict[area_name] except KeyError: raise AreaNotFound('Area "{0}" not found in file "{1}"'.format( area_name, area_file_name)) description = params['description'] projection = params['projection'] optimize_projection = params.get('optimize_projection', False) try: xsize = params['shape']['width'] ysize = params['shape']['height'] except KeyError: xsize, ysize = None, None try: area_extent = (params['area_extent']['lower_left_xy'] + params['area_extent']['upper_right_xy']) except KeyError: area_extent = None try: rotation = params['rotation'] except KeyError: rotation = 0 area = DynamicAreaDefinition(area_name, description, projection, xsize, ysize, area_extent, optimize_projection, rotation) try: area = area.freeze() except (TypeError, AttributeError): pass res.append(area) return res def _read_legacy_area_file_lines(area_file_name): if isinstance(area_file_name, (str, six.text_type)): area_file_name = [area_file_name] for area_file_obj in area_file_name: if (isinstance(area_file_obj, (str, six.text_type)) and not os.path.isfile(area_file_obj)): # file content string for line in area_file_obj.splitlines(): yield line continue elif isinstance(area_file_obj, (str, six.text_type)): # filename with open(area_file_obj, 'r') as area_file_obj: for line in area_file_obj.readlines(): yield line def _parse_legacy_area_file(area_file_name, *regions): """Parse area information from a legacy area file.""" area_file = _read_legacy_area_file_lines(area_file_name) area_list = list(regions) if len(area_list) == 0: select_all_areas = True area_defs = [] else: select_all_areas = False area_defs = [None for i in area_list] # Extract area from file in_area = False for line in area_file: if not in_area: if 'REGION' in line: area_id = line.replace('REGION:', ''). \ replace('{', '').strip() if area_id in area_list or select_all_areas: in_area = True area_content = '' elif '};' in line: in_area = False if select_all_areas: area_defs.append(_create_area(area_id, area_content)) else: area_defs[area_list.index(area_id)] = _create_area(area_id, area_content) else: area_content += line # Check if all specified areas were found if not select_all_areas: for i, area in enumerate(area_defs): if area is None: raise AreaNotFound('Area "%s" not found in file "%s"' % (area_list[i], area_file_name)) return area_defs def _create_area(area_id, area_content): """Parse area configuration""" from pyresample.geometry import AreaDefinition config_obj = area_content.replace('{', '').replace('};', '') config_obj = ConfigObj([line.replace(':', '=', 1) for line in config_obj.splitlines()]) config = config_obj.dict() config['REGION'] = area_id try: string_types = basestring except NameError: string_types = str if not isinstance(config['NAME'], string_types): config['NAME'] = ', '.join(config['NAME']) config['XSIZE'] = int(config['XSIZE']) config['YSIZE'] = int(config['YSIZE']) if 'ROTATION' in config.keys(): config['ROTATION'] = float(config['ROTATION']) else: config['ROTATION'] = 0 config['AREA_EXTENT'][0] = config['AREA_EXTENT'][0].replace('(', '') config['AREA_EXTENT'][3] = config['AREA_EXTENT'][3].replace(')', '') for i, val in enumerate(config['AREA_EXTENT']): config['AREA_EXTENT'][i] = float(val) config['PCS_DEF'] = _get_proj4_args(config['PCS_DEF']) return AreaDefinition(config['REGION'], config['NAME'], config['PCS_ID'], config['PCS_DEF'], config['XSIZE'], config['YSIZE'], config['AREA_EXTENT'], config['ROTATION']) def get_area_def(area_id, area_name, proj_id, proj4_args, x_size, y_size, area_extent, rotation=0): """Construct AreaDefinition object from arguments Parameters ----------- area_id : str ID of area proj_id : str ID of projection area_name :str Description of area proj4_args : list or str Proj4 arguments as list of arguments or string x_size : int Number of pixel in x dimension y_size : int Number of pixel in y dimension rotation: float Rotation in degrees (negative is cw) area_extent : list Area extent as a list of ints (LL_x, LL_y, UR_x, UR_y) Returns ------- area_def : object AreaDefinition object """ from pyresample.geometry import AreaDefinition proj_dict = _get_proj4_args(proj4_args) return AreaDefinition(area_id, area_name, proj_id, proj_dict, x_size, y_size, area_extent) def generate_quick_linesample_arrays(source_area_def, target_area_def, nprocs=1): """Generate linesample arrays for quick grid resampling Parameters ----------- source_area_def : object Source area definition as geometry definition object target_area_def : object Target area definition as geometry definition object nprocs : int, optional Number of processor cores to be used Returns ------- (row_indices, col_indices) : tuple of numpy arrays """ from pyresample.grid import get_linesample lons, lats = target_area_def.get_lonlats(nprocs) source_pixel_y, source_pixel_x = get_linesample(lons, lats, source_area_def, nprocs=nprocs) source_pixel_x = _downcast_index_array(source_pixel_x, source_area_def.shape[1]) source_pixel_y = _downcast_index_array(source_pixel_y, source_area_def.shape[0]) return source_pixel_y, source_pixel_x def generate_nearest_neighbour_linesample_arrays(source_area_def, target_area_def, radius_of_influence, nprocs=1): """Generate linesample arrays for nearest neighbour grid resampling Parameters ----------- source_area_def : object Source area definition as geometry definition object target_area_def : object Target area definition as geometry definition object radius_of_influence : float Cut off distance in meters nprocs : int, optional Number of processor cores to be used Returns ------- (row_indices, col_indices) : tuple of numpy arrays """ from pyresample.kd_tree import get_neighbour_info valid_input_index, valid_output_index, index_array, distance_array = \ get_neighbour_info(source_area_def, target_area_def, radius_of_influence, neighbours=1, nprocs=nprocs) # Enumerate rows and cols rows = np.fromfunction(lambda i, j: i, source_area_def.shape, dtype=np.int32).ravel() cols = np.fromfunction(lambda i, j: j, source_area_def.shape, dtype=np.int32).ravel() # Reduce to match resampling data set rows_valid = rows[valid_input_index] cols_valid = cols[valid_input_index] # Get result using array indexing number_of_valid_points = valid_input_index.sum() index_mask = (index_array == number_of_valid_points) index_array[index_mask] = 0 row_sample = rows_valid[index_array] col_sample = cols_valid[index_array] row_sample[index_mask] = -1 col_sample[index_mask] = -1 # Reshape to correct shape row_indices = row_sample.reshape(target_area_def.shape) col_indices = col_sample.reshape(target_area_def.shape) row_indices = _downcast_index_array(row_indices, source_area_def.shape[0]) col_indices = _downcast_index_array(col_indices, source_area_def.shape[1]) return row_indices, col_indices def fwhm2sigma(fwhm): """Calculate sigma for gauss function from FWHM (3 dB level) Parameters ---------- fwhm : float FWHM of gauss function (3 dB level of beam footprint) Returns ------- sigma : float sigma for use in resampling gauss function """ return fwhm / (2 * np.sqrt(np.log(2))) def _get_proj4_args(proj4_args): """Create dict from proj4 args """ if isinstance(proj4_args, (str, six.text_type)): proj_config = ConfigObj(str(proj4_args).replace('+', '').split()) else: proj_config = ConfigObj(proj4_args) return proj_config.dict() def proj4_str_to_dict(proj4_str): """Convert PROJ.4 compatible string definition to dict Note: Key only parameters will be assigned a value of `True`. """ pairs = (x.split('=', 1) for x in proj4_str.replace('+', '').split(" ")) return dict((x[0], (x[1] if len(x) == 2 else True)) for x in pairs) def proj4_dict_to_str(proj4_dict, sort=False): """Convert a dictionary of PROJ.4 parameters to a valid PROJ.4 string""" keys = proj4_dict.keys() if sort: keys = sorted(keys) params = [] for key in keys: val = proj4_dict[key] key = str(key) if key.startswith('+') else '+' + str(key) if str(val) in ['True', 'False']: # could be string or boolean object val = '' if val: param = '{}={}'.format(key, val) else: # example "+no_defs" param = key params.append(param) return ' '.join(params) def proj4_radius_parameters(proj4_dict): """Calculate 'a' and 'b' radius parameters. Arguments: proj4_dict (str or dict): PROJ.4 parameters Returns: a (float), b (float): equatorial and polar radius """ if isinstance(proj4_dict, str): new_info = proj4_str_to_dict(proj4_dict) else: new_info = proj4_dict.copy() # load information from PROJ.4 about the ellipsis if possible from pyproj import Geod if 'ellps' in new_info: geod = Geod(**new_info) new_info['a'] = geod.a new_info['b'] = geod.b elif 'a' not in new_info or 'b' not in new_info: if 'rf' in new_info and 'f' not in new_info: new_info['f'] = 1. / float(new_info['rf']) if 'a' in new_info and 'f' in new_info: new_info['b'] = float(new_info['a']) * (1 - float(new_info['f'])) elif 'b' in new_info and 'f' in new_info: new_info['a'] = float(new_info['b']) / (1 - float(new_info['f'])) else: geod = Geod(**{'ellps': 'WGS84'}) new_info['a'] = geod.a new_info['b'] = geod.b return float(new_info['a']), float(new_info['b']) def _downcast_index_array(index_array, size): """Try to downcast array to uint16 """ if size <= np.iinfo(np.uint16).max: mask = (index_array < 0) | (index_array >= size) index_array[mask] = size index_array = index_array.astype(np.uint16) return index_array def wrap_longitudes(lons): """Wrap longitudes to the [-180:+180[ validity range (preserves dtype) Parameters ---------- lons : numpy array Longitudes in degrees Returns ------- lons : numpy array Longitudes wrapped into [-180:+180[ validity range """ return (lons + 180) % 360 - 180 def check_and_wrap(lons, lats): """Wrap longitude to [-180:+180[ and check latitude for validity. Args: lons (ndarray): Longitude degrees lats (ndarray): Latitude degrees Returns: lons, lats: Longitude degrees in the range [-180:180[ and the original latitude array Raises: ValueError: If latitude array is not between -90 and 90 """ # check the latitutes if lats.min() < -90. or lats.max() > 90.: raise ValueError( 'Some latitudes are outside the [-90.:+90] validity range') # check the longitudes if lons.min() < -180. or lons.max() >= 180.: # wrap longitudes to [-180;+180[ lons = wrap_longitudes(lons) return lons, lats def recursive_dict_update(d, u): """Recursive dictionary update using Copied from: http://stackoverflow.com/questions/3232943/update-value-of-a-nested-dictionary-of-varying-depth """ for k, v in u.items(): if isinstance(v, Mapping): r = recursive_dict_update(d.get(k, {}), v) d[k] = r else: d[k] = u[k] return d pyresample-1.8.1/pyresample/version.py000066400000000000000000000014261324347254000201310ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2010, 2014, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . __version__ = '1.8.1' pyresample-1.8.1/readthedocs.yml000066400000000000000000000001151324347254000167130ustar00rootroot00000000000000requirements_file: "docs/requirements.txt" python: setup_py_install: truepyresample-1.8.1/requirements.txt000066400000000000000000000000561324347254000171730ustar00rootroot00000000000000git+https://github.com/matplotlib/basemap.git pyresample-1.8.1/setup.cfg000066400000000000000000000002021324347254000155210ustar00rootroot00000000000000[bdist_rpm] requires=numpy pykdtree python2-numexpr pyproj python-configobj release=1 doc_files = docs/Makefile docs/source/*.rst pyresample-1.8.1/setup.py000066400000000000000000000113471324347254000154260ustar00rootroot00000000000000# pyresample, Resampling of remote sensing image data in python # # Copyright (C) 2012, 2014, 2015 Esben S. Nielsen # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or #(at your option) any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . import imp # workaround python bug: http://bugs.python.org/issue15881#msg170215 import multiprocessing import os import sys from setuptools import Extension, find_packages, setup from setuptools.command.build_ext import build_ext as _build_ext version = imp.load_source('pyresample.version', 'pyresample/version.py') requirements = ['setuptools>=3.2', 'pyproj>=1.9.5.1', 'numpy', 'configobj', 'pykdtree>=1.1.1', 'pyyaml', 'six'] extras_require = {'pykdtree': ['pykdtree>=1.1.1'], 'numexpr': ['numexpr'], 'quicklook': ['matplotlib', 'basemap', 'pillow'], 'dask': ['dask>=0.16.1']} test_requires = [] if sys.version_info < (3, 3): test_requires.append('mock') if sys.version_info < (2, 6): # multiprocessing is not in the standard library requirements.append('multiprocessing') if sys.platform.startswith("win"): extra_compile_args = [] else: extra_compile_args = ["-O3", "-Wno-unused-function"] extensions = [ Extension("pyresample.ewa._ll2cr", sources=["pyresample/ewa/_ll2cr.pyx"], extra_compile_args=extra_compile_args), Extension("pyresample.ewa._fornav", sources=["pyresample/ewa/_fornav.pyx", "pyresample/ewa/_fornav_templates.cpp"], language="c++", extra_compile_args=extra_compile_args, depends=["pyresample/ewa/_fornav_templates.h"]) ] try: from Cython.Build import cythonize except ImportError: cythonize = None def set_builtin(name, value): if isinstance(__builtins__, dict): __builtins__[name] = value else: setattr(__builtins__, name, value) class build_ext(_build_ext): """Work around to bootstrap numpy includes in to extensions. Copied from: http://stackoverflow.com/questions/19919905/how-to-bootstrap-numpy-installation-in-setup-py """ def finalize_options(self): _build_ext.finalize_options(self) # Prevent numpy from thinking it is still in its setup process: set_builtin('__NUMPY_SETUP__', False) import numpy self.include_dirs.append(numpy.get_include()) if __name__ == "__main__": if not os.getenv("USE_CYTHON", False) or cythonize is None: print( "Cython will not be used. Use environment variable 'USE_CYTHON=True' to use it") def cythonize(extensions, **_ignore): """Fake function to compile from C/C++ files instead of compiling .pyx files with cython. """ for extension in extensions: sources = [] for sfile in extension.sources: path, ext = os.path.splitext(sfile) if ext in ('.pyx', '.py'): if extension.language == 'c++': ext = '.cpp' else: ext = '.c' sfile = path + ext sources.append(sfile) extension.sources[:] = sources return extensions setup(name='pyresample', version=version.__version__, description='Resampling of remote sensing data in Python', author='Thomas Lavergne', author_email='t.lavergne@met.no', package_dir={'pyresample': 'pyresample'}, packages=find_packages(), setup_requires=['numpy'], install_requires=requirements, extras_require=extras_require, tests_require=test_requires, cmdclass={'build_ext': build_ext}, ext_modules=cythonize(extensions), test_suite='pyresample.test.suite', zip_safe=False, classifiers=[ 'Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)', 'Programming Language :: Python', 'Operating System :: OS Independent', 'Intended Audience :: Science/Research', 'Topic :: Scientific/Engineering' ] )

?ւ(9%կQ|"bǰyڟdr.cKq2v)ڶ@̴ $$dBҠVN)3G/npj#V7>E{UkI%vq8J ƺ jrd('l7X(aN(Mir+#czF.8sܼÇH0 :ʧei,BJ>$ie:_•ܟV=5=U3,B3ٰ&0 [Y܃tr\f( *hرbcW]R[Ty}겛x~&8_YT9ӞrtNj{IJq;wTϽjs&Teoh'f!IK TX `T%"d Y,V],:H̒Qb ~tR{zb'SPfoK Q!QӾE7Q=PD+lFX @U.F 㼲k][aXRΩ2*q gc4apJXJ?S,ɄZ>.4d.xwp뛐{!b>FcTǷZd HHTtQ C9mՒ7[L0fZbhۛXDS%ԫ RoLR!{@[`=Zk:Mi2qdتs]瓒yJpYsr=-QyYo))Ram &:̰1lxO~]kNwx'XDW1du SR%B2ip&"LjBX~/xHYwJ_Q Y?iURŏ[8/0Ǣ6ժu2Y@ IDATV9ѮK#ՒGa#+t4K2eM#NlXq%QchpD3V TlY.@|6ao]5V 0R0{wuAK>:0ʵ{ u_1~LZKn_D*5# E cQ^sjO}IכvDt-AIxcBP M9q:.s0W" !IIQT02^GFiJβKns_ y.%yU&{ ӳ,3D*|pq3יT=;Z*zvTax#oSzO.vzS*)=9{s5~L{*K$Dh}]~oZ$lx@.xBml2>:bHJ)f5mCYyi91FI.k-b.V: BumfoD!]*A/"*]b}n0qI"Ͱ.j̽fa/Hf4?ort+d*Env襃蜟ZJ>G|[DZ9)!sMC=G. RqT|E<.G.2ih>c%HO2k]ONew,o7?=bwH K Y2*h=8RbK jB1ܻwJmMw ![%F` ڨ{W8Ҋ9%\h8}LݽI> bc95}zy4m *;Rӳg0+X'Uр~9T_ l ah]z.~\ uV#q\NID1 .|Y;;C}%\cjCDV -U2o^ Ru4W!kTA12>=?K@39ߤW/mk L))II )!ԘzY<:"_!4 xHޜ~ 3WGZ$b Or@e <N2b&`!X1"Rѝ?$;&Y"y mf"XqM;BܦEcP[ZM8¯ ͆ی9T]>xnEd`ctÀ 4LVUIX8L_8q[;U"}R?SO:'caY tK(RaLq@kYud"#:FHact_C+q[*sy È$f F>a0E!O@(V6]~O<< PT;6 j]zS>ik23i-+ymiNF~]|bvrit EMу($d"MV<^sPkT3~X?QLGPs .9엉mzB1US79?;GDX-Dp2%kf*۰y}y{1@DP9;X4)5XZuE QIԯ2VHFGIXgFH&g) eA{jMkkp.xe*=v1Gt Xxgr'N# B\.1tڋBE Al6M='5.aw؈wp17<(*#bjN8^~o`Mg>d{CSUR2c"nu+՗C!wE::74i,T^vƺ[(SUeɎ< v|ߛu?5OƳ0Cw7Xd ̯Y_CFdrXWEv\~8o5OU+;;e|p8m,a8n G!7-}Hm3~=Ɏ;G7q6!#7f-"B 1JZqqT$" )?kK h3&{$IPby ]PL9[ dC *LY QpW1 )ټ1I%͍WG 1қK_"M6yn"՞U?baNG|ss8nHHNm(fd B4]#&1 lr,-<6c۬nz$Sc}ѴFQ)~ s:- ڳ2SL r@[ n3H0¿gk }w/?;' W׷#1,ke{c 28ƁtϷT8`SY:lѠqq5;4ro\fqgS (U )wa{U 4waKc|{ !(H| xD Į77Ucnt Obgz?ygzg5].91īcuYL[K-zԟ캪A{* <$tμΑBֆxf Zib}r9  (ICʪ1{Ws@գVr<:u`zԾ0)gڭ 5*WWȺc)7'zn rf[CHYRU!wҕ߲c~B<% H`jX*F;ׯ-DlҸӹPq r~z*q].8{tƮI{{iwy2eX``+Z'Pמ; ieg[1&d{4JSft/b;TPj< l5LdƘT7غ&'\F[[%`ucaeJz)2V>@W~+JX"FϾ?gٌ,}Щ_@tagH%灦u,OT&RtvL98 $;$jKwqҶICz|uD%#)c%SDGG5&wJ̱R]/ #Wy3]B}I 2&I cl~ {JyVEA ۔L)Iht'.``#'6oyn;xou{ 25t4ӎ=cWH>΁7_N\OP#:;3а/3SsC>7olM؟Ӭ1c#?(*qZÈnOG;,G7o..68Ehj2qH>}}Z#!GԪ41U $ GsU+RNDz~,sSP`Y~KV!A/mh,dߚYXck ;T7?5;`ۿxߒ]8?{qDƁ>>&5GLAbOѴ䵾kҸavbwHX:zFtRb9~19سM{u1bG$@v |U3v{LvvCu "jN3!@YgS]m=Tɚ1C!g1qO@/I5^4ed\>EvT}{|~jXƸ^B3C TP]U4r~GpE>@)maCgy>ѯT}12 uMe]A_\ />p|,|aϒm2ߕǪ$%[1ί >;|:GX ~!U͚ 7xĖ>40+B8^AMM,xUxZM|;?H oѝ'~ְv#x˴Xb/+1s}q XvF>n9sݒ*٤)y(YrƜ BÞ}FG9ԥh%m_ATn[L ~lVCrFznL()pKLhp&D*3>A)nYTmrXÿ$o0`( [v~ ueƓbB2#ЩpuS!2ԚcZ e8#bc. 5& 64pHL,51 uݲ<㰧qB=`m*ig{hE/U'J@;ɾ|dyu )p5O4Lwx=qx{jtcUio[O_z簾qjh.v,:ՌT( mޘy#Nu~ȷ+6ňEObd_(yR꩘]>0z8U|qVKSrpf@2^e#&3NZuI6źKCwn@a,IWnҴ)8+XWӍ;&=!a,nq"ؔCslz iwADЫB>qﴷn 3uZ%ٽ[+h1PۼZ=^b}8{'n|eb z\V*r#.Є@364,+G mKj9;EcwnG%vGF\&՞R)"U.N$2k %6Sq|CVX0nQB]G<P Pr/TL˰4"K_~+s2+h;| -qb>|/c/Xb ˬX~ IDAT,^9q U|J5H:6F+\ʌd@ʖz} L1nX,ÞU ;Œ?#4K{|ŇβܧZ]Ҵ5iD0~cLR=ݐhn X>}$Qd6Ծ9tPRWz 訪#mD]GL=dpUg V!'!G4|ed@ל,+kX, BgxcsIҵד箾On\O،:}C25N1B~zZ$ q(2!xU $*KO_ޫopв!τKP3);6'{ZZ٪ @KMHˎ%[l:̓o0/m&Mcz.T}ns-gsLKsOOŢ=5Üba}_MV~jB{Hw7GD#`DV@1y@zU/mE"nJZfd8SzV'wHb`R]ݴ3ZQ!DrYԷd[y-ҎDX5$Өp#NVTҗ՘KW}93}RpS)߬| 1Ҟŀֽ"Ө݄=mRi4'%5$ƘPC%烚O j$R:Qib-A| TBjg/|[?ɽQ-55ܑ>t<Ӭn}86ٲb(i /,RbjIJ s>̧,>1gN"7F36hKK2U TT@M+S}6(&`}|]c> 3 xkI$>_P\ /8$2H `B87gA LiZ%3_' 8{>WT 3]!G-rͲ^r~<PG$xmsT5,n!gȨ xsTdj,XU ^T"{N|xmH 2HHt<[$F)6Ɣh3Y|p Q%hóLc04z]_? |k%<'lId1iO:[뵅&iL,d$9'b:CX >˿<TsMz퓧9.]e*aRL+5U:ZכǜV&2jxhذb|w#p m+"j+ZkpldOdCvo@90 !ek^2HqYrΪKFN9P E+b M٘lxA7 >i0ٖlg|Vx㈤nWX@ݮmO1<7"3Z{e5Tp3(4iH9ۜ?:cۇ%qc5{,EP$[5\#q;ChjR4z!g}t#IXzcvK9lH_)HP/l$\a{HdHƑV &LfnB~crB+UC6Xؖ$e!}b"O?P1vޛۖegyߘsާMl*R@ф1CH"&`~p8lB7hv`m0,, jKd*ۜn7k9Øsu=7[3"󞳛uV;W5M3u ?c#/?w_Iچ䏇nXCoU"ϼ yDBVDeGď8Ț#)c;%+R`t HvOm|}a9tKrڒr,0TO{8QqҷeLSU'Ji&…Ep]|A{nceM=M#1Fsj2ϑЖ'⚀3Tqߴ>84h*Y) >[lS9w ]'&QrЙw~Mj:=6'wpnqH:2>O H11E!+j|`=˦;ǜ;Ote;''1ZdH S[ZeQq ˉ_%^sH:̘e5Eʱ8?lO`nY>Y{5|oAIGS$kmIWWWhʀ&?J#hf '?[5e^kZ]޵-mn! F2H!{[qX?V, uϡn-<δ"5-+6YfU$FzSB5# yYa)?J>IqwF]3%^@14 T1&cUjFxdR+"mg(]OZ6D\][?qVfBrSxyZ SzLnsFn$JcrWe6FMyiנ>}KhW|{kĠJ0v9(Υ"1ZsL۞)Av?|lW5^$MwQGcMR}>J%_} "9IhΌXq4n9 gp#ε$fS)ܐ3RwFvo_u~Ѱ\H[ tS~[#ih&ڐ֠?.[֬ Y<\7Ų=Gq|OX%0P "orm#R ȡ6{z,5SPz+Tۼ7@M 5߸JP&sl$Yh=) Mi`֌]q6LhÎG ҈jxJ&RR]\Y(:yC| ;8\psmPʯ!^)4LY Y l.\YJIR:_OS;ڌK׍HCR>Z9FZgĶSE>H׋k8 %)S@:B eYRoڲ8>wBsۿ'WV0\~jU&eXTI[þtd§9?n|ε܀j=:z\Xm8gmh%#j`ƒ#/}=?iз}+V n@^Uš$U{WlJn-#wx[tɋ,)=91V;yȬ/g S{9#ٖT8vHӔnz;.66 nxgda8֕fkonНpY;sP4M{5z{Ҵn,m4ڐ͜ǐآi`m]#xڦeےSԴ$y4<<^g[NMpAIM݈mbtMK>I G]ꐰ1)eS]#?s HDj*eRu1'j^KS})U*fi'Qsh٢\ D W?Cwyl"`@1 tHK=G5{ s9Ӣj6*RPL~O*w߷ W/?~ djqph~Hq~8l#A{z3_s{f3\& ="}u7{M۳ljEȮ%UJv,IVH$Aʧٲj&d2wiB_`yppx#41ng--xm;^A]no Q*eqk33mFH-<GX )4=YMrxs~/C:'y@4F3UƍmK m=$yxmY~%4CJk+@9/R j2yP%6*Z4! vv:Z³2'5{R}}{TL5.|IZD;$)37TxqB@=w_zn߁6 T[*J 5 rVz^3^cڶYal#_X%U>ŭp'g9^۱^n˂X۫9GlYLvU 8 ?;_999}&PMΩ Tiz,:O8;;4 y'$淪Jw8H^1F”#Iv ̴zKI%𾁔)#7-iJqwmd\ A |6m uۗ=\-@VFY:6+^^\w=kH#+-ShϷ+f>)8ֺV'n,@eRBڮhL{XKPҎ4*MwC. ,QQR{}H2__F8נ~ҭoz`/Z2t+jK2Xfϯ;AWtkPe-@z@!PYAH)9z<\o"fL_/%TnEȸHYNJ"nJv]CFuH o>_@1y@,(%]jK0}sF{m]a-PnͤL͞keci)p@"dk|Z5㆒v k}LD9&㪥sXs@, Z>gd tGGݗYز4Dizfj+㆐;tMvc ~|squ4lĜ h[Rɤ3F 3@f05'͂Z$e"df5jXF^ J`˟9z]3) 3_t݂!r!g(J;1,v[#oo08Î 8 i^xO9(1:Q߫apL.B}lɖՔ4c<&FJk$x1J`x{$]||PA/1Yx,:Xr4B-\]^֗.UZ?i&bP eW\I5J6V`殐⪠L gʾ=%;֬$.8dɖ( Ix0H˘! 91;ŷmߏv,ذOH)8I?߹uu9SJ  EӇez!'Jpy6'Ubx/8u7 4eGbɘC zֿt ƔMӐ)KaxDG' IDATsz8r u} xʲ%7翉p^ޯ&Z<70;MAbИխ]G?/!Ql2AGG4sD@[~ߵ`{T yOb h6_}_ʧbw&&rKMyN5f9 CĬ\Rf7Db8#Γ4\FegYj6p1gv]iL,t c -ҟi?bL/n޶+jb\-WkjOWY}SnVXjj]5>}% 2'ܞ uT8%'?+L^K=z|\zhA\X¸"^ tF8z.Zj,l6cj@LӮH)ruBJ$Nc-~c?t\D98bV8Y4 Z?Rǿ\O}Ґu^s@ƳaCAI,&1{tܒ/4Z=Goje$[\Ht"V H\:2=yndX&Qk}A#)H}7}0_ 6>ŢxV5_3'Jp4>h5n?JvG.Ҫ{:3dTżߪٽ^ںOo%F*ӽeDJ3."ơw$جhXDgHVl{Y2/NY< ZdMQW߲Z8&>x]  ''jZg!wIx.8đ9\>qsƧU~ϣʋr9:+W>n<-F j_N綢0l%o8n=e(0PU#)Y:G`B/CbJhaR "]l:kZ4DБtLk=_2(2VƧl^RQ~f[Q("u) ۔NRe"eko0{^(h_U^eJK p( Z(G@sdVlI=HC_8g| {c 9'/-:w,ȸiP!2~?}%es8爪ݾc9DzJ2OOc?s_2x{XdB77 |!5W 4X؎3asVL 9FbysCI32<~h 4풴=U,4r[]$IU-m'5Y:5};--̜DMVnD339+,M#Cpc4h G㕾ߡ.0DhOν}f, !΃=ck 8 vZڥ TP vNrkۇ)=2XFRTd}6 *k<_XiZ {ո/5X\9|5)(u820_X\Xt7~:'@Q`ki~?Jox%ҤVNGB~Ic.8fT{\aӔCeKaV2S9ƑzvS$iWl8`͎#hl1׵k3vB A]@T'9E ޔLB3{??ƒEheʊRĶw xW\''=弟b9O{Bktuy 4|0el"9^l^c`4+v)\萸 UNLUX, ˍiiho; M#8SڲL]h} IeR4@:Zsc1'9'kMvJPv&T鬦ħbzfq MlU6_ אS_J&gIquJKYhۯȾ.tlY*(]H953kf|fv(#BHN-#Qk'u <ǾGȿZ NVf˫mU-OtN^9M{VL(\,( l}K}oɖɻ\oʂ>/us7nS\_:GRM59xRy>twVP249T ;ZRlYNjV] P-^Qkc1E6^x6rgq|OVv,x rt%v{@shF]$|A*\9 %8;={O?s4Yqp:q7 1)a#+f,MlmPjj4m0 f`v.@<:vxx4z\~2gH sSs&?'tf$V{4fpco>gpdJN^$i-B3`}\ԬIJl>'O%>f=|%Ĝ8>ns:i10Ս!+!xS*i٠PZ^KC-A4)HiId qeweb$j` z/9l.fA_%=޻ŬhO9=U/Hq"* JpLo,sR}ël@ƉLf0`^]k 0LDyOֻ}~^-.xv`#Xg'.僑sٔ'H[|[v,&uJϘ,A#b50׀<.zR|(nÍY2p*V+6$kV$Ge,'58wGiv|+!6<ז/roֻ1oe8?v_<3=ZI<w]ʈw7JKf6 a7c ڝņ5%@:]u+pFfA_CentHW44p)%v`o̧i:\@] =B%IϽC=\"/bGE m2&Rc7㸋HeH#7EzKwܹ y[Eeɛ4XHRhRqvahN#{pE 2[, Qd+B3;BP#.NxW{$%ƄRe wη1QZOs; Y-6-@/!1®r 4-Dy@$fнVe,? ;ז<9] {gmYt_^^F'M k[;9b+d`eQcP {)(]M7nV+ ^9{b, bJܽ{4c;Fr?pY8\RNĔpC4=wҭ$Yxތ[pܽz^RVne>䈧!!$жqDR*ud'z3DH6@{Hw<飋+֚W;*GK(hH6^`[ Dʩ@ %meӯ8_3AJrECDG]6rgݘ"Ib-Y-ɥ-M*+Vʺ5`kJLs;F4KN_@ǝ!2qduBLXUp&a֋9CHy?q5Ⱦ|>[dcz:vkPx9-Cl9[w̳sn`-[cwb7L5~M{] ʂmv6,Z;% =F]OL'>u>jͼIQ,w-w_c7MƋnsX2r$>sX<:/qBGO<81v[|mEyVšsktAC%~H1myqow,[>9<8o6$mV@4QiB HB,W8bR߳HQ0Zt^bmqӄ-9{xѲagӅ#kuaEK`v7%)`HgH3^ {C&ΥX٫H̙@<w)Df{n:7' QpgR…v!!Rz[5CDh&o1Ch7/Np omFu;-ǓTssz?kש;Qj=-lV:%)**۾R0/W9OM>ѩμ[ֈb,vXe(.g &\InȜVs'eղ.ƒ-`^K`ݴ/9+#(-+6| NG(tڰۜ-:&)C(nBI!nϴשn???u>LVY29% [s`M2ֳ؀XC4LG3]Ӱ{X`&BC8q-8,&9r:żۨ;b۰dsvb =ȡã>qBp2EH Y$iUR[Ry'{t5vߒqq͛X-٭/A}$il˸LlN^gqpl$9LOW}ng-mfxiL̯;du|HڒQPح;OF9Wk [Xe{9-( ni/3kkj~ݘ5 mebbV>s6LkIe7+ppIkInYh⇿SfY{)x]v4 S6ZWX$+PKbנ\y٨o )*Fk}Vyy7y]qۜp1O<%o-#<3%8 ^y#[A'go<)w@I bLF2Y`Mgq%Er?reP]Ǎ?02*NmPU]:))A$5{|Țg}2ᒋeJ;MHqu\mY2yR6nm`/u,Egp9~:I 9 ~]`k KHxɧ}sUBOZR| ,qa\64 +FFsHQ_6>HDܱDeBe7l躎\sjFMtRo q{2/.@\ %c@[I:gALg sݫ; s\mTx9w)w˂2lLFx)\7o]Y41ޮ|?a|d9u]^jS,L뿊ѳdC 1% m.fA_BVkm|_O¢BtsFJk Kߌajӱ`ǎsD5+-w9z Ɨ_N]Yr9+.T +)iPVlp Z6;KY|3 d1\.Xs(Q`y`HͩL9#Yh[ 1Ӓ^=[0wa! IDATz`3"3= ]HLX]0Y`bSu~s8샶MFiVb|K'jCDžw78eV1T)A*ZZyHr/1,M8yve!<,VyHq)Z\qNj$RudmK!opAo3NI}}x}Vr)I\5x-G>PJB@{}{a)s= 祂,fy_eA:~U\ vȭX^y݆lYLec@gs0i5/dRYyPݲdɖ"a)Cqd- #"}M8_sm!Q cik$NyWxks8:IIy4B:-F9, epY.Cva8Bp#?yЛsoh ,37}6YR Vz %;RP0ŕIjDYFE^ZǕ"P#}1˯_u # 94O~_Qōĵ Sks`Z͜کl(nH@uMeLž$O5s`lYXkmK@  9Gq\ms#"{|nCWy;xݏ\׶}_򳟹toМM#YIl|B,DnA"p,f,6 傓ssPChچ1՜ 2ł0ls4\='eu_|'I^8@G|j2IR=yҒ'K(d4^5W[gYpj:vqCx sIxku-R`ǘJ 8y00 x >XB3+ 3G!KP|v3@ g5XeW5I[woڣc@+C}RV$.#QsN* {i`˟y$z̿EwqǾ緬9c C9D1Ok w9k[t,8WD`_s7B^T(!=ݔuIl8KRJǜd;*b}yhe)^1'ܞfNCOK?z_<_ҵsC'z\j݁49̡Qڰ`bvR\LcٵtmKVu|3$T{e˨( Yа^ fKVvg]&%G:pg4Λ{,BtХ/sT 24p6MZNEsƋ RV s Guy7)iqSВs.H.Vցr:]SI chmDy[xDEomb V=9VWpF_;Rnk_~"/neT1BV>FCj´fݟҐHU&Oyo{|KJl\_ZGOE^nYC4AnE7clXq@u^U>Iɪ3Pz·)@ɂ7yH#8TR5vStx磶~UfU5`O5H`)CnqVT<gL M]->4rlq_W9;;*Lyʙ4TA&}3i̗K|7Y^Ofҗ\˵gblRrջg}ZOV|9Cia`[xɏ#!H6,HnMJ1LzK /)AKsd=Q$ocy*L @m:_Jo~>*D }K?oq " c) Z)O djV狭'{a83?L_wOTg ޙR}[݁]B/5AɈUo4c9&,oOyrAk+8x58 pxi䫿vcXiZbԷ%pG_2;[]~-kٌRٗQgʊKf,ђXeB詹%:2<-<;Pg?}/}cจz7-PB(MVYX(Ĉ2N !%D*m3Tm9֯nܓAwpN^QXvq 5P׵&sW6~h"fD"Gf"v1+\4{_wId/Ti/hՑ]_8oZgr琣pgٿ̦IHP T#LCYM-R7Sl; +x=c U=cTӚnu [O/ð!D>ŦѭZfll5$RE٘Yi9ǵ8$+> $`DXܠ;"BUg&`%}/Cw`R"fOCIAocj!&Y-u޷'§gJ;9CozWտd~t[~=JDaooZ};>/D MEśv,E1nGzvVbLCD`IA;W7m|zk?J+%sL,95sSJXq-  %&}(4-P$RWLǟ˞J#~FїB+GG u5A/r]|qp #1s~ Haڊ~ K;;]W'<Ο{w)>B-NG>h Z`a}he~ޭK> u+5Gϳ:^JZ[fH9 c7 f)ul5N.2,'N8{j4FO޽r'vu4 + ,VNdCQ9LX簓)ɴ@9ɯqua`6hݼS4ZlBc\s)Ċ=r5%K ˛\JB߁1}H4 D+]13 Hlzrg ~{sy>1#G"jK8Kƒ.r7׿ɤ&k On|FB|7 |{+OW?[\<:ӿǷ}w?\xAOx ȓԏ}Ο0̩?*gRɦitvlϖǕq7o05QH,o(?ϲ3f: S*i،]kW+/5KgT bFs<刺<B4%ÿU%̎lqF@e`Kвu9fW['D*e?3}|$1t*A\JަD7k ^Kq%4I XI?ꀌm摜o9Ÿ.)2ɠMdbRDL"S9|ҮHe->x|]7-ZjRSbR @UGTTsNs ;(vR$Y#(8 WHa3QRkA<,13UlCt5kgqXS՞(:y|0' 5_c@d\\%I^`IkСylrk l;FRDR *.D"-l娿U5|>Eߞy1b'bJk;_g UYD}ܖI4#&X7˲&1uH WKp]o8mnw8$>>{??;~ܸ1oχkZ87ޕ|:۹T48)(Fi=O^X ox-|hI&f=Ր:{psQdv 1Hf[|Sbj59`Ed|v)< kVLcҮg}t(*@^˜JfxlhIFzL3Yfb9nR7̫8I T}KSןшڈ%UU{'JbS&8'8IQ:&cm^Ng t^L=t{e;ONn1L =#m &W#")0֋5Mtʛ9&%jq֐Y S7ńcN# йIT Yx Ź{}8ހ{ F|"!0?B)*c1N}qTUay W7`j}d IE)qRn63ͣۆI۲>as)?Q"[Kɬk)z%k$$"e?DH$5 UU/hg mwSh,Z̶@z1Q>A,N 4 1b$i]8Qe5״5[ߌI]aCM^}//kxg7=d,̾U=glo%N%s7=Pyo_nͨu_i @zH \æHmD4&U'1fLJ@qbL6]\ֵ[ 0zR"1sun4#5Fpi䋾3gk)³1.;\!v^%W;c | T9Dkhר~ 6tqJMό%A޲a:Wj[iBR2FbKbܻ\ *p{P~MOڰ m.>ߋ%pȍaLKQv?po/=_?AQt0JQC*w&cƺRiJBM^kP=;1FP 3~յz|qOS.Z\JΓjryHd6Ct !j7/wȦ2ik,ؔ1} I# ǩrg‚&IR/_jx{\LcȜS HՎgYS{Tsk\ kN=jmI) IzF0wjô9?=Uh6xrz%FLUQ <>545c)C1 1E\&/XcyvY%G\|AO񱧞_|w']iQ>|[c0<0$LyULWxQav>۝'#&>j _f*)2lXo@&o6~3pkϤ g1%'!՜~w kI* .߹30{LFT;\g/m Z x&T,8<?gA]`7-Ӹ &#!HO;rYhA(o d@Q1ɹ<;IvlQ'wgNJqTK <|~<&Axn,ׯ`>պ齽&D$C yJc\^X|5t2!=ӶaV\8tBed^iWUTݟ3|J|.^CLjr@ Q.[ps8 _ԇT!u ` V3rYtd3lX^}F,i݌HHf[*2 -, J3SͰ>窉 "IWOH`\GF0&ת3m d1$@ĐŌRclA# $=ιlzJJ$kxI!rk!ptAQ4"` &)d_D@˷|_yP@ܸqbb"c#m+vYڃ-ِ2wѤ#@; )/w=]ElŸ-bBtˣlj Lpf|E0Oqp+˳ ה5]npҍۻ9hnzqBe;ضE;,xq(Jv[9c㎓lCY(EHU*Ä5G864bƩg+?ǭGLzq0bTe$q56/Z0ngސ1iֈW|mH]LË{~S\J\8"\J!27c2 zlz:5aÚjrӯ b`8n1[5?hd\w%`pɳ9~JeYѲ6Qytn>v/-g擔/̎ 1iu:G7T3 ALAڽGZU=v~ȁh#:3z(I~!i9P2M 8@H!(3zl:\s'FZ.UUtA~ 7NV)!f#%fG0iզcBd~vaٟ\ 9K${Do&XƋS?z6S5?dz1?8 mLڅO6oAݶ <@۟.[Gy _ m35޷" `@Y-͌`,3V\ 3sLX(aCðP׈=Rچ,ZVLwHđ@EGKO}u.^tQlҙ{,9<, 5}n{Œ%ZnrS(?o[#?sWzz(MV¨L6bLgsgyC67RV$D2fP~vRFo*=︷:p|O|#6~I?wz~*PnacYb3u&W >BqA2֐|0x6oZR\6%`($#W IaDmAR &G|u59L5!&혥,lnbj"8}w m%'nh$bv-zx_Q6|ON H#҈`M2/v/h)Qds#gQ'3g^k~_Pe&S8exWJ[M;y#d-V+OiM 'MS)%b2X30@fci#uZ*TlFYs 1д u]qX2LW4} O?{W=uU>h0ȴipY"9f`C'kӊa<{we_|ꧽ|W}52CJܸ~ {+FٟY~ ܳDn'0F:v [c+y_kÿߦFzmWа5 +Rc ]UaHUp89~VLԍ-4Sev{|1c0݆鲣1~ñ9TGs#n;zOa:&h"XXHBT-i y@yC,pTjn'7o`jO4MCJf^0x3lF1$Q׆պgoOaW]c#m-vh ']G5TOd(YIؘ$*R!"ZPU%<"Wky"nALn^Q]0*.ɡD62#fD, jbXF=7tc$"uT`RWWmժ D8؛C ѶLrg C.G5tRMk!D1s9'5xx8n~m<܇Y,ׄI{-sO]i&:WXw7{M%R:lz{Ľ;YmvאۑS\F,z?oӨ@0V;Ըwݒ-R([5<·y$Wr3P`Gz p/n߮L9FY16t.UaغY>vɌĞ @5_^".rQ8e+}t}O)@7yicfTfCB4H 2ODD;BsKZQ4rznjHo7`so +"2q߅û{2yaEgo8875 =L*ѼŋXuk׶!` y^JΤZZ&I^X#n8k{7ƇHk^jLR`Uizln\?1:@"(2&BmT#&!{f{,/cm!@P ,/fX"!ntO[M-Ygvb$g9VןARGSdQ2֌9Z™مs^vt*^,wrDDI ,%'n+V&lo):A8CC†f6p>=lOlBHTk,!DFH|R&&點"DUC lhrUI"4VKhT(Xkd لfԚ1jMRfyh+I gք xԹGML&!ij{V['KD ;Dγ'؊zz@)ݫ8]*g4&@"fcbB0*$ϻnM &l6ɟAe,mUcj1(-MFAt~UAkiZcEѧ Y%khkq֊<$TR& MuşGDL )ʠ"jϲ#1%0ݖRqr>L~;qJ|y ݬ{8Se[cF5 Mh>39KgqQ_yƈZa|Z]ӳ[#w+zj\^`em(#9fa'.p7>^4^$}37iqv wm?y[̈́jm4#õ{TzT-:\[Ӷ3L5- &c0a] en tuVs^ S:Vf#R;ns |#^@qJq'C9:sڭbSڊQv=mch&*5I^671ꭙJڻa2:8_^16O>}I׬n]AbPD_ )DDBN \29ǘQhen;/,b[gF$&s|": ,@l%h^RBCryEpӨ~1A;.`2 Bke<]?0 <A9Π1)✡+bjZk^#~#0m5Y@ NwQ91jF]2@cfIB*u>EV@9ߥ!d:GIqBPILLt>HuL3\U11bتnr7r>Fp)ݾht:(3l-Q+ej.XQrOP*o390k^-<ʇ`j)vL/ǧ,r|j􌢜4;GGx?귗nl\r+He@ͭ)ؾ_/q!3c%F+uL3E*n:6s00n~D2.0ɘ0`%Ke2>p*bzDQ"KkW0uIMr nMY0͓[t}O IDATJ´W-\;^;jj ,W n`6̎yɬ=m2ݛst:%n'sǸyœ&Jb)0M0f&7׌"<*g>%Do!ԆO7<2`$BF DaɶYLIx`c^R g+.]o|g'fx4w z9A W`Qs8G3\B{&G W T51K\\ 1r/۔{7^6ncb XP1$h5DSsz*~5֩ґ#l-Z1BW>QC@uB1/M4`wQL82C{yqO|Wrt.I!!rz9~@L͐|bHRrMJºl6ʒd0 T؛<5L\b5p:wk^), 5Dže%ogX7=a%^|cs/-;g{Ru#LLZB~Ga HH1E  'ŤN WDBȋҖes_@B/=܌ Pښ@9$פk5%{v{ ë`:rIk@rG*(2M^q 8}F*R6I v°:[>365l%2 +5)j j|r&A~JQ"递Öl'mK? XgB~l#rē TCټR& 1bR"h 5 "G7OpxuL5l*M1PYm4,D|tnz43?\z }ISZ@5FْP6Q qұ]`5ѪG>lZf ˴ڰ)۔Vٵ}.,c\<5XѺަ.*Bp!s޻79/T#^#"@Sni-ljc8\徱|5һyֵM'%#,%>$`=\q'"}ovЊ2{3ńQ=˫^y??aa뻾 u3{{snIUYNn.8bA[Wl|Zt9ijfmMN|2@'/qZQ K>Wo`^.\8zsJen~K:ɱ_1?8O7>P/Um!c£@jb2Rnc ONQfeTc#F GJBFg#/b0.`bb3^F( \ոq5~?<͝2"B ^MQ1 zsv"OHvD+;޲8>)e"Ya& !B10D֤u1zmF ⭱0bs:/ V,IHQ0O0f˪;v[fc3L2$[btr:CrquXo: :FGkPmB)&OȈP;3f{O&C=`b9߅lWDLڰ$[.*Z "-Xy |N Nz$D ̷R-]Z+s#= J[BhK50* ,_D#ɨCIb52 PdQQ~ 4F̎"9⒝ndF)qa#mz1<6kd˩Ѡx릑0Jn|VeIW,3Ni´Th@k!*:|1G+55*!kNP`%OErPyY/{)O|'?=Vជ>zO<OC4(Ds.$h'@,9}8/{Jݤ۽\#un;]#Tvˎ\{Pdc@9\zcv`Nl1aȌ+] 1#& GfAu"4˶U3 oCzwON*1a.2pnU7'j˯l$Bڢ*ńy9mIʇ[Ků^M8tq.$bLz9b53;77]&U|Ft[_LWf}450Q#sUz>S>%D\C֮6.&3i9t"\Wʣџ:$SݛR+ L{+ΫO>=m6.\-d  _b5lYw[,*E`, K;ȋarXBAT@k1tF)FqϽwẌ$9!*F`41xFEIa"6R}dx/*)ZJk-ʨdL%(bR 6yG@z )~C6|6h|ӉĘ(ؾj1GFDbT7*DvBAi&xOr9.ؽt\E+q #(EHR['* ގ3ED}9RC%2[Gi-aJ| C~q o4>,:Lh[%SN$-/9k u(P (5i[[6!kzX y)~J(ݚֈ#ZyCK$V@$ߣZD@yrU)-}ni)>Ggo!?)7݀ NkIl!,VEN^县{}ny2| Pll` G+|7o~ϟ/+pXsd-Ko~KCZe_"k9Jn3{{ [ܲs/s8\LI-'9ۙ<{z4erP[2ؗ#iy;G~ojG Y$c/+5q,ȓz\o̯ڔ|0ݻF%$:v̋k-+(=햮PĆ׭8fJZnmB +`գUPĀ]y>P@Vc<|y{l>[8"ǎ@7a~BDQ)U쀍E?#x"XX,, }/3.K.g\ާ={xVQdRR 5Ƿui4{{0Z]fӒP-0A*(mU#2_k(w)>u9 Nmh*|f['Tf:1`!rљJP\ LƂ<-FEw$*Y69idy k)C Xm~xgJa p'?{[o_JBtC]Ax[ϽG`yA* nn|#}tsr\3caʳeg:1.'8ό>lenǘ۔IU ցΝG5*}@UMRI0"Th_{ [cYBJzMWu$X-T*`\uizmm9URՕ~[ ^#BgTV[&WYKq<>gX VV{d7,Ο5'N^ڰ}~nC?J62/+ anZ\>3$XIEN #E&C`¹ P%4xk"VK9qhsķ}thd$ OX)i(RŌ:\K1i#U #=ħ@ Fut6QU|U5c}oU[K@1.Gi>F=׿r-Okt?N `+Y+bڊ s$7`YÒx}rX5flC؀`C2Ƃ5h.MD1`B pJ{7rjRgk7VCNQVFΨ!cFR Ip& T6¸>*.a<_wl@& ,MZT2R># E&)ks]ezH8$W",ʆ;8~l:v&XY]2NV ɔ;z4eъ鸤_ǩ|4Ņ,$2]MW-j /"|ĢX>E׊ M"|ct`Քd_ʓRDF"e1!` GQd/pbp_33(K9\d9fXB$*nogY:!j *28 !+ c;du X*aN7r, ;U6/H ,[] d%U3e=g C| >ъ4kމhC4{xmѪEqԁeu K!#­ƒQ0nj jKBW׮{< ) Ms@U3pywd/ƗqYF!Ƿ,6o,=yCҳ~l2uc EGŢҥ|TLgsbl>2UNXv9i9Gș:.cGЗ#;{X:fIXI,:?Q7CkM9-U ZeU/Xc1T11Iմ%xFg2[ Vwu ?}3(3ЊF)19yDu1OBA(0ـ**iV{kңm/ݯE]u}vD&J/^K54 Aj3o .|uձAYŽ1ʄDjCSJԕJo%nD;6&سmBgӨ[ۻwJ1Fj_C B E-!Uմr^/7nͥTE @aV3,ϘMD{nI}N0yٴ7ِII$VJr^"HNCEFe5i>~[=׼n#|v6>u)|궧OP"vZԵmm<QHO2d *m#sTR;Srfg\Y|۹cbu.r m8n+mosD0F>ΕC=RǮohͻ IDAT m9]_J ]|@;8Aբ d+ HKčZ64ﯱ{Lj]SkD{4MyR*HZa9 ֧Y^?B5:,R̨ z-r֪EcJ8k$2_[<Ϧ93"KHܲ_듋_T%p+ߠ<-d@ JhIKSGB QpL–yk~ku lárlx` o[GMX,-Le w ʃmMwhϹD0LFb 2 sc ]p-ə0" zHy~9%dZuLi^ro[Vi׃"c΀)[Y??Gi-SitRE4&]\-xYr#D(bcSӚ}k GGLJSkJ)bGPt(cGCv+>$JjH8B6j*?cMjNXm%*2:puKl;ɷ}kxӟ &bJ=l>gc$`y_TſRG=1j|E汓j&F2u,ë 'eO񜶫L4&g22/=QP KMN@ɛ7E@U/ʀHT*qZ<ߣs)UO*U0S \}>ml o%/Ϙ1.'/VXdC]eA*ĪX&g _R2XĵR]{|-N]2':i@((oH/M(*Ƥv}Z I] m^kYa܉cOk(CHF5* '@^(̻MʹWofQ$>&uвi1x1ɜ_L(\d8͘a!Wc8)>z;:l5){2v, oR:{AAhy4Nr6fȏY[L5NXgMv:x|A m*əN] iOAA6$Z$L 1板t3}w~FbD/6T:xNiwxO~ OٮY[UiP@k\P{b29JD]}K*d9E"NsFfòRC m{3&0b5`,y9;Ag6L퐅DkݣfyvTlAlS,m!e%85Ah Rj{&%2.%JҴ6C2og]M3\o{?ET7ϣ%wVϝŹLJmO7 #R+{Znm_ǥڞ4Tb3ok  Z|LuAY)oo k3&nhkC?|W}S> }!vY4S7UkVNu䓟0uKw2iBH0P<)+>bڐa 4<+h:m.:bNcY b4!siazlyqVؚJ -ֺg^P_k FLgc\x_Q&u-_JvF|'Q%pgN) T*QzN>W|f<[rCJyOmPa)-$xΫ ։&k1aDGъ}>ZlTՎ)ɴ-d2VZ1H ZZBt}s|+9㓅Ti$rDXQl:C đ%2T[+i)pNB_Uclz.;"9KxZCRkdF'6p $z"( Pl@I.hVQ&*i5- FȣJIBG@RTGBd-x%GPWHe4AXexbݘ1ppx rmYpDdZ0eA>5x8Z{,!47EX2,tѽ,vDU[D#G^\4> >7pW8)& *4iL}+9**W4yG~zܒ1Zws+{Ɵ@ 牡FdžhNT.#^b2 ce),+HX|TcxkQGD!^]IBDH#Jm+Yo{(˒,y{>@T\䗱U Ԏrpm+d>SͯexT; ^D(?'?Ig3c|{'-7=og4:NV;~Mo_bb C*lAhjQ/"-kC'ZP?lJ "uS2_ &Rec9j~1Aؿg?VN`v5\`zr~/'1I?DGBTXBVZ[NRMGkNdUIVn5~{Ï( ZYyOv^M[~yӛkvJUYGsOB$WPn$cbʠU;NuW?Z ;Vi+ɉڥD8+ڡTu^al謏 Tøc3-+3d+qL'gQ#$6W*?a&,+[jԵidV6E NlT-l|.Iö߯uct1$ID95) r2YB@DL߻5`Y3$U.mytebQz* 61JE):R"yQ`Ȅ6;MvPD4_f 36af+4QY.5eoyU55e8}_X vRΥmcxͽCt} ve}CR&1I1}Kĸ5VtUs),n]gr4??hIc,Mhj|9b'Xje'>oyY'ׂp>H 2\&5'SCL, (HttG~-%+;Oj'5#(:ON˘&ʌ$5&./(y LK]W?-O HOlŕB# }Cb^ UhVxR\FWk$Ii3QV&R)1VbTX e;۵ D?DCP!Mڵg4",d!HT 5:wX:^QYs'F&unf˙+`h-VKdALT)ضl j5UBy$؛"> {Q-GY):1[GIR4xkоX+~Z=OĶ(X<>1Wݽgwm,O 9IRbbJMPZ 5Q*lRcb6LFɀ)7p/MMFYتciu,ؒ+3,&S[C Ŝc=3b,*p(~ן˯@LhIcVz%F'OPZ.M'?s(rv;Xl\jηsRtvwwpMɼe) '63-Q^_l{S{@M%_H4td9UK2CxERxxB=L&Kl#j_\N]`O:/jq&x1wa~"lЌzѵ/gJ.~MrÙ\] |gDM;QZcox#N"/Π|.@y!5~s.ID/H:V~<$CTh _bhͨ6٪w)"+>3-'[_\wizssPf' `w|3,q+l}f1E,O sp ͣ/-4Pvֆoxb+6'r:iů'Cg/cAݰY|%ROSڝ*L ^*j* g:bSa@jKkaf`sTV`m4Qc 4!0rY*جPv%rgR?VHC,K"Eލ/703-\m,. p,ZƸՊAatbgl;ˆKktOȾMd]*qÐ(uβ(kr):[$VI{Oju*}$1[?(MSy14Gk-&2 LU=ϳ383LY"{R@<C0${LԐFYfmǨ]dyCzn ֨T0W=vYgK 0}^M1 jI 3( x8FGY@'U0bsD8cNNE@-s4! I5o;d<;!d B2Mb-FCKd!r>s|>'[2JT0hqEDiF+)ԟ-CTɜbvhm_NQ`LhRO_xB _NODŽďBꌩ9ʼn[؝]r~/ {r>&j μ1<2~,_"a?<9_ϓo&uxwl~募_zgz[lf{vg皽i,^fQc"Q.x|pPGŢ bD~9\&%g2Gu^La]͘ck腯"ԫ쀗7YqCpڐA*ƈ_KՑt^9e, ~xr=sTyIp6Ϫin x4owr|j}wCT^X'4[T~t"`1YtڈkLf4$ Qɏnz qc& g@&C>dGV qe wVėbhhpc^*U1Tdb YY4A4"2偪DNAϒPJ J-bO˨WKn<)YM9""n @Q1%K9Ld{\SRWT:JJKoBHZtUo{JXO60TkA:ZEK|^[+F!+Xs3h>fL +hZ&zGTˡPHæ*CA0Lr*szCI;1YaȘ[[+$>rs9(!EJ9yDXlҋ2`o/:DZ n8Mo$)+(C>_,bݗa2x!WC9?dwvb] 3j*>oR(iBlz32uvV#}AuxL\:A#UsSQM_94 1T.KLUnz~ƏPz^eOлPY&JSnĞz:S҅ ZS8uFF5=| |C'>+ԾiA򂗽o4}K 1*28yiIi|ʚXd儨)l8unӻHt|úKL^𔧾o|Sg>C|ðIVifw.}y"Ó7J*JO47PQ}CW@moԭEiC]UX|B9D\Qpe@{KUl"k{R5;^RBVPZuc) w\AĴ V)mj|~eRc8+P6GB"imrmAٌh2$S 1ᲂח*V9JEVCT5gh (Uz"$(&xeɢlPZ$V3T e#A5i\MJ9/HHek#Z O}/%J)&Hx.c"Bʊ:hmhHsHBg]IW!H(r̡F D)wvH}-SbNrm.!b7Z਩q XW'Vwv89*K{ xc0cOZ0 ,M?vl#ނJ R75Y0f,uz!j1 IDATI7|i;AOMkbS&0Z|=_OrNlJFV9=lD9<-+bhSEXNf7(M 4p>bm` KE%̲ӞCD٘ZTu<>]bz"txz6!4%U9E]555غxA].04g?l5#atE6ow[[k^3.L&Wy*^C?oozu=knS)l.$"+_4>\As VFt8J{F5#XaapF ٌ;bןkLYԃk*l\{ #:++b{F(ila]1u$ T}jQ%VQ+!(0QAdƛMIJI}?k#E&ɅD_?}dŀ?_x1qo' -6tNUJbB~"mɽκB<ɓ͢q9&g;cJPƠM@FZ,Qmo@ݴPDIB%mOny&~.:UMY"n8wi:lfȜnEjUuZ %vM  ĘÙ}ι7 YI9gZ]<=`@;A O&YڞӴ}4/Y>YlGef:q }yh4fEAΩbBr&)B5E^'a۫GoӔ5w]M|a|_stBeL[^3 藖&RE54*6U!*3y_X#yuuHVo.X{)W74j%ByFCz2"> A@pf&"b:$aS1ޥrq eZ.2Z/׭k"ƉPiEBLg{4 )w$2k,|UuX ƌniNgqwޖC I%Z$ws ^4Ts95[jqF曇Y^:/Ӓ "SUr 4%y-3cw&9YL7"ErNۈ{K\rOs- $wniA E}|tP#˻#;UbD/nm1 tDķҥsdYN*',}#/wZ;Gv@s6ԍ~)% Va/mk;b@ h:+ MCl;B T 4Tju8{ϟxխmS8G c pMKL[o7pСü~#.?n}}3Z^Üpj:]Fu y/{8u1zlmoH_T2!4S KeA~`bIe9$+Uo`0,->HX8O*:L,G]ω;?J]k 4%jɌEX/ehSbC=@tbKh̕N}HQ*Au;wu\s>i^co?~>r?¯Wk[~7op (U+!#atNf1xנ/*3YO)%;rFwVwh2+^Z zpIԇs}w2'Bmsib!cLٳf6M9aw^T%w VV#֪Ff熲 x"#ˌ(ZZEA/3Jp5$'4-ViF 033=i3&6 i]t:4mйE8m"Eʵu]ŭ4-kff¤I(ְ(ZKK!J6 AMlloKŢ 1 V")I%V&"sK<+`+p^kqxr;&dv] jNJhX8O:nrٔhqd4zج%8I% 1%HM]ҙw}s1}> .\yCH^v7<-S_'ΦեB2J<ۍIbF).GO= 1jm3*ݡɝ0⚊VA0u'ʓ= ͋Oe/_EwlaX |p}LFz߶K\- -O)4Z(:$gBC}z:bxjT%x-;$V3, i&q;-P,8_Yl1o~xןqӸg;>Ƿ8?$97s_/-,q~Iu]w|_lqͱiLSbG)V'Izj3Ǽ=K=vIk/}I>2*n 0$#sxbGҟRESbLS(r5}꺥ClBlQFwX3)Ur#|$Z({^{6ciqK9t@,Udyɻȫߕ~^lz.bLG6_$ī({C7yrV w)_%kXT'2I䠧ʬ\g νw wRB(Tb{$=1Vp.,AkAG"4SoxtYCВliaآ$f=zZgA9(ksOZ!ù7pIQ"ǨGboɲw(Y {y &8y*8?i=LZS@RJ`1t&[Г . sD[e07$ĀuS"y/#xl6=\3%b6=&kO<#_>AV>Ω'Yg+^8y ~'~9韽s ?}|R7W_O~ ;t>96L>ͅwSz 7}wEoN>~ o9}6,P0AKItGȭ)E mTd:i| {8V0P^gƔa\rځb GZ.s C/li7hfq0:;2^c?`g9 WP8i9-ҵ.rLeamjգ*25duKւm(V䣥y4C>-l9cy2Wq3M&eACN? W!ۻ]?;eJtlULgD[=5 icAх@޻ȴbS=Pi1 C5–}|X aǤQdGvlف;< !3F2)2˨ _{!q?c mJ:XA޵o _?UӪ@A"e YI" >}px}zD%ϲ/^mƁ>\wFC~9Ҏ9Oy |޷2kk';ヌk3/<_25g+vs9Uc\p q17>|Y988>}{=>e㟜}5`8Vi IҚ@3GY1:Ўʤ9DoZ[Ӓ)kآ4{ÿ}{7e+ٿ5ԾtJ dkFo >eJ&rEbv2bra" 0@/5bLZԳq qW~9+*1)_a:61+>rDyzLc4hXb[4D:m:/3U~د|3I";2ڃZqNpRmdUɐ )-+lP!\_!WV)T|ęٍ:lA6:% R'Ik]ZI Rai(gh-}&Tp'ؗ*X]-@;{wdTdmױ]E75[XXdS PZ:HֳXy(i#/DFՓq{y:p^yN)!(}N33 )b>;ɠU(Sfsˇf{bD_RIbfc@n]y1B=?G&8~7?I)tBj ]o{44K` 8&~S<3 ݦc2E5- bӛǖ3,ǵ&롼wv[Cx+a,'Ο/__2so &'?)=t?iFH6:+)7l)im旽My|8KYKϜoe:? ȼ<%J[q 2%n+e XqtZ`Mۚ'(ȤE"\&a#8[XwiQ+ 믥-јj1E`HZ5z *P'[_uMhS"2# &C"+EL)MuG³9Y>A*Dܕ!JI:osҺEy3}~#| l5/N~ \u0V.џ>~<z~>G=M C)}=tWz;z3Y;8~=ss[<ϙiLA~q`cz":CEj&PhcOTW Efp>ֶonK*!Aȭ;‡2@Ni'زO/;/S?sd! :u  5DKA2vTi-ǔAg%:+R&LRҊݭ U|L ". \6'ԁE&PWRMG-ƅ~*946Lw-e!,t3ޑi+ (21jLzrm}Ȳ (Ij5>a/KcUcФ,!AQ%w#ݻB'Hc%4b4nw>o)wٗi*a3ݵI9dئϔ"rD4z T\;ØݻpWvˀ<~;r&?g sBh*MjB^5<}~Sz3;םѪbzw3ÝN{?Ƥ:"器+<DK;'FeP%DʲR6q{QXM;Rtѷ ޵(@lk x e r;kY !ywY;wZ0bUO'X2W|-Sҡw^`rӇ (%Z$u3bpnD~.LFEG6-ZM PvɊ؁ªD—/cni?m]x/_y#_zA>qEֳ/{_m7K^rqm8z'/>y",}#n7bp:o'o&>u'y?NqA[8Y wcjM;0h IDATnn1pUoE뫤﫴DLH=*}Ch !}9k[jba܇AKǚIC_Ou빸>[b y[~󬯟{?ǿ- ^E&Nv+Ir!ܒ!d9Fg]e%LqD!;J+S+{ 4Z9{\k Bf(LGPXM !8NNhFvjMijQFg3|Hj?zO]2Fؤ,f5T aQHg*FB.`:Ɋ(g RzEcTm$`+ *s|I^ws#{MjWvUHװ R(kGO[FϜ7h %i!r3 ~gvIU772bNL)s<tw}iXÈmFJ`g*|]D:v.}MdT,- jiKF;cw2\b[2\oЙts4KZλ$0*hcu`yBE4MRRd!aF#h/.i60'QAWcZGk d+[q1UaحU'%tND\Ji|Pb9_|/?R@ӇYQ6s+_ڤI $+ 3:0) T+xWTF5Q58%?B05Ws/>Kv68s,6ƌZ]wo>/i/|ѷc~Ͻ Js*jR GY,RsVV9|͜YUάc`z=XsZ5NL/M=O/ 'T6H ѣC6Z<}.UP&?U;m Q|w/.jdlvP.(֔dyoN_{#G^?/pk$3 )(EgǏȫ䝟C(yx 7cz~^Jl Ur0y Tc tE5-ر6=`SI<ɬ ,!v@Zׁ6$ǻ$]+0]+MAr1ݤ!FFSGc4;G5JF+cҽő_S0fr8Q APB9re`nb\_ \?:[۔#qeTC3\I D!Ӄ9JG0*=ݔ7ސcq̳dۛV 9{/<%;3_&F ~(AL&Wwd͒._X11tZD}E| ro\Y ,9$ckAK1hϊ(#/_z_xj,wVi{=y6P[abe2^|1Ռ[d9~z<]A oD/-Jl4V(6_Z(u-\ŵ-x-?p#|\wM|OCq>z} /C\xGỾvin/6F0F3oF,L/L!hq[WhY_$S&ƹdn޵` PvcЌ!)S{LF1s0qɡ M[m{?IÏ+YDMdt`{_ v}'iM(-'v ę J;0DTzoڝ>:"@T9An?5? ;b=e$HX'Sb,у'ًÒq^@K7t[dݮ{71diaws֕"84:mJkSy\G 1 =Ҡ061!'"Q"}$h^'d@ti'ZPdEsk+|a=m] ص :0 I..WMs l2ò-0* ͮ u`*(01h=Q*(0]F<.0M1#UTyR2j:bHC&`1 JFv6׵{|z8IHUPOPEr CSРm)hB=5Xcgss ®w|Wd3 -M5µS! ;Bv(Ou 7jgVEezhsk~ЍH 7lI>r%dH:Fll M6UT>\1goIizt,Yh+G!LcDh'ؿU7?͵;>~:ko-N2؏|?^{_~[k_s-6Nyɷ{t?#_Rs 71ZuQ9l]xnH= dIUiǵ .0 ޷hTxZcvCUw^\ %2O*ysROǗA M(J˹ dP{'h`!ymbe}pkiz"H7m0wirKz%> r!BqEdiaH֣2~rDϭXvԀv%M$cDAB"΅V"EѴ!٤Bc*gUz7zK4)wHLTz@UdbxkյhC J˹U܂L%'i;zC>koT`zSDX8:g GչFm3|4 '%O`&E}?Djmh S!}־4ʘg1CNq Szxk{bxf(cpL?8;-m 8=eer픦 3Py( 6+{'O}ʮ:ֆ",]2#$zD(\jBEAaZOB78YQLMRyv 27!x"q6z,y92ʒ]=g:]dcǙsxiL^ۇT 8MV-rslys}_qq8g ,/_䖛y&4+tEouK'a2 0X|+-HbIFblpdɴmk\UXBP j-톆v+eoO4Yk*H2To_3G1]KnEKY_D# KiYF}s7UʲtY+IGLe[f)Ēk}*$ɚ}M3 .Ĭò>C׷JSZ3^MoHIm ~:EOLcL,N (5 QCJ,ZjAbQ ( ռe"bI7L3!h&&MeaEc]$IΥkhgRB8/Tdyg`ZwzóuJr6{G=ӌoM7\TR;k63tWH/%`!#bOn<0 fN$)lIlf}[d̈́<6'7ٟmyG8e l0blmEUS vhiWMǩs[2$3o/᭧[BΩ5=kiν[N zBFh't}l%dZ)qQBػ7%S=v^Q\( hcUh^޿jSꡣ:ӧ+D:)pE9ӗHs"9H\Cd{vqFXpI.RMy3 =r5V}z*܅CTmųnXICPgO2C7͆F|[c7.r羈>b|8-"d7NG}PMP*29n~nD_^ 3Uj_NV1AZhچN$Օ+bYJ%V&6qc JaCU!ү}8Q!04ceC$jhR& C+C i]&2:U:S.K#PnDP i;UB$/Lj)/п1gыyU;+!Kz7A Hnh>3]K~l󬲏-gBE%gDLr`1}`ްDå_JhKc=d`V6! )Gm3&.|􄾖Kc 5ױ~pRAyUpRsO=2l1!܁nŸr󟕜=.|T輇жbPyJV,Ggxoc0+OkV6+wLu#A^a3Kf 52諄==pAћ?$S̸iO;#O^Br''ȋi޸HTx 9R@W%ZKǶ|DFZ._.VRv:ͤЍLi9NB gym3B'-v/8fl:YEIMe%LHU~#l8&b:3& z ./[x~:Z2Ɂ>; ]D'E G;Sk]`a2Fk+#rXccrɴxmfyլe˄F}$D͔SzD^4^6X=w%uc2]tRey.ʀ-..ldzdɴ!8bps+sB+iDvyD\yt{gdeRW--JpP׸Ӣj.$B';=bTeA7m"~mSc.ex"O#tOz!g!T饉@UAQ 75S|A]m0m*6WOu4+x;ݨcߊ0< PKϠRV_w+CླmVxM[{_OmR|!. *Z?em<~EcCd4&YG*\)T!s,Lh ͖AE:cRŽ6/uǶ]AY!Www m9yQд5j܂IWqmKQhUS^9m{oܵv֎v-0&(񠚽]; AZ["z!iKY^@S3_^ URSTִ#qPm5]r}3[Ey4Oō+mpM ofpn mb#ea4HeY5f}vBҳ;y}/Sj%"i$DHKzHIޡwsK@\R;Γ_QI~j{yih`W3Z:^eiȅ\l{*}BN$S><ݠp,<;.p}߉>P-UPNwV~V~GgX3'Qa>lۚbm5z#MSHRS Lc*6yۋ{\FDqs}.2Zoh)1ejS$ZYP&CѶD·t-Z">Ww9iw)tF?ID\\Fkl/QٶCwڛOCE o"m1ӵ-)z\'s[P{\~{7#F[2Y=ۧ3jziIFkbl!kv¸08p(x˃%/>Ҿ}= K=# QԾpM0@8;3h76@3@#c(*Ȑ m1aJ)A:p]E#] ThRs%s}JI?4_U' -Ֆu#<r_,Lj7>^Q3BJphDn .rV`u,KGS`Im<1z]M#CZ!{8 ݔLU:ت4D9:0mZ,1eˡ 5ZE99Ʉ2ϓ\+s*)zZIe"230'IYj0VjN^j zAE2#UTcwsiIn|nX| Von u庅HN21F}r74bX,XRf?ɀ!!v"(I~y8x S !hvNʢ*?#uzWJdV()0x ѐѐS5- #ung4u u& lx'DheL˒<$~f!#4QD)O2rpM1$ aW.?<. Mc)nɔ e@[BL$x3YMM]hm1Uz%4#)gKw*3gq4~dҐ钨Aɼ4zt {>,;9Gh_> ;&ڔ $2};'( ć<Q;?#Ze7Yz>~t(z2V ROhJU9^O, ZCYZ:u(XY / mhcAl<~O(i[|#[_[9!+CL? ի IDATlQ=|.T 7{tRd#ٴjLIǨVM;&Û&‘0()ΐi v>e7QlZ3"(h|b JZt];j\~6MNh%mn1D =|ǝؿE\%9bٔzFˑ` wV"@K?GesN8>yƿ`fgte8ӱK洘!ڲ&pA5ȔNoN1F}A*<+2|kly%xS~bQ'I-خ}O0*He fa>)bux1ƢibBBɒFw >DAXٶω$eUP: xCHy "ؐ(Eb܃c6KL6_Ս)MwRO/@Y- "EGj"mw+tAn 1A+?rqQ#ND\BB z5⋒^",ȥJbT_$U8Q dƈZ:k(rc;g4u-,h5d;H!Ѳt'~dk*τ2Ő7yDFfͻ'㉟)A.cvĘC)/KXm y)f$Ҙs Clԓ#;ݐ;;[$3SdhFk̾9l/gahfEy|UͦiȎ2ꅮAwƳ:j$o^|LtYGZ: 7%a%@X.[//IMf84'Z.&BK5Sg 1CO=gSaǦ%=`q,F0fpRI&CQu;c:?}\uød&`SM:vB SR+T%VeZpV}W*Vw8 2w<"G `Vګ9Y H>KCUĺReE!٤U-$l[|f+Aodωf4ѷqljd8m;eG0P*|3@)( D<=Ӥ^~,Jg%>S~i,)` Fb-h6†' VsLPR$X3eDZjn8|l#wUX&Jκr=[ 5{1dXЧ=Qa·Tm $l6g]ײI=Ė7YL !"D"&6P*L`}~M* [Srys󓆂^ۂ\:զ,؎ط|73wD?o'j:c޽GuB217 Z)c8U+JؒOk#?~?\PBUxOoAѠ/ ,KAR)mI:0zD.`B S1UV#Ā5[{fb,22J.cyN<_ . rT+j}g 1,cɀ> mxxs J4؍RGJ2lDԪ{p}P=k>I>mkt.kszӚrܼ{+2W+MEIa<Aٜ.ӛbKD\0\W;ڪ^>J8^q–U*!H]8T <Ǎ.zI f{lZvZe6 :5Ũ1e>霅Y>d ޻`qdߘ'AԔ.lϪ!$R< -9aSLb(1j}9\{|Ƨ5ec j&{518Mfu%Xdcᖃ&U Ț0DJ~ KKņIV+8C"8jp}Xa^Σ&?`?@GwK~rFamiÅ%&1C9&p%傛kY\SL`:d(.,Oͷv{< g yyM6+ۆ{?[ =O 7>󿐣z[ 1eo>š8> ރIG^#+W.K {)nZq|x§|?o^B*2Z]/q)gw#F[#fGQ-~+>M)6¦K8L~İ"“a k'%NK*pa(|Vr#fw(HYxB8pqT,*?JZw]GDZI[\m A7Og̭ků8y95ёN5w ANXn}0aD&Sx T%=m*Sֈ999W4%>Y[D KL:1.ORɐ)yl†3.d}JZ,SHg ޻x q 6T?+ ߿b˒庪- Q A8 z s0cs„ q]xu9DV)[t`T'."䀭9l$rFT$$Q/bx_i}2lv;rtǛcOʐ;p.!q ;MB : +ll%A[Fo\"u>[{:&nZH.ÿ?cd>svvσu%SA~~m?[~??W-Hh(cgaswBG.,UA('Grtd|f EIx#3+齐4Ή!zfpz=k7HϽiL'|_ K"_\{&F/ Wsgd*e@Q)>ٴ.YoZs5Ӊ:Y9ʜ3.4$'d15[Ԑdcg .#WmZD(b([C L,cA%`u"$Cǟ(K9)QpѶӪ}=Oֺ U`+h((u\͠.k"P09џƱbZ&Tt͒NBG6Lt ܒ2+t<+<87ĥڕ;ѳ pj@;ߠ(!pRT47J;cAp_kop+1{7N?l~ >B'HÜ50е/m@$m Գj IJ.:I8_f3 ^A[k$X@mNZ4'Ќ\hf4k ,1l z=<}=՟0W/ ec%47VO7t:(s 5 dg1[anX͠ЙߝKW %Pkʣ g L]`:/#JPHQ;qnqw?=1ưZ888D%%UDU&!=Bw6oڿJ9[lV[۷x?fn\558(Vgˣ_bp2Nv{Suewģ׮j3ͰV o}5+w!kDzs)Dd#FG>|LNy'], >ܟbZ?k{A]`' 4,SF!-`D%6Ͱ33S ޔl@d1u,*RS~Dw]2[Mʆ\3_87>(WAIڝjC /h ޸#As^ݨ7M=EkAᲖ[Vy*IQa3tt!1I<} ƎڠmY%6Y!rzxSP~ӑ™Xؑ [up?c@ I(;C/ g-0|, vh5BiyMS*>܇P! mKlPu MF RsZ3K!"#fkvHM1.Daji2O3] 7Q 5A֊tZͤG DZcHa94K-\ B0_ ܾ ׼Xվ"i_DtNPo1Wx\ ՚n̼L̖La}i^6 5lT&ۢ;]T_j~XSsNQ(&sB@ j}؋eCQAEA+=)tK _b"w;B=*0-a>cre>CX”٦R3s"/gύ:jN9d4qN#ϡ 9cm0t!Vvh6Y@P( DB`bv8 A\= ܻ Lsɘ]FDO ³IgR`ľ&(i#%dw:&U)LK6R_/:O۶|).3V8W򜩵}i;>5!_8^s 1/+_ōǮ1 \j2%pM$AJ*]HL kT۪(J/ F'8R^eQlmUѬ5L 1@XBJ:ePXKc>pj:9&uVGCg/H" L* e6 hK *9/88JY9f~8tmXuw?x͗ke6D܇Nb!ΰ^NcGÜxד63O դcKzԠw))ME;VSV<{e|?]d'bE)(Ǟ#rjU9ĆDKBnCdY> Sn@{V48VaP O}wbKr02$ bЖ|ؑٔF}!EC+jRYBPuf#:[Ń ~[YmQdpyql;-k[SXn|L-[{0|)ifU1b SL6e2f| *Tb;vёڄ/&')ʿ'H;l_;)C)='RSl"=q |{ы(e(=@=N̶ xruNR$_Á 7 N:z^Zm!&R0ja<8LR.#?ANZ^|=MZՕ IDAT~/+KXyz,Wk*gycWt~T)isu}jb1.wn>6YR}#U]%'3`!#IMg{\tjPJR"p>l}-R(жSc8kodbPLhI)jFɬLߌYngJ^gʽ3cіQd.FoҨ2ڢ}&AL*od2\:et9O &ao-Ar=)Za{3`plm[sso끴:ПL#m4AH*˒؉,Xx≷<晏?#L(,̒]q1 >{J3J Ǜ]OB꠻w֑MVnOa'8w6xYΦ*((1ԩᶻƊ)kfs,wM?*~]]rdՅY1bGfi2!Ϥ2;Z\R)"1[Ga5A Ez`RCFlckG2s5u~A>_ ßmXl{ sH칢j3"0eBe"o<'Ǔ MCu{ۭɢ^ \EV!t  v<ԟέ`rOh$sp&\.H0DdfQ6Id$D1AE'!\J!ڬ1F5S&mB%De3l3oDSg8_fRw-3J ` :Bپ/ŋDn.}L}`:BVuϽeV0pR`MS*S?_@q]|W~1?Oa0lxQUda}ng-ׯZt]K6%h(N' mlzus1F0)KBJ,۞IrHZ[˥CkL P`>u.syb1I'R 6#$Qqs[U<=b-1EE9(f _O?)Hsaoj# c=,؟z5q) g5bIZXN4qI,'?}j:D%Y>\紱pҭ5*ۋPX)B)6e!BB<1aP=0!vkV {Ӛy]DuG3TY!!#ʝMU:~ۦˉ_,-"ԥա5vܻHq) 1a!2u* +!vb1>D&P^]89=7hmp(3h>n1% եMMܟ@`k^uGd̘Xq~rC_ru6&tţAIOxLfҎc-Lec8)t*j=9[ ,0ŔƪŎ}_N<lg#ϑMg!,1wF4LDLUW6  $/ѝ dhm8lG2JaX$ cTy 1'Xb6UʤUipz|ڗr?˴D&KVG{ӖHUtL 7]ʳ\/fܼ>^HT5/D?/qs8\E*+L+KJ:ۿnZ 96{Κ@i-} LAiH=z3F. Bok$ҵ:]8a? {(.Ebh&u]E'H{fU5&u=hr5]26TrQ[7}K5fge @ʘIJ zΛ G"k`λɰ R6IJ_ "j 9HI\n_ `Y:-EjH wNܟ(U]?G9O'h>eWy^8޳\YDS%M\t!bpU*u޽,.a%'@U䑫 `,u 8g(eRfI,f:<Wv!'C 1q ԕ顳ؽi$A]H1W麳@J8sMN3hl&; ^k'%M擂;b9rۦ21C{ନF<{0Yj9;DӨ*kfӰ/u>[~2q@7KFࠃu 3CSk{ATָPs%s`K4 mϪ4齫w-ùh&h_bUG d,bIGɿyz՛VVdfv6Za}ouG3X O`t3W"$ =>u|?xnH $mcHPOS[`k F;QϠ=`3YYԴohV9} \ SͱNFHy$NW[v䓇tw p dc!Y9|n"-u'bW\(DTr5fF(چr`M9B+茍:̆l7L;c oՒEF62P[j:GpȨmιuɉ=ssu PB[RIWkC1q>W}fVKk$!SNΎjs`|7(zy;'O^QY E*KN{mYz>$Ӛ>VVG/ITΰj{ʪP(#"uDB`Z4MCYU[pI]( Fb*AZ E ]H. _qҞ®C0LoTHP9T2(w:*Fm#Wcӧ^I 4V.II_AuCzTjp ~HZ/1BUg&RґC}ȑH$ǠOVTUtQ |wO>{B]74h3 Pvړk(.7S[#n4R=eN#傣g!z1%˞d8sx\>Bx\@%YEӗnmbfuK6a"a~WAn'rsH\AsBVfq#.r܌gǒ9KfG?|Vku˻P?BYԊ0M$ BV,Yydan?p3l٬p[SڎyE4%a|UZ t&swhRg݆*w%ZI=a@L 5y_*;GrfQF_U0P[0EN"zRn?31YimL $a1n'3IylNэ/bR Uo//.PA٬ e7\0m CYzCOubJ۫~R\1TUY) ' {Ǥ<56m]9OԞvGtdYk 15Z|ƅ XչqSi\ͯJg!1߬ձ9U[sYJ#WɒYRg(".'}qα ڮٚ^' $+%zޯ\$iQ>g wc28`>lNar&eA2Գw{o}"C3YC1mIa}*kȳ a@vޓN]pұz͒nqGe}[hx'ٲ[w?GxSRW[TreΒph74cD5n/,ak`^,HL(<}w4I=k hl"n0aVN1Yi/73چ d0~IE0+"4+'L&m0RB,͒|M"߾G9}o7o/e6еA[PBv^Q:CJ^JZ d˂Ŵpqc Bf_ocM‚ #%DKgHQ׈P:O2BY:>*IyRGzb¤4 Dێi1V>Pf1 3, B6RϧRMZ܎*bw0}PI=g}qm{-:>}=&$ZTV124)it(d!CVCaLwfyI*-snp1ksL*KPZvhCjbP%:G綧tSiq|֞Z|`>:abZ4 0XrHZ\Ԋ'I hKM-'h;OSaĄU >DS['AvfDg]g{J3o%l ե%t);):'dYSWsz|C~Q1Ed-N7b {ŭ+U( wנf,Dm\8pe4%sNNvhH5 'p%|i𪽈<ϗ{|_Ⲩ'K["pQ%RhA_<qIB 4S^Ѵxȯo[:\ B6[;3} ~zC.4A iȭj"),]  W2C[Dij6mȤ3SZ1 ͙c m:@Ȫp9 6:Nm+hNac..nܛA/@69OH(P"kRt8 N9'z+.i|yQ>1?}Hݧ̂Tw2ǹkͮL++Gj-uM6DZEЮ O'T֚W 9q:YP9^${o^RHdR"B'۫C62ICUoӘ9G.a بcj8>:tJ oq5 GhDҢ&^/MgL' dK0U&R-; Ī-4M(W-IM`RYTCbRYi3".Z.ZaS#_0tiòG\J"XPM s[FSA"1!056^%->FRH4JCג5.Q"RG57VHVkiٚB:]Ln.'xT.r_L0ih2aF (?E6T*iٞ~kG'|ˏ'WEͰSy$.pCW!-[1p*hZvP_h40H>fPlmJh7\-V爯 g's'˿sWɿ.G|C>xqqޛjdňRGFFuףҎ-'v8lP[GK\?~jr-ZD IDAT#-66{}ʜ3 ,ŹV3CRREJ;Rn7-Zs|:t k4y2$ԦUowGHIƱ՚Z&i1H9ج$C-Ӷ Ԟ}H״z|Fk#ONPYW3+yV7"^;DRs}$NYqM[:J}8:L`t5a:dk{vc+5x+/\fr1=a -nޡmJJ$%Zb2`z* hcTR&IYdٟqdNp-V'<~߆^8/r_ϽxQF˼*I3w[LW8fVS5ҒVY)ެQhd^;f< zK 2xkc{G %Y :D:+",WҌɿ{/uwz.O-AIC,RMeCB_ߔ>B6lSem!6[Dz %z=lsRJTY˜)Dܔ^tܗZ׼^q*V S7'[cT*x M؁ ҆De{S%WsChq+ormad6obb^W@et*=#o+*T!)W+A< m=wEh9:vA1s$Q[\r_/#vw4q\)[x@!MZ|J+ʘ~RJ 8V9,/3p"as*e΃ML&3vI?_<7~OuŸJT.];؟dn`ZbRWGZH5瓚Gk6Y62gHQ5|] -j#ڐW]Gh=5H(Elu69dLkP "ov3kl]S+E [9?c d5Zdq:/ѐV&+P6VcyQ:%Hb]!$o/uL{I%zIk >PYт_^%*- Fj1~`>]{b~W[<Q^5)T"Wyy5^dw\+@o x_ɰ'<֑!NOUJZXFs4mx%o=𛧢RNM,04LO(-{*#K49rt[{]į tH0%*B@tMҍ;f[sKkWe)B~wZsR,@X\)4tC4i5ْv*{ TɠD0,Qk18YXNV'KLƳ\,omql.$)1&0Vui#t@j#I)&9ηַǼ% VJ'r  l=O/R [h|F 'X'$5E;@%y!_j0M^֫}Onsy>? O#i@N}TD=Yc²!ptl͒mN0E`琷)9^aj\d1o= 7CT~.Qwd\^[^җ'eh\bcν?=~ø݂ |Ze[U]&hKέȞ϶\R,U"BٚyZhdy,?EI@`IGSNK^J2y~}@8^gr$8;*%1AO(exQwrWm!^e2˗xz s=$NPMAB4Ɠ%J}/yA@Ey"=";\Ŕ2? QPL.#)dԕ4W . XdNZxt떇8_. f!Z, ,SV yk12hC#=Lج(e8r|PRK:rJW)q:r]L^ RK 6H1-G~:>+InEj/|O?w|g|}aOipcU]TekN^[I=(XFjIxƊa*CAHSeQD F6u;b6H/׸0ߡ s`bk>eXSd&3FIY1 гG4pvX]pTRڄ MH|u)Sq=9n&MϽAL :3/io-h.*o#x|~gXw7]C)FDI#+i1Qk B`;! 9ߋSRg;9CPTh;EY+=V%ekԩR&H3ؕlNRF'q F Fvv8%"F}&Y/nh{kqlLN萡 Ԋ7$k&>*b#RZ'7n$됔1D3cǾ^D*}|j`h#iTmuҶ%% s=_ŀ5 (V U AMeE,V\Қ޳S2 ,r1z!hK}50XWK*Vz[7 GtΡȧx?֔8;enZ_)e"6r`o<Vt6]xRMt ĔrI.bL& ՒB$QVCW87y`J׉G^OWiTF*CBOMZ@@9`&xe];Ro6w>T}4zg Qbס:'4d>J@hNPB3??zHO_'Z>0m3D3Āox#O 2+1<5S*ZGu(@%+P?fSR.7F ͜]}Gf146yq!bp᩽/eL> uƃbM%"8OkY2:络,{,Y]t- ^]WlJ38GKUĸ-n bu}^c(9ko %L,ӯAӝP(ˆvި_ږɤO_wDߋ#v!l߮(vn=R?QwlpקIï@HGcIS2OՒdk |j13zGdhd#36)Shwغa}1ug nywEArۆRqXx#0Z% WfAj6 6ĸ!y_&¯PS6+Fy~cE,D2F!(Y{@}nD(%r'khkVYŴVj)\(nXl4nrEv6$b<|ߞ(;Lsم JzR9N6XϚ ZR1 x`MM1iΪPe[P0SqjYwNꕖu+d>Sr9xJ"Ͼh{?[2nJ Qi3Zd*`ͻ}k }ŭzac(;,nI#K[o^i't{S}-RŤ1$4=z;G+Ce2S,&"gD4VKkWa-[V@@."NKFz* {7ݗ''Eeþygs5+1R2].)T Xx}!,HF[QUS:7^B>nbmCJNE(sp-|z;FRݠ;kf3]8> *Y&&㝂~ :ZD}ѯF5"RbĔ=~גj]lp67!{Ap mǿzT@txnشRǚZȒGҔ2TFC(w_Djg(I6E0R'O1 $BF^-GOTIZV+#J AtD#RTWvs)3SaR4o?G~WجU nz:Cb>˾Za@ ]`RYJcrwWkEiZ9L-G1o<> "֊/ sQ>@ɘX;OT:F"^pLQZ2<9dx䴼E2<GwN\1`[ \#V~|tl#Us3 as}γ:7 \7P}^lrdAH,sª- Ecs&(5 X<jƳe͔}xE޹yW场{8P`&$8GwKistPIV6I滤`Fl@Juw\A,&5JwqojkAjipQ GuJ P3՟n#:Zy@iueF˫D~ DI򦱪[45ICpJ72^o\sMt ~WQcO-SEr"Ie&ʕ6lE:vCk`(Uԍ(X=)ZP*_ؚͫ\. ER̚ VdHsw#@.k݇u緸tu XJC|yoe./vyLw/e""UA Tμ!@J+WY[\H}{9i=tB<ʲڴLldc5!$6APS'!ٚt!ќ/MIz̦b!%!!B,։OC4)nl}'arAhY+p>`!z1ZiPIYU$ISX9BkMVj#z!m/{FR;jq=hU||Iǹj] ʿoHJO+}H1 Iג[ߜcj8~͵D+$__Xۻ'< UmQtPvv~aءl/PʠmE\ObU~3?ӧ:Xp(WSyuH=E%Q5Ⱥ,c5M,;jSdb?h+G nӝTqqm66-U+|ZzC 7ܸ駞eww]Wo lc?üobUTKfK7|ӯ o7d6lB"_|ןdf5_-\b-zԡ1Fy|闼]r%/7k/B;f$$4_MS\y[Ue 1=kDJ)I9tsYO5;)՛Km`R[bLX+dP w k U̧uWxr{>TW%,ES%r!i敬[Yh)/ub]ySJ#Zn\_G q4PF*r{'FdIRd4Ƅ͵/p\ 2Ex~v~jh"&lO=buGX$a5s>Gp>W!{ Qd΋Y<1xbp:lPr0ړd\wwq,\`8!ar>S"sZNU̶8sEPEjK"==%0UL=\ԙ'9;{е *RUu]T@$k 2(}%Pȳo[jdDqXETEﹼ|4˛'#Os8U@-6Sz9Mi9^_4\Q}l*Uy+m_#j`F!)LM"?2Ѥ0i)%E(kg_oW_O?cGypCJQ{{ khM[WkwP)Sdg ))f#غ"EYIQw!}+ 6 X>I$bȈc,'mdӵlO'(p$Hio;۞d+pI’|`okJKc$2ׁI-+Eiaklv"( 9XLUQS 1钰u!,\bZzMI됨7?H>a-Lf&&MsM°"ŀђ 1C;#noH ]Oڴ,C G1f_Fҗ5]#5q*dnEmƧH e:_Փ|1%s6'u]Ue2b%T\xV=ll&-KwsWm7[t&NFw3:v-qn#,݊.p_ѷܣ7S6)gplcJ4D ʡpFV޲(sFd]F꧎JpV\\PRVڢA9[9K.iZRO*I yj{FcSBdIy(uvO+R)1!И#<>NMnpbh)Z4uf֧ kT;9`JQ=2`d:RP#mAiE]Mɔ.}w!>gXg[x{W,7=*B#W͗$+E ދ[CNPH꭪P>BD[sg+27Jkv=.¼6lOj._;dIMH,WL !"M]A{sx|ŃsTfv9lLk F1b[dn>z&(φVJdK6UF, +ZlLͲ9%ZQBNh[C?CRO:znǞzxZr||2hw7n/S~ρP@ ]}fqH+L%Xj aq8T!e9;dke?}=dG3=hp=sfnFO/ꁚVug}Ux.ۼO{~U k JBߨS%{`"HXt2R?ɯK#eMo%rNq4 S#(=hSQ\nDg:UѧʏGwEMI+I!|}17yK(mr?drdq̜h4.OpzW~3De'^(=ͧf]:עXxcꆛ7lmͨi䈵!(\H2dv Qڭbܬ<]q1 ˚,Vkؙt>rh d5$Ж64ưhԋ<{]ǁ$cTxsAĕ׉9PePhZ',[!ѱ= 5IGщʊUB}h ~%(B+ͦ L1 3 -j̛m1bm;v{ń;UySy#LZ&#AEȤ@^L{ǯA\ tn}nPx\ϔQ"/ghqR{s n-NPiT6ilN@z$sP4%FO-/ma1)Za/IXfY zd ƜS4wS"FnTJZ\(F67z=BMC$)S'^Ư{8) vAa+:QUSRh8u Sak5HvD1f,'zn[fkʌEp'fL-tf,Z^?ǟNK/~#?Ssf :C@',{;dlL-eqDSZO-*YhbS,lgU[i;6TfZa~S$V͍ B$"^Ƴ5X 7O(͚6S:!Ng,+Ht%xKWG=vUKfiVa͇!6CuZ3F۔eF+)1o:ǵ'|_?fee1_D e`VJmDEt"H^3P)B qVY3q7vB@`#XYK1SXkLL6MelC`$ Md8fG x8iy~~R8e_k?n[^u7#d[1b,.D>)@Xk g2GqTvp56C8|6*JȚrװ/%謨Yt;zV9O\pQ>%G|7ޘ⢤g%~oMuO5vsl'^qʏZgD)CCۿ6ET>_lk_HS.F6VkDh$3 冏8d앏f|ax/`^1ws:vR k-uCvK2U~]Io mUa+W66`G&`94{俙i2 x6D CdΒ}nłxqnGKYoI{*ZyJEi-!TR.{*Tt}vsv:+kq^7яR")I;(SS1R:8HP9ůt>%3F롅A={xNLڽ{Cj4LCR*㧿I'Zi[o Ő oHԣS:㽜"&.IYs#* <tO+H̊[-e1JnhիefwtD~3|ꙧ1͔<(mG=$%|q?BƝ0z_˹%/Ue楝*jP!PiESմ-Ā4Đ&3o,[ӊyenϘԚ6(Oev5m{3͹y-ey4<ĬT&u->xRYfQu:_S!],ĄKHCοB(HRJJv, `زUȑMj:a\Ne1uQ6sKI@I ^tz1)Pm/F[`?4yEt?O%!@s "-pG$EJ>hnM/-HY&ҕ R08*L+\Q` k=KZ~Mb Etw/`* % ~Ό(I&0aV7Ō 07 =IֽB7GQ2U9P ɂ'ePʈdv4KD^WiSr'dc>v[n)os$P,9$Ղ)2w3ɠ+%/Mf|Wqn# )ǻ[{ǜ=;9ś}EzJdk#[ :u;[ \ۊ/xY5Qy.=msq~NrH)9;L7Ia;؇ښ'DQ 3\cRUXbrd]{ss%iFz)ad8Ca'T(@Q2bU $('‰"vMfFF3~~ݽ=zF{տ*+7n2gE7QdfZ{밶f;[˖s-},ۖ6%mGD9ZDhכ7mz[(bòID1aez#iuGk*|)TSE&O 32n3u\X_ا?k^?:uq]< qG{ )0c*]s0=`=bJޑsBpǧz^+06C"ihhK[wx ftY24Y^Gc}6~?iݗ+W*DWR㺦b1ޒ&zqkԜ|c9^rW?RLπ"sؼç~h\SjIm u%9MR MMtp{`r)whqWs*彿'uY?oCAۉY~K[Ww_>|A!@ -~g?膼ް-k~#'~)X_XcؘcA9:x-9' :a!zێKU p&ya~H2Γ|pဇ>7= HP %~ڛ T6c$'1'9oy `(a pt|۳2) ]߳XCQ7F6 )&RH. ]lsz0 s IDAT,D٩;x׼6ĶhRdh˹%8n, "m @`j>daP*AReX Q gLd nM?RJpb ϵ?R2X>Xĺ)O'~8//\xݛ;r-f2\Gn=W>;QO(S{+9Im/|?>l>:K͂m-rQMqW f}263R͛gcv\wKhbh89YHi"wacf =W,v=iZ^NH]ghW^mGg 1އ=͝5?ɻI{ˣ_D-S(ΦY$hҏ\L'_ XU=Nxzxؚ"!ۨÃ:{e$]AqwBsZj!A" Ę7)=ɭC-Tg4EF|~ p|`o$4Pey<D=;{?ǾU\2o랦IJ mj k =@.Ukb(ٝܓUhH+č7iHtNj(B,\6vVBPW6_ J!0Agռ {Fܓ.JJƻ0A<5 Bzس㜩35vRqއȿwц*-]A:_y ϧ{o^߭S-n?76j`/ޱk8tgjLtq5ƕ'w> 32,liR4׼Sc|EMTq;B@̝=8ߦ&_ו I4;ޫR;h2b=2v  c"6uwRf?jqT#;VNԐc;[ɛbؚ caǪ2@6a6?|jg,lOM½98.;wքд:6P1. 􁃬fm8 +f@B(FczbE7p#%(y`q1d]Vm[rY$z\b>)_EӔ-1Eb@hQڦP`*eXb4hcVIOWJloi/gE)mfؾDX;>nl6mh,sz1˸ &F?~gyI2w%l=Ŕ3woz}z)>gǬnc4`Kep;7y7} g!c1sh 6R*DHUށ-Wwau^n{xkߏHH.ÚNהl)vWIdds{|=8_~k8c ˾%MUΓrK#zNP^H3jP o&ݵpm8W2ҭZ.﯍; \B{]ե4`yVle7_`V/Pc~,nC=p^gb>^mU$ж>[(6V "2B?d4HjkN yq |/<[d 0c(uL?-Y65 7[ʠ|sxI> kM EaMl8jE"%Fx$h ȶY6{=@L:ՂBv Aq֫8X4vlX.J톶]͂bFX.SOtkWA{x}ܽG]IvY#e֏fC^.Loo2шmvY ĔCDJ yRz]HĖ2P8!1xg/?;:_)R,]7$,)e;z7j wH/g>FzX=<˸Wya|oQKatX> '[]][Rl6ט+(ƈ`}}縖B_ ntKHE)s OˡR)WB(h ֔b݇wiR~I  +R~ML?>̴v/ɍoy{Nȵ]D*wgE5Q8:%ԾhY\3F^`~x_ -M>+ֺ %JE6%dZi*-;A!%3`Y(Ӹ*:,ΕZP㽾I@v$:]F^^kĚ@^{F5 X]i(.jȻ;ri>_wWiz^֡\}c" HZ;$Td teDqf7};6<1??|Rt ٛF8 a ':`e'''8>x9`R~ L%&-:1Y{(RWYwIt}g䢤h!(l]ͺ'(pv~jA}/UDhej C$Ñ5B iia`5\]qưHm/ڌFj>= P,6pWsa&?Uk_T)CTމebZ=[|~ew#/J6IDн3vr95_2#gs=kqv`u1VHsY>QA</p_ 3{#0waI`r^!5mC"0R%(gw}6TE¼Q'Y.j]$Zv"r7*I$L"&`&ѾvKl4MbD  ʐY.Zjsi+[>NBQRJ]Zv)Ӝ Q_hu_jjmy"NLJMaQC_B"7/O~w7{wv9 I`Ƅ0sÔ{}=9߭v9;cpCk+^K2_C7͞XYH#z7g.U8j ע8k!玸X8~>a ,gW5 P"H ņn+գ<ݽÿB yot葜 А(bi  hm2ާ%Rޒ%pᡘb.*AƾP8^4QhS h-km.,[kC!&kC qRBQJluC667OV2Bsŀhմ{K-ĞU#~vRuޯ9ܠۛ:Q:V$WLRcޕlʩvG{ v陔Xs[s+]Rqni0[zn aq&K c/B4mP[.p#eW1(}zWhж {$B߯ђkWχwR\e򌃑1!D$яm#o){Wqg~~#jLt?=973ꍋ* v}mZ ])I c7X=|=$axQPMj2!7Ba)PSSF@^) WL PYܗ~8$ƝA4дt9ۗ`ShߡL~8Y2Er|g^yYmGhV*1 SJA.}ͭgJwư~ӋU<+r}`Bi躾L:(}oEA)YIɄ8Vu^ b,nCVkDBH_+=EKd@/ NJח {+=2heJD6EGca$ (5wSl۶^)!ͥ-Eesg|{ձ:I TSTJ{S;wSaRƔ`n{^!"zC0y-&nsLZo5~YfUs' ڵ '>}U(]_%clX1,D1e%FE`.]v8,ës6w8kE%ZbH :ϯ8n*Y*GMWh07CNҽv?t W EYڵM*Ei3td~fǑCl.NۻȽ_sf&Or%GZ 5U%_%Ƣ$lY=_J7}gX?Pzؾ;fQ@ =! P:a[r-墥DFD-]Q 늲l˶i[#A؆viA%SXzN7_<k v.Zz ͊5'ǧ(MYȝx6v,p;U'"?׿J'bl*6)prf"oP i)ÀqH;>mwBf4vT"t(gX:v CC]p~FIW U<$ nUKgz {;Vˁt0 zw瘚`M9.2ժ{W΍6ͪ׻ײ5 C D%|@PXm$+i Gl%-}]|Y)RX3(Co?!'-Ur_saNF=%) SHӨK;Yx iWcfNTQ)1;tPD9z a<5`R  6h^?tvd\]u6q/}nNX!14XB5ZK/R=WB3Tp8UjkRIϸ%6r~v8˝Odw-4jSUXÝbMcLfln!:߶S%҂Z @ !X?yVo~9Ri +zMwQG/ 3ȿF;Ճr%Dn徳4*zYcn`yA@*C8 Jwm ݐ>g˖np^ӮVtہn,ic`jB AMe1ag.֖9thth.sR烡ݍeNa`j͸ bH `!oDj.rvaQj0ν?+<3f\p>N[~/Xv엱9))!NFhbSi_ V(xExNϷ|fx%R%+'gg,_d&O~W鄓7;OsbM:&_;1\(F^SRXmx3}N+VwwHvn|Ʌ92뛌mm<|thKm0i;{cW^}YOʓy*"?JP.ʥzJu/':d什ӻ_a6 IDAT@"O{{!)=3o!^3Kp_6ʢ&^Vmk* )[Jwkm 1Pz{|RG$78켧\(m HXMzQ4u"A8tr y0牢-o-sZ^=ћFq[JSc]F }$"m@^1wݭ1)XTLyGC@Nta?rd_˼e E(j7ؠox|7r8 B)ű,t7RFƕ%B)&`*ZK-31*MsJH˔g[>Ӎv۰+e;4^-ÚĨzmVo!>goP֍ҭVjZO;w.J} $,@1I—j 1_ Z!4G"zk0-_K\z(zxI2ڬ2 ,Yoj7nK[F",Wdb}ou5˾j=<+ҩ3`9tГB`eVm 3nv@C UfXY M blob%5szv2nūЗBBh~u˨D겫>/maZ!C/U.^VcD ,\?ѶU%dV]JGpߨwSNIa{ͷ2GSNJ KwJۚ 4Ԏv) erN+7̾wxSv䚻te v儩4͍]ۜ?BÓ3.!V 8+6b~O`,:@MwET6ݶ7vјhqr̷o{rrA0ң'%4nN.Y2Rn{8 ƖIQa'WzA-g5XN]H-&*gMapH jby.ew5v;TUȄV޼pk7 A<9ָ5_Sd+D1S{2w+k~vWMG~6J[YJ䘒{~3>As=z;4yXho>,V'4M']C3`@gJjs3ۘa{Fhf}^Jo^|e:*} y>l#Đ lş)O~ 7y^d"#QXWW AdhR  @J + ZFeEkɄ-TeB kn,Jmhb W dCͣcz; 4rA' 8eQo7[FrsxIWxI:]ϋwy M lGۦ>M/LJˇɝe20p %nGL:Ɍ6xHm5,V-lQ7zL<{,]gסL^})>[1ys:۞0fyzP!B,d"G>Ck"SiR֬iyPBz#̐/: m*{2raV'Y=7uh%ދﷄ6JW d9grf}щsR].N$ RT扏g(XH8#vf%:WBgjٸ3ʥgNA}>ϿqM^ BkL4|M0Y{wL + e~7,H7g w77)Ru5T][XDZ5[TUG0YQifx)3lV&DE:dma'2Իu%^Dk1Q$AFA(!O}n}Ϋ^NVٖ-9 ᡷ3b n%7^r nn9:>t 3?ڇ 5qA9iq!TH&=0Zzۢ,海lUX-I 7 `l1>lMa9vIoAj=kl/qI4nA.)]k#O=)W^(G8zbw܋u9 Xz#)}T[ŝ S֝^뙬 dƢr7V)39zޭf;wٍDHED o}?Mȓo2*A\ʠ@[,Ģ!um0MWtS$-hoYt[ -"H$ r* jV)Sc r_H5P%UX,TdIVcNtb _Ԩbu-,F?SfAIV]3Zd t2vvKwPNk*tF\'Wb?}eY߫Ek`2Dt{J%Wr'kyy[Oy'XT\hCէӎ~fHE^$ɸYxjGIgpY#x}U'5Z=_xEprB͖‚ۏ8-tm*Bu2Lnvo1%|] 2ýIy&.[aL3T7GI}r @D{~o36{~'-&[b!<*sk7/]OG/ֈdλEzӳ鶜-Y4 <v oW 7(,p7q峞Ϙ D@ KEhUH1@jIx0 =%n#e;?SF%g RR' VmK_~[_4!O!d~% 5b)MKrI f(t%D1 FzkNy%,H7֠bP` B%*Aق&g" (E M(`X](#޾Iu9=[n|Oz#mY4[NoSR>Ν\Qm1esX X [0‹gEU4=L~GUߔ ";<,}Bnn` ~*x-:Xh{B 廟ez ګ(7fQZMH7Gt`3d|o&_6/h:=%;/ߡ >6,BFFAE#V%Rqe OM!B:RۢĪȼU1G `E-<=>ڑ0J{)'mAufT$"xǷy>7_t,sY㿟qͲ,V:s_yͥ+{X{.j+WhRjaߜHL Ql/"hS_2PQQ\2^K<gr:emgkNqӋg|{Fpw C6¢t@m}ihSa& x^E|7~w>k!, d804>'Uf(X*CF&Ңc̵jU# A 57js3yp]Ԣ2& ,o:h!F`a>P(.ZTYdR(Y̦3:9=7guyak1M0Ly3,gaWsS|3”~ 3]-RQL,c/XHfEY,ZҲl+ϛϖqa5vZ䜌Se7g5 C%ɾrt >'=.[t6;rGս?9X Ϟ1.g7dqW2ֳ5 [ʡ,!1g??3bu:l]G󺇏yoy|_>K ^>cfZmXP,ulC!Sb$&n º/ϓPj@jm:|N LmplH> IDAThY.P.UVah) Ocd~#9|ײ=ӳ`pBuwֵ A.>D=KuFU:;[4ΉI;M`sVJw)Bb^xnws3eB'2vwm ' 5꧆n/9c/=Zb +0ZGP!I@;J?W^j*6@X RHN .* \, .^~P$łaeeys" R2dBhP=d(#`bOg0zQ6Ɂ+ԙo ˞'/1thk&k%;#d6$3ڞyT4=W-<-FE?~RbTk|OpCfW$q)X+6wiom[]g959mmyASPT R$j2)H*$ SDT|( $J&xsO֜s1Z>xUu׬f;;[c-w*g?^?!/]zȏ|7 Gw#|y {et=e;!B-EQ>#0oJ2VIV#}!/B?XEe ^mp~ZSΜugχ5wԆ3; 3o*CP;U4~ 8`FGwlnw1X6f!e^5c~Eo@w(fkwkއuX=FeLjq+cg){ܗg}Zv}>Z#4G5 8/<Ǒ3qo&C &9bq83"Zbα<]4Uo bt૿{eD»z !quDhv.s-1b!"l+1I֧jx#i&4M!WR m#)rRwz>;c Ձdop,<>GՈ{ShW1#8!iv%H7q9(CMWy} gv,>37!@Ϳ_*}z{ޚ׉8ݺr'wPt‘?tm+'OR`so7AeF'DrzZ tu1;N5R}޽__{>Ι/^doe^D1~\xwk9[mu@Yi2Kt'BLcf&4,sxZ 3oJ[y *GH^e(cO ;Elda_2}sDz^y'#`^BYp;~ڗV$Y/ʿ\E̾p fa~|4нb? x.\-\XLV1轲+d# j]ln2S_|{Y gea呓}UB5Ve}2\e iR=S1&+JJXdFk Zox>ɺgu=?7CRӍqgDh |hf\l֘"ZC{Zk(%TiĖFQߐSG=9'rh~,s?J=a)EMk7%Oykw7-*lsWU^q 1c^'DF5z}ԑH۴h }%MeM! },S~Qϋ=82I^5$B.tP& LVW3i>TTZ Z> g &J|)YJ.9{?W?~: M^6W̗:Y˦~^3hc5da6鋑wgGJM._X#ń8o,tZ;wU&d㗭:pݝ# i!)JL4WkqsVBSs` IGx{K_qʆC8f|g>#y/xI ^!bu_꡻XfT`^@3j\V-t,z +O~90w~J(k1^#%䯨~GX]W?<9bדKUpjS [ew&jy%VB1e+u_db1Co]$!;8{9aXg\KZ(j[QÏ&G5@ބTnVL]!/;bq$jt|jå]CPHiI8k /<꾍p\& z=kpṣs^fS~\pESԴQZ.MO>s/2õZW~.AV9NFnTмA1}hY,wJ9)RvZ4#9]`OAL*}/Y, ޙؑm<VV#WkM6\  ?XE> X*{R/qHԔF}Jү6yXVm U8]7^,J Ԃ*#8rrӥ[;EQHq[9Uq{oq> eT;LZuNw,4i۪QB`wtsǜSG:dZ,f'WJaҊd-ioG7SAdž1Ws#,蓗f7G\޿JḬ-p~<ˆu^eypׁÝ]̐;@Ox=@2[Y[[2.UVזAM*>kF?~]JJj_ O?yΟEE12d5nMȺtU"۶;hʜ zU`\Pgfya6 `}z됯ohp;T]&w'h73p'5{mSfSZa9% e#հ5B6_5,񂝗Ffau8̙-8u.z+-T9lo;gWDhjq37꫄FYw!s $8W9zUyq^89KhG)":JHc=:oɠiLb1H^q؀EZdB8} 5Ta X; 8 7أ_w1ԸTKud%#ōqndR[*sҹS+KvomjbS4bt +k%j~F(AxFeZnraJ+7\ݟZR3[''1*M߳6$@z˃ek鹰3㱋K6]qX#W╎2d0 8ssآ )6uPqKcfaְ9kUVj?e;coIaSpv=ֱmc^ax lL"ؚ`&T%08F>D[UՔ g'N]Z^o|]x%5zHג5Sw+#nzch|F؄gdc G:xxMe0ub, 3bPfNkL*5aFȗ<ĀlI>̿S~٭tT=,8|an}v^-M[LXy.fˑ>@쬔lP+b DpAcO[o~9G3y21¼L 76̚Ž23/VlQudf4L MqI]h9">e] Ni#fhr4Mb ~{-v[a1rVZ%wXIδ&;Wyc.rP.:W|ͅ޷5{ +{? {U[8V̈_]>t*t~+@ sK?"wI FIgWƺju+ ֥O넟L܆xOnCpV+?{|ًO kpF$`[[`SrN?#TsQ)"21޽wjm,w̃gG G+fZyk Ok'YHL-k9S׭p+-NЌ1Jw$cK^*p!Ơ`Ȫ#p8KXmaLz2|8o-Z (jK3&ؖ&[sp5%Qf7%CUj90yylymPd~Uaqo~o-PDcZQ_n$U2_DdRȹqaRxX/Bˮ< ,7 ^+ed؄ͱ}]!Kfcs:=^($)|XVmS&}LO8t^_(ŷ6nwYU$v9MȝW qs@'ڙL7XȲ>ZF9fB~y?zԓEQװx[emEuU+܌2cr;'Pr?9uUvΪs\¦4[ݬ`ۄl*Y/g4r3 vЉ2 /bB hL˄譨[dDnڏܫ |9o@c |3@hQ]6+j=):y>j2L_, Snn-˟Lӆ; 0U9 i,HkNW~|.M+$Di[ )H9x-̅ tX;bVrXv}WQWB(zĜh}ka4)'w/1\  }<{" <‘M.&b=`ﲥ7X cd؊RU.9ߔ+@!]u7{wĻV1hfUUC9Z6Li@_w[Q{;>R~fMڦaeKl:MSY[| Sޖ"+.);(ʼ=8%ެ ͂sx\x6d$v'!,9qEW7"MU1- v:.TS~WT'))[RqJ9S\99(N؊fX *rW5G'4THa`6z+*q待$C&Τ*种hPkRwZF5?/щ֯'l-k r0 'Ay4y ̩1gc9W8ŀ6y1 r^/![-Ҫ>UeuX)@gޫ{~L.[Y#X,*h.{ku$"A[rv?Η}qp|78ψ;w|)ԧ'E{g֔TjTXI4%Ʈ]Dbhؙ;˛`Ġ, ܸSWd^ %e}Wo%c9 \]wKņN8fƚ(1◜qm6omkWHO`F}U'1ҭŸ?_VKn/|5y-b'WΪ^֧tz2Scdҗ /w~;GpdCV y[kyy/fV%hutYk-Аq.]1< -kG}Ǜ7䛷G?2isBft'!]?Fv6߬5H2zHJLpu4\ $ H IDATw~"l][gZzqe7%P"1 H)7Q=V]R~UKFpÊ>C8.elXg=5 *A6ʲ"Sr |%){twnQu+BN0~ :]SC9 ͸ ~T}:L<5r\= LݸBnςI=]gdS4䧯_d쾦Lix- dx4A\R k@9!p5(JnvG"9j!Ffz}6W.񆝽=ghK>[SD;@(sZWZl R3`():GT7TfxE3B\FDjm%Uoڬ Z+~R>{n}JK4b؟VwƗvLx,}sjGӚc= AzXc VVjkM܇b9F5_jt_mnGpy/zξۦ d[:BiĀb2G0JtĤE546OUL Jf)imRo{ fi%Xm7"s ..ilE;Rpf̊ )n"uP::M6ꥡHYZK( kӕA4< Cʂ2m#X)1iEˤBM) vLKV75Y;}0œ6>A8Kq=A/"v`SLJ.rDr<\W\3b9#E'{.R R h){3QV:ݳOKΠymñ=+#Q\_csj2H{Z] Zt$"ЍDƵ ,,K4 8H ~tO^Ǟǣ^6gfzc t˙܌9P_Q7t61fzO_0Ҟ`C6_ٿRh*?'H* HyK V~ CC 5=Bf%6XY^utZ]Vwk_ 6\0t}kYeڙH%O8䃷`Ʋâ s0(R{lWxKȎ2c͜O%sp)~61;*%%Xo@w<;JG`p{ehEpU׽^\M~_cd}ζwFARzYnrhH;8!e366獁mn3΄wt}΢ZV MO8BqAYh@BN޾-?H  ؽ(99b20<Urg}D<#9usD|(O dA MxgcU,x*u1(,8܍䄾[:Rz\-$!h9h^)ny l/O L9 ]kS&?pK4-E&;GL} kuu>2NʨR&bޤ@T*+l݊ Fs9tn`?sW2H?a6 [PAV,O)0xqmƁX/ -E.)'_ x5PY?bcaj+$š)lp@.ީ]BUOU@DȊ Xvģ)1o-zYXǦ1 glւdݝ9}4Q,:9[ͺ  bsW8)'%e|0э?1c~?H:Q=,ʬ!ݙqrlnjb*V2hzYoaF0oعS6.BG=G yRQJiqҲ*Q/AT`߭ys\q+{MY5`f{u *ђzPYӽU WލlKфv'8 Qㄦ@4%rG*/D 9ȨSB h45orUp)I+|_f4%bx',KËҫDh3G]~[]. cu{TNIѢ1XL7ju'b{88^1%/ {o=cQbv;c"W" K63#Pd053<>_p;1+fG]^$7f٘6.eN7e#R:6>9{l9DOa0<9lyi9Ę]S^9ZTDR&q.I~Zg}F}P3Irq0'4{bo(iW5.Y CO-痤!0삥 @9~!s-<+"Q S٢LSJOϛ$3'7vĨlLF+uӵ~ۘ:SF&x.X\e{^D|-_=l[qIe ["pcKDM _CF5%!a_+wDwt#KH}xiuV7q ړڑb&B(SS&Zľ7kN$ڱ*|X4=ǮS١Ej$~/^ye5(bL# ;GYs O1c'^z-s;KfƆ3;q\?mcKE+dL_)ۤW{Σq|ˆQ'I -/0쌿_~{̄CD]),Hul">!@9'k\K->h'}f,on~~kÝlа@C! ܼSd9f6_40CsD+<֟58 6rrk]D\nܣ0NZŻRxg9TbuΠ!{"7IN~?e`Oh5fChw .QRkC}` 2qGX~n~t)7 &Qci2JgDcAmON" Y0|TMk3*50BvUhcM}t#Xl\`*]OfgzZ7lY6bq#LV*BVU2T8G-H!W`{N*&95ޗosyo7cBNM<ZW;{ڦ!+|շxGA?KJ'L*&'k̸")AKZa:'Dg/`K_ǦQ"[Y"Ոgm h0z}^cdN!yό Nsx";p>,8aF7ɝy3=mAtvլW^ϘeTkɝ23'p4M*;eW(/Wkj>= 3!?m@nNKXi2N5_x!1+rV\ !uj~̕.YZ'sMOS&K`srB3\O/K6m</2CJ>-)FЈ|r"gx6kmxnqV \tV𤢔:ݙ-VBۆ[955JF6^ u ӯOJ;d!@.4.x}@%w^ c !ڇ^~F7B Sӹ3'&e)9F `Q9[?Q__{.QSdT'p@e*yіu/Ӱ?&x|;օ&? 6Ӿp8>2QX*צjܲR!, Yaژ本M;Zp%rBˊ^}*Ws+σik|Kg{\dhV7^y-ZW=ZWh~("SǍһy?69w]88mmRQ+)o<7Fh"JE ~4YY,ŗzDT3֌wV图~o(XB ]r0+7=RUM|0st̛#Zksj/)ѝ=Y,y^ek؞"F֢w,"i`Dn3_1Wї-H{SC:]V U199r? Ñḋw9f.[@a)'k9 nOF`-nn"*`˕Rϵ¿հU?k>\ ˅)kr;8BBZ[mr!8^ lMv$4K##2Vӥ-Q$=k+ /P<[PpB k.GZGu='CU(vDK7Ǥ m `eA[K[\@ВʪYϫlo^ͷ!gGfkˌ6dvaTVΠ܁ g󂣑!{d=ɯqlq4c 9UD49f̳7=sȐ:8Zs Ʌd̃PFn©\ǍQ!|KogbL3rIN P9:hܰ wo} w8K&De}iZp-]_ Aur1#ƌw[ܺƹ=g(=9Erm\\BZqK HU(.y43khm%◥EيRpmH;-1na惭A!r(Â_v DZrs+t(>%#ӃX Eom70h}0*F6@"b3bkD L 9 9u@JQrRaɗpZu{4U~} ^zc)%4vgkԒ o=څ;e6F$FifMq~Lu4mK n?<:kx/xvDj4.Sna\]WaGILؖ;w@oo'9~dItXIp̣Ŏ;ūḃra\{F\i^s-p 肱ԛYgF2aR:w#?G,c;!:Rԡ-Ų52Ž Cl" 'V])E2gsd HUe8ag̂g[.+;}_ ~upqM;?گ}m| 1^O%]onZÊ>*+3كi"\DB4]ViSu +~Wƿ>zO^r|>uJ`RA U!X"UόlekrMMm|Qog09gr7!>NS:3l_\ 'B0}}D,/a`$ri:p^r[iFp)/8<=8VM 46ys.T!<!Q̑kE=D0bP3uJ9Z{ի.-ޣ"p%Iz ӞɟO?ļifESfoѐJ~]OcL3̼BU{ EblJ=,x)O9]m `f2v+OpH%`#!e}0"إܬ>Hl؟%"pã:;&/?FhKw0჌}r70'ٝ0׭џ{8ށcOZw_ t"y Ή1㼣m[Tߖ}$KApX;1m2wdV'kYzN/YjW*0|՗ÏsiSa>'n:$w\1t沀Gl1J,=KmWH Qt7@h ő:\g>H2 IDATѪvD?]gvnuT}vD&İV2Y3J#tv6t [t,N7~Jed 1SRLּC  IX'DVj|IU Z2 9i Jrɩ{yzRk*Xjɞ#N |Kِso)b|߽GV)H/Tm!L:%&vXB%뤄J`v\7> }dMd ^)s*,Qkz{\;J3l{ =::ꕋ=mۀ6 ̚ &&|::c7KXT;B ,ciڒnZD%c>qf@KPS|:P8|* sf;kf5%pycX_72o}+A_P&cu0gbGZtF7e\rC^l ni5F\#s~Oh#yg ylg|6Tp !4CQs9 qާtI>0j:$ӥD츾&\G݆y_ϱnZR/-D /k UpZI4dӅU2\j'@)GւP0CִhFMR>8Sbc b9'Z%זġEX/hPSV ;fMp%S<抵b"5&+'R%-ST'?Ct9BrUsdjEjv 0 `n0LP|m윔|E+n9zƆ G, DF=훶}{ x=جq8V>c_fD1bxVW!-*CI~ 0Fb'4stI΂C$?r2`9)1X̴77{hTz!̬5r') }E.43w2}$)@_jg^qo ?rp}=c Sv)SEOF$JLe1r`j);O~V#VݪRZ"6-QKOwKʶ,y"J= 7yYo-;ֻh ,2e1]n xcl.elT9}Ry.|y{ 6P>Ɇ&reu ݃mZqι[#F -e J(E!WB9L)C Cb@R!lLR$Ƽd@$@B=̝9Ͻww~Vw}ΝwDszտJGY^wHO`"bUy;9gSҶg1:p*E'>Afs%:Y`]El6T!2:+Lط%2 Ic+'3 sKk&3jH+p*`RȌH X4\E #cw+ɺ^x/,bK\QjV35.B|d>}7~tH#)){h{e<6EO2a4f|gQ2}c#7 <٪{SZ蛞Z,BR+d|daE9E_ @YtiھͩN!@*ehGoXX6|H|AI, C½$_CRNo$!U0NShj^lnJPU4KmQvZ1qrc [VMe 3Wte29n:u )T)fTYzS%[uIg>?u*켣S- 鬺!Ռ z]-s4(,I6RxG෬H3=eh%_L>ӐP&f30c9aʒC9[4wjZKeZVvop 5DkЗ2=+^o}oDx Qеd Lr]B0f>v-P9C!$AuYgZT,MYiUbTt,0Ŗn>Hd6]4$gk7XR٢}E9lV;M%9( K-&XCleѠ}-ڊ0YqfЖWlM!(N:t*[$mT"S('HQu#;zzJa3m6!ާꗘuO#W qx/[# G8Uc/J voS<O$BdF.(lﹴT!2@4n% iNDSTEiQgQVZ{NRqg,LJo+m"5tXr7 ]a=L5QŪQC1(@8xD8+R#D~;~GZDLi4dOXuvUЉplM+O?W -δ$iox9ٳ3Ϝ#*ZERq%X :Gטm[Mhv;Pm`m`y} iʊ,|Tιwa>}P fc]`v}gy( %"Q^x&kHvy3x ˩+@9%j<oG-CFz0QjPeZ0+1⊒fbiNE} EF̢uLgbjmqaZUNK;g餢 ŒCßx2c;STHsDi 5޻EۢmIQ'XIH9pH!pndNx0H0Gjd𡎄eri1%a6qWF{I\$)*z%H}Y6z3A^oNf3ʨ41-Q =rek}I]r${㹍QZ[> xD$y`}(/ }5^#}~͟deã?wUc( 6jqVsEfD# Zwڗ>b2RR$7kѤ*&eP\_Cq[sڽV5L9whCGQQ!c"&zĕɸ0dHS?~?W|;Iq 羅o Q>lOIKYJ{ Uኇo} ~%3"S3e#f,☚s-9sQ9,1S6kYpynUaP]sbb|dzoɘA.+}a@c!*ӥ*0, /P {<9S5F~6<200{9*<y6fR9߻zWBp/Z8"sb kTŰv)KUĉ.4B`2QjcCbk|PABC6:Lw;Ϝcg՜ `\Gk-jXbBe ʚ%9*9cܢy\.|1J~F/0A9zdslZ&u##_e&/#Xh\:JɡtC7VyO5H$&5Jn|-V\/ػdy٭R7ӺxU(GU"2̎+NPE)aFW@Oo pڙ7@mM=q/A2|t!M=EB[9GԬ\y͊cƂ6U{zKɿblay=b fUΊ\OI?'_}e}e|Rj;'Ê낃ł*<: Ceʼ({ol Ua&Ȉ6qDQ|qIYUR5;t-y^|.Vj%׮ohfI.k80˪1SSt3}~ؘM*H}Xc(JQdd'eBO]k\"wK9EQ!ٮǽ5G U߮>Jb+GLOtя/o,!2 !ARq8{VРs~'S &oĎW*[-)e}-kd:OgFƨKׯ`/Of1uCJ]똼h5B1b2p6X#Nb 1 :sٜC(L(ȭQҚ vcoZl4yC4\PhZʢFkXv5Gϼ4)ۜ)eeαgO(,\d=.q;̙=dnpv=q;`OZ>ZhDq``lۊ(,#MsD_;{'_E>O#DQssNQ#1MZ*W`g?D Ջ@l0vFYO J ~6(ͤDJih ,DP yǟ~QvhVƀ`iEk˪//],u99+&͋xӃs]`_Q/9 q `npk|Id1vHSB)gt&1׭ztmn/xtY`bWYbvy)Kjj&hy.ϔ1NПs 7A&C0agQԣ/1qr5x^jO) gLKi]k !RBm!2KWYzW*2ZeQއBꪖ3]Ga-UZ@hɭ}~_ߧ  .xLG#FKւ'b`|N&֕ʜSF/coMRD]9 &LzDm!( ]sGz[,0RU5ۃZ,1mmMY.Wh7̦%M"hi2R5lӒnQBit,NjUWiУY_Jb(,IlK6 H%0.ݻޢtͥ3({ ˏ0}/yz}E|ccXUQRCZLX+ߣb>=qocqJahn,_퉜K3L>vGUo* Ɍx [&P&1')1R"&1$<`FT@uv»?/?xP) 4֚͒tt|gv,b+9x? ^A=˔mns%,x/2e.? bCHK6lsHKŌ9bB}(`Qy`&tتKM:n\3q+fnK':J -ch9: np֒rĝ4햒<K}=Ps|uܒ P^v_g10Ni[#ζJYƺU%jb/ UCa BQM2KND E]l1:^t4-K WY_IpBtF1>A< Ӕ+>T"f :ۺ٪:L/#/2"ێ+okX ܚqe}V晎kG0$P5(_U6)K@[{|mH9_M[Q\{ X ؤMߏϐ{Y;!V D,u3}> ;UG&YɴJJH^$D/SoL ;u^dtL"iX0!6l4/& {(-q8d\ nF8*`z5<~Yc#.sC [!`i(EJ:&'Bp,kQNZ|pXL8"ԮSPϖ96 @ P)K*Z,_ͺoEÌuf4RSH_8'P*DXAufXo.30G|iY@]gfF}%rd[rk._HhʴVj؄tmRJeaaxC"Q*S1D c uUP5Mש?KµfrqquH@5$Ha0s;+`ef~rno=mQݗDa?>8.׌GJcDwJEˑ䦥0="WLζXt^XR\X7rAZ H="h/xc,Ov='p>SކkXaZ^})7ZuZ1\d< )M}|zc0bSIIJAWn5Ag@꼯Sp IDAT01z:[Ά@Ni9[&L}VT J+pR"1v).oq8u ˾Ġ06q!n8 vQ&{w/&Ϙ}p9b\<аdJK]|mJκԱL= Z֬xg+Rz. .O4m E(nWՄU7eR0Ѕg"b9Vtx)M6?7Dl co(0-ǜc" +ΰ  <y-[ b򻐗l3iNn@y{LOmUO+u5dPTRysLQZ1ŏebeM6*Wa+ҳdt*gz#EFXyOUQLK{$Vg2aZ[:qPN)FjMUoPCPEITc:Wt_z؝h0bQG[嬧 d$ED,6`-,kvd4=>t3r0)rn~% Ii2qJX- k@B4e}F/B0$>Ժ9,v:v#7"&}x?`JǾq =+ӔysSuJ_7j|`TͤnBwm 4vx6bigoyLqG Vz]-1 $L^)L~{z7^EMN}Jr u}H*!1 6q m=hjV>EgiZ|"&MB2r)L&R(Q =& !yf2g|>#o؛*6YtGlap^\u̮(MÌG]8[!W 27"O'8b*YV{I{Wm4>5K*6+jRnC/(}+`SV͌흁n?UB^xV้M~O ._x+j mZG4-c-V*`|.RiXA֦IT*s5{Y>Țs!T{&͵+tbhsZmk5 DD7x9"-b@iQvFA驐d֫ 9%$L#Hf)z}j&d ªIXu5%wE"Q(KgRn)Vqe3ns#1 1+:*Pmt2=%7S`QU{1 Y?#HHz+}C~?m+Cg.{~H_5$Kנ/JpA1 =#] z>՜BW"/y?J\ؙkj@37(8.x`W'NYtz Zj `zd5, 튲BXcݭ+5Z="N{K$:@ϿxY9qfk_#k`>gC6<\<21.0gs gy G`ʊ׹yn>Յh#^&t FԳ?E!"uYc }Nc(QZjU42EVk2 \zJwv]>w}}[ꚆYO{O<b꺖 &cN9U=12TkNJˈHx ;U6u܈bA槫Ua @LTjOM_r>8f.E">Hj'Շp,՗QTBG"|s#98Jd$!7gl ,5[V< sNcP='U^ue?pXL#^~8>bL,$/ߠ\)<`*z g"au1܀!$RT#|?$-)u1u*%&خ'n|ˏ>l;a6YWihEgBË\9g>OYYM.r[LXq,ke-8b:y<|?MLc &|gky[1_Q^g=59xvLiTV|ӫu5 <.1oG q󙽧(iyl4_?Q%&(͡8SdڗOg,_Gْr֌:Oy`kNRHVв6u )>f|nIyjIjV{9QV5 O W˿al5#wZ(KY9Aڮo\>{*"J6=vwLʣ ^}9@#S3[WY6 <Պ(<݇Lq8icăx ^30w#:ْr951:y-6xZ>e;HHIHG/uݫ[Pϡ'4 OߕȮǚ:(014D̘YO=S͉Xm]ruŔ.T 3 ьu%lq4i$%$Ȁp(#С_N5yhXHl{ :l1':#n[$&1}5`84cuv>_{6?'~nBE.Oxg{\y%SjV|][<};J=PM`CrP 'jo/8vs~wpt)OPuxм8KP^O w[Pi\k溱W˨ mq#M7OUUS(-wZт٤U(5v]EQB-c֟i( 1 4V6jl6WDUWb}YwA01`D;a;&gUЃ;SƮH# ZH "EͩFuL &*˙~ƫgydmtќJ~==Nubc^2ͨ,@R).]oqkcoQFF'bS:3JJ*:O{Ww;^D`+Wl%+2ֹNMƀoƲ7@Qʽ}2aTLv/xJ4zFV˾ÊKO%mϷ[;~:MwXkU^?oS"Z~¿Δ%`cH d@\`p@E|Q~Q-O՟#ϱ]V/n!:C״Jn:aj7uؚ~HQ"jI%G*$g:p D"eKآ`4L5"ZO늾-H("2*"[5!bP" \pZZTw@˽H6kTV"*IoLR^&fw`uY91 ~\t7gj-(gJrE]CQ汍~/F5ShwqdDQNft]7|kdyj9͂M/:eKNKm v8.K{+ 3 [+&'P`ea=ӑJv5} WDaz)1 6=^U 5 ^E)?xy!yvPFlo:9rW>9k47pKX"_2emșZ{^w*_8#o˹mdgA9sqmxŏ,;| OW(oSc潧>}vd1S0\gʒ7_țhۊn^ќuUsi[{zeN~ffWyBF"dWDW5x4NrXojkį΋X+'J9C]5٢ MPM&*{U4;E=E1iD'yHQ >QȎv[z8`$\oެ=S3P2c\$E5I= 5Fwo;YaC={nY|R!(ar-*Y uE9wܯw ԕ\7W ho&R[Ga *XW Ls8-m!$2Z4M%`LH`c$"?>̙R/'Cɞ 7ؙ{xJL_?ěOL( řC޲)>[<4?#wSSCC>[ygyyǹ9 W.?ƴii?|tU,ܔ!\2?vyR~'wD8כF^.ĪJ48tJAG.[͏DpQ 4*ΐ(4 ƈ6d)]_~}4 UIAjř)Eπ` 925k[ ocչ0?tC6#ؐ>͞4?u%:IW zQd^]](s?#b{}8zߜN:-B5Q͑DV ޫ6sE/rW3^^8)456=)bxU }n^Ȃ_+ ~]DaуxEW ' ! { -G|; uf*+%g,$+ L|*؊.]ɖ9d\0[-4'!$=s.s}>>8bbj6Do(D uQMT=L.c&/ 3ز7yZ–c3ee+/kd|iP&7IO=}svg=e k=&vQ)0x`%t [)jwg||PT%eh\[!$Dr}napļ ]MYgS5Vȏ<{>?_wzkŐ2 D%Br(WhڈGhEφ-f[/k)ϧ;QtvD,a'n$U>'*:P`HW2>**,ѯ0n1Ct4rڽqPNlfKYb=񜾜3FϳܲqU+!ܜ-)fQma,yN+ /شDӂˎp>DCöW0=l 8[J(+ Bc^^ :ܽ5YO$kЪ)rB pK/)9@Eh+ʞ;kȐ h o~ 矪Р^e.ס 'ӎh09Do`';Ĵ}Zsh?/zc[VܙY-5cN`8p.jYp f%edE)zOlfXj>|z4kV=o/W\pV4$E4 ϞO|߮Yqͪ%H:is3lmSnW=p$ԥQAoւ6XuQ mC(dG?oU/i;tsVr!ڿڑmSx]$&1!&*ЬOF4^lMjd\}>z~)Af,O(O=!VbcmC1B$5߶&mdjVC8+۱2_6={qF f<)ѳsuo>!.x777 x뤦S{뀵{m+5 R }ee3[پA$1ĦQGBbEYch;925sE^u lC)Y*1w3)1E -&pV ~}Tk;I-o|'_ܯ,Ї0[Tn (罳2u{)'eGgfo|-cdb4a?d#!ΒcP)[ !cyr9)9>ԻK["Z{XQ/=JC)m_~/Myk D!J&m;I=$ڰ\ WX&eB뎪0L&J[:bS 2lBII:*j@+j=Som2(tDh;OY8Y.9Ee>t},SmM*#(aAKrqV+8F8 5"cv{5ڈ[1?cgSy e5%D䡼WT䂻 ҋit5xl6̱kpXRVeɺ3d_^掛"htRš>X?iUOͿgUhOr>s #SL 9eKҘT)lO`_qъIMgߩуS'tT&}ƪ9B k+ ȡaFcœ c72cFk&_< >TaO35uJLK}3Zy/%?x9WQo1$%VMZʗBOAp$0(±ߴ 3 u[k08ǡàحLdnlbF])n Cؿm9|G9mvw.cb Їb6Cpˇog}2oe-+&6G(ҊsVc^9,iMBKF=@sVPnjmR) K2Ok_"m*EA:A8_} K&͊ZB"IPy=I =S҅I{kjFNY?إU*l490 IDAT_{z )p-}6|I}bK[ inzV.S7z\a ?8(a//9^8w rvev!CNt;.-qP RCw/q ŰNkѱ63 ^곁1f8?\yt. ̷y5/f!2@.9xϱ;_ʕ*ӫuLb`:)A:$b|8,[jUxC֦]а8QsʤhzF+d~k 2^sF&%Ҷy5[lpKr|x<ĉkgFymP@O "ˣ7"/qtq?|=7M KQ;,l5F0Mk(/Feb (DI>pVC GZ6R {FA7.'eݔ .U ]jRfZk8*}*tMl^z&_Fu5 & C0i&B“Wn ztBI[W?۽_[(P>,)jdwdIeww@zjNaD1N8\)!Z8yـP0Nϥߵ}T@_H[^h~4ϗr<"yِU:$-i.J5TEGO1x:PodleE/xDžO~}KiOA8{AQsd!K禋!O=Vik<ykP sJkYMnk8C)%dUVXs D~-30bt'39w6 o{VT @y:>l/@Ms)c.֞kM?u~/Owa6$s-sg>)}5щzƥ3tQdpMFuUAԞ81$uIdT+ n(kGEQ;%lx1eB LJ~7pb[R5~`īcCiE=UJ:icg'%5\Ƣic>;M?39h}-ӧ\8]UG4!E9#d()M%oz\C p$/2F?K# 91yp]Rw-Wwv77AQl rEͳ֌ /:P&Ie~)@련 Fo 8 gEnsG^ "LqXu#Լ T_[;IЏ֏1J6HN.Sg$FK&><w}E9NgGd{*) d ӥ `a9-lɎ,tU0#ar3IL? ^v{ gŝ;Gt"3P_́9㣼k\,:phF2N!;_݋8S,pЅwm~1\k>]*  hK*ƖЄ(f πAȃfFQ*bPJ&"4<[ֽu=Z1F}9Z{[qvZ{s1F_]bn|8lĶͧ޶YuUf́da2m a̚6+9 %='A2$\!DmJt'>:?ϟƎf5 swGRȹWד`萙5Ǘy])^9fv=b&M:E+#E %YVkq,j |7H`{| L$Nt8h=hB~~`R5 F|X+L>jJ/1mi,4 :a皹g7\_s8Wdw`;qd5#zxTt-^45j a4Np jWar L]Ki5cU}c!DUq}_]Yi#.gp> Wfa•>YYx?O=>޽@ӥI-;" R;BL 9W„R):HΓ>)zZծgwRޛ6cFL)1&ݟ PfIϔL'CZm;~ !Rͣ=Hw9'|px_i98_˸*-s@i0Km _23XΥ+͐p}cnfsZ.r`}FJˀ;-cSFi nt|كETM H(i'Hz?a:l[y D6Z&wBU[ETpYOW u>7lJ׳ݴGH[~P+|sl>> .B!EІetB tn@Es7ANXX[T,yk]xߵoB zKjaLh*}]xr}~^x;qN5%9=$qz db4M)[I}V+:Gh @ʬSR{е3LZ^#1yBoݦ)p0Į "kS?xqCHx"س^4j/J24/R`qR[? n IK)"Cб1"mnމ> ;d.bwJ렛ā W f՘m 8rX@ ݂{2^ȴMxq+ /NWַ r7[77SfWF,Xcd}z'Z_zH{c,YPBY8n\ښDS,RX:b3&ڣ˸FLRϦx>V]2%>3iG8 1YBdǀw,Bx sSgf۱u(^>?F,o7^_^=nq[|ǵ0p9{DWoO=v(iJzĠb;R|i9ܹx|;?|7dFմŗuOeTįY¼&Uy44/^J8flT2>h8*XwhAW"R4ni,7HZlzTe8҄(@YXhfZ;8?$-JJ)`-,yϬ c朥Ot 4WoJs;1$3{u !nK_q•4)YUlb% V-4w9!GL8֎S+M &0)=d\$ᳪ$StLg}XADD;dZIJ#gخsr@pj[,n¾-v3S'")+ٱf63m"W' bk7>ϑ mShN[)#Ćuӏ#n]P_CmCN+xͩJ,{C '?OSӤp9+=eY|*ppp}* #?G窀+dؑ %˸䄻w>DapvYoHcI,"إ{*!YYF;gģ9sJ=)7ǸQ:iU:lЕTgE~*j|ΐۃX:j])4t9{ ڏ 7B쇇P-wzxjoRJsiћop7lTYo $^wxΌ+~;ƂwΑ}  x_БCHHcoXX&-WN(n>+?]$t^89oz-뿏M`\F0sS}wl0*M*MoS߆^5NEUZEDib 92@'ʈ73lJJ6^>g+senl}[Wr3"=Ċ9iG?IDTPʨk*8hRǔM$B )nBD@g&;#9ʆhڎinkung[c(iI4=QQH7ž}e BbJ:8^Ch3K?l>|{~8CbȂΨ1fjepzrʧ|kA-:em T8˶VӜ,3^ r^ ZMC\,eK$M`_G.Sz06#0*KIQvezcRS~/ :]=$#ؕ*i;cˆIV]O}f7}'V7+>1 QTf/tMdLqʌi.n[H&8Y7LILfݖh Hyy<]!*.\RbEVR҈:qԼSC4%N/ooz֏Ɍ}dGۮH}r4 k$D7Pв<P\Lcxܵ/CBju#dQ T(FyԥY1bxc^ݥiOp:+xcA6qQMZqjsw֐TQ˸2l^6>=t=tլ, ϙ|nX|3+haNDgB+T8Q'7XP`ʵcIBhLĵ$.k[E32iJ4!,Y>;Wmb&gwh{UUyWD/A{ \%KV.Z^c,DGh:>??ޖqS r6H%︳hʃ:wFL+Y?awL39hu{RR@@_?y~x[ 4]I> 7M zK۔>2VM:@{fk:ƝWh]JJE| ]Y1]w<1v+Ǟf}\(حd-fa _ f"14'|?)7`?:CohQ8h$-dC% [+Jr.\t1$^e ꊝ/zkn־u*˲diT/U]Ailp[<@.k]l '6'=Q&41uHН,~] y Ѩ0?A _i|Ϣm0 7XS(=6e5 ̪17 %zM [:-|^6ٰ#N 7B^Al5'gAQ`Icسof!{1y;Bzۧ?~ ?gSweo@Rb7d)j&u!x0$"qʈa)L%z&8'rA2* U.z,ae~Pdr AICՒz3QuT˨ !z6st1&k?S|wciĹi@ <]4^Fs#^e$/{@T}yQ@R7W]weM$ihi_t>D+[h"ky7&GbԊmI^ MtsHI+K涿]KFTȪĸ4-NZ2bR -M-w{#w7!ˌ,mav/[XsA7\atKE\lѺ_BP3kOP"najSfV\Pb(C֓PLKĔcpÄDw_H!ifo[M%/yT0B_W :DfSք6)}F֔'50I)~cgْ ځM#5y811rf︵Y`躆{EPeWySVϛfokwbWƻAy~ʴm ?Õ[UOl׊8R!"I9Xu.ebwC\Ukr3IVMKi!2d÷-MF7( %+XQud&SD99ڷ:[H~z/y,K4'@;`yExe.}!P8)zqV~0_Yw}tp3*HΡ IDATήsSk aNA=89]!.Hu®MN) UaK-^mQ#aUQ Q*Tp+pPɜl52oL>Me6+TSY.״>+_&}[>}F0iyuumYn7V&al-ъvG:Ǯmٺ =+Зb<ljl!@t- K<y% pHlaqۭl\C`!m?<ݽ#~ɻy %_>WڴlV.v;V'+BiuO)tťSh WWW'*sAUQpS*(4 CaӔDZ Jr_l{P1c,n Yh0%uO>]WU} {Mޔ9_+|S. 4sZ(BB;d/>sSkA^TU~ZX74#qȞ:vi jNudaG9otϐ(<۫>9Lqň!e/Pr1nZ"/Se-В9@7 9xR((_d^;,%oMoZ r1 &ס^ G!t_PrWC |..VDԖh#7BآU[(DTqNa'cљXe_zP |"F,KXg!H/214j*X *#_j2ܾpL~T5QN>38n$4{=fׅM@SHtE*O9wie` $9n߽r#܄wOecwub=_4H=ONx>qIz$GGN7L)q9t4{yLw|`&\P;n;q~ nZ~[84ӂ[1>ݔY8nHtcΝ3at̓$RV|2H/}?xQ48EݞKeYZw+b~u9*Ьc$P+E;;[ \Giܒ=MeL3Dg<@~wjs"o < 1zkdH!CBw%b;$Miaj*0Gp\ _2˯u^D\Q'! ;^R{h;C-UX W b\5JƳ"thhGE Cy~zmQ+2$.\ \&S~PH0m6FeUS0} p4v+pY yLd Ƃw]/Y>[4{ 8;|_AoE#'/,jB7 ӺlY< 4mS.­fț?}Dy'1C&4 $"k<>%γ:q뙭^.07wHPo7q{4E7%VWntUK6lb^ZUS8=9W~nӍ>-kvJ);qA_\mlVh7}aJ*.ky|IoSU`!!61MX,ޜ53Gԩ%?FOVo;wȞ}ַ#9.:@ 5Q&rEHG -JTdL4QLKv37e]@DY9r̖17" &Py#WY (#&+90_qw&L Z@cj!ֺ<;G\|4ib=/>Wƍxk['jIB?V۱̇K k7B G4 5013_zarfptpis~/xDxbfI_SUzE3w1p}n>!0h=Cĭ͊F+b |ꂆa*B7ՂJJ3 _ S,B(HR29'k.QIs9g@k"mo}֐FWw2m/m&φϩ"/L9sXE^Yr\9ʡa0͜#hS@#nNY*{}{RA$APy 䜡`,u>*3ĶZ/n*D9+̮ۋzm/)]xw3x#|rW{^:#ٜrfLAJd<{gBpD1WqTQ✰FBh=n߾͝#ziC&aR\l{V]ԏĨ vTB뇑U`iSre[Nm"CiC"$C txLYw>ݷ3mylN MKl[;Ұ%RpN6UDUU o-cbkEښ%Ʃ~ fqB0xXmbihaI68݋\Ӓ;!p3^b8js8+~jIb$lC˞욡@Rc#k3 x\n`?uvGv4#MxG۝'h,ywDvW{6f2B+ӞQ&N84 >n\|NW!0&}$6@W7[@EnIk?d~姁mzwxO3> 3ܞcWg Q&\n4\@NHnVo=?|c%VMpS֏2>6.En|}P'v ㊔%LZ-Iu$0;VޑӠuYJA6췗Vʜ-DQk2nz=UYZ31+5 *yfsѮ oIuoVԗRKh nZMMdszHf2߰ACGr\P$ph6## s0dqmɢMΣ0Oel\H}A"la H41(/s~wW 4h7yS8rq~ 03<,5&P8#0uF;9G2ٷ|۟o# 5 $9ntd* b)F6Yfan{wNN"# ȽC qUBʄ7!C0q "pwo\WǔUo)~\Fh-Oq$LҰ8?Ź ?z;w#gܻe:b8Zi$G7l<xh֪}(*ȒiaJ-Y< nd\\Y2#)VLBU˔mM)9ۓvD xO%~矡`7O|[~+CO/7t dawq$3=Ӱŧ=y4ePxKE>-/S8A*-2Z}3AaW7%]ے'jdr,#>t3re^Jrycjr`Ha%--XOE8gM-<+՚1 r'֥s54M~KK,K>t@z3V֏ae%d Dk%EKb""Kz-}XϚ 1-UM]4N`V-)G(J>{ =]Y2Y1q^I$)r3OlW:Š"JM;g4Dy~npz댷~͟K˯8dۙj© d3c ZY >r{_u7ZԤ@3T&= 7ҔǪ#=Xsk']%x^`,ؒ=!as ?xz= ^W1x9{[ψcOytͽ{6.zZ blC ܾ}ik:ebCGӮwurfݐ̫_8Z'5cRx{4)W=ŮG 9p9% #9eUi 59I} [6)1N61".5 wI/vࠟtܷ ?/1gq]9gpIpiwWt =2]!yR`6WcIsE^Wo%L.qǻap["l-<~5QJH8|cDJID4"v*[\&HIHV'L&?k4hᒎSC:i5q>)mmSY^6.֒d-[R+4ȅ۶{ErE D\xšŇ~(h4Ckfks;a{I懺J/";h_Ӓ䛄,һz;f]&R6fItazX҈b ratz3['2]SoVy4 yhQˊRT|"V|AчVBjɍ8?cF2A'i2̓bvZk=KKI@dS} 8\0tFr]sU3Yԅh6u#= 8/tC>ݬf>O{>jGT l%Z5`}'#Ӟ¥4iP&0Vl2W8 o5D?psO9 m6F P0]{>sAkc"S`ܫί y#c& Ab >5L^&@2 W/hWZnPRNx9q\u~=M 8THmeƩ9 }7^9u[Rfќ.{d:,co3RAj~eʣ>Y.&̪L-kQX9ρLN(p>֣,4XGZZBWW_2N5|wy) PR* pZޙ jB@,~Y"ׅK~=%q78wAuJ=ft:&ЛOHcba/za~sλV# HDD\MJ\k,tCj%J,~\jM3Ȅ__O#SGA%/p_S )8M3M m Sۧ`m҆'I,nBBːDͤ1t5pu{G=yt.5o:eKAaa1qgp{Nxx?EE)b, .nUiSF2>(jhloĦc4AyW%/}^T$+B_,-cq!@ Vy^\ï}A7>⺨ю}:OzF1FI婒- E&3C3OӼ;\)rL&R5L@?%$!R>,K2Ix`)(9BGwRr%mb 0FXRfm*RdWtSE(Ne^KcRǦT 8"Ax|(j2Xpw׾Ə/" N7{kB&a1 *Qn;,eiLz+{wk+x߳F6|{6'Opq{ ''hZ..YVPy3 q?2J[wO!jUr M#mxc'1HqY :Q؃wtqqyIFp&QpƉ%}uۛ8=?ķ\ܽ;|< S9>٣쇑jii`{ e+p>1aYe_1dkzR @-ry6QYV;̕Wkr<Ӵ pz 16u$Z#`خZ渜U\$t>fQ,RO_k•hBU֧@땦U'3r/_.BmG)fo;Hj&u4#۲KӨՔ,T,dz>vkt^c uݼD5"L+2T +Aa0׬IY3v3KƍД˿ム/gIKAf(d P3!iB|ͪ]Xv|^kkE,8VE~g;wޣ)(p?,0ݷ u-սǟȃ zwˣ8Thn~ͷ~ss NWrgc?.З|'UKtjp7iYH%EgINuJH!R=HZvj[팞;0x^_̄5 JA'=tA,䬹֣^ @"y%B6 J^7)LN.^ݷ2mNn1W?m֌S )ocgcWrã>gBukV\AQ}b~dʈaت=@i$RbvT{c 19M(%-BƛXR\~D:]WGj?riqT2~*AW7PqT xys E1) }]t' 6kߍ5sBf*>zgL: yCq zjv݊7cpNx-^˸˜UlBbWq3^\YJ8YsBڮXF ۱  d,T]ߟv{gs%"MvO1^߯?Vp~/;;t./[O}—'oMiOjoIN՚G=͉f'\`)n)U8u-y @p.VĐȻ Rsxۏy1/#M~xj-"=2 sr~GwWn!{Gl&8 g÷ Gw＀ ۻӭ[ŚԼ5O#<~Nq$gVI44~+^92 Oʽ9?m؎=Ĕ#iͼW#)ф.MC);_W>m^'iONg.YKtӱG݈OpB!-Chxǿ7gϊC{hG[a {vϱי{ o x[ rUS,s -+Uy5!o,(YEo}}' 6w1X'ck"YY}{ct^x4eU'}P5O`܎W/p69˾ېn_jǶx˗<;g}'_%0s"ږu>eWݪ% T]}#?+|w#V.竾o}j~3ލ_%f^)mxǿx''?@\WfMM_n.5+(OC<u F'P4q`U0S O=H*v ˇ=L[c!4s&8L=v ƾV-+ =n?AÞWxbl sz_ժCYuL]J_gkmLa[wW2u3:YqSKm~6 HNܥ-ivF(+\iC{}F) ^ƴ3^vzd%,K EP K9Z22b5/&99r?܃r:r^d,P 'ii*C=\FH{xא݀s#|w}*̳<ɞ;lj^hܳ M1K|ʖRZbPVY&] = }3+b37!{nۄ>򙦬ϫ7kKJ;c뙦TT.#mX,}[&T~~nZ3֦y޽ }Hx&s=/2l.DpK]^]R?9|_Yx4x%f{Dd v)m Qk.į+tC|[—/>QIn\vlab规~԰c{TL4+ hŃCd ZBy͏y* :zfi #hR/Rth"Z5Lb9SOKJgk{ F-{Y!=`&r/ֹL 8b~Òs.}8m6w!AKĦ2.^j'3e`aI4pq[5WdS ֘N-]3׾ZV=5,4NɂTh_-rr}@"0x_{QBd9H+|Y 83@a`Nn鑩'A*o͓==<{+ix$x''[^v.GYQ`ݳJ7X,ջ,0@V-mP Yh;Y)ǹ&xΕ8TN.Y꥛"5v {k,:Tm꫍J>O?$\NR)C< +YѬI)sOW8Nvc8?%-wf~RUk}ntnhwic #v"Ys"+y ɲ䇐(! #G(N!qb!tʹ@wsrܾo_ZU5ycV{k+sZf9Q]?~?~}~!Ь[2kG'H#_)~W^b7$pqnE^"Ydne0]@'=>uȽhT&Eh*@p 4#kX"YlA|YǷc29b2ZUSpa{}o@mG>OZF54üFUFX?<AU9'w^ВHwTF0& q цRNq*rp,g|vo!O=c3z7R=yXnB u, .oyB#Ju /~{:V~D+i9 yLU7xH(Sße=j Gf5aQ2T43 Ԯi5/|U: +٨Se xuese[s(˩+d_֮:(jsjkٛ!_ړs\\A\Cbyji󬺖Kd Feb{Js{b4a{us z뫁9#>??/バNx __~YA˰p{Պ.0DhSJPsbw4ϕ\M?HrUF(72b, LӋLsi#3iݦ´hn'VU$R zx,ݻGƪՂ;xiXX@y;8|LF5ժ3xl| i܂ O}S|۷}[~E":1yu|noze~_] qFb}pw:LB;4Ef]4b׷].}U^+M0HM`98* $58+qEJ= N@e{&:0,HfE*la J?$G{h>|'2I$"; t  8 u#K _u-}Y._FZ}`.#X`d~7T{9LթD{̈_2|IvYNzΪW5k~fNOT@1@ ҧ_ 8F%HE;ܰrhRQ9`ywθ29(!yfe~~)\p0Jo߿O1AX)9=j7\6nuJ:HimqϪ[Y46mPV?j%E }=zs)R%L<7zy#?FoXCV0E(G_qG.!c#P탚d'Fk˗Y{)c(Þ^Sr~2=WI`,*=rRFJhUS*»1G=Jݭ<&m^66^L3B ~ j`Ed[_xuNb_mPŁ1ufJQDW8y&c^ TP0h/D*gYu&*epI0meav R^2厚%JpgZîS1,wd3d!R'p]z$D}]3Ghihi/r= m;G{[JVXzf۠q/IuK'ԩj+]ϱk_jPFe~+wjN2DHr Q;gO?R_pyz]G\FݴeMzc {5.8[9 _Iy**\9}cPVQ⠥-ڨa@9ڜRD gȸ'HIi{$0KI :"JQp{xc˞"F94հ?塆M:J6+YJu\1PZ1üp JPO;C8 Gi$4K_%kb(NQZ )9X8Tֹw Лtk!_4L6Kjχt 6x+wROڂDWr7v޶'YƸ`,{:wFREv%>1N \8ČAFͼ]!`H#Rwk[!kC!_#TLNHTD4gnsTu|]HsbDD$O ^T5Ɂ9(3[9 "bs/fp5*\)Ǟt" ʑj`cqE0)vf[$;18 1!M3}%#r5`9u9 ݠڴAeLT>kjn*ABnQm֔sҹ(Ct}b8 NA~Z| 4ކb CkscZ4q?"t3k(%Y%_R76I1"xB ĆrqMh0L6֧,njW#gG8O4htDz:Fíӱb?S.ibީrێid9q=tE2ǫWah]uaܯRw0 nh.Is̰֦Wp>OY&@+1e~\1;K_k=}Y~?OOI{*fQ%|swi9<d9+#nv\,[lޢ?=IsDi*ʢeGdJm_#c]#MHP9hLN]{t) 1s֜O.Ed5M =VJh6't\-/ys7x"﫹s Ǭ)?W?ʠRtk pW#ꦟeld7 dSD>{@L4C~6> ]l&,$h沥Fb EzWD՟I)Ñ޳P=;^S4{@t#ΌM>ӳZ9=3>#}3PKWîWI<1г 1А|@2>oyt$OJn IDATjLH{9b;>Iw2)Yh&2<>Ҏ/1}Rj9_hX[eGiec+f"\^}Qw_n~-N=u&[Kͯ$)o#q`_B^SOC`LIR;j6LuUS.^nǃ{:U>YҰh_Jڶaw8|LmYJzsI<S; 9bػU \"iθLZOMS<"ɶv v8,K ej0禥h@[@3i`%ӎНcT/uƱp)sԝrqEME=Pv ڣϖ0ĵ}gYBFWZC˹:]xcʵQOl֖1^NZ%75g G+]6OtIo@l`+Ո6<#O9WlMy90dUɺM, > 2Z>ҿ1s,'WEjnN8rj.fezExwX{>}bܿ''a=Zzj#5ؑkafq5.^!scH˖ k[$syiI% ddqIQE*pwu^W0^ۿ'~=Gy߫_9sT}\}g߄zw$eT٨}CO?_>s"\__-$Qֲ9ͥR)iΌ ;ddFq2М>dD*-Ì޼s+\pޣJ˟ Ͼt.v\]n?Qdb pra۳Ɨg[a(V3^clm߽S2x5)%w+Y#3YL?-;xmy30E$QJ\C`B2&\ZUi5E rʴΙ p;} .l6Gس?\^fjo󛇢'~d.#S*u54G%n`h߄$ }+u)Bg)s#< گvgljQ"xi*nDk$*s=s|y':TWpAVVS.#gE!p \p xQg$Z$@$u,2ZV#L.`9G Mw 6q! s 9gb2RbtUw!*+@3kp)bhٛBNV =53ȮDŽQmgY(˟i:Fq>׻lHO2EY ax349ԎYSd^X 6Շ㱸ȃb5`NYDcu1ZOcskiއ,"z:<`":"ĦIMTeFs2^H|K*N7V#R;e[GT3_"y-?Q‚ĜHՈ/ }jQڥ۲:\A15a WU|f-ͬ.ݑjSN'sJ(#e9> 3 Z뉛9}G5:^.~'fEH>罛*!OއM .Ts疰׾a(hrB77f9Tsя!NxCJ f7EK#^o׸= XnGhV kx= #={VlNljЖ?8CP"j4A?OVc^,XOP%3>wmHIyƇyZWV]]u\^CMX,-kE!,bq?A.w_?Cӭ78߂pdʸWY4 %%[iۍF.ЄHfPfwiN8ʎ\|Ɏ}:=B#FE^&7IttS7EXokí5Lx*."(Ʈ6=խC7>yxۢƧ|=Ŵȟ-;wyO>w93D8i;')(TQ~}[uQ5<UF֫,EÓL{AW!uI`)1oIT[nsX!;MU 2>k)u;2_3C4)y_EyXpx7;_?Ai@,VJq4s Pa@#[?L~*j0繭f7e'H&Z5֘Zfވt{95I؞/"%W8js$:WhHAY.@}$l ǏzbJ7RRŢ1Ťݎoy]Of/YRcjl?BKȼtƺ\S!|#_?2=4hDhD ӯ'Eɝ#'#Yk1D_3 Y1 nauQ䡧9z@/vnL\]}w-~'{οۜm_,eTkrsjɫ#33E9/s*_-q×d^49CPek)ޑ4'4ޓrdͻNB 8 aw`$(S$-f:S #T B\pX– _{Ob"Hf͖G<&xw#αj8^C2+z 8zrٞ  6#ǂ/ˎr w]HMo KC)Q÷okkӕJ߼f&{ pͲ[WҿUZ^%ܵ_z# Bp*2]( =!)e$=øYNRjՂ.tU'HaO3ځ,gJ)ϟpY'8д ?_+uwpnHbs`D?Y7*6(z]TTF2km;[O!8"¾TfҔ d]e1Dzr 2k\!ue,;WԱ;D&8 |B=OFd4-\*%Mzв4qt5ðW.4\~[wT`䁙h<]@ՆvFq, UXO9rmTY<M ^x&J]5T"ޤ|vfHۑIP:*~Y3ɼ!x1{?_  $3rj6{Q+?+Ti12RP9∭}%wT+<Ϛ+V5[JŽ5%Cdgn?@r6б9R<\wx]1$\|QUE[kʗPْhWAx2٫j\eٷ}?| _@tS.$y&p~K\=U@ }"Cr) #sS~0n;2VVt}f\<N;y央n5ك|!T2Pͷs"mg}]zmp5ʷ E5M9!f-L .48)i!P{KTv "idX9z` gI%;0~7`]Y"yFi: iW<[ø5NY2/B2B^(6hi7fE6/+mlRR"(`ѹFD|'emS,Ղ+\[ed1^0.:ʵ&+sp>v8gj)C ^+ԐH^dtX#K]%h^?m穝DmQRF4E2i31: vT$@/LR՗ku@>fLgΨ~ncv4t4#Ҹ'6&!@aBl6zw_"I~ wŜȚhRf,-ttNӜ.&`ӃzVir*oO8>}ܜoz Itͅ;B}v"ʰU'*\%T=q0!Off кh"DK(O2kƂ# =8 .6tA_g߃O0".'eq3-$XdE E(JVB h%V*L-#x,6kV 5u\d~#!N ny hh}~&UsL삚 bGRg=ʭU,c!OWʴ- ơ/NӞ%]ʖpjP8s+ՊӮ/Ŝ3uDrq CP Dۭӎ"B1uV~޵TOPEy$7Nԙ~&J5*jDk*uA(>⥡C{gx_O]if@ N#q.uhw:'r8nkmgS7e4+<&!̬8h|JaIrwt`{Ih7uzl,v>A e)+D7go9>5??prfT*b6Hk$)z&YtzN}ՙ=|5ja9*aǓb^ak6\OסHkՍo)42]YX垡khǁ%[Ƴ]Airbu} "C#so=27Vj@񹳇+ [/#A )쨵$ՊvuZҰ':yg_u\Я}twkr1Q-l=ӛy-"[N^_N=,S"y=Ҽ&+EBSJ\#8ysАRoN;}MKf&rrM.OdoѴ  vh޻W@08<>1Zfւ{{?ڝ}ޏFS79`9Ӷ+{$v;i >a~1 i!__Ѭ^tΓc=ߟ}! [T61 ;Ic_t͜vEavnJNxoJ%SR̚:HxJ$e}h5-TKսo 6t ;'ȽL%'{EAAPNc^߾X%څѝY1t8U*0ySi)@m4"2yiSJJɢ/sӗ/wc(j~s{yW﷦)qQ^E%iZ\_ow[Um&Ι<-y S$˭̌^FZ>p%= #{V< -=-[6P& ) 4ed{ -=W`++ڼg/h9݊3{Ͼ:i۹ػ;&P:ͤL9{p2ћKҠƧ:t<.4g9P}hpm;6漟$""V#DfoUHyj;;eU#*+eb}!W %}.j M)F~ nb˴]…hՕgctdsv,l>KIbk5e/[ڶƬض[1ggpj|1 @#k:D-CrAUɷ"A0oN9Af$|^UMbEQǁqYfPVb+"ByJp5R’_k{(ite+L$-wmQEiN g^ b%5z!zұV(՚sۃo) :hMA̔ 2ʙ/Ra:Blm T>t-yBҠ%]!iGr/y$tGa?g25yV..M <=Mh^9Lmm/Q{5 8nPvda;$M8)L +R=eg9ʹ ػGXyyϷ;'y)9 0uLem69'/Ŏ)/BK؊xT*~X'rE"gJl{p1\ 7zc lƣ@_^wF2qv| 5fK뷴]Qx?R!K4*{޵C's~w}y.Z1XŴ9L- f!45I:Ka󑱿 ޵~ Gv.MJN9ْ~.\&عp1\W翉 C[$)aAxEk񹐽sN/鸉?/Z,FJt)jsՆZh.U3}yxC2)ahV+}yRABkz陒 m2&uTe*WͫhA`Q`6Ǟ,cR<̑2}#Wg Kec(l iwޯ \otA#!cMa^џkh7':RHeY ֜jm/"%S^9ߞB$S&c$;S24VwHI4#q$l1LD$6HZ#xxmStGB4ޮhrQ6t+Jq> HhJ!Ox*a(Yaޢ&zrk ĺS[m[v5Tթ]P+YFdpx  ^@B/ĉPHb"D6bN+ԹZk^ƥ_xh9u,yך1죷KDSldnϕYh̞^"|Jor__=ӓ1z拹=t)M0hێۙ +Lus# lqI۪qĉe +IQ>x1W,i[nrRh!7qI:&sIU#`Gp-/!;ڦ??ubʼ0@G+J_@rEds+OPչΪUhrL-P-ޣ2ohš!\B h:˪Ѻ5(O94D(S#VuhaGV^n1e;YcswHFGV`]A?:R(RbgNJBݡT &xm E@b"q̚eˊZi`LPD:'MQ gEQ]qL&bd5+WڼEdťGRg!i !ѵi~ȸ{A{lC{m'IrZeO>RI@<Ɩ9xLCc) !I”/1\Ւ,ah%I*14Zw gl;\Uwy|2P)8nC8\Q|JT'~e0% h5Ҿ<qb|4 d>$ bI=Kil|LS97US\NvxO|_Պ~Yꮘ8pOyK+6h 9kW0ɘ. 8,ҏtR,A{GT7^SwG!y%Tj|O3cŊƟ|y\2Zdн.U&9;0hP-"h ee6mg]B6DeurC> on%ŨIIӭNAZÄi7LӮHQ躵2)޼n2 |aEw9E'JNJft#5u;cK.̬2h>YqW"+VUuF_2%OrpES_Wت$5^uw9:V=F,_5U?)p@ZƮUi:18W3x0eU$|1n2e$keZ'kW~ M~Y_ffkbE>CəՊVȱ0\Ի\VHxa [3g7D2t= ,K DE( UyΟjxSjbJ q3ϕC&uzϼU1(.?_=?s<-k4V|6س+!C6b(nu *]kf\*)PwEPtoE“}Y x^|ľfptev_;A}5: D"4ư#.v=R%-Fh.=.Tt@}G<<w>k1K- x]T~iO r$'*cWuyp 1bW\UD{z֊PSIBKݮ)3nEཧ[S cHI:ZՏ@IwWfN+RIȉIDkD&% /TU3E [w qOrP[ه=A2:i.Lj}NϾyn8N{?oeZV1V&vTSxi!Ѣb,$t$*&SqĤ텔"ҩ_!LR,|] `4hdSǨlcV tgT!CxN>#{MD}bJ p1P>T!)),|] buKl6Orބgs_I'Y*?1R IDQŃ$wtOlNNO[ߎ|'6 tW }~9@3E0Wv\IV#ė!Q n/FL)۴.^}>-{SIur{yHtÏ/{#Nchx%\S^rU-yCYk^$`vs3,`sHԀʺ5XAh)vtn{7n7W ]>3P5 >dž$ ?B N8ﮑQ1=+4gRU`bŒV\5;:V{ڗfү3iM#~{(jb]8]|njmG0N{)LD?"󀠲1BvH΁fUk5q IDATCf=}f<U4r:^UmMm MH8V^Q q}h#RH Z$EPl- :}L9%$Yلbik k)AJǮ)`'ɓQSƶz]Ӫ<-$5aJ6N!م_}`)reE}!\ <;%̤76/s!(9i5 {wU-\*%TU$@#~!I$)"ƵۏhO6:u-$Y-%X[[f:0Ǹ 1HV櫴 1(LGJšfx^H)%_~Y)7.wJpz"+κ /%Y NiW[=a3 ;m==g0x1X">rͭ ( u%^TZ|[5e-򘓟`$9?~1%-]kip֌k/h;H3?r!Q3X#%Nz?noe~!㦺޽$C) +NcMu)f=\a#h%Ɂ_kuTEuIb#WW\Ѧ:y'Y@q1.ޯ+=*M4'7kR W݊/ WՎaLGq&L^"Qie^R5vlٔ]Dekt:fR3W5LXC?8ۜzzu o#iɣ/r=iښ֪ `b:T ٣mq_}cGɓ Y&!ňN@6Oju%aL#;hQG[~*G[#& kšDmɈ&1JJV:h\E]3N:$@^!DiH#~Ή?p" )9D< ɛ2׶D;3)s4('AG׊:%_' [ԛ~tؙaDq;j`,`%h3ם` יqYѓ|~tП)!I]cA3I{pʠDOHy(OZ#lRyPOY+ !3AKz7cDj4Q@$WXj. ˑF <@ 69?f=z^In/$lbrG5')/EbPB5Ǜ=H sK+9ox>6| xG&BIڬ/VߺָY<],j. Ϯ8'~ޏt` hSFԚA_!/Gn$oH kyG_Q'OZ@*e t+853^rNr\˼<>Vk}Hk0Y57[XN>a )SY3!*9r'uil-pQ9$Ƀu EQhWFju\*TRd?QV$hX8"ITO43nKs">W&c\Mk1#Ԅ0%`$Db4 ZhBdD %T,Jʆ>rY7v%lk|N6n?RNI1&)3`Q?E~@U>u ܯYX۾LdxR_c_FQ匎H{^D7k %0֪ke,N ǹ&6i/R9%?k?saNJogS䜃]!6a$fF=#Clزa͖{<8/9g [M/piץ.WG*zQt]z,Ln9[]/2 ^rCbwZ9b"Su-DEYG 1E 8ST'MדXiV0X x`5&´KH$ q$R_`EEhZC{D'u`e%IϭnN:@5!"#9, V $ %P1[$[ZD hyjxeu; DgBnpDa9ŨVo+,[G,c7ϡ$Rտ(}2:ݸ/J/4pKnH4DӔ]$g)%~?okC1L9x3#?㒇<= 'D 1p͆{7Xq&3-+<}F*.9'b3O#T77n\ӮjW&Q>JHfi@ d`έ5~5[CycbZ}VJRR~D8!pY6<T3,ktI;qKW?ʜi@7<CcM¤@&o"ֹ9(*9 !(̷\HXZ˅*&{\IYA-_f.ByDjpa.S?^" j*!^{M`aDW>>`k4 !w 7u=RjВ<'kRI1$mIb֔J\mGH*]&+%HDc&MC j1 MW3t9lSjMmU+=zJ$ iHJwB;aK۝ "B( #4!Wϙlq0ŀ*UD!z*ydYK,; >`>IlO;*"H2%`N)BD1 ̺{LbB$Y%`r)1^p7|=_~^ҤDFq2S|=3w[8pu{a B̍E2ޣs.v_F%Wn[!O1 HR3c`t^4˱[V ̫C}ehKmXX?&/.?UzWč41y[æwL$Hq{Tl1*EҞl8VWG舫IӀj%kGv+bnD˽V$]!*jRJ\ڈE% ~kYS+aG =ΜИ= $+$=I,>U&@a^KƵ13;)+\yfț?s(Ұckh*K=OZwqisL XbJx?)HMN &MR`K`J޸MxՈ|iU.T-Dycnr;dH2%}HFLV\c6>3nTr6mK|z6o[l/_P75CӞE3f&a<}z=O+*Myfw@u[%ޮ rQZ7sTxVЗ? oф-5 Od̽h3:c9?_eHwYk}=3 -"Թ2>%ek׹n \kN焠 קL s[s%hVy9 ^yq]=-mu<0pKNS3c7 7HMOK!|F7>8p9 #'iisf.ʪb`@g'с.)~/ &C?hJ_'lp'h/#= if>^C֓JSҳ2";jzF<8 *S!3gqRHfs&Y?x FZtVvX ^h% B1鐶V.cO3ɅZ躃!DSy7?x"&C T\fo0'$?KD%M"Tb'Q.Oj.?ϼ[a$K[4}vs+r{qmUfV^)W|I-f3v7~=Oz}C3qq.+%T_*Uư_ 6\R?>7Es4 lYbQ'Ԍ$<1sso8(F[7lX<')VgZ-=3㷮Zl{BB)xv$GǨ|fÆ;"Iy1U]rS92LQ(:M=0Qpj,a8[ѼlUN?}ײbZ? ^} ͚CĈ[kD㒌VIU quK S޶:pF!'lM hBf>"=UÎS,Z3[ERUGRvZ &s 7 m [@)*If܋2fGH7]mRmKs2sd*#I^k/?ɣG|ij募s{b 5TaՑ&L9j$|u,"W$唠Yv;kwB$2U6/y| V#6o_a󿆸 CZR-,'U6Ssa*)f>KAg>LՋ[WiJ!fV)}@^TDE"28[Ѯ7 =~؜14'qP#VkOna״矡ZC\{1S+1d"ƈ# i*&R\8zb(0o"*ԧfmqrv*M$b ڳGRݐbijUwi e]2@aj)G(>ƨ#3C@5 I)0Dӝhє"F^$%]Rf᳑DiqU4B4TԔt.QRg>!ALRXڗ08*ɓ"HIRM&OES]Ƨl^)B*qZx:sIyI u#Nǜ8F1Y-;*!$X8=[RyG>t |bw~:#RLrƕ q™@ynx ~uRRrj3#O,+Erw>߻w湙1ד 34QU~g'!ُm/p6xZs ['9؈̚K )B%t$Q3[!ܛ]T-ln%P-?r{VL8}d©N=:[<ߣ< 8w oyDڧ}~ >3_|^m⸃Ӂ(%EZpRN)HEgr/JT2'Q?<1=ahKyӊJ67$ELիM lO5ؽx!Ӈ4ac2*YiSHtƽںF-> ?~w l63 h?׹a豶bHakA~4 !1]S$?Ta[Øy,i梅(8q86d8t|LJ g1iLXSS:,Yl{ J@d KL^0CФ60/NLC]GA%h+wto& &Nqs(Zgk@>bΟ) ǩ%՛=`3\ax?pUؚ1&\"NoHYJyθqDi9>`~^(4c +j\d#H qDZmjڱn_YʦS_Y %na߂$_6 u sZQf <ัOdY\pze`??_z k 'β(׽#qձ.eWYHj`cq*QT%rr1]I@=V1ag<G@7ڼTՌ}3xn8 -)hPI"/5W|{Ya2?5J@7NfŞ-M?~#3Z5LD^2#8e3 s"Qal0e$M֒{ƽӋ;4%g_2N5I$%L#V!w 6,o˪1$}yS>=K`- N0-:Wz=klyx7 C)cJGIH%Yo'?Uַq9/?p+Nii1'E~m"9с2_K״sJR,iMNfGǻDfRpǻ|M'|/*V,1 F_)vLₘ'GFT)I~TDlldi}NF^;JoDw)Q>;޹?X"Q,@ʌ a0a6&Q>G@#yn9`^-째z]ϫZ$sCw{gymj1yJ]QΗ@D Ts 6ش_Ϥ٥\ pK#O7=#uGK)W\!߁fo5s9ʺ mㄆ s5Z303S}*ǖG)ay &xW6bK ?nE(>l2#i"ٯڣ KjG7:6T z7qwEگ4*WܑdGD12' HfN%ճzu_ xJ{PPm.2ЭV"np^2Гh1ܦ)Э:\UF!=ɭucO٬[M*2U=hGjˆu1 !L/1Y垒JY" {}pZX4}9{6*t` [ۖ$5 y=AxCw}~'nStlZ6Ջw aŊ]7$.zXs?j7Jsբܟ[RóK*p~iR24yg @V|Kf l|'З`Ŭ$eEYM(Ҷe@s{.f'5;)^*;s$*٘StOPQ8{z\q%/t5[6 ٱM5-=[N2TQ1as?Z OTF*g6'쉙bOK#>0az~?k> @H˧GxEȖ\clyGt+K܇mL-s.u%4 K2ܶ-<}7Mć>',&4XiU~`;z$bA[*yn'~RM ʜiaff˗u^nj1LԝmНqqD6帾4^*7؜TL󊖞^qN@w9(Ͽ= Oy!bNJ=@fX HrH\fcY>{u*|f-§c`'D"`:J'1f%kNr\e#B#ޣwjҍoNJ4tMp&n&Izq:p$_G ~Jl3l]P a"faNQ}iNĚ)_R\ضEacu1aV@@Y9ȕ*,&^rx.#B: =L(cmݑvF-gSC2vuʰҬ4[qz1„8iIk P|y)jz8\=ņϓ;#mf$.7&K1jdi8}yf :þ;*σ3G׼Mx]'bA0(qF,c_w?0VHs51|?ACCy̱gs3(ƧEp+S,V$EĞ w̪mqnˀ%hl!,adbYa?0@BX,0@BVOMUCTUysM{xX+bso̮2TY cǎ9O3bAN]'r4gŶmXsnKzǒE㬧KvU& (J<'*""kҗ ,3S)=E!_石c_wۨ'k?|/ geMb-D+~GXwΉk2cG{Z> Y"aɬ]: @1)Bj{ YAVec 0z[uDZKX {#+l:H4{Ѹ}!C  !ES$BW":o;}CR莈=dF\U5ۋ't'"_M>| GӴıǥՌ~jzh~8zkcbJԕA,w fadqv{__q\<LJgyDâqӲS%^*T6J5WFK8Ӳ`MEAk$3DUk^_O!?^ føk[3VkO3p6<<W'䷿MlL|J?~@ޓ1N{(p@r>nQ'ohSIS"u 4 in2;oxJO0gW1"[Z"_8͖un4:yn4:3bpb2-ѳeq~M4߲*Gΐ^ 4<1= >|K ȦY% St䳺]֌|u/4B3!mza&#=ig;_4r\[RNDH1Q9 g*`)LLNO-=)IyOja LC߬ Dc~dˋbHK"s0ՂdkR1[/Qm$fXx89`?6`E61J$k1)@X{3n/'TPu0\1otkĸ=uuNjEne>9>4$,q Q~Cic]Ge,O'iD^@T]jNFQUUY%JeC.ĔVlRpƏ\d24Vx۫?7*5LAk8^N"p;-˓LHHڔ4%r1Ox%Տ18YY[ axܷ݀E?Ԑht^Ւ0c<d]}Tź]X5a 4uV+kO^k7!9X:2!Dr@`4nfjmG-PSx҉bj%_\=||O0uS՟<"rh胗b= לJoeUrvn5KZz#בJ{w撆q6C)C~n$& N97s?G >{_+_-94HJ41M9ɐq`+'56&*5AJx(&;Hdmim`d]MU 'H0S{}r,h`) s|^t8=:*툊R˜v_~0l..,}/;hOHRacpG!I-]>aqr!Ρ59M̊z׸v%78WcluonO]U+ abѴT jtWh`JH;Ӝ*8g&8zg?)k}`յV#hFՅ=K.b [*:l_<Dt5t";lF29-uOVĪv&v8K.nRx H THIw !`R$DO]7$cz&X[0EB\Pǧ'?Û+8CTl8giH0 $j),iKL$lM'6!uZ4-cmQ~amYi"I8YXW|{?:˛!gChHGi҉LSry׷fÅcIQrK8{/D *z0 Pko'<*I>9Gǁ+<#;6ب4Ek&+hn3br{MoGo\KLV:QQ0x߷4fUڈ—P~j\YKw>P+iޢwU#4Tl^ՆÐ#, )$#9oc&WUAt{,RSu)Ox@LpMA e87Hc"K㖶Ys]-S~CRt'zͧc5|g>?&m2Wۣ]r443ꦖA]qX,VA42$Qg-. )b͂cf:c_^3Ĉ{N';gǃ>iJA) גH0T/~Vқ[nvf`]Z? `ILUcN7P'JdM߼"I\s ^017&' j;G xg$Pk+^LUZ>Ӱӓ[_]}ݒw|[81֛=zѠdq^/&A+Xq231@g`ӥ 0y9P9Y~_ v?57<FTTpEHkK{1#]9q)g(]kr:b{5ES+KGs.sPnɅ@]nqYO-+<hxc>m8rx^ihY|<39R|G*FF<\s뚷^n ԟ]INv.Dynx_]Of%:iwʵ9z\`e?0ޘM)E=fD~jb1 XYݮh:&i)dA*q+ZiW0%d &O=to`=\q.6el9:bqjT88[ȴjq).$1AXa kKd гXt 3jLK]rۨ?`-k)% n b޳^?'\ 1\R-amk:{Vģ({u~ A*:+s }čtӊWFƯ]{nU;>Ԙ@!P *\x7C];{aG~O~rQdoM6(sѱSQE!`0&낪m'ugG+;gST8аd'C&ę#x}ޠfĨablB7%n r2U1<@!Mb'5[V8n^g`^W$D|."/0wfN{O{擼ï}X *iyF(5->P3 q;Xj )z|̕?×/ˆ<33cngQt:ȑ&rDȊV^bMi:sz\*eQA5.znRcb)nd80qKBquF-L!E;b1/a>RBXCdB z3%L2t~8n%_lPā,&N߀4 )P*e֒@!V -i4DC5 .1(J "KBDawCݴ`\ӅaT-TX}?) Y깗T=L~G۵R7zHl6<$a1%dMTD~e{N(2^Ln^OB[Hw;Kw_6b矍1~w/EZ[1ξkkr$g+ WW{>ӯ|9~K_~hCx墜>Ԇ0`R sKݍ\#x $%Gb7)V iBSZvoOl~KcTe@l1ˆZ zu>>RYqͩʫ9deP6% !GHܠU]xS N핶uYS|:C2Kvr͖% %xKKϧfq3$Tr]h{_7ϗ w*W5]u.4}?Ox~)&)Q2 ؗ~׿ zwC,ÔS<TjF&]5V!zLq^kk8PҟÈk*2f0M=wZs$Dn<I>"1ٛHIop\HԀI0~6@傪툇1z _i٦5lפt8I?wӺ/K fuM^%VM SոZ8nHOH?RT>C1w" :w#)9 Qz~$;;.ːV%uȭv|5{oŎ[ؖ.Zn s-q1{7]p/^_nI$Z\ @L9l'C06`0pˡK&)L)/}T;O/19Dkg  fKG32g{ g/@"LE&~߹luh㰦kprzsSY6Y1?#?)qW5,;9*%Grm}1\r@ 7AQsCF I[s(<ɐ4lQ/P|sl0HР fSrA}ݗ<4d5qǎE!% onI;.I5[n8Q[lEyn{Mǁ̆ɯ~F0,d? _U]\Zz+|=ikoO<##~w1$;}C*Lf]lwt2cd%L~xr H!%cs u1M@QQF> R/sVϚ:(UJLJbV1@4 e'ɕ__^crX;x׈ |tl7ASTDtJJJ+b8FIgWa^#MWRwPV4nLBD}|wF#[;e`(?wP![+sM Q J&M 1͍hjD:zA{ e:Oѕ*%j4DkUo1Tk+h ‰OTUG43Ö9y0M'5%Áf?:Pp&~ijRP%%;䑈L k1|yYKT┪jT0*I5{*Ԋr1*+δQez AjOKu8K+-)Q 네FOWugm@'c^/EHIK/ep_׸jk5$ȍN,S84gb}Hvx Ѧ{lvx Du?||~BR ܿ9i[Fc1 'E`k}?$d~5* -Xu4ί9sȭQSyXlFsO[l#,X5Y^<3H85j@ҳ\TDvɎo 6ɍ]j'V-Qu!|~ͨ~{I&DN憓"Hys[1ҵ- OO+ל0 X_6˟7K_9k_:G/7iYS9flE8FFQlJ$k%k1"TAY(IQ'g)Bsa*A1(߅:_bX' 7LFIW΁~ q% ndκfрs-8){6;9aH?V)\aX|7) i[ n6LGL{q+H0SIlkW|<\SYIsSObH;!rBHZ j> c*?`m CDBt+[Quϼ'lu+`w"t ?w>qy8zFJ4!(Q^sDpѿg^uhkG%d#kVm[T􇑮[A0WU_ q51q\\>,/bݣ>i;(07B=Lx,R.#؁q`l7?b}U{eKԝyQ9op6掜S"OC0٧<SamK]y |%{r5{:ι+bRSjAUv]O)|o5 &f~$-+v,*Ռu>?sɜ0 |Tsne`Q&ڃf`ŖS8r5]_g?}$YiH0ҩ4T9wLݯӞ?")Ur ӗ690H%}SXm"h? w&# 9Ҩj4edtk#< %i !#[ohHTcY-1<(",1U (.MЦ8%Yd!0gp1?rfs C{#R1OŶK]iKeJSRŌDӮ~昑vz.lC01ɜ|RNjlqNs)RFMM ؿ9+U$yxݼ LM x{1.U cZ[ZCe-8ps9_қfs ^{^\)k#] T~R$đ t^PW+B>OgYDS]e1M3Od3ɇۣ4@0XCpκsY\p+'܁-by!h:9YO}.hyw1$VJk#mZKzኳ"&S3gUΈU!eY\K(ugϸc>`ͦ8P5##5-}a"'*=$7?E/c*roj9Cg"V6!7 ٰ""P| %ߛ\z68ZxX8㎜8l-0DVl9ᆚ hx]-5w=R"+b9Hkյ˔>q%\suɎt[1tWWJg@j I몳x ԗ$>$qf䒐P69YJ]!!aM`οtmLRmh [?3 b&k3Gf~e9߮C5-F{doj;:}6#D.qtD&ԥ[lo&`j='y+³)bL_uJzFTAqdiJNQT 9DnU-)*a܂h1Gۊ[n~{MXB&`l-mXK=撦W4+<WNc&U@|}I*ΐI:̋hT)9;0wD^5rukTU.pLw NWDg1`X-2E^O}Cj*9zQ\M$_~c䀈q+s#0|3J!xQ:b`dLbI|iϛ;WU*kHIV%U}oBsN8%qdҴ[sqqbqWJr"H%R.>KfjvF" |l3hdtNq:LjOn;| ňmTb?Гػ{v`'hAJBCRUa(W4=v7:yDEKԔTNI|nIRkdfQa=rnj_nł1'Z)R'Fۉ@e9;cٲ~siydn!,sϙ/FgQ{BGGp1MVKkªpK@^KLШ:Vu? ز}SrۆT"Zs Y#Ϲ 7p FQ,ױdǒ-=- 3#~zE(sE n>w Zr(|]|Odž5{$UeM}}àuɹGYZVZ67hUALr=(0Cۛs+(ǵ8iJ%bTHedn7t1) $P %fI&>7)L6VdyzD&M#Q(~4^ FXaCFpKq%6IW-KqcH튨rfR_d}ұ.@ˤ5^}s1c[aO6 ͺՊ'n{q2H.1iUl6V"{kQJH[W%979y&!HU84m$xfPD*TRIS'4 ߿|ʈw?U" ƨ0XcIډo1HbؐҖ ݎŲ9p==8Sb? \rΚQ_A!mY^[K,ρQk!+UJB4 v! +Ҷ,gĶ沮AaqzAixl"c쿹#_{&J֋Aĵ(#~ٲ1?N 'eCϤ$ l \GJ}q)Q{/uf]]1Mȡ#IuPe.)qT"IUFb Xj96W=ak[G})F:FdF,yw`Q>ŷӈV%~V` SyͶ\d ir-IT{07{5 51:=a\E2VJXg\OwD옔倧+lyf]ƼH.o>2[OUG!C!T :At4H@sje@X/Z詫T,=~x_SJ7~O9Uَ)\.][/7?}8%YRIRJ ryr}\6;9O:gXs9`md85b4b `<&!PU-U]F)4zr0\#ZӽB D^ OXmG?Ć dECp63n1τDJFЀ!lHZ刁0ssT/_HKV'`ǎQA) ⼖=3kr'Njo6n;Q;Y[CefAe*ÞG#bTwhG[.Y ;zy|'mG\^>-LzJGGE&=zoq,OˌgK휕nT "MvG_,)KVOy-sR27wf?&GB\kfin|wk,;вF&Ǽ@O9mW ލWUrۗ8ey:ujQV\/ުPN&y͓rjwRseG"J}.W>OoO~zAVhTEY 9|2/eAj_H[ɡHd=j$Veff=$!yC9 bAjM*mK$MH&OG}Ti"}VIScjtN~Vx|'H9a#+1߃k:#Br˚48g`<>'q"n,)b%*J浱9Qg"r_stvC!vD<6x+Ȧ59uRe$bGIE)Y 1VD| cS`k⸥kvOØ>yLcyq̘GDG!NL&l`qmBu(4ipw} kW1 {WO>Ֆ{%@<0<2 j_ɒs6DZdrsRZq#X 3 #%T3,ųz6" |WVϑI#=A;2 nɎ:4JpsI.kiKϊ-o.@Qx걅֩q!MSδjkϤ@{񜆁 +hbŶtX4 bzk4/wn2: wDj GBR-Rn-_Y=y XkV R=RN1" USJ t* &9O#3'ZKdž:9TH* XueTZ  ֺA6nmxkH/֘GNߐq<#)DǓt݂w)Vw}|H$Þ1B H钷x{-A5TB 7%W=D5 ayPO">jE7 0TVv@1W]w63*+ܼ*U1J'E< {H"> Tu)S#NKlb*Q=gQ,=!szy9ZЈdm 9{}c-UjeTљkؔXX #iypvB iX.a7\q {jW\s,?~y d٨Nz9%4^ *ódBƙT `66hԘ[\m6|d|I.k3OMH?cދaĪr4 ǂ=k6,Tդ,ٳ(y'yzx|HCR^ar_Aɉ{F./:RWzJ_'fbِy ,x:k0U+hdoc%K]WT[4ˁe;;:$kqռ욃a۟'/ȡˁb-?wiG/J&Y%z X٧=-[VBܠ QҖt!.CH@Oy6LT ^y̍}”2 M g|%>ov킍Z.or`'yxT 3@;u kpSNBfϯa>pRܧDј r^';G,OH^,cfߟo} s Ht εb8AN"X9೤pنYXH zgWUJm/)II[RHU Ʌ$+I?mpV.p00VmM- ^j~X.G6=x_OcRk/|NFEel$"2r>ؐЬ3+Ro |` :wLgmI9VrijVXۑ;+$p܅LJ}gі`;DYΨWIpuUtIX:e-_?keԸp"0H!xs>_6>Ai-QC19O$]1lVfH"o\/U%'XꮳHP&jmQ)s-9GE Kp3Þ8LDsXa*xq8i'Enςܙ-6e +>̦﹍*LS'^i[ *c|M٤OQ$-ՔEE?^wxDU#L4Y4ӷ]3GF\1?KNkHfrֹA=g]v A Xg ._ 9^Α喙s,a<,_$Ʋ%IpoܘrzCWSwW"A6\"hVZ 6jDž!@$h D@zb7ƮU1Ȉq=M s?DdWUE2#gfom!͊,#T#k &AtMwz#v׉#X+ĺ@Ni #)594)!F}:\0UE-IVE& <YnwKM+7|AY#H #;F^L!۵!0o}\Κd%t=GGv);w'c^ЌHlcyrroCX5Y"p",17O0fnOYBfr9">2`]VW>2֟exo~'2 6ym z(ķo6ǒS[kie-Ǒ >L3Cu_Ur g(`j \2kvϾ|g.!O|ߕ_l}ɟLb}ؓZ9ܪ kjv3BSR18tw[Y=* SbgH1Wl&9vrQζ_u꽢8A[Od69r*F}Au~CImYJ&ak) -Lo!/թVj`sF+m-{_lZ"bjٟNĐc2a}nk{ 7[6 78W YꞐE׷@\cy|8b,ht͊-D9t"K3뼹vp*W[j sV%}ω1nkҽk:N B#$'*HF8Я[D91pb =)U`Vz Z%^omnH/td]s{kR8#/+‚YKER^o\|EUU 3]Å`奅 !$l?mܬG$T~9hЮOXqviC>=q(r9(TmG?9\mHKDzORPqo_ǟ7L;s8˪ D6SIoz9)J/͎VFp@8-@R\16'%78g<}G 7HnUԈ̈Wnlh>B8񖚮$x +fSJ = uEh0s545Xy2p ICPdߙk ܾ{*8!"]~v-/#m>aFpSsO)k۩ƿΜb[{S>][BDW:UCƭ9 v5UQn)q%NN%'\rBϞwy ԧ `[&o'lJqf]WnݕxfP5A+WXu57]燛k U 'ZHFZJ 3ℬDZJԜ-|MӐ€Ol+>ɸXzt?5yK{j_lJo49*5`6zFfmK78_B˿pR*rٳƍ[г?ܐԓ{qyo#W$Z pRrcA-Z@qu`srN )s|tB9F7%R=S&Vq?jG\XQ!eQ{k=]=! IDATuZ4+vh{1<#ؕN`yg3(s?ՊרZ^P[˺)7}_ʸj,B~ۗƷ,OѽU)`O˲SnAtMQ#,T^+qΚtT(~Q}5xι`O\sLMg-s^ ˘8Kۘ#˿ ^P{&.9r#W @Ӵ% X춠, +]NT]?;ZGL",9ru'b-V9Ok,T=b/Yl%sdnls|.Nfks[bKN3Glov k=9h#FM<?6n܂XI ivvrő]h)FIvɐ 5yhAA#^2Yq MC*gW5|_58 4pM:> 9WKi\L''8^`/y􁬉M4@Uf#IK+ןyzҵWQM;ÅޜQ$4+蛖f}+98&o>:ȇ$ཉ_y#tc;sbwۚݷf7<5j_ˠ[t~x7$:5+XmsyM%AJܪFq.%kK$-ՠ\;Au&9z`('cԟ#Y±IzX!UaWHrUTZ5{:N,IG 3&@ sNdC,С"l*6Oh[T!oq1CI)Q۞1'ܛ6?U-bK1.rܮ=G<>xrg üi4&Yk ŐEcZ u <7HME"u=^?Ciy:5*0TIė{aPzq@$)R,4=ÿ*e whͺ 9o|˅R"tc<:9C RSɡ;YY4]K U@H%ZIaܤS"GWp`y&4kZ gdItÀΈ[LA.SF+S%TWT%9mh4sԷF$yB{G#]\ g5E[odsHF}Sy>WW 93t!?a\<#qjEt7;Z,Lj:$BS.8S[Ov4M>@jɻwȳ[o߁)>J^1905P͸\r|PA͚m0r|^g- :/޷^  2c|c>}9TPסa&'Rt`\_Z&s3 u=;͚Cӎ!4z# t_}D#Py0HUQ #G^_?mfIҥ0zY`v>fƶ*٪۫ <7Y:-L7ⴍg!o4{\oqKLZcqgZ O&cxy)}q,s3ywoi ]>߾ͯ_3`z˘}ݟCy;PM&tG!''t6vb31m{{ÁL\> U F$[1@wxo1\=?3tRJ{YjH1[8%hy,+$2lV8t JKz&u9- AKPXռ8ipgJӮﰻ1y"(b)y߉1ߥ'U(:oP%M qJ"Ҿg9.CPij*VT^#ό|Cp->p3VHc4_,UVV40h֎/EG-yPnL5&)wRxSs]YKNZ `X~hے4h>55֬kDaDQQi_FP Dv׏ʽ ptzs݊a!.j^(}adA)auvuO!tL[ٟJ{;2jc4=k=yfk<1g9= ĬB(}0+G0;+o.Oj:a[ W}RX,=NeYjP Jf%'5oȱ(!$חxɜqܙSGmA2Մe^>(V%zOwtZA*q&O.J`V}I(R[Ng˗qtHN8=ث8˞1erтaO 9MƵF9>a׎k=U=#ҪʲI ̑\o>Ly+MVg&:vRK6 #֝jmZ۞ޭujjSϥ "Kc?g< _'|E 3ULH~-b+2R[Vszf:E: ]A@nXڜ?ڮ2:\ceXjRi/E0yBPKj@Yw঴&OVށj_@6ʌÅߟnzNP).c6.PW)bKZ[_hwxsފJ[pmAǩUhsNpJ?"ZNHF*M9cTCal᜻MlԄ@E \GOpY#wб# Al*ZmTmksRp8pӅhh9{>P|ΌS[!@] qj}=cln_H]Sq^cǝes V#\{4kك5WtJ2䭊a6ZQ?Pi3n~=nCLvq0 qb)#@5hN4}CwJ״lW7ӯedZ꧜ӗ|m5ʵ8qbY^kϫRq U<ŢgW`kp"F*lӹ,rZuNj*Fs zNA90 Xq 'Kg1:<1' tP~yǷC)\0DY _B}E[R-_6L0w\N9[Jpi7ű-:ՠ٩ֿHVf9W&HP)fºq)NDK%Vs^z˻5X(Ai+~x5 푅PW㞤&Ï9 ԨhAG\s9%>-G RX@qՈT #4+\h+`4KcdݘScM;pIp GV8יQ%w:q$"EMC&ごQY#.JB3phFb˖8fL)tlΕmsi#':שEi l{tGdƷ|(EZȷJ[D~~vyP?4~wh񪤘 O&xq,r]Y6x1滈p}ok1UϳǗWeЏ޷-e&2ssH-~2(V!+6֠!:eY'ފJx>q_FU֡m -T;Ugϖ#<z&:hdc=+r5U8 seiߒxg-~?3&GȮÜVpI h5+v/3_%JnVR㺖$ጇ=U2uR3^ƝD7*0Ӈ+rAiYժ:sмϽ%_?/cŢީY] = 5&-4CER r1 fc)joߜ3M͊9\ndyd*1S@ۖ .>}q#қfޒR]FoaDp8~r0U|fYAS0gҋ"9lN!B"Vߜ;86fM ھi$[#:Oa{ê3@pCUӜٽ*'X=!hj5-cϙ!yK:ub۟gRH|wB<@c\wBO7"+@!w˨oR)u8ZɬG9;K=┓3Gin:g"ݺGR ח9:Y|5^ˠ/jk-J/#ml36Wxw1ر,IZXWsN_OnJDk4`@Uxra"JQ|ds.gDw5;]kbPty+n)ڎ"> ~B5%؉4&E;UK=7\=H\o) U伝+)&3-%RqZ.1R3Ys\F|S- :%oS'ЬΠ;GѺ4xUhk>{s||_QɇDnȘ3 v}-}n$1)G5aOR>vt88>;j{Cԗ/Yn"(2-s y7JFʧVgTFM!mYw.mJs x љy_k3KةjʅXRfێ9WHBu;A\wW֏oҕ#]ܖ8U-lxg g\sor'|xܛtcH8~̻zޅi="$E壼B:HwC(s< >b$0SrXS.u"I1(=4䙀7m3 C%37+7b7aCґaͪ=6jB͇9[pt~w IDATQ!qX7} *I.Ytk ( ]ZټǸ=݁Qwlsϕ~UBH@\ I9_Y (CCKyIĚS54H#[1 L]JyBBՙ J\={ 3mCovxŹ TTs͹M '>= PV["k}19sڴ dt4hw6fkז Pr7!v}c9D|C:o&ֽƑʺ_v`;!$ݘBC4%D7l/g5y /i,"V T&}z&9]񮆳WQ?f;lJ % "yVvHұ5Q⬗6K?P;K1׾Byc~(_Iq3{G-! Lb?5n9*?\wp*]<-`T}yy%Z~!h)1x+ԛq <,yd_(b=r^ώW+&Uar}$(~`Zj!Bx  ,8/U-t]"K_SםVg7mz6op+;=dbJHZXs`.m٠N4[Ī! f "@Yy,;PmS nAV&2ytoL9#9Qۖ&=)ve6(F_wlYPxb{'W8hH^J2K by^?*keO}Ũ_5\ .mO菐pFnZ=·Q5M@QQ/Yu{sWȘ$S7 ~ّMo@aN](lHH|(B߰wЅIwNJPO?Ӌ^EI,;~it].SK$x񺣄{Ԩfv9bC/G^_t,œ?nȻ$q pƟ68'.m_܎-?L eݹr,@%XW2aܑ]˘)n"[iqn'5,U*Ց Yi֭|Uen pl+mVM6l 9kW3P ߪQ7biRs7ξedEpCf gc T'і+iIxG[ O`yWqG7>`S~/߯%ڙV%[@2,YYӕ--Ҋ_XiwWAi̋n5J`}/ܮ]Ϫ}^nZ]l6BhWh}XA 6qZ}s'L0B¨O8<ͬO~DXy_w.V vqGڶ% cøeQjfSJq 8BJNѢ٣k:s;eO~jLI d p|r󋧥{Ie%)tʢQ, rbs0(!$qkgeM @yD'P*' Jƻq[8o7@fvKcPvC1:!d-#S#.7$pj64_vcN>$ɊUp%GK@bi|  5 8j:tV+nҀmC蘏>y UڜNj`/~}ڙmf=a@W&,n**}U ټf~ ^KRdW{5@31mD@ƚ,nn_: /w3XZ S#;VSW|}/pU?v hNպ*pH3usdm wȯ~18Po5k(ܪ pETCWKCWڔž_k Uq J- Vgixw=|1`f})gR>cL\OJ$k!mΑW gz` ^X YHsCor=rDtGt#ƶ'57ү1-!;n~DrRʕ#iB*N(.KCL(h:L`)*v\Y5D }3Λpų9= ()=k-\# ና_Cvݒ}<0=&#t8@v܄RIn5 Mp,XIcI*lλ "eV`pפ qѶ:է?n`)`$Ox:%5k"adexjzݖ-7z&ݼ}_dpXFO(ۻ;*$1}нuzx{<'w_|s_2*91i&bV/oט%@W}'p]jWWsOlMVeKɋwk8㛁=]~O5s,}ד bkg$neMm?{(oאG[A|(uh~Qk9wV1Wۖ8 3 ٜM/+YBǘGHB-Y'f,|~}@ d#Q䅥nb͂ٵ1j R-#u>#HqoBܪ!=c1^ӯiNCsLbzMn1Cӷç s[77P\qTK6ͱqTâW-`sֶFH"hPT!5$xo9"9=}޾39im%rmG*-ݗ!X DK?R ;TF~>{`|pzMFv8F, Ɣ߰\)Ϙ`ȯμvsߏƑa'N,:,ٲ^pMȎl?]^ۭ-[] 4  H&):k)XHS e)E9gai8g„gH}߳cŮ4IܰS?pgRx%f˚+2Hχi?_3\4GttJ[΂y7}_'Ր 3XݷFAA*zтIy|?eI=1tuwV4V+f$5#~{k=YkZaڠb Ɛ`L2/m_Rzt=dMʓ8hihX:ᤒ62R1Rﳠ\i}ISd:O;EQF"t\iJtcX#ԳC4=D8yM{ʓ9}N6oξJZ.O N? E\"kK-kq.`ʀ&i-s=-7 />$=Ҵf49 J-Fhc!ဋG%3#o#LyB%c;=Ar1DD 1oPQΎO ǰIC$;!㣎F1z͊~OL=4 R"iƇ>şc1^ˠsͦ3]JX-~;Z^H>Е~y-+Z]̋iowjՂxE=ԨqW}P+X֩WHvҾt˔ʵڱ*;t:g迄54ۆJ+[bI!r$+^œ5Mq~*AX@ xVn"gpto-'Avt`< ^hɺ25‚x'v1S"xhCCLpfg4mjղn;1!B`/a #fKɪ86rY5X̬k87~+Ԭ k)ϧە&(#ʵD=RShtge;-sԵK5sd|[1nSoyn}| k^PI-ts cpeVS>oq|wԤS*:;,EH; ୕k=J>ge}َ?#0O4<;iOgv`D,J)"pH\."n $$آm{μ53qnEu.!yIׂ@nwGxڣ݃D5e;*Ι}xg( bs3U "Uet(2$ȳJ$AB+{eF(.Ȯc{kUss1Gx"ϊRGѢ,@2B @0^\O'8;'<0!`/&Za5=s`B\@*lvndADxYHD(2ŸCNM@jg."9:yGy2 J0Oz}w~>l&V_cčh-;WHZ4ExHPpAǢ856_#O֡čXaC)(k=۾ߵࡩj@"" BB7F@7ZʶOt\/ Z6\r1LYq(@?K[<0cLX'Zz^r9[Z_yyGWL3f<+^Q+=·\ڞCÄ%wv vTJ=b'='+jωJ)D)zz{G =~y~s{3ݔp+C 6?q-B%I®| ^ T<nǮokF;Pʂ$J@H JYd.V}d*е3r0ۇh(R&'ciBHFY)Ibzn0? YA}%nГS1kP} s- (B%hDGrc%w1Cp '  JI 4)fprwGӃ@wQ"]JV%ot)Akj& I[>bGK+ДuŰZ6JMg~֯C9Aؾ//Г:PZ#'8Ve!ۯp.PUeBzOQklp.v] )Z!x[mQ ]#Ȋj҂V骈TQah'm;E*v$4$cjw_>m'_GrzSL?.>@WLJO\WЊ(i2\|cZ7X醑!`4n0mj8(T%B`+IoM, %R'~K }&vO͚z簻 mi&(8fVxCs+RĦ@{"@ϣcK`Y.Aqnkwd:H~)-}= %NN8+X og'Y wٗwYcR +&8M٬tcG$;Tp]L5Bt^D8K@{WhG'*΢ ZG %W3́g–zԂ_ X{,HY2#sYH69Fs=ڼq?wauD`}݊Ygn/U~c )1^i~q$WK98|ޗ4lXl&rb')Ϗ}T7^1`?-O8,!xa@ F=_'є|îzR%u`<uīRstmY$U=dJ$ޱM"2q61IfBlWOAzf28 v}A{ BRLkI9oI?^_!?!˨`ZEyL(vT'Jq?9A~`LGؼRtgg ҂p=zM+B8=2ݠ$2>w9G%':4 uʢ@jAIDhx*΢1Jbbh}1G?w osdDkl9=:w>V07<}rOz*zqviQX#Fh[dV2ok- EPRB(w Jα ]h:3 G`.5XOK8ػ~zIZ7t;ђ1j;TBc0Z IDAT[ٰ(ҴB 7PE]Z9BѢB6veztOCo*ͣ fkwr.3Ͱ簾uElɌ.e&2:?1SkC> p?~xtDr*r`P%J 0=+}> gy+#x[yxyTI()AQ:Qd=8bXURE]퀧pDK1aZZɀ#ԇ}Hb1Wp3$n uI@*t6~  a"V@BuE$JJPx RЊh 355oa{pqڟvLxp L j`M4Z2 2D{/AS&G~Re!_A2-WzۏO}R~tL7̐g\[d_}fpq P~m|e98L$XCz~)j.}iQBa7Ê٭7RŖ5#Ji63ksO@yEC PȲ}.}x+93<~'Cq"mLlT3=!Tk >ͻ3'!vJ)qBJbpaܤ8}aܯOI@6#^vrG'lC RBH9y̛qdޥWL=OnpN. .Wx,p}O,h3N QE2a)' "!,;l'ܽ_F.Q1w5q"NY`u=WiPD B}/շPD;èi%IgYoenbnm]cD ڢZjF }J <^(2v6aLذaBS.۔8d7-PvHUJxȆ)5=|,9 <;Wy)mgl0e CC%޻ލǫG}_˜^.@W E54l|vh]l$Ydy;E{P]JLnb~'thQT-$2)@U7~޼oUǙoL@>?C`4]Q\(.Cžh@xoe{8#!˒a4q%EG0;ݙ/™]~`>Ll֔Ou-9KVKEyN=1/e)W pDQF?|jW3..ܡ}-Pop& C!E<(&QQ+nkN/ϙN+6m@‘x޽FE@CC48wvj.LrUyFaZLfoj]Z.y[;2iPݾG̊ v1 Q]m(Lk`UY$H7,B6Dr=UY y( j-[cP+`aR73Rh*5n[T@o٢ Ys0qƳ\{WטTV@Q22gIO*bRUa% z†f&`N $Vylڔd_~9hIX&C+C1u8\oo_:c?k(G R+ʪ{XQ &_ ֿqEMY!yF]Mp^ 90fD ZjQ )+ʺ:&gwFEdK }P$Xt{41 푶lj aS[gc"d(U0`i1Zl3PڃFr~br:/ํ Bx'.&*_FKD(rȗIԊ#w U |`5'' t 570 ʽp2 ZpL /|YR78X0n>3ka˫uR(hʂA$ӭWx/PhUY#%R|_zcF>`\,]H%+qD%AF"-eYv Rn^^R]ip }(/5==5[Zq3Ndd͔ ƃ j\x3fȑ󮙰ŢY2gLxIV̈a7_t`>lgǵs{9,Vǀ|j߃$gP>YoVC8TQROVWt%AQ8%ϰq0Sݬ2}Hqs5QvB!;vxM+I5GbqR3ӳSBPf>{$PJw9͐cht㟟 rRc@]W(h7;aQ 'Asi<.SNbc#_[)F1H>b%d.RFPT+hM13M/ [ d|x3| Ĥ(EYaQ=ͳA=BHugD}(wP|_Ap`'Ğ6Vwq> T!<.!)BtH!"1i=(dJ1K{()9 SX*ÃǏx<6T\'h.XhJan[0`UQDӣn#ڎ%"8kT%v(ˆնG)E)%>{Ę@?"lVj | h3I)ifE#RPeMihzEYՑsi[1{ vݲU# .y wroU*RWqIȂ+6Lx­/zvyrHieHj3qÀ~t:@G5꡺a;>K8T7JL-x喷?$!$5n-GMdW"&"wyv?x'^F`h[ ^1nO=vp턠Zt9EsTB4: H Z>B#-+oY~UlatSwHJ%fAˀsQL?C3L/<7Y}+~Tr sTS& BdeC]]r@x F7]4DV?'sمp3!gn6u˹kⰔ( ۫o9]JPhj.h:E*"/DPfDq %/5)'Fڲ^F@HӶ$%.BaL{*,ZPmW͊(#,#zB]D5J 'ZZ)G3Lwn)$oCk %h'-m۠E`ZxkS@`EQ0ZB.荥 &12Y. Fk\`puXKM`t#sYY"M QRP{͔ 膒T,Ԭ2Ӛˊ9%Z;l5CFƙr%+ٞ ]j5,q1pnf\%sgCa~#q(tMHɖ۞o?_:?`پ̩\;^tR&9!VN,!jH'(=G?ZקI^ ` PME+[9GQT`pE3UD[LąSr֔|0wH]Q OP H}y1ahhr3 \TIq2d-Bxԧ@q5dj)'mؿQ9@ǞC=Nf!Ñ>9l="DZB']53D'5wWf%lFq vE ,mOj)o-:و)%u[FTT8ٮ,چ xYXLuøuT20UP;S<)gF!DE!:5E38ٮ:CjMj o9^lÒÏpXq>Ǟz PB2)ca]TkH)R1lF*U(r RJAaVӍ1W{9yz>RSۿG;8TeI:jq#%΢?ث5?o?鋬Q̗ [?4I2.B~٬CqCI. BmT<-ը7Wh>׏$X9t!Ҩ;wp3۾Ŕ#)!G\HF!4M. R2ET9EADո5Q o苌!eB˝(|(l{:iGz6’e`Bt-8u.VrŊmTSѬA3Tgj*h|-+I(5ԥ; G_!3TZEyccKrT9ftIBLg.ļm1is":SVxo=@],k3~F2౦>d9+ L)U*zfI^&@۸g+lk@C&6)&ש"A7'YsYk=;+ZfQyùz@ |??~S) =Gu=/J'gv? ;>dW/_LaJ RC#B Q:ق}COŵQF?}K: Bx'ElLNuc߇@{D@8߷X*D|J$xD( ^ .bw]!E2 6 ^TИq(.zܽ~ O%dMB(w@5گc@?W 'zA|Bvg()ج6(Q[ J3EȢ1x{gܙ B:5O_r%ڃ%˫+|AJ(+؁ӣS* A{4'8꒺=btAnJ.JSꂶ]Rt}8dSQ%Za@ R9RX$t=TJox)1Z͈3)%n@  =CD"f<ʢ炣rES)ێ'{5t'YE]@1%Gd_Z]@%c @m5!.K5s1I~4XaWMWn#"o?V@!.n&M #7Q=cRT!LuͽsvA{]&&)߶pw,@< Axmo:w^`g=ZC+3s(pvFJ#6q!]O钌9,eBLwfJ؉W|8Bdz?}x>Jf@z/GAغߜ? [{po߂_(;#Rʘ Hy/ҏAIp#hBnAyE[Oyrq nXϘA$(9a=A؋)Ql 1 b96/Rre?H0^D$RqvW܅b]y%kcQe6q$ D@xwP} /WƧ&C{A˷)'a$M3@^2ߤ yv9[O%c8^al2eN"J᤮.{ Wܾ,*^9n)br23$j8n Z gF3Taؑ|Oغ eQ5fCudCME]*I+*W3[,ǞM֚ }mŭ;'1YL躞y )ۆzE |U =Z~ U[(PJrG3^\P%*Hz|ǽzɀVYR&s0; %#>!У[l2U )=XpH|hk9tjvCz)z*Nx FdH-wW,#KI5.&2ԝp*?/iB{7ٮ;=;C4seQō?]ȁQH U` ]N!bW1MBUc ^vWG'0'RdYGE<;NXe`11| ad1 K,-C .HP(S nfRSt?1<ڈ#ǐosH16' @_{N\3\8"8D(M`GfϧIOl ێ_c#|yJ !$DPAbՒ] j>mX]=l,ZʽL2*mܹ} @B Tдj~&߻^{{܌ kV"CIk6Uz|Fr=/Wu'v2e` p2Th,KsZ#hFȤȤ.Y^ZS 3ѳZX`zxo,MYJT H=F%mHX搋}تZ|y\3VSV t4; +dk+1!;ZFJ:$)!!(&sͫDj-1!𯛺 :'ge9_g3s$k|Oh1y!Jhhg8c-KT%sQ"WF6RJVWO)"UA9Gfw N2>& [~fS"/?`X/}R3Fhs mAԃTyQYćh',A3?p7{wvGB*Є`2BV;̞Ld❠V՟ŗ%! V mX<9՛(-ѡ,,.F6u#gG ZaqFэ;99Vkw@Qc ~ӧ)\\^'L9ڔP0L&5e+|AZz.9_e񯤠.4kzJЪ }Խv\_4-80  g',7K cLjP5u]G$6#vYmV8X;2mPl* VMz([meaq![24XTZ@gg

Rݬ xd.D]h̋9F6)h @ͫ2ȒŏKz$ub )S˲mԲT4RdὍwalo={hjDqG :%D!r N 2.MNs;$Uuhomafh 33#'#Ie7. ko|kav+B}t8R~Oګ>]p%SYn$bC/q7;cL}"k;} -dz+ n)jN:bM7 $v.YJ'ST_rəMc5|/ Ip+FNbƎNǸ-(@pX;etsgu&ki19kF>;٬wkV3jĵՒ Mǧ` O`J|lJͲ8x]7m%멘k]%V,w}>fn׈WQN]Jˆd+Ǒ~i* J3H2s7abZfZe*m5Dg~3،+ԬS&&9^$YYiNL \ۓKko.x<%sS(9 @֚?döam[c=f" 3 * 46=z.}њzG0{{Àg0QulD!Vz0 rc7Um ^^f 8YeY/[3%/IK]Tr۵+R1,H#af>܆ Pa|8Xy))3V iJ$E!#"jX}h P4uGtC_hY^0y%34ZxGבD6#A!*t-n,iSKej,72ھ">Z ʴZ惌ʲ%4_c|eq|mbBI)oͻfhYqoό!)슟c+/ %aa8}MZq!u ig+>eO<\'QpO @KE?; A _4tgyo -ͷ݇;(MC ~&' ǽ%8g僠`dmV^a?'u7I%")ɨyAEmɵU*gyq/5j];XDXƱʫ?l-%)?)~]=ަ,ѽIv7R9*1CIhjv8ǕD6IM0M!!>5N{& Rw)-F eq:Wd˰ɴ~++__'I=>` L4eJ*L4:ū'M-` ֐*{ s)ohr[^㼞(>`$m4u4UO$rIC鏧=mG4laf;+Nw+K:;iYNM̳9ySԸ.Ī {7E#!ty!uWo~Z ^o4i qK YDryZkXF ƴoG k O SDvs&h-{GGA8 8ZR(>Ѝ4sZ*RdT$Z 1Y[tVb-d30uoZ$" 9R_sDӼ8a6j [)F12}ױs}Y,TeqjS><"ŀڌZeF0 TIF:]\nue1:gy';PMV_3s7C85VЁV82ԼL}1|m/ZXNfYFeG8'jf%vUDQ}73~I>UhdZLEzŪE}J]))>]z`fP_$+ (=RH؍G(@+y|viX ۣo߼?{.{KA>K7,͝-2- |ḣٵ܌ΑSg\%=S( a UzbOx_>{odoryN'G[<_տa7{54gs߷5v7jTt%FHX:ǿ_3!=tJZB }VymsKS%ܿ+t:ԁiW`l?_쩦trnK2Ӏjfs_~kW]~-w®>hТU\99ftz7ܶ66%iva;ҳz^(7yY+7͋u$R|+VKg'!eʉȳFhi5lv?c(kW shTjHRf%UBVX=''+2ʫ.8|ݜ?vf X<}>54'[YNgPܪׂ8YU([dx+m>>A K0T qܕP@8Gmm,7)N/k:ǵ `Buo_oZ%.,hk>g:Ws/R%4xt" _n]2s$)7>zOhHiCU}җ/"4c0n5VZ#kg]b eDȅ曻q?43I!|^ =֫IXHE" <0#"8Gp, uQN aLD=u{#ʇԴU>^ًTP*Um6SD l*+If C<"Hx_RKEi(L1 NHh41ӔfW@zJ*>3?>Ko>.";/2}s5oP-zy?l_}kt9vZ'puʙl~GO`m|ZK!s88C%`r;.u g ")KESvx<ԯ`)[?>Ĺϥ Ln4],+za@_t8`R;[Bo0 I)FFz!nEf D9f:͈ 4:\Wk,yg,8{^.pY&K'\Vl6U*?> RyɱoVe #[c֚O듋'I_c2$s+\̫jdx 7\6W>q0u:s6>؞ڶLeFٍ]zQNwv7䜡Wm&EV1J+3*?[߿d"ށ.RR<q7wm@rH/x*_(}Rռf6-Y;-0M43 Q 5 :#,{d!R:8"#cql7M5%ۂ5XPu9q.}ٹ/fh\F5t%2}3@.9a`y{G4(2Ȓ8-k,`0CC6$M,g )y`&t)rn۩iPG!4lPzMf1+IoDrW@>$ypr3/J(ȧ  Mf.ܝMdF3n>>%.Vol(LfF"1Z)-[mӼe+\{X&WeQ8ɪw۴=r 3zKaеt_g{}G^-(QLM-pN@b]`Td_) >iU9#,,sx-+fA-)e9.VL"'}hag`9NnRH x3zfC_":#Ifʶ2 b8FRiuO"dU1{BZ73_9ȟ@ r9j;q?=C Z9TJ2sQ͜IZjܟ v2/F"ځe[5xAd30k#2:Y۷mm̝EܧgìMخnd?ޘȊ }ì^2ۼooSW9 ]Nz/&bx7L};ַwuV}w8ߠz-:_''wig5okG҆\vq H=߄wnhw͒k Dfup %uȣ D%t6^y9eFs,ɖIz :.^v9`- oy 7qk6O>];yoӪrI&P1,. ԙ&< \V_88袾RBV]5B)TrYLб4͗Ju&2o}{C_% 'ٜRfRG䜊,.,/zaAd P|4[#l!PaI'op iOC/Wwqkmed|ᶛ0pv^coE1LFdd҉4EI̜S2hfRi}RlOi$P y6pN&Z%U [B'ilmĶ 2ǟ57ڄ.^탴Lu`9P('{Yg fO #^aRX-3`,)Q?+C{d IP5?=}|\d'?Lj&khg 0;$T'(A0dBH3kMHbVhu6Zg@td1_S`w垹N֜1^ADsưq0GxGaf܌$ s+2 67^cgkqg88ltl(jlp AqO&ڠ<#0>b*I8FfhNŨKJ,kU>+ 9Sd7o3P "ȧ1g5ؖ졝8N ⮾0sA,n U ;D,Bk rakH)֥B=. DZK_J#Fi()=m٭1#Fd]f;5cAk\KHڷm}c?9:KG܈C턗kw͝dR7t۔na,P 5oDw-|]x?Vj}12 V%d[|# cUN7CCopsj&A 1}¾¾˾0"ágrd%UBް߼jNLhFL:~&s3V+Z+0+9U'Np+8-Ϝu~Z|E]j4?Ѝ䇵Gf(R 59IS~._gݓ7O1N@PPXȵ:Kt9F)Q;aΥ1ʨd rLV[V^yzPa[ǣfEwͶ^w9P}̘Qs7/}YM)+TU] 8k`\YWow28r/`Z12}aNj$\EƟq(-N\2Pn0GXbB6S7̚i{ZA8cL</%Z@P(g0hflJbZ 8*ºzY 9ռWcܹ*cd&Z[q@!Q﷮6' rQ4isq(#O4!c#`l l$AsRU Ù iH"B9+9UmD2 (!ͭSфdD= =-̃<ƨ;Y>e~]z2d$р':m#_ I_`xIw)V=_&1Pf&dL֍Fw1=SGfi ld) Z7C8~ )F 2]fSEu*9McY:ٽC Mƚ,ZwAYw2Gfѷ翶QZ񕱏g/吢2cUy+0Վ.mT$\`?'QK ֿA/rE ov؀I@`rܿoCZ;]g KA~rQ:G/]Q.^ǂ9E}'؄n+%"_L9ߓ^/#g=۝;or,L8Q&Xi<:WM5{ɦ!D}l%o{qqgڸz ^\=oyۖMj,N]qz{v{4ksdmRQ9^e)O߸\zzv2A3j\u"P".*n@mchv\< pyB^!7+ ެu {?||m+ Z V ͦhPͲYiVөDOV1Eޣwj/?ߟ.#s{3}e"ߜ\z YNǞ2ѥˉBVn{E%FZŰ.݊&x<98cCѶ58vEc{EdcƂ8nN'/۾X^5ʬ)e5*B^%$eL3hNww9Q5#b5LPb 9Ɯb*afezi |`+|v/Hհ $_Nۮo$KWXn>TJ 'QVdV4u[5?+NcG/c?Q6ʌȗtDRf8Ž8[3Dt˻l9쎼o JloE+v ?oBoٻ;] oR^r߈d۩ot-I1ɐDUIgG'?K~A}*O+q:]HP7^n/?׷"0JZ7/e&cſD#5gR<kZ ul }r}Ol9)fCQFXJgkD&1;{ySN}_9_#~;EV\7Y yFgNJ)EI']smm"(Jy:}cϲWw78i&L(_xuYHI#Ghds nD+ ڕ+Tϫ #rK{wLpjˆA\٧yMA -Z1VK; ~|7{<mxӗr}ocebp#)m![No(yO$υǷE<+K.v!ƥޓp LN9@` 5yaݪ}|=Lz42J9aIfLrcj szP7Ǟƈ.DG|qzpZiWesPax F2jMYTfRsW̦*'P59ݬjUpy^@8.X} b}C"3"331%\sr$MS2Nc9M4]ju)$"#¬ pa^rAªǜ@),$Mf1jmDT(Oڧ)89RrLeNڋT}iN3hbVnmMfA iX@?G!tg=⧴+,SRۣgZ #Ϧ;b̏(S1XiQct|DHj){϶ꊤiNҲp((EĐqh٬?϶}Xf|}4q`FM(kzr;[ YPu /JWܚ΄z$м.7S?Ra\ąOx7c?ܟ͟zaӶV'C Ip9;7S9~qτh1Du¬G,hS/s#Wx,a88gOl=-p_9rk݃ w{GRWO,8Vbe5hloP :BG1E*AYS%`f(>|ff#ldz1:/ |~7K.hsu2:5W"{?mW^3cbڹd^璨h!& 9Y)\37J.ߌ Jd*+̉2 諔3g8\r ݂`.܏9TQ[zJN&>,]!2'SZʨ 1 H(#A*nbf]¥`w+A{lCK9fc %1сȈymLr9n| eFS$8rrRjޞ=Zo3P\GP3<,ECTrZn} #cqMOF5 +m2bNPsr 7'*'N+gu%~ojޒ.pT#qx!ٹ^r߭M`mմ/`no1 fIk''}^YOX#Qm#fځyHZ,7X= |)nOz54/Rd=(LΥ07^.w~@ T$}ZM^|A}%:oW6z2=1k&tX`krZdZZukpZ7{=ͷٝ،TO戝[Zrf1sZ)=o )_6܎]]{="庿ؕB2BsHO`% _:h \S"[o|]HD ʩȇy7ZsNQHRgNv4*X114e 6{}V1>[1>oU F*kUCiZc@>dm|X)msvNJV?;?g\戀/jhuTK\^\: >Em@obU~N(𙸱9֔x9~y&U?Umh]g[ւS$#"Fe.1c88E4lKF  LP3wPg1LfI,"J B* f*ǡs~-ɌMl_Tn@0$k}ZK@F_Y w%Q/Z1*V+Y]?e.r% HƉkӇWQPrDz)=XO.nR3\55JYVM2(ᜊ )ʃ` {|߁4{dQ{շsLف.}P٬VcܕcHl݇,r`#SO%8+"27pk{kl?a73ml;}ɏ~ǓstTs_[qoUuuR6[ VY<51EH~m O&dW~k90qA I蓑=w`1SOR9yWE|6\}F\:w^9IA2iޠ!hZ=j-<<lO@ ϔ2sbfX&""Fbez9fmrZ~2~@!Š+,@rO3a@ Ĵ!0;e&o&@oB^r$D*E i :hrm*qf&U% #VC)I*`2-WCJ>W>R,;Nsr3# ? ebȑfnRA^H; X\)>Hd%)C;racSB&6ЭL3*$t WdlQhU^0~IFfdf ̼|- -F=$# h{?/b=>[gF@7ߦBLsGqs4S1aqٽ=M}Z- d9*Q9}XʹuEr6cx|C8R/ q:Kc‘3_ ipY9OJ'rA{5"ow.2~㏯-J9NkG,J(V>¹:5Bo p6/'u 6Fo >Ȏ)L8(!j2$0`5azNǵ]oɌ _U`kCwZiB `^D@_(êY w #vH,K1sWr7<4ٺJ$`ɅJz|z2XF'V >洪@(lfe 6UwMs_iX$<օNO B_ts-ʜ/0M]Fn3 ΢VS}.!lYU~.REt^rX*]nmfOʵO(Dk|g_:W| )7{[ ȑAaVxkL|戗Ⱦ -^GrB3e14Q5,\g؝-[֢l3-jQ>MZ}J^Hp%#蓞:0 he@M_I`v(HCI6sW`OQ!225+9q&7YSQ >$< tҽF+ʧ"9)4Euo,9vK~3I(Ha[?ozUK8?!9L銿^O@PzVԤ˜8[eѼ&yz5n"Ya=@ -e4YRPUgo0WM&scFD1, `t/5RKmVpeTF%^dE#ϰRbaYzYq<9?pqeo8g=hJ76*LeA'fUwĔ'8^3onBy+]K/i+R\13}fZbqY#{WHf&% ¬܈&TBG//l'M3"ĕch@&IJ#(RUOfG eZӷ4Gs~dJ^\2D"J4q0; Op,Ӭ.5[CFa~xZg=ܩ"IYXuDDf Il36ڳ:߯_ !Fj"GJ*̝u-b gH73#/ErIV- [ˌW|&&*?g= k朤{[7r `awtW GI:5&beS&UWUղ7Eݮ8\|iE{uҶbi$UقX0i& SuuO۾~`H⇴O (gux&t^~kwi_9=gf{5",֬`=7[I%)Z՜|8#O~jWq':/⼟߮ņ|X28ʓ$`e.#7=D\ylcK BY s6y9L *T>ٜďqn]f%A%@$P"5w/E SF_Ok Z m{ٺhՙɧLZ{{au瓏{oWg>+^t2oY_ӯ+QrV`c}wطu{؀٨2YMMw&JZ"]\Ź>1e Y1 Jڋ"l'P쟝򎵬K" yZ ?p-S =SrD3kSLIZqLt[O"ـVdf4˒ٺ/ث}\8mZ6w)[j)p<!ċZ`r;0呭| $ RـFơt`<"V5-ּ̌={ցȔpo_[j.rW'v3\'e(ϒzɻ jVٲŭ Xϖ.sm)n yquсzr5 @8͠Et!; nhIF=9Ӎcaruv\ѨQlɦRe3.NX Ͱq'>ukNӹ vpe8'c г~1!vj}7< /&2OCP<5K_;ZqQ>N:a5j7}afhHVJf2_XyvK@_}]~{R穯iI~zWw+R  LE*Z!{:Z5gW2LE1׋__8v;Ƙ~HeҦ&jc5B@uEiaS`Nw9.LEV-;_dW֦"$FEm{p( q:xr8_}}jv@Ȑ j=¸ ҰS r 8W-5p2Sk".OĴ+4:nDI$"V*. -ӈSy9lҪ~B%sH${: %I{>hѪ' CPBLh!{~Kݗ(w%WM!K:E/4D/Sfu!Y\E"K| p]̫ po_+?VR#{>3N Z7&sʝ|3tobZFb֋V92[6] mffέ w4J|֓'M9,|[~s,x)ɖ (ϒ(GQ[S.ҏ1t_8^(9[Î]z<.X>t͟ݚfu* g>-ed~M1#O)y# 됏'[af}ae.!䱚j^t.ca?> 2~~zu>ULn'}S/*@]+}w[2Ϸ- $*S 9-pεӋ޺8*\4k]z멘œLB̨*2ܹUI 5M`sEkhDZe8bcуNJמAcT e›3 YJ4fl)ơ}g ƨ|rA-: Y^."%:jO]xi ҽ$ID(/yI%eeyw+l5;i=:f/)[ٜJR括9J0+f&* SxVeX[.@y.4q,x;ל Ɂ|Q,Acd&@w#76Q/̃|>@aW^s$w3Z#\jd3`;@6?̎c/0 c$Dtލ^ :"i7̑cF,P__)^}sok΋}|b L `w'FXܳY70*Wno S֢ b\Zg1iN~4{4ۺ==:{cokMt,0R>ݏ4D5*ۜ4-4 ZMg>'j\yΎج(|-Ex *tT }WHz}Ͽ_K~" Q{ёRZ+\T8P5룵qk44f14*՚15___z})z;ܲӌ61>'2=ZɪbXk|a͝|ϧ.i-{.SR[D\-U:E9`n*;^r9LyS=|.z- K3eIiDHsP9]}^2r^+&[Siy^*!3JqNSŒ+__8v~bQPмѼ5sOɋl,B#j8@F%y-[ZX6'8r13#cXyHW!ۜXl 3l6פτvrL0Sim=?5Mr@NVOo$%W X4tStMyۜ@9^r\X弹LQ>emVQ>SZk+ .Wk7Xe51 )DJE:pU&ه%2,j g7F|?DXfSֆM?aLpHȮU q|1 N~7&ܔ;Z&Ъ!p#ywofr`R[' 5MnsIGwz#slf|"io7x{z{I+@B?#^)JC9:kN.Tt/bK5*|j]vpK %kbox|5'||i2is7!`W. j;Nh̵DFz.u'RlƩ0]~/?ffI1kߓ kP/ HH5ړ{^|N"J JРmk]$kwsꠒ1[㿀Đ[}H C'v˯9|)2Y]}&S7VI^ΧeVTqH<R5/ҹ% )ODג^aO4/{IGgֹ5VVopgbt9?׺PEIL21p=_i=U) cWǎ8J [l:_csWg_? Ĭϭ 3= 4`g{ck+eyɵЪE땿~W^_P S^#0AƾYxڷonmisLwvJ <*Fmcl?>qdkX_縨[u{= R3>h~K{^7żχzD߼=J]Z%%qn8BvhĪedphk;f^۸>s!}e5j%?6F&]* Vgj1{Ed!/m-ɷs2%cy-Q2cM4@TfdjAY$lcڷtDrgofIYf{fQRFkXQ$X.b^X똁k9F0>"S3m6d'K:5R`<\'l*LT'2K@_yBGX8r_8@,wBemY3mL6egL}lf9Q(@r'4~ƯY~]?WIϷO*7/]7s"nm󎝁sbW;K½FG7zEypmTOhPfj0ϊ?W[\%P/)CڥA9 QFH14@! It›GrޭܶADVXsHPFi43I[%[gWd,[$5J@K ,HS _ |C Idg0A{G>.9is8WGگYi4VJtחgm+c֎h=Y6KyDR[\ET.9𹋬$i:$Ff_fߍOݸ*)/ *iK}!~̉ry6h}ܮ% W=3/^kpIB~1~"BKxmņŘH)Ɨ]<'z^[iڳ> n(XVR{{"gFv\(9 :)Ц7eeCp?|==mj|p%͚s|*'2KTo=G~ZNqFyC+Mp|3(NlC%.LG}~ {#_ǟ;~T vz$C$%|qgy}lfmy_@-1fiQӃ_r8KKc@BkI]#o}3o6FN<ơLel?c诿ͭw?wV#9*I/jXV/Tmٜ6|{gK iJ{:] U,[Z$dT=1¹=&AƝ萳-,UΏTʻ;Cb2HcEz kۚJ.v ebP_?6D3Yz*Z58&-?hΖROz> ey>͗iYh5ZSW%)I2k0q0ǘ[Y Ƭ ",23%9C0$8Wqb(w5ǶekR# =K4+s& (@/4ɕNv>4NSD tAyEܳkIg\G55v=ji4] ?JExAհiYeg*=߈c{! ]$ q622Je-:ina0raUr`VL5ײّ޶(S#^1+׈`ȾXwiD9q/{ѽ)@tMxͳ[{63@LN5gԫvIf[woklq>3ehDk12829&jr9GPXɹ\iwqY_b;?:C_$73@J=s?qyf$U2@,ܕRduc+5`Tl]6Ӵ>]F-Ba}:??,wzV@7HI/*Jm48,Wlニ=x[wN[>~6}߶<}4hDmZkkkZtpON3fukwuբݧb(nsˎ?5>["Lo}*aTD\b?_:U k6S!l|d#Y| /chRCyK)߿RaJ9ڡa9}kύ*y2`GYUӎe3_uB\'ξcL7">࿵ Zx7wr~,yvێ"X'ׂ֏}륟\i/f=`GѪ:u7A0+Ξ eG6>XxF ]t;,-I!3Jeheac*s{Dgcv j2YkHuK~&P(nk 3r-dJ?7}z0=KL'23av7@F5{バ"2B\SC'{^jH EjAIَ*{2C`1f \q3GNIet2"}Yǚ!8*9X%W&+fc`EYR: Tb[_LM) 8(AK߄C! =KLKMddiOY UA:N7p?IC(eMfP%03r2opq;JH3S*ͥ02Ƙ1kT`*ϵ~!h0A.O\ʔgoq/F%8߲͗p򗢑|8TDsk3K0/%":[ZY{rSO5 K{򗄁Aff$h[\Ђv8A1ҩ?`wdJR2@ВMSvd%=Dt 2+۔^BD Z؃wKCC3LIo_@ɜBI?Ԃn|aBȅ-oU"+mͅ\QZ%J/.a)i4.7tK7Q iM;`E3̎3s/ 3̂ h 8"K؝ Ws#<7Y$Afp-q-3[ s9K:^fXkWWvD AF{u}.ߴI 647R{~ ]|нYLujXFH23:⚞cbͫnVV3]R{XZ_j3l|cod_?F 3T E8'BxJ!~Ĕ&qQj=ŽXę@$o R@2v2O1L<{ޖ8 _A J {#߰ Q?;Ú7pؤ̇}ЧA3#( q`k譕כlrs6ns1[a@XzByu?V wPV}A="J>+?SrWϊ%?γye49j;Z(TFMǏ韇&Y6D=&I^?_?W_a9os2Bc)Tu"Ktdp/Qs a?4:+C۱i7~-R"<r`[+X#/Ui1ӬoLd>|XO xᄎ]]08,2bD)@ҵoE j bY@d9l z+|BZڏ税*UgFi pgzf l7HEyjfCLcդ,%j1[imgehB!7v]tJZ'7o_I/1@rd;_ FkHt(&0|K+bϼ?04SZ.QZVYsQT5*4:$]$eI\MaV Dur%橯(0Rnt6҇mRӉWCJj,5Zabz{ RVq-BÒ>ADLoǞ/fyIzή4 +_Rפ%h?d?A#~b&#88~<|%eTrt \_xdfBB>D)(,@覮 +"iiƳ<$Sc/_"s}=Jy|#2ψq(1Df"wFk{$|j4'xVn̻fܷ*GFص`0W9I<\l\̨N[f f[x}sv<c:N6gB󌘧a!k$W!7 &\ ?΢~umd8C1aX?wkEZ=g[lI<h`*RF[hIc([ 2•ݠ xqQ|70_'WVkjCC5YLĈz0빮zH!i|s X.CM>7oξM޵[lQe.=;:փ.̌X8O<ܔ0 $ROU=$ W$mtK!2֩PΩtΊN-stXZJɆvFX+*Lgp@3)ʋLSTW7`J| 73Ys{k.v;}FxU镢قr,aO}8,q+^\xG~zʌ`YTHucdT8heJ_${2̙ʊ=*&TC)T5# (4?gxI:|3^Ew4 c̲L 3Ap)Ԉv*HY:|40- BfhS8ݚ2?%)N8s"kZ?3c lДe-&rG;JkepԱkBbl&;>O)fwSۛd\Sv{(@)^KQ+tB%X(6?]\.ە?Ϣf1] ԡ E@M 2Jf(EZjM|0!׶BCdWIqT0ݖzO5#FԿIj-0:w- u/y5E3*Ě{DjF q3Ws{ "@|EǦl&K?^1uM{yG%wZ|(|g[ Uw캞ڠm>hߓ{zLSK2reko k+Fߥ@E\4kL|Rн sҨ0K y5MKS&ewqΞ)u ualS Vޯ½rmG ٢cڜݪf~(bA+ybvgwvJYQ>%N2<8pwFl]?G|d{!E6B\"Lr5HZNm igґdlsdnIkƱ)!`WW*Zj2-3 *ηhUd&cqv-_ƈWU \]Ww<+sk mn1fRF\ KvSi_oNvڦ5$IX. Nw A (fUPn:m|!Fd.G)fZU3 %3 ``)4rٵbhzߕO]>JHeS!nt[J:*"daLj,6ݹe t 6N;ig*R0yYPAo 92nH9͕_JBy|Zl7% €_m ȃ$1K\̹NB߱>_1y*ׄd4`į\d%x$iV_R+VF]Tzw| l?ܒJhy^IMtk&÷1{_O@*vY;2aCfSnX)!:kh)YԢciv+X+cm._<bAx|Onk\V͎N ([D,8 nP.!M5yI-OS4nT nzg,g> 2 }A:g{n:$fꈛ/˹eSB3Z߄_ꡗNz8¥qo o2ǯ(yȧey&|:} n^~nY)Qb2zv]ͫG˿ c^cW|Jp|dۋ^BlZ%@BaQx?Z ӿQMr_c |Io,KS MP~C90E ,ȐΈ/|;+iЩ<ey2{e榞eɽc3A`9 SG5@=OwKeNT'*efbݑ-e U$ƪM0=X3~'MThވز6ܹO]q3[0رf6^lP%+ П7E%Lo}"opSN~뵿\UɅҲe `$~ o'Yo UF)7«H} (hӶ*Nۗr'4 m] uBKLE5@4~kw_xs$R{ZF[1I;/sӏsجY (_y1]ELZ\Moͱ?wVKc|*B` ̵5CQM_;\5p.~氶g"\>$W6ympRw-4ʳcrvL{mHUoim߬_Wr? ֜6;{cr ~~_=]kw*څk nG^<^vj(|,'fWufHOSPb?Ch4hѽN|߶пs^nq.3|>ܪ@Kkanf`2DkܧanE29E\LS lIgͿeZy-Nt1'%+9]c` {2k6^4 `h^toQ ލR[̝t+,:ӇU"9=XDp "Nق2+CLƊHF/KfNWZDNWM=zNX᭽#j82UCXr#0rRg̖0:~AXMqN5 iPG<;Ajs4A3i#fR6 A aH53;4f/Q2hmi<2#!%5TL'2W8[+Aڅ7@2*Ъ1q:9 y4{͙c e_/7,#Tyq)$g>̽<7&ڲ_ivB'3#)(gVeޑy:hOH{{ڠ;2"*i$ [%h83W6h5=k+0 #isp y"Affc=(~G9w] 3,6-f yuZ"Z~31/;^<&_}pxG ]iNTbBkE*ʇ:fjoR~Cyl[~Z"83\Kc0q^WK&WcdrNm- cδf&*7 ײX I$Lp"lcwf(s jUa cAOqL /BFm#QO72y߳+2q3L=f;#1+."FB ,:_\3Lug0RJdͬExUU8)loy8*{X>Au6aI#சo]fX#i s/JrҢhOiIAK"PscgT=8V]>)ۅ&j&Sh{fXhs' 2 sN:EO\]TE&YzC3G vw2k}sE|q4;>b%fM`CߙD.1F| 'ΨO I,Wj)Z3<&5 7tur<I80lzG?b>r7h[> ~`Y/ZDUA2YMb6y2"wY`(Wn~܃sODӶ|Roݻ}fpAcQ'TS4 ZTs݊@9 AN؇x KD6 vMDv.|\&@K*OQV-ۭ>FB+dz04}R_Z~'uY utl{Ԕv^[dx1EӬ4p&9s e! p'VYh>=V8_ȟhHSB|T> %Vҩ=l+Ԫ(j!/]v%i:n ^忔8Ut`gYGٝҹvQ{)X"n&8saFWLmec|E9 ^_|`N]?\GJQõ n\퇓oe`׏9c~G2Ҕ2*y0ҔU1,sGR,!8w<=fTU9SѪU| _c|3!Sȶm/-kۻOa^R|Lsw/zq4'Z.q!6UaȬ1GwȈ7dw6}-g~{7mvs% _1D| o k- xP,8ɿ`X8% Qd}-0UT&Iߴ\0 qh;^nlr㰲zW6~y>7ىgyB:mw?j&[R[U13d9d"] F7ԏU}=Ɣ^O;ʭsǖ򬵞Վq=25-CJDfJ" w!c$$++|\@_4f,@91]"r0jJ.l$݋:9W= V&spLWJ[pLXh/NjuMIn8h9{l,ݕK:ƫYoEsF`-d~$y>^*!;Y>w;s śn^E|+1j \a|}c݇Iw+i qw;ِ( rK=:l>YfX̰0q04nto? &4A@_vI1s<^ZcTMVzF^}ˆcv;; RURFv3g32+eMF5W2O,?jD,݌N%,})D< LbALJ H_)adM-If Y`,Mp$CzVZjeEUDD%!*/ZUD 5^Vq$b$aE'YܽLCV_7k4%NȤ2لx9y0uA>Kk+u7Jئ>{״7 yK2_["5 >Ub\Q,fhyTF8ϑ+k1cqʭ_ĹgW)˴㘣l;ͫR< "z~/TcΌNq}`I'@i~̕)U)e $nwhe<*;{ipD^S?s3/Vt{-Ku`ZJzݔB8ff(S]q)Tudh!^S^ڤ/ aЗ / iHE̎b$<l%܎C__heC Oȷg˞qmy&^$H`[vtϿW9քkMGX}KB«O=<8|܇_7+50;3/a}v/qfԽ Ap<5c4׍J TP7JvAl/xtF\jݑ6_I|V'w^uȲ<'oȌGGhG/^i,V /^EocJ`N)PfR1cy5$Tm,2#,2\1j@|`Hik{J P2IJH|7X´r۴1kҴv c`l|C{/(lS>Nt!۳mRiퟑەl)Fb$湇l؎.⮐Çll~$eiMWJfg&B=ꉏ=IK1t7@\}+HR9H`i9+S)| '1HAE.b6w$h~䦽ϕ j*2CE`Cl&^o)Q`5)%5~})Eg <ȏLH2Hg 4F/KŞ@uɡR)ׯ^m\cXS",w+c1O@ p:}|72FdJTJSR"eǜ03sM惐/WRTo+pq5=mioɀ ~ECy2FFt#:SY^{yC.#ɳKZj}Nj"xwo7H 蹪-}H7t2ZoedaC_+TCGA qv>q1O/$t}A??lcohI_`;5h 9/vH5(!$T.(_N2.$&R_:'gmtWB%!jǎ-E؞7Q?9PIR) JL%K*aW'' /vL"..n?k) R)ʐr9״״+%VRG<==0gOCC[ڷyS 'y=ڟUU1⺊u]:[JDQUa{ $ kUǀgfN}l6cCfg4мQY'fE&w[EmD(4˴dPVhEHʼުFi?> >PHDB5To_=}7* 炱6}})^/!c(2*&X3EYI@j(ӱMl9b771QbbE&u1kԤѼZEesBlnbīsRfL1A9?>j9)^$૽L#3[kcd77?nVC_'7yT_>&7$h V ( ]5B^Z'EF]bs;TFo bʹ!p3NuZ濃 \Gpl}:)[u7/@˵ޮ{qOX{NȪc=۪ܚwF5M|T&&i<&Îc`0&4*d֒=bꦆJ ­J|.>hN͖\K>>icxyu;j\ͧk]ݷl3zB΅ ׋n";Vuʸ 6??z?vj속P#1@܋H[e({s1slI[g h ݑfLJƉJ%R7SSGϡ 5^/b/#1nYY2;ڢe>RtkoZ>&"'rz Y9Z :xڽ.~ _54+(UYVZ+c)`?g#adFp ީ2s^e|_f0MLaʶU$7o1IXAJy^ÃR+>2~m-R̯o&S>]|rcDg3*D1o{"_-ĬVtԢ$>eϧ }]R$v# W`Y^:s_?Fq9;%iz|)~ܲ9t#m혫jf)' gX}׷nUJڛ쯶r\";p@G_UI8x].4LW78}}ދ6~߳ 6`9r)Nv9OF"4 LcΗ (qMS3])P҇33]idhUl~+QmT Csd lq İAZdXdE}k]}9|w9. 2K s!-B{m"Ojqsk8u;ENVg5cK>@Vu+K r*F-S$k*n~•s QwkrwoՃ2=jjO`l4_YqT9⽷F\8OeVHihl >^҇pLҁQ?I/__%INd9QV@]}[fQkn\j L-u-0O#3a'+|(fue4dۗW9G20ƖgA81j=Ƕ3:/ Okz2hQKeTD-@ #¥i(Eۮݴԙ|yk"p P\ Y QNٴlO7 yKnLKк-/R(X)ku4eϦU3:yG֐~x${j߯~;cfhb wp^A>~B70?8VDBG ^wjU11u\ Χ>{l#N}UJd~얽C:p`i/3(I;^4VZU%+ƝzF(a ;oJҝeOUct]H0赀@({G(E7o똴a6?7=Z 7Uw(ºGCoe5EEٞ}/DrT eʽ@]}#{}!Q#q]ЮWܶ,2n>(ќ&iקE [sXɩ)LK_5j)7cj) z _ Swم6RӎC;{-q}vkoCpu,$k̡CVf|D%7Z$'%o -mS}47Zvc֑\fA(-S4hjΓ_o{)4{TDyo]p@QjWƭ3<ҽC@xU!ywNX"Bƅk[6010意 nl+6eVZ5Ttefo5|Q"گվO4SǬ/eRh C%%RNFUA*Tŗ4 zl~+#S&}dR:2/`BC 6Vm~"u_C /ȅZ#A!{`kѪ :JYYu4Yi$2i!-\K2b k')aE>32GI^m?|c.1U>)zF)RdF)rM2,OSHPmmHgD\Rʓ`qSӍxKܻƋhNJԔ5N>s^w⮥]lWzjӡ.Hc`:D_7;ucK63*Ⱥv㟆6Z.?dN{6v>M}Rޭm X:Yu}4A5>Wq X)XhǤ (=Mce)6UpLE2JV_{1LJWmF\+7چ{>5a<#Q[JN] ;j1r٭KTaAd/ё0[>yyMOa~smn~(hnnSo'l{톍ȸ_뤬b{Xr7a'WP?+X&Jwqu-`mzmؘs:T0]f5,k.P8^7R~~+_εI\ՕXoB%p4V AmrU9q|,cɭ#`Kv{.=\.LajX1^/1ggEZȒEB ]6͊?cA=NٯYM{?% Zr#m|=,WJ1p1|uEP;/260O"Y$Up9ϼ-(q7*4e,sri0/Q#KE[UD$)5p&wP© n.P(y3={YmؤcMom_s-m@H`eX)@𾪨QANa*`fρ?u2t~C*ß*ʞ[T65bgj&4' _ʠKL"N 񢽈x(r:8~/'L#XrԨ',)5DNmH]jO^4,ۊ=_L`{R 6ژ6&2)YASP֋$z۝or2Ҏ1KrUޚ d,1ԏt}P{:l6x8qVu`f͈JO_p&I~st+ccfd&Ơwf(3,n_P@g| 4۱p-80I0m66M1y ~mzh;}?N=nܖbۥ ItV&*O;= lͥ>y찶n#TCka *L;^Q]H2*fN-uzfP@j|ڬ c)@KRd׏ )c0__cNʏ<0힫g]m=E0`Ŝ< ǢG+q#zu$GGK81Jؠ\c BjߣGsHp57X4s?/)x|m?8iʌss}%DХܭEeM?H{9,o8ffw ] ]Xi]NvOXμ(%3 W5m}]'GMgC@jbM!QkKS>uzD69hn OX)\6AYF7Ru{rw`K# /V>T0jrNJ"͗RgX ? 앳̪;$U'T} >R`m*02N+".4tKr0VaCzgtSJp*x)eOKP92ڪƬsC=SG\5!ފڍgC^Jd6j,"AI +RT> ?^?3,^ǗuܲR7EoV #S XR>0-1f0)Ҩ87Q)K>UYE"tr(p ߙ(;IMEg9UUs|4>&R2(b~h ߍ[Qtqq7{_k&A4WaGL{AQ֓ Hj( pe6f́Ԋ Ox04r'H?8)/ U9Lf\3 t0ISqL0fUrc*64ݗ3VSU:wp=dN4aNwpԩEv]3A, 9/i>܏aitV+K^zzn}!=nyy.~ѹ{^Wxp\c)~#ᝨ1ۖ zޫɸ[݅Esy\ "*}WP(w|/+4hGſ1~ vLQw7ڃx/x]RoN9x={kN!osW=; `?|s@hzx},"S)+#So֝BfPC*H^5v'G er( 5di`b.ajw}xwնQ}7g%ӊl=(^q?6MXK)#úh :3ʣ=̦\YZ ^{=Fqj>!p%d0 ,J&gB"\r3Y!FR*LZaB~o.DG*nj:䧰"vV摙>^dAh/L1\} !2軶/5{gK*TKJGH0GW}P}1,֪Ql,l]hأs<ɕyy}̜4-ʔے!"Z`$",ӫY9$s[ETծMZ1tBڬ5cMt虒Cel>obim2Mr!skبBpFzo6| [FNnmjtQ!Cfq-6iLٴ '9``A%Ɠo/o0?9^mhOs٠vB%.hSrFkM:Kb K0XzTvȗ`(wI ǀd3Z`U'PfJ-Vݽ7HVʇxY 7S ؗoz2?^5:ݎa-FyA_Z:ؽ'7{Qq>Ep>?~]=Ǭ747-ojKj/vXٮ{ /V8:WZFx!*=WrL(8EɣGG~~ˎjMS+k0eƍ d$`7VѦceǑ>GVJtUE/^U r딼FKO$ LWu$׋f9L<߱Q7Vp'XM=jN<:-|[1xѦ~Ĕ14ZsX"VkB2h `N3Z`uQ#|/"Me@ɩEZ&%Z-R2TJ-ۚɬ{zSZ-k#ν]{{b#c2{1&譝b&FQ0;fbBEj5ZVq$%U׮:NF` ʝXQ{p dgĖSGzN‚ U\# ݐ,lՍ0/h*LnVT4/}EttJ^B) /qfz() ./i@^4B#2:ɻWϹzyW}e1 jZ3?W[i UW`D] EǬ  ϨD*c` ft9<1bxEH;|PgV@eTΨ#[!8ha@er&"@W->xL~gy-oc'HRe.[@X6oq[vD+Ummoe#I7h;EVtT/mBmɷP sh6o{%WX03LI2HpTKJ(EC^WN݂$+IT(9HW8"HQ~{3R;|# zŸGyB]+€>B|(rU˝-4:Ymz Ά29ͼ7%"3תEܖ^JfD߇1|DB| "WQWLa;hLJ996Л;%Z@|g_].s~Sz ToAu\h?|wC;=jYnVIϢJ>*aHfj~ ̄ڃZ516Zb&ګO] /~ߋ &}729o(l v]=Rd& ٘@9]x_TI\29@~5f'r[ #$ (s#+ Gb iL$=y4[fDxMk@o>ufw- "Լ{uVPR8Ak@pmݺ114p4#۽SG9 mX)uQcUqX4N!K5$QMB4!ԪZ0 7667I2 kZ`bDuG ',!$'$4Hz&WOX cz)1*692>Ci&UiW ef 0ˁ^XoN䚸-lbf̉X}J1|)$jN,2<%DAY ܒ̓5u\ȀU89RKcH #j=t[%c\67@IDAT3JpHozdn^֞ssh) qu( >\@FG,+"ד_?`56 /l~al1HhYzʬ#mJg^6qV*N#7N+)`mC%w1V1+0 ڤ#INĒet̊(+ #B֪XRh9=bӈJiuϟeO!Ԋ,_I9:n"W:eD~AEz<=X]+8?/״981nh`{ in67AqZ-' nzrx6sW5^JkwEU| 醤s^"=@z/r X[UNX*pbaަ@do5D֭aي~Gwf<ڇp0}|]GC#~ms4P{Izo p[ wNzԾ$7Ge)XyԪ&uCy68׃:/~H M}& )Y,O:\4;vP#es‡|#f^l Zfھv}SL:ڃV4k5מ,XMTJ%=?:zpi0TN"rpTXlė,C/hn\=bK' *[y%QmmN#UJ7SMt{][yvժXE$̼w1VX~{uσ>:dX8`F*d1ʷt^|fzFFd̲QʼҵXUC3Y^/>l3/MBrG@؏]4,:"nhMۗh? L߄8"3RFqoޏ07pmL0+gtmCyXɍ%{ꡯ|,QvV%|rs{Go=f._$1c/l֡Yظ-n|Īo:>,͆l\3G1 &2齶2 (؅$zehӊ)|&:*2m\2/Cc1eSBc++Y=9wkBHs;s*hA@2'T\Z)M/T]#91>^sp8%3n6[t]s|Co#"^ӛ~;X i`Ko/:v;}y!򹥣0`N@ u/*vq#g9QւTKW[RRJ\>Gg-;8e5^>_/enf͉XjsvOأ2}5j>cWn-?<Žm>Mma^a>4cϲNkOE|nfP<"88/!{ȗU@X>NNhcaW}t ɲ~PqX A!`!@v^Цo XDR$ Y[Bﴛ9p!2CT %%>m2 mw碄:@iAOjRFXy12C_;˖iqE=K̊ZVTXoQ0 dR[lc2 J]P͸Mo+EV.e5)?@ 5PtgDv-ԋF )@۷`zB}w0H׍UY0z\Ren)VoiD7[zPMdꦪUa:^>8>0э#壄L6:%*u䢮`d`˽V6rlȀ3PX$}G,%U44temG/»G!ևӮy=f , e*RA3B'8 9*&ݛ@,\flLI "4cچRrLCA*M #,Od7Ew<*$[Mmlڧ|' ӷDގ}볋}5=*]1clD~}j3,/LjJa+b ^ۈ&}/I!Ucd ExBpBYny gz$IeD&3̬ZXwj1R{*qEh&rEbĝk;hj.V!vTuw5e*_r/ѕ"I֦fl=i'Pv串r*OrV)+?(*ff[ E(l鵽JFo}BH$)gmUXvM \f~/)L嘔w3#2Ci@Жڗ$/b+2PV%Y-wkwuBI$!,QiR8E2%-ŒQV[k;Cz6ugbwؒݪ~|K u( *$@` IZe0p3Vs@xgY5O0b &6WAf{ߦVH"LJ i5:rzM`XKkx!t q4N0`"F\4AE#4-L9o (՗(CX cƵ!̊UX̔yI |'0ꭓ2???*:j1<AQD wQa{[ހ ~՛S ]7u5ubO.RN4t:@`OW؍j)wP8OyU6TÔNybEP!u0AU3;̎iq,&rsY{lo=ʽf*ܨa_3}Q2&]uYý^ޢ≜tAtknk1.gٕc޷_5 >DZ+_u"!Nkg$F只n{MZGvWe&fVdl N3KY:&oo*#bZ-yd`}F*p?ϧՋdvP?{$j#5\7]o_ ^}c 3O9TQ;Haڬǭpl|E1cW1uS>IA+{QC ԟmElxpb/rs ۉ(aܝ%`%Y.Cd䢏zRV)&h3_e'*EfMXV̝oMvf=q>/KVV젫LaIx9C\;owm*@DG5H1Jxڌx ֮q 2,|$Q $)0q&,w fv+¨ktf@R[5SVF"r}6fx\pذt|w&t ḻYH%s(mȃD}yzD,ޱcP9VW1U(}aܝ:vM0e&QBt됙{VCPymm V C}TTxJgPRͪjes\;V*=beFYN{*[y6v_$h9MUyjMrPWm e$YԎB~Fg7#z=q?tw:n~U s،jc!"D3>4VUq/ )sS jАwD`5X\_l_dKU4V6~QFnבs {J;/R{1PuoHn4_g|ޟv}:+1]@AO0i› -U+z߉%I@ :dj*:`ögiv2f6F]k:EcYsqǧϗ}HGuů뺯vիWQw0og|g\; .mmIko,uMuSz\ [Zxq".CroWP6|wwknݥ?A;Cb<}XG]kf)S "4.laIQn!ai>ܻd+*+\jTXUO 2BO ׿ lIŝF=q͢Z OwQȝew17'H.5΍=FB6wͤ b֟iYn-ü8Rm%oBƯJٰZB5X23F~7l ?++<زm9QFL29s8Л@O4ˀ\bőeoVR=[XQXfni$50uvHkUyEKH$$>n96>M@ٶbͽmI>O#/isY&CyfFq*VT(9L0JʨUޑS7M5{ k qVOhKKdo&߻whGqL*H6|yG5rǨP=*`ў|؊gCl"tϨ_46籲{wHw" i:t g~ r :[>ݏacȿn]M=d$`tV>H.XmC_;4#_npp{ޯAW^JD6M~Owt` .o::y,fvZ2/ sr>8f8Fx'>^iħ=Z;Q"J;FG{..~;׶^QEy%=o,q|Bm` 38$}X)Ig˺1jEIY -`1.Nѝ.IK@rG&YeîjMiQz@zP[_ƾ8FOj4%' i20wwt5b]]o}c= {e.e_bc(۔d_?O!!noE_\ӀHxaL3GK#;D0^L2vg zdVU윚L&p8> zH73"9 %H)R+A5N2昈/JlEB YҨQ'Yp".@!ZeU"=2%s; <KKpywGn_&- Pqcfj<3‹͎;7ejYVgMFkBmW}3W.9hTwHuIT Zb 964Bj4]sKWդεx#-$ =TV`C &gTb>G b)'˱Ymfh.6QSyt"5)шGEBI B0[XaL+=RP6μH۫S!=C#>KW Pָ(ZBwqD"mIh&+\Lo-ppM*64ww LL^U1ms;UTCG ",{NKV{#{ľعM="m\5S2rDCS$9SCu8j( UEz,TQn*~ĺ\T4`sK(-IKJd) .eR^2k]lʀ'Gw!C$: gc\|DY>Ͳ&q͂l]N!l TrFIDVe"!C07R!nodeɎ/Gzgr /?/Ąm2F:83aS ܲ~K86r&Zw^(b?{x`Gu7-NC#=}ܿyg"A~ളVNJ @`5-l;ӗgDͻJ@j.n46ruD*X/)z 90DŽ ~%crN!`}C R%4c&nT1}\^j~){R>GYgBo=0?so5Ͳof_a0}d>gyyw_/gyx^^C_ UBGZ%gՂhm."?RYC<#~a]cL1cX"bX@"{#RပRۻT7*fi"gwqgmMݦSe+2lL f{fPCG)Q p+xg(5QC-թʚU~U@Op3^֕ENIcb!5K܁~p6!jF"p?r GT(=2D|~A툠)A6C`3*H̹fVFՓZf\cz&d>pDl28?xOUsgnm9,9>'+Bu\ٴ wB$|L_ZKK XY֑20seVk!1rbU*~ޏ#u]|(C$S0E{cjxkF`:d!OH^8KȩÉdj#6Ju_,.q][20lm" u| UVvtpLc-Lr/p(UmSOPAC)AkY(@p3ӐI=FEC)2ڮ 2T2$F.nG3%'F֎CBb(ǐ4側1d]ZAXfF ٟHxΞxp/a;@lz WЩu0M=Lކ#Cwh6vz!'0I'/'G6Cm跫8 jU?)=5NwA,@ϸ|*x%h=n_ j9 aRqFx6ECrT0 Ź^d,v./?W7z}-B6qz #(͏Rog)?ڳ8c?*t%rd32jk_ dws_||\J\KMҸ^,+Ƥ+GFO&a@GO Aō1c.j&bBOT;DCdwUS[#Gw?ōxt(٫}-X"XDfZp PlGue݁H yف&@f*rfv"BtBLG4t3a7*WPK?Ev88bDHGKrM@ O4~ 'j6ff*RMʻBpjR{<+7oIg9="}rFB(@Ln(+ Qg瑓z̵VnXb~ĈM#y4SY]hE΂*E1#`'Hs%qEݤ|/wKXqDPF~l2{5!"=F6zwN_oG..k(<##w*0 7Sx|ųNhNKP!SBE^__:T $R݀O7jko~NZ-2QɥVFM/^y{=tHMS&HH"BȄNA=Dѭ`EC=0PC-DHƁpQf 8KSʀPgpĀ Hf.# g Q5FP=Y( pȂVF@"lJh-_yH w9QX6"k1ӁN2FrXe&ޑa9!`<\hZ#F l>`??7jgi֪ǎ܍~_]zu7#=-aޗ{O}+7JgF009% 0E =)& !C<_a'#Uz8`t** r+|M9?%׋nkNfp`K5Bq: }j}UD1';!gz ǃL&D7*Dž΍GߙCs"Ԝ.+:,օl&Aj H!{)u;ѬRR(Jc6GN$;njkIWkPιK~Km1J׎,(MPNuN4urh"]G`(R,)]2Qs8R'+Eƭ{}?OzwP"lXz, ijW1م,pUZu9.R'St9B&\wJTzLAUDG)1X]dd _/r@`B{DB)oc1xiV *M5%B|7Iѫw蠙cfהz W/;B@:6?L-4bQT9+; \zf[Z0͑6-".f5B)M7P{Rbtl ܥ?졤jD;zHw_ j$(hSIAcDx=]mi036)а}iX?+(fU~`EW\-imn#R1"U,nb>I 8T^ftI"SCDMvUU]cbd2Nj{OpqEMR|&_Z$R-i<Ɯ͏sfSל̙s rJ3P .w>%aFk{Dқ.Z iԺ5`+3VM]zt"5Ǜ(Q3hHWJ )(̼в#2qクC4rLnW*"jJH'ZUC͸)K 7@|54+2 ՔJ2(>z $4\Q5X*XCe..  9cN̳Z97bM W sh4KU%cL) yQ, m!t/ʏ$?t͗vz7ϗHJ>*iC uvŒ_*cU8$ev"eYsl=ڢ8K a)__D-f&H1Fäȶ7-Vc ߿Xqy# MgbE( P;O~f{ku g[S]#3ovya- _䀪\R+6GsQT+f1PD3\Ӵ.ɥ*T5PD|X  q'KhYda D>z98qy/؉Y-pYXy4*P0<7-Us:;e*:oUUՉ =)Eyi&q7a p{3XO`&BJ{RH 'uE?)& ( ~W`EY~K}@sҭrU `B{zHH.Fj&@2 (C٦I<,ooMv,{!I` 4!~T{-oWZ[_IM݈=hh3,t$82- +|#_8( pPJ*]egl:"kJK\V`77Yu>;&S͆ re?I)mgi&C?c^2ѡsȘJvC;fJ(9e-1*...?zbS BT=USuR~2 jC`59%rDIëٺ2q?wЭU+=h &58sy!lGM<Ik&+EHot{M P=+@ÍJ?1}4 t]56:VCxpF8ח1Dń+)]@4OGjݞY=>?n̏'7c+rL׬7%)|U"܇ǒY,,g/‚7ܼ9癌2f|hZUfAS7&{gR1,ǚ ntxq]+B,"q_YU_bR1 ~|3Xw.p@:#|0{aFcQ12>zcA^C yu+Ub-. kC£紎rt˿$#"dC /@Ah) y'4A g֪$J XfppА:a+aH_(@!"=0hIhi[urԣ=6 h*u0܁.&N U7vDzw Ģz`6c#f6-]P2CD8ȹw+|P ",xL/ }O"iQVwM ǜQZV[ۘ #ϥdP߸YA)S2k1DPUס%sj 面S:BS/ʖn]ew[ݙSjTaN[KEqqWJ|LpkϻU# [\ȩMzPrHe]*Wą8? M3atÞ>}ۈw@idž@wجvR"ӑ15]V\9:x1u"ɜ4hQBW{`?1L7,dѠZ9"Al׈kو8+ȋ <_'H ̲{wR$,:\ O׌ a`npH?fQ)J=]3e8(Jn׮٥Sae/Kd+ EHN6ﵴ,ϚyL߁Qkuu$ihn7٩HgY< ;vp GS4|UxN=-3;׻.$|O`y(i>YD"G)]Cƺ,eRq~cp۹GP{ jo_ *Skt%(Uy#Iy1uqqhgIޏȕ^dq/B"H/!pKuT ?9r1d`8M!5tA,YvPUU_HCΡHehLDBzL C Sr^CFCj,:%mJH*f k*CS< TXFVRξV 5P6[qb>RBE\ʷ >ULkYUc*"_2Ʈ9`"C5*5Vx4p7?}s65h~#'ژN{9A؝e[f}`=lɒ$JRITeE-^2`H#1(W }b @UeNKD8gvWNMsh227ot/4L$=s)nE5~R=O5ۃG;]ch5(3 ,aL}@G>H S^?]}suhK@}1"Lz)U8ʓZgDH*ZeNM8dBWMN/b+|pLMEΥdn0P򤮼==,wL9 7a$k.ݒ.Bȝ)юВ5=lA&1c#PvuNl[}___"Ay&WiHnNp4UJ N(\]Yrφ12E ݣqaXqy&#P @~KhE6ڮ@[<ذ~RjS8s3ʵI>+HʛNlpڑV* y&2-W+_ꎴJ YfqDBT3=WU"Z`{;O:s }-m]2tD%}HW#EN9^:)ǔyȜcNBT1eNM|ʛ$evCU: e:$ ?T5o5 ILCԚ2m_:wl{?|wO~`JX Gv !5G({5uIZKsyLtbetMQ'FMLʜ7=ϰщVS?*+E>1 %i+"0 1n@z~7P#\l oֶZbϵ,_vÉrER61tw&+?>_1R(=aH}2RCXWUMfN-6f`!u)P8J]^,ѓGZ2>m4/C/[v}T ZNk#0gؔ%RKМV*љ=rIrfM TUT,H2Ysv%,ñOwrě j>>j1"Ts`ť.t̪i:6#%]Т*PqKn+-\ʞYZ{\6#>&;Yo#cGq.k{5!P)#"ZUauv˴*DkpIN h5?v ;gC1&DŽj5fc5FݏZ -!xۺt_O'6 GSǟ[:q΢꺭}ʌ)3nhq-~nlKn@G[ io._F oеjI4Y- WvuEq_m‹w+@rb؟_΍;K[bQkBf= 3yUT?@ t <f-ǷWC|ƓG:;* b=np3̧C_:D%qKUuh GW@BP-VIOf䒮c6\{<χ(}P Ut %Xpp))#_2mkK++Ns Xw@wM\߁w{F U6$cyx೸MT~F #vǑGC$S;5{R839Д\QX4=grmhEHd6tz~";zOJO>c|viՃߘm?txHZc-- Ȉ-=A06 +΍Y$/mϚV_%YMuJ¯R0 gYN@u<dH6pΛfw_fuxZgmpG8ݤ=lGXhC6s,/Ի;+ONUjWќn˘:&EH;9='5nAx.AiL8>cx'WrkDHT[. Zu!aNJѓ-yxٹR^Myz\b6`ޑps[>6/NQS) ҟ3Zbt*D66 ByYh9N6gObf@vԢJ]#ឭJiojTC [ 7x!{qm|#?d/Z0*ۗ 0̑rЂcB$m#h/4nfivWr 6ۺ`|qtA`R` 9jfUaLv %?q8z-;Ӳ>Z> p߈Adz\ [&W ?޳Nz, qz LII%Rm@{6v۔11aVUl nLW޻[##fߡN7#t ߿݇ںb-Y 7o\k<(טG' 9HY !:RA%"<0ZU2BexI /ղ&woks t0MΗy4 iмa遽z 8n?g6Se{R=z?'mqw*?qJ A1椧:m<4%$~\T}n2{W^aX*JCNÉ ;RyȘX5ۥu ^Q ~h(s-Ak AU:ΎQy-5R*_dlPZZ߅H*uE="P=,Sز"ΜQd[DЬ ',2P.o"nDXNǞK14-Obm%VLViDƓ9 xP>bI04͖en~.f1UBjtoܯc(?ɺ!iɋ8z@uL~ &P& O1ĨUI. <"Ig7{<ϭ6k@oƏ63zC+ n~9\E@TbhsE]Xf؝Ct#[bF[eKڢҏ`ǽ6X<n'|{l;=Z﫺ϧ|J_xWJޔ@l4+dFV rhH`yB!!2%whA}w[6I( ։ь.td"%Kլ$#;͌Brpաq OfWĤÜ"&HE/ton"tzFyj{s+%P&YW)6 ,$8DjDϩ242FZT-K#G<^E2*:vYdSZq]q]rח ̃sD)I% #` FDڒPdz&}otRX}p_‘!T;XM4S#U ACs{<m/T[7}V5%k V6P;|&CTGuc<.Uoܛ/A*ׄ~R}@-S <:SLcDr0E66.f&B%=[nH1F.8X"q1dcl)(#6;R-*R)J1ZAK_=fk$Kirf$Fɇ!DcjEfZ\.[4_CK; e{}:/N?v]ko{F1 m?oĝOC@Deٿ$JQC€ :Fv\P/V!D5wͯtMgQXKW\`D?!(@Rؠ#ێ %=–H*(xb T#\1StGnֺ?,MJ"9/NЄEFn4qQS&TDSiAr Gϵ1ҠXU#k>Ҫ5_oDuZ. OF5% 'zmH Dc;@o92ZVu%ua-1TT8b?Ps-ӡ/pL-Z0 *9SENtsKvK[=`,SSE%܌ZХ+7Ǡ)G9D yd!]6ewB"W9m"̰VOTcb1Sz-2Q§pTłvs`Řqg&O2G.fհ3&N!GD.7&f~]#Nm]/2"ӹ9R 7{M V;l m Qg=I,e5EsUQ2@sHfKOG,*iZЁ! -dnFY"xEqZ~q`X,03gR7_ˮ@Uy(sbNGa5Ux^n9W1'MkC0t+ܘ-'|~oٳ>g{Kcog.W=1"BtAճF^Gۣ}Uʼd%%{Tr?M6?~AՔӟ<EL#1 0@VDOqs8O_ˮ+Z#B#Eȗ+()\@ip= *8LaN3^DU:3Լ$"DuBd#)3|s~;!e, <|Sn(.¿mq-ժcv) ℨE(Jw\C`=o[Zx4/; rizEDƄ;JT^ЊY<|3N+Ӗ:A#դFeU]g.TFvhƉ: C_z!)k; )3$KTߪ(1tp |}s B=\@ B:4mlv{#%B ZץCu]2Vy夼TʊPw#z<زdSENYF!%kglށ徊 iͺ4{>IB6(չ,zH¡ (Xh~UU@E1lE˽nUظSpYj:bo۞2j/)[+mDta1Jor"'pWp!#b4y-x/նd`JkT8J)V=(c GjNeYnZd΂ 3'l1eC/C9TR S f(A,z`ymfN~_}pg}}n'+e{p-_Wmo@{r^n- 0(  + 1yJ^xP $桒Ӿr`3shbEkTH(>wzJPQ>JJ⭻^b3 n0ZןݩV٨mm]/"몞 w Z:AY#oA'D{4}?7vq+nGl1q7p&#CZF$1(*|"KO'-Sϓ5;3 5KI %AǶ}'jG\ۏMJ|vEK?6w#}?F\JΓef^<@iWHᏹJ;>1>lNEsvʼlG$!5.$T<Fu ])Yۉ9]?b[{ +-榎*mP J%tTZK 4|s!:Mp̤e=ވwI,_]iۭ6SP-呔áԺ0&$*di"A'Z~$L@BF1Eǔ()*Xгf\ew]<X%!%.o ٖBRÔGoLΨDx=6}få.uOA  5!>0O~SUϷ^IHss&XkuJnG%têBNK"@jswT^ھO-~O & (=_]3}Ү_lYqfQ]*Xf |^'ɡ_I|]1^$#80<<̅a"!qcFM.XȩF^AUeiE>#<~*1Fu[ek-e֊ua]:FɘhJFNjd461+!B*8z)*C-EK*tf>j~^:%UKY $ ~4|]%O˾{zp ceR}t!AU!Eì: N=&S⑄5{]坩oiFp7^ѣ&7_:='eQPx֘,i4 I?NLNH(Re7s0. S[NBkf#g <J7UK62%rnoԿzM>bU-P&x؀|N]4ˬNR㻷Ie<|۽p{wl}7b7/ 燍;n+v]p~ 0G]P(Jp!"ʊ߿oc/_/ŗ]A,b+;@$9|n2Uδ vnQ^iwۉTe&B4وz{D`w/CM#V`2-3f Ss Z*tf9 yvGC4wNu֒F 29X $ i+1gV[o.aLM{#lI۶(B51pl,n":)=:jtgW-% T Xs=<.w[1ecN?ߪlͱD1c Re3ח_ C"H;.XB~ "f7!_0C8CEq0#1@YDkzPR2ZEVs?|̷ '=I4Sjᦫ6!$ë#4K$R'Y{)Z qԕzhUBa "~;wr=T]N(D|@9{p7/ŲdBJ(]CYu". #wDZgJ G:RT\f?IQsU32kj`lzM{M $h9ʀFN&O/c%dޑ#6Zfj8wq $~V,dʦI~YTU'o5̻Ka~"1[V;>돗Hb@f?+s $ctك{1'g<\av/ѯ_!%B˲u:Ɛ8%CRشM_{]}d%C L@r8I) fn@b a@5: 3=ϖ.afюmq켈f܋@MA]$RI!J$k1WsNH@LiS:Az pլ}餌f+ nO(-5V),V.TzAQe.vٺUǡF^"N8q<<&bn-fLi B$yOyKdȘ%I-T9 e:Q-%pz4s2eT+m*kִ*Kx^  `x }}O~!fG!Um<_[nXOj>H[G565 <%#zJ,eIDAT  kj~^f2nT]Po\-c [1"|HߟSЗjy&*)Bő3n+ 1V+rem}T9zuFnГ{߇x3 3Yf|'ܠ~J?H}ٟYl$b|S;MeٻT{1Wݑpiޒm4wJ=U4)5s!'ؚ2%%0HC%bmz/5ZLD [΋q JNb[ *!RC W"h9fR"H䆠DFs%}؎cmL.rč-|9d+m6ojӳbAJtIZ榮7  Y[XEvLEU|ؕv5 Bq@ 2;zBÐГ|7 G3@ 7zV_qG%nG xT-nRǝv|ܟ.5T^DU^>'+G'[1@-oOt(-}jvu4Рxp]N\'f%1eN??fz}ǜR$ }^szSuYi:gEقoPr9()L4|rV!j ёIq ^zk]WN %+JW/@)A;E$(mI,I吵kR6g|9iJv0v8uNw~1?m]_Tuk2w; SP=)`X!Xғ?yHTT?Ҫ1S(=xF)4`L&:@ 5ңJX(>=Xl0Ɣ͙Tz1,iAQPːfdyI o@*tbɯ5S*a J]s-鹉yPXoNsE0FTlN==^9! B u2VuH@u8-ZAB^+`_NBFgd1?bfsLbyg< RpteC!Jl.S(F4# }~ͳNc%{Rk;Yز{zb=4>?m0O5RLD|oh}yM, l Fo9]x07{|3x_:55Ϛ#n= C INgc=@{郛GB(]͛ƗH-X:aDj6+ ]#0{v'`=Va'{}fPhiᖭ ȢJIڍ%-˵;,7<]PE5nMzC*kZl+D0q8^x<$O1@yٴ4?oPj?eI$"(hjfN|50Hhc TBt͇q|o!#<"@],UTx\H9=b@-.C~kN_S{ s\ann1n6odr :Z&T=6 M QJM(4-,nу`dq(䷋BU]_3DxaDZk]p`4 boEF[U ݗ Ȓk/%EQBY%³n\]E K4Fjk) d&ӯ/=K|g8$<ҽqP_]G@<iŖ%oZ}{T=iB?w5\"~^1\ήw)[_Ǘ9{2fV:AzeN<϶4Ng;nṆOh:q8K1B55M5u$y<|-. R +۫ԜMSjqyH4>KPPYbk̸Pu̯co,oL4Цq̈|Mt-z0Q 1@1a*acsrN1O|uF/A 0U5<Ә+"%&׳VW.w&c.GE%=dDSژ+`pwBE$Tmη^kZ]'%kh2,Jf k$j Rjrͮ s`])P ~2y$ !" 8}d8;db{y{vky Ky԰UnjFmmEfh@6j:ʜr*q@E9zFUh&I]PD @Hc|"/U?!B{KH][e OK&U? Fn~$WH뺳b7i7P؝ȾS"+K\wǼo#eL=g]ؒϗgr=Qp 6,<1ԏ?W"q+l n>;;m}@?y_|'~we?ꃛGR|pw72\GċZ$'q9& Uz(s~52]C=E?8_} 9\wL0ג%$s <^U{ܣuZ%N&h[k"UC]:˒C וt]?r?cy93CU58/9[;%;^tu; `ݹ]y] _ӗOs1`䗢6 S B(!ĜJcy4ncEw A,Ի#liVߙjj XЁD Zi].D:UlV=㯿w:E!zF(BJF(ՔZ/inGUKIW~RYng+ksXnf1NP^S?iSTGؾuII#%3:ބ!eZ`w䛫je,<.rr_:PQv]TXG$s.WI'50,9 Y+gJBV9ZwB.mvY@jU,L8uƕKdy~0c BT()y !IKYnEP&6*9F0j(!.S|6lk83͐DPy">-SIfWVxeSoIF8|2'"WsRȾHg.LI/) j02?PUx?wSU.{De7tWa~x֌}/] >?Ço|;ޣ3 Sl?ēe,@2͝hn*FmX:?NzEϛޞ<.]zzQ~!O6 k=ϧ\q\|~&?U#?sbQaJ Z}{\"1c =DeTi2lxXS !_&)qs_s(!'4B^iZu 3"(]p:+DEcPz{Wr12F̡c<|KsC2ZX #,T9RH+=t,[j`v*Z9 Y%HT]ֱl=򉘥#DqpNAs1Sb7##HE™sh(l5-)t[0F6Xw֢h-XF7@=b]"KʐfAY~1ssq\q.ā F"fr*P [Nqy)J_0w^qeCkYķH2_ `.;,icI_G'[T*wjyT?XKUd[M0ZMzP-"Ug̉b-s:\"h!UA(d' |)Բ&i|Z?;g% 7L㷧g|>wA,ĭ _mގMc] ̱dвmL[L\FT73u"ua=!h(/wLv7znF0ãQ)včv>W~~z^{Wt#% G!f7xs]/// .ǘSB <EZ@4DPeBc3Jʉ):ւ> 8@-(.8G?bciKUI55e+PP-cWC8qF>^gI s\ k֔h!HekJ,}]kżi8ݮ\(c#ٻkĮ}2H{M@4Os -ݿr8 9Ӎ\$f7+7o GgQrs2mEQxA'(XscasyӨ?sMzzo~83X癱ϻxd+;9,:qbuT͵o]0m^KQڼYJngv{vܱynxۮ7w?Vx*Y>y=BJޣڭ輑#,k_y?>5wHvJjwc<)3߽/!/g<~vn$HQr< (8#xV_//bc1iMqIX"%vׯy91ek(][{J:,ZKe>(ܐ3I?=j܇P:/sF# Q0 TO=2+bׅul2ՙakdݷWVyHBz LGsh ! tnȤDˆ%JFb[Qu>-)4^LʫBş x̛+l%nXڑe&e[3D$ZbpzlA3F:KG*c>f_B]5e@y  3)^bi鮔߰pSE0s5IUDfaƩqq pT;0=VDϭQr ٰƓI |vsI_'diYsV:!:$c_%Gr+ nI{'̖YG:\- C%K|93_nV9ȕ!JQ f0WA(J$=oQ6Vxxh^V-ԶBdXFJcG!߲wVɓNJ;Ket)R!#2c :Z"TV"T,; p =Neoլ8CըCMR"5QރLn7YXwocDts--CDI/+y>N^3R*e0Cb6#OBWv #lx4@ Dڨ.f=abrQArpyЃ\;պPO2M.^j6Mh3NK3D}wk3Íؠ/ɈX\%ynu=־?y-2٩%3X~jlZ[htp7 ]|Xc!zWk<}~ꦘI0۬q^=Ͽn-^߯[e<3@v?5p>'whcH_d98I!r^9|SIy1dNr= yF6\=u?RHMy?I sz3=gG@ [Յ\1\١[6Qwn6E;y; na6}N!=uPE:@Z g404KN3lr'8q4)͂6gqF ?E16Z\5BWmGRZ)p*4L\ғ$ 11'"h32dcwEcm$7q]$BEJ\)IF@):0{e@V}t_P=DX-} EPw]C@t` DQ4Ys"`y E $x,.Ceو#"m(a>VTS kRQ#VjВa*b>^uhv{nOE!. vqv[Wr!Q" 8OO$GFĜ>_ˮ/!mbTCC9#t),I"B(O .8>~dot{ۏ>HܝMcM sE {_I?weo;d.gu|fz,rՄ/+od/uV(qutؽJ)mwOH\M=6ެ `wP=[ Ꟊ^ZP̣î_I]qEG)ܝҰbu/橮EE-nOُug1u"!bt.w=_˾3f"uOLIa&sDS8ttkd X,A av AZ2B@< pE^=ݡ^hW4qpe6rǍݻ:k+npN3-}k[NHfs *3&OQ'-a[fN⨄L2I3]#pt qN)PB)I=a"dhUR`:fwM.asPpF)&XlQlgЛAVĔ"В=b"iYa7-YfRZ~};|2ޥD8U 'ZĥzVƼBշg]]b"PE=T_fׅD4PD Cˮ/@Ս&kZLpvAGdqp,@xxF%"UQUQQF:8beC*i|3 "r?H 9"ҏ5 J1 s"-ұ}8Prn>yS-|E5|,}?.L6wa?Msq+ #Z*_jc=PHL Z14u_źC>g=]ըxD٦؆淬HVA~x/C)qa,6x!~CЧ[U47?NEH0R>BNbȺ#w'!b41¹M.gq5K;ZzXikr3p<Þ2 @C8^: 9n׼R%!qe(0[7"$[A&E'<!u:Ȫp@'BTٟ@4͈;&o?ZVұoSc+$LiIڢ"  [*ljbT7g)fqZ9#5ߎKE);!ZbmY!3L6UlSqItj R%7ɓ0uC p9NشO~}Jk\elQkDFgqs?* k\"㪋 IQR(Ern%'a)-R-oh>Х(m~W-3kCH.՗bX@( QKiTR$pvP 6!J"y,PZ xQ…B%wc% h" dV>vY\۪gUy˿~] t7/4[ C 1RSҚHLNj ap ӨBݹt3둷v?lRBxtlS[Lψ^_=~vm0 -MW:c73s3K *fzOơ~R《^1/ "<1F}Ɵqsx3ju-tH^$@O<<2 v5AFɕ&]:Ў̉A V0UӦ țPhn37^/ilQ(v9 jAi3!deHp6r<@ .EX4 6ͻ>!Qf&$Uc`h*j@40'c|#">~(%0<\u|}:pDs62jGhH5)jD/ qz dcN@>^ݼvD1*^ f"XҖԊJkZf?xvQ JPTRE1mP֘ t^+s:'zuFK^J^ [KN{ wl:I֗W Wt&[e4ߨ|0T!@mȉUin"fm_6py oifa$-㏁|cȩ9!8_*`[:DQq=CC(=kYB-(Kw=wqcm~ i‘ōHz5~غ;-‚[2}!^68fx+6v~73uo0-uOkjBWR~uKP!xdZ~Ve'e{~fnaCx殟_2F핼cnF2+E>n}R[yhr-b|hikVep{0;uCYuqд =*JBDX͡>;=NMήpr4N߹ZV:Ne{##ItȌH g_N5yUcRqP2j0'ldk~@ϗqCu |fTV *:!3mF_UcETD9##Xq:B蔰 ncJRC,[lӻf2~EU.icn=k筓dنU9vC6Ƞ%(LS6N7Rr J|y_fśKAyD(9E?|NzOC"Wjb)0$]Q*Y,Q +8< AT:."X RW5MS&@f4-;oG̙*! ’7 c@To^W4=CꗈJ5DĊ9Qb~>)ZJVЂʞJk@ąy[vu&zp;1_Nuz5| wm%dW9"PG#B̪2m5\Ry- Y#)WF ([!nlSEn{ok]_E呤}"n!@h$ 3~/{_~͸e;"nR=zӀuc׹m7L`wWemxQ>1f;üG~d֧ADIoW{uA,s\vB({Sb牴oW[nj.|}z>o nobQ <=NGn2 M-LpѥѼlׯU{dkV;[!β%57֍DB aAYqM+IhڊGBEE3LsۂNo:REiFk2jN2 M'J׼Ek.&Q,PTtLʇдS-t1skt*qWR1P]9LAC'R(*c8.r(q( ֚Su;R r>_!Ok4&۸"ۼ MX=hV9Ο?q?CSP,[ 8mXqfv]!CL;13td<XLʫG=ԴYsY z i6tT[z_WKRfⅾ&BVCu(,3tBT㲔 ΄,fIDURNud0T3$0s5"!2T8H|w'I"$EQɤ"zT܉Ylm{AOS@HdT-nhe$(dU@ +x}#XN"%a&)jdC%)|?,D\o5;$# $pժje> X5[|M.OIhi"'E j<:0d/,fF@ dL-fA/XvKSUx67H=[cA24AIC} ,cӌd%DMT3&F"1j+wG"U6ǍꘈG2OG|*%!jwj~Wdy?oj eQȠC;6A iuC#+AsFe%)Y $|EP "J?]GHV= Π=`-Rvȯ); 1],k=m_ӮJ9(**о$ ?zcGF% |h³v62S G_V[L!6S<}mw6~8;kUwnntdL_wAJN,Fu1]4UٹQu'nD.H-3[ܨFP@Q9*cWXv%ou.Wnǭxn{_Ilw>3 Bź\z= z606}Qs{mq=X) G"0P:[ymg- qq+E:Џ)en#8%lfY*1BUyqf#nP;}870fn-~_JzX|R)~ ap ­j׀@xb!wn"#[F'5&d6Qb }d(fi&J L])CD2WU%D0t$Rl˂7Ea1!L8aY3JB_ǂ uieѓhFC! =Zȸ!AR2^=Rsptifpckfo0ƽ%fϛ"JN O$+3=#dܫg+EPD"\y Qh;&9ƨqf)]wvF=2 &L EUU"> g4ףad׭{ݝE0ZuЈ$/ 1+uO^C$PYe3%mm* 烚]1y T9N0q"HvJ4޼P-3e5`Y)"vlk(}H4kђ[(_[H~nhu-TOPz3tV6MZqT0D9?]o.7üfYUPfEsȺ% Ϗc<4d!yR\>1kT MId BdY irh%h!GsZO'׋7j,_XoH_/CmlOw[ec]>5nt8]Fٷ_/|֟}FU:f)4~˝=ٸ4t;IN%%ml~ ΍|cQ*iU t`+۽լVAf4B⁦*IʚO_GW'~ߢ,m nKoaxTީ˰#\-U`g*7l.VP ٗۢi`nP]rXȇO`@9h 8q\N"+qT6GFxT?| Xi-p#nQNӁ4ҡA&V76-fE#>I~)BᯥDLlRJ/RE=pFxd ȐuF@e0j-KJaN3"VLk4s ^*s&I* gu$p3Wc@d9UI6()s1t'1'3T3%L5't[b%Q㨺ƌx] d":8sϥQytD"J^^S j~]˦C; -!e KL@b:ГB9K'5ѕpJuGg SfJ]"D a-M({v7!__T[ V.\:MpJIH17YCI<]]XtL%#C雍A1+7}LEn aiK+iU^W8ۀP),!35Ga6VjQz* oI@#r7K>>}*04>)"?|0^ :gex^)BdNF٪E2 #0TҢ[jce=Ҏc'eOR5+ ԘD6%Û+]荨 zge -pT|M\o׿ϟϟ~0 CwH ^:x?B9!1T|= aڲB*yJeC< ,ۑT1ڃjUUѫZJ7ۨl{Y}:7T[F'o 4Rn]j]r<Ḷgpdy Ƭ߭ojHYz9K0{=u㉛pM&ژ_PBK뷒g*Im1זW;/^l[g' nTk=cU d11z$ M=!) z }/Sz^q1T8~InNգfEd<$(}9azP WRIFS_^fW ZVhw$# vi9*<[\-f_{@38o=j\j#E67/¨ڳ:4kcFD 34KdjV A:nEiUgBŞQb#PeGi{(YT |j!M{WEZ ΢rхd`Ur|k^Eyd4Z՞qsoUXQN\w h2.SUe U埻*Z5T0fDb[bPD )1BǥᗛFjI"x"P.+@ CIcDIOM%qY?aA o %n& or^ma*꽿wOaW>XCq-I@6)Mb&>ȡc1ơM٨+'Wfg>uE} %ljC+|zΑduk-(UY&! 6ޓph9%gUM/=.rRGO+V!VD*Q˺!=F GЦHN)7p;ZdCPDU3EF)Hjk]#.DNܫI:9mmu[ɭWjyR PVZZaL}H9a#aߦ<.DpjouR۶(Vҗy,ϰ^BsOd^9QlG?l{zMBV*/L!Rz +]K%dSn&|QV7yo2b-78fWK^eXodoLܿ}|gYı{nKԼzoozf$ +vy׿zӷh;'p">lgQ'`66R엿-_OXS+Ny˕-J q\?u0IR<m,YJ;ҡ2" EoVT]Tӿ#&:ީ]Yn3 -2(|J2X_Sx]ݽbX{nvs4W|ljg|p"faVkucO7M'lnMH!bIN + ɀVWmc%"2c0"P63h:]`LB@?( U q1& W2'D#LrIUM+ۊpjgsx[IJݛHE/͘".CW[DoM=n(iLW6^$E#-/QM䤼B"F!iIrj18BpRTS?EL?´)2/Lh:|/q-Tpq PU.v+Ka0a!!TB D(DƮr,3RR@@aΰ*"VvKIr]S>8O1逕p9D mBUg2Ѯ 9:)UPwIֵG7UԷ%^j\W|~i_?++pux LJWb#9* DL UUJg /l=~Of*SROsbjw5{>x yd]h7>$Lwb!yb6J\TӠH2vVocWڠ?;,wN6b>v@6M/N/7 #Z]C:xuPq+]E:ƠzU3-YlMkWt{qpm 쏮*È~gfrs0vfJ@ c@ude^,4`+M#_]ٔpcja1We0#x@^du~]m cS+kP3Hf)76AI6}vFRtT-KY% I).⺆HOY.c%%ǯ@eMUs)^!Tpy!^$:^88P}i[BG{D"13A'rR/OԒc;U</;!i6߄ b5]< 8AH a3|Zpzz~1H_F$'""KUq2< 4#ywEg00MT#I ,k9yH..ryj54B;+ 9렎xkEt2]Ue#\%1!UӪ2P3dZ1|^k91}Kf1'ܐ^3V{0g]缾 6cC_8Ϗq5EYnriK!e-U'Vϒ nTqS +k,}̃D0tιw:% jRx8<{}~Cxӑ[ jQ޸˫ { |"Aݺ_-+h.$&w`xg~)} $k_8]I 0o1{b;rfX-cm8Sp}]K˵=g&gDž&|)[[qS7ٷԷgv{?JXr>9 #.QI rCHC6*rYeVӯwD:w#D׏1Luw1k@%)+HOmMne6ݭWfoOlVm.|]/˪w\kָ{T*ȃ']tcLW-vȍ9YΞ\8י.lfZ d%;B tDHڕ` 7#_V5Zv7V#7ۜ_KL>.p˿K+iCm"^{8/4f՞XRtt\ҒVD%!&W )S[6KQDgcmZQ&En ^YHm{fĀء",b[\AKDmC~"xMO< ]dEG+4zPѹXQڭ`a(e.M^R=6ܚ\⬗}iX{ܨ9>n>VwktFUd߾_&m/;mRHg,MsK Bq\JKR9DKaf[@ #`^6  7sեO a2ɸɡ91́p{G8]\RTX4IfzgHMHbTjcB+ڂخ `ȪLs>:,i1qЋlcdf{SbsIe%a[hvVK\x[Sb +6Ps h4 %/?d`teXZagy/NǙ3+c_OAK/Yu%ae9@PIOAN'`X}Q]%-cXYFiaJMDbQ' 7^Cþρ¢,bYgmn5ҁ(aۜ}loпx_Д ݒ وC#N^/C$i>~ 7*i[*Ө0"XŒsd )0Ŵ퍀g#S~ӮLJ^lwJ#Zr=&eruV)2bGVddZDL;"CEr@DHx$w*]edmYž!Ft5d RMA[](.Yz>xn_}*kfo'PL'xђ/H s 4Z֤!_*2 Bua]};)>wǝpAp<Ă;E72W>'pz?io#IwGk[SAѴտ{X} Q.j?]p?ZY^=^]zECċh{}5ռ/VrfhC+;k,%Qmhp}#dw~@2B*`CɁeUp*Ж+,NoW Uoy@Ќk(c=1->E#x8ӎYxCaTj2%-D9!(dPCc`Y[:I‹8T9$R=_`AnaM{J.m֢yzY<'Yាi U *[Nߓ(~{O$몺R𠌄3{4[vN@/ 8)/Ctx 8GII2_tiYRFB"_nA w'׊tDf'M\u]캠<-0mp-rΦTR2$PgabF94D9zlB (fBqP>orf+u{g hcCZOa"x/3{r=:>7<^+X"657(>"UUje׹!"~//=[хyaABrfqA Du &=ʺ'k"=4h-Pr:ݽ CX HрP|1E<NC Bl>YJ<d0a7 >=W@Tq:S:|Jst8_8J=ïlMs.7__\|FᶶmʫT!,p3wp2 LÍm]ߔT!=bxYS UgO}뙆.S 1[λޒ]E rMJiԴH"|Y Ho>]P$][QScTvS²F=Gu߷ole0ck+Э%ZeLh ! Tyy? 9E8qc XC]Um^8rT+lօJ[x=Z{V&$FI{W;rcGOӐnR7;I|R wn~d@twXmT2ybCF] ;w5g.'po_sV<,rK<}.hvdSܶǝnT*|[['j̺g hֺAJ=z&PkGHj3^ʱ!=ʿHPUd'XwpUBteya>7aDLN 5wJu1vudZC[&=[ݯb#tQQ]$"zŐelIG۽qFC܅aՠti! 8_qgQ9.x? x=E;6߶%Xgwk ]z"wm͕etpri~ZF">nĮVύ*5~=CY^F-j֒tsvU) M}+gCD֡4?GNp0 Co!mbanVXPRx\nw񵨊SFh0ƔW4+ǀ0G ZX^VH:Wr<+_aۢd6AN2ߘ}C4Cu8ZMCPqhcQ|U0w\ZH,Ȟ]ҍIces$ZW}|UU v36\{׍}UR?. vUn&R4EXjOv\Y\[ݦ~H@Z*e9޺l4֑sErW1P]D wfInGN@,`>$xJ dfO>禾,Uj|5?ɿT 8y:|C"?>#.޷.~u "̮9҆٬(~kahbduefYΈhyˏwLJRpFvx{xlnO=8s!YQߜde^iu+q8f6یE`fۇ8mBr7qO?YisY)a9)~c6:OU=sxM>gMO%| ffF>ݥ^Lè},*O&(tUQ͚A^ @yI1k=1`TIQXUrD ni?̖+^^˒7G6ZD! Q}oSqRL8~,WFk?TG\ !N0 "|%r2gV#=SvhjjOcCq@Uv[2oJV ="ukx//%EWX]f'>&npy b=6޷Xo?Å)q;T; o*ҷ,nv>֍dAc2;M*ܱn=T_8@m{,=}إXPe1V2cOBٗRvssޕWU1qPf6z .6_ `ZOKzCǁi(obo⊸L_x(Ca&"3WsQOM!pxިD^?*(l @/rtcY!F5JTJ=-;xS2G/99]b&z)CG:4JDSB%) §41P Č ;4̖Aybu5@x,Bk![yZDT}E'#܃`t`Zۧ-6 &5R`8X.=#Ӣ4GTXմ{'"  )/3+i r4PrGMHx廪ls[%ȆD6|%{[Q8\%>^z}8o >koUÎ1Ttq#Kk0wԜ"6q]xIg@pMdN#[4lF0R2^3˪jZKrF!K4R>VFde ÐjrreăяSXư*7sE4!;ZT;5k`N9ꕭ"'r*K$2eU^Cf" Sd T3DRFs2db{?"*k p^; ]ֲ'{z8=D9Z%tǟ;28EPUC(T V!5#ݤ EcZM2Jx-|yyD~P2 T>]>PMO.v wk6]eјk?ܡP0jm6Օs?炪=}O}w]rH[Ⱦ?4 qW!p Vlx[oM?pﰸ޷cLT8i鞤6n2}(G{~~$ܶIud)2#%@v+K)x3kP&,(Ĝ~sN79|E|??"^zhn$,d !ǡnNF`" xJ@on(1cG/ȴu[(@R=ըճgxk2]H53ֈk64La4=%Z;o|GG5BUU5%}um$&Bn\hjZ+!y2’mZ$CI7s^_oC 3bUShA,"ԁ2K'aÏ5k.㶀NZx]GPwmlUN($AI1)UŊJnL'U܍5Li탦+30R-nKUylpV`L$63zm0[‹H>$/(Į4KnRZER-e-koJb D.wDu8p[kf,ǘ꠨JP.^oyz5fMΉkzL<}p( 0gwz5+Dgf,V &A'dFj]=fzTT,)큲4%ik󩸇I*WPxSCi(@gǂr8t:*ev]Σ |$ҏPdD9,HuinՋ¦2|L=>BH^(t^gUBihQi箯l+DPxs м"<=_]EP'C(t#hWu[Z.B:27'=HꧼnB1̶Ns!\`yK/j {ov?O^d:QhJT'lPr>\Ms{q]?[anu$vu3n<.1׸Mw}.'^BQy۪&!Q{o~~rʶ}|,Uq`!7`~أugmQ#7lnDztHrDJ4ej:Ι)o\W  $ ?(/,H;Su&t%1E9/+f^k$Yډp]KuPT%4t(#& <"[J@+]vULDt>8e#f Wk¾ah$̆(ec8!jFH.f>>OIaf&鸹ՍD9΍gsf$CnroewՖD8;~y屸7zմׄ3#ɯ1̪ =\AZhNTmPȂƌgs`˜MV+vԽ7$į ^TLoH6 : ){B$#Դi1@[!҃1P5WZo9) `w 6|˲,$:ՔA椗'qQ 0InvVŀ8骦*b1JT")Z5XOq bZ&D}}w? BL\x#/?n@vRwe?oͭvEX.7[vTͱnȖ,NlaL4w@PC_ùe!MZU%1\1==d;~mxRE?GQ5n慅eAkkbP}9Ynڪ?gdd6P[.CU%etcVr*[ y2p#w\Eᡔğ"?('0$Gq$VKYsÏ#Y1 ,_?lN9(+QGdNsfqT43C]L W^VQ((XDZMvEކEN3\x_mʚ朓nPt_"duu ct:Ġ*Hq\Eb".4ey=b vϧ$1Ebo(?Yq]DSkla"B,vC| hv:*=,3j5_JC?fi$ZAg$ @2|Xӽw:ŀAZ{p,փMJ%ێvQi:>dAd h4%BD$t a'<ˤ_c 2f6 C^"ܠ‡2R j &t•6ތ2~I qoA.X1+\;,>?SBw 'mv}߼sxoT:^Џh2%qoo!_ydO(>FzZ|[֓T,Q U 'FVѭw {.ZYuquו/C"gcr!f^ '9 x mOү:ϣjF처+D5BcFu)rQaQx: <#AUJb ]LM>15)Kɝm@<c^|qzCTrٟ=IO21#&D;T/99K",܀X@!(up^\ 8 7*LᕱaQADd1U\}YZ@yѾUh  2"Pe[zO(sܗcIqY7ʵbΪRuP>$k%+LR!f(K0QûHxV TRq0LR * =Q\3ΡGC8D3eJxs,[v0De3ɦ S"TwݣVj;j :P~q+A@1O(H*:2tZ%#鸪>Mg;k*bKN'|cԿNw6 7*jNn"5+յjPo V=D-/eٗ;B^UB9ETc 2Ds18A98fFaq p hvze@iOxsX+t :T ̛(m/P"o1MJ6fux5"nT_¯ qmlmىǵ؎ƱGf0o++5QޡBUtXO8>5 }' }%GzX|[V~;:y";Yw*zE|}3K.F neAռ^'t-^U(4W!rQI?-@nQݣ;B4D) h9^"?ȓCtqxI~D9><0f^e6w;r3}y ups \i#{X?ݜ(B%0ͧR\Z'`/6u`8̀(SRXr9:,bQՙ/^Res ch=ʑir{gW N"L5=+)D0wZK"Y }KI2Fҭņ9ͼ0oH[Q)K "ZKN^f+fsv;ai(|ɚ`U:0!cxg_E;& @𢈋 Z6|_ٜ2A_~ń+Zgǧqh4xO$w#&!U T(ŝ[V-E>*_S͋ܗԵ!~o\^^xk,iz'ze[׾"=^3a-[y+T.0\&R\ᄉ:6<5] C+6 @{2:]sb!C%rԈT$םyqׇ^q}ƴ#kvK"xۜnrɒņyL{ O[)ů+,v媎*@R <V#" ڢ)i PLP Imfaq-|pHk`v"zP3X M>qCESSS!Fj" aIϣ =@ٵ'I."k%d9 q]$OMl[]f$+[7RtP{@Rj-R5sK$\9FUǘ&jnaM;n)hѻ*ߑɲ?9g#!qz Y L.A6UЧd@bf䵽 4UZɋD-$I0V&0(k34mp,Us0de^IY,R7 sj&*AQT:+%J+nr*Ed99iGdX?):^Nn)묜[QnM lޔ-D aѱSi1HlxmJ+u%e8{o/׾R$;["tR C-,߁kI +r).*`mgL߅Kr!}CkY@䦜W牊oCRCZEҿ5Aj1tRbSD(ѳ_:I7`qy7EڈIwFP,]Qï51Xk1k<+hH/.KBs{?3^>z&W vZﺕ!M(/ǞX]Oۺw~] )~yڠ}6ԯnw;;  0Z xG W?tZ/}Hٜ6n1{&p;E=2F5G@{ +3UwЦSdi[[@)ᔒ^Ԯ7^vu&Y||~Gpi 1t !cP:_skNς67NL6b%`f7Pn6?u(`Hd#% 1{SoZR-vF~,%+etTP.__~gC+Jqd SҔF'Ӧ۔t[-LǩKk%)_ p+KPzV!V0y*Г{N[t"f8_v_T`w)Ț5@F뭃LK6)wnfV2j ;;6/'(*1!Zu c`9u%-9ǀϩ/Ǒ;$i6&}I(L= ըBZ؃ǝk&3<wDbJV8t;kTPg^ky{fp)FVBg+m/{͟jRDKY:0\*b6uTTIteGZ tЀ3aAsxk)m;i $ B7y3FL#et[[e$Z#[ǫ󿃿7<~/}W:Кy|GTW3$p-:\oϦ7z{-{>i}f:T?uvikfWe Mm{Y?vp{:ӝVXPHybUs)vxqlYQwD2kTx5"P0k*IOVg tf_xi&ftW!=ȃ"1 FTow`ٗi`dXH1ç`Ǚ=$AFvEL |*<˪M pڞh褄o *XMgNBE%"8tH:r y^X[U#~>Ӓ1D"&W.E{x5Aдa*&|M;pws =$Fed}M=Ljĝֹ p|p5A dJ¢V0 23Qp[}^+L$F<$x# #l\Ï)}J\Z`(Z8 C$_r{!#7&kQKP.&Ksׅd,C$3VT76gtiZs=\cgETMe+&#.d Q7ݻfLFjlD{"1g:DGOa\4Q°zh8*6ZgʨHIb*g{Xh4e98f>,\X6蛿1Ĝtf!YmYYJvt~W]kM4yyo$Uv6]u=m"-.֢&0cADS*PP5!WDIDu#E%dp+"+fT(Fm+Ix+݅Hc79WAaJ7ԓځrZ{='7`7'm(>ႚT)=nmB7'ȕ]_eYؼ5_/huQV\g"75:OpwZgPZ=)VFP[$tqw1F'"эfҹLr+j;D]Q^<->|{蹓ݭdcw(HyM9&:Ao]RHIu]<,yAf!rCdCc'a2)2D5*QpC=%LP#In,hxU=}wܳg4]Iv̪T';IƇ`0q\x1jJRlVl]&PKF уre)DUZmtYCeFfѶ OU`UV;z8{d(!et{(Px#!rtbM؂n倂cqR &aD@?YcY6ꃬ Vs#hΈ* ͺgx,d Q'v낻8WM7,*&[;7oiiKHƺZ+f׿oWDA9 rp =,C:LF6ᄲtI@\!V>,u9z!pq?_no,鴐4`՗\]gvMp&"qu2J)Y&KAu-Z7$rUɸj5K[*,zB笾^3x2T[ryn켛S@*7Y|^. tq [a]o\6;kԪU^2;ў:K.̴D!/VU&7㫕X yBY.IsQ}PGtsyxdf˰be! '* tQe }=,Qn+AKZ6nD- > hpn m[qC|;wܹI?0Sx?7'zⰻ@_^5}lNKNvx;׾1s-Ko*\~ߎ{Y^Y[ڳ ?oҎM_LŮ[ZD{ ɘvtLQ=zZhM8["!naP`=![KImGz.l],Eb+oU&&z! ?'xrܵݽRzČwQMRN}9Od&SnrwÏÎւ_(p(ǨnF22\\`j!|>jS[ Y4Y]CT}luCd)Hh%F7KOb)_8pͬĊ5C&18^ܪ)5:,v f)VY3u eЉW;]RgEES XRz>g f{bU2ВJ/e*Vu@LAnVCe*CY1o@Ay֣P1c8e/*a4)W*HҾN%qȲwgRRH ji,e max`3,f~=c>K M 9ijWbo5860GK[@l=R`Ixٻ bۿrc{3M_N,JRY\HK]!f'.[N-6^]sbjrRt d `7q$k'RU;^3ܓ{}ԅ-[N55'SO0KtHpi5c1d–\"MCtjMȼ3N!7CcU X5ߓ ^GMy -hs& e2e^Ysq+|G̗fXIc-0i׈hv^xӰ ( @3GEK6V]޴j݅;u!T4}ݳ\]{}+]`pO<; $7L?ңĠVAL}f&h x9~48qޏ~ >q~3,h5ޫuKt2b+nfcI*)-N"}XU̶M9Q6lێpIږH3p#!0sIb!;-d9͒T<Ϙ33 q'%jC?v#3>ƌ"^^&,h3.W#Xfn}ҽ_j%K&UTYB8SQNA™S*zRdDd̶6U Y6{1̆(V=f$L`b;ې ֐DpB{ZfL<H7v{v,()E0&n]$QDrx!2GPmaG]^23,ctZDd%ƙ[Zzx d2f +R,cl5Kon.Dp/~CKTԇ>sQV՟.kZx)=K헌oiqMDYaL3<㜭5|`9TpԦAvKm)[V cݖikGy质znJN~۫ڻ;%R9awȄѷgCRݒJ ;2ۺUF6J[h !ok[o+}x{` ŝcI\Y+, ߓ.ȋ=: OǐtOB{\zT~T#eԏ[ٷþT+ uJ%3Վ<)[5O;EfLXژ ƺ؛En3򓨌iSh.^!ɡF2 #/bF"{WƔf9<Ϸb cW tV1|<`FazY̦1pC}U59r1OHydw֑7Zxf6U1_ Ӳ,PH^|)!XP=sQ+l4Uz(բb͡[9MZK\|6 |j7lw1gv<:edAhqFVBѵ7%2]r%]<'IxOPvMIX)^ca;&`d֐fY0;Sr#.l4YHʉjlzdmZ]sܖxM[Ӎ:i-WlkZ#s`{5]%dTfr#(hN{#Vv-U^S剮-s]DKmCZ-+n@m^V+;:?Wp\4,@H-W1T,q>iZ! kekƮP nh}E.ݏwl!: m. }w{g ƣ;W}Qw wg#ۡ.rdZ壭w[;:{][gOoV|eXuE'׍[hŃbcĺO|G@ &t]vHFBV ~+9՝m6^Y yOu5[ 6TLcW X 2F$<$#salYed BƤ))(Ɍ̯lfDv`t .H=8?pr4D_tsy+uCpE1ŊՋo$Y=S gPfa.!3ŹVVsQJ΄0VϧI~DXL<^_4;|kxOqW"C1&7NXFz;k7?n8JFVߞ`/lQ%T3p VAAfą%Oǟ(Ka9Lؒ?t̹*+d[9g>0e)Xo[ۖ;j#*cA5|v8͚dMkbhͧdfrN 5ZkW]hJ:)A`2G`JF]GW}QǑċ|ɬtd`1BBʪ JY+nM #Mbjvސi1Wޔ^>h[;Z5jϠ 9x7&"Yr+VXktIu?>Ua],T5l%R3W > )%~a;kTbN+zܥz_g x>T7Sǡ4N"7rPⲣY[heafύ뷋Zz(oR{Ө)F$eM-Qzc5_u;iHv2u6?m4\|7np-Jw&SGthދvu9}\vKo u][w~{Ηꦫv} wV.DL\&Z^(1Y\6Y$ޯcVn,+F6e7O/K۔FCҨqVULlmآB̬n؀XkGΘCTN#Br<-7X5R0sU]pLWµҿYffR*D14[qU0+*]Dx80mDfkY ͉Ӂ&8)M_/ؖT3%Uc`0o+vpWV(F|̦rL0fIj+1D]Jxܪq 5h0RՌlFX9߲SGh;6PUͪeּ3Ʈ3HұJXrqR '"| ܛ΄V+…-iGvk]}!eMfF7[Usy!{6``m Tӳ<]'mU[DU]-Z&xiib\y>eGYPt fiDY){n5@4,)Ny 2wrǑ>LS)(5ؓXZa&)ha2+Ukr* T;D5-E..`CTSo '*ƌ`+p0.V a&>dUdZڋ'E\"ET|`[ UuZY&tRۦP\PVJ(N/:VTGu s&+}G>@;TAMǣJS*̕q\dG>p0YMhI{kJ{s"'ʎK(TkrWWgK~C_sE,Anm/ݟ>>qkNߐ~z5y@si߶Vs+S+(;ӦBo'2~ujϷ|Ko!iǢZ|k9Gs_'~smduQ"8EX wEP:xw 친j*al@*n52,v*QCOΉL73`TCýzȿtfA+h^̡xsprE 9G'a=ݧ8cxjǜA&m8e?ZJn!cY, 80W.k?aO+[ghkLILSs*]ǀ2/I%VfjKȃ8~l{imdVb]3I3oˡ㨜3g3D0d \v |%)(N B5VȐ iu2l?[ehcy[h[Վ@$噻&{h]1hrInHu+ς`6o?Ԙڗ+"$Dʼ A=wX(VsRV" *-csT>C#Ǒf0NQ,t` 0tG2"-~ĢH#gkiЫ P$GA12>Hu%WU ?$&]Uƨe~ؘ(> *3׭rQM]p%O@T(yqUzO6kgzAi+/woٙ<1c |Ms̾x^'n~`@kjhoTx,0fczBPVWZJSeuE_a׮cwtص$V8{&0)yVV-W)̐Y)LBGҒ!]D+|]ͼvbe'X+| ]!jw%(S|\Uq̜A@yU1+o oQ80^"Jar=і s@|%.k.{+."VE|t_{AQ2f3Us-,)^QVNn u6%ćy9GyHv^9詫=؟UAUXs*&bnB&2hNsh{Aj 9k탵#*콱f:VjM*(9`O!e6/AP4)9ʣ (d=f>V,~1vn0 vcWg N5];J0R.ʯ3a֚24ڜh|U"_i(PV;BC$\uF_񑫻M ,Vm,†. (j~JpHќ[uX5@C/gmq#c(<$-| #nGe/ :tO`[+ڧ%#,%%o2~m/]oLE_֨jLvrrKN/u?;{ke"hS+#Kp+GU1C[Z? U󱋿GD[s$>yZԷ̥6(Ч~ YLE_͸Hjo3E`NߊWHOlא l>g"u#ALj h L,bѹp@fFvPtI074uB3T YC µfJ6@Bc5OʰuyHJx\=ml2U+{!^ 2ٵ.+A%8a (%Zylh=ߴ:;iY-7y-f\ܿ^ªq,`5=+~j=LBA3eXq6551 f*@,{84/wϜKbM2wᤀ3cFLc@N 2όsQ}xsϿ"Td8JT'3uwO]ՙ40:vM$ۊ8ɿ}&Y;\Xc&32S@ާL1Anxxq(@o/ΠfQ6sjNg%o!!>$ pvmͬ e<õfp|=҅dL%(B#@+ɾicV57ԸbWDYk䪒i48YYjW&w ^bDU6wV *)@\>'v]]-IeΖ>\0eO) FG+D6,ՊS:pJ˚ aC'g1SYhcL0Kzg|)GE̮,)Гyb"6h' %\e7Z#>V{-]wbWMۉ+Ԫ|߉_Ӈw%Q;*'"fަ+Qn$r(_qyRʜj3Ś}\FlC"l]km/l^̫ΰoP``$yb"vs )i%ӡ>T7ٳA1qR~PUCjwb }k0$PGnT;"{.WO8"Y[xV.43S-V'T?|VVuZO5 URLs7R%uW1kNs=b!6 si^e+lJf{S﷿_sDa~18{C4[lUeXP eDy*f }]؃iM+YyT =w ʯx}/(Q%Fؘk dLK1%%A[2_sŒKRmV,2 y/~UZ=zYZܵ,JR3cka,n,;*E=NxѴBsM1ʠtMvJ4e[t>0z 6 _ [xa-x۟{`+m`<"# fp&sJ])Ulq ׳ȀCm3])m%W%FDH E C=l7v6g1@XC$ gDѕ핮vKT# ZuȚ-F@j 7cUb'  D$vm8x8@"2S7et”t"݋xlќcp EjF3f_6~Q H=k=3y2bƪVAْ3"h5%޾d$τ _V F"/kLUa/גԤ"(($DZgv|kd 8񐻹*EϣIՠHYLWݭxn8.>B✽H@+蕠YԂlfEUH3VV!ff{έiʹJ֍*"J?U['.v#2"焒΄=}M]Vm2͒zykȫGs%tQmR.Z@1a)HJo+1F'%Xo=7 0oV" Rs2m$ܐ]y YV^ ;@Je5C5 vg3W,C בym̦.3f˙,S13%9`$y'Ǔk 82AJόȬF3Ms4 M붴{khz ^5GINi +vqJYwF,:D3p ug- V߶%^k[TB਒WdU֣xp7viҐU$ftP >qG}$[Y YW>|&ҋ^ zo"O)VXivLo;oPWܾMe]>\Jm?µqcϸe3TۀE5ĴF;Z͚mMeZM@/@cn쵢|_drN՘$$iǃ#Ad; dX p(@_k ~0b cT~ SzgFlӆ!62gUYP_1A7 w3;1J KXu,mf.YyCyO򌒦3H43RY9w W@ĄDEqMվ&{k vg4PCm0ͬmRqCafP-QJ^\ )Pe61.{*̳ޛWfGu5.}tk"%e%~ݮG`8H*i;VZŨnBXe̓g7 2]5kbܾG% հJ9.m4\a y}rM2W L"2\`ǍQ4e@;m#*D s[u+rEq@yUOcb3dM<8K&9w5 Z( Xɥ0sfF!CYэ%8<Ǡ8,ip2I챔ݟIjLV:{ƶieЫ5*t@kڎ/?^O͸+]`?~ovxݎpizb YMΎ.^,7X;y|&<&H6aQ]\uO Votq,]s(_ ] +@u,X2sZLSꜵȷ "櫭yif6݄F|q<,&2Ra1IPhN= 4{$8ݓu1Ƞ y,ssBq7_& s"mQ^721O|no`"bݼY}KKR zAX }WmAߧEses>}Y96nkI6)W3tOl2Ƒ}Ĕd@jlSWv?ƶۼVF+q%A%ܝ4yǖ7Z@0r2}[Rdze,|N3K]RčOzF|T/NR97ﰫ+pUf`%V [ljM`g$k\q]Ѕ$]ϖ}tO] =V*s,3(%h5#b/Lo82ɥz<invt-͂QUA؍EY&T=Wí,aWnbcT.h|/,៑W`2RD٥pXUM`Yzl#k#Sbf.mS`alIE\$DDέ#W[UNzmPiZfܖ4r\/(CEOP29mQ8jА+p(y=q$ORT.4%%1̆0aCX>@ qo?S緯Z% ?)voz~ֈ][?m||e X>NyZ~S7nIUՂqeXkWE5?VŸle-lkILeYz$szwܯcTǨ$>o+˔1.|'^o~S1Əc~A'nIVa03)R8歨-IHz9!J3S1M8c #'mF(hNYy8F~eǏ'4Ď yrNY9,QqIŹ*f ^>9%zOZTjf78g|sQ&0*Y-A)91Th5ސ`2$os%F]|q\` (m I`]nH`%c\3,[hjs-ĖئndnuGD,bEjZbav7C_E؛fXEwr#4+4VPWVT!ʱ}T<"GA3ȥH5†wc[zKنyv"e<",%?A2! r8$2 v11S)<5۹~WV1gmo`jXB2 ?;egP{&co hmI}ybEZ.无w_ (KqX8.}Ǖ[Z mH j+,Mqpy:kt󙟉ZmXuVHd xyU!;Mk4FYx~ #̘#p M40`l3g) 28B+#҉Pc 6=[vZdxz[oqY7RPbƶw>aً?|^xz>oM:#?Lۇ ɞ]M\pї!)yg;v2tw(޲~u9 ~smDO]!Zn.]Yyv<5V{u$TMу]K?c]ZĖ q cy6iY#K`Js 8'/HMY٠|eIFTavڣ#s̩=ǘ`)y&asNx$FlGyMhtݰ/mO/s09wqoMˡr[]d"mg̍&۶^îXѥx0Ss{:kkVek{wy.~Yk<\7DD?KM$#9&JY#-_iHI̟|<31Tmatdٔ ՏBOB-v#y<%К+r%rnKۙэ(%dj0bX/ ("%;InQcU/ҍ'şU>Qs.o9->c+Z y:}=D"뙺oOGn.^?PC]#߫&;T.7Z,c}VBqd9tu&"JY1<ϟjan%P=9{>7c.X"@W 4&,>hUε:YTȤ{,n@PD$cZY*]T~҃N 2DPچ5`g.Gp˺f4I398o,A4:cmA@3P V ‡u_o۱DԨ/ i64vavnYh@ʨ׼.nk~Eɮ dbJ``^踼W-*is6NbEp/*1l'(P-&.^M,&pIb/jrb76ӠiD\hԛGc@z `[hTP E4"| qԕXJ֊-cMnV_Tf̚n6ȌpLT5 $2$eLFu%3ix#eR x$|Ase:;T}RWג{ enkoz QLgz`TsdFxqZI3Jyщ%`](;AߛYds]qBSD]UE}z]!UQ &+>Ls,$4t 8zh.uB{i_[PW"XO~,hA19yrN;O'cx3r%w<1,i!M)e 2˻ֱOJL)d]v~kփLj;x# ζm>NR(6([l 35Oi0bXõ6,5Uz}\B+kakuWC(,= Mbg^q+=3LQiAgd-4@= 7"Y̜TVd<|h.[%pe j--c-6J"҆7]˻H~wwumѹMgp FRnĥ}?0loq.nWJ'4p1SǕYvO$V;oZtڊ%<jbKzSnڼs{٫Fо<ľY">zqdu7BUftČqxF`EFᘶ.N*ޯ5LifʑKhL;>g O>4=@z@c Ty絡U!8,Hy׆P+Jb *XnY ߔ0I>OjuC׷I5?g-o}v1}m6[{ϸXz~n?4T1MxY7r !)_E3H%-vScQaԱ4v`ϓ7#|㇏p NKe,1;#愒=,iw&br,T[@efa81gF<ާo{O Ynf~ JP}LY.1paDs| @cIIXs0>`!>Ǔ?zj+Pf7hTrzmaVAٱ}MN2pRU Ĝ9gYM.Z9H@/\%gK>t2fyϯ1k-Jntc@n4mYr6h$'k @1u1RN7~ʘ/2<cLwqÒk{B*@t 2/ns U;X}{=6J|w]7O!dlڕ|]4rkBǷ*%}G6_ϋ7[UfuVom[W"4]IVssۅSnݔCt֍GZ2K.x JX:3<̒6: )f%e@R/+ne9Oǣ{H,8xx/+rF1'__9?c2 `afnb)[IMĻ8G?"MCz<_sh4 Ҡ) D\ =Z[VFrusSY(u?Zf(KF R9I`Aw3t=H"ꈭf'0GMʬKU*m~{-ecVXgKr5uH 9)sQ=41Kl5Hsw_zcbTǣsg9N'6c<{?̶:!/mhx ~\'E~_ /U03wnv&~vL_`wu˴0xP~SLGֿƺYUvo PDxj W~[U5?c 8ic6Rw0ݝr/(^f|3[ g[|slgƥ$^UkWd&m,\U|'#'KȂcrg$`/y>jt;pF`NU xi5t#LV[3"I3c` @'>R:c@~~Ix98Ϙө1 v0$6077sgko3tpHq5q(ߙ9|}s?xIB;HW(8=xhyGJ"ug1K d±d5t*vYtM>4 L8A̺VFC5_CĴW/)aU5)^eT5L* XdqU1ɎFNG.m|w-_-qznoq' ܭPcF\|7-V#3vMrG5AUT .kǫCRͳ]=:_AUrY3t1=czL8A;Vn)tA;i0 HHh,^912`A4 $RaI#rQ):2 O&z)ALw@zVT{OXpš\ y͟.\wb߶WnksQ s쪌ZVC-v$6haR TH(m{9/bZMozoݐrnXI,5y#x8mbN8#Sޯ||+ϷD̦3#L{ +'Nzixf<u`qTI"323B6g]NPݷi!fI/O?ךQz2~ݥU|m\wk֟lZu÷^o'7-hYQ?khRy}};m|ݖSԧM]+y{.\lnpú>Yŕ} L7/ 웗۵aXr5[x֖ ya+}/Q^%SgٌzꯔGRL9-=RXB{5qYi2gS1,&dL5<8/ꮲ6c*>8ǀyJBC|$|W;3Ss}8C:ht(LzHxfnfTZ+;Qsd2#t)'93VGy̷C, ^Se+fhL[F;ڙfFT}$5INe(Cb)|zQkc%ǨKQ\6H!;QXP IuCuEϓ~|f *h !g2eEZ{!A&v"Fdc6.-@9Pަ>/\ҵ i#[ wᰰi5>u{NyJrR#մȶn&.9A92gv"ًw!+V5 ݠXq+D2!Ck$0{\T<1ڍ]pveP9-K.=ϷKʥ[2Qf'-^na^a= L S5I{Y$# לR8IwAmGx7ޑLB#ZaoKmx[gQ?P5X.4d685(!`+[tnXkD #T߯^32̥]O!-.MHux -k }٭ucL륯s*˅Ŀ+n7rN ٙGRd8˖MaÏin̨\ ,m]uMPhBK]sK1W\lxoP.^m|M~J,#wrq\\KDv7o?;]o2zjoofvpTXPpݤX⢝lq+W)G3j<˫wfV'"׃@ ̰-Q~S%YH'/"Y~mnfHhi "M`(*fT&6vo>FM>y?f'F #L>սWTXaݫ]8QR{7h8"B/0p, 4Ladne3i1K@FX9 =7Pꑑ)cՄ%KȌ>7 ם|qdOmJJDbJ2R $-Ɣvl, O<AwzYLoRWH{qY3ޚcn^HqDHq5d0%@/ ftq d毫YVr{_l판j.sذ;_g)34^4`3+9^TWOuy@Mc?YQlWruI3YOh JT- ЬVڍ`v҆ejxuQ@sjY!\|JUK%(mΑa1]H#< @MX̒lZ"93j\5U=RlS==ˤ5D(-Ӕ&H"]d>wAV|iQXZ8fW39#4d@PhqXp78;L~yZ=O9͌bJE[^x<7w cQۈ%Iʜ :3sNo_i~t՘:v1vx)/Jz̜'賂kU$r\Af=;X]2V( dm*HI+`'3+h*;lETMegWm.uk!yR6|qz#LQfE+hr;i"Oj~CLf$#28ri9ASTOy)ARI*PDԎU^}=,l^KL~[z]kUrh,0Ҭ%u9stU9CcOXM)ayR>Viy!Id`JFjJۢ*@:_Rvdl)uji"=4$'S)a9 & !kfcW1eL[,Uw4;~pqt(?O!5H>0fY]LW_{jVHUZ*55~b޳tς9.މisyA/yfa1PYov!^~p=R \<ͦm&{'V߼WQ=V}\/^ڪ:4۵j1?U"#RCKiKECJ=!b7/!f6 1|a¬mxUHA5ج,UXZ*aMY5"F3<ä#iSȈLyp C1IR20wِ)f_UYv37:PiԜpw(Glhnpн0ʨ,'@s|yI+ǀF0YyFsƯ؆mV[5N#EjƂ@ f+TUaj6ltխ$QWX)4&h3VaC2E.1SoXEiJ?Pf*7μ!>KFNj7;^V//|ɟ0nSCCUVQ y_X|]䆼k+Ə&U~jͅΗzoVzE^Ϗ|ShW/P>lVij.ֳm/Sz:J|]N1}MI!'Z-G$L>YE`Q9Fc)pJ~Fh Jgwpqc7Q&8.1<ͻ` ~rnlu,7:iIJΓ89dл!iՐq_+z=QQqh-=vTK&X{{Sl2l=]^cTʐ즴Y6kS*WƵT3mZVe6[s7Jkͭlph}_MRR5VyRnm/\n},,f8ʞ (50r_~ZXc΋nuOp lMus[MV{OtbvJST mPdW+ɚw)[Ya% +G;"t ӽfew@r$,H Pe# PiҒN(rjbOt>"U<oK_|Qk_XJREQ]?Ue PA^)UMk1Ș%,Ŋ-ެ1Vӿ㌎2_ɍ{V4 }$:x5JR3U~9񴞹- âݥ3k, q?Va3&M>*uGHWgVsxh}$$J `rx-pV90[deYiF-jfyܸE.Nb\qst馎? pY/KGv;l[%F#->?HvbCe~wn:V{u=}Ț>߾]*- ?nm6OmiNu1lNRP̈06LXn} dA8i6̀B1sIE FQ.%guX,m//CS)ũ[ [MAcUC{uǴ1Hi0hvlϣJB"I.I=ݚZZ)X=H3%:n+m:G0yM=\w/uRK)tu5 { u'޾s ]XIӽЛT9?e3MjX{FLsֳS6`(LɥLR|#n(XL2Zh"ٜNR({Êd'yA#3]SwGٽ.lmd m5"Ԍ݇@ݏIv\UŠ0iBMNm?+b$-ɨUf7ZP-Evlc΢@DYA9bkU­kYvN+zl(~.Oht7wK/Tjm(p%'rM1Ϗhj"@ι W(TV]X)2e4Un &~.WDugL{.o"@4l_-|:? I}.pԅw16A?2p0눴o%?~3ڛ|1ZV~C}~ʞ[]]_˿޲UXSPOo} wwr,Sty (|Zk-Y>elȫgqKit{ ftrx8֐$D*Q96zѝFgM2g$ͼ't#Y(lQwBp*gHiZ'Wd{ Y-2}= R`VXKG5 ,ݜc9ܟf̈*%af(VJbLR$>0=^bLDSGFu1݇3:gw;,Ф9+I$7<:զg_\'.T 㨢Y =3nAV&b֠.}wt/o|w 2E.ߢ*YHɳ L+rntwDh qƏ+!S}f;V˂FaQjs ʒ ܣBiح5v*IF~n֯ 4ZIOrUDaZ. V+ѐYr){*fD GQ,F|GYt(} L>ny<%9K-[~ӒZ/ɲjyFVg%$uν{꽼nVYCpS]>dY}"[ͫVJ^~1Qn(:-¨j7P dR盛' V' %EXjkVPƯzs!ePW(ᆐ 5jq Ǔfh玼J)ed$zFooiHa,ZwM̛vĩ fFYU Lvm&? Y _ut>Ûޙ^r> 4F6,#㵡ҎSH\deSB>ֻ{t>n U0\Ʌ TP.v6=tZkZGXKFQs!5tI aӤ4;دL996܌ᒛ,ze.RXWf{us/3ȟf<+vPak씎>"EИx& B^$#Aw8B PDd0Q`u:IBfR%"9S:SyF —13# k6T}V:6['|(s&-#L9#ac,33TL-ګ#>;hqڽÄ$;l=˘v f ]tZi8PZ# MД^f/@Y>͢IB^@_bvȻaU"um^B7%d+Mo8=oҢ\ vjY]p݉>v85[:xkfirW˧@h˩mHdr,_ Da:ٓ$r5^[/+B//߂y23̘k,N<1l ED;3#8O3cD sUI+XT*i0) )HSkV;ײ, .\""Z4E!$4YXEZc{Jl-&jUSF覚Zc4/vO jy k?*uv=zI*ԨMR=2V+AфfQ讣+ްp(X[W8o_^BsaB{) ;\bޓ;p??ӷ]Wg+VUhK]Yؒ=9ep]H v]_KDL.!z X#(tehÎ4󑻢hQ$rh]?[Z҃"fe:XVKgVCE8MawT1dF B{͑xV0: 9y>1"_ "D ̜yys9V8 eڊt­]u2p36k(s P(h#•˫WU4Kto5H$<%Q8tt<@3eYe;Ƒ3" jDvLcBoe:iU6SYu-f_K@!yf>P|T$7ROf%D[É\j*نB{'ھ&QηEdz}n-h N[.fd,f[+S"dV&@f2-slhzNw'Ni ~NR0yV#u-T VFGWۼZ+oUQ]:9y#w>Fr @H"<0p $Crkk5iʞKڇqͬfR" c:n&Y23[;s-5c=RWUbd iu@=G2EpKbԓ#Zo͈}v8}|f܂J>@\~u\ur=j5a6܋Kxy̹n |NI)'r7QR/.?#Ta4EV3NqU#2[ ꖘk|bn7BvK(v\?߻bEnhl=gsO'nc_!;]NN/Fnַ*WFW nۿKݖƑQ3Rּ ]s$p?{ժp'A`XVe{w̮e ;t p?CheňRb2p!#4 :x>zȸx'mJ-FO "J*ZX8{)Ml )ps7n~\ht'6MG{hLI=w6Yj㺏oՉR}'0{)8z;,45E+_>aq3ƼX!GPCy'DMkl=ȦRg¥Y#*#`i4#7jСOOSEt CǕ=#cOUcޒJubZ|}?~?ܯwx^C26lR@"o^#cA[ם~Mi;ॽaV1WmAAP8Y8Z,lN3^_z٘ ŊHrfkPd0ު/zbbJ=(rEBqM2l/xP3$eNS8x=t͘{mOq6H* H7H*}6Ҳ).Ȫ$ 'kaGV)o#Gu"m8"02bP( e`[E_V XΪ!7"= ^ G?Dl$:;qc>D;ڼ&|>}WtOEfE}?쒽V;Mach厪uƷ~D՟h?~.I$C?'o <\qߕ kZ\J]Q!;X Of͍"H""=!{qQǐ%f1G9/ x'~F<߮u=C!ƅ=௜0Zbed$V~r#V!iL&/|3[ $>ݲnf!".M6bFO~0u<|o/ʠ$y IG #7ZTbMGQAJD98ѩ "Y7U$%C(`h9e_ cĸRW\zrȕ-"in:p3zylhT9ݪ":,8wiVbZr2L7@FʔVnK.v%^P>Csv'JO6"Mk ܡxG%`x}M'+5CTS=)W@HRTƧ&81IQPa,8k@=aG3\jZ6r֓|n{<:+b=HD!KoQ ]xfbS.73%g 5#bpL›ms^E0жPtBu`ԢgqޑY3%\!JMvRSi%)9܃qŨ 1d/xN 9i'fЙ]e[:!YlYY e0%GmU)qS>о 4/^)c1)W̕ǵT,0z ]VwQSrPDUeumsڸtxļ(#ݦŜA"9uK M9PыcP{йret s.^dVLf P%Pc1&e՞8itRGC牮HY`397f;lsXzQq<}5Ee#]{e-OɖF:W1 a6VLan3-ӥ.<5kN x K:4'L ے wp$B<aXGXNQMaM~o3|0݉RJ W=(w@g 2 h@O@^*$'n4aȹs! ȁ.KV q P.M/ gU_-TD 0MةT Ay&Qdl54w9>bHC"P^+"r7C WŵmM-O曇LUt**QGL67t"u-&bFz/NSqP{&di4!NQdv[G2EɂQRtS)/y^12Ʈ2m˳\L ul꠭=9i;F3Ft_.+65Quz =򶔚v0Kww1s6{D{A7u1yB+g~.BM0l3яB,cT5U;@t\\]ъ}@k%ifءtJ!~2 ̇<WȥrؘbDvԍ;}_ehξWl1 {t.vRx a 4`$]O8yJ)sF{{ӛL.dv8^_iiSGď0OD;#YՇ@(!~f{NFď je٭FH/(ф'DH>͚YY3JZ]vH( &3rg.ڰkMGPDl2 /Q)ƕ-~֕(KFKS̈́tT[\)ʿ` TRU V02ص%(t$KRNdӶGC)~1p""3E7+;G\͹'!0to!,)>{!) 3CLc4wX!M7L]ݛ)Oqۦr X|!{|. ȩ]AZ,~ob`_뇹1|~(ow܄OU qn/M}9N \N|%{҃_nn3|> LABQ:r1 ztO6"DaJ7DvKJ@y"jnSX2-봡%Au=Tq]u=ƸD3GHJPLP^"QMce+J>GTlTͫ[3jdW R(nh)KAҝ4mhxffi{2bta#1e9XZ*1x=jwhmI+Ř2^]b3SgںNU ݘ#9ո;|a${Yd5!׏wEB'K7SᨀxcD(Y&V%fsMz֊jyhoNV 8,im^Ki#0E]tfڀn} KRgl ;R‚:r3#}=6zf6 J0lZj#\{  }'( "Squ"#B 6~PbFXiՖY56w|Hk7TkHX|5+U\ݮ n3PAmWYdx# M$[ϮNU1l鶴+ԒEz"DK81HG׈5#/ *1*mK5]ulh5g`io=zf>hLSc|GLuIB_ #kVI'&=9l0] Q﷉P`!"}){Ŋv rV^cW3-} e +I'o}~ v>bslz>3̯y eQlPB)[PU:w?Ý Zj1zF>Xk|Xԭ=!u S;DWF6~}隷]c"(Rn)ȩ~2.ɜMPaJRzڡL{%O"!2D<5_EA*O=׃d7IXV']ǙܤPRWmF93?q~sOEGD@K)Eو!>aQd E*ʢ#)qrshv -ڔRCq|f+\Mڦ(Ch0fF=WD5Ju, .Ti̓H,\F#bͻ: #,1Vʡ%)X֜RjhہrO=BatPa7<=ۯ;MuS\3o 0ݹ'VOfue̬ƥ\>N_wGᕈE&};YZt@H@B8`ɻk%IdYI7ҫ&p-PuzTݜF<K)WME 缿 f:P0ⱴQ6 ȏ5긯2%? FTɚXe`vVkk'CMrB *{qFt֔.v..0#pZ@#nQǜUUݞy&a@aڠg<[9?vMތg=&6[IjkvBQ0U goNex;_9}.lrx=9.Kpoj[f9<}EN2pZiJHu!QƢ:>$6# OٛpK'a7ƔWH+6{m*zƏ0ɿRݬ[;w9~*5~LQ7QTGࢍs~z'_N||RQ·Sp'v7&wY !q]N1\oE;tϾL^B ,4+#&O 5Tu\.$TR`^bt{u[1E:ƸƸB 9Fǥ  VW+HȾ9y'I'SjEʇ:lCY< !$ GK@UD>#}Pq]%!fAen^1tVe낪hEQi{J-^W]. IE9/BSŎ';# ՕJٚ,(Xtshb\07ZiΏyW2կGV)W  vMqrj4au/}\tX38Kr7O7`OI?9rDJPt#t8)/fI}nR`j^/t %$we݋uHDVgjJ=N;#[X+#i@_F--yM2PUE$hs|y""nJ?563Prkڤ $ED\D92Ձ3iI)R͇-CDjfv h"K*T: nQ zk BDU5]yKKsFOnMtF##l>PA !Qʪ,3P&1:Wk-)~WQ<磀ջ0wl5~58Hɔ߲Te-"-9w#?ڶ)HAwo^n>ŔYCw&np3PW:gVv `.tInVZ@*F >R@i#QEP#ym w"{>"[~1w}eww^q|!q,cGsv nU|6_C7%-:+Ohag|ktdK+"fPog[8Wۗex'3]븖I%tD"1jR`ϹL[O>(`گM*EUcP8<  ]ąw/u^b^UM Ex\nwE1'Wp2"8 ]9lR1^^*) n^4!ɑBU}eaiJNf[3N'H(v+sY=Ǩu"lߤ $@쩴Jq$+lDqHPkcŦcݷcbg&ӓGND⏖DYxCpxP ݕ跃Qءtcm"]g1X]O])of?MA ,@VŰF%?qt#u`|lWOt:Ԝd=W||*w籋WC@GnЇGAB:>ZIgwG E" @ݐ}U'h9 h +!ݕHtؤ̺KTdMm MPPCXO;1ϴd$oUP$*G͹.WSOz4veȵ"`][^:+V$WB.e`&q=:뉃t0]@Tfw s c(yo.\橶1OvvV|<MPTGz4!h͐1Kđz>*]ޛ:܊#puuzXX ߂LE s=shֻq6[p>j]VTVleO'fۓ- oZls|lj됬ȆKY{:dG @ ;LKI*H1Gyج!9=`Aq OOr^P 0_9TGh@hxt`j|"k)"C_xL"-+ zpWNOJ!roU?ʡ2QYN+Oz,( Y-Xs#Uɡ(e_.mѾlkf[ M7"cjfcҜȂ,')Q7)!rڐ'dC"" bpcWSSQHt!vrF7{΁K3i{osiFLB61#s'3>TA#0Cg̉9c߷㶜h_7?ԍ] Hl&f~b@ To%wKϰ͜:i@ #d,}b |7oˍ?k͟ъz.ؗ0TWwŮ% ֯y.eȕW|s>z5Z'8zCKP΢܉⤇PMoF+Z-Ah HS3h9dF gg<&E&WCj&ov)!;sF]\M n!a&fWģr4Q}$&?H X?41{' S9 qo[垷|#V[Z/ldM諟N S,pJ>{ܷ]n4 j3u{pB#q]y~iv]s^:~g#^~%à>RM#*"55/#=&p o[V~SvO'=<4LO%^ūs.^:g=$qz^ sH PAe8pФeZܑ9 #c z$^s!8Pl@i}{s;̤5~ )>I%x,, Q*DÁxp4|A£5aqq+b^< }Ű>ꢈr9(EpYOUGx$_>)LYkߒPľ}@̷Rkrl X[tx,1-"`]Giqt0'ʍVMS.~=5KYhn pΰI}BUܑ?98`4/3 ,Cr@ɵ>Vt u~eX7gaSU]L]fx5[~}[5bh?tƨ%W6"f~w [ ׻|&ћνld#nt4qK 5^Wf ~ dc}.X.̦ضaZWOL*t&2E^"ouds'ɐoӓTr3VxF֦B*Xm#e$:.|&6.c~FwKV8)>gf "!:ii#+vF+ɲs;qx@!)bcB ⢁/bP1\zRWCfҸΕkfi(|[d0͔ U1f͒#u҂^QcÁ&k|d.r_@c$%%~cZg.MjrK?iG3s܍pU:M<-).܁Hmr?##)8gPf51}sܓ̔$}iE:4VL]R(?nwxx8mTm>̙=U Q6i~Ə1J%b*OҀ/?D(\6 KkfJR80e@X΢"Sc᎑=V~ĮH0jby7:+KCH7iMQ-<',My"c)5ᱶ"XrQmVON"$zupn"A>||qC ~ q2VnvB r}y'UO56H*,,b@I_ן|>o; m=/#~1S5F5rkzt"1fȬ|4 /o|b7)19@d.#9A kt79o?kHQL~d_Z^[}t.m|$+P|K\_#qG%]Y%$sd _LaUs@YX5!rhKb=㐓}7ssnDTE]zΘSli>%' CJ2-3PR,1}zՊF.GēD) )tL᛼%Ӭ$H$F?,@XVe24t;oy?Jrj:.| 9JhLQ>0.1"AA'"MUFv#-yNR8&#ssGgÕ"}&-Ve?SuWݖp|pD&Ji` rw@%\.Rsa`l<1̬FTIܝfT2M1(IQJGk3eu[+*T C A]~rMy77o W HE[u=1=x+4Ig!޹zuKtol!X-ZCj}帶1y- ,gJS9LXZmm^q]7^/^o/1̌}hC_sL_q6PEު:D~_??"^$EQԈtZ<DSH"0&0;yFhVLwјu1 8Nn5`Dfj'j/c[E 6=I^n-hEe׎bG5܉@D+p6KV"v0 ]d-/XS+unƮw7&(YR죡w!Iח_W/F[||]ϗh~ki1=Pri599"n1pD @QwZؠɂ̹jf!ZB4T?Ƿaŏdql߾YM=oQpLe<^i$T nˇ57:Ic/(]@{3Ǡ4+dK7PS(?N_SnZP)-<ʬģv4F>X] ZF f:E`p99,}E);6tm-XbY45=@QqkVJ͸Kc@t8#?.}؉t#Ts|y\t7 (Ǵ􋢪"#T]徟G%LLt 1l чHZ:a36ɳ f(XwYO+D "(ps)(5zZ:ǠtKIU1`Uhc"rgu(Өu-"S-24iER]D{uf/#,+;mT*&R̪o[E{aנmDFǗ›&[;X4!pGFܷ6&혢cca9ȶ^XkZ#(0Йƈl4X&~#h1ltD?vwv^<齪J<֠ oit4 ,{ZEy7ǜC̊wqk8U]~{>u=uTq/23v 얿EjT/Dr!:Td*3KvEG'XL$=㙪5`MچBv {^c"PY4TTمTMY>΋|2Ey{PfIԓXMFfڴm\q#X=&\ Ԩ'm+yO?"7aUQq/dΨ9D߀-Ͽ^='?맧=t)1d\<&rQ!'琇%ץ!:t# ᩇeظohQK3[wM0#ƒ t~E'^q߮3{_'/~epgAuoyB_}=@YKe {VZIKR?I2G@j֏2`Uw}K߷I?-" QlZaQ \A 2ͼF pMÁ^fIrtTMWѓHLEu 1n)j[%efӫYG4$aj.G+b&tNFoI?REQz*U1F6 D=T3#-@#h9k6$y?""`FIE%kHM^XUq l#S ;ͣ+Y5@#Afe#`ΧO&t P2"NLSBcDNZ;ryC%!2i; rPA&a*bXl5 cy t 1 iVPU#pK-ͲC rrn^]; ⁆cZ9*16kwg Nzt7򂤒JjMq͆v1mӗ5=a8\86c`gXX!zǿy?fL GG'T\qZ{)tx,)=~-n!pș|QZ-³ ~eI~/"?{˟o~sĖ_s/lvy }kYOT I4\Ʃq~b:i̞)Ӧvp~~\߮y=k y/^_YmHjH)ERى6TҴ7HΧG5MyAU"ܕ`n?ӨŮ4Q&Zzׁbfp3(y,‡9&K9+ 1l Ci"; tOT 9뤗eGU>_^)–Km0k#` e-(=NLa\K}~ןF0yš8E1 CE>qcx.PLTB(ztDvNҠP,y44,hc cOC<W{IB<5#ջyfg/v2Ky=W(r_Foqg ^ S6d ? nkMV?q&-%P=h#ߠJƔqH'WM%5Yڋ%0 -C#ē~(_ \X$T!`8@y&E䫤}eKsߵ%ܥwd.ǥ__=6zo<'z9^|uǿﯿ"vǓe@;nɠ(!"kx}\2CJG@*NHd?CWcO>C_}lh9O#D?ޏv+ܝ+_ӗ8T. 1DNq*SAAT170#·E'pݫ PՔ%1#e#iZs/1r]IJwSFrSLz["`u Ct9"1 ۠_r @YK,\ī̶|t(yX=S.!cl,E ]P{f* (}+|EE{j"yPrNӣw8AA{@Vyɇ>v2KRTjӏ\5=wz~mINՊ1q&նKa1?aVmk|ߺ}75qv-QUՕ:P t P>_xU#pI6~PyPKyW:BզY\rS hLS' ~GPp_B`%&Y @K!"ca!Ry>oPy :kO!9I6(.50ړbp`~v8C@1ߍ?IDATC8Uf' Hr /@BKn"==i#j O[< >NAx6u's}*@3?Hu <>9-IZpVDK=Fdx m9g~˜f <j%tޚD~MeCȷX =;~"a'*r #>z] p@Zd Èp 0K5K|'I?)}mF!Fuܧu\>Ot7iSt( 4 >j6؊ Ug G¤t7;@WVg=FOv5<~_aJI/ޱV+?r'DBgxNb84rO%??kN_^ *eP@2G"r][h0^O /o@4 " ct2L2mt]SsYp mo?v:D*>4gy1|*mw:nOVh%~y>J+xkQpW E(eǑ"76f_6k\DlO{m\ a׳۲@by,%]VeA8^U,8쎒B}i0#rj kF| Ik#7vm5 ahkuGD'lONޤqő 'g^@k"[ОPJӽ[@ _"S`37nnnf"CP)(CJ'+OHHO OmP$רJ*oW>E4R{6Fsΰ___ןf6i1p#29 ܃9 !8ECA@u5l݀J!Kx1ߩcƠ[g(/ tݵzzur[s` ZsvJ T]Mhf:vK~A/\ rx1SNf>/ۃg?߼ɪ@."~Yѷ 3SaOogWѷs5h#H&Uw,`[7>#辅< lUo[t(0I̛{M}APn8廲oETcl~3\@^:D8½kTR [JGgJud!ҥ'A&gff!gcG6o~"玨$=U&ri+ k  ZXnY*;{1[td,ÏOTĦ)FqOsXn @ZٱP=0^A-f/M?#)$HN"I/C܉G"eBIsvdU8s<;#B"hp1O+0gO]""OUx,)N[lUWj0mHʪus(vn)٫:xjyUHj蛋=@QʸAbdM2hPɱZ2 ѰZ5Bq>Q?_w]jt VhV, |/__nWޯ=L a"=qÃKPU<'I(ǎ}Xy\71*Pr߽ HpFI9=Wv+g >8APiϸ܊\,||9+EYgd?d;bFLtEG?Ͳ oJ8zW,1C=Au_j[kBtA|+J"ҧ8,C cu3.Heiye;=w["p25!.xѬ艎l>1xn\P͸Rt4UP1[ko#ן_w]}C S]ټ&iB!"5MPbhTV=? أ k3f&s'x]P)9b+ά~U kqV`:]St vz2{{V~sօ>S?0d?^Ǐ`XF]ZtQkkrsN v= X,~2} ~K3vrl.`rQfx 6]eGǪukGtIg=HMl41Urqנ#{"ST Wҽs&{+jHpR3D(__~ɜrߢIN@&S\%i,0LExV|^wWtF+Q 7Hn{Pĕʸ8rh[Dh~ɾ4OăqSITV%a -wD·:.a^AW "ٵDmjERk_BKlW@h {kk΃GD|D#wVZa -Uv-U]hIgꢏUIK X DjG¼ƄMꀈZ:-1<Q93w)^PŦr,kvU8v+muwn!:3J^%eVE bGp N: ׃C-p5@ q5wr(!q rPCjZ.z$=-½4Y9@aV34|(I%e(9vhޟZ*Kw{re2l@Ŝ1gF]p'#)L'3RB{.Dk |`30k?7G?\@w 2D-<J,'?>KYzNӓݏVbDKY)%k Tq]PPSj)s:pGE$VYϾ.).$|^ XR""s|)O7}6 i d^BT¹sU70P n0z@ 0!r=_lL,*f)fNꠌ c.wOnVʬ0`{HBF0Cdq1 fWINU=ύ.YX#/'3hKVkVٛz9k$;2l'A\3bF*;pd;Xtj?:Gw䕢+t@)S$`QPB\%̮#5dj/](=R0oN، 62Oj&"8N@;VFj h~g31qSD&ǂE5j~)\w]ޤjv޿xNXKjz$IgDӷEDaz<__3*8+)5-B#)fN$NUD"۰AiȿԀRIjkJl%@d fal vg-kas:bT0 X]D8F3 HܑN<`Z[><83\[&VߡDp["`kS}3,3Ќ{xϯzos\ncv )JFC9Tq 0& ԿAN& /(uRӿ飰V7][BgzN68΃ ̽SQAk<ޥihG5j:܇TG-X }\,޾e\{І+5,o/q#ZG -@%؞\Bz&HktlƩ-;Cp}3|P~XVQ>\M^&ST&]~.: \*L`?w_c/gč Ϟ8ER23k {$n: mVCP,,B##`u@^@de !iR;PSs4M"tWU|AwKXFt\hVʅp(%d̙;e g{כG4몭hecQ,Pڏ UF?U( 2yhžmIɕHK/&u:"TD4UnmΘ3a>!H͸#}R}]2K8%.)KX;KʢvH@Ő6DZ@ٰϡvzPHV&=!x@y ɤgrDM§@\DȜSLC4qIf R˝d="wz ̭@k *E()^uTy 16U H i"k1D)(A? \IGbн | &f 0th>"CcDrZ,H@yJ":p.ԳA3AfhV:~;}&F2w|0{xD>/o7 0;~md5$u1f in=~q@}KVӿV ʞKH9Ckvg]')g.&+%XxϲS^v權ox2kR)hfnm6#B9Q@^z0ܯ+x ǵ"Uk@1@T65~3ntIwEӠJ*HH!]1^W_RNpI/:@9Iٿ PJ[&'j6}2;AEc\㚉<"T,R]n*1o.zI)Gԣ8Tҳ"ED+MKí#PTj8yMP8iFۜx$GD,ErhJ'aeMXO XOcP{<%ҍ3eѴXF每~q_-|nl)Wi[rt3L}EE!*={{RsJF%針Nɾvt ZL߃ ]h,dZ)vW 1ϫV$ZIm66'v*QǼ?J7Bka*@E|:e;jfP":HǸksHE`sy$"s_cgp4K)F6[eLI >qwP..0ϪOn3я??>ׇ;2,\&Z 5vIq9n*LbjAq5HJ~n[5ca@+"v)(D%%Zrt͜,? -"u뽛*P`X<#$b\5> #l{8r2cxA(iH.Ӝ#ȓ\2O7sP2{)r=:?!Po>ylZBBÂ!bY7`Ү 01]k'b(MJnOڜU8;_;r % 95j\*XC&AO.h R♬/2AQ#vg1WSb7'<"/ BS0asinuR}v4 PtI,$AMdw~D,R?l{$AhGD9LXPY] 8. .*{HqUn+V1AM)WK1YZeTqR{wId:ofUdu6@н3BvMPw{,@mVJW2V v6NPYƒLlq<;>X4@`mQ`,֜ݦ*JKwޫc_c>.^Ő!EJ"`\M/Fy1y%E,`z ʮ*fTCA 6 5Ϥ?ǴUWO#̾ˡE"`#AQw@TyNh/o;Ɖ&%7zvu/p*mW{X<ȹ8}|cά:'ge 9/5px \亮 PchvPLz`Upv0*psP!>f& _!\' DD+Avv 2ڷҿYt秊8Íb"NZK81 ^^y̓'[.6"X=rR锺zϹ"w`ڙd ceBBh@Wϳ;9S%-Qp_oQYPYXi#\ bwLjVV6en}uaň#0#@YC}P2!{I/nS"Ha&0-9@4~\{yvx'tedv9( vEjx0#t#3QK@c+Ua{uewls" :Ž= D;{6` <`1&흷4ђX碨|o)r,["R{`&@"CB5y#~+ @D| ͵jɤqzj"Rl<-}Nw @nT׿Uoc͏=^ZAY>mhdcE|މ8#I$-edڀptY*xVyy5(B-KuÜD6a+ 7b d73"g( g(C=9<1}eRUow\yA@(q!( 0A$;ߤ]D7p#5˝Z^70Hy+የ (*;ufO"π[0 BKp3xfdjZ{OQEfBJP2ˬ)Hof] jDC5S lNѡ#;lͿ{F#K  P$e\[f0mR Ua$+`F)oG IZ$QyBѶ t4:ޅ:a IR7:Y+S8;$?NWa!෪tt^u:~6$nPb Eg |MeF8Һ`}QzC4Ѱe< yʹKҹYT .zR :j6^B.4EP `wǜOuʨ!4a*Aٌ0wg $tLM=G!KUAha`7{b8sժz [6Z.Ǖ"\4ݼ8'ɫg((vKDNCc>"S&1+$-)?#f/H‡5)11|FBf10O$[`UĠaw'xQSU^ p`({D!dk7xMoo7XuNoS45N cȸAUh/Z21d[ ;_&k닌Kk>KՇtYۯ~Y3ZY}w^0TmlOmڢ]^!w+؋Cu! ;BLY9=B3u3 3DrPItFǧ3zj ia75M8A:IUIMZi)H ";@V0C2.՘m xZRU6&6I$ݪ@{ɉ 09Iÿ}[9.[lG ,a4)>pq ͿD6jSJ,'8*Ԑۂ+U];~@W9K@Gޓ kM+Lmo\}ϟz͸z9t.E8|T<cjxĘ s]dAB1Q1& $[.>\ F2PI-"mgڰ<C^Dbu/=kAKE+!/[{NuN >^Yj"2|"x<5bM!@^u9HM30E-T +.ϐ$\:$Ue@5Kٓ^(dP%װw2 -{-DQC[$lNn4ʸڭpOFΙ-z艻(bc;>+J[ʎjl\c=XA2O 5$1IaG]i7jXgO09!j"p7#{ɽl\۴. x6@X* 2LPyD~&Mdx E@#[^3tt^*} PF `J.HR 7wD¿B~g|x)fP%/QMOn2-j0^- x5N Eu)dэՊY~bed["EnG2#tgMKru<ͫK5% ,lt$ǎ$ Y䙑{efv7YܓgH5X̌@UV#_mg(w.Foa%*%}Tn衣vTe{Nߟ3g1#[`+!y*-?uHaylR+fUvb5+}JXr̷<D#!lvY<Cgb( 5%gu ͲZErRU;[(1:H kQLDN<[e=u?ˬX]1Oj6D* Z"m`SryCQuQ4bVZ;gLP [SN>)92/z:|V} H22M)HK&,9QcuSJ&eR1T]-2*Smͭ 4 ,RZ7cEu-`꯵{*|0CMab"Wð`NGR<ߌr%ϒH)~{]-!] Kw ,?;/I|%,NkHIϨ'c;ͿgI^#b2;׶V.|eGT3u/qȯ_q4aU}1 }-M˚1чIn&)\Am敋o&x`v{\RϹɮ%Fh~Ԓ|_w?}p41ZLՏH_Z}2CҏzWŰW$lq^yۓI#]Hv+]6P} Yc:c_#W5=&cib  i*)}7p3*-ϯi3,zуf 2 S:DMX&6ljFscL 3jpRؼ;˝Esr3LgP8hLfr s"|}Qr֧rF6Z pVZ/Lb P˟;/pӽ`mUȘ8 G NLVR6f%]3i ڼ~>Ye;h-Ņ,$=32tI@%ld:̪``L{(}Sf|yl҂rޟZMA` L-܎/]f|;ﶂZ[Y@ZVGL-$wҸe3$mn'J1q=*A7uMm4cH-9?qE$p8sc@NxE*J0O=χ=ȤS>B Ys(;Msfr!Tݒ/ެ $&@oz~Cmzf;o_6[>~<.F|Bǥz(۔3G&tD3h7l#ͧ9|CFN|ކץ9mMz׼:Ra H`̪݌ r1갭9ru1o ɰF oJ!wAWyA y͈$Gay!hى:VvelݓgMd$1Wˆq8cw(j'ҨSu^D(At}w9^U ~_}2 :JҿV]{q%QS}utHB?K.ЭhiZ,IPmyì@t/=F7e>,`F5 (Ī).ԾP=+D .{K 5|)b`770Yҙ˂Fe.),JJcQ5拢]l t/KYO4,-h}m E{=̔\QunT%3$h:PZR׭*3rAWUo$=b5h|F-{{Ҵ?v*2` [)mmZ"#H>ܼV{@Q)F))+㊉呟7֑̾eԝK 5M>#iJl#Wg˾t^-]p܊ 5ֱR*C9y3NV;_&O^6;Vvàud9k8l ^#T݇˖ܿtO}uV8j¤]`qu{}f8e"'ќ}Azv]vJU Stq`&CeA=[t?;>Mcqgo;|?[ _e!XZ7rut#4j}t"ؚ0aeXk.0݆A*}ٶ6ؾGm}Ok)Zq'a,?3,jޱUI/adJ+dA,2G 'd 1;լxkɂ+dS4s=A~G4GկA="?Ff1>o~f:>.3c#5L1>;sB1'b"RRk?$N8m/ eNTYYw'zX3hbX zMI&4KC݂mUZC?Zx AB:ֶS'mk&aY>~ԏK_1L0k,-Y%Jcx}{Ngo !Rqe?M`F-lRCځ C4!P0(on*[%KȪQJ$ne2-q2[sxEZ 1] {\п C< $ _]i[5vU{Ǻ5Mt, β{[Sc4-~W%V wZ{ :cmX;xy*ŴU>\ xbJӲjtcgS?W<u"udRV3sNɘǶVi)EӕO~<o}@=@n.#uoO-f~%QQThvy,ա6{I^HafR9toyxDW1}z%eNHg.kޏe3+ h7`r mLݮrj㣻[D];Ox#foiSޙ*ZJ=*@030箠êkijyd6[hK`R\eej(r}ٕM<ʸѐHYfgixHy[`hO[vEU<75m?NuV3^Žttmm}n]ܖfZ:sB/q0Er9$!3d 7[S9XBP1hR ,& 2Smڇ;2`Ci{B!%do9w[xN1פ /3yIEX{@ 0Q&p~Ps'62Զ^`D-]2;SXǻ]ߙ@~r'p|JnXRw>V(& b_.7q]8&T'0>x00S}Uӎ˯)|ѩg7ra (ܗ!%|>(:q@djtQ~(y A'K5yM;m*jFu3PQ6Y*HT,˾p_i H%S 狿= sЊƣ:/zEF܄Ȍx"oӅ59F/rV8T{5G8 ]ee,egdxc}?]{+ im췻.Z|?MgJXcSk '4xm6\_߰:y8ƶ$/ j]5CSrz|~K#PLi-ᥧLN\XaBuE0"FWw+Ё)JU&2hӡmBe52:0wG>"k~u8/6hkG3}FĐNT l1?Nw(=4afZQUm4lDɰaklps#HN22gf(+'QU/ d5/̩=+ ~Cb >j`VvXD87W_{~6poԲؾu 5mV0'R+G+`# YbߣJ9gmbLdn^B3'XO?cIи^WYƠonP qWq)}>oy|@@:qnq}Ϧb_)-{6Evh1g,ι6ҳǾ9'*nd?n5DkU%!"R~{{skXH7E*C'L_q@ObӲ5]f%.Lbh'Y2J)"( prY Ⱥzjr?Jc 3ca5q+M*ӂZGVBj6!9k ]@*)i4Zօϵgwórx^۩%6T_ѭ/gy31Еffӌ#)9Ame!G 0^xZe˹#rȬ뭋%Jl1RL̐Ax25cMXJ"[ yaQ5{&40OĜR E95f%5R9&ư?/;OIx뗟'@y$گu::]lڽr@~s^v~sq:Pϯ%ZUSuǐ6tjuZ(Z >OIq6ex|K{/Z:>{t.uU:"ӿB)Nm4LfTQjWPc uG0K{}VFEIV62W?WLl30/^GX&͆4R_+(\szL+—vGϊ*Gk9VFvsOh2OyżO~7\PN,&Ƒs"}4x{l!'Q6h6p^K{km>t2yҕƽF^Dz{`%,"fƕ*ׇR^P0>15>\HJ0N*mCR\>iX&J|"^MķP;`:=u9wW–Cye~2˘HRӥ];@7rYB ְ_IP LY? (Ъડ^4,8]&]5eU.hTZ"?Yb~^8t+8l<i|NqdfhmT:jʠ=v:5V2ܳ؆Tׅy#9FXjlG.V+t kTs\a,&yq>_WZF_e>+wGϹÛ h؍}@{h-PgN?6 :pZE XָYM־a.CZ!ִSXzeE ۆ`Za, #+Ulឧ<]3"eNa{"W%v5]; zVx!XH80 4FZ3fY1cΘ1U0LUÓcΐ|AÇp"f ~ɚ\}M,Q/V=.*Ǵ?[a+s쮬x4= fi9M9U9 P0Cn#$|o_gk^tHaFLl,oClIqlI5>ReF:\JT {c(~X@Tt/14i%Rrv(8b (!v*ɬЉ5ƶ>ZٓA3 L2@$z´X5sqxL7빊A6'gj nr7ݳuf Ȇ(4FDHSomWԞO9 ~eڅYn̖ZuwU n-þN(UH" *[ (z]J9d2sG& #0FCsJ<G@kn+TqdMh@!ejX$܌<3'm (Qx\&ҪJ^vHvtUYNgU\{}{nnJlW -7\.tKu#5Ȫ,m%΀F_>"I"yXAwA*1r*tnybwHX _P"l,]+hyk},GKMz%CtqM}>ϕGDZDt8gł zLYD~@҅z !K;23ftwڪD/qpv0 h~>x 9nt] `]|bw&M`2 ~yWxq8½FaS іllAdMB)soq:ݲX˹-z }T.>l]r셝}w].mnP6KF+mݖk#@ɮW:veՄZpڣ; --9-ȗt_`$OǴVy0hx+ v}Э̇yVW<|/J9sNq%_cs3"Nv.cCΏSJ$oT)NZg; h"f n佢f{D&⧩-)#qMO]3Ge q-Su s^W+z1qTY:{@vu=WS"=Oh~_&d]>U]Qp2g$y͜sFt$oEqlvtpe FövԶ1@Y2P,ǛdcmHy_{R%:nrB>h55e RrrRha\R'u]sq.r߉e跪.Wwsm~!?B&F º>z;~Y.Z9ML E(S! Qa6_,9ߟWdt\H̙HvVfqAN3VM8:Nlmbګ2-TXp1FeA9884Fm .`t)'/V$)aq|=|*kW>= ?Vw2E>T|zs{j\;!S۔,eW}q,]<]F,b}bX}Ycts j3R@C A XвVEKkE`bhxSL ,G4onh[2i);=(I6LfW\SB =xn<9Lnr&"Q].k HsCψ8̾ȳch8Ǩ]w.ZKkA`􊳎L5;ᦡ(aF,ȒT#0]b;J@2gzj*1/E@MOհ8}ev~/y4H<ϗ `+rk8ZʘGB&ve~w65+W J_.y.(% _RHi~FZrh-؜63.Mo%2X7>H(B>X9!)jҫxسaٵ]_ʪ2~EWvhܬ:~r\ʺh!4'$ȲsfY_zl[/rc@z|:Q˹6d ˜-i32iTf-zsU+ܔ#< \a'u. u_f}w| GW]-3V71r ʤťk5jd_6fS뇛d:Z?JgGkFДKZ&ɼ\/RM C*шez@*8;t@frdg5#'<<8N/:`!"fFpW`kXaVt[[$]1acv; Z%؅RȬKP-p̦y9!̪2+5l0[pXޒ,u.o?GZf>̮\OhVzLs׷zm׹Ij }k b ْ®5Q\I[Եd [T{6ة]x`l2JdqЎak8RJ Uv/,]jݶacXHD\ל3R8C vsʯ?|,EgBv:q\}ga]e5*_e=~cU1;\HPmtU^q[!f R1&E R0dϙsǟuE}.|f4h[1}i)H_ٴ4gMĶjv 9+IF&TdZїg(6S)sjJRbecBP48=ATy4E)#u\tk2ѫXU@?m}p#J2ȫ:6 Uo⽋clU3!AKZ0ݧ#d#)hW>:9[ kj9wOU/D}2)pIn5i},CPD*g R/>6qy1' aOf?/#lzZضs9;EW9ʨ}U$!K FY U1dfӝ>ҘPL}uPKK{ wmZ^}c-j+I/^Tr)Z\Eϕ8jo^wT\𼖿jx^tX 쏺fմ3ZoAXo0I^pr9iz|WT{m1nu!eێAZGDAf;lBn:\V+mRY&Ȭx]F;"qM?|aO4.aviT)RJq#x lOl[%e͊fZjO->/ut5xh;c3PH@+কv?Ub@F]hpQԒZY.&J%US:I2qLcK&Op/*YqC<`6=}]jhj_*@5UIZk>2{}y?Z`_lRFZbd][e# o;5]zy)p1.ݫWE{٩Fjb[뿻j.٥:JUL=nkKhwm1lhE13fՐ{t}[5k:x Z Fu< ]\Gj{kbXXj-5/E(F}D0u"آ7Cw`iϵM*1R/Eq/pۼqNP?ltO}z\j땯(.]/ܵS3RDMv D#Qѭg`! e9QSiK(dޫZ3Vi ֮tG&:u5x@A5,'{9EsZk+Ĭy-xH7iݻO.GQX0uxJ)觨BFF Eqޒz_ڽ7d.%JTY E_*&*@)o)gi_1p֌r.xBVp&}[.$-Ƌ L* saF8JNLw+t}xIRLČ Ǥ< ʣzngMu?p+wCUيL|1}~JC 뢪%m`ɾ:Rn` 1H-RKU2[e[T HA!Z龐-sDt 5ё!fr;d 7kdgh*ڸj\YaIJ{\*ݭm]lw[z^j7 D@7əݵF' `5el-4%9IrI@gbZ?f6)Tp_#kc/LcV^.|>x L7xqK2$q;k6%#jdm}Ϸ,ywS10|ԵXUff~g%.7Uֽ]JҢI9j %?]1p;8*>#>jjh[UyhNc8V hS~A2w7Ü2Z7!sc kˈȬrm bJy1\ؗa5+Yntކ-_薵лBw@ =7EmyqeN4 HA% }Fn(K$`,l@Qf/R)[YK5T2 :c,##2 A}TF FŞyspvrX#o^k=jkx>0%'G&pkqjB"e#RT h&bHDnͫhh23.%WMI}!:ۛ 8#QL&ۨD.p@[V嚰Fw}&q\J[:{Iv=̦GDUX>3Ue\33|wQg+Yw veT [Kw>R;`]g3VTz޲"1Nk>7TsURq9Z%S.$JȌD6R߿q,RkjG/]sΰ݇2EH9H2ai_07+\~!D[C]j؜p(Z-e, tpe ӭlZ7?o81q2qS'B8YP>ڮ!"5#I<9+Gu v9z0Y(DPu,"/p oe\OV\ s,Өg׽`⭟ڻMX'}VZ~{ߴ\Q D8Φ{ogI}\01pR@@. yσYCHM_ C1drOR چխ\9(qM~eΙ08/4G?]32&o>v#s߈m?A>ۇݓ,C~/BzUBnZmc>O RdI}47;A%‚[f7eZ"f21ͭFb9ʴL>d"'˛K O]dWi'`Y.GA.4%_\k )q|k7Ӭa0u9;PW̜IeinbVưg]V?S y*@ʴ5oЉf`K~ Ļ>14H4u>y=zC9OfY/ vNցEO۝eX;ܗ(2Pw]?,C톲D X7R' ުW,P'%esg `rsj=ʔ4)ԧ!HY&<>k)k'jDԧY ,'Ym0OƹJVY ۍK(xc7] Ԣ^KGڝՀݩ]x1׫#Ow ɒr[_zʻV+S%[qltD7KΞ8 p%r=@SaI\Wa9|X%:Uj[ڧ~sc[/#33"z^c184FqW%YyRۭ6u]WBKt̙3|9XK-S^X [3JcYܳקau@24)$eh үUܣ^^E'nk^Ϭb'\߰u3JT6h4;FղbLE@7^V)R+=y'W]kOndF2fffޒz$L( R |_|n=>E.c2M\D\ qd"<-3zn=zTɠskMVR ypļ0ŔYR~_Ufqqy_o̙9sxs2NpFH\}~> _>r^n^PbF.'< z2ܗtjpUVj#GN)Ѣ!-)dKr!GfnjcL0T3CѤJ#l w~,!".32)'4*~ \$NfKnvYORǁ_In7Hőh]Vk.Ü.-R~t]-;CPfFf^2Tk%daf[kB4$'(y0*P-in#oySE´]HOQy}}[$b.J#S5;Iіϖp]50.k3k}cEwz2h1glo* 1;Xc> zo!Q)=7XYw90C qMi1~ǢQL4Pb̕kرQF:v}20/_Ыz8y8}0ܾo-]q]m~kԙ:3}N>}'k9n|1 C,I}jT`X4U@'>5-^= 1絊[(-ۏK5zt8=g[6Wvj용4Fm++mt9fd\֮,3]`)!_LN+r]m?UfBt)YoH:v_iE'pι<ˌA&mUS` Pyɴ,a&H#53#g.J=iVSFq*Ua=ʸ>j"Bnv Qq\'TNXF,s d~ཛྷvX#. }@b'N HڇɸI3'cɯ/_e@ݣÚ3dfKU 1Rt fB:*~hULeB nHD^/ISe/Ty &c~cWaQbÄLIԪ+fZ8Q<̌<φp UGCuZoS뭩̋sZ8* NJFM95GUs$WݹˬM^~eKW Nu ej,q~~/Cn%[+|H,&-]]ïH8H K9+ 0H/ܼʎf2Bh*ɲOvW`.~aJ!dh)+iS˞5[gr$}%[do EQefQ;xՁH`L|iJ_'K8!`1|ˌ8o7>3t]z|uYe.TnG;\1dۥT <2lFif]g.Rt"; eݴh+lNm)bbWI )HIT/ ʶQYoXNOpq>ے'P{\aN+A}Qdt׋2jg;^9"eNuLfh/^=ӉkT3{r}[zMaF'A}}Ij66S5;OHγ2Hl.#aХmpD~Q0,lh sَ6=7;O4Jtq8ab&rb^> +ty[#~5>],wOeJz__cvQEN-p4vo[@+'v0F鿻f #-[V:H(yMadb*'f)VA_"݊-Lt[ {/ݵ.E( vcWD[3YJ*0_zR tS`1ԛXvRj`ӂXCB77N].{ˮ!Yjr$_H$.fёSanHYuԥ+n⚜\Os/`~9;Aeo g埏~]|Lx_f̗yI_q:.3LS臬]*juzυ\zaM,wUs5`˯YA棌v5^N΋\N*ey`M sPZ-,*僄Jv.w-Tg,(á"m7 (kS"4%͕NǽCG8M"hNPSW݉aL࠹jCgH*YcLVi]jڕL+qKSne~]> a?UJ՝,4b˙I3]EXVS*}. xsHUAf$Tn 9S`Q2utzytn<}($(7)wM j{lTzԬP~*,gkN.r*Dxm J 2ke[XM=1l (|58Ng]m# Ht'3\jBY&223bWno1(ιYl:k \֥jvEΨZ\cpORPl`rlJ@]%B,Sbf*[~0~_cXtAOp'|_s8{O+rH0P$Hx&up "5_8qiC0jv$X-x a݃By]bұ&B!KZcE+ r=50C0;F_nVi \x~u6zmZ^߿ `c8k]z7/gW{y:j[Bjf/:uTNN)3χ3LiF?tbxԀ(a Iۂv}ܒLAzϡD9@ ̻ fi@!Lbd,0M7pԻ_vsZ ~&0ƽ=-T'ص)qh) 9CIl*li•$X2̰Tydg98>s?ˈ88pi%~q %ޟs3 #̾N`e4ß>8?__qE$;JCqUMXYF\wFah/ejZ2K|[XcT33b5#^};hpMzTAILan)]3]oL@aH[-FWc.j *%@h{f#yZx5iAԥ=.բ4% SzK2z lV,TD ת oAO3p-2o5uû\e6xb}Xp]!\2X2m; NQ`I7z}} ﮻u,OWmc?+9O<_Wk]t{ӛ?Zf/ ̕"ʹ/Ħ aՊ',d]*ŭsڼ4Y°"5 QXxq"F>1'`@PN 4$eLĜFRق.qϕ*|xWxnD/-+ Rb~jkۺ@ K}?81,@.vߋyl6`J~"TA~h\G >__#R j?ϣ >H =ez~M:tcY=R-,]xT=Lل pRH{JsGS̆ |MR4iZtht_^6n_/?6I(ӛ]`<)!8w c ,if%հi PZP7RHSץ\v}lWA~/,38+ twЄUK 1"O~[ )= GRV$,`%ʆBLi5 pӘm]T׽nP*Ѱ@<8*vž;,l*%zY3@PHA [mBwo19=Wi t4{$73y8Cf!]oMu)&y>8^f_fQ {/q^_9^E^7w#v:Œ Z ա8k-6Kf"g]]–DmsgL6k{wb*Aujl)y9Uoa1oI'/{eD!D֕ʜ.Sڼzuk*FQՇ[3h$[ruLY%w*^DQ>v)P.B0jF9`ӴyT.E/MTװk|DsH bZPN B$wWyL̥m; KT2̝IJ71MK=Hlw/h_4M\l" 8Kky=>A/?wCk\2Rjkafsn\jek۝! (ݫq>`znnV 唹tiPPXqg)-D[IE̚]'I.Ȕ¼$&,S5Wmwx\YLw-aVL܏A?oܿ)d2^l]wYK}4*GG>D=blouUْxc?ʫ~&<"oeF/wE1͙̆ٷr2n]-|?,E-•W'BsF_} 7֓t-MKH!>2s 9NT3ݻb"9sqd^tQb[7?Dn3nv<}@Fqlp]jwZPe}t`2Mnq:KX^- ]Bt*Ŋ&WM/f Vν(e~cy?"Hid*YtYP4"ҲX;Un_r\sN,8tiڦem Ή5璑AE-d>I&pM6ͺuRϏkqV1zٴPJ&e}"$hNhcʕx9ɰ T5}0Masڜqd_WI;Arrswh)hο3oň~m.#qH8~8yqp8pi6x l"6V WWK.ԭqz\b^Uӵ=;ʌ"$DZFOmQ&2f9fefA(Ӻ#cY(y픫ޡ,Z8o}fXl?^eU_7׺ADF qYO#WB]$`T]ŒQlI)k =ZGD痁Lv'a@:֨8"4+ٰ?oǮ9c{櫏:;dJ[CV^1HڑV륙v^koˍіaX2(R@tZ),]yQP_/{|6hN?og=:aJ9 0ɒٱlN)+]@1I~>?0/{_/~ q᝾Q5y$븢. :;3*!) ̲HtRQlNÙ%28'lL̑ d;('JrY-SwWb?jސ yLs2 e._cI׃ \0oboZ6JOLf{H4DSnL_^Pxy]|:H}Qo$Ss )=g>iNp)iM Ԭ.´#͓݄>@lk",-9YIM,EG1Ͳ_9ݫ@r^3=1㳠lia ٖ'䙪T5J& Xf /2 KcX%"~Ͱ6qf/$~x1ewt';fS DXGyٹ±-5"@~ ?_n58^v%10<~h6bBT-_+d1=UAkIcŽ:[r*$> CV2b>l̘qUЁ2"+4E MA*MirN1 I}Iaykt}j=n(f&!75}e=R23rb< =It$_$4ۨє^º蝶F`NN~I2e2Aϖ?== 5zmKjeD*P]v_CtT@ZfDn7^THfE(f,1(fx8a+$.QJsM4k^b 2nWajrn"zt7T兀upϏ;оy`YǯGXͫ2V fbMY$es\^V?Ck+Kځ^# en@4YH@5|U 9'|U50j Ȩ7k%s]YIܝoch..s24mɾRAi/i;[R-YM}, 'JǂGA N;^Bȭ(BP(2,ˏ8Ns`fL%.fZ)jnj8̆IcT8TF TW]q!3!}_m(zd#b\KwI5KXVa6i0FHPUAy UePM QH|&d]/dd_>m?= x+?&zgֽoR~ݚO`խZ dXFxa:"(8u} xH N~2 2*K2 }[)p½-~h,f]?:x{}G?1fw6@'07ٲd9ib%#7`lG1"FdW9 _HАʬy#F pKhGYQBz k"*5R T 8a"h/an^x883]4 03ossjp?&5ksyyɲd|xp6U%՜YURݾzҊ썵M/y57F3NIAV,)#M9b 5N,F%P@ >r=%aHq:XfwbeneSSrA-$^NDjv}{Sd\rpꄴʼV%μ.̕횚I7)X m24ZښP)3*^ l5gɐ|xvήU@6cYe-EDM\|IK*6,̘$q,?W t/!UF:ھ( $n c,k"xx7wy [5S| qy*1ԫ}y:_TvJ-`~md{4Kz\-G>XXbXڌ;{Y|ÿI޿14cCtfk/)]5:_^^l ;h2౤T] I2x98:?5H4`t~ sm3Q\}o;Gm6Ӧwu{>㹫6MZ]J15ڡU(K>߿_'nn6ܬ:/ͪxB|ۧ\i>'A?̇0:}~0w= Q|f}wDd:fzeo/;W!nePe`29ˣФ* nYCS2Ӣ2,:R#FEVCJGD/]Ev.*=QyDA)CdǬfÜtscpv]xbH\\4XRl;m?;̬h&T4,5҇<2rhH ost 55l.sE(SCJ@n4 jβ\vN'iQ*s+ qZ+=_aylER.Ϟa}8;6p+;l4mKGgqŻ5{kVU;* BT]AΕӴ gpG]J@E{0AJ(B-wDVT^J_Nܻu;!d`[%Ǥkx,:^B痯fIoXljf@,xФ&)׋\錄[vѺ?>*)QмhV`sCf-d_;a>e-Ÿ!?~FÆN̆ k_וsH]_u8~vuquZM+ {$\Wa XƖ(X;uJZ#(;[cވ$@`uS)rx*͆Ki>Kʐj Pq99ތ^KNq%G|jq)nJV!3 > C\+]=W?/L E!B}Ee~%بI/M3tgJ'ߟq88,h=9#!Dq[{ĵ6D:Dv!|A&dXMc{D^7/=հ&IU(fY;bPAF[a,\ /]]s חK)MThnt%?+Am,WITA?/ x<"C8̜t tln7os˶96־* $Qz$q wl)&,Kh[<-%"y0E(2Isxe&ƵvJ;{w[쮰4fyDpЂ iJ_Lʳ±~_rS_RutlY⬡U.{jetaؗ~D}2 VEO}b԰6 t*9g+͘q`C6N,QIfn;,[5Y[Ho5s' /J@_CY9dX?c9G۴(G=E7o v|t V=ǧ4tR]M/נ.2z"x> z!};mRǛ HF43!KOX*֗`FOa//p_ %A](#)Onaakan< )3\H<4ӿ~ :;sد>UKc fFrId.l.fjKPdʏ;by0G2/5yHcn&66B[ZdJ^;zOOVKvȞި2e L.HhXL- 2|Eg:3s?g0aEz,umÊš(M;yGL:r[Kܣ~SY$gJX4u>9z KI?&PzC%* [ެ:aMlg- Y #9ysS3|eT]f;eV}YK,A" 0]^3I2?Qt`JO9t/<0w;?O;NCch:<^[.Q) Kf4voW`1wkl`T,н(&3#XƼyD2yM$ȨU Ty i&Q9DI#A:lR)#N)DvX=f 40zm̶̂*- 'Y`6xdzk KЉ;y׎5{Q%<6m W_7R&5zt:)J{ZZH(,il1<>#S p $,bʉPz[VMm57]"hywi0WO7{7u>JܢU.5K6^rmG;0@7b+&K֖QsIR^V {iMq5 e=q[<il?c]4\!4/}b*oK:3>Z3.7}2/o`MyN >cp0/_p[bl&ʨ\v cRmʟfDc­t@M>JYPa'(tϼrF D8;-/}anvvv8Wemq;;dԦįU(YEc6DSɨc)%M B%Ȟ\77-kDJQ-2}) @"g39xFofZS[طT#qU*7Cj=V٥BI`$W$Jq!["k<9ڔPGj}Tֶ5Z%os tHw$;ӭluջ!.|.)i%]7Qc676_V|h!՛@*R ~$]Rj!#I7 3e:<櫫T[3#F%߭9%{kz۝\Ov٠kĻz^%TX%U+aύMo!SӼiaKfiBBO+ð9jЌ%JҚyD]ո^-sɰj jm |JVjl{HIQGti. KpNO5od[kw9v59<46vġa=S% i y*pk–XXbSy"H㏛z [n0z =ۢ:\&cѮi8p 腯>GzK,N&pAtotGAq>c&=ߡqq8̏r_犰+=B+jKluT3V+b:2e6o7vKtȶl!]EfR>R6q4sÍ9L,K]m/4M|1G7u`#o@[\z%K }fU/8J'm0usZfDN9^ҲODf$c8<2r o[:ffi6A*ThiW=?z_t,f(T/(6$"? ѽс5wM)\Zh7W͖s([Q 3,y swy0;i OԵ(kUc5_lJ05ӓ8ˣIU}#o~>L۟x. hrӾnP^ 6_K1> _῿uÇkFzʉ<q (+;H4c|o ^̌Pb+Ch~]bvJo$.Pe<)2cS.JJtGSY)1oR7/92gtbaN(>P[FgdMHj0X̦d E\9݆o/v8{,9T גw uv |![Ӳtys)YrȼqlwWBC:8,m刵wm%b y T2U )Q"ì+˦uwŹ_3 JwIS.` A3VY`6 D%XsS=;7QrN0<(q5#"VfYMb)ZV^o}?dS3Yc[_6VV+'?o/=WZVap!Cꕱݩ|fu lw0sUU|U, F%doTiz ;mS )z#5 Xl9( ybTT L3hEV)C`B@ "E Am~we Knk=;k %g\:Ef%USGN.gtXfE,vvZv֖n|8V=r&x(mzp !$/$N;x 7nܬmVmvOC%>٤NdnD%tAvV$E*տFe5>sZL{x5 N7Qf|4̟R|.ݵ6@ļy׿~c,qMo9Tl.5FVyu4FHi<ȑQ*>Hq8r4G%}S >XF>}|(˥E]#/Q6j+m4:^lDU.R*  \d\#,7s9-E }UzeQgwdXd V+,Ey*q`ݞo{ApXƯetW} DRTd,fwl)yV @`ԨlCI,$UlˉE@dJQ$5/gf،7J%,H?oua![ }Ia-TBš>P"{l8 7M]joT^^Rs{Uɗ4FKrsG8ckD=y#g=-̀Hѥ4ֳZ>!gV@1뀪xzwi֋#%sXwAFF LMS̲e G @ zy+7_iɞ}M=2[O,VQWCٝ%5,u*oV]-gmD>߈nȵ|\նj:75UD42p_@UkZ K>Kb8x8/}|n!F' 1~~8qyXᆚeY-~ |eT;P>[Ȅ w\4ɧ;1SscSqq/?N!Z0½ڠ 8*Ǝ&u F̗4t}g#~(KO6N,zj!^E:hΌ(e33C1_ye^3"τ,;Gvqٲ#ETD"] =ȲMZ6N FqZ(7IuӃ&R`qR65IWHȒ4{kYRe8$#5gWݪws3"_%#;9VK=m44iP K6$_X;]ߵ7S.ie2:&nJ˫{ɵV.#O~~~I_VATff6c]b*ݹ->JmvmoJܕ )#MB{Tl6e-^ޒ>{nA%xU#ѮESpQBeZ/U2u"*>22Sʑe2i˱|}UbwoM, BͥkXw Iʩr*c A[Vi"^evgk=ۜ?^M: k񾑛Wmv*2}-?=1!SUkRuYئNbJH4ձfX~ {YS F U{6 m n[.ZLAU:WA2UT=6JiVEgwLI9%Z^zbzq/{jG?y+!; NTS'8gkU'Y!܅&[yPE|ap 5N*>{J2O5J}buDzH2F2%ʣPFf.3KFb:,AmCU =z.mi\avX2*piusccRʠaz:Í:͇N q*OA;%WFwҸ |z޲cb"hG 2- _l|A3217ʔ W˵LeZ+ˋHtuEײ˜E'yָIM3χZ#vGp0 6hay>;L~CZA~@D9fgRu}Zk;iȲ+3T'}Y-;K|Y^\Wc)4=&J;VbM^~'Cc{j\LErE:.;w `-\00aI-{-.v߁r{3AЫr5gwЏG~pU~nЧuEGiV C=@b4iy%lM_YMke>𰽕KѬL(+4b̳ԝZ$X~z.NU=X5%7$KQ9Srwk]ڧ](̴m^{_`N?^f/37[-®e-8Fɘ@h@n/ D w]m]5E +=vt#+<9%ԮPFt2Q=`W@B=֤7Ɠ5ofԴT*ϬKCfÙ~*]{Q( 9?S}O՝Mj{(T }4P4l=o菳lKJuҪG&#cXo>9Q7.hmGέX@4JTF&Ltܻe2!oMi< QɆiҸUm0V cɱL0 @e 0|ُ<:_\v6OgEIU|Q\V= #4}+?hOuO*XL2sxY^_~_.e "˹[nUȹ'=r/=G.^(7BٽTг>+~R&>m]__n0vͽ-)"]-Hoo^/^{ CY,;qlMBT~Tg8\*!^43@Oy&F%U%n0iA-zwΙnIHVݔqιu7q$6]73,$&@-)e,_gwyGV|AGV"g q-TQ-3avg] &͊؊"3׵a+~}/镸~_E^wݾX]rB;ogu2J}u˜|AZ3_Ph?+iAn&~K@{GDoVhN+ I2GjU:̛ O @ *vÚALϭ LHκxp-4jI:h]2Fb(ڽOwIvW潀j}W,c 3eq:y 9Z,h2o|S6}TgMJ2bq>T [Ԡ&ySטP5k#jݩsw~C=e֎QPY]==y6ePd:hJQOvʹveVl\mPQ6{JU/SpVL ]1d&=eq?TRg;ԉj:9x|a;=n#YȚz19{!/ wDFER̪p1I:6$ 6IBgUJ<;Լp=+>K0xl2GN1"we-N&DqIfilߏGZ~x5B}-nQO=gcygT*ÚjURYKRgyi}ei53(j&ДzVd-} ˵r%Ek]×{IiV9.#_AYd&/)gCe41+MY$ƫ/$}ƽ i!əy 4NhҖwA_'4Ө Q9(!{-oFƺum;m1C:;wJLdU5G=gߛCH@hvk2n^@쎖a`H6[֩v]Vi3"0H7bާVt`>1ѷ3XcRg虳 Q9^|\&2& Tɦ0鎲K{ZBXʪݭF*!ܜB+m;|XLfzdkr_,qlH+v-.^{%zvz9^k&̿ر[^}2{kZ4EU-i`VvnM-c4o 2}~bƎ+~R%YcٛrܟIR![fMzv*<ˮ l%]WuC]Kmkqv2¡UC`]ɞØ{mH)>Y4[JS?P4JqIڑ"ײewwd]P`bȯSBN0o{VвMA)Bhu!C%1Mt DXyVh\.2BVd5z UHj 쑺VOx@Eުn+>CL5|Si3 Ols}Z _?u3W@,霶oԪTʡBx/ȝS VPX504&|⯤B|, +5 /{Jk9By|ӳ)[]S8?)|:=nÞ/~JVʖ+Gd0:OGi3o/q.G4:h?R\H۪NtyٜYsDԾ:CJ΄(A'zuejb/]yuZE|-{-{]VE_/΄2*QX=MћnF922` -@̥n{y=Xײ NC&oޕ">Ђq9_o@/x~5oޜWa QW 9v~֟u^~}ʬ+uf-7 A,γs<[Sl><'i]]U4Ȑ*:PxZBR!WorW{nvœ}pjď.g쨉5N(ice(R ñy &+G<>6iu׺+Aߖ,r.iX$^v-w7 oƝ#\kxE1K7&zu-[ʽWD ^%,a XV]_k9͖I0Eܵ{uR=,߾o{؛;~2UeI2`]P/ٟX+Aotڠ™U|.T9jq )bWr_ I+a~/A\IOyxy̓<ʠ~ATIܠBY [bJ1 >y _'sɴLՔ=W*X ڷv]QRi/~ȵ 1vq):%xE;yϨC[f  OT`H?g?GY,Jx:wlOm|>a{̩i.s. ֕=kz^K}O.ofX lx &' LDS:lkxF)6 cԺnš. I8O]N4Ư 5yC ź-gKl9S>sZY"c LDztT4"yc9]Z,Pz_/^/~]rq}-.kw(uaH޷_EBy$]蕦Կ+gTy>(~ܯ 2ȵܱ) ݡJ(5wRIb]Z qfeT (J?~Na5 מXjSͣ!#;flwZ+AD6ToT\f VVB;L%n&ߟL\D9]:e"٪QN*sj56+; (M ya]$wķA+g\^kk-/Kؙ:rpgioֺnoo}q;WpUKn._^:3;(zG |!~g}.yͱuz5\T2_v-Y fgfr@@ f6Ɩ'7ƇtȨ"-dLE{T1=g2Ŧʒ .B*uMf.,"/l%EC͞!j݋% N-|O%؅.ҍm|i2#u97ZϜ9Q9GHT!apg29gX* TыZV{:;OJjytEB𖾤ilRnLŌ$}e6[~kKKRŅ 8= =%u6|~0[ o4VpGF9Y3vT5y4ǝkrn*TwzxI{<6[}{Gbe?~yWRp9C{JPfQVA0.Sǿ8llUy! عM\˝TШ2 WހXcnAl׵?wP?~4H \gyEiYÔbćnC[/C ݒ:bERW꒼R.ѱVL(ޚ wV;Fdƺ(9qDĻ"V,2sB}kl P[buY;ݾ;2#k߷K׺.wj y7[=_yy?ŲOF$7ߜ6>sOѕ*@}[lr{[~e#[ѹx~SK+C S2cZ˫̦KCoV3%D&hթIVSo^좬,p@tF@MqmɓzK)zg4sF, yu(+Mn9$Ne:cumGռ437s- Pa+*k }22JCzHEkJ$KrIR"^R#ԉIgފ:8 {?9q45tR'lD%g-}CUSLuVS>1z.§GyyD1JAp|חv]n 72#Fu iʶU;Ȟ`{cL|ƋÐ8bvM~A]{O1A 2,̖*ꁶ}gotzgb_^ R%nu"P #%mߗpҨ5Py'3'Gvn(lvNM?xT=4J y#r7mq}-rؐBfG2rtms$[<уex~~f~?`͏J0"3=5%5<+4 lW/%z8o6詧H/zdv*㚜:*} җ̶Y@Ae݌zx].[+6[HwFĎRS d98`kk]ˮץk} DՆZ*xA&~oVaR{^f_|-w7/Ƚ&o pr٪bl)qPQ e ?SfFlD F؅ ZIL7*O 3:7{Jʍϑ\p3)jO%%ˣ-@'OM'W d-jxKnN,[?߇phG P19) QH jcE&7kMe(ٵB`]`ez Zi%wu 5fmkz5dYl]ػ$&؞mS9-2QM=cFL+ $}||?KSj){i&->q?g?dJa/\~0p='Ja85?{7"y LѠR; H9<~:s@<9af>2Iòor fIL'C_NU&'Yzg(ɸ}22eyW5WPlvQn<5yg=&8छʋuuZ[μhnk-s37 LW׵.7B8:^T]|?YrO o?(o2p~T5| lC SuwfPl/k+VHRce9N=QTՁpSdfVA&a]eMEtmN>/nJc< _+N,w9ZţIi.`Sm(.\]w$Tl{O yS?l-8efQc[aPyd2 ^7$kUZv\/MT@= E#BZc SAHK;~mKڶVhW8T~$"K)Z(RmYgy`ճ9? sF}<}Ǘu٫g ǘA[qJ<!4ϧpn/I!`O̥Ȕk#3Ocms5%C 5^flg`*=`S.K=DهgK쉚yre-ij :`Ow*ĠE)X{5Qjkshմ/KUZ[+rn} /@_rWqdqhMdV֕RU̠~Ưk]'xC߅/sU YHMܽ 6ze^+x3W99y\;aYA ނ&"yJ48{9Bت^3SDkepXb:c?4p5B@|F7d2n$ʴT̏N8YUgZ5kR[d8 ?'=YAEHR̴TDŦ,Ǫlhd&*i_4Ԃjx5jV#Y\ oC1&(J 2A&{_qC'btYP5W7+m]RCe/4¤¤yhǕg߂ /2{pr*1#jJh*eN-ȰR0%#rt|%N%q3)W =O3|2@}NxR7{S[WF}ȰE{⏓@i$>F8NdD==STA{QF|HoϷS}`I@Um.3B@~-lNjkH SY9 "Bl8tC^r@黼L [iVA@?+U8#ܖXLzֹ0j i43$rE_3%j`;//\,H޺{02%7dXDOV§RTD-+3z_X̚Νpҵܳѳ  nh̆ zs3 ztq͊,#`=rQy!W;7e/wux]4KP뫺V:ue|JFԨ`iVQr">ŎYu{%c:]4Ŷf67`E-&] qV1~ Q{o4EO8Ö 7q}UJ?~ C15qA- = sB)>GyM,tE ;7[E{%0[ >t!k,}`y*Rv)%-kgjp'y[RHi,G74?H7޷/Kx.`XS" zF4n&! >FsGlé6݁䅪 ˘a R݈4?FF|I&;c@v!⎁Y=i4@r;iکʭp*{3{fu^G4{^_S;AK6ۃ=7z{H!@ 0w.3lI=VO7++'k/~7TWyB=g)~^GYӟuϱrZ77{\SDD;Gq3ȼ]ᐢ 1cT@/yr޴ztG8Y,*,EQ:c=!z>C_lGHqQnhvcϊbZP2F`Ur>PN63Uy@ C>'ڠUo(*WTϧ;ՐA@HBSb̊­ .Xݷ$-&Yjzق/-]U7\T w@fe̽\Y4ڷP02c>IDhV(q*q`-VWGJʈpiȩFP+GAH`'4+0L:boo /[Wk̈NuCeq|0 "DŽd i@!4`R] ue%"mQfy ·si(i U'AN LӤݹÓ=GO_?Fn9(fGxJuq{YL="嫚ooB-tҾ/kɽj⬗NJ-k.k]vٻwY]!eiKy_ku]p]p}wjKJjͫMީ{||vox֪\bZY<cXuEYWM^S0lDS4$Sw':5W&d"(=dD?ʌn-,s nqC[tH>Z79g,iMn8y%%3k2ci~̪Ix04?X*OG籫 leSrPI0')rJIQּqYEQ٢9 } KxpUeH}-fF'i)7KtW6B K3fZ2#/ّYFyQ3Eho (KTr;Ȭ]mɺ>i~(~m 3?L|ܒy#?vĈX >)1D9#t-`#qr*.fyǚ<jz2 #d꘰0Z*IsҜ YI[?P%?PkަKk w)L=gX8.tZu ( :+69:W0Qמ ik>0B(+e$U+4&0Yls"y0><}ØLiL^&ejs-Ss zŶ_/3r^/N_X^sTbў6uE+pV9EgbDEtuze9eW.޿3emJfpkk am^YWLQz% k=PuKqgغx}|}iߙY + QZdF {`)^ )y5>v u~]p`T$Z^کQrv3\AVR7A ^#gw']tόi9)GxUzsƓyuLYMMJe@N+@s!l"ANw+@8$yvZ蠺7<9#ꄠ9uY"̭D(~*ؚs`fif*r~Q`<KtT.HB1X}];fNF4#m2&qvC&\Zqf~~<DLt L]XOBoDz @Ilo'-J@{7 Vw_f51nF-N(Mv|(!]P[@dY4F^޼o쭈DEZƒE,_Wmŵ67Qt&μߙ X~co nX5^Ӯ #a>tOM7Odi?}UG!څڥz".P$#,3CC})G&ַ+)&ڐ`5=[zZmK`JnUpr5 PPyvhfNKV`1zq:AUM~궇oSh\P?J2Ǧ`R]ĸNa(AB̰V5v+hBD Go5;JSzzzzE DJ .UnRbe㮃DSvZ>yuV@"rG)sUe"L!Xis=^|47%4};YWC@U?E>CE3g`"s@|TM@mdFt@$9s>#?MCkraH3̠mLi h#^sE[rr"A] GB2,wAv?J)pn۰^~kfdQӓ2Z`}5 hBhWIc[ Xȏ%wHg p'U_P$C6:N F=jC]Rtӝe&Kn\wE̯ Ѹdf_AsV6xy U"֫Ԋ h~>N e2WcB;DՈdnnRuE,˥?qQ㫽3#XRnH"qU&mEbjf0qF,Yb׊auRnmR޹7~4R3#ev{dr^˲M:i26a"M mt`I#;ٲ͡#MZHA.0!~IYuY`oq|hvg.h77>NFx3g^x '͐x]~]-"6tGx&B*<3ک }LވX^_"ZwLL^_++u\Kdʷ37.k]ۗ7pWRWlo+MQnpbU3-kw}ď5돿Y|W,-o7b~ NqWw&3{Q,`g~ph3tTYzPIp-eFeH/^ml2+SkuA2bT/W UyS:J-u% G3vLkx4$}6gqzN<Ʋ5uNy iU+QGrDNfJDFx ?O ^_\uu|BhK#yJ8"ʠ*7t><]f ݛ5UOk`*OW@zR:y^g/}Nzg sf6.398I#?^=c8Uz^EajQ2A>GboO H0mO#;_jzr֪9N @mJ%} 8aESs09m]wU-J QYєwyD'Pll?]/ZeוȐOb$Ė}ע{Lh #ޅ`ZZb‘뮔M %֬#"!hffԞ\98}~[Ѥuu} n!X0\L!"IDATd&_I,O.yRl6aIxB(*ЁK%SQ(lP%f5sBj6l 3Z<$i~SոT\E>Ax~ݮf__9 3b#63KbiKXFI"1]Uvf.BMT{o K?#_ 3leUb.ukMS2S %_7o 3v!mە^E=z[u0͑Ns~y+xVBC7hCh&hᩑs8s#Ԟze@lBvi9a'hem^26I.bJ:%R~q]k[\fRYVAdY͌s~4`LACLhR xU 4U^;aT@(p)sVsTpS?6bd{͊,bfUi:uNA:?*ܩV7UJmnR^*|`1ioQ3V"Pzi,yvG(2x} G.uJ 2 6&(TY}7   jPW5ПP߇{׃ 6Sz6A(sLք6!C|sVS&7.66RʬQ}W?3Y*y8o\jưv?r=׈g+Y_yoV E߬S/%P2(3kv1sR/DUڕ# O%Yc.vnVC|4ЗWy9q5' bDf kr6;=x/s@A-7D];l]-k2WȨ?j-!̀FHgaPDߜ%l2[nבT"-q-Z 拕y$ ]'.G\T0U,]9Ŗ49]З\ f̋~ʨ4++!xNBa1ъ]$ܻǮ%=?nN4}sתl-)l*5xZ4[J;ƫwf|_|(Bsbkxڇ6fo/_ki*%YN@@.XX, :@so{.Z_?#:̭Zi~a\ ޥʵ|9^4O-#n FD&yJmb[l\b{X!qJ*_"V0 f (SxG[%4Ҕ?UX"R^VCEί n$_#5vƵmTrV_ 9YL[oS̯+fA+ ff9O?YxdN==!c WݦWcrY;VuXa4԰k w! '"T9_n)huR~m4-,%*5i-\pǰc Vf"jG!߾wx?3.n\N[j 3DM6_N vd&c^fR8;:'s₍Y'j$~ܚ}qFnDf5cU֗1*sT `VRbDTVkdT^ =ػ"*ԡ |ȶ`"9~Gkw-8l1@240g)yD(2u՜aڻ$р}MƣɤEorhԺ(Sఈ,l( ƒsg {Q  A 6I+[ts7s'L4|-ֵ0]ըAf^ š(IG\f錒LTUO۠eP.CP)dhAFJi"~R-BYFodk/@QVσ$"K{+vJA8K'CXQDjV A3!.ǵ }g]5k[ߺoD2y#@|Jb;\i  jdb׫$niF򫒧 aq-Jz 0<6eXZTMNo_=‡5gJ.:ʁ%hS*Io7}4|J'Kc)XNe~>tiwF.eAAJ6 ?S?/6(mDyJF-;"-2-wKUn*@Y"3+Z|bJTK|`˩Jn[3RH`2PV `gB3 YZ$%\G,K~c,J# f(h.J*YCeZvvTc;K ʹV"DZz!7ցS/XA᜜8SեK1,{= V7h$Zŧlɗq :,OuO[r ?"cevqF3R›϶UF?ڂss) }WzpT  )@R*32"ŎXT)1Y73xJzt`4K๷3;@|OtϠȟmGE~#YG@f aYa J]De#Ju='8Ai֑ d YM_X1&071Bª5c we+OއlF G/NYEF!T: nU1V;RVfW [H/ *1Tkv]>b)^ t<17&7u9 ӽҲ Q!;B;D+z_%2VZ c gP|lsgD1Mo} ` DKG#5ݡlJ',}u-i@kX.!$i9h1֬:l {Y@sr߿ዤ/Rf2~f؜V3=DV5Ț &H SeqgDF~?Nٗ_ʪ ,1m^!2>"ʔxھd܏-}F8>]1atp]]U)ǚee.^fD̬J a̠cصܺ=ռ}PB xlH~~IU=ҊJacyۜUUF|3qQnPV!SF~5IlkU9sce =pgMV{MEl078Kϣw`O E?KGU=ZPfU=ذp%n-bUH'j ՘Jg+r3J'͜m[ALqor'oSF"A %ݛ):Yb?;`T@Ddho֌^|×L5y+nCu 1UOu0FCQL<`s=E'cOmYa B=H><|s?>ya@7;)/k>Q#A9%JzǬfK)ȝ:XiPrGSVfT%PzА5d )*{ULx6ڱqfxXѰhݍSzkM2㹛xij*AÝ,U@'I]@P>`9C:ٙ aWG:0X$K6H*e`qL6I; r>la|sX|f%Є*VXKו:pK`S ߻4H銍Mu{tR徜 i]^x6*AuD]7嵯!MP7!mv /aR\ۘ~lDT]Hz]ػ. @u{p)":b-eS3 %Ằ3{ߢ8;M#cTb0ݒsSsgDڏ-5O׽r&A$XnE."SBIY&i |$aع FZDY;RNќKRceXۥ x 83p/ФVꮑ,2-~o~_kɗL Ky׀RcBɌY5Ms`^y,GZ&m{Z G_\h֦ac6mW<^b ,[FYnڍ,zMhL'. Zdg;ua,xDjuH'gr-R\$75+kAyb^+<[FԊB6igtRT﷽.YB)eyH ~UPODQTXX&hWky)w@!i=_ W鲦 ^=>kiB gT97.p-bբJoDMؚǪK*=BP$|ZCq%+t 8Bg@bݷi-dӽ,LȲ o4sYuY =̈XGf\+]kNfp-v{Lߘkԑqj|fSORf1N?9o<gY߿oU?u==Zj[3Q#9EiOoΠ4=|MI?8OrW\6K̹.3#WLJ;]FGL?JkI̪vT4 ǣu~J$ma[2 =NcGah}5_<2Fq@Yu=Zt5Aa`Jղy  4A(y@+Q6H d(Ku̽7 ?/a Ts`{jmC>w] Kˣ+5R]`ØlT悬cLeĎlkWeؽbʮbidž<bº"R'XW *[9"H,]^ˌJVRiu(z-뛎_|13!Ddr_rkɡ* D=N p|$Q*%ѣ-lfUNos©j.H$ZK4}ĦGpuj9"sRL;2=bEo2~d~:ח}]x-^"S>=`cHVj6V8lzg[5tFiz^^/ԟ?QN'+ݱ|]w1(TR32"tV@UTւjk`Ku-C6~t)^hvH33-$-Aal.}im_+}DQ@}RziG2mZ+8j CmC>ZuY` X2Yz]_BrKdzfH)6r8"s-m ,{*Dp#Ýk]+ d><ޞb'Q3T?A:m0{G: |)ۅTTu g=qnR~G&vw4@zf%)rʖJ'4G*5SXΠC7zbPcWSQ@j~ XdmKSf__1C3.ekyf&#,4pԝ8^Nk:|)1{W~婛Jv|PuN yoȽ&L{"Ȧhڪ ^$'f|=riT^TI0.e 򓪠$a34DDgKPѿJC;# )AC02)°חC fDOq팺*~hn!alee%*+V!-&hszMgflE$+!37=c]k2! /_^ޥ&!X#Y=/t$,\ ͤ>ld23U}Po*2_UF&vœsٝ6Fb-[̢ =?~ѧ^`}(JYKC&TkB;c }/ 12V^ {\՚8gIU:#,Cs?ӈ Ǻ?/(RLX`KׅuMmâtgjyS5.y&*i euc4} )մ)_KSZ믵H:[q- 7n=K`4G\VZ /0`˽xoen$$}^-Ŀ\9̺.9j3{?/cHo#nyl5}QCm`[$oQ'Y!SoQm}P{"uJP&w)"mo/w#+'gΡ"Ҍkydݥ̇ W~nD!$sUJnqB}$p4ʺgB?{XEgXE8awroenBBrZ9iV.!!-3vO -&ROhL{GQ5SXe"}/ڋ >rMB}2z6Dfx'j2k \Uut3AZ)ۍD)?b|;?)~$%5<>#ā\룞$Ea޼k)|amd`$ة%WJΊ-g6b3|[zfT30^-ӔrJ- MN33[isgcX颅t,σ8RBtttTLDBpz{}zT3ZJ03wU_#,Z)ʌrd*s3벵hعCqjA"O܆|Ӽ^^$QiTU`eg@#.u줺LUڅv삾&))# PZmշ́:ܥ\:9s[.[j@HF[LD% Ű95}I}kzA/ \Hˡ _`Zz]z]ZH` ݕ6ZԜ@.cr3ֽ-k]uZO_U弙Du_e0/ѳ%#Gӏ|G3 vD"#csT\Od ӗT>M4<ԮJlPvd@hIȄ_2mv%+N77N?<ڞI}p Mﶇx]tZ9~1gh`Q|E}6iۮ23_r+y”(O96| C|=rgJ;5FL3[T-a}VgaT;` .Xfx#l8^f̲Kb&LP* QɒWgFD3],@]2Q0B UE~]^eA̤y|]7F+Xõ"32G}#eEvkoCmZg=:JX \͔HէuuR⭞@vlS4RuN>= Yѷ<(x%Vu@#N7R28lMþ "ȦIϏ$(r8=Z&ZuR4ku5tW>t_BKJrY{S1 c̚%gnN.z4W3(ޞWcbpyL;1CPd>"bD4?Z9 Fχ蟽ȝNi_{1Ƨ/|.TPpV>hk,1B'"ڝGb;te<`|fށVmٺdUK {"d$bso31|$Vd#.$ËI')dy˚fs]h&q]"-:x `%?MRfJq>BvP6"慶' +ų _h&^4*}::UeiDLꐎ4nm:&ԊLtsV =*a@f?B#t͌|].j(0$Tfc l CK@!,СiKK=h^Ҹw+UU5_Jwf jer_k.ݯˮKkY4׬n_Ne17+ԡWU݌/f=#;'sc]3+Q-ھ`ʝOYT︙5J 2 L߁Rׯ[Js"3Lu m-NpNJ Ow) 5HT%.ځL-pѾT*J2>,صλ9!tfY r0CfFueO omCfʀ1WoScqX7wtOVlЛC 8jt/Sf%s!}Y22Ip@Xj6.Q~.An :,i,BgiB3%`xpnU̩횞3EJ !-UM&|);Qb2KpalG#7P|t9هh%y۰ּ&̬՞ X==KE_%=n"zZ+ ?WNaE۠f*l) mwB5(=#;FB] |.:N44֣Ԝ7<_]8ώ.!Ryۥ4ҫܑQ5W /*p t-c2bR 23m~;% R|H[^f:؊/sXׯk]׵Rgzע6oYѯ9&"S|bZ5hYq+duYٴӌ{ecok2388P]+HIvn̴LEsp"16 ;;Ǵ:쩚|ML"2[2*{r/8tcu-'!Da(<ǵ.#eN^` YcֵLi214ooNU4 Ҏ(wtLd;Zh#?#XᡑrRhHN3v[#cs3EIoQhο;匱[Vb# Gt]{]]#N0:4ז[${Wљ~,?38Y?])[R`5TF)q]pFTBhD;M厯N=cDّ~5eGL5S1=e=csf}BDh< /cdQ)aI 2iO| v%tL2f&%rwbUhfɼZ\ҲHM|։f<':u'*f)JbZ)j4VwXzt-tVi&$e7y5`b}Vx_Kap^yjRֵ` ؽTdECeEȃ-/UV?z{fCKBeOgFU'd$r[IYRFUK ´{QB{D>e5afv-kGP! 7El iM% ,p}NvʴzjYw麌&$)eXETbbpT+۩z(ZʵA =RgY 0֒k>j۟S-g;͎4"*RWX* ~Uv+wTVKŞ Wy>J9<$u?|}HLoSҪzZ3BYlrR^W+} Җn1\O3JNDi򞹡UوRz合pu]qz⵸.J|BlPػ&YzXh.=0#=OyM0žUkz3gLA>6ɽxB5Z xڽ UPވ}~x]fnLF 2# :#9{dcАy}9%1iPۻ%t@x2~gs3 ,5P`ߋ~1Kbn_p!wHɈ*7ڳ_s"Ȋ7{/ÔҩtPuJ#bY"Z0i>I1p'G^UQ(,Lf¶`BLQe-zB'5]`tJfd/_GM!-Bq]4ďrBNeR-TRr3+צr*y$%1$pAnjja_ t=}ш-VcHGL1jѝe/c b תp@7ٰ`جn˜{ֲ1forUdgh :arDfpLu}:s|ާ|AuuFgنnRe5G2*&ܙڻr=UUC J)2gCd*'Q?\2xׯue~ٺl-K׳ 1][@DzOk3cl4t#Kf$) *a|QqZ&x;5E|%F(ﺾ^z̷qUrބGEKWnWKvxBHi3 ##?>ÏmoDA#:GFV@\FàYki0랚ǡol}lI:/k@=qY۵JDj&eb^GD?<TKSNF({d Íطi/oɪ=jUQIT6Pnz]^;ƣAg2IYLXj .\R[cnQҪ`bcI 7ĭ[MtQ^4|rR}@uܵ(4} y=u>X>iSF:Y.e&03]j.NLS >ksxDtƏEGWK2`=;'2u1~ ,`oe E#H# ):?52ѩ01~6%핛HqgJe2eu|-_εx]mRW(GZ<*);LX0vcS.D*f8I3ݖ-2j  pZ)]i_\wgӖWf[L9u]_/ek6 b zZՕ9mז:"B5~-˟)2JQFDkμOgmX+l?;4G66r׫ 0j fEf TwL]4YLa+Em*GԬŸ]mp84}Mvxi~@%2ŨBo2SW%T,Ywhv|tezܤtkԑǟ`&`xN] 27+j, Z`5O9)HDa `4$#M('"\;bBVf/m6U<Vm !%2hl 5SLQKH JKC_vzua]tufmrN؉ltUӛh6N%n6U=v\ExedekFrl%I n(NP2t2`},;*(\Tĸkkz]~]t^~3`ϲA8luF-2%̊y]%BLG6׳蚘c q%KR1=WOT.}^4Jv5>U߿U}bPr&xyZts4<_@Px]ҸOLA#-Re PHWBІ.p)kb)I}Mr#m]]]t E@pBficSGY=U"gd[`U6t1*cUjbITD7@4ck'e|t{;<┚<tAPµ[beuSed44- nTF 33pow+0`jT"sߞyg*Wj +i| |ʴ޸LROsRD^vyϿdR)҄0f@ #EcӨA[1KvWH*[R$Yf\YnU6*/cSu/2%`}p؇ռo¢*CϽ<[ݒɑDA@IsnTQ,NLtNV;T8CwW SOrgT{SR lS͟Z[smH}U L'׾fG&?wziŚRȇT".nKRN§t)D;!Jp`1GIUyM;gM[bPwɞg j\{FA0BUDOi ){2-nrdJFTcѐ !Qcvg֫]lԶYꟆgym:Xnl]p4~z-ϼ\_ ʄKjw4+glEXGȲLm!S |ԚBlOVK! 8C%4ss7sa\ v”^}:ӫezmj3?\;0 N 1{ȥحnc!fy J*#H(L2ǸдUv1B&Ry[P4/.LMހ15Q8frGXI-h4AVI|"GU{?^?׎u*@;MJf~oOW iK`/YCRrk]WI{׋WIpNRvTMʥq֋"hA;;+`F ArdˈQ$|ah"ˌV=6C-U\?)2"3<|F#/8j- 4Cf0f!3>Yik25wdӸ՘ ́A+|^`$_&NuNreQ{G%,SAHb_w!/(u]H6WҐ:[ NlZ.% s3%HM5lv`&)s\yɅM)yy+˩~3SצwPQO>`k_;ߕx9׿؏BznTW4c'/ѫ}+"(ϕאm?.8@g>|3ŽmIKwD;)Vd:k"ja̢|!n1*J!Iz 9(LGDUFo4mZ;MO2uI/RhQStCݕ:|uZcyӧT>{P1$;^I\8YC-يiw%.Gኜfwju*x ϟ\YMX(]'e#d|u&TT5Ϸy9ȒB&.ww^]D=*;sSJZ,۾B :l(B[Jd4D[,30{Psvw}Sٵ?aPӜvi)25J貵& 4A57{$XfQ 7,SoQWL,#PY\iSj@jF#6[.:-u_{i9eVB FLh Vׂ r˼a9*U4jxѶ3bez2{GpZb `mEu~a 4OOWC^/ĶKkUA2dQϳJ{ cI$;' fGZ뺸o "vWdDGfz Ԭ6!'ikw )",<5CA -mqNA=n 1םPFF/D]S%u*Rfy^M8 Uf%-ջVyK 4J#&v@EQ,* AZtֱhL.jT쒨ƭ dcO,`hDrG*Ci}v B,`؉s4t'%S׋Q^*Vxa,y*Fd:;"dKv&4 '\om*%S}ҧ$:O ;[]LEx"{,o=OWAt7Z Vb EGoq>31@@|axFp(x;E-K j.Kъ$1]'/: Sk74S`õ\ܜSfg|N_m_Ci@~T[߳,&pdjPɴ hJ!/gWlռީ/]̊" FoY3`+dY+Xf{FBx"ZAz+2:IW*]եq@ P>*Ʃ ᖒYFAÞV~[2ѩi(a0w 7%ee%ocl'a-(DS2GDF'Ƅ WsG|zow\3]ny2$;>l )%trcxۋCyȏΑ,/xaKO]tĨƾAZ獫؂}uc4MB5Ca9x Ol`p_0ɽx rSnLZJd^PhM hk'pG6Ώ*|ڔ8Ѹ"MЛdk^j O0P@PỵhڭVΌADžo3,yR@:Nyq 5-9䪉lɋ,"z'DV](6bs=[^O0SrXD*S[VdYus-뻏NdT?NsKUH2ې+=:$-}kfT=}`ݶ7\* bJr-o)[+-ǩ~X k8?;weL^$"3 @® +)"=qҵ{Z?j`nuK 3(L`yGH|@ |b;&*Pvo:dpv%%'9Л~_2;Q:tjSqӴ;Y0}Eafc l;e M(2lYʋa ZVxE/5g"-)Y1T<Ǿcϋpμ6I퍞EF591"B{_ ~/ b_mk&卬"ח}r_"^SlIMSEw-C+fʬA+J;RZf]iwbTZF 2ogFDIzU-wԫ ߿uW^oDTWo fxM"ǘز%ޯ4xtxb adRl>W<ٺ̮__y]y;/DV**{3]| xJHq `-,y]qDﯼ8MTcl#R &nHJI66[Z Z~@CʿοC{_-60`FIe0;;>!\*SBӰee~O¡MJZClA'@TrYgtqP'9ěȃk@<}-B͋{},tJay\$#@b-==ݑZY2*otJi|&>Ԡrp~F>39c):rgg|~9)i- $1`PKP,5}7͹{8?:jlNfdt14 `M˲fQD_U7 [X"R4(RID2fbt2eXF1Ļubuݤe`H7TV='=>l`ڷhr=7@:-%.>2@Z,,̺˗igCĉ#ւ/BGfv} 72'2:*}zެ?BEYG)WS'/=%JC|@\RXS)5G->PV-ݧ%ϭgyz -JZC1@s0;?F<]oZ*kFؘ̋R+Sm tܫȮ^Skpe(nvH/@#}'veɭՅb+ VluݷX:!mK/#A\#I&;Y}9U3g򇖀uẶ/wGfzFl{=|ۛp\ٚvE(sY7Ƨz .$=&lŠBFQPu2*rOYG22gfpF.nn _}Ʈ-?XC-Dz2$p_|)m3;ԥ;v]WfCd2Cf#FَԺ{R)׌n+Ḳ,ixɜ zctiNSO`N&>`C8yUX7&oqpJYe2p|s cAU<Nu-l%Q"\^/Z6~P\՚OkfƷ/V1ltLXN 2 TDE3ό>*0%f[EwZpZ0^Jy?g6z(ѤYBy ]Y,SV׉},VMG5@Iof#JFLTRڵ,Cks\wg#]hn4KyKT7gNAY2h˪l5ZwogcxT@ {'c$0:jNyR\ /5f뱟ߌ%}_w J0ͶkW Sz>O<{_WACJ-;,2׵ ?п]dST_)DypK56Ve~udRΤ-(;I쐁zMڷ{Zx}ZwJՅj r2; WJ+\FF*efeW9G5qٕwX|nɭh[Cs'DfmF/~u`VҸhZW^6gy n4"u WXBRL-N-:1Fx2,\RZ.p\ @^ZW-dǒ+:0k7C$|0ux [n킆ĊW<<Ͽo3c,=Ğ1H[s>dsMYhcP@́Ä,Uo2ZGh9ƛfwVq!SBBe V??>|kS y@vw8ihAj􌙩 G7P!-ei7U+\z2/iv^f=J5ffYk5{rNX ǃ/ٚw0ؿ:wFy>}ܿ=wf2ݿYwhվt^nƘvVTtyS#.7eㄆU$;Wm`viH 92wf]P Q 4zHqf[KNEԈws~:߉' +~>z"eVg)mdy3Ⱦ9̶cόf"B֣X=6M>/3b0b-ka]"Ӏhfӿmx O<]v ;莟ܗK5: Za'2?^f~p-o6Up4+L^rq∔ئ$`7/hdsu*-Q$D4́vLqx8ͯ I`V:n4 W[W!CRһjnXk|]ULg6+V (ʞ?yu]k+ョﵾ3?{s?0D_Lf%?QаB|/.H +L+{%g*!ZkLlf  Y)/]K.A2"HY Kk[,+WUGd?WG )FzDOFZb&g5g[t;{̘U 琫;_*n0zT/}/㑙xK䣋^FNוЫaᐘr@툝{7P$  uPy̧ [98&h:MYB~u\c鳆: 'JczQfM3;3kFxtScam?gXQXرܐ2u<ݐUvBc% -:!d秬wl"RYB:l37 N e"۔}MfV`«W m6)jk42wBIlMzrG"%Fva멜~(Ze,NJIGg, NAnTE_ >I@j-2CF -+F\I2[WUy0dfH|3K@=;JQjnk{dHOLF)vdCYTjIxp_ॖ+9ٹĤXtYi}lBTd2i@WWբ~ܭw3sf͢Nr"1snݷ|=1B)ȲG|,bۿtZ{?kbd)5_<<Kz(wp[;Xس'pS.e1N8$rCZ1eDV !-c$XEϐʍTnd0ӕ^cr%0>WcGW%-GD82+ b#;avah-2 SJVpZLki6}]v]^+Uܓ\.o]7̌yYFMBłతhf2ÀˍrwZ-07(fDFjoIU+2"tNNø UW(,2qC#%lwX#LيoF_ *&-?:v|#IU)X)sƩ?@z=oS071JLDfu69jfM?D-gejjzعE4}6Z6 b37x3akgl ;#hQ.JŦp_HjukVۂ?p*fDMn~Md##x`_ӄ7<~d ɉ5ǽ[ͻ9 >UjQ~bݪzt ubPWvF$˜'SFHp'GcKgW f収ןiGp&qGݬb\}5m,J\V7fDsVɲ=h'#^=>OZY[1>B:BҖo=OwFClʍ2U ^7"PQm|V 6FwDža"jJS6_Sg{Q{e7 /RiGCj{1–49G;}$؀Ek*ʏ]f|ȲyZPU-u/_1F憞c EmQۤ7pUWy=TVl2{R6 Iyǀ։IkY~m{)F5BS^nk_4/k&^&dF0R}Ͽb"u]+{_׷ۿ|͈fne&WQum0fGTp&M,ddpN_7T6m'ЖV4<*bm<2Paj4| +*l}"lh V~0#zjJ"ZWV$SQɲ6䃟}uzIޯ#"jY0vԬiǢ/ Fy]~믃OC`d|Er]i3JT:xK`d땴Lk{YW 􄻭z_^. =(gWdyAxF;̛6audk_#W}DYRCe+TTQo8dbkr`Aks ZI}+خk?|a`Yi-#(]=KXJЮ_'X&;DSNg$Cn*k G߫ak|*44âYK:\ŷJX9GYiKV4ܖ;u+6P4`36a4B]- z]ߗYKUek,1ǘ22-& D0SZu=%ER"yldp]zoM ;( hzW _mYЩfDɨ]s7$NoE+lHGy{jUM̯vw̆XyF*Zʏ潁O EuCe<8 f3cosC\$E#++ 6i'(d^2"wgm-;)l94m]f8}e|=ZBCZהZpD;'Z1ʆ'%k%0rp0v"Me0X~VR= +9M-28|Ciit]O.b~x7&-Ba1&GReWωw ՜ 2+e&'n+`yh3Pxrd 8 Qvf<3j`4U0Mt EhL]*E͛ 4~-ԣrgI6>*2'Vx :an!$ 85mr/y/ =?#j̚ӠC~UJr3[RL9t~6O9 -&ȘQmY0g}j:WB**"w'Gkde|g#[A}Aͤd>[z?~x?bD=0eZlflrqU:@ujTed YQfg?|633|r0 w,`x~{zљFf)m0P5.AtDM_¿oqgEr*ldhgtQ׆7 oiuOgFn?Hl]ӦfT9F 1ϓ{bܹ=yقTnwZ5q*;lVOaH)` 5H+qQWUڷZ+sERi_/2PG8SGB7RveZew]$eBE[9}wA&vhՏ0%Om5zb**r )Ͼ7͸V}]Z+Gʟ|9hA =c7GhEf&Ueds*6 FUPN ӵ)%Rf=1a J77uZ_6h+I"/³EeG>픐:}Jv;ajPBbtqY=FUE#wH=ڻ_k?n˥ܮekYQYл񸽞];y*$#ꀻbu)+uIWJKEq@_/^4[mmZSK`C6?ND8CYeC3guVh+As=^iٲNTC.-7 nC]vgg/w~}ׯ羵Wp8:=@o MmuV%ob'|q@YY;O  ۔O&KY#^\ONqBSGOSc]^[3\|I/aʍO_t[P._'Ȃ{:ʹs<NBSË#^@O U@/f^LN)Em AEb43NEMd\c|9ܷM<ϳ# 'hi&W|I3s6aBC)OQ' 3 t=n(6'\@}S~31&Ҽlriyy@$($ha6c zo[˗RWHJ=F"uM4%d9O| (3d)1L2H ßגu]u_ZE۴Uae"dVZVҵ|LDÑ=I0f9b4EûVuF IViyW\Kׅ,ɝ9 +'4ܴ#r?tI@B ޶CkefMp TmZj|;uA?q.fg&#/F M?1HBuȗim u{oQFZe˟:v`޻+-0xoJ H&}RSn" gmS/Ef٪ߥn,lz˼qJS 8W~Q7`UҎi} ?}j;B o}+m,H,ǯ TVaSѼ9Ҭ{K%{x !*%.xDv.x {MPȌ<]1ק A 䱯u_Βnr]Y#֝yz|^}G*˧51/ c093,N:+uq55a@"CuaF<6RNSQBjeua~sB3#9U`]'jABwym[96^]G ki-U(rmRsf'9~ ˚&"-AZ/8xE@yI?8)" ݾ._׺n͋Abkcz1e7C7Lcy}uth{v:ͬPZt6a%,G+tOy֌2+|y 7rox,ɸDJ>m30C>]SǞ7at1d]AeXk/ha [s(!8JzS=NMɥ4/ףe<6bfuIH2BQ$" w;~rB ٢yA.] з'`fz76E^.\-ae%g'L(K؄5ECn%*evσ]ޑN;3 %-!.Q|mu0HW PŮR䮈ua˯;yBd_ Y `َe e}=//P@5$KXOKDqauy[IsOsw+ 84.Ǟ}}oȷM.YéTNм* lDegTK#oU3̡Zޗ 'jLoEpIXjs-5!IK ui1N]&P ނ8֙8"5K¨e\;6-ʼncPlZ~-Jmt z!lL KB)`3h P'w5_X)Ő(*Wu88W}iTz7Ѽiekdc%FtqfYsJ+"ȧAϡ Z%r3S9 i>;ôc<;7krgL!L.Ԙ`4ȐA\"zнF+k23T8k1Ta偠`4"VlrII"̏ 62OV,kfFjkȵbS%k_+ȧޏLe\&miƴRRZDy phrk_mQ y褊^u`BsF+eW * U2} z=]pFfN^½L~Jm ִ͡^W5ZP {+jJhڗh&u5LTajq/R>=k)Os9x$~lCM2o0|AŒX*]Av37v7G5k0btˮ|w9ÜzN|y3#3{v;@EX΅l+بϵRz&<c@3Y|xD<{`lDpo3:}6˞DH6> "YLOjdz}4L밟ŶI]wdf8l_>C9ItZj")l_V}?avPI7*]nsX D[n&{O0Ș*jM-u-ϣ߿?N.w_2חcy{*[o?JL 5gg;JbB/ЧwI}$mO1hԠ<e=7ݢv/<9gBV6` ҇QB q]F;ņ/xKUpzeN)8x6w[Ԟ-VRܴ {!B "ֲ 66N~U: ߦ ӫ8TS's-PuIA^jRVʏ$TfcN VߥN fQ 7 .%4=6'3nTڦt-[bN*)khGۼۉ<*̻7ӵ/},l$rrG<kwfi,l6&gώד ve示Hx$uw1t_Vj;EҜϋsZzNf4Q}8l!pzrd1oDYeoK+{Gӆ]ܲ*C?V"KEwaVZX冹hE0K"->5x߁H&kEɵߪ6v .ƿ>Z;_#3MU/?jVr/ e)MnQ123%>? Y++wFIbJK NUvY(]/W׵ֺPZI{Uqi iq'Mtͪ(]ʷ8~=6^`NhLʹ '3k*[@yLx8ģKʱ;#{ n_K\И!8$Gޔ1<|I*zdNvOO.a!n2{O/"AS}9sW$PҦiĹq7#d$rc~h:jNR\V9kiM7.ufv/BDUjNx-udois5kPEPO$n;[Aмz3OwHQX4Mv J1`TL -b#_Zvp2vߥg[<<p]f; 'V#2(ׯĺ._~p,xTTqY8??c\|qZ J`pֻ ll0Qh#J8kD>0[ð+YGJxz]F63lFCmjŊz &z=J"B'>YOv$.CFnRX2a I0ГQ):wI 8mVD&!Bi?Ư('<֯+1~E~VGfOV(=t~£wJ2nh\Xk8T;*g{$buc l0Ņ z;Yv'Ǵg`|<ݖ;t+(CRo K$ǺV|;d_U1B?9抠ʁ^6u3%Wx(P=:˚$s?`{~0W6xjD2-Fd7썽!rm(NtrW68\[G!6xFf*"yXԬo`lNNPF˖׍oI!T6_; e_[*x5ي&{6]896|4އ2mdg+z݃j2_7(m>xƽRt^5[@Ny1ЗgjGڑyBvH9#&yEQ*)7@ӍKk*ӄ_Zh9ikvLgl&l vp|Wu"bH|W^$Ǯ9#| & >1#i07ZC/ }vȩKW69E;̫ʨ2LVP)1Yq*-4oy\Ylgl6yu\6s7Ve>T p[4t AOƳ,"VdfO4´b6TeoDy%:^ f ^{fxdB>|ҡCo36?\fV@$g8Y{.e [YwRfNW尉ùg+B7etXz$NYqe߫f`!TL@0X,R7P:jřK]Qӏj'$w[ςcTq"oIȕL ?{6 ^ZaD3z|k늬,@+ _&\ [J)_k/s}r$1\""32Z_W&N+?jcj}0mѪ2zF*r_.E>t]=UW/$p!%`α೹>͵.uK~_n3rf iK)ycku`͎ n:|G0ҠeTd:_C!#|0s|홛تVº: `@eE{oM"4eyK7ÚQd.p^1Rf~ԗS dI5nqw vkjJi׺E,1⹷ɹ92_o{*EMZzo]w"iDPTbk_q-Dm m4{E$R{yCeX7ֲVr,kd )2r;N [bc=z;Pt]aO{lfCng GoWƏtHA y7Sv/-;ܳw|?d JF,3nÈmЄ2Fuq1P*+J\QLu?e /e C ˲Dּ?y:vY *0"O)\u&҃!&fDc 2=% w/n-su-M{($vfQ1}yK\=q6MTD(Tޢ ]K%|glԄ<#,fac?/^ E| 7ozvd-sUǨjeȟ?c47z,VbytK4l;73pu,3Dzc# 6fdiyE{,UIMomGe(ffN֖T2) *Y ygh*nu[N^GzWdfnEDF(R>1R'۾Q۸i-_M^RdɶVA7^/~Ϸɿ;uו^И:'=KSao-+EJ\(b+Wgi-ﻔ{S+AtQ$\!f<\}}yݺeP1mYoq)[e[O~c~*ǩߦo_cJk!N4?fLPr=l}XJ{Q, |Vh=.2tM-pVKiR'֊}Vc`NitUM/Nu!pϭD is3k94T47UzbPJm;$~4b7D-nݦ:ahЖK#H=ᲓyլW[x|r&Q|1S/^m__ cC -m f ӌ\ gƦPAtd`3͉E^Э̶:ȵp99?2j ˑ. hV~Ms{.5m\Y)*[65A cJa٩d ,3B# i~AiEw}}yy]lw#1xAnAEim"(DGf`V)_$ckdYF0ݵbX+ڙٴmR>}f 6qL۞ǔ,~E>a.wӺt](aK˙ca6+.A3[`dX(Va4б\8mZr⯧vV{36:Fï4wMjg:H 6q2+^fN[=37u\3#x]v}u_X++d21#┃ ِmX+BP**(ᑖk-Zo`ƘyNz2#JܿZg{p9|VeD>hػJ aPocNCR-.9Te@'ON$aaA7E.K@YY{!;>Xr>[K~asG[M;^^`W[6?{MX{~Vlşϳ=֓/kv4J51yG)6Ǐ3 dvʤ|y<+UY)? p7U}ؼ4c0dRXv,Yu3PSEgg VBSMOmk\kQ, MJ/13nQe7|'N'"oK ifVvNvD<t =QεZYϼRmf<8bkng>eITV9 bXWpf#3xV=I)"/t7*AT!u}wP1Nal )wZtMO䣄I>mA2VvF끯;|ZZOuYlnTB#"|oy1fϷ_R.X8^<%%V Z]{kG~elg /4v+RmV;*ćylN*+T ݀ e\Osg1|1g7 3MR]3-1I_"W01*L;u 0җk}cN$]k2ODHckDIxHI\ b2^yf}ܿͿ3_{?z^/6i e<5|o#mu}ߥ^--Ks Ɉ]TiE5aD}kڿS5Z1W< tJ\ |o7aKQBkzㄈ7Ӧޑm,#Oo3?38wӀQ5#0j f&^pJBΞ?694ۆ<;KḐ  O+e"Iϖmu6- iSY˓E%fbUvZoBra-k)fܡͤ0H03.W: M^x WJůX?et<"eXn@W%Oe9و$Մx{f,rP{ehԎ3j~+)oI;6yS-?(=ʶf"T>'0\U)Fp~^7ab|q -]YL*Ś X|xM>{?OG7m+9~fH˱cU֡+h9mA_L =sn'fh:s0>[]?z ԯpx^L~:#Nرn "ڊi m<rӄk!/s%{3B Nl:sV`+~=EřX{C(7nE W"M~"3RVN=(FvrϹ5fzʹ|cfΓ"ɓ!Rze  l^(1},H䥧$}M_2^ʢVf1i6.葑 z!v"D%֐`q͙v] 2_nY\ weU_+vF~>Nr2?TZ*הފ3t_AGzܷ|Io~x|] \~(TSofpՈֵ`˗ ]]X+%إ~6_JFRu˸:48AH bYڮwvR,MEgxg8qMZ+*.j vʋ%ux4&"CC1{G}UNv.妥nv_uu}M~׎|WyJ@!ǯk{-?;cW|sR^WR nzIX:DpZ2Vn>'To1X[q?;kZ.4K0=|vQN-${Gg"%uf!蛶y8uw<\5C.meJ}lXcD:,NC<^u6E^%͉DH{kgd>Ozܖg b3As4fE[eX6չlRªW;Ű4&+Pq?A,wq-+nWA)Ѿ*%s柾O7eٽE<u}|€ET*W5/„SKũ e35 #'≌@fd_נ;ͬGO1uH+M ? >Լ_Sql7U`{$tCBȟ|D6z-__)W޺&+ ъ=[d>e Tq$D^]yomL2Ve/tnm*:YǔND˱;L kݑh J< I;hq_~3c zÖ5C)Z*7ץu s(6EMλo.,bs$ISM W7'p(QF4oٙx7R273}MvuWCۙ{g_ke͖'fV' ;huZT̳'+RǙ] T72qwՀ!3D,p!Uso>C&L I}P5jzHxuќDb#ef,lS4jSьާް vt-u-OēD: ^PSarm?\k1mi"a&(x=mP̾?~_ﯠ矿gFα ;#ˁ2! UӉxH2TgZ:Avi^f%w(&X~Uxܓܑ550{,Ě\7IƏsNϮiGjiN(Up]~]W]@]-<63ˎ9+= ?n>z|CƣF蟔;eI۲`ͪ+Ѣ[}(3EFg;e_еJJp-P6y/}iK?w6et8葺/|mq I-ʣ*u7}._q] Ԉv6:-e,#Z"=cH 47:[efKJE%,wI7$\c2<*/cQ32+!\L4S^oWZ#x7|"!c Ы[Jr=HWڽ{9 %Al\]p$Uz_l/uN4E0ú#ɶV,ˡbTҫr`i3V8|G ϻgKoOJTY״:ksd8gϖ/V}|[9'_XAKG[xNPt,oC!I 6K` `=Q&M2ڭNMN&ޟ,Y! 2wW\iO'̯]}`iEZDd<-A/w7C~E,̒VL:4盠_FĸxQkF tB;jjr+z=ٴ)i>Z[6H+FNY~x ǔkJ2 27`n|!jՠ6]te4~ASŤ^RK*vF a 01.ГAyJk :I= Ӡ,Z3R̙ܽi#dQ|N+>TD2'멜*+AI$BIhPsjL!{^-ܫxu |hTtp-VDFrFE} +X;+OcM=Xfy-۲k/ߩ츖ZRiRsu @X0Tz i&4& vYF!$7 F jI jvXf4f}tJnyCi]VמRoVQnW~y ֵ$'2hVC4_0+K06GD*h_߷yM2li+~ ʌ|WUjpab N|Cgmh7_;U<_g e'v-7mg4PfRa]$. =OQiXQҮy]uP{jܠB'lަBV%\hmMJjD0F'B^Zvy&%QT7[R1tE Se;o?wE5Cp[P+$x Z唷%[3?T%%*ge]>,oLeZ@t q]Tlv&s~R8|Mjи h*Q^ʒ&E ό\ "ﱛ$tL0 aF>{Q8$vrMe` pȔ^~8%^JfYxt^;{.7ՓCкֺek<4a?wy :*Ia;,KSPJ dnǦe X :y-3 GzOR,7f;"ϮI--0A!ZY(?z=3o__߿+z_+GUп^4w\W^7P>9弩L瑹|ɸ8Ўu #.ZJS[d1dGط͟H콟FS}R.e9?|tP:!@nY9Nqy<['N-&#߂aUoD&PV'QekƠ݌ l OFtJmY[NVɚeFc*ua$SE1# z> %SAQYt:nu뱯ʵ3BG^Dd{~k-2^z9J;@ސplK.)ɕؙώ-g\!CX"_P\ffmA#WE,R93Kbf8`QulȪH$ƭ@Vg?tUY0ݟˌ>uhӠzrx,U~s$v>]O]fk}K a0BU"+ӎgNSQ]W^]A#.(4lpr|GE5VZz|iPa$^O^]%5R7Bu,Q76tP}>2d?Ac d9]wӁ/#4 28ʪLuw.U7U01J?> "be^%WCPÙOW}Jڡv)`Xr)P鞒ӗ\ %]FOqC`S-6p;_-i!鐗#vj}ùkQUVw jq솾}θz]}ҾÐ[Z4-s]u2X~rMK[?~\:pvz ٹm:|}cʮ7_9i omwa%NI]f|lA(Ҟ+V x %5:|JvoTEĄU Z ;`W ?ڐrF!D#3XL+}ܰ뺪7wEӽ^ZҵȠ"ɭn|y9`I\'"dЮ77֊arBvBHGcUWWƒ2뗞O>ѩ zE?p*Ak~ϪnyԳUPP\[Jj2ɟ #W\\+J -6{E]h(Џ-O=Pݐ] <| :Vd5C9=~;"_Z_fuKѭ (j.3OjS$ 9+"B-P}fٯ3LF :w8]iI& BьGPOƐ[VGncLSQ-5oHad}28ёN.Iο+M UO}8Cnl(pănҸFMGY?*S`43.!3\GQDQ@b&3~2[R Έ>%|^ۮ1=*{47: cX5)ju-F;ɾ8___^q]]z$VGuH)v2e[:O^i#׬m'>< =sz%o-[Ѐ3ߟQ9Zaa~ d?+a7p$Wrkϻ[>ˣZRi[*}Duuxwn* x1$nˁVJjXG105'nd΀U+ @@s$)ĈR#`4= w1`)c+#HT鯯Ru-ji rW+3rօLU@ugy+H 9# sy/-Yai.:h D%M `WoXA8{WDfrT*ap (2%U-O)v:>VvlՆ{D懛PT1 A[ݲ<;PXdF^y,ý]!x7?X~ Ӱ(R~-*D؍tr&˚9.@jB ]k5H+,D{W,*=UU&H#;\Q?ᱵX\N}ډd0!yo'E`jTqߙW2WaM4)𿹳߇*3?Q~%Y++owV3RWVD^u@ǰ%: l*qK۹\O+Rs aHW=C}kZzigv̖oG%:(FsΈjwFxgdyAkց28SIp\3nj{3!pPE\R+ZÃwՒ Sg0XP8[x-_vON|'y {h9@_sc^;_*!X{*rЄ}g NFGѷ"OߠaB\K !="\+ǀ,bM=]%׋ﵮ! dpm7={:SfYc1?18k32kniﺾfh*Heߏ {2֊5 Go!t|q TB+>t 8Љn t*>&G!d!mgc `Dq/G3 Gp>s@dX fgꖤ׼l}Ni=޸sFD@Y(6:7A@M6B;{Kbz1^r _IP!Bd Aq̇&52@G?Ve8 q;#Xm+ɦpzSf)JtD<:~D-D<ڿyNpq{)1g޼oeǰ!/нB+(ttosM}77ϐq``bUҥoӍ$H>HqjMu oy\Tp;G{:NM"L>ݟ}k7Ȕ]wܵEښ1r<| ,M2q/6_NVJhtd@H:2ۖfu}equ=9!.)"x͕t20Qܕ ^4|yf{DZmT6̛G5CL񌵅qR@sf=&f %mZǜdk=l@#L8*&~v0R۫G8"ytVۯDOa"pL{n+H#1b)Z:6ںO+|yp%6I+g0u]F76IS@WfnqLG"Z(lD@[Ab XZGnLɰ|JZ|(2:80 3B5wAm\6؉XɆ\줛 M t/d+!+'&=[>݌YO |OmvV ]Fm}P_枬7GLPyu'־q߄SjT/8M`sc,.zӑaǎ"yY,Bkd0;-IH|\;&ǘȞ  K2rյ OA`U;dN<#׫sq-ٸT.;ocTZNz0uLYvunx]2NkjE rܪd3h*RglOGP癷H 0vŪ :]h eb x@xL"GAxٻi|6wD!wN WwGr4XQugX!)n3I*ƓCAܑޚ=٘ٽϿ 3XռzKj܍۸~F0Bjf7زDv _s&ou*,w+ԎLfDdWq1Q4c ȃ G#`t0C$v`o:v\msn$NS?-2Ӱ/XD= ] go#fY'P@{6< ̓hSB򟤫3vqd>/"muXWO@P0&9yha \ꓴX KCl8PT3/؟vB;&3;#WM>U.ao;D C$rp#L=agFCw+;~N-9^z]VDduz0uI/!湻EzχVοc LɵEc1c91L mO]ޗ+2,*O[1_ v`!-d]BjUN#`< gM=5 #)il(y";Vu|'Oo;Vf($kav"L\]W+"TmX3cj?? ih3ST3z]\z%YFBG%IMϩ sE.e6H]OP8ƀ#hlX};А{[xlUd % g>s2__O}uL~dn*>ٰ޷zܞ P]N@e:XuɸMroUǽ/J<ƱU'ñY(վ?[ĔrX C[C|]PyŜ8uHuƠi4{Y*}ϽwVK9NٓQ[%h)@ ܎IAjhu*j%X./@H@[^Lpl4‹ySD%v͙ 2 lb7_+`c?ȌCo_0tg9%Ɗ1VsmTf\ =t7.VW^YơE5g@ oI }b"KR0a* q`6f#a .d쪌lc&4:`Mmj_qAZߩv1KG2;8=x1I2%8%a`~?+[mT*UʼKXke`fJn&K؅J.sZ{c߬k}]_y->?# =}9g} s |(.[AA,PɹkͬOfRߕUӦᑩS :zRx̏s_5FOCcCQGD̩[9oQS[4\FJ6#rEh-2P"6j-0Y<,>0?f|KCS?pLș@=8Iǽ;ɔ"KZZIU!%c.<d3r(#xaѶ#IB(JuU}/~OA uYFKdpI Ɵ Yc bڕ>d |.5Ex1V]2h(=AwjfA잏d7ߪU^_(ʜϙG,_z("Iu\إ#؍)>6K"uIc1iͤٻص"7јrƭj! 6=m! !ʕruXg,ǜ8=5al8XKjMi]3Z˄-;?94qvT]]cxLtkgnn Et0X@u ('l* ۣΈp pE|LqzoK6 voל!0UJY&ۘ—uf7;jۧkɮ*+(L_*!BI'<:U~wԊH4nOꐾ J~Zׅ\&I#҃<}i!`akmﺫ]m÷ TDըҏkhr5#lt %;^(;ـvWՂ)\!nOo[cja`<#e?nrHBN Q%)\W;㐥T=$ke6 ҟ{{ҟ^wջ7b]K_|]+Fx xﺁ:xw#;trJ͕I )# FFVuFֻj jl2 Vu#4񈀞oR͡C>QF6!J=bOMibLtdPua=9 }2; .YoʯW/5j> ;3>ݿN9^t@ZH5s[1ydYzJ߳ &Ol۞(A m:5]rLGPe Ր}zއ4Ч!?w#ܳ|в oke٪ N[ y{TlQ1'Wr}^dD.w #qFm'+?>}{wU.-)` 8~,Z(b{?ҧ]U{~>7~wRzڱQxf&u eB[/1*2jYbGi|h}mZua=/VƬo쌆A#1ِ W0RmVga3 qTVBd0 w;1k&Z73+s7nK39*MS{.9pDN|4*1ED?/d}μP.eLAPt.R rez}p=SiEQ|>#{|Wx(lond רV3@LBya xD$̤d D-yc hVv C;߇j\SŪ^W2tl]|OϦdQ)tMGAG?$E4O=L&cX+S/ϯZZ twpL4^)xܱ'{lD4pjv3SZ~Z+ZJw%7%td IY3)8 O<s/FbM0iZ9lcSfȎsòw7 FW|ݟjVfV};s"RCX)\[Uz],|{*eI]H.mcx]}럽v@cZNkR8B4xx q4lI@SQ+SRGwXLUǻМF5wj,5Дv~lQ@ ëx3qt'-1Sq]Z#b>&*ތcj|ʯ̆V/{_7W&/e'"+Zi?+c2uAteĆ [:#.`Άtk﹧JE]ZwT 꾓Dj8O>ñv&=38s.ݰ¬ w}2Ə)cq1 Wpv۸R +^} jӔe(á!L'xh1Y'2BGҷqd뻬|~*!L5A=˱j/z"73R[bo + 8h;G`]2C8UPoC<$(Δ m[ )+raT^{so32uע3Y]lww]J:02"R=ArŰȣ- 4"115IY>ÊaτPF`@jNhA]aL36rdӌ,ZTd_^$umCc&cVA]cXwwkCS;_}C㔐p<r[ v~Yc%88}!,w,$kc]f\u!\nol3c Bo/0O]* }{Xx'vy+2y\|盔?"鉏WGVNP~ߟOwCI,1__+7"T%лgAL5f5ndb-9 Gd5ljջg{?{N%Lw@K0õq4L{?;: hG%&%#Z -aQoaIfdv[GS dMEcҰa`ڡqQ('~FZT`AZi&:f8'WkuX2h;ܔՒVO FwMuu.zے`_҇Ma% O 4m.IF\-/y촷wZTwUimI0BW񴺄I:cs?cS=)iƤF -r {XT2h[ @ߓ6¡{56-hwA*S݊Zu__B~'[.j@SԻu6 1͂KU&V‰_?e6xu8dV|@O G&9 vLzVďtj= K4&Hb)y?ڌde51깢Cڼ)ݽDZ⻔ohv!v2\.by%";׎CQ |ʁq!0ICۯ3%RgUN/烈xZB+Zx-fj-N(Ag-@>L݊S͞KkSuJQM ^˖ye9.[ElmW-˘BңژY|J˷ ,br] PcvUw`_:0%>7vqow;[KE_f"67oJZ ׎z`.'T)1urƧ>Yq&{l<KL-^䧶q?3{9#^IYP]K6:rI<`)@IR־k)!"Ej8)? ]>L]_<ڱ\OGYNnV'MjG\KA\+zlt "2X5s%unNZjC.`{tСG8?Eku-qȎVuǕOyV334*`*ݽ__}޺J-.# >vA޺. xߝ11'4"^/$a`>IcI(m?{]z~ГRdizM xc|718rWy e}"UP"Kq1Um$gACkeAws-zpF2M]sJ 9>&Ugps>{%2wgy?hO Y-*xa&0| `kueW4<jr*^ 1vr'P^\[OiDs%8ںۆWv$̰`cj`szYO/xHݧ1daV}DLs,.Hwl=:b 0H, R_؛޾Edp\aij@Dy6H5nPBp]Q6r ⻬-)퍅1-i2Ep%8}W*VN"vC~N=llk2Cd 6e:1*7#}.@UR;ש2#\J 3]YT!fٵK@5XI?P!F8=¶~?p@ 2wv&ڡȋ"n;_O"^.^)v=d0sMut/R\Kki ea1р-02?ỵ1}!b{Gi9">GF``A|DSVnprP#bED<_\ M4f1ߥ<;B GE0DX=cd&jR*m iginl?ݎUՙk9:\ݜQf.8j)N x6v9U`KANUъ(#xrZEh4UP(<ӐAv{1B#n@ `^M#d?Jsfjս?wbmvot^|zQ7^TWZ98t7eې9:L_'%_[nJw]Urrqՙ3}|%f>qd@uM=lS/~:l~G6c% YvKU{Ol]ހ#`!>p쒩J^PuMc9LaJbugdC[Z1=Lcr𳘟 Hz"ǺXkZIa_+ɵĥKJw֊VԌ@]Qɼzm ,(ѬATF)fWKXO6̐X6XLV?G_^ݽ<|`FGȧ9xlԷx%R3 FɌajŒubdS)O' aLH*h'_W֯~ZWʘ`?[ĜJ:raj,7lQ@(H %S+\)y,gtx'h3b<'u.rg9݊C'ea{SC vs8J?2?Fu746 5a3*s>3Yz6wX*~ Ue*)\Sk#ćQȴ&Xӷ8;iVЙM}nvku{o`d>{6I&IW8^>xnuJ\cYmg 2wD7%] ь% 7>xaɗm1@ *ܧ^p?3`{h9T(#.?cWli/?|3b kDp]Skaf2'vq22ײLzePhMރAu͍ 4%UP9ő. -辫4ORM-c&5kK P‘㏗OMÈ\QŮ\47tE[qULާMR#G=Lzĺ. `eBMq طHv>rnޒ&j`#Da7-N΀N7σ}mkDt*x2:} řXըXAe D=S2k?C|:o'- Inn3w:tx" 25ﳘ<$Co WeBu2#wMf_HezPDq8ra ZPdf |~nU_E A}}[\.f2F0"O"~Ǫ _SC#r( %ӄHJ_cY{cy e5cvK ,*]o7߿VAK+uV-KMFMZy 0X`y'Tnr_U{{>}zߪb+g)jG{juk#jb7ं-->,1~{VB+]"IVꙎͶ^_9+ҕbz\;?2dQ;s1an[V0ƹ=/*94s7z4:z=kT9$(RRO-JkOi=b-xlܶ]|xWlbV#>P)N_1FH CF7lF*^h jfQGLdĪ8t'Hep5NwIZy"e?yAId!3# u ۔6ձi5oX?T:?<Ԋ0OikVZ[ւ(e9ˡWjfa;)}plFik8ojD,ghjp`MLE޷'O*c9-I2c]c$߃0ZVkGdrmW*IQȠ"F7ۖ/ r%&:{}.JjzqU7-ҍ ]o;χ2+2;BV1 qyfm烸11x犡AMUo Fiٞd!8Vؐ<HߘPN#?gŏ+ɥ,}&$"V\/,;kLʮǢ~5ZEi RDP{kW~>e1YU7\:M93>^x} 0MY+;_qo'q-\/Fch#df.FNmL@Юc*%O }ߟ7#kSu[K}rM Z]C¯WH7 ;6F.häS$Ffp|e\ O1cʳ{j ugOIeG|'L3:Y~5V40D1&p)ݕĕ}#=g jaSS2"V qwE)w"s TJOFZkJ[}Kv o߻_+k5!jI ${lpETFHKwĄlxZW$Jf^>]F`oݹ2B U%\{u5X )\R"̮Oy$㠫:)g=2J ռW E`,f絫_vz_pL(tH+QLx/FDfzE^zW^]cVsF$Tg.1MvjAJ ʞ l\DsSë:h+ )TZ \j-5Nz߾08s-~Gm^Wb&qlvƤ=keku䀾&_y- ZF/CuʦZXnkIĐm u{ߗKx9\Kw*7E_gtv7_GSa,%h$%Y͈K26/D "X\Jf2'0^Z1׷vZ-& a昉]wwHɵ\H{v48-Di1x)2tbw7۟+yE"32~U`Bދ".sSۆ-waMpz~[t5,M6&FAfqAE)3>u^O@Dk-wc(uźZx1P P#qn(#go .d2նo}>| ݭVݷY亘 3θhi3<R Hu]~]% ̢|-?\ZЛwU3/JqV[] ~&y=qf8$^Y" "̇8%>׭0qv\JtB jɷH3$l*Ug1*8ڣSc܊oטXr(p(ޟ~b|_#G@HJ fv8$A.xsNǎaIj8&c9\JݦiǚSkLTy֛~|'h'xs.N$kJ8U=ǏS捒x '=7Fr^Z3Q9LP yj KhI%!y;2;#lk4[]u{pץ߿t]4rl]+kHݙ ~< W7vEUٽ/ibLJ}wv{X+-e޹$_yizGYd8~4GME$aO 'Ex.0jԎ{s/b\׵"LAg ]V`8qd TDPrz&6#J?cqw? ZלU3Q:]N]M*嬘:>#f v`>LweGdF0W\Wp˙F{_b}(2Z@0l&vxwWֽgJ23֊׋$DYݓqhD==2v]w}nEYR]*qu Ou37BN(toznڌnӾsy Ź@! +^,`XPH¤)#LaXVkW{335t2>PDl~J3:oNP F*ggy3ADF8?!u ]%Nvked`k%|Z+>Ct0S[]B?ۈ L^yE^+GVjoH6Zيuu% *#*?diAрJF\-TZnXhbG"Lψv 9 `nѺDdkq (z:􁑽lS0-ZhI…~嫅J#nY3@xŬP'zj?HL)f3IR<$tбof"k\x\,~v~iL= ,r@2f2u-<9S«ѠxKr=N;u L\=Q>h:ҁS( ֪ZHm~G.y|q_. xt'"%_-|]̴>eԤ[ٰ3鑰U;"fV >,x5b"O/EvP=_&b<E/!l箫jdUppwkuc$sK0FfLݻ,ZXdt)摔@ڽ7ݱպ%Ɉ؀YIf5 &}Kڡr@\Wŕ)J:M2yQ2^"3pzP:DD*=<,BXrevwXV<#b-F8rt?ŃO&lŠU՛<:~A83a]xF|m(GqN$첃Pɞ|ƕx8JЈ%p]e^Rwwi5YƋ'ߝٯ*VU5BvNsW Vf8ZׅFm*a.x "w~v^]|`wU e8 ~O K7ڞe:`2B[kYnd1l ;YwU{ 7 R1*^A{l-hՕQ}|)0&+36(zvx|!|<Ъ.VA 0 M3YM,DF*mͩZ73xғS Ɗ`ڞwUnVk^W?KpB^KO_gE`t#$ZXkIݥnk-ۣҹcenb3DTz .rCˤyik-q"nV5tI lUIp4YӍw}KS\:3ABv}gr7N7R}jW #WR# `0ZgfÈ tgr҆HS>L5{:wM|]ռւ?s-Gg <9IJf[[6#=-U>3=4mڝ9 ԌPd F(Z~xFP>ʩ8"mh[3=Y>?8#7`j?|>|G=όZ^ȵ[[A#@FYuHOCI% .@`ֵuz)#3lslx] <ќhP`G;yDA`#J\kq]0a 9v6?svjہP".'[ uHgqnWGizDNCGgzn?R3|s@DžyD>2K1gKmcj"x>XKΠ]U{瓵X zA+o]7 A&o kfM}oPu,% 2)_Pϧط^_Lb]<+gW]̰toܺՅ?H]Ia>H9vsg4bV{LxfMã;8̍92vpvsS`s`P n{~6PUh6Rψ D \PBo/@{MÌý^px>KY`z=,}? {=t-s‘R|T[TsZmۊr!>vfO_eQSj"Pv}V$VL%ʙ7N?t;dQF$؊2HEf%Kjz*R>l `CH0}1V+s2#E+Lēi|q1ߍO8bD j?Ftr(n?Jg_:֕@3Jp4x)O !}FEѥmnCqcYiG{N&-˜lEoVI]i wDh^.k3>P TG(3N0$oF!`N._W C𬮣}lVEX FUwTX_M*; Dxq/V4 p(}<_/;pl͐-"qG ׏uƝeXDsC<YvhZdI7qKXj#S4JA]H_Rﮮʽ Zk]_s P ZAvDf9 E׮%\J@ ` 0q6x 1zڠϩyx t.D]I~ZKU eD+H{Ci]e{e$U.JۦRSu ImM]ެ(,Yq߸o{"_.gyW]ջx}ٕ\w]Q"nkfԅ ^7N£՛]eZ\agrzacΡo.C)R2n+t&2.D6 RoEcOf|:wl=u(N0]F1y\˕ȌpK$foDdž3 D+jԥeIHrBLfZb4 B2|镞V;&Y+ J~{#./`J{!c5'C`kF2 86!Qk[ҵqP[U_Df($QvMج[LG!ݺkoef*qa }(ϱ zlHBPaw\ hw=U`@0фR㕩&3[W[Np%ԇ'zD>i VMD L|w6 4] E$R`}k!Hʌ 42WE$vwLj0"C6٭*?l}u} q-O&}v2&."#6A4Zt&%43ڢވ01;X*c'3!L6 H+bU]F~ֵ̼ZkGw l^d,'ov;loKZU>9\P wE4N!mWSC\'c;3uEFؒ w#dL;"[LLpe!~Bz豘V*[)ֶM1tvglReYS[uM9NQ3o3 sYDC 9lN ÒznMvVtj\u_^?T`݇Gџ>7|;וBp \%b =1iڵ%h<ύχFwg^/.]Uzzֽ vrw{wFH)~Z– bVaq{ibժC%VY"&J(S}A[AN2Rt%i֩E.bI$0hp7RP=rp_titrLp%*uF~D`+t>"ʃNtxf]<)ܥk V qH}$6qf\8ڌzNL'3OH;q: ry7][PWUW?_RI%- a )FHdwoĖv"[+Zktw7~wsGXӪԓ 8\I*)9ݖxBդ2fHvj(d"a:B4o Mj[ŘA㰖$ZT(=cnGw>c;Dϳ]fOx"g<gU٪ar9%A0S'UeC,t96 Mnt.3*38؃74vp97o}Cjޓ#Nx"D"Q5źֆni:O`~Nr>|_ :1Jp̼Ċ I_&@FvnWkgRaXQuݟ+q]Z$ Vduuf3Uc *$أ"c?fOX,7[[Vq`7p a2o:CG}}+}Q;vׯ">UمꨪjekB6οGg B/Ef.Eܦkdacq150_;w#BVV uqz83HSc20@6aLrOU |;)hU{VF7nlv};Ǹ`N=^t' ipv=;{Jskd!A#*|3Ǡ-NYC|Nm$H~뫻xz],cl!Z TjFK>oy{:z ܛ= Is|dWjVIypɣ_Q#t6ޟ]ޟg7k~}h'ǧױغ+㣛&  Okw'&EuwY_dZCݹqςM$o>2R[WrdŒ_E#<CL#T _/F)odZ#H5j-pZRSg|gЕ}_Z$;*AkG]V׎81B@2o#^$m ][s}" `]1{^c9뇒hub4ӄ%M޵?MwYP%UW&@0, Tt+Ô \W+^XA'~'bpf>PO<*sa'6H@%ݻGdq!>Ly::$JvRoE)Lr9ɑ j>'tL)h">vT]{T2ȓ]!S#^׺&}~s"",_a+$O9Nr/1ǹiUy 9tBE^Gͺjm| <%o^RJj]!''UZׅy7vkW:OWTWV&׺P&"Nc*kCt[N6I)4pԺ!jbq͛ 1.o i'\?>d##s[GR'e"3mKL5.`^g+o'msGU~{Ǿ#|u% JJN8N5,>V9哳500A?+< Txw?ջ}}{wޟwo@"V ;W%}w>1sϽ U#m %$0~R+Q^1~.-]ci ZsiC l[Q,J=MXX䭽Vةtbq!gDϖ%\QDz.|l7N>JX@kC1%I-,TF=~e%qcuE{^=aΈ] :q^V 'S~̪0bTVyLi16J_gEyT{9@keFOvـC2p̈?-!む-D"_^WE"z@=Ta(ul Tsؠ- (eKza-vI9l2:m40%]:Z9 Rzȯ\6=B̵և D.5"&e:߳lYeRuǝ#ŇLwFT3j>d2>K1KC3w"HaŊknVڻ>wUT R7cEƺ=Y!MPݴ}3•kDW'Ut(s /8&viyP !JڼQ2yꙪj43dTׁ\ 0z!}''C<1'95 F}?1CP~rwSB"'$]0j|= wa>k{{?b}2$jYeCrY@33뤨U?Ќè~aj+Y}CrҮt}_Ҫmݻ7N&?.4el8[cnblT恌MPHq{{WK}ޟߟ7/}imnmހULtOARuvYqi{FS]T~O3:~wإ$w:f![{z;N@Uaz&?ш[$ОTL$KEWB3vTt)N>)Fg~hxL>bݰaW\o"Dpw>+jvyp,Zi9d\ACq-ϙyH&Gg̟kp?UA`3 詘=W|W*eJ9[ЇF2"a`k@Eih޼?tƤNac00ttwՑ肍WK>=&L?0]ޟ۱>"~+>vt$]j[(˄ w@W%E"Vz$ٮҜ~-G3&]yP`53PW45 D3 xM t A+fAݨ־i>`6pMڭ;`l<{W!5 p'\֥׋*ois}ޝHF.p L8>+W]Rx䜿aFB'rx cc⍢骗} "P >4~oO[$9Bm/C%Lt+Xu5e6#gkݒ$Kr%1U=zxE(QwV8;] P~v<K*##܏PC3cd_e1P)~5h1Ff*ғ8Y}oS6x&,[w%U}gYp#Z~T 6B"!E[且x]cu{|_;k׎ܯs]p{mCex"W&"5v_u+Us}N'(2lkVJ}ŵ_a7pwPUljy})Uv,2l*6ᡚRi,.VT4fBgy&8?D:#5Bpf̔l h CdVYߙXER{5}Ca&x#zr =pjΡ\mW3LYA7Qa3A"A8"#I.1U|r5PAmf[z 'Ч#U $<N0Gfkmǜ׵>IҜL/ZlZk&mpbordTq!MK{1w,sr "ςW5ƃ^Ws2!].2E'ڮvf῟JoZ*7|5\@&Zͫi- ۺէ{oxxY\)Їڤ3VS+W0A]]VU( 4s[Le*j{IһצM? ?>;"|oyM2WI᷉B3eK!u0hMc zyx=:-U΀l ][+מz#Ú]NNi J_HaF޷]UU'XL*z}=Je$-rц7mQZ{ccK"\0>'l#Vԝ0ڱ+b9{\Dwp]:"$! o`Gܐ5Rz^;`R]b!ޓ\/iF/+U/6 "?:8: uڇu">s4Am?mo,ų=?ZS;WxCs,k_oM4G3&9Sَr3ݘpSB ;격z4&x T!xf4?xᔻ V:']Ecum:O{L^6aI{WD;rAtY'&9VIɌ ܌ MXpcr KyUj;QMPdoRLlw˝h+2 CW[إff_Œ(p,wR 0˴ wf3k7KS^"rU2V>Vj;|,]ĠMhQd*SwuVzzK`t>J08|<OUA_`IruTϛI5AЦL7(-ifFVFQ?G(e^r"2hvF ՄK7ͽPF"J+Q ֜>q>qLle֬\/PF7Sv4Jj%4*T9l<{3yr{`GTDECPu5:=Afb-Xײk!o͇ aBBeT [ɲ^QCڙֲx R̛n\JfM${G~_׵xDiWv+zE(+|m0mJ~$+@AF dO"h$7'73D`eQ ] vAx԰y~ڭ"F q>-t.&DD2qL#<:FTiQռ$$/&3g!*/ArigVvY /2v,P[c̜&奙} Zf_{_7z]`MD|'AUk̵̦D7sυF#k]WT쏙~ۇAV6t-=hӨ1|]!'MlcB fw26~Am]-HILۘ;.++2R;WQƘ_{SCYkU?,#/r#0*R+r:&SHzYXE(XǑ<y{hC|*烏A\KE)ٜ 93qv2 ?R]ӗ ))yk9~pT*ntQ3mJ90F' VJF>BrלS<ϣ6%-=¸M8nRtanI̲7M/qf [{L%bx|5aZ!C|cNVIGH кF "5CaYP2判R }؜Gic[mrAKJ(vn2n!5$iL|]SBٴOCF:Uh ,5NRD++ʩϥ mNɶ H"{blKˌﺶht۰1ʹgH+woF4%.h7gN?f"wrZKWWs6lO,##`P̻JƬ7Y73̜c1f3aW}fJ6SZ9ڴv͢)Uy%`wmC-kY&#wH&Jx MjcE,GT Ăٷ1d0sb&?5Q^g_E*P{WoZ\}@m~[6'R]/EnAqx76S}kguH#*djX+k]׾}U$?EӁt}tdk;+s&G5Cܛ@S~p)\ kȸ 1p UyF(R2߈[ !ŲURѢMLJxG֠ZEkj.}yLR*,pdhVhi2Lx f32&GSy%qԚ 1Ttv0\zY*Unc+MU kP ѵ#ٛ##nVվ;OU"֬qY*_k)O!QR,BY@6\-:2Lq [@]ZYH wI %ɧqHob@{g pqbS"Ӯv^IzT![];뷏9ƨ +sE{wfߴ#ilƠ0sGNㅘvbEi" qJ7,"a'0v6mRktؐ>3ֆqSǞKaTj|6>!t42o_޶? gCwq#;,%yJ*کd9RdOZkSG|[0(2!7v=<8ɴޚUNoLɬ>A54>P0a}eJyc: "T ZD N` Oh'Ցg6m]Ө!zO`i V"ayrۀeVjNHv9x|` 9Ky,~|-J'ҭʭ:c]Lrr8f=+4ZvJMQ(Կxi4 Z.g ZPhc ac ({]} 9 rWY:8KjwxڬwҮEس؇Imܞd5xç+e4XҌíb}p8fG>}9@YC1h-#ץu]3w-zQ=Y:aJQ욊|Bn10SVǣhfIjV*@c֤RZqlQꂶ?#ЙDiȬ^5 .1 1\M1U k1/^o^b7/GrYKZ.M5kufh샔#߀9:.yV&;b׺~}k-0^0o( 26FN\껔Ԏ 3Wh'"2<\C  okșO&9,EK%@MawY3OT^6g}ڣ kzI$BJ#H!Y?BP>l1݇㈲S,٥7KN"J)i$ˤdVlI{Ynq/kQ3omŖrǒ?"H.V䡪e|bܰg\U-#.VmnQԤ ͪR:# >{ B! @RpTmUcB.Q!AVj8r={ E72&-iwA;6F3 \F<Ǭ&XIBL)sv,R{_;16/aap^Oك6Rrjǿ`TDk۠a{j:F1Y%aƤz>41וdnx>?9jr*JHm=zt VOsZN ~FD+3;ڈO;|Csv2ҩ\"#29ROXutل40[Jb )y?W%(&deQmH`|< Y&ϾcJF>\:H=O }jyDJߪqr;Fv - nޭŇkzbQd5Lhvu:5  |eufW_!+k]{~Z+;6APs-mXkE wڑ|{yAYԻLI;sK;k^'X.ױͯ' DT5Y BXsYCKDhI1qS]9la(Al;K;glJ-SOhݔ9 3z;=Eж{<Ĵ-JtҎ",aː"Yڑӌ8G K 91^Pi^[f\q}\?.ȣ :j4¸oU!Sӆ #v#-3n4ۭ8KlRx m &moOb/3TU|jpHp mް#G̖tOɁ90r3BsISEz^4>|1H_0w{ acB1$ǦBc :e1Oǁj U舤 7CF~gX j8;Mj%P7w=+{n[UrJ<~TvɹoG: dd3[#%OEV`}&#(ofKZe))\zywfqrv&sU42bw[E `"pa0upD,ϧ; )= 9FdnagIT 7|ԞAD@;ZC`++<Zs_x>Pcdr8:D~*J8z=̲eQv@Fc>4Q92iIrb3QDd 0J8{8뫢XOOkq]/s}x?v; uo`ERJoYB[DfE6?5pwSj87y1/.^~r5%aBE!sטkX 'y1{,*6;^(٫pJr{u^!}l i7wQ;)LD~U(?}әzL{#|p]%bUpCoc̆@Tdc?G&(62e cB&Das{(v-mTtXZ'Zp~m5N[>bD0uW럭-ވEhs-?~@)w[ 0"+|wbc=\ \T wWDOYƎuW0om"zD,t:퉺h;w%thїl8<2º6sLǏW[oJأْ1XtD0ܚfbsnEI ;kJ\>(cfu2;bGYfQڐ1{+Iwt[` 8 &81vD^5[1َ07iks?S.$ǮAdc1 A#"~[m6浵 K9ݞư2MKZ^*Y^Tdku~΂84|?tpTF;K&a*y>6]hS.5ܸSpѯ@bJ`LFH0cLŝ5nd0W Vt͚ѓ0wtN,+ zʇ,9uT}-jCF^SI{oңd1>,B|>rTs.).G 7*]χʯ|<2\4K Y+)ԕ9)AG@2-o(t0IleJ;Q< y@I7 gsz$bo pz{6S'zrB eSCuu|ᣪ-sgu]{/'`c yXб}c5j4Ѕ:{,h@Ю5zy/VOuIضh^Vy(D򻠧{$/Z-Q}YY [Vh>Qu麘aa5cԭ̬b*$s*x(.Hd k5|,JP~TxZ!5}ٺUDDT0qC>/=*j+iM֠LJ2h)d_Htoė`nM]o<`Z;k 2vZu]KMU ҅;D9ȯIwVC:t~G8Y_;? TSwвuePW @llA,{rC=J/1kLu*n}շ]* ">Jܢ)-"VYfQ3ũfL2ZЊ {[x].ܡL$sKax=M)fЇt[@m| әɺ{M-WfxÞ }`r<떹.29`Dl)UB_9 -o~GuZۥUןftI  "s -5nl%CE.dgmKTdO%26oaGj+9Ƭ8'oȥa)KJ7s/3ߏZo߯Cp_`f>f[_cMIdJt1FNP6_O2~_yUjo3 ~DcER+{xrχ*y|F3Q8n[GGg 7?8guk Bي}ZI:vV??g@.r/cJ+T;*KUJ1-Zbj?{+ Z,mxz(P%rm4q#M=t":Nh0beBABm4\ԆC2(oN?'og *bG\Y:iN?0yHnLm@>cr ]0ga&ϧ~{Z6Ā\1e¦ Sl!MDC227Y5Pyl%C !.Y M?*{% J(^BK?[mZȘI ތdРB,w]{^3zf ?q);JʖnLVpUA_tKk+2(غ8&̭|f#GIT鞥4ap].Fݕݠ6t= ݌^cuԗT 7D3R ﰋsI2"Sʵ.˴aO~ZiGSGˎSw {VgݍbU!lsV#E;m5*CҼ3ԍ|U< gًIw^ltZop$c }Y]8M^}Z{>޻yUU?/ɽ׍8p"$K׎j^Z{Z~B2D(Fٱb t=S- &mT2*d|)[DJdEW("a2@B1:$Bn9K-)TD ț0 6>Pz2"imՒ'Sj (pocȦQknTQ9+*8.Vdr)iehpJ EӾvnAM{hD棙iɡ0{I69%qt0f-6)\5Z "^j MmuϛW*@ZxWH?C*MZ>k(* 9DDw[vwaP>%!)&dkK3@*i; ,0F@E>iSq0=M3a߯f^c)E[iܑ׎E;;QATzffru L%W䕻{aIԁ N S}`11fZ(d^8bf!Du{ {lΡ.(O-Sx̭ezΠZ8J@mڳ RqtuoJqtΪS%^ ~<,C/?Йu s f0Ocl*_3Ȉb> ZtS֣Ȫ*@9OOs~T|Eт;Y||>8e)b(K2^eaeA溬F 2Jatƃ|sϹ|l7qQoƌL 3NaZuDԥ/bXy۰xن!KL+nt)f ~KД2\_=@= 9ٛ먬ιeoו{1=Dn_ݟȅ@A:tJ)T3pqKMlc$3,Ӕ-oMNVU-f{0mo{cf^Z cU뎋^"ovܒ[Xka-;ٔnrY(Ǯ7]A<,yӻWkVwAiVPn,j}N5IR3'&ĉcbnt;ק)Nv})#"1ƿ7cc6DqHS4[!̹ns!Yx@$ m~+rGX+뵮9J(?}tPr=e Zt$$fpL]Ø!ZkzsنRt0@~U FJ%s/Jf<2 P|w%`(T۾iR+U)ޔɄݺɒjo髛;PSE(elN_ʱDcU8-ؒ7+Hu{'RĊ4V%CӇYihO:~R\ql5;*<=OfPY" B{B0ecEQ+dq Yq'ZPw?+cU)Xk]:2c |0P"Fav \ܝ ݊7<8"Q""#)S |%J#rM9}Ex}]l r7xȐ2ڂQ8p﵇)pAf1!ؤӆSKX +w+Aq`N=BU;+sPvQ#C; +ERlVT?QgAbGN U")J'5T5wCe UhH%orZ ߋ99߀Oc= @Hz.{|-/Ѹ:ʟ Tc1,6Yʊtw!SfF4?ٜ?:;ɻ:}|߯qXB/N돢R.#LOC;b ;ՒKYٽ1dR >Kϯ|>skC]OКA.x!/ǏFYfħ!]WmRiE&c௝X7]STH&9ᰃa2?6Mv-K֎teZvZ;"Ӏy>.@,rE"^=$D0џV43(ڿܲTkڛxu͵4d3,噷'ѬY\dC:>.0oZm.!w0sD'ԺIhYV:=̈ۤVDX|+SO\,U߬Q E"11*(2E:,d,̴Hz;~ u8aۇu2zǩI%$U ΡZa&4fȬFK`@ k#6֢{1>{4V< XYX;Z} c:/;[!u_bg+֊Z{=~UW{y zgTfH\+Wd&B)amY)Mz ;0$2ɲȬ3c8lu:>ג+vijBǘtJ{OEo('Y#N,Q8޲.6 X?ufd:]?NMh = 'mTۦpuii$Nl ^)w $|- lB&(Mb݇-Kl:41S0 +bdMk~c `DzG!ҕvun6IRmCҳ?A)zܐgΘ Әg'@_Vs06Zhd(';M0<[{۸?v,iE~׎Ir3WF0nn >,/ŃRaX\t)ao朳UڡkbO.ԵwLK:uTW*]"X 55ـJѝ|,x9ƸV`/3{1;lH! slf(+a@Zf&9ZHcr ~ۣxHLhL$wdD~Ԟ@.Bc`glkv9%\PȠx>. =$b:+ҕ&ڧ/ysD,z]$plhAj,bJn~}jLKtb8BNs>JWL+?zw""/Q;yy`gF*1bg~1T%rgWFC)f?}hOO]SH ] `]Z GW""R*7[mAEcilt5D`/c8|v RYϽ;-dPQg±W^ħ6=hOd$ϑWr:xY*jhԊX$Gv0clq6<vכ0lU+/`T;p'P3( 54 pt] qBL:׳=%ʮNJqw}rm4/?Vý]ГƵ.db+lFK2K֦?Ui{z|~c\{{k>w+d6#(&')yW):v9SڂICW4fdZg9M&3 QfKCFto7?FgTӮpL" d`(mi%9l1B7[xZ(z^M;Zy\>e" i2?}3W>~;̍ Gc..lԽCݳv~2ɔNB "J[ZGljj$ :k0ǯ\V#fiˮT 6y=Ǻ_ :nm|WeP}vh|+s`ayK/mᵱ^ʌR9SB !(̵{Hk~}H]%aʽw!|q aT:Ce kKёtӕf̧2XdQe}zҭH,חQS%3qjMdr,@C~*ˆhËe3o;s /#̴S b&:ރcZ ,`r- ˅0ـ (\ʅ-&J6v"ltGMϣBgy[ JV^2ֱ;'Ck&Z^cǵ䭀f/s]@ųI)ʚc ӁT/2eE&A~wR,@R D ަ!] ,>r:M*n̨ch7 qޕVIBb,5 ?T Lg~gjЖʛxzel2d]*Y7ӱåjuNʮF ͭ EWgd(*n܈*V]|Ӯ' Rx)sre6aH(w7e1soN|!"=v' 3c޿5߶~xEr%˰o.U!AI`$8Mc;Ұ71ͨUze<[-j$/HRZP1-f0O%3kG˶hDjY O-q"Ttm2ٓ9}unaAނ򲋙2X^JI9kӡa6h–XV5ڳ)5:(NeW+u,(7 %, 'f[#E?z! ~1r1J2Ȕ>|(9MoA*}mraϧ9-`eZw]WYo6)%% Z{in)=xYe5]K4B zD&̎C:OID袶gYN0U kZS ewlڐxk !#ĈbmF~/9ͿWȝ8zUfV`ʯ&$';.ڑ&C&SY1=mu}v^D | ipY9AwtW;(aC'RYQ;UlSiW>' 'E;w4%HTtiAJ{Ne{F;e[i+K5b6pɌ@f ܑOqP0+-=qȞcDjOLTDV0(Mp/ kݨ0eX:Y*r (IDATlG똬ik=ve ކX'ҩĂ2JV2qV:kq4KZUʖâYޔg ԏ_$֪üFjZC:_/|c/is6f%Kh&C&@/y+nA8>RO  (ыr-i<7bwWv;G{e' #k|O0s̈! k}ag3w5=nj^SʭwnP5%%c`d -lYf6)bA6!'py~ؾpTS"z3]B;r0{t_1mF5xPJ9D)8?S`WU6@$#Z+{-^MNE\~H.Cǁ`RQO0LcI{.yоl}7xG#nդ%(k[Eh_dQ(W+$R sCfnp`]}fh51iIgT!u>H;t+\`u{2咾lvz|>1ǘ厝'?3 -(DGbyicd(R!GrM󇏭 d>3,ZPafis0) gM.oAOnyZѼOFM뒈JlJ@rmw'@_ ȴjhL4T0PpW H 'eV*9F2\Oŀ5#c OQ#@s1lfG)TLtsrt\sVMٹXU׈ φv*SFȻw%->%E[/< IA#N>x΃.De{ƾk9Bm5ML;-DlŵJATq2Ŷ9cCw3u-Fǎ}>Jk@-JjWl'RF:(XC@|lخT<|VJQ<0i-8gBIO5Ygw{1 isB+mg,";PܢfOqm yf_%ޣψ=n@B>=@yF$J[T-nj_dnڀ7@DWh :?15Œv=;[mx;f c4g/ֱREfsѻq9Dq,Ch+E|tX]Fl ?; u ̤LʚU!(hF9iDo{-f⵮׺?0kGne aΔ%PǸ_DeQpt ahj?Ze{Wf:Q7~' t"u.Wn5tO4U/'|\,^1(1ǰM6 Z~w7js)U zmMPj@Bv` Uۇ #lq0kM\we f 'R ^Rb,-Z殬S6qmW95f2֫xF!RC#s B>3=,VTQv4?B+R]hjR],C l*+vw>JDsz[Ìx\tI ʱ*:$mGmDb7cd1]K"(גi/3ܤ""Gxb:"2v^k)Jε6t{^Y4A&igF (5N';ށ.ëBhn ⦷-} 퉺X)LTJ ,@i9犈KӊH?RBM*=v/%cTս2˷qvLi=}I\6-jM5 U.Bx5Wú`.O?Sw.5t'bVr56]xfBUY> }ˬk JpTH|&`F{\IG R|/L5" JHsw{уm}w N7b' <$:1Ltw7"YO`Ռ5{jFAzDxLI9̆@{k|Wܷ ?'c(.m\ۙ~QYP*d:ټ8ןHS3O(Dxu->O:hvߔ{]a#ݬd&ov=(]C9-1'N1xTЎ\n@ .#s-cXk@S4`lp6?*@~Ps :9h4?X!U]_4->Ob9)q* cXk>07w02F W}MMKm|ǀI%0>SeFmQ-{so"%cTfQvܧWS͆Nc'> dGіP3<9VG¥sWau~j ]D"V?(iuẰ.F};K9-7/}9Dޱh7aK7 weF&Y\l=7̲ 3 ʮ۰}*qT=ukS,3)GQFHEx b i|d6m )n+GX|j1cV;rOr[{ܳv]U3[YBᎎ*m||D>ݾ̾ƘV #Y"IvB>^=gŝtpi1f͎>ءǟ u5Z.".o !j>%@F]5|l('C O(9W BO8Ml.z_,vv,(Q޲u].{_kW0Z6AUv8Sp+LE$Rhl;8KU.v Q]I43(s DžGMd[,hј8-qk|JY0*Qc Ys2K Ø,WyZ۠vb=çUĸqH]h ƹH j~s(U\c 3ɡa~|S>~Wdezghǯh$pR#zHuLݵ*=4WբT]gā ˷g˭OAh ,2hJJ0`ӌ.S6_w_զL&%tEXtdate:create2017-01-31T12:59:16+02:00@X%tEXtdate:modify2017-01-31T12:59:16+02:001IENDB`pyresample-1.8.1/docs/source/_static/images/nearest_overview.png000066400000000000000000030343771324347254000251470ustar00rootroot00000000000000PNG  IHDR^LIgAMA a cHRMz&u0`:pQ<bKGD pHYs`_htIME 1y]%IDATxK:}s q,UI1d݆{nr}S<4Ր-[Ґ%UekWD A9dfΑϊAsҿ"0mǚ01O4c4 m`ߋ ϔ+H/D~RQ(JDsA2Wx<\D2n*84d vp`svnde4"=m@{mX+ =Pjv@^j@؋ǿg`[_Nm(pjxeR*V +8?6kw5PX9e4VJ)@wdz|)|s9rB }`" @d±&1L'g >x AR @D|l1'S9*ԊIFǮ LjxwV  ;x ͘ZJw\`+^# RO]ox ~I KV2_agsȠiP(*†Q7o(sLDLs?p-;dzpzWhM)@ i m V&›q0ݲXܡNy 2?Rse iBxܓ!+v>Gte,OJ8vaeM;Nz @V{?Zߨ$V4,_ ƺ1sN_V!I~7' -O,JH | GiX8;=عa>gWq=o'Kw+VyɁ>jgmwn׸xzlfWc{>{#/\GpWȦhô?  ZX*{/yXnmfssE5*ag)Du/KߟnKO!s+y``q΅|o`q/UCOi2kMh~OHRNMl ͧW|6` YԠ?h>]+O(gR>} l;m ͹yW Cx/ȼ r @0Ё4=$HUzNScTŘ/stY^F0}ņӱz'P:^ID98& w4UL?ޟuJ+R,r:]w/&fgs+'zYL>bz&b)%;p7D}Cn "pf&xپ x7խ ^Z0:`zFewh=|2$(9jks%4zT6AxDrM5JlFN*)Eӧ;*bzUKޘSUgӳ1Ŏ E铦 'I1pᄇt21 MeS-h@(18k.yP-nɻ?p J1bhDg4 )_^VhsN y^щuc/隍(?ޗ,ܠ(}3V)xpu{ 5MFzb_S20Qgǝ'@Ν/(dWҋb1vn~eIvonwU锁_p|鼜}}zoc>P\l)Z<bR @ ˋbViR,us4¨g؅s)2dΗȜL\,R,|;Y]c" Gj: M8AI >Xc|y"{N3*} PwFA]:C_:ǻfi@ye0tOg/- O2D6ڞ?g$-Ni@gZP\~M'1`'av&#D<EPNK4m.16+?<[q ?yK0 䂙qjW5ael k2jLcϗJf闘m[K}kO~eȰ,I媘ޮ 4LT~u8h ?0#mNuM^Y>͏g$>c]x9=?iؕ]E㣼3 9gY,†|OWhysHyąG\1vݚ&X*BN$*vS$a۸k$sY}a8zhVYO_&zxAiϺϚݫQoSW/KtED zAt6Z|P]w;=+@4*s\wM[dbIg7Du_AA=ۛ磥?!;{]rLE+VmkV4fwv?M0׋=4f: ͏hQ+`'A0^ˁMG*yNPM} 9\a҅?_nM.G)*\Ina/Wqv*S*E*OP2!-t|t^l)KA.[歞ypu=jƘ(ӘnRQq*mZkOĵ'^~wiU^2}J̼]It X?9' ̤a~8ʗ4bz LHT0}tX`a6۩R[[ ̉1 sy17 Xj-^lG^'мsOfgp~Q06<'ob*Y@v `czH.w/ QiQLJo4]&غi^؃u>8*Lo]N/fd)/ٍrje/k\WoJ%|6\bM5_S>2LuY2%+0}$ K_<=h~B鹀Ҳ=s„ϮmXɈR>\w34E9cl/&%O `kaIE_]E &󈐛δ`s$85qn%Ԗ7Uz>XUA8 ߸͚;l@#5ЊzŕUDUoSXAvu]ژY'U.j[NQnW: 6/%gAD ׬dt8/نy/D O'JjL}j=A'qT7ao 8]=t]uHBuC,ߋc`7:n~ '} %%FX_HZn(3+xWF31p("ݔ>snEHt˺S:O3`z^ tlgh[S &dsAӴ/͏%yȴ_Vʏ!pVz5U6\Laߘ'c>h}O'dJdxGYBſ*f|ZeNiohk4?ecUT;'GGg(}V 2!,D~pg4WgU7O.+a, (N^M{ rGHA5i Ƙ+?<{Xކ$29|Z֫Pl>3P_D}׮m,^*'61?Bl2)o.B>h~͊=2,P|g"4myn L'%bo" o뛪6/y"\.R +.qK̅~af5u\҆ݾrӥ3և?lPV˨ms*z't"*h>%ȅ|b+척JϏϣF@=Ymn(0gm ?H fZM)c K66p$h퓵O?}G%66/4n{V^ϴzN+s>Ջrr%uňIAZFK_"i /_EgDz@!K@!ǖn>YZz!Cg.Wt*o\J(ꦲcx~8W/I6Ñ5K;DU޻i?&yJo6›zܛ\x.] o Dj/$+$8}B%+6B8k/z׫[cs<]`fBJW`/& >y?̱9SnKbn#omyRӏ@Ox8bNScsl;%?ԩr)7_& B׶e|EǻR z /&KOUc&S*H/糟H*`"lZ I7˛웰b^bS ?*#ߏz !Q+zrAxZ7Jimb[oC̻޻tXA-܊y#'6ҦP yO /%+eV-33#/i/T#:J!=uc ny^;>BWk1V6N╯V)uTXQs%i7"S-æM>RJ›/sIUׄ7P\fHg1 wWɑD"/p|H1}e%Ő⟔D09` /K{b~ ˵kv10>`:hڽ2+˳B-1=ݔXIiG\JgLuRL^g8J}o](ej^|"[bJӰ-%N[bzk: $+̘fg)īDnnt5VKV7$97/SRLo0^l/DrA,ǕzZsJΪR44`i)?WCw*[=T[`n\y`l߱֘|HÛ/wLz3o@_I~1,QO p~^![]Fd/w*)Rn[ ^ј%("^;gagY{vp:ءo[@B0gaȅ:4_C"p|G njRFݿ~UF]G^yDnNJWo OdN"G@\Hz6PHi3$=J7-iX3^|f4Eǵ,"ll+?Y._ƛZKYLTT1=-]z驼\mQ릋ht45);1yvtRL5b"aKCZb+ר)7SeH۴駦`P$1lz5mǨIgVc&)/eܺ /va?%ܬupc:*/uֻɿsl/ `8<ɕ6n;p*ǜ]Z uy_dٗϟ~_wmk^Hk1&ަ"Jq!(X@.-ˇ<8πៜd`4Ι*(Ƽ8;w;]ތ:gw.0bY!uJuJuM{i[)PZ9͖:@x<p/-[Q|dq#>!2Ky*L`J\ѯ} `J/E[ /_^̹=gkaqHkzX$oH`JlLV$?0*һjr .I1x\-RQ)k"YUvV i儳Aӿ0oZ 7]`8$+srULɩ*o9ULX/#+3|OɎq]>ݜX Qk'L_1RL_J1qYiGL/ `bD_(S?nޙQ9D"҉7X{Eߏshބ컚Omz>&yϧ|ql.%=ݮSz`u#.`Z+ċC |$PK~7p Vm|OH{z-/+ Ց]r$/Y/Y/Gf*`e>Ů_چn#̅$Rǧ?~~{?IJEF̳qMႼzRu#ߑ3ܹ\x*5X*VY$=3qK/#dt永p>2qMҋT)0MPnlZӅFV FOqp{{gMgc㒠7+ZAi\ Q@>[E™"Wh鉸?~SL[*Q\8"`KLrv{&122*;?>x?|?bښ̻aQ _l0)}j i0Pb 1}Y+;y<=fk%=/0 {&`8C'yZ&y|O*D|ћ,h y' <=_D" 2]wÊ& w3ۘ{W:s㚃b4pRaw}o\:\@I! LK/$ŝ waSBՋ(Hz1S R+`T%.X_hfFiٸ0X]xsNq2 TI4os2IOQrZU]wK`? 5Marw"{+xAEW6yZߞN/Зw (4JCPBW" |ضrI-V/s%>#,2"MM#MR^]Mo%'ȬBLd*ͫX!)L3Ls+>xYY_թ!HEf%'5>ӧ$M)W? .1){} L>(0}1~食h\`ŗ`O[1}DS͘>$bzo灺9.-|wk0З œYXl:kMzqk┛ >x K{t .=i &_eP ?bz>ƹOL$Uw`t] 5wvlp21& e߉sK@z"i9(Mbrɐɻ޻~~~=? v]•?.U2IoDgzfzJɑ"(\bebObOvpq*\u3 p|o_o\u53؆C ՍR_&|].7S(O Yc%&鏺p8Olw|޴|ڒH2|`Q^P=~AT,0s~qe@.]BԤ^۬-1$'}!Ljt-L'0~]UE4_-)|?yo2Tg) E??  I߆59L0}ӻbX%O6оYh~lwQ Ïk R`1#p7U~Bt~ȝ1E\YJW;RL0=n6hY4 y7{D/K %!3dզUhs|BeTw7M&MqPHhڻ]PM zsG661J=W>>Rz V@Dcesˈfs=~+ீ/@ /-MۗOAry5g3MZd퓳e9>ނh 茿Gx^i۾i)*r|8y$-Q` 7MN+lt-Ize^o)7WIzf[Ӈf!J`&2N+3#?u:IjK2Lj~IzYQ`kEr2s]=r$ w+R*夘^jNRKɹy ?=Ln*]-QO/tӷi/zWl#-V}dJ0֕q5bśu)_zDؔq4qD~rn8BQ߅^%,ܗ1JI Y8)'C87ށhT_]au:bzbΊG|R?0'5`r*'n!ܵ;p69KL_kY=_ AD\#6FPQ 8g}ߌH}?>x \w&x2S_-Ë%~][3Rܐ,̥lnnxgޱ~-80B0_}D{gnD72>?6~q\|9.g`>z_ޛ"K]Q `R2 S 3+i\7$gl+B}E@Zfebp2cs6*^gx X Q!hF 5ĸ ĕ㦩*)s ,ᚱ$\Vz0XW,Dɴ%< c5$C B>Hƨ! 81dH?=رUv *DJ5ń\h]&KzՕNHYJg$ \6 tGWrtzzȞ^Vn{Cc6uajұ5")}ӕ#ہTH1cZRQW^дyݴ?kJlĚy||Ŭ =Ћ,k凘ك8+$"0A֤RLb41>F;x>ez?.QI$Q|h(rz6W7oWEjΪn[eueRU$iMh ;Xjk7y6b* M4*px_$=kg%IUGFmMxˀ->a:ϪFN_3W9;@WđnD9gc%Be5Y/~j<=ͷ 79W: R~Ҩb6Oy~z#>+G3<+1[]ocz*nuFTv.5βuGl.gw|R|,@*Y驔 z>/3YQ;d-\ xz 5wX,~(V*Rhr ߵ EMBx[BVNgӺ߬qS"_ 劼T3GQP90}#<'"\ =c1X ކq#lc2d3sYTj r34NA7nxi\%yI{bAK8Z`Ǥ،u,A3Wݔk"rx&-_nuDȊ$pׂJpRf)c:FZ#!Ϣ^RKHTd_IO&+4;Rx^a=oQ=pVeڪ<2Tgja&H}Z!^Ĵ7wB ^VF4"/yvwݚӖ,sX$ٍ3~Dsjr@(Dmb:^ЌsX f܊\{ɯ G'Zq*yÜ+.S׬!5ᾆZ{qgCS9'hZRP?l&np)FWJJ^T7vƷ@}B:ߗQ~OgZ52 U\ԴBƀs;. +bE.N9g)IgfM!q|=oWX*~Lpk8~)`6 D4 H1}*!l*0ٕh#ϸ ovjb* 5Iv7ɪ oetW0&+CUaL[W_~RX_-+!ڟKz1@.I*ah/@Vy L&N' Amoc_rfE9+ef*DQor^z?KχCi7JJϏת=Y?XCX877|w}݋6XH5 |XX?yrz#69rW㟁W_:F!*qd;裴sddJX1H'/wc 9޽{objYc>zeZxX+֞q~5RI R725 jFku˝ğPq)I/Bkc I=+RZv lD|з\9NXI܆`q 1w-M} 0hkb5ދJ7h>^ fjޕ*$=8;>971y7_񕌺%ovT߱>ym꘾?fCاF u /fӛ#}2ˈCvkH r6ze28{ˉ2 yJo@ wmz>R6͜OQ |<.h c_í=(8&z3r!B?NWﮯ]]ݽHo3քwK6{z: >z;wx~{Q:O]_g8+h*|>🁽,?eQt g"D xj5=R *}Z"HKh G y0a7]=%}ݴ ȮyfA@SHGy{WI#mB`ۻngLAҋHM`z 2 2{V|tVh++Yج`f;̦b7}_o :9+uQ"Oh>XaZ.f~p&L/SB1— [yM bz!yr+]yӕ{J=( @t7J.?{kג5)I{ki%i5Y&$WBO+_I 2<@ =p"zVO?=+~64ViHiߤ:H^@7~q8=8ĩZPt"solFZL3.x$RnDkň SuϏ$}t:}rZ&5 laI0~3#I_`Yly%v';t%R/[VVO.o ›{c젇^tSY%>1`/E8b>~[lg{Ur=mݾ׺6?=ULeޜ= 5彷kk t"w] O1=0  w#MyfV£h>X|3=z0Pܦ~N(Id(lp?+9"&C1oYG(!k ''K?I81<5BVWZ)k_y!R!sڪ }0<IS'7vzk>OgU%rճŬ^`vӺ6[ 4/JM=nA|Ѽ!5 6vcVw 6Ycv,W^$i&XP]DZޅU6W! LZV/geZ1 adQGS=) Nlct 8@lpDud=:&z]eNq)ޏ?yIa&\࡫[{+AW@n=v?se^?Pa& &Ћ4D}HE"~u? ;GWn{b-2ra -AOh}Ŷ|wGWNk9Ͻӑ2gxbflNAd}OŐeoӡc0TzH0B*X[5R-liTzw)8#",xinm2~7iTJ:R!Eq@qO[K̉μa0XǹkᵚNWqX; a}%cBc3>7Λ*W7/4?^}?|_94 V`? 2';EL|?H<#۽zbzݔП0HVl&~J1}ӭ,Os鋬Uu Ϛ"I>D%tգ۫a ͇k.w(24_6cAJϯ)gODca4N|@Ww;]îֹ|NvY7g=%=XADZ\ksm7{\񱘷ݐeTpoRiG''0zB79'D n_,yun`#{ʞ5mMӛLnX[0KUwg|jk&P BuSue5|1ȩX)^ Eli;n"_O}b+Pq+?zqq1y& Rguӆm!wgW)'\9/ 9Ih> Voӫd6U)I88R&j2ӇB۝YU]r5U4X|(Buԝ;-T[-VE~8k&𡼛 iT5͟;Er#R XV=>$"gw{rbyQ!Srn傞^7\z2놙.&Y_Df z~jAp/B[uzwucz"a/1&,aQ$@LMKMKXNz13N/$O,v{^po<~$lڷܴ3ݾ5WOlο8^b5<daP$()pmmWoFܪijF ͠5V766b 3OX twtP8_tx/,,sc)qGBbksNcrsOo-r%?M5L3%*q cYǧQ_@FLi Ɣ Xxcg`BEv|v>=j]a.aRfl^bX鍩,-t=:y>,Srb1}@w}?,Ew1Kz><LKv6=Wykk6[m}ɷ{j3=Vo|D#DU}R<8WzEHORR `B_iJm+˲KI@QDݣw_RHNÁ/=cL30?3]*(+䛶k]۝ 6[]ie#\@Pf(^\"v{ߍd$}GeI(fO;V8,s/IcKLMtӷE"*ZPULmK%[ ޘjmž'c>/z$N+N/Oy];MB_tMg|xa>cŊ T}Bϯ? 7 ]yz\ ܉^|^@`p)N?^ z~J( д]Î'1_:=qX o3.ݟa8Se-0+s돵P(ci9PQn<;_8zW*ڵViT "λpM,5c57|8mmmѾ(T7`OnZun-B܏U7iq&Lrw ^N)z?&Uέnn/y7L 5_HqfOH*?'A_E-SIV2>SWW)PKp %钤tRlW~aJt&$$L~\ۀmr?ߏenUbG4G0ScZ}VeDLt(5DXϺo:t@0Ru/o??)'a|@|mrA`޻͏:=5Jh!lBl3klp v^hGO6Vxfg}ħ/4/Fq:t؆)-pl ¸ܤvhw1)6 1ą[o _/kufbJ$Sp{wc9جɩ1I{>(~"|^U[-1?iuԕ2)}n"2M@{ZhVe1n1R SǞU8\FWG Z>{8D; {~{aCut ɿXU8;s _3$6GT6CΒWV(ڍyq99ˎNM-T@}IER LCxuM3QiEe.Z8G.yjxpBTU1}s/4d/T3Sj^v*n?5L)ߤy=͈>QJL A"OMD(? {8= fWIIJ-ٔ_b"WVg _4M1/yBÅg[8y 4W7W5z0-K6C,b0Ƹ 2eM%[IB*٢=? ovPx:G=zur\f|*4] ɪe.TܥIB~E&|Ex~KoMĊXgZ Wӧ1}y+تiH?&GLoA.nÉ/`Hq)h~ ?4LꮺIÆe*,TyBS ﵳFע3|||_|_烥>nh\?О-q nm+썩жަTx+lM@(ϛwÝ75qq o wb%)/%JS+e ';0Ҧ1KD*%~!BOjZVf rfT݈b"˯95s Y鮚X$,:p@{CocH%~V:y"+j(g} ]FTw"Mzy#FH(ҕ⏪MenD._v7"*~)xG{kv^b_N{BC LI*obz:U(`KL_"L]| LsOW>yo yw}6g8kW0Ps4^VHA*dBb! ZTTZ/\ svp)7b猤h/W7>|QU]s=qmcwYō6A<̎QMyaȫEB82֝pSfW{o_+j0Bꢰo'Φ%g^)@V}G?\@@\Cb/ScȂ9DԶGl`.Kw"9k~&GJ@`Y #bt&&Rp3}mѧ~5?g-xFSqߙx,pRYBOebOa^8;j;-p:_,(}Vz٘`</L{rh>#B2nȞhAΉ%IɅ@p QO*L!.!Y +j֭b4zhGe?^Ћސ4]QȀ$0˹%Ƽ_RӋ[} E4a0=Qg:x>aYu67E4D_WMf$YaIgqW|^|x. Aއ͎acþYz^\@t%w?Rz~LErcٕ.6pY)J콮3NC~۶BTxMs./п ~/x y @ ϪZ6WJ+VenþbMP(jP&jF1b ti'⾵??kO݉az4/0VֳQd[/ۣǡ? }C^k.g>C H_*{w" û? Cbm& O4VrMxy"#7Xn0_1O:Guyp̂\%qEk$wHTErN+mF4nb'B1nׯ9Dx&,8N\l$Q17/#rG)0㹹MGR8[Z>YJmc1U#O>B\x$=hR=̢]ՁVZ+b?lQ_(>iW%Lΐ2[-$ Pr 8/Y5qa?7o;Uf1<1fHElǺt|;nUJk+a\u $0?x&=_`} @܇FvQ6ݞ2СQ d9ҝܘ?@XZmm-6?x`pΊA1Ib 33u7P6˙7 %uC,1P' Yj~pi,HwK^FXF0clR#?wet26 Y{Ww..cŞ5cB˸I2#'K#B$}%$}?$$=)/ӇT8Bғ]}" L͑+LaL%~?.9M3bҥ;meG{OoIJAuonG @t)."Iߟ^WjMyI٥p8je<5DLd"*#Okw.rnOey#c/7uLvZ7%o3OrNk  h~ 8dpuchJgbEg#v77gA,KM\&hPB^3_s=p@:bW+ȗT}Cb>ܽM?.1s̞1;V_[&N,=OPV<=_& 2LE)[$(SFţBa‹vNA37VL|B_)/eGRcZNF2{5 ܅rO&mRi^X Z23+[v?;w~ 7g'eXYL.4<]ΘNJ^;fdށe*08U\r 4d.6#כG(IP THϒ!Ac^X` SN?YH\abL6d8YFL&' < ;oo$JݦS>2ͷ_Ѷ7WL1%DS84u(LH~ :>gE'$ ɃDL))ΈP>LjzqqmE'` (цM 30DXO65u5X/r@3Lr+fyA!dOݲFїΗuzf-yW.%Uz~Gu,YI^mC2Z5ǕCMi g۩/4 HP)$: B9R,UuHYkJVViQՙ)Ep'Ed΍{V^)4m4릻iE@L}rXmI4v_ǿC 2bu^5!p9<<OGW~Cu+WU7L~%$w289޻y|[3Dλ`koՔ"fZ% RyhY\6YRw.a)՘ &*zpa@ obIR?$nwgvMW9YfnmNKq-VxFYwOZtWvT-hw{˚GLJg4̨ h/˟: @K9+ӫSL[fUD29  lL]wcqF/X3sRL|Ùk _j5E)KL?߽PlEh^z-jcx5Y"iQt^/.Ĉuͧ"+Q} Qi+cZU4so=6 w,=?:brݨ?G L{]D&z鲩( U"x5Ri=_ne8ZN}.$7'Zf![6=brţcp>Jwx$y'=;D]t 3KrTͻ"݋ѻ>8wg;;j/'u}aV3??bYP0J95RF/*9>|u|{?NUM :2Jq\h^ΓObEy>Y)Y'AxѢMWd_%۽n SsF 轭O56UKAz"_ޤӧ/Ý)=CEz1-\bq76%h~||5Lٔxӛ6 *al =;XueOOfjR^T۾.ڶ `r(1{fn V'zs9/+6h+ sV ehuPdEebf,EtQIĔ:=Ngg;<mzV{sQ5<\t\bc/k_5+[eE`퇗^?@fqbu Ξ~gO[;- hPJY*3pRaz ʡy_ȫ_Ŗ4嘖f.0}fmb]lDLOI-=Ә }@)^`zKB wIa"@@^-h:Fc-24?C$>|ּ>^xt;@%1SCnW7_ĞULYF˿n{,aMy" ;e1=6Ӎ-%w2`# *>C)RMX!n{䚿)y9GvA@<>tfh1"41̴ ?h2h^=ܲSid3sGj%g 5Ƅ(ra#K{XJJ _;D{a,7?/7.4Tt#S*$ ls}5 ,78 !<+yCt- H&Y~1KӾxCN 7s:uP)ZZovfk~U9L!Z5ӆ1Gk4MrNh L뉮F< dCb;`c\inqn!_ݵ>^9HF}9|8>t9DmTq )揊;gJ NgtxoyS!M!\؝U[ʦhZ2ܱ>8>MR{aI遈}d t<ڎiԈ)H}6똞L#N1}R9BӳR&ZUs`8zO,%~˧owuLX`藘7<81@ Q1`[WPQ5_Vh(`LcA0q=ga=+vi$ 7+Zr,+/|ؘPJ z>Wߌh A*bOWeSz H+Պ|y5:=?=aӉIoS4$1C"qRmdSxFX%V\Fz~Uo3Zn'vGXjezKKDPeRdn7_"AtkœSRJ9e{`G#iS'VI1$\T7~iMtW]!Nʹf˺÷LJH<&zU; "\_Lٖ-cuSֻRIo7iU?w:4%4~PVY(/E& 1kUa_o}$7Ax<t ʙx";7LQm@D7oβU2)bS)P7>&6.X$k.X&#-2>?|x8mB.c_ .vOuɛl|5Ev(i:}EJ+4n+Ð07CŬT K⒡K4h/pvg@;6_uz~6R `bM/c=K#b e)=/RC6%Lr{LbJzt^h/5xnlyD76ENwe)}$l*Vn#>h"CdY?-B OP2.+T48/Q5{^+S`d=3TFaM{۴U &PͪSAp-px8({Sm$7D٥ ^zS ͉'_QH^(V+ԘQ+T7 %sMyk5)ɍd4$M4fV/+ K=R8JVTd_[Q`'Ϲ8t1&긆o?n\bZ`&^/ҙ$nxW0}d0(}R)WJheQk>hjڐ6e)I#wV初yUz~`TV.f~D2FwȧHskkdSV;Z@o3[kVDy1ck_dYp8ΉW_ TDBl!6]}t>u- O;7+ Z9KYE"jXmϫG$8EY+*It8W$=-< f{AҏXT-c=KLztqzj|?_E򃽴Df,ԖEJPG @2XDd־,х6Lq4Nk״ҥz|I }j!bG j(T]unnbbITݜ߸~D*Z5eR+ˮRX%֝WIzIW=_Iz t6E_' =#Ř',͸C!8%bbwn$4ٝq+ݼ>&FL%)'Txj0 5π{7tKL*BGe\&?5>,s8>04\fD+^:lV1}jsp*wDs/1}an6|VFB[0ּV  "N|2@IRz~H{$JA69/m6 ŒoC@xmFdw sj4FmtbAxxKQsf%aa'JlhEzYWi>F7旦i~}GBBJ 1"޿!!_YY~L*~\zi GȓR8(e% @wUhc1=AuzJI9:Io{_)iܟӧ !`zۻ`)cŪ( TLEK>K~gUjYWZe}gە-wOEnDnMӧh~+z<ԅ7 L5lQ+~?KL|q3mv)>iwj'OwsibL= YXߘ&B]ӿ<8`z:hM4eQ瑭C". L/k%|&hTu-A 9+*b*x՜ )QM'ge D^`rc3+ HvyC e!,d\=x XqHoq5 usb_i^ivW,lMS#*6#!*e^W^C] ѿ KCUFE:R=Jgk5AqimV  ٗ2 w"BBFbSDbXqb'gBa< a%! A.gӽ #Kcd;*BU67l*BtS4r(q/nv.c >lK^ o61 {"3i5w f8Z QA/p묨M{ fCߗ^6E`9 0A" S0f $w¤8g/Ʀ}I%ΚU}>fO ڡ&<\+hO.5o:e·ǀĺY=k3Ǘ4M~P1 #iL4>+qZSP7{7t~82p3k`#x32vfWegy 4W|sVE8NAC8/4UvznZDd!3%c/N|p[yʤB9{jap<F1{tLp <c)+"27Xz+Sz/y{ִmt6s瓸t77 >*RƱΞ6\ ~̽ q/d*EG5{EOLVNGL~s;; wn;{7|}qS[:_haɰY{h}i8r44M}h"ՆWm>*Re%73)Nl Ha5e8(FWb 4`8l`C+ޖcRiJK tc2YJTTv,lP&0Gz>^iD|Ν'7|〉%RztoSIB,qCЛ1%# õ0l̚mK1Gݩ+.\`Caadw>Z!T ˆt`:x @x<9z$Z+A%ݑ|+{9skb>2Ơu*2i& f0M3 |Kk4;}0gȅBJ 9Ô~N7>ow?IZNߝ;<~xYV11 ~V[De]on{JW,c;g!*f"i9hA<qVVBJڂWJz, V6Q/nBu:;F]6q)9?aʛCR*aRL oZU0O1}<4_ `G4Axߛ~ͪ L_ĺH1DϏ1m,Pr ӳ#2LE 牭_`zEZ _ X|V$ɞUNt'Mm"l{쬰ژ;uvJo*RiދA]oSm] (zEDr9S$w])vx&`oL_,Ki˯NՔD,ܨo)!KCW>we:9ESKR;HJ>GG0 Ev)rj rx1D0c!Mǯ"҈ܝߠ.>%Z '/Ϥ ソe>)?{^U7^z-V[;Litcl?(mJ丐qi鮺)T7B@܊?4"{N0wmM6]^7#LgB4Vrm4Fz$*>>K%a/}j* U!Q 1tLOa$UAxÊ~yoYX#6)EqOuc{_op0!Pf]_ɰM&|XI % QOE b|Րs\bڸe4߶t:%{mx]f2j{VW|I#6"ssG4VgU5ho >qTBdi'Ї ? cF;<<|Ko,m8i^0=뱐6" 5Hkmm8flCmr5]HcބG&Ot[*K(gΉ ?f$E^TZ)X)%Jǧ6>nE=_MSLט!XYUufbLަΘA+x^wJ->ZT$W}| IsL|c#vbD8Ub2LFV kjZh5.\nk#aꅐW3t[[ڳP6?V|E>m\$nx0 F" [,x5ݹBj]es«$=Q \lBx"޴7W.$=+.6c#z[#MSIrA3<ʸ-7$iL^npnpvOV-h›o~]_bhD< |:ͺ*ȉ|hGrb ;'#1kW%σI$鏏ܶ9 j/SBqI?.<$OOIpX5|jmi$b@{ǃ=V㑫$GC趲Aϧd"a)=]%d.K#OIog^F2mLLE_L.Z+mq-%GN;{{2㚀~V1>;F5F5 covn[R;nTpRx^̕~ I\aA?Y/ "WކS<zF!Y^#5҈۰'e:+/ YD_%i\ Pgx[MaaT7 OP Be}-3tJgYiźZlXcUXgM;AՖYR#GOK=f5TQGM΅7馚;wI ӧWV'"঺~HF|J0}v&{^e xH*czt)&uWRL0}!Ak9 zRL|Ȇ7WyE3bך1g\d-1W&K1#$SmI)kv/]joOa*HoT{RFFk#|qkO bRϩ W)=_"6t몒cJϏϗ; l}Vha_U J]oSNQ#g`EoSHr̽e䙾f#W_eG^ t ^gHG\LY4Nt-h+P/7>g)Se0)8s9x 9=w|V{IxU+{毘g^4݄d4N]sJNλmۡ팞ֺw1Fpώg hӕ_VIֆ ˉjB$IDF\!Bg˃->UXb^UԐS|BE&$bhn)?:,o~J61M1*Y FuU q²+>y#[ɟmaj ~r>| N==s07~oF47 8!`vWb7n(%oM`/$ LW4 bO1='YFs%zESgWX \l5 xǹ2z4nn =_ HF/mz^Zk\DF޽p[bߦJBPXhidVk_?eMHGh S{d8k:j:RFKeZ\,j-@l0fӳRqG6auf] ]UzK*ѝ!EL5M[HY?-1= "^ ^,6Itwu]Y/2Lr;%\`U>ELf)0}勈Orr,0|G+%nG#q=ud零L@Ϙ^NլŘbӗkޑޥӇ^\(z,.[pM5m|j hD&65N#Os@$d&iMw[kԟ~x*{=%PtwnA v?fvkcHkI:m7}!9(m]@>fl͝ 53OtG*+AoY}I\l~dOWW׷u]v]WM#U忩oX}ִte痔QL.7{oyIaU7~}{:=ISkwH~T|YeD>7H]:]rnǴ/k9̚DEsveX􊼢K{ydϸHzg偧#/&`44J3OΘިVSd:@q.Ee OeK4E R9ybW)hT.bߍa#Oefw!`kQm_-LI&?~J1n)5b7?F4N1}w[aIP`1W1P,CsV-`MГIJ%G)5:.Ek NcԤhOƇ~˜2P&B"lw݆*=?iQ^C}<,쐕MQ#* > >mDF)RZ+J8%&w$'#SЗ]- M̕{mXʷT}W)TTGcYءvpsK?r^'j}ʹ[۷xw#hk{w߶;v_H^Kkz_-S:E!ÍqCh1S3Ucм\79è3Y?͝gw7[ic4TGF|V\%闋KpǙi31WIZ%I1}JA}'"mԚna w5R6šm-F+IZ#'s)CgaWM d |7vTJPPyV0}@cd %7Rٛ0n?X`oRvQʨ"9d,1A-hs%xMWlXK ff* Wn:u94?˧qyw{/Yh^L1A{` hC@QeZ*mץ#kAg"t:܄|R7 *-Ԙs|%=1$ZU`2һ5=d18Zֳ6ӥui6crJv2CIMTrQ@ c_kOe¤3 ܘ܊ZA 89GC>ae^ܥUy4.^=U"2xaJ/xZU#wqhM9sLc{Iխmʻ'J1d۴0o{,u]!I,46D 5M@9r@<,E@1kB *& lLCxv)`͊XG?\/ .udJ;Q^l1JOSh$p 1Ǿ7xcA{WYs2R3Fu/jԎOJE2(y+Ռ(s.DW*N&u%njL7JS9NM)Qq0)XIq~ذ-ۚN:M{5=5Eyߍ > G kz͛zSn^)qߦH;O?΃/7meĔ+ yE69Kz':s +lrL?;Ƿ?zӨ%=_I#xEpH-~&zG [w{d?#OQc1&;\􆼏+{'KFZ?i;ՄZ~^$080ġ1}@Rj Cy8}W͇I9֤C:b1@fNL^ŞP2LoU՜tx;FG4^)YNI}|4 LmQZ"&N1<dx%`;$R]|BpE 8 5^ؐ!PXr8n3mLd@ʓ|#/@s+gzg/ (|T szo  Rpn@z/iT,NlbW\I+WjU;rɴFҏK/pvDVHꄸA/v fI|1u0}jMBiڌ^)Z#}E!aHG`8ـ釣3].|T"ƈ$w R'Jj3.[-l|--p`qK4q~07/ሷWE(0}@ֿ|7-C/VMo; bbM1+Qq D(:v4wI7m#~8o>3yoN,)ڀSE>rÅofc{~%Jɣ"K]cOD"FE!}l$ZPayKDFGeRyuA+M׊:LUӐ檬Z)or|[~qWz՝ fyD8ݤqkjiB7]U33d4QLѥ"3h@YSi> $iA|^S~XlZ2?ww|T0+pά/NܼZ!=?lnN h^/w~NNp(#GdQ홶?$n[ʨՔv͏ߨ'0y v {,ۑmSݞUGd<@f =?nz~N t+䮧C]W{-I]`03wCDddV@GI\Zz^%"ʌ>oDfUQ"V6`>LUgf6ftfܾSUf)E%u](6lRo8c80z/)#c|;sb_ZBXTZ*-?/3$OEOMdur s*>R Ng)?JAʏUD}^a?$rߑ'>5;g~tOѳb}ѓDf{ی5Y(,X"Cd˥"(AdQL9lolzU-B&oǴR\ IFG<-aFA&ZV9 0}b;wƆHE[Ĭ?օ;`kU-^Q|jL91#ЌW gxWɺDZ ?iu飠]X֓ufwwrw' BpouCYL?ۤ8>w浼y]R)旘>.{4\̙X͟=p<ײKǰauuyRsfZO3܁q|2"x!"G/N>v D|M*a.&s68' tB9q1I!qًz-53*v.裒fy|TnoOͶoV͑1)GyrD(t*TVFF魪vRĹS&3J*@p-KVJ+yg)_WHz \'AO :|a`9r&͆ 5yV)QHq4%DT쨳U2] @('blڑ.I moP@DTIz%BY#KHz08'K0ȩ]Y`1 鸷<LHvv0}L:T6֐畒lL.ſZc-w-ﰈa1}IY{dOr&2LJ}Jw BÈu2Xbp L|K:z4_o:lno=8<}x? oV es O?kcn>ߧ 2*QJ2|(sN)US\GC,4B|HjRT NVir7$EO9:.H!JE^. ɒ"1p qf\͜m^ZHEJ%Ͳ8ΤFd_UrNDMBNAi+UB?BQ[UQ/UnB~Sm]]E^j饻 'UM*7E]Nɫ$8.ng@wB/Ϛo0ΚX"l]bGYWKYIiu-t-%30F;!*Q"Utzj"+d!PP-`45>I:Io,}ŖIz-@U7bt[< ,IzUXL.et)6T=O}1l9taLDѱeB'0ϽAbz"A dٺަS؃%P~0Xb9A-1GCc`CcL81$ ;7J0=#łzz7_O]~RM0}Z<P;/sS ] OUcbXbwoX2t'Fbt`JۂjjZg %Rw}|(BA O~zRʂfyC @ӴYxYPޡNq u=r=4v>A-Y](5yAzۍM>}{3.?Rt 9zlY!g:*50c\3rQb_`МFGn@-C.LFE)mwg]Wj:'iʭXz'؝КD,)|DCtbs <`1fZe8&dg0gdl@՛r~d{c$2*9tn!n:>.f謞$lǸpJMbm77_BLsz>t{[U>ٙ!9t=[_o-^A0V S[m!f\X@:JRمEu"X3? DVBKCcaQ7BӾlKf0J+/šY XU?VYwQAQ (@+IpĕfZ:?l6 q黡5U#@u50ț.^~XC*7nʏܼPڙQشGl1jO hޗ7N{/GӬ̹J%IxgR!UcVMh~:Ѽgy~-R5Q9i@¿s{B@$rzмP^w\"D~_t>Z,KSuDl6pp[\ȾLϥS; @pàJZ[0{_U[]}]_U+U>5όShEűp,ۘa|ֹ]=̬\V</UV_onzw rԍpqSxBvc/n rjۂ'DL! UNzX9*HZZ>ZY$Sѿ.я5qƩ(2Ructc!YWՏHF:3eI Nh}b]&KI $k{x^J}"M5jek= O8V%ό)s}=mqk{U8\Zh_]K$5?R+]E$\H|L@mq=cmXW4r`VTECׯh }O#gk1)K:> ]^F:罏JUI/>;~6SfC [C"gWS=Յ;uuP\o[ @|vc vlw< u|*ǿ(-5RT;5*fcC/ueAjM}'F XIz>69;`%Y!RI}PYgu2V^k8vWϖGW@/gVsޣ5Uj+RKֶYLtj}VFҳW7pK~R_TmGM2h`WXF<aI."WH 2JIx5MߢjG[ɪ£gS_I1O|geYWTm('MP)oKjxz_?O:$V꯿·l&(=2?|Ӹ!2{~{~<]҅nwݾo\%Uj_3RӃ~Ç~+pp wXxMZqգyٍӒϏ3zt= S -w&U\/DY?BcVFYLRyZsbX6Q 9΄or:`cḤϻݛ;0f֒R̤2`QSfm HכF*[H^#.V a + 0HI9J{Wv:) {2 X쀲(F1,f-1Ӈ;Ywrn`Wzcqu^JQ֋yP[ 0ݏC{-Z He↲w;_*"̟}qE?V)tߟ?Oɞ-117p`ıFOsZ?hs!S>YS iJW˭|b,ւᙢ̲*SġJr,I/!_t\ۤHh*XMMC/UCU3=IGA릩k;TbፔxL"7+oZg 3 oƣy4.`n?1 +o"4_~O7(QnDeeӀ^Z$U[ejݫTmY͊b.tc-?\lm_0c.'u< U,lOp016)!ݗ]ȯvF8/Y4K61=",αIxq\_;X J13=/uMw(rym3`4&Y';UFtC]ZybDZYy]fB(4w6)"62:H}*e:%#,ul E9/u{ɣuܺ G Y) 3@]9%Q,zt;^.kORnHvWnf )?:P<dDIz$ #@:Iϓ'"7ӄc1pԤIQNIsF' ڈ$}LWaD6]XI oX 4d=ʘ1IcXCm3~›$yz 9Ƨn{BP,G G4縞_[6A&ʡ@mH`{TisoC*QHO/Κyӿ)Iڈi&b6ǿK4Ez>&U2ΛNUeP,H{&z>[c4[` 9BQo3\~뜵L/m*KיYrF]#%O"Iɓ')z ]i$JU*9gw_~Y˕yΖ6}]nu3;ʗ_s 08f~yUNH@pcTMY㬉3q7b-)ViVбxEVy8BDa*\?3F A1 Ij7r1#F6Z6WIzG8ush͇3!B3}.!+3d O|I 3 5y_F$'oFEko If kX@wL0 IIPQV/ə?$d͏I>? Cx}TC_h13O3Kzbl7:7,L.1ۄZ%dݺ6˽dd.ߥK)B7,r̎{b10Ώ~ @ 2 (< _n#6EJ7}keq4ݤm~:f3h;452ܙ z6SU #!Fg"b,40/m(E*-UZ*R'% * k~y+ WǗaz⟥.gD Oy+9X6Sk\;m0+Uz/vFRՍnޣ>ZLuc=<ƈukNϢ*yQݖ!S"bqZ߾ޝI{#uR< l9TUG%ֲyrd-Ԕ+~拧N{y6U ಝRxgmM6C9ʮyҠ1DbH"Hi<#K 's[sۮg1w=Ů-@zLl Wd#]SjCa$O9q0}\̺֫Z[Lo{h/nv3>lLJrwW7n&Wu9p![ t7 l61 L|pU5z~Dn}0H&5гD4KkJG- BRoE;?q-h7]?2{j%1 CBRIfmҀZ۲'X.{p]/rfKYlOD|IʧuՍ )/fH_x?UqZY{eQ{)OR*:)i^_2+= Ď|E/)yWK-8+,֊~ zu+pRRUQŞJc3E](XI_)Us!&9b%JEu=eoILh|gd78?3=qn*ޗqcޘY289ĘHPl)7$ٮ5ش %`zKq &K --#3L?W{4~x3ӷ*L_ {L>3x4\SUA4&Ld ڜ<`@L?yHNbӧB&cWMAV 0ܔ=9ayeFulb2;t  α4!sWl>i7?^ d=a>_vXG޽o)K/F:R<;ʜmGs'ouv\oT qPW }Qj~L͗cxݚ8O^mj^UomEռ7UfRΨ 7_x/,̅M!_b¢T}Jo/H!k6ӵ feJ9BT?!'(n cG(aWYɥj*wJ'Q$49LPT:P bIƬM ZVے\Kjw!* on5e $}(ֻWut& ޴=:%΄=on>`z8@}NOmܛ|9`֎S*iFO?Oa97-PEUQeJQDYU|kwTD-@.g84Zw5NU7@DI@J+JaWܴYgv@{j6Ϊ:knR'~dg̨ٞх]YifMĝo~S5UuYǿ +uyot+-`j{#z9ЁH5Ս55CYui)Uml~Q̂VۥX٢ 8'ls^C,B͠IzH)gF$=2$ƒrGQ `]+TisH$!-_L o?v#ZsΚ9I*Vn_Ml'ӻGc OQn>|1}d>Ut*eafǑQKg(_J "gL)뗘~nUĘ^ZRKZo%K7M fɰlǙ -=ެDۥcA _D7DJIlY˜^D=_*^2NΘ=p%ˈOˉUeV2zYtüa.7Om[)OO('RFE/VWGa.f`;)3MdI$B:);,E^AA* ֟p?{nAL@T;0i I zW c7$! ɯH~qWv5[o-{U԰x8[s+K@.d,Krsb2H k{OQ U79&ʸvYQݐHPY:GJ,V א\wH풏EȪREX$}{{% )5҂_Z.Nn.w9p2Ʉi-ݧgK!Pc82i&/$lO.aåvRtLގٗ VpOQ rW*斝$Fb,_ 3dVY4ϸVv%\$5éU"[I3O!0y٩5D#sg3֞@czqBbL1vY4󍟬!}&T_'F=ش9s=T\ #Զ?U ]gawUrE3jBn@T5e>O;2Z:k858Qqxg[&*Ki>S/<5ː\cHaQȔ 碱?t.-p|3ԶB9gNDZzG݁#/gP abZqX9Ȳ{|#|Pʬ )ܿ#n|^Uղ,XU5Aֵ:@ii @JuCb` /2[|3e> lDgBf;Vt@c,&@gOK"p㮐JVNkPZd&iby4/$i=|ոF|$^] oO}Nik^ -ѽ8'茋rha}yfmR9B*/#~|6niV mdUΣ5~Yo!l Blr[GI%:wuQUoJ믔zɦ*5 蝠w?.Rs*{f.Mir,[KWߟt #;<^sLcM7|gFj0ZV}UUHMY绑OIu#c}vg$E4?(}* l2Ս.Rʥ%,=_+E~"[A IOR4ҴIW4ZIL+7[)&Yol?qmp?̈J/Si5o })oC7 +!Oj@L+Jw/ X:&ăcvMi}>}l܏R\_ͦU&R>BëOO:';2>i|^F|n|dg!UzGj54K];>ǥ2QJ^=ӂ[i\][")2E(m=0`!^zd/<!ŐX1 ]¤$!IraO>q.ɓ.jʴ*z)qd88s<4IוQ6/*J5J5RXv?x~/QЃ'ALyޟcW^!],p+ ?4w¯3{kva2~-ԝ|Pu |U(F3i+J?[XSNJ i[nolr<]DbQKsLTo1{I|z1n Ja{Ð{P K@j%GA0xJ/5Ξ6{mpƍh~12(]b?0}zZ n8bd2L/E~/v~|ɡwYjoWʹQG4 \|GD5Vhclo~Ysy |~[eCgEz~:Z2 NOUv--,d*UIo*mz+\^le,QdZ_$j-%y&"!'|4z_4@g)NR.K_T o֟WY|)2^'wCV@x`=ﯹ=!B<.V;Rh kFW/чfQHq$kw/\ 1W K^WnnYOeo9ޢgFەIz4n˼z I4U3חȓ"8i3[)0to'^tD [҄ЬRڤ=LiNcyj?&2sI׍lLhC,L Hx{R1}7G8>`zOzcC>ma5!}ghm&V0G/!Ԙ~D,eLEcLoݘ,Q8::\LBDCӷɋ0}}mҔӓTYL_7b9u : sO^s[0`~\&>oXsYi0^g-a *L Jꑶ,؍2EZv,fML 8>3т =^?T翓;:9WJ{Jb8Ҽ6󒟀u,=+|+3l&~No3_A|`8[9qVdT=] -?JJVZUn#bKy9;ws;?8tj#aΤt|ѻ_+ŞiJJ-Ms/gU~Az^v쬳k[LM`.e1Sm/j*Wnl۾gIy]uB$5A˃R',OrMdFgI͍ 9OWuwVF aJHGs<]pϐ,Z,1pIS%zZSX>IgC7Pz vL{L1*g?0osFհӝ昞w x>tO:cKiptyNA"Sf1vnizM>6Z^C_2d2U\)y:) &owf! <ɼ'Q%_Zk$F~t6Wv㘞/ѭR"O\ƗIlYfp$QVtpQQN1j =O3I46 R\Ɏ+z, 0d&+Z-fe 3OYQJ(AR ;e\ѢRG'J(!VLCJJox-[!j QWo+]t|3|\??ֹ,-=o;_ٓ1d 9wY 'V$UÐFf2<SSݲQ P$EU-5i8{_F6dRLYT0]Ia4֖e '/N,=mòy1x5f?dxW& 8L/KII;WLIy-\7~Ӈ|m LI`rN-IzΪ Wv >n&&=Tx 3LoS̜ 9n CZ`zªZȦoχ{(Ngk1odvL 7$WGR҇G:gh~elgx/HfӘw$;3cL5<_:[VzX"K" i})׋ ΢c=dab4rLS-_ŚooA?Mu?G<Å9Ҵ30"kp_4_@_sH%֐~lR]6&҆=RY;Roe3ylLtg^䖣y`u\#jvPtb>aRLS$kvRP,Z@DH0F&!Uuӷy;$5΢ـV|&E4NYh, ^ Bb9FYW<\y4]ЏP~$#%J$^9<2_\@1il@pdl; q&/D΁e[U#vV&B{<+ Ѳ+ĬdQ-B68+RjyBQEGN\ (e$ R[q*j 靪D|a2[#euVh[4p$efFWբY ;DF8"Q׮89@oܢR`%e]rBB7m\Hr,i;=XUCRMk\'r\'|Jy--g&<`R|](:7'eO2gk&sH!w4ԛ 0GJ"J'jÛkH" =ݠ&gCCd4no>* by+RIȱ={4vaߜvnRmAsw2I媹[Wzyδ8kGDI#t]S)DZ@tq|rh\ZCYCa;>CSA o <=_ԠfUFyp,@便# t,"\؋(P[1&UJS̿'k9]?yQQjs/I\v 3p616ɸl%KcUŊ|G{@J[;Ro0Yf㔰ZSN¦^[%(#*nHޑ/.1 A qeU{Ou: $ekӖcd3$3C #cnr:<^^zM@WNTNUPUA.?$ WM9UwnXxs$O O6l m&aqTԝPyMai7;5E[vg6} K[ub+6cL 'bn>/Hk ͏7ӓ`0\D>ar迠R_O^'ZCoOIPJWE6x2lУRlNtT ? i&}d%UZM~ I!Y`/%g~f~vɹGp|:S>Y,wCOCn~7t~֥~iԟC[]KF$ {rV ݑmeN[ ;% ?LWPJ)MJ)hǹ#J2zƴƴqNDvW1 t+ή>V[Nt5{ɉY^JT]5ɭf$;}zӻɖiD`F҇Nx<tE!>`zHN$}YI_ȣjG$}?nn=ߗGU5܉Ę4$R(Vz>fh>#b&YoU'%'ꉲ(VXM?>CFagMnh~{g^Wxs33mǘ-++3LD3V\E@Ȓ󑈀lB& Ez#,fezvrX岷d&Ie-ag Y <B(KzRۜ+OqIoM9 TMUI]5*<# R(OBUg={p!\+fs=8y]2RRN~~GJ,3 MbKbX;g_=/'V*(iT]PP7BY54h9dL"䵆ַJ u89Z!= J]%UO[gXK̼,!Y@ی(C7 HT2ZX,,Hz0 coFS@aY]ϓԻz4/J[#berMYPPcc㸘m ?F{Ds4 ϳa05IX]lg%R륈;7oMoe[ANʀp7QX<>oxӿ7Vx_Z-J>;,Yb_b&L>]h>`.'5MNxLF7AJ%ԴX@%q~{ S8Ѭ?Sd~.M"z~(r/B:u>)ju٥\OI09JjHƆ^SſV9tX'%.G]]jd!2ҝșr u;vH3aCg]}k|.x$U]% bWkUBU 5:F򺇽.-땎b'3OZ^ ?8wpVxK(%ntu̟**UE:~JSt-\ U3N]Ri7aq8nF>k$_XK$,*!*㤳$-6CGC7mK-Vsj6"Ili^,I5b> !`z4W =Л}1}(SRo:mM3Lowē$fw2roJj"83/;M(˄82_7n9ZO1_~LulVibtcY/xtW?>i"cLOV.tR&|='zToTCt Dy' >,Bky֧$x"= 'Z(G]_ntPLg#H506b*k~==oStc̊~~JrV?IIiHZ|ٖ%M|~~ZZuNӏe?13 ;Y33zen[:^?K3㟣B)z!zȁTUY˹ R1^,``k^9S{eMlq_aKFZ^n dzBq8kLBqnUa>12ob©/9N>Ifnse$}PDT2Ccz 󷯏&ucL_7R4?H*Dɒaz!bz&.-(lB)XE9Td|Osy3|T =?P\H$:4VǴ[i6#f)CS^3K@~%K!&zMF;*!Z())+)m|TTTR*oW OzdU Pf QсOl&/b1f7g&%QP@UT6R6o gU7uJ^!zzMCuqwBeCBBfH 5FYeջI12iM$}bBHLJ=q }W 9 %ౌkujp,Zo^7js3VUA{˙.7N: )3=~ـOQf#Ddㅦwfxf~vyIooE#loT776z2LfL|5kO}n<8g[Q=Sj=_/0o_e"[ÌS(8w h~*|^Ku(ɀ3J録d>z/Z e_O|d!/OJ,|buz~ 1ـ=x \;d$mCcSᮅLR==>4>+m _ 2;,6+%[:& -Hn)]-s=Q1 @+!@bLT[& Ol$'hXkNb 9&]LW6k83pgZk)(/AZ{T B:̸!UBjd)|P(ѫ PT@=i'\9JƔ;kI.؅hI23bc4tnEA: }1Czۺjݎ$ubkܽPH|Y%S¹2Iu-V׬IvJב}+9L}Ts#~ !|R}oQyE~0qaݨej+}|JpբUL81OgܤM cs4UxLlwMpd͔ʹKwpN\!޻~~xazZL2Y7o`{.'z~<x۱ PvhhY7Q[ }+&{KVlW$SMX dk5kq4+A327^$iOhc?\O@c>V65WSϮHL㍤CNQ`m!rbD\Ҏl]^W(i',N}ʊk AHDv`&(~nYIԖ!{;Xgш Վ>VBBu`:;| Ҏ u{o`k`UaJH R5}fgw69DX%`'H=PRcRH:"Gs&sۥ@B =Cyx#t kD ͦmOz39HsvBʸVE9!kMQ9KQ%HX9a,cꆇƣ YbZw%m_buF'{F 67_.]_[Rq{ Xw$W5 }QcL`/r ~~TjM7[TCQXn7ȅfcqUITHLNix 5=. 1h~wdC, '4/>ִR$B1 cgD tR `/*tuEz(9U_B ]( 0QsILqwz3oF[OCH*fc $}`f7I0|Z,BY3Hб?q6̾ޓEYF~"=K}_+|+;,IGoIО^$lPNm*`X$.1k(+$}@yI/՚OE1'}Re5h0GK1}@}W\?76\LO; 9 ~rJ!Iǚ Lߟqsۜ1Ș^X>%2`;]dr]*dZ&,1})Rsπٍ@0 +|2RX*ӬL_Ɍr<4糢}%<0sD tZ~9z>+R2Q|Σ!Sd%ZۆBGP`V6Ə}"Pm>#=# f??MF*LPr־5ůdUs涐%WHkvJaYџ)kc u8j1vbR-Q'Ut i/\%l FIu5M}Z06eݨўL;w״"A-hdf≻S !;͗ Ĥb4x4aW51O[jn0&7;J  T2zZH 06gM;, a+"'.UK{~bc<"Xz]N7" n _zF/q,Z[^?+?Dx!Er:tE0UU}͏csM*9VK7(roПq:c>prIl5cBu ,NU7-AZ.ѠT4)b,[_LH O2 Z)Ix @gFQ6Y_0%q"f/^ -5-g;k?͖h91/3t?3v?Yg|^YCz9 ۾ð{au*^";S/.˸Xƒ-Y^e9gk-=VpH"db2Y-|)$Ljlܫ)վ47}sKlnSh(Tl/뷩?`IeM5;b/pl&ݰT{V"GӍCɅ#XmHr-¿77zMSLc=0u4__*pZOǘ>.CqQVWj arxKv1EL3[bz")aJJ ccx]Y8FȞazLhM=_X\80 Ģa(1-Rёc0Z1x/|($ 1=2)RS13F1 `KhV۫Z$э#;; }w  (-Gݍ(ۛ4sY<"k1C XfKAAo->$W;[om¡6sYuDG猀N`u O+nx;g ŹwvxÃN323^V v=S}\S=t޳(4b`>98kA*X>g@i'-#^"iZ]}*g5"_@| ₝7O"IKlwП 7#{{>  h>O{IƬ aMF1I?&VHzVfd O's:@o{x..>͎옷/tB0aSlQx>~Zhf0} ?8} '%)7ЄO==u=/;˜0}g>k+afo,E0Vfvh~VM5 $ oxLwKaz3_tR_IcX[1C]ܳT(IDAT]t^u%{3z,`:fkCscwKߗk2bm㫪AU| kr/t:_ۿckA=YȤ,:q|dA$AGGH0+%إ'8(b瞜{= jJmڒ$49呩/@~S7hJU)~LnELǧqܜIW/ bL<]o̰gƣy^l$Ton30}݈_[*%r%o#0}@W M Ȋo>7B].qcLpҹ$`ĩS1l!t5/>?gZOTT,H2;_;S8lI$G *$m]|?GfQUDVe%dzB6eTքsKX> MCrbLݫw]Cy8=Ҹf;cAi雺k.m_ͭ'!#(r89ɜbz]<􁤧Y_ח_`D\-3~,1}=%?L]a$ ڮ.uG,ZfҴq܇I]Cc#, SȻ5ZL%=_쨐+-_uE5z9.%=s<$tiʣ-* Y쓩ۍ߲ކ'Zw}꬀>\lV0 k\Gef B͘ >+e}u7A}ffpeH )ǐIyI]Ü=MP Ʒ fJiDW cw'&q;auDۿ0  "_(Q~Kq܃fCtO~|"W\|ιMTuCdӱi`o#?j33U}AYB{xNM5'2NfŀXq$ުqwx)dcfn;Jc~BGޡJf'Qɏ '{&︪ a\Bڐϝ :f; oN7b-LP0}@S͘6s &1x%}l$ӫ$ߢӼkuJ2Cs"&:=?jG'3XD0ٯg6LD4 -=:X)/ެB7K*3P<nq]u#pbTg `dzDSI/|UԘNg7^^,S^lix(>zꢀd̺^^4\?[ء~^¬NV`>'՚TOsuwNt"53sC%Ws6SO\9Ӊ|7(+0tt,COҫJ~>W O@Vsx'hfϐ'R.g$fw :$%Hΐ&wD/ln8P71m01s'L :{U,SaDLH ca}e/`\P^*Hzw7)&8Z[37O|i@"LD)IgtkiL7] ^?# 77$!yULJ4Uwݞ?=M#qOh>IcqLAcLgL?c@;[ `衣7;&]>0q|5LIbJ v[lyvHzq'@jS-}`zy-cxL_c],1}@LOPb0inȄΌ}ʰ%t)>f0SG#Мxn]L2>~ii!<}_bgv<=k7=k;LFɔՠzKz/9_IVe6dj>qI@?g'枹gQjWAҳg%+R=q3us2ZU>ϕŽc7o}kk~r?,]kB8Jq"|"|pl_êvg}nK O `7PC[vVMmb _ЂϊKͭ›AIfN1m]LO7D I>+Xxq;֐ ]]9ǽBǰY!DT o~=(fi7fx`7f ͖kc5PM/9k(/$2{;b$e((/4,!5N3nTQ7#O &V%`Ɗg:H d{fwVNBZe=~߿IxqAW'a%ͱrѿWx4?^؍3a/噪XdDdݠ==Q"ظ>,SGo#;CZ#lEDJ Zj񐹠'A}$0w='BJPƿf5LaF7qHu ȲMhC7kQI:>̻{{Zl46\;f" ȖST'!  z`ٓWξb!/6!'6zA*<N RRTJ6J愫;{"d@Օވ ,!Eژ( [Э;!hnlwrɝ]K !t=WJ{Wp:>xPh^ʧ?spJ"Io[kJWĞ3"I8ʵLI7k-H;G"(f 0 39S"ƀb$}̈́ c/3ӚꊂfÖuE}}Kx!&|xLUD%W֪1o>9 9yN#=* C +ʉ%6 $> C_̯|J3z 5o㝫f,r&SxOl<ͣL/@Eiob^6i臘C|չED4`X#ZYDioRr!HB)8q"vFczɥQdoAg?IϠ[kz>)<^䔧6}gfsWe3b*EƎ6I)2| tkN6loLy}qY6I$nI7RJob|ABfL7SK=`IPR8rJ4(맩alh,1.nvwo8[0ËY|X)Pf1D!wQY+O"fZc* @Gh-JckTBqfDcBzT-f ϲF,Ҧ(WV Hm< UЛٖ3(tc"[Ne&tSΐf(Mk$}{hR,z{ӏ2Z5-M*yXo#Ix)YtinT\'Z0LPB ~ D5)$l6HF' M+ u#iY`Gs$DlA2FSS4˚kM)^o_eG`}'_5W/:>7Ptڒ3P\ @bqۛ1Xo-ƅkh>X3Ax{3Q=F5=zwkif51l߈s U'kp0}fDa:ApPBcf Z$L.` tfnݎgb惀jW@*2 92L|03mvj678u7|9d(cv1WmgLvz :=h~j-5<!h~M`5 GX=|A3kLoL/s=Hx燿N|_)ˍa$&mlY%3^Ht t+Ocтeqj^ :`&?u1 ӯcx|8<~~9KZ|)˪B&TڂG`)BI)tJ]QZRX5)_FXRKH}+@ھlUݜ]DNPX~XY?~J=Qy6I,gu Y·a3dbc߻+NNba$VzBn0,g޽TavbCj,CPnTU)zM}a"xܻ̉} s]1hI1m_ije!!Hv|T2)mn5q PJ}[Cj3zFUb32@!&3h}~_?d{ #BGjJMw`K67"b&͕6A }v9ms,0e0i] d{H04$|㜣=8DdZpm9N}\7ue3旱gY6˧S܆[s|sFN;V$vZ!y]A@1jh^ k(f?z9uDh¿ϛ+/{IYh\uqD*@,`˼$`t5qWbFp$4`Ό_ViJ UF^ucVi%BIOCpѨt``@I ЀC\$zbL$=Tܜ R0KF}*% Ze$3kM,EIO>(D֎-#zH⪒L%}Dz`k~RNxzO߾!=x]>\zɈHz=sݘ/Ϟ.y<`}E K03y8#D #HnxU~zY(Obڋ,b'z 3Ξzl:HyD}ܣqm<&CӤչ{mʤ^Rc=pf)〜U36ߝekz)}z0 Jϊ,f05Κ#gFYy+'+"} k`]obmӥbyK 6M%BN)5g?s_ZiN}WN|4m: X(_ KW̿[cNJq6p0~j0-\jeAud-fBm%N/I뉴zc]}g?aA;*!78b֘>;:I+FKƚkx3.K ׃[niKko{d:F15-.٥*ݴP#zu$823k;$ӻӧw@[h>lϹ[&%_˨I{I`L oLΖ;%E?MD:oW#z)*Zт ;HRv1C!J$ m(czƎ"' khP\@z~QGvl_dL9{P{/k: TbZ[+/';d\4mEWٺ8 FR?rb k3o+."P?B>=AHJ))V +z*&`\"*,"Xkw߿$< ht0jzwiʮ6Cx!Y_?]a[c = Qױ}쟒$="#"0YfΡMrSZP6j3"aF7kp βyYW$\Z Itʓr1RA*Apep D'Dڮ{?ϟU>A_T)BjBi)4U)OUn!iKߥ :֐Y'^{Sܹ*f0r+F}Fw2E㑨B((i9 Yr#Yh噉ih`>xjwz;}WJ{ Iѱ$Ju JQpN,OZE-]g<-YB(%[K"qaTgw4 w'Z9wԣy&[BC7Mr&fl4FjN؄2RXv@(͠lJi6g1JP؅>;֖iFN)ke` L_3[y|t{LU|7EOns+0y^g/xe4eBw(]oT;3dލJBaX}yX63%+{|VaO,F]#ƹJYM3%7dL &9d*d須`r1iYlT[ID-[c3L?&*6UX8xs%]&Tv:;iBU̾g8|4..K`!R9 FtV h#}"Z4$?X;`'NTi@7ZIo¨c ŵzD Čyo|HCr\u JUӣXϨ="2PmYmc.iZ^TkAܼ09kY%qVyy3FVBt<Ա0F(_C={ǽ8w?=݇LwmsTssVDBpS6gWG&}` tbYvdA2e*̎;yI t'{YE-CJqODLgU-HMv`{IUz >ޘ!`zR"Nh>"L ((hɡr19$cL?VGXfC 0 `zUAwԀ3æTd#9 #`kT7FMcH=%ޥӳ NP;Ow6r>dlsLnbLp0ndsQeህia1N  LOTfQ!XK 3BK]BuUz(%ZafXb񜞏.!k9매⁋e4M*+_rs")]\YP3Qe``+I|>Qmw]~*ᄒc!f ""J%d%ӗJәVs R(@R ܓ_: r $4 /o>nJo~iXW7CWZJ*ّ|m4+ܽެE|VS9z>{U +I,ܛWfŤGXs Ӛ,SvȤlO d]7;U]u7Ya4b9+1-;Hnc_˲05 < {p493Df~;ϗDZvpIn=y5Fzi-c9337]}ޣ i'6cz?43͖EnK}XIC҉t>xLfL? Nq$^F. 33,< D ݒvGؠ(2݉9Gr%=  ~'J5g8ibډוfQQкBos6=ɔ&/n߷$*@,J-AtzF6?Y~ՅÄO-gb9~h^uE9umm/ WJ''2`wSa2z}ze{YUV풤RuP@=I_oh](' JU71I_o8@h+!V)m7Tx$BJT@)iJcI/Vc!++/Hz/R@iHogU58OkB)gVA0}18#`6chI*t P>-2."[;Ӊ͍c;Ř^W4H0=It9м6WsB Ei7]Lw]J";mn)8x f̏y$ViP,rlu/2"?niT$$eC?.:U^QِLKu4A0Vps5(x1UQ#b ȵFy4mŔzş͔|L~X2|/(쮘DE)W*RTrtAJs*d3)+q\lx#YT R&&ڙcz)3!;Koὒe<םt6':>$ݫaFLnbz5 IKafhTd֖$O3ὄ]'Ĝ{*~O]IG.^i;W~>>&4ə򨖞?N0n'fCk=I ]~L˞\U$XoR觉W367넠8fFLk #3S pq[#P\ƫ1RlJdЏ16AdcyT>rucz/VL= ]4Ęs ngA"pQJwhݕQy_&`Ą!cB/y9o"AeK0!X2OL:3$`RҠQw1EYdF=!cKMTjmuT:|Efj<Zep^wݕ{qV;ZIRB)z%|^/ V lpII,9A[2 M^V\2]=$RG:苊1Yrcˊ*4OG]f_퍌($>û57,|MzR+4ͪ2w)ekYJ4MDig̸qk: H]|VZMΥk\MlgLq.7N쇼SX{4 ȯ 6WLI:.ry>1?DM]/D7Cw5py<{M\tL M_jB}|&2Oj"VUkAuBY)9r&;EFr6N`֬Yι3+n.?>9YѼ/7)okscdSgqF:Cp# R\q2)0B HN;$l0tѧ'Q) +Xq!H"?+i+]KykB:PCVuL氷m;No"d<4Co{Qo%!{y/z_2O_龷CmBj.dE_uM}_nc-nz0cde+鯹vo{^"֬ A{Z+T7OJ=_l)/Er)o(J aKDDDRK"4RwD;,&EP0 aG = _H^!q)DjLVk3\;iy?k[IMéRE᰻D(rd `ۤ$E~uMqZW0 ӗ+>ض*CWӫ ӿ_}1czأs!^^H|jδOat*G9>!$,cO+'H}1iǤxLoGmo3x0INcȠH1GSDpEJõ!@;^y%!o|V6J0<%-wǻ,H DŚ 'R*0gD#=.`zƐvKŒːBD>H+_|Z =t/U~;^>|Ѯ+; -('iJ06ߢc2;x-VԒ') a@5FAHayEDWkR]wқ~BH\NJk!;)Z#v %XǘD5tQ۟W-*=UUԽ&((gL,4fw MU7sW~Y,CTu-/Y]BQI?e&>^fliz)FjWvZg?dّ,A(3sGVewԈmdeg*#sb #2K%% ws#0vpѦyj2iU!bO 'XZ s;pݿ]gK'|7">/P>[&8 oa_ΈjM›Մ sӦVtf7^|9b!wZIe E^ QI<\[ aitF:c~$PbF溗N}s`֞jSՇٝLn"SzS`z HB4 %1ܟ9dB2;V2G =/sn1"e MZ?2.?/N^=V.t2S,c!Fwo~}l]]Vg7gevOj(g `;e\hEwWS1wahMM@~iZ?vD$}$-@%wOBc1wdSe 0φ*w ̘?}Wtc}kMYɬ-_Y["ԉ5S}KI7.7+E 7j6]i2`[ xl!l kx')5t]`_c+,%m{ ,r^(fٹ%%&(O˚(8̾GFcѴ-*YoVN{ o%uՎ4z4Ð__azDէӵBiZʩD{1{ k Ѓi3WAwWuZ~vw,Gׁs 4''5&0R%3i؃k2oT\8;9@0#MېM3C7t}Eb D &#𘾪, 8L;hP;{Ʀ;MGpZ ӻo14XtG. ydT%C!ui|.xc>!F,əu7?xf7:|oIAdi?=Oc04@۵]6XvVo9E6Dx?ݾ >LZ-f]Ap)F IX_~-k!._3$YsZn O-y~I?F?t zG37|C 13l}a.F:)-1kZ]8{Iu#KC.]Pe٢$96 F[:6M˾|.#=K$~}yϻz.sK֢( 7Óws›FVNʹ r:WLO(*|:͏GZe?B%O'4n `ԙ~qИ١ٕA! (Qp^*1$N{M"Г^:R7~ph+7?>`epW "&^ ky1;]' | B*ӹ$xrǨS/pMsô *Aa)T7$J)*TQMQծԣkn_wJ mT7̌/%Z3 ϪnySY%OBһ8WW_T:,n>uW(d-g$$}ߩB2K$=;7$ %ܟ{R O(?駶Ρ0d8 Vc0enӋ~ /8CG?`QP w2y(o!I'nDƋ˥lJEHk?!S/Ց#fWӳ#LO&9xxCIh90wE3du]ۖcrc Awx^E67C̚wɘvMGr,V& ",+: 3jüXed8'%|w Vd-5xks% ,&)8p9>r=F|o͟KcbR7E9&aLHzwMz\?̗&/FnnZ=7Β2n!IϠs 飄z{j[rt<,'r|o?â<7mG=?,4'Xm5:'y !c,1I 7]A ܳyg%~t8rP`|4=w/s6!iL{d@sׅƇ :qF݌^x!cD[oؐPU;s֬@zF)DbdzV)_){$.ϪrwLm"(N)<|:XZ+\]jbpTd95`HW;zMd){[+tr?hsC#QEp]|9ZR.%Z]wP6^I[U(7c)}>G[V6v$ Q]sՆ#S`Fi{'點]kBv6rf6, хt~|ƵO2:]x5+E}>Vx}ow3/ryߊYu8T@p:poIF Cގ Y3ڠsVX0\~+lVi!mPIspF6aI OҟJ5leyz;ޡ2]ӣy{Pix_q)-e O|c&$I}Ӌ`:{WN' DٙBB?$!7 -L3˜%Ǯ~ӹJ_EZUA\l ]+tz@o~]RkkP_D]m_|Lo0EңzSy:'L .HWDR>:p Ily':)Uy$H+?DCN8Ca3⼿2Vkn1i>SHCPum虮Fؔ⬉IQD0 y~_9mdtNϲRcpmmĪm6J:mUz}Q)]Pm=uܹ#ȴLNP6-Ƚb9МYd5~$M8v]OP1pطJGU.aW~lU)}`ww/~crMuy-_]#Bϸ9L?}G1{!ئiybzILo_q _msӓP Px GeELf;D4+k2H)_%b~T)lT'CLZҶu!oN1 9ɺB*uQD?cSZaM@ ;7~XŊnyB Q0ɬzf:WX ,pQ@'Mx\lO͉^XuދǾ\ojҺ&teÌ& UE빿GZ7:'RMt*O?bwxm#NӤ]RwR?>WI7%` lA+)P#waUIp  ܥcP'{˿ -R0DLB3|%$%zFBPF=Peil ~,B  Fw7KYd/vGm ',bwSs tJ!Gj0;'a2v-ń݅$c*8@,E?7Pw(0}H[wtvIJ,{ +l%5=3ȉ#48;#yoM܎Kas/%yo_ipoOq:iRĽH/BD<l9Ee=Ii-˪*#;>]Ay(2c}R+i{lm:S qC n 咭$ p֓]`Zĭd5r)]!P++J& #S* ,h 6?r[xڭ͘a8F9I !VL(xtp97 uMn?z} Ţ X',Io2m L/*|+?m;rIz{13 <5&A,Eӯ1.ma̍;azB4uq>oY?rwgw$4V쏳p-@7s{.o[J=x=I *|Cq$ м,VoSTч [^Cۑmx~2Hd"Ȅ-zO0=QdX"vat5+8ԇ-=cULxz&(bW_1=?f0}H>Ӈ\,֞,AjZ3"~u+&&1><<`ͬv=.uC\:&L9Rzg5C[(jתxA>ⳍn$JUј+%G-= 4/6nfYRGyBnHu%~, U:*h;vk[WUb4PZ 1 9wǢk~t!fIg6JgXI '?=HuԾ{1Ka}`F[B(m8' ZHd˪$)p[9r' Yl%VE @7,՜OT7]XénzSu) M*uoU΢Lf~%5wc^š%BIߑ?Pp%$(}g X^ IFh2&[mUUm\ߏlEW8G^EAIAc#S)y4o} JM2ل?bX^ΨW>xS)vGHS0]OZkV<,!7b HL_*(!!Mhb8Y`?QO&߶Pwbr1 \.E%ٸƲHχlBw&۾o{,ZTMرY矂A,i-03uH'$G7FoMO3F.5HFoۖ؞N$(%"[Kjhf M|u*)ʫЧ5\}=M*bыӪVo7Wݫ~m}漁nOOsGLWpط}[.Ӆ6|s,%heɢOf=@R^&zlUmձ~zf0gʚ o)H ,ܾzX&olHŦ7x4)F]B_)&cP'T$<Ó5Ĭz?fЏo>Cv EィD*=ڱˊ|~|cD"ͭ6sя!QQPQlFoq[30m|!(BaƋPu;6}P)p̲ YDnxJ9 wߒCQ'xij3;! U(U,+mf"g[L a;J<(ʯ0Daڝ`!:lv=gJUVuf]NIBw*'y+ ݺ*ɶDһHrgK50{ 2JBҿys @۝2#* I&S WBjۮ\ Iovy<|]Ge>Ym We5l4 ugLZX f4߽]<>=qGđđ!jjSAd?A~#'M*?e1V+JrQpQ*~Rp!KU >BūʐI[lݕѫorٛ ۫Lc8vcuCB+̀$c#^¨*^ ,,9ˑlLŴ3SNnɠqvQ|-DV9YIfc7)B{|fLǫIt(kX2u<Ġ C?amiCIEӯL B~mpO/2ɳonR·<3d XS'iQGmFO"_.8Segwa2{^oh83pŊKWB^ `(kKkKmJm ݗ}kUעmֺkmJv:KA(6߳A3L3~L$i'D=*."TTiƖLcTv1l7Sl/wھe!Ȫn0&FP9DuS&$?LT7~W^u]a(㊣D1vtm<o> b"mHm2˅J9 vlYqɸe(UQ>~u!xuq1l20.`+GdBRL?>u31yKvVG k|7?!4?C}+ORLмӯvZfhޅz8Y V4*5hWyL2& |Ax?y{]1]sPF=?;a,IZp_ObXGϛu|իUaf~$%Dg6'>o!@ަ~8S)4O1$ ?'?ԺovUnieB\0٥aRTob՚xN̚,PY:͆f1jƇ"?i [U4B֭ZQV%GKrװRD(}%!i g=\m,(3p1j dҚXTKY NaM[Rqh nDћlLnSmW RZL^j M`>Z# ~cͤՑjk[pқ_;>Nh.ZQpu8 r؜ á CU772zw?B|(g@Rk7ڰO?AyJވ۱ NR1ڊIyjuM.{fyƣt7a4DiE E"r3ߢ hòOqh%b͛"kRvw8t]6mUuh~8Fwpq]iLDFŌi 1wh˕}6gJ<=o]{Y(+i.5z.8a{9H@ aZ| 7jɸ+cB}Fo33T27u"H_CDo3='|ɲ#V ~FLwRE+WIcM^LT71e#xZet < <)8]a2gC/Hl]ARUc)OER Ba0HfN&q >N>Z!RʹB^Xv=LF`y4zY^H%fVt|wV mY4XהRJknJZmĒ[kz5I7pj\Q(hZe:TX<"k S^ta![ЦU2,uqBZ`31iH\ #y_ Um:ŽP/zBQ!9B_U deMGJ?砼te}&hB%(\yL%rӮ G{eU8ޡTN7`YvJY5<ɰ xv>f'06-> :mW-.)y3 ♂!\9 Űa`K8;c'-+.;Yl֣K0:" czBLon-0/O,:J$rf`5ęmp @KxxH AHIv/[p߿ xKFZ$6u\9׍*wI(|rIR j:D;KƳ`4t^+K1˜hDbpdd|3U.%1j]ԧ3zic^kq=m>ndl*JܼtFC=TnEQ:]۟&.!܍lc Ǔ?3:b4\=p L}?!!|Whnu@Y(|ɖlg2Bl@E) #U7 ^/y,n1s'!-LY66Bռ?Q(I_[u0!?Cһ0ʣ]nS y^ j-'鋍hځkOf@=$›9%K,u)oOW/6LǮ"dbjqs(FM? tYOVHҳF1Ի}bDL2!$ нIXH|O]VAAI֝ 5qIˈhD+ s*FX5ji݋Qlo_r\GCAغ43ΝOkR!FPJ[ݞAIxT nT`I0"f\W۫s|/\zMٗq%۫b֐(&V_5+7Y=yLILC gT}ϤX,,,)+URP]ivWD/qKxI3uWgO-1 h,'p7P p{ u֒'V?O*!֪\ç PVB.M~AY12lb @fKZ-rF7TTrЛctmPf8znw:Z󜤗*%HzKUd#YooG ,(4> O44{7Iouyq]nX>i3_T_ =՗6`[mj]W>W nXC ,h]=_#kfKTYB%+btmą{^J+-,JrE# ɔ%l\p:!H:E qIZkuomk콱ÁPOK# GHu@$\q9sȧFk1lۢE]9-FM8n u`x-e @NjZ}Z|{8ixѦ'lնtM'M'Y~+29O{E>ee,V"יl2*qZ9L\A显 N ۫K1,i0C?~}Ch>JSczq^E:_DC da҄fg)=5fN! 2g݂bӟu8;]+p}=I^^6bYoF"jPף[ւ&Ӟ+ўk%>I3t[ I@Y>ۣTrlvQ橒i Ճ)j N߉GYk'ϵ3w[*u߫bz)ښZ l/rIL$C#&<D!=Lzy1WLe(q›uX 0(T/!&DY o;8(|dmՂ~KEuk5UIEOhp9P%ڗ2Ao')W]t n'UD߇jsp›DA>MdM @}gBLk ϧS6]A0&O{n֘rRx'"OMI3M,=?l*\cv/JYT%VsV(+Q?h,m8ܱDqq|".^*,:$}/X?`s9\":NI;ʘ`;WZk08יf>OBww صvjo#ʲ E7d m ׭u=8DZO֛OX![BR(EZhm#3=LȂ%ΣѕeR_RBss=6**ZPcm!D@ЊUfV¼%(]o+U762jM.1#m0ցׇB:>.PTJoF|M4cp ^M\ -:|u=sS3cAJzbx>{L81=65^ \Yvq D;+~^=o Y "Y&fʉ*S9΍rFѼe[xLoy'$Ie1}gG׺Hv&|8nL K9E-1`6H4,0;G m11ʊӷc3%ݛ'̬f9RLo!͇Wr(д9|7+Xjƚ.ݵ ] 5f`p3dwC!=DW7Vۍ=xoLM3/7-҅W_LD|=Z;7! /w!94&F⋵I7l0?A~zAUQ^O_sB e}p\Ek!)Nth$]<-N'X7z|KRK q,s !5#("3+fv36&r|1K>~Zy_GQ^ãs쮨YeCu$k8ir[5RHX[hl{Pؕg0] 0?~%Wаm71)7HzŠ01glN{Uf$0׮mϓ}}idʽ],Mu"xy+/&-A;UaqwY/^zsA?p|تq$>/t5ޖ$n˾c*S9^bBc As@R/,A% 4w ଱GF X+XX:뒤$%-/xeJnBB q a9|bAOiRJ2[6-2>U^lv/Uؒ;w2e'ul6 {Yst"79u}u{&>2%ժ\:َ,*)VA g1StpJNǸRVx)ڇ-i)Wқ48.ClY7oVUTy1V+@TX#nG]Eq~}{xZ˝B1!Kw@ux?#& @9GtO{ )jщ99 b>;}'^(Tf t#ӛ77N;LR ߇I_7YQ[zaƈh'&g\v9+itEx8WL7]P r߃ 87&0LJW_DOW#wQ,t\zZ'xh~A 6DnkM 0Ll&:sF0Į<7JBph܇RO:ڜL?Ћ5T5f6>ʕOf{Ywz&48$'}0>HY?+@IJhsE%A?IEgTc5nuך3}]}W" dsB˛6>3ցOX2}_Uի*@R<%IRU n.Ӓ] FD%EެdALF?\qOmWj\6O)P8$glX["+r [Xhmd aY,*_"i (9?Cĸ]VS{#{ @&cn*jMCLϼ3fVI Kt{Ly0}MWLV2!r&5piAyOLj{~5/dD)H 7DY˭\jYVoTwBYDϝ6d ]n/͆6[epgWs%{IMY4E$X Uk"}uu^k֚KHY'g w޺MWi?__N?N~~NG[UC*JTVnC֞,ReRV RO8'%fG @Ue7ZET!dZ9fJ HF#YB뮛d`A׽nMl(imtھ]7ZlV["~xoS1aʒ.a'y!Iơb|b{Lzw~%}0#F9_w}>6sץ HJb~}WjZ+Y0R*6Ih3&"\+"P.h>CDOJ L/T~>н$~@YTIm" n'<_]vPG$j0q?cL,=-, R fٰыtE>t/s!`\E!T!lk3XJA-^r͊8Zs\v{Yn2֢Ȝ1sV_tHdDLq&Ħ2JOl'WSKBVZɃ6\Z.{u]RwZ+>WamQҲmh=ŧ@{^qczTwjc ,'^1j]L vlEdzS/f۬wUYRRQϓWXKAѓ6[!5,I_{k)JE&$W\RR$-[L4v}?'I;,tۜ/\i'WÕ'CL8_O iIFfQPXyLj<G$6|lw<2{$"嘤j-DzxN?8$sDBRr+uQ)H &򝶻v۵Wӻ59}h>`s-Ew`]$tLX1bzmfraݒeၷΪVv 螞OD'gaco!Z:;ilRZ_O4i1P(vӃ$56UiVы&arRwOR]B'tW|BGY 13zujM3f2hӖq!cbtWiD~Kվ)uԺ@`IhfHz"\~S'ѫAzI> S}8XF(7 Utw8rg>8''y0kcw\NkAk斨/ >SIc~q(W{U*i!a '!!U_' )ZYzu*CZUevv7GjөY;0vl}T0޼Ek6zsôٕ pwUFFK_J KJVUѴ=vx8MR[t?߅Սr].uR {k A28 <;EΘ䁭]f pFT$+G(?t1ͽGmȂMO &:tZv}snr8v'u.Cy)";Ԣ$`QJ–"|ѯ/W:(BQa/mEi@,2+6$yZ#&wXkr5mk߽4}Paj!c3u eBcYD W3<wf%5̮xZpguM^fCn +[q 0#LHrMjefO;C! cp4VJjD@mф +-|BHRSl'@!_L +ysr5kG<3VV'l'I_I)Jf=FGۉ<,wͣQ(ߵXnp-Qcd- !5r _`c*Mˢۼʽ\$AYyB!!1yQf:,]ϡlϤi>Kr ƪ}XUAfʽ>4 }*-hj)e~f󅛻|حl_~G?.vDL'. oL帽 kI ~/.nз?4\M7ExLз;_a5[XZKsZظ dԅ8pvsTǛpivy픱UK$$taz]߽ 6ZGC1C0&X_1Kfn YxjP!=`0g]s6 T7<ՆEMG,ҲziRZtmv'eR: 76KU0t^oz\կ7UH?kGtQV-U\m7ۨ,%rb\z`ʖ)ǶIGjwx4PX.k$R|hlv@O?>M ѐ8dtXs`r'JT8G1Uh΄(ţ$SwwPdJw_h [vh2R*c20DknȑY+nIak!RFp1/ @3>CRI OIߵHN\9Iф~4)IJ&3 !I^?4!Iìx+`yxx*eIELe><߼1j/}n#ĬѸL>ln%$t.!# A.OlD#YoϣD0Oh>itӯ[)B(Up@^{ 1_zL_70vޡa w*No.ɶjhv 9{=9YtDM1Sz>:0 댖+ҚhZ=?{BIQ] 2xMQmd_T09aMfGZ@6dz[* rʜ4\*]h?!q-jgܯv^KxH'VtIt0Mpܫ6< pN)AIL4cT쳅Re#0k lISkdE ^o7T "HYn:MgQgFQ^]]~!ג@'*H|1j6%Hkp:- fWN7gK כ1%!1SnmʑŒd,7<4gY56gT7]*R|JmݒJtw0%t@ZO@Z- v[RupqM~N_^oqlק$=3[JX!I׻VtCe)(Oҋvݮ[VvWՄf&&釙ܟ~c4Vk|5G'髵 !,Ė)ϗ, gBbLBLۑqؚs)M0D[7yiN>) 1iQRls?>иL^11*}{( ^k&MͿTM{-_naMV7]' :4@"N2^Y+^ﴀ=#!RZ =?p$G8LyYl"x'=G?XF(JAyͰp\&˫˫o~u皁$Y~Zg -~JNҏ~dgϲg$ 5?#gl^SX\o/jUVEYwU}1f@?§mcjcjkkkkB=ru5XAdBm>+! iR~#,10VKLbYeV_aKͩVPP/?V9p^M4 ™ :=Oح]UN9շ^x "a2zT?Qzs5JzDV݈rw~>h*4xW{p3wc?vE26we}& G%Audg~xI~Qן":;19th̢2x· /S%iFhQ< UUV92(6Z24 yA\:4 _ lܵ* yӅSWeOr\*$ʽתQ Ivc'T,kd3hGL]cMIGlsd)=e_!P3\Hߚ0͇j#`4x ӏ) qKgz[ab)8/9ܻ##M\m~#3n{f8Ӡkjko';u ,cm3 3:'ma 0SPlEM 8I.a=}?|`oM4qޡa#LOPNX8'ɿ6)7=ٛ%ewAMi\ r =@߉ =?9FkA3YMzpw۲M ώ!|og6.oWsR%ӱ mvG8{]U|[7%os-JJcJ)6mĕBNH%R@5V)b/ET/̚f\۪}]d+/χTd47썍, h337z!S|zIe*$zQ?sb_%^PN8kW /mжoN7 ̬eHPNmHk( zKI503$=UEbI%=`\\M0wN'h 35Q."!=5|2/_ƃQ=IuV1#+w0Wގ%͇$T\Q+< (? K֎QisSHz k-"_ q Uy"JCmOrׄBL nXD ]MҸN-xLaLo[Zӝ5biXBLJ=D493GஓyyGD@܄ fc- 1ǹ)*VWXBYN4O[>ԓ:-UY 3П+~SzVH'ln Ev4,53rsm|Ep\W; <~,ۋR((ۏJ|Ed(C:#䔇ơ\&/Dzl}c~w!ΆHqUq\b`t}eӈYł (+G/E] fq^6v>hZ]^m*ēGl@֐LT0;75xtyՍyNT׮ega?9߹=EI?"VsO m!@ܼ qVkƺb*z27(ܳ[vU }h]ϙ~K kэ'sK>-g,BPF??הʚ^^Zϡk"ͬ,82*Ԗ}|R$MNŊz^f5TX Y:|V$}7)ѵ]NDih}0%\] <~<sq]2!I߷@aɜH`1gWq)k%$LK2-CԬR~[l_{LrʇdITy,1gzc )w%K9{pך Tьa!@'czB2M_,cj`1qu1ak !INˠa1=QSˍFؘ1o! 1еGӞZE2wjR?Rz ,@[jVњdnZemg";s^Z5q`]-cP2d^Hd{ϞDRR f|3Z=>yz|n|+k{`pqhJ)FD 5uƟ *+_E `$Q e õrBpnCwAn7f,ݴa.Z\siPE)<2iH B@W'lf UluOv5+?K0+y ngyC,l]i P!wVuSI@3ˁ$8bvZ#Lw;TXTp3a pjuѽ:eByzS/mŔ%b8OvaV$ CkrU reHF?$a$$xchv!D\#I?1Rӻfvw;$`mݷѧ;ݡ|J؄g.rx_ҢGCJ_/ey9uy/B]2.+ތĤ't+RI5s#)Xt->s9}'D6&kUlUhUb@Xm |*/ (U`bXUڴuX'9z57aq1 t7jNSo޻0|1uǮS#)ySUUQumuQt@4x7`[Unu[w(% "{x ?3#2.V 5@>ϲI3pT9ZU>h-)._K,pV@@U 8 WaQ?EBDwsDszh}SW0sx-ȕ $էt:Za1FYb]TrUtԚ8~V"ov؉.c~BbxERm.L:J}7"W_^~π~5իѴ{ͻ#Ĩ_mc_ o P>N9Fr*#%yy flɼ^ Wϯ////q6#xlgCIXa'5'z 3 =w Z=l$0ȁT1U1t@e gm2D1wgr>F,JbNƤ%z`#"r `$-1l葻iOAkY6zi0 }۬9nju?iʮwh~r ڪ=?mK:jTP!>p4t5YJ^I:|q\\mŸ,'RaoQb ЗRr<jhvWEo\.{Rt͍\ 'O4" {:5ׇ>ͱ8̒t;}.W8xl[oOt(m/wQK/@됩zƘtӓ023i7UT g%RJ%ݽP$ttVH!jDww>M1ЊLLN#;;MN.옖!SjZo Sqyh3$=k#p֪)Kҿ~݌."3HҿJӜx?p$Egx;]1'%Kjk0˺i4OH^ug &7,,΀ c`FUI,L0=r4x84 OL_O05?E8iKTvY~?~9`j'n4Uɰt߱oq`HmͻeBU6jA$vQQ4|yv.׬FPdASY=}oBL'BFW #`x~u&Yz~L9jss\B$hai3MXJN},!'dJ1F:[=<8%lO'jIE\@]جh0kk,19:i%> ace/y?EBJupBTY4!$ g4xFU* Kmg1=$c ⩢V,7dND1h!QJUe LW0J)HPg@RZ백˽yJ(a>JF/Q.b]vU(Զ24kն eKı+U ,7/_MZtKӻ밡RRnz!(/21*3Ҷ7PPs`-OQ7jgܠG\_OϣU6=jsjNwN@6jo.wh> UH.IvkbW"0}a?-q 3q]<.!#&syAJeU1_$.nsӷp[=׽9䛈 bw15;4?۷G6b`LM~y !tp(!<߽U9.^uhحC "|&ʮ2dW3I 8U3 S!EvK-;Ob` skʡC.Iv㞺.Y+ MgHWG<\aVfCD#|*VRvO)/^m nA]h`ւr_B &g*E/ι5Th$ \TI?KqJ {^̻V5-qx_U\qfꖏ{(yV:ѹF{c T}e5A::!5ZIe[$y H* Kt 'A!<*ґifC' !v׫Ӈal#gŲEaGNu.f0NW\ -IF6e4':½CI_\]Vk L\ !I338? MB;L-wןfw:55Y3nRDzMӼSIшN'x{)ėP<>tԻ%e`_;azip gXxq"/ 8~4v~ /CDUB'si怘<Ξ#֗\?_;ESb1p&\'q%Kv?ewxs^0NjyωXOzSL7Ť`; @yGxE=6-~f{LPR8Ƞ*?U&IA/g"9Lg$6#f(m·)CDxMN2*=:"ׅ*k}U)!1.XDucn>KؘE j}ljUS6O@$El5 nW""" HY{>Yh?Wo材nHVbz@t`7CVķH(}$ kkPYKH!wWEA=*tlL?#uXH+\,ySUmr[Xb%bsyDuSu7ivpז( G'|@:U7js0PCgF*ʴpP=(v׵u ̀Iso{j['$}zvuc̻R8l2+1Sv ӻ O }%OD3ӓ=n\c̕W2'C'UUOB Z,,Nz"q,yЫ כu&3.QiѮ BƕƑD8 F޺;AS7'hg`Gm֖@AgIX@Q|Pu ",(HPFfնͣTQpΐZ߻Wm}emi U7,ԍw2rHFlWTW=f"l?ݱξ2$T8RQt;czM8PM;'+Is'$BFklV%oGb~$$%N]khV1C_1=;F<}B;B>$,8dg^$\#A6s޽3Ӂ1CPc2$=@f)0iv?{p!?# b7atޣt\m'15a7pQA_j=Z7$K$Cqtm_$7wR`/)h(S50m5>P@_(D1aq((>d,h jRxrwWBBB%`KMk6g[W:!%lymycDD" JZ%MQ=bOpF߽E~SKT,ٺ̹ )&!aLwF!H"^t/IЄm ؃t=̡bkK_LhWeeecJ̢wh>w/x!t8 ܼ & qh[t`Cs:28cI0amhN6m]?]tA)ח(KU"XGTB4 J℁ta`|Sz>:OYI^cGtZ2jX$O󮫂;',LkW4WDRB)!b|5z$An9%6 (6IS/!Juqט^[Vd;k;7vm۵m}W3lf|3z6a?_pڽOM}jںhi D Qu{<0> hź0~[B +%aClQOк5(Ka-ΑPS3YP uTGEqYey5ZhG olYjs[e+m9A'RWAߏcx|4]m@ja>,@h0h|8HG_b~࡯f)e!~Wn4\ޑf1E FgU(UHsz?F; CpO?Mp~}|Q_qV@ IDcen~xHHatGj&Kv`jkG P˫2.|DZE#8G+9l%\v1|xזƒq4P6+E͛:$qChؕ-߾{7ap@H W'rͻ1}YzLvcLp%<#k]9LwW[R.iQ.dmŪr?4ՔV6:\eW+YT;B.z1=FH4)r,z`@G_~e4b &Fi̞qOٕeg;߬@` gBX_5먙r"ޫl|EQ3~UN?(u:Q*MS )\Ux W[={KbRҠPۏj]xLnVcqyYĻɷ~(\W!Pl *-EiBz>!h]]ngsŬ)e#u3de9DD"fIn+*D<(kgE<v!7Do왟鵎kxXj_ XFHfQJ} 447є.w7 E$4)~zy]QI_@?yj\! !`lM%+c /ZHc6|X/;!M"V/ّ fUHn6rq՗ ~@IRjlf7F8 @Һ]:?˕(,kQTmJu0} bP_?=^f حwq׻x?}oU^.8T;@إ~'M,t|v\@B"dT 6XOfs^fPxLߟZ^;Lߵu:.K`5TpƲ#|.oaIBamtГ̳c!Q䐮 0CL$K}cDAjM1a iLԜQn$%+6zL'?m2݇wH ~pGʪ* SX]w?}';kfs1?cqd::G8νI*0msIf m~Z5LеnVsþ6t g,`za+; Ú>qa Rb`)nX{bcM#ʡ[JV A0K!™w.K5B gJRgړ!rAFt{<)'c󗽳:(.;[p$:^2!jan:B];JX!Ő:1'7pʒ tgH0}ӴK$7k%"! ,:%L9ID\GIzko^xC2R^w ?-2bzcaFv#d t'2RMxwc'wʾ,ojW`z[-4^Qyx-'kMmc'۴Wgo-0lZٓ!( rlLh\]ޡy!_֛2=_ܼFpZӏh3u *X`"j"&$ˎZȧO2ض&OHf|=O6\aaG}b\>-Ԑ`fg, Q{Fpe% 9MuV-':ƄQYa]]1O<#'?9WHİY8BCc֨\5Oo)p`4oÛot&f›M94&`HXX'! )a,̢;Ou0k {o2VӗD0)7*UqfZ>%j?1 Ν6U3|N&(d[`Zp.hJ5 H/n435gH@%fGf+;4]:KG33o>6ʇu s}s,#̧5B[!E;'[a::-W%izYt@SwY~}Hi=I};y,RJҳ剟x幻aY4BIM !W֛ ku`z}?;D{)9$*D`O;azceݏ(s,sL~%N0Gru24$r/;4_w}}Τ]L˰Xp:L<֛ ]wÚCLZ}!\1fC<3z~Zez>BZQn)$–Q,7 ySuN rX!L-셊#Oa(k*kYǜO`6e)uQM'Dy2s9!ao؟5REU٫WE'eW^WTkX|z#R]ߵu}8S*3MR$g E׽/6Dl+1* y8ePEy(+XAH@^sHgKPֶZ[,Εuj?^M7-eD.V_^b'u F`u%)v?ww77[3>(߽ʯ*%5zFxy2h_ O)By4]4n\_o0g\0fe5&uNf 5幯T|*;az_Tɰd]hk(mQZ adn}=:܍ε:1l]ML=8N=vHL;\0y?' v6Zû9Ѽm%Fslc}Lάn|:^(x|v5fye>u d}Y5?,=w8 $171yۤ"{펆CUMsaM :*+Kwm='03K^$"ى5q'ڧJ]1Zߜ$$vVIڟcl׊V8_ vǻY(=T(fMlYXѯ1FQ~ʉPO A`@NCJٙI}~>n,g3aHQ.n<-cIu*slZ}(hֶՍ}qu%t he8m9d2y^'y>&!QXXa$ /8Β^=E>/_foo糙g$,;%0#>oxOm&$s)^x빙cIwŨҺW~FHp 1I_=Aš otVMNÕm"xÇx܂(>Q38KdiܜB'ٶ>lēa&`^9/ȵ}ۋ;O9YUZ(̐ NF ;99Mdz(X$d"ÿ≿2`it#~wE7ggȶ N8cnݏPeՍ)vg3H2ʪn9CB]3MY]/nbk8x޾0Qݬ.]YuEg ^BYx|]QMޭC&gE<(mهeXfS׶GPlڐ ߗn )٘3ͩ_m JI'њKBo6›_K-Z .a \]=IvaݻM,s3Ę޽ &LuZiyLoyЧYXLMTze1餫2}PJaz1^7BL}<_ 'MAӟN}Y,=-i`*LuLuk;4oQʁ ދLP1_2n&LmΩƇ`05 7zZsXd!`yN'3wYzޕ g Hϧ|ױ$[3ps}n>~P·:vR[:z~vGN= +#C$, VO?!- vg߯ T OrI@CVҹ=Lq#){/#ƌSc9;0%LKRƎ @[(TpZSBiX7 ֚w ɥ ?W]!d)@x>$Ν=j^4W*V-~ėRԓNг3چlnZ픍睙B-Lz 2:R %fm֤Z}6)ph*BudAI/$9^paC,Z$5Go8!WTw1Rbfy] %#ͻPT)(ݝ4BZ/vQ0C7TTm̍5YcD.W&h{m#oqx|N9N .ELq6 Ŷl햲qW]@?{l] bk;3!nD$&2`2tVu["Lf1; [p;s$-esp08^۔ժ?GhPElbXps`g,ǟHsrI( ĪTRս{nc)?Mdϝ7yv : qcN,u(-߃ =̅}@Q~kzkO "8g"MY2Mu IzӶ' '4$e>RMŃ gIn\4mqj93$;ħ<I@,I 瘥$ӕK,@f“uS$Wz~99i׽ʢNw}U,Թ0c}Ú^&})ƙFL?nЯgZý.bt oOlQbz9S显Zl!&@,Qѣa/A#z0=ŀI`ޣG6*rޣy1zS?f~s)&zL&:/`8ҏLT)!QR0}JB 3z> Ѱ ;ؔIi NgHz]V7(gg$aY^4tg|dLddǺXcJ+&#b}&6cJ7Y}WVGȜ7QzLU(L9)X{Lw$#6I*'/0 4 b T('i?~?ǀϴU*b1GYhqA I0W>>9o2gӧwaŜI IߒU1}ۺ17)W^FWO/5p܋-#9jU0(5?mVj1|'es=?zL?}x6$O?L OziixָU,nU 3bY|Unۡ'O~Mlh^t*jxcyR>"RLۀǏQٸe͏=$7'yL|LGeIOxǤJQ f9I_l&-4 {z>j3RTm e>$3Q-}A:uv7 sxlَ^[EOޱ2oٴ,Hv^o3~릝/wZl/[%ZI|+VnJҋ2y7OtJj_j(@fPN]I#ǽj3~G$zxEӿ G"Y臻 ?;r^x~z1IJ4zU0SpIzOcD1e tӯ b0f-ʣy1߽.ko]Q\do^0R=JnG)E9I֛&ТG-V?.zcݿ"DV28:DtVK`qO\Y IHB oc'2gy.;+NmMnzw0[x Go,6@qBx| Ǫ,`%H%i5nS|VRjjųˏ .~ ~p9'ϒkytį2BDO)s `3>/6ZHc,*r 4D&"b `'-s/!xr%Ny}uٹsU,n\1kIzzarCTed8+q5gHz*TUvqN{{|[Rѕs7vl̉rJxNҳ/8)I^@UmazՅ~֓ߟZ OOIV[:ʓ MxyJ)_uΆZ)n6r{:yLH]q7 ݏ{1cL1Ix1 _ 3XTB ӫr\ʎrqvoRS-ӯk7H 2LO):1ӞTOv?4UbRcL1ߕ[~ Lf;;+ԉDZ0}L_BlmgR{R៽eҩ|y`]C1NJdEL6]~P0c ,kOJeܧuL- ϏHT@lɟ'P?责2O)ӗ #;+ˋc_X]#35f%޵Ty`yһ7 *k`Ճ\.;7J躐MH^p'=k&n3"2+:JYUl U0&wϧdT\'&饸~m61=b~sh&;cz~^_M0/< n}99X&eLg/b}M K#A|F\7ŹfAlm&/9`tآv!.,>܊sl*{Vݛ%b%y*O!]*ė- d||wؾXϏx"/~YxQqiw>Hx@9{Mޚ@k01GIx[†J_mKJ1GLou9%duH1'N1E{>}g-lԙƘ^N{LHڸ'ǘ~sCsݎ1 Ƙ>CC ?;G=bz!%2L𥉉 }3bٌOU=>A̤cu({_VtܻܧŜQC**t;M{7<)W8rC̎əcprR*8yeݙ?{Mjք4:Tgv0ת,DQZꣴ\NgSq||(*/[N-TV/=xԀU+P圖♶3}D/2JMS$R%K::z|R֥R=*S5Pi@wfSݰ;.!mNÔP3gUе^&{,l$9Jcע{֓V/r2b䰔IzFY_9ICxxhHBݹ Q%E}*آw>'j)[Aү $N_\o9SL7@i{ @0Ȏg>v!B?|wP9H+ױbL>Â)4fg+LH%mWpz#u`_@~P"`I37c]!^U3*2/S@j0OUz͇i1D;{zlWO*\/AR Eɷ= wA008῞p'W)wF3 e8+{T2_VxDR͐s/t>wx'dϺEk<'֗uA3ڨBE"e-{ )Ce!1y~$^F>ac'ow(g5,R-[ԫn+`f b{R]ɵHE,+ ,AFe%F Q-ʠ 1?l?Ekǻׯg~C' U>'{mxcz s6Cv'~LءSM=I=0VMB9aEX9u 61I_r5$SL5639I027A Qb>ֿeg1rͫp樎l\iNPF ۆc`0}w 7j a0~|cL?u/ L_*殉cfcئDdKz>?/}2:P[wfgІ.8|NTsNRrZ-ݭ pf;=LG,&!<o,[4 gO!5'33S,?+pWz=`J_a?mpj"$B'IقJD0OKFC$H -)> ?$^><\o8(a/qyy>;db6>)g\)˲>z9͋-K=/ iKiϣ=:Oo3jIuCH(;]׿=A,/bØXF:1}ƓM`+X㚩ng|DˢWI$}_ Vw<%kZL_Iv@Aw%#{X_]IHtzx%"nbUf$û=˫>&sTAy5 uUY ?$a|?pGx1vp:v8ll`fxZzgLD_|׊"t1IĶ k@ו4#bh~YC0>T{b|QDˌto?Y]cLxo/E-qS-h%LT5^cLa) Ëb}HKٖCt#OjE1wo-@er\ g 13gDDBd;K9:B,EvC.1ᘹ9UMN M!e+)Owq tw62Ut$eC~+=#sƛz@Y^" t(Fߝ:b:/3vW MR1L30;aϞ'ɫnҒ]\R_YǞ֜83v-8Izv&nЂ'n/S_G%I8`Y[$MbWImbsg=Z )Iߜ@{gqx8iNGM8HI逧>a0}ٴH<CT>0}1}\*?~+HmbczUF$=jHz 3Ov1i3fR~;ոu՟jULIv(IŘ~uYhW;`zG+ڶEao:upTW- ~ s 3OQY15`ݭ7biP"z9xyӅ3gN9ldUgG(kq~`sܗ'|L߀ɲ~)u coǤ̾. cX1d18V*[U68p%?!6I{$_>a?o{ntψ`2Yő:#M~8585x|fi mj<' */VQIYՆOPa6K)EBX̗i~BZ4PY xւ_JrBwdYutiԑsnӺ<VsRkp̓\Ru-IDATX.2gӻD Z/nC|zp粋&/rN `iXf9IwsyYZ7tJ\>uTí.Jk}-3V<>{w?'Zpqag0 _!>W1w?wZkZ?af'd*?ՐZzU^]Of59Gu[替dWx-:9?4u44ڰ M6h>M떦0/'{gg:\U 24|??Թw7z-80[$J5efGHYTkĻ3Kw-W&f[ :w߈+[ǘP *Tx͐h _{'r^(DX%;ϳNܲyn[ UE՛+>u+P$ B>ҭψ=]xBau&,dd¸4,LrsX^?y^U\W z[T* GBJH'."ƨR7qo^i_ݫn6r3kQ4]&B$\(=7ua913vJ{mn}f@s$=5zzI ְ\v AL G hLtRYG [^6=0L6#O}q-"C "QY^Jv^Q,O‰z5Am5 OAUe} . $S+f֚n*$}q"',i ZEуQK)`gI"ja쵪ye29́vFU]tSUE=CV͚}kՑ`u"cWkۡme5vZm/eems?> di[o yDDm~\AfXlq H gy ⌕Π0 nh-K2YTo3ȓ<;',Ֆ,#Ed "Z$-^9{ ?-ؖ s{H4nvwn?><~|p]"M=gb2e̫tlRg6;NN;C P""?U|"(^V(sCjUVZ xVCݽTccnf[տ]cf:C}X~ra6Z~͒G %|l5 IOxMYfHN : K]9I͐EmJҫJn/78߿f$COKߐ0%O# /Gø̸a:N]u|p|p "~}0@0mh]buySB@ҿ7qjJSi|O/rT7-pB0X$sWd..&]DVlIk4*zSlƁon9uf_[]\#4]${ޣo=V fVi.yf<8,݌x>CIنOW/ 1!mat9qlOʻOnqI JŅUIH.doSHdsI҄\ {9(f[^(3gfb (/78,vRwuuמpל34q)B֩_M~i]GQVd@#AY?J)4F7xA]WNWӕ֯~mҦeT( %*k!:!::^Tu`ˬI?̰+dv9q7U+U=U7fsQfvFtsY4N<:?o.]S&%2EaJvfZڂV*X*"&x<_?ƠX>n+09b67@@'M15xo^%L} 7mis頋xLa4=H!Q;t )N0s 1 IjDcz6&j o)ק~30(cBX鯮.ۚ1y^"[Լ?p\c}ˡd曍N17c0׫RTɓSmq24'5M?)^.xRtj6?t%Dwʙ7b)Yl޶"Mܘ3L'/y*K eMt+bgN@?F9i  !e^s>I/k&[Dm>/:Bxڭ !K!ˢ*d /Bw,j9}zê|7:37Hk49Gg}*JP#9?CҳTrTY `h;b `c]2wQ~Jw8ߌDll&Q܍{\ IowJWdI0}MAB`@Ӹ_e<}}VQ1:`?6yzLy5gc-.%dޙ8`U0۳LqP=4>KC),?w`)M%T/Ӎ|baS! j`v^Kv`AbHf@d@w$)V$ *`O( ~Z?A \ i|^nl/E e\U!! g_CQ̯:b!yKkscے|"ߏc,_|%e/qҾPI|κ8IBOB!s9JOpzӦ%U/n\uB'vJW۶yJFH&M`uǸ 2ʨeWDtkFA(ʯΝ@ɛ@0," 6Vd[N0X61t"N$Jz4Nz`8n7kMոFayd!j @J"iH+Z P0Nс(TQxk?Za0&eu@H"s85Uٜr.I/;A H/;W7*Ѧ~LFxl:V%ЭL[`WZQ\xZSEu%9jSM}4n7lQoPnGI or<֛V'R}}'H)4?pq(懂wABJux4k7bhg^23BEiDKʞ3O% fL-R1I˦)gݷ@1۵81b&= HZ[X[EN/iEC`\:wܥ13|@~ϑm4kL`d{vL)]KIG;Iۮas`sp&lO`g ;@,bGβ~b[Zo_eUVJKRm'(|3/SSHJLgLSjzGm_R^63lxH@U |;'rٴT`+f~uŌ҉e&F2\޹:ߣ6Is2~h5!$YFw'O? N hAoz&-xăD!Q,5jJ|* ֮I}uλV(#I.jͩǂd $F֓} 3am/0VY]lV7}t;]Θ>C1Io:k`{ FĦ51IٲWoʘ; zzIz=O+":CO{4ߟ[5YjuVIGxz)f5x54>XL\^4F͟ҩSpon /$и=ܯ֤ OP"DI3#GJFy'31r&>r^cMeMeI[)3aZsiֺ%} i%?:ڱlݟ;vmO=u޴}=Ors_bBBϫ()oo^I< %cٚ+"A$H2AK&K0H0F?SW$ f'B<+&n,d4-L|{u׳ߪ{*S*M7iT7e&Ɲ[:dfU*f5@l*,#B`l $(5E'[e>M۬ȗU՟gfuH/  AjڡeӖWbPF$9dO1ի͐:2B_M1}@:y[hawe.T X.x8l.dz7߇e_/?=OCFGhNtJAYZczAˈ/c\^_m.E->Yg>9/" 'IRBы GRaqiygr(ĺڬE\(4iŸrn2b7RVUϘ9Ks x@Rr>$dfq7?0m~ʳ$\U;(NN?=,ubmփ\~ M1nMޔ̬`ߔ/ ޓzo7[8I7_6gqˬ)RѼ&'!1_+g@khL_xuV*]1da: _^L@O]K_ ӿ z;N[3kFP[Mt1nVT7K;&'_f I/0& c 0zûm3D1I{{$P%Eg1RB<<٣$3kP!vmaILW_W_2`zO7MM/i?N}ŕJFe7Pj)>Y rߗ#0>?mZ-`z\hNczqCj] h~-dYԬvǞ48ӣzt5PM8dzS=r5qO s7vd|sIE^a[>$}v, 03"̥#Jq17Z SezXHTEm2djWuM5B1hILH_Z{i9'CjS"J\_/뷗o~=U*ɃaQӫ}-z>Zͥ**"I$I(^Lń?MEo/7RJ((XEA'J%lWW۫o6֌K@HQHQHg$*LeZZ֘%輰QuC`t`b "}q9ek_%??M-!#Oz6 9IoHhja;ǝ i), IOŸΐY p`KvnèVjúĔw{"C(}ؾ x" wWZC!h)w0bq_VٗRc|qԫnzt :!uЬ7+KB "KsM14]$wsJ^,XSIgkM m۴y4u}hR.;!jc6^nN ttݡXy|vwnIdqbcݡZ,|O+r0~XWJ)u5_@mܷTE2$}Ou8gu[@<7ul$ 7PV'ҝڎ%nnY<c؋In+ٴ,!\WJ< Wꇻz]ݯwP8 /`z-hHYAYZޙ'aZ3$j<` uaXJ% ~+ `@ a SPbԟ|]}p; hNyQnsC_O`#'{t^cW_m`EI&RJ;躼:Fv<*uf݇}F c1=]ϖL2Od7apbvzİoO_95q>*Tl̽y mİ̚m&74ZHI[2(YW`~yfhss,ntc_İ*L>^Rn>]n^l+CRsjAN{4ޚtm5b߬ 8N7ի+)`u2 =VrczAf}l/ ָ#i$~|xLu\B)_ `f-|SPL ,_ט1>yd7al̙ "v2w,'`U^L0~49RZk=ai|_"ݧqH"z~Ê焞n;A3E=藍sAlj\R``!UEQOϟqԓ)A6nUA­TVɪDzsc5Кu5>kKKe^#N7־]Ϸd֝MնXw~'-WEZVo6W~ׯOIN;T$ӽ藉IΝYz2יvčfv3 1|c&DTT3_> N '.1 O$,K,tʃ*,!ԂU+V,ռIWo^(UV@ur]4#U7ǿ3CsxPkA^~SZ 9Ky_0\Vq3F[Hoh /y6Sa"l)+p}jкeر Q atme(2Q*.7|UWp}83s2nws \,y"Xg<>n6%gWPDj7EAz9|횽B Qx4c+MjbϢvB՟[P @_a:.7b{y O':"YIw6jp!£ye3إrAx[⹑JD[?E 5KL`1g"_X\ k(Oעg=%=RB)%e\L eث`-[9ɝbs(t!gsJ?S֪!0}Bv= +oHʥ|n^{xx|!#OeV ) nupՁ_KJ,ܳe'=HUIUIu#Ս,u%*G/=k^eN8UΕKb´>̻͎ Ќg9L7)u+ *eUj~S׋hm;^++Oŭuc%Nhn(IXKRNs=AF*)p"xjc%9 hDšS0rIEX;Op-\ny=djI8SLoݩdĻd@3P M^#Y"`މA-uuǛ0}{:aG8[ d,k +u~\`zcfozn>RG[ݨӻ4I8@o~5sr鯾JUhrhl#|$fPĬeui|~a3&/'|lVH'RN2~+K4Q"얝e ]ؘqv:hۮ̢,a6eVKKVO;v )>ww ZP%%PJ&뛾 y4](\-5Zr4j_':it@gq7 fc6i؁b6D'~f )㗬X>K,̸MM}f-T!]N;*m5 b%(ԕ8>tU+UO>VP>m(䥶~4Lq+v3J%l vn 5v=' VͬNiU>xʃ7r|mKms}SBI.4T+'sb9ijص 5V+ tV@۶U:1 H%R"LQ{pvۋgbG*cWk7b ÃK7>3B8..G=P',Ba ajrdkmYO=E;h{p@PeQZkǣPrxҞEKy"bZ?\\B\y4klm+}g"bV,UM&]33$̬_TQ_iv3S87(OSMp}Y( 5|d /< 8L^8hh~&gpdwmԊ z\ۜa:J%Df|k^*rl3U/_!*0fv$ErXR0P蝔$gH1#jIζB>K˾z Ӂ9QqK~WC7|$frC 0@ΒLiyYS*&*-ئ$ȁEs  A yϫt:><|;i:jCR8 =Z{L܂z59bSuɩr֚ޅOF"Wtay9KKώmL\ ;^Q48 S(/o(A,ϽfPuF. =zG@S@az5EY_^h9&*YhE'] Se81(a{>y0DE.%h7 OΰP7Ę`=[Ī#F$='xaz^ \O}GFƿ?D84\EmK')߼߲7÷W_W=4G+>QEx4~UPVK1x =?#_g^B6#B/M{%L$:kRв.KC X6szf{䂼YL>T?f@B2ϓ"?~ZBevM zrbFI4Uf󟝉>?aODrh@a훼ƚ34d_9E׶_@y]p@!M] ڒbRz>4jco'lad -%Ge xZ e͒i"̲ !9@ fۧ?t!vu]1/#ujOj۽*m˦X֜(ʘl㌤ K%:!̡Tyrmp!aӶ䎉Nl+Hznj\̑#Smg/GyސDz|I|ncLMOg#~⽫ ~kMYȰ;P0} ;fJү@itCmLV-'/VkrQTEopmX@{j9FLwCcEwc=y#6.cΙ VU\#ы17Y E W`W)1ioŘ"r0G ar_I;/Dװ_xԗLGU(f3 ŸL4? m01S/ @T7+V5ՙJ\>99PO +J$GO]#v&!>QJ՟̪m csC?"Muڟ`{O;>D @ʀ#w (P aS} ނ$[(X h`@x֍S) aF.H8[`nXo:ogSv/j4?'u>f'ڎsOCj{SÛi)/I#![9;N gך.4;y'n||=^=C{ c>W4fyՍZխWuk>GQ# Uo\CQP>ndQ=W3:a޺{,DFs7w&$=P$3GK$}z53He$*$@%OLk 4HzKo^IzL:a0ܚ \%ޓb*Z "p&ka710hY;f)_* 1jOE*$γ0ڮƙ$rD]qb C1{L<Çۥ 3qŀ PL~`u1(_>!]CR$s0=дy?HX1O+.LIhnv :%i:9l&9yi9ٴK ɮ9.slO|\rLvUK_c!j?g'()z'"oYnqtY@64`̆!q "KoЙ3|-^*_//[oNs#-m~]<_přQ (7Jm.)ʫEaOSg ,ʲ*YU,_Ȍ>3[ֺ>7\(i4zYwb HŐYZuӚٸsyy`p{{WHN'"qp#! J"f y}D `B">ҝsΈ215r?:Op@>%3=34=4(ݏ>ģ6VtΉv3h0MjSu)%Ԅ cqtD2r~?( Nxܸg$dMH]76Cs{wl#yL@VOC-R},HX.ի^?*A,_]3\wշ.o.~$]D]4}{<~ll*QНG9I:S?>95 1J2*/@0kAc<6 V#W3t6) ? ʬ2Lc=Y8PzePu/@sLRXk$;2RCUx}y3}#]{r){+ʄhUOƘrs}JXcz"X{izfx*Yad.9^}1f N_6KR~{= LQOB L2z]OIz^uqdͦ :&NT7nn0)J(yRnJumk8Zj{ I?ΓΈ7c^'wsHsf$能^)IO>շ?/J޲ڈN 'ݮ׶]o @s☤JLӎ)3l_2Iח\3ؒ֋ J'`SŴ&9U72${gco#H9tk(X-v`Xxv^sC>3β0nXpy]<tkK@[oz.Ph8:ۺ{zDȡbջr%*+"vBq|qmcY*pDK|) 0-m/oMquS\\Ku}Y|z=,~y,Ϭ "A4ZRFۜk= %I%Y1NN}Ag>)[kLuRtЪB~އ,I\(ٽE 9BH}jSSARP"9 }@b!zKN';ޭDՙf^OW BrV~U qq!.ļFdʧLiqf 1&(/2NS!&w-4`iIyU|y\Z'}Lcw;yrte&Y $l.jcVSyw<1O}%@,9.BMꦺ[UԺi?m-J_C~'gmmg-,ISQbEBF<"Rڢ0EaJ=^GQ;({Ozⲭ;7 KȁLuꦪ^~syX~&!|]R=*rN7]ж.FTљLu#FL`]D'F@lpFx6a>J:&^JGnN#< Pmc{1BQӌ߿w خӰaE.߿߿xxjˬ›CN @2Cs@n&b-`7VvLʂfv4t2Kwpj=Ƙcw컳.re0P,4v(azp:-Zp|/6fYE/?<$Y+oG ;~_p%ȣ9h?wsXof;4Sz9 `s Z`=z~RdS ,X뽛>2|As$b_oi"qivx&^}mM vBB#S۟[PU,:u˜ڹ/\6,E{I7w]{=|t9zztLRr_oH%qŸc;;6[Oi{KIZ!"zV?rp&ҳy_|?&n{Pإ;YyRt}äp0?O4g z'n4G$fXkTťxotQ'ufJT[3pR4sVm!C1 f˥ "(of*`q{=wzA(8ͭw3&Mf0Tp,)\]q<׭u#j ^@B`3>u8|\GD$D4Q*BR0`z),Ā;_8"0}y;<_^^LX5{4_Kj{}L_ ))S,1ÀjefMݟxzD6]㄀*`b\5qU|@;dd]248Ίl4b$KbIoovRIYHY=K1/U l?g2S,SSwmrF3C69 7Z !Ot&[&V?Cnq<|[@yQyѡz:7PN9gEy3N;OEBJ Os. mOZ}IW4 ky @Y] ‚=~B0 "'rVE՗\!=v7rHl04ʟ!|fwӴuݣMU0' rUa2Z LUV\Ƕ(da5Àp/v7pև{2nή/y4?S.0_?w'3h^m9\7}UZAf5(&ښ 0'xƸk ̘9x< ʊ0pXxUo='z:m5ǗvF0MᚣBIJ۶ P<=KYb(0Nd')?mc zV@]HZ| 'oIl@sD]׵oO54aLJ&&KiR| K.0" "AT8bAY-{jT! 0K pjZ@jIUGT ƅR i^9Uu Y%/$Jv:xB/#JJ<;GbpK+5СP/l2+'y~ODJ@-bD`ܠ*a)jc%kEAָ̾}]]{LG]iSEEӟDgKu iw"Z\".Κ$aYB2B r4Y)#h[N@-k)cպ8|_[CkuI 4OO,ϯL;ar؛ ӗۮۗ}SO٣xLX{{VNם/JhKޔRM} MnbpC8|`^BKUQwN{ĻS M_MQӜQdB1h~vuzd_w);awx81H0tghҥ(0M/AOh9/^zHqPo]>_8La+TAraxzj?198XD _o'WP<x24(YaQ)DBx؞oO'YX$'RYݪxe ڤ%Ӻz۴;6>;'uE'8YZFLW֎2 "ElD :gNHzFJ >CғGXIWzrBdec@:Sn6}+CGWSDt2Uxw{'aڮkΏ:#4-P֙.û#p\BӀ(VP(c._%#&a+$}c|;c^ !51ebL.{;4n#d\0}l0 XZե5 ;AH07PUc|o?-aahuVx2L3hm`L̟Чy&aᣙ_szotKc~r03hlb`#!X4#9k|)f'Ti%ENx4kmDO6aTLt4BzrS_4'CT6 =9 rgf@l?Y\\XW_Jjj-Lags'7g?(N|hMEIR6g@+Eqd .D\h#7<lʲceB/9o/Pto?qiW>c 3^u#e^CIh)K5T7w{/b;1GOgR@mz8*$ju=OAcՍpxjg"##">xI߇$s(,iv'Cx^-MIzl9%!M!Hˢ H}sPJ F#|oq1} |{&LQm7iZLƘ{?1I_n@ ZspI=>IŢQz ! Hw{MwbzU dL",Lq~8霵 /Gh [@NݯA\w{5i O@v"Ӫ, |'86d|7|ot8Ip#xHOϧh lLK$ew =ؑ^#\"s*a4[dzziD'bYy$"2_W's+"A|!k8Zc)ʁc0_墠̄4eT}**=;-~E2U/`>'O)|fzkÅ~8nc+xLO=I" ]'[{^]p)gh #:_q8 ޿[Lwм1/J)5"h8E czlP}G~Hf0Gۋb_̘7Lz8"f>1wBFàΘhDװ$T+an ;RPtŜfzyyEsYiPU;yN?61gW6(P4Jw5Yq>C.]|ivlaRIz uen @}cB{Y)x"buiJ8\>\l=n 3'3bY>}ʯz " ΓkUN&HRC=Tu,9? /F/Uzr_z#yeɅ3{H7Y+?af.ENfUHE6q$czs 80zc,.K !߻2!"Q D2嫉nr.\\'0Ę90*j]~ڶ ޣuu<֗QE {cQ3۱V\Io؜U⿁IJ*V U5xͽ:aZfkϒ,Wfb"`*ZI6$WK+Y% 7%CkVl&9*e>Y @Igur?SM}ʈ`כO$OY 2Eg?h!DFYqQTUJP'7 j)>6/; CHvv 4}<>:Bi /i8Ŀ(< =h$Xb<=iÒ۳g,ABdeUz~Fۋ ׃W;Bæߗ9+_W%W6#bGYKR:G+Kqwcp1SloIz >%魳XCDR^oz>YWJz2|wN}pqip j2 Y>xk-Od b.c,jlݍ9 n]?A*?G? F=Ug~o(_ @18ZHdtz-Oay'`vfr1bnPD2&=Z$ `z;Unڎ9;*l*cn>:`zRT [V^8CSbRLDMm:lt]$naۀO*@SHȢJ2Fg0ƐtkESA&g*LGbXӦ3K.w\Iuid*UE1% Ťx;|2uqw55Og+&]z&65_l@alcFdt׵Z[+ P@l,((_xiHiuXs0wΞ6d+E3/j~#^DHZF+%pFձVuJdeuy JH78,DdϪϬDV8!{\87n,˱6 蓇CFix=<ɟtzL;`h_6TBVq?E[Iuz,~%N溬jԆ'qS4э  r=|'qف?to+ +9^g[Rr(Nz-cSe0L]̦:>xoNj=uƄG2}|=Ovx4>DzHV6cs$;qMuPq6[Em7|d3khO Io&1=րԕ`,{jQx*=@Y]׮lDR_y*Mf{i:/ٟ*/~u j髚~Mֹ[EcAٖպ> nˢuM9C֬>Ū5]?~cZ("xpUhǾ(HFWd$+rt/xgŔ_^sTHzO.!㟈r]@%'Ͻvf[vFK撝TKIz_w"#|٧t7])$tKz/yBdz۔sQ쌍g ΐkV\ [=RBK_ 0s3 3>?1G׼JߤRQQ޶ӯ¹`ki P=;q*;drsW< քIu)ˢκUNT7$AݧrΉ rQ2@NWkIZ76cjY^t.ŀuV5eȘZjrWu<[]cz-L7,Yt=Y |$Fjx!3`{lzo <3y;5ٲJXYY V4^}5huFk]@^HVk,9>+~pj[yTL i#\kL<ȉ(ZkGLbdop|OLZc^@\YE]71}5xJ!3LAtMcGBQ{pt 7h5C?{$EXmgvm@շ1}CiaK]SS4makBGV|22/Kk۲,+٦ GA `}ٷg&4\Vtv*Fyҧ}s$w[,wI}3ЀqU Ű))9(v4T jî`6@0oLL"0/Hdqr˧+8㯈 %Ef@E*d2[0$OeaY<ܽ'x_焳 cHFKϱ5<gLfI/(ڧ"O3$h|ޯ}Y=" ~{|. ~b0=$@PR늂^>0f<&,Wc~nb\oE=_`uKmuL鄷:8폫Hl7t/ˮ}ԧzm;!xy!EA=Vl& ̀{G9e$194 $=쌌'+=s/C'R)JhLϩj1XkF\_Iz 3QBBϟsZe3.{iڶ9u X/RMKJSl3- T`OhĨkf T!EsOLN-.Y4N+(g-0 9Ogȅ@Đ){pϤm5={5Lݬ5A~{iR mg9/,<nXGr¶kǙ 'Aq8ǙrAvY]_hS"t:_vv :?ED6@2'3^!jlɗ #Sf#{bT_ ?# xOſ#b47|/#/thkS]@w{eki׹m3Mආʸ9M6EkZ 1$gP"圖Rdz1RC„5 fNRΉ9M6h@ifsXPT +չ":U<=j>3rNX؋b(Brca?=<m0:;)U_, Z1{ BJu q Lj?O䗥5<\K*eZ$zދآ>_ŗ+o*J̫Mw̴* {z>vÌʴ*.k9ÆMԹg14iVhMQ6 k:)*_OW:tبSj{ As{#iϹtɔQj@凭f2I|6WHeo)ʿJ7b0,*V//gzQ|lOD NH)d<'lM'X2ԉ!$>c4ɹ=O ?}^l{X Dg9}k`XGR̫n셤.+(2(Տ5baWI6S0S,6z%u=(ms9e5Fɻ0_]s?^6eN*bڵͫ':a` 2ѯzp2lA~N8VX ![LTۧY.-O]7Tp,-Y1ӘhN+BiTðgbwT]\fQ FL>~zMRSA9d[.X1Y.p 0ߍt>Z@: M=1p!#?T+2@ŘފEu%"j# u&1%L4I,GLgzTk'cМtӷtJ'_)6^N %[[TУy"X݂\O4cכ~p VJNrA0djJ;$٢I̜+3_lt$jA k'cO%D+Za)?W`'1F3]U*KSV{0cSrYgSA6>a3YA+ڏ/ 3qt d?3l,ƞSw݃/EfʼnG/Tv>W&㞇I^%U>?#9$3k^?Vxק &VS 1jRГ^CLfb˶WVյ$>G_6vD;X9ht2i6$?q.53$)# ڎ ӣa-XZ+hE pl$J)NISD;DHzGYLHJ|$vzuP*~x?>Rډ;(TZg2>;`@Q8gӇyJDv@U?`](QY&~cLo14~y>}rt?b 'JV+4t)4ˑ'eu<'_iOGt۾™-WrX_eY==YP=ǻ_~f}MWW5=4swtیZ{v0DLt`0 )'+]I^Lk/?R[72OI)CCւeOwDZ(%X9 qKfV6s7~n/Ud^~~Oaƿ[ JUCO,>9 U卉z|^)Ruۏ$cA|/LY@Ù>>ICa&/g``HfLHzk #R|\nz%=`ߧCrz=nã0} qa@tfBrH~-oLTk.cCY%L0O>a}駔J "|!ۿȸ璔w&BMJq 0X`iLмNR|DյǑM&]ކ?c<χW\b^IzDC>p>0L.+마_3sO(^7eB }WT?/i1;8^ZCmVb]| G8M Js*p:|aG>Q J$?i1'kٟ=+v쑄hm8+(k>?!(F 37 %KEkx#! WPB[PѳAkjΒdIcRJ;&A )'4Xж _|qsZWHUf_jAx>,]r}s:@<Ǽ}o%V@oGv%WD$}kKlf6Fz擞P+^ ~P=wgf.0Ҿ6u!1[X'DuU_ulB^ «n a9AUK @U@Ϻ)Em_hSik #(|rꆅ,Ρ|B[?4(uiLnKf7& u]ř)$JfO@Gz!Ms*f2l hX$Ɓf$}g]I:'g.Dcb #)^CPIt | 6<8L1D@ٴn"$}{2uе7`t،1N71GlƘ=MЁ[r/^'T)P@Iʞ3"雛)- yB7>Y[Ў#ybڃ$:7zٌ0Qj-uE%rEt6niemFz~1b)ancm 0OҲf*o.J2=s6i6qJ/6zMZf!/fӴ 4 ]c=[/+/g(#FsApUacΓ*(f/jRCt@ײR Wk 傠i/0_`B**`sveka [ @/7{.u5DU=s2+'khN|){dσS+[p cfy ɋ*a~]Uu6>MU79kĂTCgAՍjuH&BRILuc (I3xJ{Q(19I;O9o >u1INjM򓆼&w֝˝CڠE $=-z.GL4I2}G%^rlZ @ {> c6Ǯ^'w!vbRaqo1}(^k=Ip\c_z ^ޣ,dQ:;1n ΊN;}$CGu?*eHCM9z>vFg_7Ϥ5n2(kNo.s|VWppv:pqmSZ(ûvwI/dp^;LO ):ft8rp~fтPVV?BBXffQ?!@_ǵ 2&L g%A])u," HUB~rQ1ge~N:{>J;)5`:sꗻ+C/t CQn{8,Jo9-^; `0w֡mtsnw0hŋ^mBOB@db[fC3TpLJ1=0YO;yxGg${ 2e2}3~ҒOe4, {bء|x:/fےBg'O{sye$ԓAuS<%7>&Vx*kV1'JU7;:L).ΐ{i7oi LZ-,^J/; KvY 3thY2|Jd @t.&$IٞRrW`e<$Kn$$*$77&IYb׃A0jDzDE8CddVTV骹w?yե22ˣLivS!Q  ;M!9RlzPIw?hC~,w5avݫ(fVk^"J?`Vږ3.7fG4/6g+`4=e80//gℌ8y$ !W P7RPq1>}z@UE:^^.[l.kR5Ьa:AsRT#gk~χ2lۚ@FCV0GBr }hR^.g}.8'qюkL~N< Ct4{nw@r=1i>߇,v,o:%Gw0~LG IDATJ1"|}!@ʑ~'eҏ9JX#%v|扱aijTC֬zIpZtCury¢"fuAxk^&M8Ș>JuCuBQ5Ũ;G*U7s $\/Z]Dd]hc7(CcQ*,N 3L?碗xpŢh-=+Tq˜׫KJ4~ɞ+HlfI@ KU=Z>gLӬXԏ^j<rԲstIo?#I JHG4M}J踟F!{BuQˣȖ9U)]|O?EeYq'z>`}N-#3(nBfZne9ӈatDi&E !R^쪽U7m5ץrqՊ1}qƛ@!5X_\uqXԛ-'<^\NL(0;/JbeX6r]e|0p?4 ʧ&<Iϭ{zNmPfBf+}~$_^Z?w0AԄЇNJH>oBpP2ד%5b"9Hҿ-GrL-VMsLwŦä X__@N17/^ucs0vy鏝޴(C`r)1Oy+(^+p闼V9{Fϗg$+ !8 ԅ8~B?"m-W.LrS2M$յ}UL85Mr:Q1ܲ\8uH NN ,[( {Fȗ꤬~ ;qgU*/A!k>?Ius u[4.\fVb8&^Y+rF|LN\K/ᚤW\Ex$?QHJ>Tԛ%kL f%>DNHzE3aXm֭_)?rIz7h@s %S`j(iF\f coL9 ?SHQ ?SɊ@'2LC.La cӵ_^]cV ʷ/>T<AW u5x3>==Pce=۪ . 3*Y~bB8&-Wy {t_=pyx4iuio3 #љ ҊIjU'L/?S0|7:>'F q႕' ;6`f5veX4uy%I.ߠ\46vU7AZ^0rǟ5R!Ɉ;>$eRdw$ L"lϋ$Z3>Eh ؅]1cx6*}}yIo#WU8 -g8,_!`IIY+[F+* 7 w 5%T=zg.J2Lh{/.9kpUv [`Y0_8~[W}w `sLvIx7az!ӻYSݲv2+/ gOtU mϰz>`QZP +z]Gq݃;`z^լECg;Zoަ],,0F:se'k0zbҳԴo!꤮‚Jj*dCzd7uL9,k{ub=@wڦk(H[t7kw0pt0x1DI}Xm$>K%h[_Y 3j5τ>r3FxbFj4}^AhLipD$6P!.1~b|4qAjɊ^RF{|{vLVB@!LE;,i5nYZ!u<96H QL4Gld֍ss*$n EC eb;M;I$}C\tb8,r]xV2OL$}O:wI":$$J'<$_i/y.$=}qjNr?cj %9Z@2$UWȜLMcr~l\c&g q/+Hz%f#Z=UM ۶W~趗is)$ΝczA:}nȵ'p:bzF0ɠ&w?gvsLN>|7XRZcW1RM֤&P=5sz~<ߕ^۹:څ:\{&-_.U۱ΤK=ӕsgUW;1D#8Jz]PGv8e2Uߖ0(P% v, z<P Si{Ue}{اCW_t6B @u{pŋ>zj@F&ZiUFo wiA3ȌGG2}n1]Ӟ3yҖ~ rKҗy%)}K"!zIj8~|̶&ЩzCcXKBD3f&/5!D8^2 A0C4afYx]E"ZI:q4$\{ "b)҉\x//p6V@/%I @5b10B̕a$CJVm#I880G`'L[f^?S-Yԥ,vaA 1}DUO{wwc eTSq'PLC/.Y4%En'T񵑾 ~)?.UeJL0Ad7sb@~F*2 w]Uz|oZZgBy-1YW!::1xVg]p,V;:`{SH+]){f2tT_$M{m^\W+SނA2E$weiFdJ^WKw@2Bheg6 w aJј/FrwI~(k21E! {X$"%@n=n jܣG~grQLE1 Ze W!e1OTO.#W\o85J.(}up^{VY%rq"9cW: )nTuޅY)k$ Q0fSґ .m bՍ2 . ©sif֘`)F5VdUcyʁƛϴӽBf$ɔK<Γbɩ 5I >yDb{ܟG2U<CթuA$(ljT)vXLLJ_3^(CI_^8\[#In>ӏ4p @f(QZHK$@'1[em 79Md?/?D1=Kn0sGu;a?n豟ȱ"oUut!k`$? h P;__[*]R"]\&C1>v܇#'Il>ȍRL߿+Ίwޮlj$3F#PFKzbê@ӺպkڂqhKV qq8O|[eFi*Ë4'isq/uhVTx}w?vCw._BgrsFӼ߻}kpk{;<=pnLBBQ3R\^~WLslI" !ǂ  b9 E50cIat @Vр1+-J* XnRؐjnT#S9aܩ>4~VI4}R<Ki5S'!dW9!|)fF4DkX ?KGG4\ܦ,S >pcUqB[1Җ80^q,=c' >\nA׶ {^__/t(::{pB<O~ǴoZz=fג'4i@(e|EϗQ%2 szwYyY5HoN t;/ @mvY/8hB"x;=])BE?z. .[2nTRARc 9)SԗT OtI7i4x=J6\2ӕ/eY=@h"s},<R=]*ʩyFgeh0˕b'!̳e/+ dKlVݰO;!X)MViQu㜳jF)@H(IƇ vט,yQac$'+Y ՉySԛ\ Q:W׿)B+GՋKCZn"O$4 {@^?M @HkafEIP2 #|?h0Ǒ?zɞ9O}51J.wy#owNtaӿzU7SBA,=K{ hW4υ#3 G"!gc>VG}Om{UM ^+pZmMUƺ,{:*-)| E4upO!9e'rȁFR!x~:C)HӒ 4U7u*8Gy߼ԉr3M`LliW3JӀSr˘>6.}35ʅU7ًE M |nT7d#6}E$Z6 xrBha\8q.Js(,cEМ1 ũi/ x7DPL CdZx9 =>j~FLEHoI͔^]"y(5 3T4MfחVf3b1Z4F3c ӳ"FL 0 FLӳS}FLh^A41=RrR C7/bA =!ϑ__}wsqa<Ǩyfnǩ & إ{Nώuf*8e_[T`8# #یїoR[uVףֻVI_-I*HC{DϏcwf?ΪذJzLr,˃a,Nwn.a#)8`Y^-nyCfV I6*,>bTtGTb-e(ߛv{vOw> cSx/.X4+(X!'(!/*9:Lۺ$V BJb'C^jsMHP`G)ڰYA58늢qn0X,klMppB褬1+tv5֧Hz)LST$=+ŞfvD=ف}.ϓp7I/OTgIrˑWO>E?aق]ͪwZߍSyϻb 3I1GLݬŎ!ӏ$=ueLj u=39ÖdM`H*+Ge2/P-m `?l$}M&h͍: 1}\/ZV&d? SlDkM7bwTDe?I|\ib0ށdz{ܳFx4eTx;N=|Q'ZC 4fVlT\!z|> R&[zӖ_SBB6uؚ1w6ʮ\-DPe[**f.MϪTiIF^jSr%|Ug)?<{)i:`^9$1'Z)RDxXNi@!d I61c1g-\b3%M*Ɇ(kT7JCL8RNF b5͚1<*Mwy-Myb/ARI߻ȆP'>,n{X96$ugOν*HҋN&镐aLPSτ7$D,ɰdEˡP> $p [J u}p g07E#lI*̖h[Psg2; oHxT@ `,g 3&'FzD/޷l?Py(UM0˸XAn_&GaatUF#D ,MJˮlꅟ,K} OhS.z*_B@iG< .OS@"Y~;UaOJ]HR Trޙ߼D4*NI'RԆΙTFj!p6ǩ$Zt).{RMUѨr(D>xxv@|w@tRe)Q`VJz4L';t\[7PK; Gן2ؤ8g2?J縷~|*1FJrNBr  {)1tX.9yljZ; mAFlqr~L {N3ѐ K,.Ń.!9|F+9zѫi EdNwlQfWҼIgﮪOjJm+Ǿty~ܕ$=2|,_hU lLO5aOSEx^xg;.$dj~:LS,W *>6o]oF'6" v릜!Bz3YJOE:oɭ{BL "&LWܱ D tW39/)rܽ(oeVƕoflIbT"EwVGk#XuY*q @2>N+ Z;js3kew"czh^}}j×Hie?خ[sVy& o6J.lWL9a %iSR0[F)f9X%dܼfV_qڱZV"UJ6Gh򛕾x8&R./OJΝnjRd)uYq$bu|~g+K);SeX>UZCɘcNy F)9OӜ+\+hWbʪBͮſWЩS~/~HdVjBoQ1twL $Gb[eoSK&eUk tw9]¼R1)jiR:HHTa]{z~pT-4K#( Ka2RQQ3}2=.iip.6}cQu|S1W87 R17N~ Zi"T7 h|ƌ_f8?8C؄ԜK)Uŧ%ƨ!=rTYN-2I/Q%I%9O d3(;np:IW&WL-V+),4 47'$}w55˜6)2iG^ $I>Zx_۠[0Izx' ! r,rkz ӫZCѮtj5/$L̺e)O9xݬu(5b im#/JȬdZ*rfFK: fFӭ/Nbm08)MϚBҜ;#.зǬߑO)s'鯮7#J$oft1T`*HEGNpq.Y5c WYϗH"b_o޾ BȎޓK1=)&yd둤~$MLvpry}1JET1=/qʷnHG4_.ӇYs`ZpS1RUr譥pE5 KH2迺^PciUz(o0=?mR( [8<)[̒ "q"Opr61j<ޗMk|k %'yJRκZx^jU/E=&gkQ v|.sz-dQ  碌MTf_B=9B0#f_]jlϘ"_=>X%zKX|6!rQ]`;Ȩ45c1G̫~ !Ymt(V]ƗJEͪ][,ȴ]X%뜙,9IFg~J$} V)sj'J(S@jʳJ"4.xJ*H HAn/u4'I.*Xa X)MݘЪ<# @)L pkPoE"uAҏZ>`"bioq$ŋ0Iz.7ӏaVa~}~-=*ۋsL/ FQqrI0F,čp{mu-o}u3LKͦ0rx0g:>k#Id%'fUhWFEʳcxmQ;"/yn:ᵼj, Pxia+os`D~YT t*A9`p{x|`nsA̺%gĎQSn_d( ɹKOv$;x:;Y*9ExT2h5zRithVAjsM2ʹsK<@RA'3bm$G.]ŢvNCPR2=&baXv.v~/;)]7bzwA?d6v773I|uz_ly,7bzFu[]o71j{Lm>ų=4!i̬w^er\+R^OґT.RTy 'y~VN*gswmy>ŞK{j>L3*'zKwk-Y!]I(*.$G o,f(&HJ ^/*ML(q~F2x[*|Tww:C/nPZv5^]3!;5 hE &$AǦUЬ /VlMcE\抳N#p7\ N蚦 T/pAS)yOLuDcZjQpq0 wMsy|Z%!eZ/{R-p`=<>S|2q!3J!@ij^٫0I#<1]V?o׫5օjx|Bu }׶˩#>AFoYګi޺j^2/$)[?G)=3핽OՄ(0.In}Cb'^,=UݘݱcފcL/'>;C$A`%d$__pOb[fYM1 o/bߕSLov{SXLҏo-Z9IߟRO^dAP 3Z~zŬfTee" g>* JL|˘~)JF$kczߨN;|Z*7B3Ge81 mDz+hY rnD9RU qsms 0#-Hj!h:>ɭ6K@)!3'D:ZGN0bFG|FYL:? 8yNa"'jj/n 0ǚb_丿s켗/_~WY_ M[YU4ÇϔXl7o>碈=QCHUCd!Ji /$β2)X@!WeBʈ+ JKF ,U2(P8 f] ep_ԙ6 Nu]ӴUSV>MMNgM]QuJ梷Šh~9W$/[[fBDūH3eh/'T,$5˥^r$ !sݸd~"Ă;Et(I㰧H gYO3ppiOSaӮ$w~s"aь;殩}Oml_/=-%3lzr~Х7fۮjH#im t_|lnH!G=c% N2f:zYMc41r=$\鷿Qzczy;ӏ>|$<3w+F4__uJ~0*UЙ;!F/Ŝ~ ~Xp;kr8k7WEyдZ )Q)B]*ۄRgK쪽ʴFJoϢ<eRѭn[]kQ*,a DW: Oo-}Iq=:L`{MgNvx4pO2:8SL}yLz!+vPqzb| +J`v~, |vA;B# FJm16[:) I\ 6֧*1V~wZ~欺0Ӷl7w,` [Ӡ\c-nߞ^ϋT| yJ=I %IzQQYKT nKJ D@1Qp^m&w6y3СAFңkR_ҚWA槤y/&vLeRFL$s!I$JJ#I]u5 _ܣഀ6z,rkK?f&~s# bNLx@yT#,*41Nc @w#IzdޅJ .?SaիhsQH[[_M `S3z2vx b2bz =?y nl^x4jŌ稖/.W=~.m4 "_0lI%0̕OetTkN,v|'ش[! (%bD0.\h *ھ#Eiji4q̦mW3+Z_ņ[Xҗ֧,#mb+;?;.bAtxo.AXN:ʿ9@qj Jk"oJ6&uL{tg֚WuާT=;_3AJrmiJ} ^ $ֻCk[kA ϸBJ_Vҝ0!b&Z7f9wU7FKghM[Iƴl6Hua}:nRU;){&%ZS0IOs=n1k홣bĒ,smNKxe&H咪j;G;Ɯw62aðBz]I$-czBիpXh8wL4J< EoLGr$Mo󅘤1/fĸ206˚&ԕL THe 9B'cz#K;կNi&Wc L:9 \@8M+ƱLM7\6~~6=_º"kuYUیH s F XJ&Q-*f?Yo3Fw;ܾ eY(_U;i>H98j$$lYES qŘ!7{~G׎=m y&d}Sf ҹyKJi%l(`ý||I/͏+Mŧ҂b5)?GJ&dOT ;C3iH)dim'uL )@'T4 QlhkSưT 9au5U7JRE4<>rM@PeC=3L$jd* SM0q. }5IQM5IV H OJ?oo%jee k-n~`GLpwrɪ?D`Eh@IK Dk9YfIc8 ӻЧ&|&L/L{q髑2+`\0?Uh/WqYկPA1I/WʦZɕܿ18 EKL@32 UUL#덉 N ܹob{][ԍѡ̂LErY4oʏq"Iob^ y EvIdb:\",v"#˙Iz.75 EpG2҄KPaFsg^koIkz, 9rL޴LKc#$=i-`z]߯йf- ~7rL?gK$]靘U>[^~sPbz8m]0F2I1F+L\J0ZW0iFPGRI"X_ o$ONR_^‹ NW'񑜖r0t@*J~)茛ĉZp[PAB$r[,:w_oT'9:OSr}?o9W >UA*AN _x '1I)C,.J>G76p!$9GZܯ_*Ҷ۾_m_>?,nŪmHƙYPY\Ƣ6npѨW?3al\f,i\/J gBKIńV !Z$Sɝ}7NR7QLdߌ`$LrtCGJ`F_ެ[i s#,}W˘~<12d!ӏ$/~%2р<_11嵸W,{[$y{3;#/Sl)kϞ왕P*at6 X;vwv*™}<3u>pnob!,i^|U` )Ł'[JRJ RrV+xO\1!_B(b͗u׵XPzM>3U|<׽٢;]#xx@6[,XLb;B}$=s|#W$2Սe[4m" O&Bf5P=Uqإ"0701}4/m+Gu1 b173N׳_L"E$2\+T4#-NN̔2eT?P-QOʐC3`h0#_X߇tKD7z_9=f$m?cqNÀ?2L{Wm۰U4O:Q x*]&cgӧįc8ϳoӶ_"fRcLߞp2{]i{&݇뙤?:Mx]nPߣ.[0}3)c(eح28T_p2?tΚp d bitU)A|#eevUw1%L[4J_~QH,R^..~T#jT Ҿ\(aM5m`^V(Y?iNV+}5Jܾ9ǵx {Rbh*uyx|){*V*2okocGDoZ}Ø>6gvqȌO. Y[ΰ{AXUxjCeؗXT3IZ|r.* ]biPIbIvJ` 2|Z2i$cǘx왤o XȲo3'򎦦zǺFL? e4|~{FK;tHPJ׿񯹈4bIc|}SW%=cu~api|.={ndg - ~?hL%Rsbo*?(턐!qy$\H=@|QgJOܜDT.-jQQj4DD,_$ @QݬapPsΣ6UqI巕Oc `9oϪc*k%(0m@J,OP_'S;,D; @䑫iw|t}@I g;m>}.4"~k U-ΣYA\Eix| =.nڻX?Xט YmZƢ+`8vpDb[J ܩ,n޳*b-nnlf%)WTE+4r:ZDг82&f&F ev%IDq$>&es$[Y't$|R@~ UdzK6e q+:9L$=3Ig{>+߬ō?/d33*/;$LV7Ae"';{7;s2U {${10M*:ÉI+Qk?]f$ӏh]oC:rL"qIs^#VfS_'x9?|K TU󋍜"=?n&Dkn.n_;x .P}ho56Ӎ'+-Vs!E>UN M,"Ic{8|'H9Ud Ԁe c:}pmد6)|JZUZmxpp +BHcHB||TmeK -ជ& h4P0`Gy3%1vs՗h qnJQs8WjuD]\.~J~.(9x*zHykB0YΚF! wg֠OZbՍ$Ԛi.ZyGJ?ݼ:.4aFó·~z:̩zRY΋U7Ξ ź I^eEyI5 I,n&,wP hA 9' M<,E=nE311FW[ <* +`F/{pWu༉Kp&!oki\Iz[)(I{B2G~E^_id8~5EuNӒ塙t/9iB$g9bRu?RO~BZ\½.^ sAtZ fS?ηM[FD7Ug;)+LqvIh1E; 4ﰊ`z!p>60/+yiCYq%Әq+ǐ0[5/'LsA1v 3#h_5 ߋoj?|(Y|hMx[A&Çw{~eJ ".-Jɒc3.E?w=ݚ{Dtd/%8i!J"4JkxyЬ_vN+ls_.()T 6Y'O]\ Di0tL1ؿE@fEK | &Wݰ~&1!z?r0܈|<檛ժjm= :7Iz,LPx)M(ƅ!d I@;ঈBX.$Ixs B.ax./m+<ˊu-Бw2C"I/q<o=FF/hlhc5?eBS/^^J= !Iiz7JB$RRWLm:ۡkp__ xIR5,N<hv VocoP>Q|F^'.n8YUJG{HtX 9pi}~ʬ(&*q)OiCoij=nRQu2`sϰ.QnbtRuÅ\c,a`AAswFehy”J ?{^7ɯ'9ׁ |z2ByRX#0`"郰8٣Jm ^sB6vk>䖃ꁡ")2g䥯H?O;L#cĹb"xU$;8czӼEXXoDeWP{=#'A\GC:Jx~$0}#czFy$=yc)✒NpCڶsR C;v9ه UWOd\Ϫ&ҦqK3=+#Ky;v٘~v1-%?@,/E$Vy@I4~.mTp87H%M_t:w+<{>Hi1.{$疣窛˛S?6XksՍu|LS" G<%[}5+&gz >Gb|mg 3AkG13xR-ޠ&j $=WJI(_ Y58=aL6OAEa?OӸmRAҿ1 k,Z#Iu$&8 ol?6#Ns9iZLK\p1甡i)(iy'iT9% FXn,Px[^::nG5bz~iꬪ:|ºN;g=L  lJ[f  /N^}W@E U"r6|m9:wXKOi7x(4tiSu& %zKN)b 5g7}/lLeJ\/K5JiOҟIsJ0G𽜕gb(-h4YGd9sN>v+Xh̗YE`̦D]nj'~P"5,ޙA7W2zk!m[! ٢`%Xuߋ{IROR\l^8Uœi_"n\ijmoe?ܡB#Io(҇*:J4HܸmN# GLzXNW6J\ s $E2}u'~oaxxhD+Lp.~Ь GmbͺgL?2G|$o95[rk'܄*_Hxl=ӽxAA{͘%Kc'I7.UD>0OI$r7oPG 1a|rL?Yu*ij+u5 Yϑ>W 6MU8ey&!~Ugz^͕|;#_f=k+ac{!O$=޷036 iDN2Iz~&9$V]>g| c_0}?R^Bx#牧n{E =ۤnҔ wI1r\>ﳇDo~yjEz~qim3JئOVK('Il t O\9/՚0&HAà0WǫB#G==3K ZGwvuW4L&T4}L^m&-ZUѠZ-˷V!&x/n*~@iJntr^) # \~sS)NX˦Tq P_ /&2y( m4bS VTcyhq\.932߼hc?j,IC?!=Rpbx=UL = 9{uq8>S7 rgŞKz|ȹf/,&Gxv_*$B0VW9$=P*G]CjFC%RSHs( ^.M/q5QO[CJʲP'm8Pdl5;Z!rOL;J+~Q@G ̑!vh#Iz' HԷ1}xQx V3nީp0MCN$VK#S(;n%ʾDU0Ĝ.U<ņ8>U߫h#c||=#_ȥgYvAtINhdY:UJ'Yhw.;0lЖM RS53{J#7HݰDrYs&A;,OA!Ra]I8 ^ +9k@geCZ'g] ´Y:037B9IKCNk%1{VIGF1[H8W.%O(I~|(M_ |FX(i\F$g<gNO'>yHOmw(2/|}0׿5w S-[dkyT'GꫲO"076hW@Zp QunA0qP8NjD8[_$IQ%?U dzIv+mt0`'`I4i1S2;&c $Zk)1{zdpRI T7;! R_WCZ蜂0R iml x[޽يRY~VZB֒1_t2@?p @+U1UٸZJ"!<ppB{)}f4}Vٮ|xغ`0ЉT> j<ٔ2P81npهydN,HWlAӍw5IT+5yw ,Sk^Z1;u@ $xj.ZY: #鯷Ӄx.7+d)L1~H['_xn4I7FczEI0"7DL??01H?=-3LoGmM?k˭t ӯy9?_/<^B}W0W2-'TzyN!+w]`?.1,g*{kIqfLK786QNڕ^GH7OƵҹ2&յ ;.Z u3]L4SȂ?|ǿw>'oΊEng,_w41]aHf 3u@b[پ(6g4_^^r׷`zЩpu6Ӈay#$t.#Ikcyu#t7/$*< Ukg7]ML|} m$;' {Io3`8NϷlۑJTy޺|#n%|r?jRɩ;$/>!w{WRLSm_4H[@Jڧ*V}i؀Ea @IKj?-g8z_LĪϋ?M٠`w c8 aX׿s 4yVhOud0-XkT7ZSw?PE28~:-xL"mc EI%˸}r%sՍsqu+ o=Rju5Xnw,Vk&QoEcA(UbԚ'Hz3QI#1HOlVUN$3t_$`iZobx~)ӿ1ͶQH#@۟\EaZ!LcL*s&?J z $>[Mwͤx%#5lnUPkՠV~\ Ru>%N.Z\"!ԟsL_9HIQSɿ+09BzZF^|EJrʱ)` +搝܂+\q肞_ %cm`t mlr~z`vYu<#KIDB(n ҝmhy6jFUރ4_\DЏϒkWxIJޔ*ʎ-m.K,*s)L/vRcV").V&i=9i؁yfEHКOׇWG~Z/w`ٲ$뵋3oؑVR )jYS)@msӂ#w;ghy#@vn^@\Yx@/}wKH]?j! zu]c`-{Ԝ[JA%Bg'd&@  jXGɘ,1 RX5_&[aHҧwI3 3ɝYT/*5I^*H;$6pzѷxT$1q['qYz1c=v $~'9tbB( Ű21H5r`EΥ;GYV2H4`#W36chry /mH1Z1W29V؞ng4K481Eka aQ)2>[i[rQꊵb|P- a3=/Kz=~٬k͓|;:A,B֣X_)! |=Pe"*`:Ŏ K}YX6#'h˫/فpM[:}v>8[1 ˪ AI)%B( P$tj,J?Ƙ$4JNጯQqwm[;YoR$4n(84~HK^Ou } ^ G5Un$==ō6Ț/IN$0xH/$*Ѯf/u@kdo84k5=R9I?-qRD ȅfIzwtw{B6Gwwi@ ҭ; 81'ROKO2gΒԾ >OWh}§.:d MpG͗gaU2E4m?Hd3ÄNX& iyz%A2L?W qW -F+Zzǐ* -qk30V 8]x,@+5g:rqo(l9BU)%IAN< 48j qKpo+ݬ+d o[V.U:8 W|4*xTgmI4/sEt)xU9C<=g:4NvuxߙfrZk&: ^-=3ذTPPB>7DZhpd31\wyaQʵ\9kz+rI~8ͺv,㸷/nf\휤/B#R@R@Ax!VEJu3؎K@"1FՍ@Z^ >\9\)tX$i=3RHғ/$=1]yCMKxLW΁! _~IoZ$n)"촐օ 7!' | Jwtf'$c\'L_WRڕӇC<|M1HAV~ٽQLNKLRqQ y-/&m5L3ׂ 쏉<^2 <pmtn/ J&x2Sƪ]PZ6ϲh)P9m^Bj6'JfU`;LK}YB_.T Tk .L߾&3 )RQiP7)PmL*:hj=9Fm`ԮY@(=`!HYK pa0zݾ1B G`٥pH2ϺJ9/#<_D RHaͬFbƴ|lMZ+')sS*B^s%)sWV^9)P8U7ж[2 VMw‡(Wݜ/V=A!$1Z>+z%{$0z \# Nawd;#$,QxkɷHNS'S9X?ҳHZA9Io^. MePI/ڀ hfL_]wVoctd#kc#$wJL~$̜1>,1hExM:DA4гN+$6aD3c۔ÐzɈE@?驞-FCҜ z$'LoZS/&\EL#sdN")S9(H=BLpi鳨J_^Kf͛ѫB@n| ߽=zZѿ甈l"2=WTQ" 2?1)% ە:#M;o2=PMybB͵փ' pEbJk(39ǛE>De"oï{`z B\8mUta^cÔɚۋCpH\\k;ZHæVZ+ gJ ȃz@PDGJU26% V}u-53'A>[MJkcT㪽z}{bT0iкqnhښ҄ٔװ^_^2fwoq"jYX9MPMg@FG2j&*闄F2$²3YꩣIzNtxZ-3Q[x*L?ƻGp*O<u%okÇ""/+bpH4n>mE7G\=?.g~m+dF^5]Mbz*Zu7::FLX=H'9S=k])Z*ˀt0*3S(ϺgC!h.Au*kEEq:# n4\oD"t+- #-~b亡BQYwǜ%ez*pߦ^Q#PzvJiqx M[?-( +E]rD5E]l/hZ? DU)BQfZv% OS?*o/ T7콸ŵ8dg< dL>/~Uяa-p]'+I vՖU7ωwwGL#s&"t]%ՍsGq4ݪ=wi㙟2QxsK)YpY]KxC%HdS `ԣpnW_ a*xLcVq$}ŸX5P*7 ѶЬit1=sB%Tw&Kd8ǒrt@9׳&>YIE}! 1R(x6j# 9Ig;Ow(gya, !݉5{mmH䤓}69.Ib*žܐ=Dɯ~ BgZ=p*/Ϥc<`%#R^U@"X'l<2*IZ0h_wlyo~wυJ*uB-zJs 3V7 ps / H-f"JXY!w"V{`Pr]fn#tV '{=搴:^Hàd˽bE)U7DGOr+ͺ݀ -X^)};* 5U7-m.EfR(m\:g8*T7'SJuZ(y~f0]ڵl ia$yW`Fo$Yȑ$=D97<ܕZMs2phuu zRI߿In. S_T y!BC2wNc/Z9e.O5]) 1=CqcziSӪ!h";Kqt'!>vY# k] 4q饠p ׍YIʕ4a#*g8aQ)C!a%iJ+v6+6dW_Dm8^67viJȚIDATk_j:Cyg7D. ABxk`dog]zҳ9c+b=ЯKoUJB9m(&.xKN^+CQq,%iz1*M [W[(UXFa|3t!P~ݫgj[) dH5B@5- |Og!gǐRH` R.!vlt*!/Xu~_sW6Nm.:}Z-fîm.p4z]cV}ߵΘUd]RO (ům&Η{ZhP4pDO{@M6MӔqf̆~)O}5F`Vvs!RC<ӂkn&^*N| H2g#TJSIǣi+ RSM+\W\>viրk'ͣi\P{/O&8 @C#; w.B&P!^Y+FXkZY xgZ+ۛzbR!8 fGBWKpG&:lqT\_"+!u$u7zRЧnba: / 1gBϝjr1OYu eHnD}6Yus<ޯtx1\,_0[{$-IцYƢwVD4Tޯ|9V &Yҷ&Uk^ OmAD }r^{U_&7礀fX@9I\v +?l@0ѳrid$}X9`} +TNu^1KıS–cg|MFL{v,\DGێ31u qhd=?)?},e`}Izm2X̩QR}ILňn9YT@߉6~OD8#oV q#)zTܚ4bz.N~8Nf-݁)9x#?:~kw7_Z `|v97`iA^$$G}{+N;! AR `  n͞!!^F (MAzs'JbCY \*XNz1 I sM!I;,n$Z!XVO0ChOV VRs>_&PrGOqQ61xnۯ m0be:dwGo(.H^i?0 vV)[wn0l67W7!/T&R;`4FV+x(R4 C<Kn!C/YF*ʓa wjDv~ψ$?,[7IyN2q^v?)ї{av0qαQz + =yg mMN0 81+2W뻱Rub{C@I\uCn2iWC_ߵ\u!dN#.,C먺Ͱ*Ȣ2-!W`r˜2ITt=#D^G?鋈'Sªp$&CX44:~W~}Rvw1<~|?AL} YO:bzjO$ `'FFJ O't^%MX GL_OԘ" fzF=y8'L?s@absL݆FL#6Q/fPo9׋}:X"齘Ɓ ǖpP@(|g GEZḺr:gӀRo GeJeSz%p$eOGO.eZ=Ҝ`i8:<|xdZUMiBo^_戀V vnlKNJξS}WR~^ ZC!'c׮-6YSCV ̐'g36Uabhڣsci:eLĮZϝ0;:{Z!d+g9v9"t+Jl;saAM]\V5O\w~p\EI\!ๆVI3 $=7 i0ͳHnT-;4RrQuCZ+efnۋ~\I2`^J̸SudT0T?E^3]%2FHz"Q,e&xęŲI6jc;3I?B}29"1v 8*IzPt0 I︎$2L%"<5jk]ה~`$~zh12Q#W ǣRЬpw˅_[=昞Crើ+Q+^&8&c˜zkJ?cz#W6}rΧtr(?]$.=lNZ)sqY%dG_4K?]?ez>oۜNԚAj-)]v$z!K"碾?hǭqb/R$kmz|T sSvӉ¹vy<]qVQ@?5Gc~N yӬ^m/Y T;T3~^Ż]['OBYP:x8гU#AɽѶr 7Ν+*tuI^ n# "tcȓ29{RP}p>>>#3!d%pfl:qLbux߿~e~HjywYX]if(ZM|[i^KXfx4 3kɮ*HzALfH(ߔp"UNgqER < T|atPQ$>vĘhmCF4 q.ʔv*L/z"R5'3biDҟyэY >2f)9`eBJ]#I?G#I?et\o c`s^XAq,Z=bzÉz@3I6]f\0F[;az.P|_t΃Jqm>z;vzeu Lu@FuEj̷M{¶R'j6R7d2 )֦i 5,m2Fzgn8/6oTjWFcaYP5ޞY]\Si'Jz|\=>\^ok0 ZgT(u tNsvZ!u$}xr(3^Yu-Vt֯"_θ͏XY4|/igso<@Ԏv IԎX.81$ސŅaL?qF!r:T+8qvcG^n<ڳ20&$}rꑤ/;I}*g^Oh)a|Ǽnn0c^5!^xj Hҏh>G?kp14:0Z<79hQ#g~ݬI^ZӓdA2M~ FLWjYDe2> ~FSiPl͜p!fSxX$IEs^ s J$=Bp]s$Dž}Nɟ~2q&0riք$='N}SB%2*9=\[#!|+d 1T5a06Eӏh~KۤV2->juٚcu\YQ-i}#܃6n>38LGV*Hx"SoXߴpT.a RFHv^VI{^iZz5z+$vg8AHe|y:PcyP˔߽iㆶyeω?rlp4*Ur6WKTj{z 0gxiE@5IJ*E2AJ KDJa= >-! ~hs@3ݣҗrVs<x *L?~8*"=ed 3W$=e#O{$O&4[b6*[|r[0Ƅ{8t^p$uAҷ3ܱ$j6$亪jVdHrcosÄ U}7je #vw6*kH3. ҫKo18Iwݧ2^_$!@)# T lNP~oPJ;+4 m:, E QJ_^?mɲsu`fĒ{vu79EfD}PޛMVך@>\, {xdMpwLT=IC#"S Ir@ϏG}PmXtrny>-Y/T0݋Tןc;-)>\g C-}(?C1k ŶnݩCDJ5=uVFBP!Dր:Xw"[ {mp<1 $ v86v`U\`hI3tgʼ*8 TFEvuh_ -c!=q(WT7B3KB۠n60Uխ7KV3Lhcl\Zpꦮ-KP͛"i TM&pف2(u#l-I/aE2\Cf^I_ ɫ:G#3^D;h׭`OZ]0 3IlǶn֩>0>=RKLTX!dhTsUQPVcfA(ZcITk"~\Y HԢ xbf^ l٫s=ERfq][ՍɊ Tim|c.~eu pqV 4X݌Hfá(+Zy/>46jl+[gh`|J^i S^r Fd&A/Z(qͻ>,Fh<ߟധsS(iK7у` B@ؽ1}X[{5oj\[׵ُ!W=~ lh2/KC=<u9"5#)/6?Q8,y͂N̈<Sm=)NG5fyźVKWFƷU};PňPU7.mTمޮ+UPB|=}l6.2n\ԍgIM1FEa4RLko?2GCݣ%7=@m:7.9*HzCrI9ٔ0os>W Pd0D0tc.m:Tmq|LOHzGC$'!7 6։- -01@/N,$V٢~AL/46n6nSLN&Z9қ1*#t3YSLƘ IUoƊ@iy/\8E0MXh GD/Zn xGmNB^Oiw=kƧ(S Bƪҙw fm &@L;}<q}Bo8>cJovXirQJk]>N*dt0 ャ;}ovNDe^\8ChS/'/SmZ`GZwu3JJ-~\ta*^3P1@<)](MF)|k+"  MK`"uDkBR8`t_ܨ^4*%o_n#IW I?(.x3wzS~ş#PSalHz. ?=)yT8[\^1usNYV"cm @Dƽ*L%fbaK?8SL{7cӫqm&RN#ebzbfu#O:az7o%F Ƿ? `()!Q2_e:,sb{pq“:s%r ~RqybD:Bx/" ^|y&v.;7[~Cah#^AhuI@/AXcB 2d<|:Z=ЦPכ)? n>>ۊ<)(} _6_;DE82p$:p<~Y! ^dcSw Ӄ8i]W+\?H)%cgLPIe޵X!yDFE/zgvYaX"% GO:-R>*G=K~x9D^ͬUh=o6L.F~F=)l"$z3e>YI/9xt@vPC4 ͼ3/.bT1\ KB^opŶd (%;bw#Y#>0}3>RL/U'N闡PU4pښ >yfiL|_5̴jشv=3P뢠T'.b^RJʵCQ|53`ٵCmoNxzw\!kiH\Q{b6&k rdKBT7"rz2fBT7m{6Z9W wm_7UQ6" 5{f{K|$ksE3$$ Mz@T78|?Oz;nTȈZ&$2+'& ]Tζї(!v [TL8-^iHIzϽ0djڳB!X`z\x _N)XO陥J)r S5%&@~yo I 02a4?mTK1fa3?.RLٜM2Qѣ !Uז`xn}ݘn!fN1^ elco|c4gOʹaT/ @,k^fr^튈!:7 t+ssDAqƲ@c }b]!]|n[%2Io#Nٰug^oѝ^'fZ`i,+adPޘ*q{SaT5W>+sk*΅Mח/%W<3h \ <U (uyX˃r'(pbZs4iDX)e1<`I1y}ӫ-7WvXQe7:`P131=u)Q{$Yr`Q8\v~>Ս՛IFsnDFoLERuc'"~EU^+ Bq;0Fo}()Y:u-Ph 巎>6io 8+IziG46f68T M6kPI3 dR#i~߈R!} 3(%Q,*ǹ.&>a֌Ao=?i&^6Ĥ@Ydbu|y*$:5bzoN7g٠X{|\L_`J]}SF_xs@I/h> !wM -nL?%o76T\oӈ٨r+JRx0 d`Qv 1׸xC%Q$J,;m)5ŴQfT\nhjJFz3ɦ|C)& h 0_)LcUU|j K˲D6uOTew;=c|sOzFg: 3FvrA+c7JjG(8]`;Nmo>}۷?}Oa7z'S )#'VjÒ9v0"#H"7LxxN0_!e -TꩺI̠@T)2V<=klՐؿ KzSW&óA*+vBT77.ԁ6<>wjqrX`#֥9@jJ5t\[uuLU77^[aʇvRP=͕52%陦7*sP`bdyx-q:?FKT0:Q,{6g게2BV5)Ҧ@XH.Dw~-H]ęycYH>ٴ,~X>/b[UD93][-kb O'(hQz3%).]T\UﳦZu[-&ixPRdRdpF!$=JU7Fb\x&Ս sCSUm_6iR(됻ׁ/|4K 1Sd rkC L~,vzuJҳb^{=e5nX0ӇQtI`Ol$?jVIZO 0tpz0}zjI>` YO q%a@ȋrGA6~`ƅoΎJi{A놰"=oL^<C*kN֖HVxS5_HB:8:fw:7Ţwb#H:]#j+̈‡e)*BXā"pC{Ym٬堭`ba;5T Ide_qx@07aD0J$>\Er)9Io'+m$%HIF)$3r6FLLN6gN|&LO9v1=,f`ba:5Ub 5N\cyu2gz;[n Dh,dI?7p]j"G륵 >B'kém}}4M1L2>)I?s}^Ķ;$$=Hҧ!0?ɤ$'30rmb>t,& O 1'~ص0q%bzA;޽yh֌:i|fDְ%ZFi]mN#ɦ7=ԄE[P7F4ժk/Rݥ2;0r>R$Κ 晈.83 zcO 1|@E*D]aDȵ4@pWL86>:$0Pqn:<)2#(y@ke 2'&=Zm(SU ]m &|މ\{>kRvw+QJ+hNkN8c6ޯ N8Яq"J3[c{imeiPY*ectE ?6ͦ W0z'\&ɐ:bt& sKgL噶\"VQ&F8fw5?!WWBcq #i@חG)F sj?`1O"I≞dQU %#Q { ,js>M$}O:QɷaϨU_ujSӔs^tY LOQIO~zҹǟSnl Rm8W=k9{5qKfʌkzI'Cj6+w|f:pDZ4`SM!46֤tݥ=jIԑovW sdʱ@!2M0%\SƒTyrcZ"I}Qv%?D5.倲8,}2*hb mmt 7o]C%/z)NDzO;o;j3tk|u۷@[ǻAP|x5Ɉ^QP:ma|iY1@{9CTn"8`&yҒ3F:x=9&EsjU-N;m_+Ɩ3V"Q*ZEe `ȼ*ֵ+um.ƸQ+R[]c$W ; E爾|8E/,zמ?2xz$ _H(RJ5` tK)xN2VXnщ@c;˵T(j @J`S}?͇G#4*!ŶFxJ6AO&7!g^VZQWaI&Wr]ǟW$P5J z h~҂VY/ sO"ElZ,5aI. s~9azuY~Lƚ>^WCj>*0KƁUih1uY{{CO~"'4ZZ}Ȑ'So:u5az]\nL]3mj5\Y9M\)|c.U^,Y8%) kP R\(oM͑0Nຸ]׬m. p^vW|W 7y]6W.yOu<ja`W'ic-w~(>Y8/ųˎVP'~p8d7PWֲUYv88`8:у߇z-H:߷jG] X)#\Byx»֛s uu9MS)kas3۩$ܔe$}ѸX0?Ep<;#^x%I,m4RLa_MGS][wƫ% Ee _U~BEb"V3IuKlohCdI1uXo˛0=PY =m~D7>lF'F$b1_I} OhAf) qh 3U]sSJq6 c0m@IƢt6=}8oPj5>u݇@{ oBo莁c h7*{*r箮ͯ$#T2jXm{$Jɐ8wB5US&@Л 13똾,ﺿR^b௠-Zܨt#iAi'2UFTbV뿤շZޖI˟#M `~S;u{+3Kxfwu6JccT/H 4TYU/H$[0zRLo#*vC)zͧ*vARw[}(TSʾcv䮄/e3Y+GMiy&72j#3bc\ߤ 7w^Jvu\)cp8 Lȝk9n7_i@2ZUXq!@ >O*<)t]ίO9:3u)b ]7ԝح5gI `п&>#KNԋHzPlsZT3пs瞹s~c{wL 総ro-[/{4^$`6Vd"{ke8w}Qy||Fi$ZU!}Cy,>fIiCdrplWf}Nwx{sR4蕮 g ]O+mT7TUVKMU7JGf䖌*r٥n]X̒wR"Un&&M+m' )dk8t)5CQq"H6^5Iz-x_!^73IWN*x4XgBTIch3\^h>Ë I1}V>e!ߜ!os#&?+XC9 ,Ne3PoW0yՖ#57)5K1$`zvj0:|3&[0fۤsFSCr+v{3U2gAhRBu8TVi ۄTo#_4$&:1Q-X-ZO ˉ xK8wpfQo3E{,v$n,hcxcy.kVtG)|>7as97 JM blo~ˏyb3sbw )yc>C]_5AJsxھ;n{O#dPо}|\ {!*Q\[!8y!@k3QXcY>"Y<C쵪^32}9ZUomP]߷Uո>J׺3d޼RT7ZՏa1x|WqF6H~wy~q66IkVAc R)4)*ujQ.k氐+lfՍ& 1a6L0I(MK1"YUbC@IIzk<YRH-迼*9!5(G iSd#'m'JaGئA,qw $}&M7|*(Yj oQ.ӎMɫ1U0Wi('ӿዺv慤M {cySDOɸ@P޾sz<'4_f۔Z01r@ߢ<2_iE85"Ƌak9MWĉ>YhpY{u]Mۙhui5?פ/@D6E#WqiGimO%ZNϟtớ y*M/ZԍRVڶb[#ǡ1h%EJZW tlFlqxz=8qɃ2\k+'AӫK%_3 Ԋ#pV#]`ϜKUU)BF_{#%jfbIuO3{:AƢKnRx>j}u6P袺ԫȸp7؃w7cs.Dߩj1%xVy `tORPvk*RnfSIuD<@'=zYpp TZeLi8}Ḽ|uFҟL;E2FDUDѪeVޞgꉑ?-^ZKrK_<i^Ę'vz5U`T5a7ߌL>FUj;SkZJ'jKUH5ҩVyJApR^o-jiRL凿a$7Rv2Bʈ.VFL۴ z~hp{2&wDNZ^֞TpES.v8,ο{WIh7ف1d mzPLH.`, 3 IџBk{~QD$Ts3?nKu&!9\rfcIu1*-X$HH #" vIғDP /+XM$hʺӅzND =45ɭMϧ )I[6 3nDCGM>M$}63o6@SLFC OQf￟T6ߔ#yHzA0 0ןJ17So c;l4c b$Cd\wwC;> 0x?}PUDg0xvH<Ԙ$^fm|o=I$8嗧\y׬ZN'pEj _Vf|ßȒ+:q,@;Ŀ?bt,kMinn@fv_Kk@|zA4߶Y/(ռuѳx]~u=g'`qo}cҦ6 Mjrmc`ƊQ0tEw.@m0^9IqИʝeLuY#E ln "k(U[OH{ɓh[,ٹ_ ae)[Y;2-@j;,ivpՍ j K6!TZ+YռNkpOb(ZMbPƹ3~R0RVr'Ս)tSg",cI1sRQiJ8G(d3u*,εǕ5AS^c0}HRДMs>jjwn!MO!ʹ3 $-җjtq"P^/֫&Qcg@&N0f|?%/,L1}yސ`z!^M4kUvD~1y ?ő-z sс+Nl=n%uֆ۷߬^`IG<B3 _WM;cu3?h0bwkKKi0lf$-Ug`5jd0n .ZcAҋf"6x9ze[oP9$dB7=w[ѹ"DWw>㌹+BZ]IqF7C_*}|wx=7_%XݐR;jNOf]̒wϥQV*+$ wYq:6]Akmv>( ƼIyC"sst!rPlu ׷u}}4֘*m)]P`gz^IOqXEћjd$=;rRLDJZSLSc'L 3)t«L,IWߋ3= LM!Sфq@Mq Oh>% 8 +Ml$']Ӻ&L?J'mOxy\zxxȠ?w `&q렌3)`/W /Q}5!fXo0xXͬxܙb0 u(ew >{ zl麅NPW̑WG]e"OXR1И vlNEQ^)SLM9o y\Gϟﳿ#ac)c6)3[ϋ"|kcDbE:8.\hDFbdt:tb84o/N`^qcgEnCe{I~s@Y <Z_Zݐ]߷7+M#s {Jh-|~]ջ}eڶ]UF9FRo덩fo2`Tnlu 9QM nBgXj#2J*u,d\Ix)'l"ջ,BFź%7(h8N%$4{MBPHz~tbNʼh3%$=iLgL{ HI?`0)ӫs͘0}nV`2\n,g2$K:KnalLݾA5i)w(S'L_rfg)+Qol[_ohw%15J) gIl?*_Oqel ӟs6=/qIo.MdyM*r[G\yzz>ǟ[w_ 0HZ3,%d!_8~+9So;]c~?!O$n lvnTH49̱hBT=G)jUN5oC;f7F2ZUŃQJ;8ȴ9Rs2bEqEvP"RI=4d݆K&>V?M4AIJ7Ӟ^$A? ~(b+Um_ZcwTQW5h"TSmONr< gg}]nH9(`!)֢ZEMRW1Mq I]c6;M&6 ReطQHz6Zl0*I40IGefD@DQၕ^M_lXr$UIR,.#I[$=;K5*"Adr^.;7$=mr7z ]D7#ٷs|ҖHJ 0 ;^bz\8/D PmԄZ+KnSћw)tCpf\(/gQ;uڻj$=M}bUP 64owO?ggU:<Q *dLW0?D"fk{A(NOۻ.oH1#T5 ri-.gfIaJ=4و܍R_daw hvr?nS|9oR]}Z܏!\Tȴ+37qbzC_8Tm=iUWb,NxzE!{*hF<#D 1}Zbs)!hsr^.z}w;ox>t&/7y[Ub0wS ,:*zPSiXk0=A[U 3 +̑HHՐfr Kjq};1CirjRlwE]B+k AoxU,$NQi7siIc7 $}ohahvuU![, r]MQ0`"hD>WD4IsQ(Iz)CVyjjV,3AExIOgM@Q4ڧbI/.aW FO1~F GI1}x< /;㿉`@`D@)RLXL12!U`#x~lӘHzA0CVj.yT9 S ؝T]I1U-)v _~:Ͽ?/1>o%k!*ejʮOwͶ+T}i'+}VoU=SjHـw +<ϊp!?3*&Iٝ`>-PB =y<y_imtCԄ'4wU}+k7xO A{2t33W3E_*'L'Lߵ͜Hzoj{W$`L~m&]24ajV7bIiSPsCH. MzqƒwϿ?8|0]6 ֍fLEH}(]DX{y2t~ =YZC[ 'XåyEW@y\(JGSWFEPo2`wوڄm RѴW*ε7lRb2VGxwe'cw-Mbp ti-7*Vw=RaNd/?}eKP1nvcӶ1DՓbu)bЍ1cD8/tzUA.QY|F2` "`"%1@[^ l\hT8cO+.\BQn8 ]V3{Q0n|5bwƁ[ %ƪ͍`zZ$?{В0ŒZ"9)QL:Ivk3Hҧ$!9b;8ͧ"~7n{&`́ 0=L$~!q0='ˋv׸rtOPzeĢoQS跿!nʟ!gc~PC1QW[9Ab_Zy LQh34h,؏9)Kяɼ4:' <M\UPWoԒ z~hmo>Xb190Ⴎ;&-) lҵ+_MR~̱ }q}O1RmeO?ͮXL1 Nvn?SQ@ja?dbC 'C) X暓*jf"# 2+)_NBKbA뷢h;"",d<Ry6ͱ%XlŒ NH񇩛k T9ӫsal]O*rT{mfG-V klUmTs^' 1s/~>VAi<}TuvA綏N٩(sn6* 5L|6Y{曡 GO ͠see=`?ޒN-Hz}˫9P6(AT7s `Z7)I_y9I-hv.E7DoPy>HVkzz1h6#bQtcP*| 0F^n@{ ?mQ1u3g}1#^>f[%'-1D O8` OK7s^wZX49UbzSIB'J=d3ݦAgL_Uko&S(!駒~&6Gہۈϟa\1j)R*/=y +*doAd\b"5121Ci*˅͆)RJ9,-HGxM5-I=k}">w=PnKs@K&U*ܷܙUn0vSMҨTf\* ž(M ww!N$ *4_ȅ ٓi|mk+ cL ^@I!OMh"㧕">ؔ'&OHzSF5f5?&]f¢,\O^A@S yN{5e#t= 0ىϑbc楘>3:nkp›u3/0~BC1% @fYrH;-NN^b28-𧫛@2bۑ\Fq.^ Y@1nq s/&pJ޼B~KKaۮ+4|eB^\/>N$D`HhKvC{h~M6|>6D5`jBJһ+u73/ZNLw"q4ߒiGa|ft964!yE#/A^PHzg,&IWU}zh77@0dXTShRá`s5:v{&ӧDCOfS;= v4UYU7XkՙBt_7n9L#-KF1kmFs nĥ0S]d/gxx)?;~kf ٸ nV\1tǏiq|6ҕ5ћk_;{(s;A@^f`+BPFy:ԥYVJZ ktrL@%c8`BFSKZEO]pLiR/iHȦF)0zI| ;@+en#+1}]~pB- sjcYbŗٿt]/f=Z6?mvvPe̒lRt'@W˕K43+$'_+U7M>n=K늧 .9|l I]gRۆUfgt}X#P$ֱ P6O+q+{+EN#I?M򫆕I*4L$|(0}U L?yCRavv?)\HB O߂G~HKL^|#Ky'LDIߌɇiʕ̅$ܲtV3fD?[H3=mԼ 0}2D G705RL?pO'7;Eo|MĘ/cB C &&y$ )o6w?0Rcnwkj\X8'koXz)*pU+M?2mZLE= EO~>Mb40OYyWEѓ\md6CGirb^aҞ7_lJF_=I(enu=AZPo4y_ nX[K9J;ON XV[O{OƓe;_z#ˊ'[@R ʜeWOD=IRS~DJYfV^UY[;4O(EqUeCY`.oLıh㓽D[nSo*xeͼwYDj$"HJqZ$RdHc&LuX3Ùgn!Y^h]1T LoBIߺmxnHpfɈHbOσn>Y:)nk o!եcyʄZ%K)G)U8k`6;#&2/<h@S(X{-xnFKF[ K</ފiѫ,Is]EObW:8ӗt.#E4IsW:HI) R(5 GUٍ'XB5zh[|Qͭ};»? 1SݬT ê2{yh=WͿvßʕDvrk6R{xaT {]L Cby]u3v\Q22[IASZňR3*m"tZ(MZn!ޝ~k Ҏk~/66ژڭcME,wPG`WO{.ϗT+|' eur;i(e1&JU1F|8զO"bF.)ĠQJiL*:![_5͛ھ?ۉVk\m¾CƤ׈%U&6 !'ՍRra$a.ߔIu\ "e1'5 _J$}1jiRjVV @葎ͭʆL$8È!ӹ2TGj Rf.*xHiY\#A!S^q)0gR #@-RЙ_(_1LDr*Q*!a1`.۸[x е p]KU$UT2]]PLGR#'Z*p顭$r?qP.eS&GBw$z6wQ$Wi2XPm%?ߵH6կ) eP*": cfxyխ[m}+4ɢ<縘;#y7o +Q\d6Uֽ"h*|Hmѱ`bt"bb\ȟ/L?"IiRF[_~0xU^ c]`]!|Ni6O+[R]2"K&DSꗶGk۾c,R ZT7덹zuȫ "7tI&k*\6ptMT7H @rMlJ=pVohAμv+&2KzqfSN"~=rtDꆉ0%RzlM)HdVʥ.s I*]TI}5'Hbo6UIқU.$}c O.MJ)ϷrG5p'xj  9&4?O$2a\]s(M9I@|r6յ #|kMj ӳxMu)pgƍ:椀"rК' G4)r;gL`pvY<zlRb 4QPe1m: Lb06b^*JeOm#u@U+ɣUʫӧ)~cȼ2SDAr'\u]ʥkȖ#/i.?EH%dEPd.jk)=Q5[y4V̓-HYpͣ+SW!XpLcҤOOT;}FHxDvJN:?% TUdIu#c`</H& pDyWu-^( ĩŢܬnjCjaQ7~HzGL-CdseJҫ~gN27KA[ 0hF낤{qnswD^7IE"O/:pྪ">j,jER0Վ*9(O<$F̂ωQbz!'w>|I^J:K.#ywBH"O)7vյJiA(ŏ߯S!A\[uWp-G0=ͥ~X͌ ÿcibըnǑFǨ {wbpq=<ҏukҵ񸶑W]tHfe_im7ӳNNѷ"4MDFq5#i/ Id\e` @y >xewGתE$}s Y|t@l욯1u=^>n6!±׺zT!ƹkݶaFts>Dsn2n*YDRtO$Ҝ^K˯RM*jS)I &Ŷ@Smwd"鿺p\m*e(p{ٙddj*j9C!G^~8@ECXs#^n&}7^z@)Qv L/$v!0c\ܯӇL1?>H} SWӋi;^HsEb?4+Hw _aܨ|& o~c#isi͕ۙlai0 tT)"!(U!Q(zGIDAT*}Tgx5Y٨ cFj1fJI^BʇI7FR(`pk&K r&g;'x[XSe|vlSns86 yo:e N|?!扤gI93/0d~R"-:vI 3Ⰵr))53Qy1 _?&acLo㒸8> ]ٕ.!Kpd|'%UO^| CSLWcƣ`LJ&B˟;WF7F)ɤCJܑ2Nţ4`!kE Mc}_{[@CBCۥmmlN{̿,TmHbyBoy[D*8ƛ\o}w FI@R k, JEC|a̎yJ [k(V/Wi?;4іd'Э_j'yE(u"kՀZ8l;3T Wٺ3O27{!(3hCnWfCt0QF cb ޷N_m_UM}GU_dMb׍o؅cɽR7@Veo<@C0㇇?g6*Hf2ޮt 2|YA>l mw]K„ŃϻJp>J.FL=O:8ЬN[ ?므fHHzgL!+E҇wJ~r0;b?9^);x ۛ ʦFg) nTHkKq̺L1}0gq!m|<>D]kfxWqDnK40'B"1 v%I?-ϿZ *b P;ഭҏmR <WT?DZO Un|< >~EZ1zsULoDgZuh 1 _uE*+h:{b=SW U԰0 ]0YrH6kLJ k *涔p\r:OVь)hTۮi֢82=Ǡ9xB޽`lh=2 桻BZQCD<*G !Q2Um<'#BT7!ZW3ԙV2"R2$U7ΏFc8בּ&F=.j iVKX\[9RЕԲMrJkvM?Pk 5_:@u:^ VnDҫ '6k8 w:.{%I/IRi!8dPg0=? | ^ uu&4Sg3 8$zl芃7U81Eߘ2{q7zxO?ޱ`!IoG#=378azy h>}ڞEM LλgxQ{{Mͭہ79<?-M42Ov kEG ǔg{:+X]-ڣwŻ)M)_}=[i^l^2Ad֏_lOQ ZnR" m|?$w4UjA^ 79pd_/8E)/Q}$-@2-^,P+5Ѷ=ZՐ 0*ss,2zcl KrdM2ݛwb6DV0w}o(S<$V4mׯbRL±]|_ftue6g]㡟Y7?6D5tq'#!iqE:*Iϔ8x8o'/,.:1t;ͦе/UFTm"C߯L IfĂI@N~+L˷3~r|"Մ?]Y5`+ `K֨1h*XrsFL/$j!-ÑjGRGBw5Cu~<Cp- O1az? w)`j{5: T MHZ(HAZiXu RLQ.Rqj:!oc_m}1{p 6WxU}|laϪr7tsh ׷?1 @p $եgzE4s<,)8X(9&_St?l=vQ\_ {{ݾP)~©6J \lՅFk+ q9j|=ڵ)u;M6rEMrM#cP[ *i(% U:7>&3|HzKULl(ItKc)In$zϏFԚW8$=, j$$(L^1$18t$pC1ifӑGN ׈7 \iwhklͧ!$N]9vROI3Hc:T'7f-IcR&sd ]7jZ]*;bzE̛w\ \7-GDp5q80 $g &@cpmHV_>Eg+SrbovYM+HrgVȭ!ޝlS K `/W>jy}d4bla/͖TCIamLm_>:RDɧlP!mG`>G)lh4njDKʅ#wHpR7)j@WmH>G߹}ƲXɰNDZ:&ɀ`zV]WUuw>on~`1[k}="8gt9ndI@jS,GYfGUQV4Gkf5wsa\ {ohX3v҂ ~{&_!{Ksu zp^%&W)hF&.~\!y薼mQ {|&b9`ztAԾ|L^_My W&.DZsLOr :f`Y;ܒ*2'L|ĻOk̟$ۨmII8P`S'^w#O1D*z)0(?h.~RLo}w\5bA1|VD>\%8W'oƨnfOz R~?1C0'C`?le8~ S6Ntr'mkWbsW#n|7 7W\jr/y1?׵Ե&FKגE Мhda/q8r"(m%U ha~v<\BL?;olPZ)r:{D$$7U+fʒxB fH_ ~2*`!]z n&HG̏{oŢvI+Xe8pI$sm+4v3<19ںv]> R]8*R1zxSZJxF4Ot`}W^Qv$X*1wgF+FcY0J3""V;HQJߐr s]NzOR`k}Ӆ! @(iIң,B*7 ~>+8j*w1w]BMD^/IzmF}eS^~zz gߕd.4XIC锪*{?hm_N|t h#ߜ=l2VPjMb$$ֈI?y| ,1^+>),~bIo*c\~>A30&,+U$ih^ێNI^+x; 0 ;.LoVRlv?xQVㅕ+˕7ܹMo˟23 w{:7h}"z)m㫛jOy ۼ>݉޵k]. D2Rm(C隔!eKJ}pN;zw ]n|jUu~czaFwM7M}1<릿h(ñsc-MZ+?1ԓEe {v\#\>W528Ʀ>ݝVDK5`=mް7 X+Me<^`Zp*e=b;פiu ZMVC!mж[&{km^UN&2- /Oƣv>ww?vCCuBNqo<>]mDz@'چ"U_;ZoZr;MJ:kz/JFt9OE}wj,0s8؈@Rږ%o:5(m(Wh?J<+p\p>ʬ<9ej#ѕcs>>{q<'[ O]"d:ܒ>]?TlIFA4! L$_Q)u-bq? 9@LxU: RR%a6Ekﱻq?ܾoc7O~>髬UC{8 }7<|,Iكz?h1p lSjeǑ3wȧA@?7K1 y)dX|s_VzYoJ/}#F*Ǩ6Ϲ݋j;T{G˅sϲE ؁M~H}j(eT.3e!IT{5JLumΉ̓4<\Ųtp[n{hsSa֤gœ~ GՍ4FZs/*H5tLg$^[N%K>Ĩs w>V>o7ɠ[T#IaPSGӛo[v'9p'EwXuSFyu`+c:׽8N{@ҿΏGv3cw{z2J%fL/kƌ7&B)if4wFը;n ]&LA'~fWUey~YoD4ZWR67jr(,iʾ݇T۷m{4o_IFCWzŀBf<]LX[IMbL ^*^d:\[oeº\qP݈S1[E($EUׯ cnj#Ddy թ充ȮJoj @~pӼL?vC@uXù"pp޳7*C^BG`z o_%ueS1 LEU?sv|MM}~\F [ p,FƎ=֫,s`+Ffi=XxdU#۽ 5z\g>|t=6}5Qxh>9hJz^N̶h-*1JR 5Zz20Ηd|-EPS|'?tGn]~wW׷zwMT9A|p޾&G!'%t'Z9طU"k\EL6Ye (s_ [Mu}w[]Цe HneK쏧60o5=67ա8_/]Z5e*X,zt.B쵪@(%3QW7]rS`у<3$_.G'aȰ'>tF׮lU{#΢e CpZ[YGIЊvj X m3\5Qlb O1w.D5 ͥelbSpJ+z;fh D(.nM'-@Oͷ'ճ BcL/j;@dZljO_bL?MA!)*C}SY[4$O}wa(r.$=s̤lh1>R3x80CY y4aVeՓYU pE9g/?a52ePO/חI0GL1cELޫȹWΌFIOjsZ{_/xHO~B1)SMz:Ӈ3$)gI"{ ?0"W!0Iq()h0)Y ~ɦ,7\{g?$d-ZSvG0\8pw ׷sO~cpjCw -t2햄_f OYi볓Ȼh=BAz;yNhN3([Es.ZLERD]nn?EK]}I_Ul@Ē'I>%P0!j{|l " Һ`cqY5*6i?^]?4s:%.}Q)!hR:B@oCe?4Zs}U us xoB#u OS6vXl =e-R ۏqS93|9@6%^ JaR,pY']KLy@JM]k=!֛ʮ_ЮiZYd@]xc:יIucUT aRݸ^y񜾕f5vł.HmI*q=Lc攤u컕펡{OH!T,HzcV<RvM02hP7n"%4 ,FΫwh ^ 19M[@W2[0m}_@knu0>1q(Y_x{JV _$+~yjx+ZkmYeb O- IAREZ\;Aɺ%xbh2"-5yW;'gxNhSH i2&uB%:i "D>tAa\BxN?ֵɪxu $n8SF~ٻǶ[r6$2?UAGJ)Oӯy!hs7c6=#z)pu[D*:d,vTc>VU\Ak#D5B+J 5Cї}߷X$tIɰW!ɯ煥~IjDŽW;-73I; `$e:GޮU3G4LoNf&&0 _Iŀ?i|0^kF7pC3qؘcԓ*2ko4aBIjƷILj?N=1g#=z,lOJ&tgThk 0 MR1#/->zg.L}>VORndc)Т9k MݕQ Ȃ; c![B2_6R ud"v$o,rS_v56;eUϊ{jĉ\DDN O0{!34gRM1%YyO18IU[!r]tPRAkWC/k%Z[\Ӌ>jFYkB}5Y/j3kwJZ)1/|iHTzOs$}lݢ߮~{fUeSF`VD64FEkVk#o ;U C]]¡ڔw=Jm)%%0?L$+`)I)~J~Ws^ g{y|);hxx:&H63I?Gm(P1,eXl]0a57v©fbW 1G/)?Cbx\3 :g`$|y#IVqtWkO[2m wÊ|t,d-k}RFW ÔP4|u9q<=t2SgA< Śq/y)AwC6U +j{7oóAQDp2|@aWlҚ"ٙEEg9y^|^TM0H;񜥋^Q_JS95b=~[;t|Qr)NHU~eSS*!+`f5c2 AD;꺾F"frn}(PdYIHutŃ[5'"ZֹgehUk9-/یhx"iU RaRnbIm[3JAuC2@g/. gGKnRuiQHzk>RyRrND^SRXFAuC.Aa#V%IUQb\ľF+9 W?sIrÅ;d([ ]mmfnH4B+園d#jjSCTDcOåXw^p3\vɮI~)Cǯv|i{̡ݭX?vvJ Ą ȹ0XctgjT7UÝgc2o:%bE2Ui9v+dz\\ԟkJ )u@R`ztS9B4_OHzzM.J2I}]9'}.yd(|lA3~;ZbD(k~L u td#MRtjտ.\sr~h-&+VZXI͘$=FR{o3; 8y9*P|1=yWjP~|Tr~.o|ӫq M1=yvR={sNt$_<`\~~gD/="Y!}($Z2d(7?udz~)K>˯+[V79^4T8 wQ"Uhvwh^ꅗf@Rۜo~+]mhzEh*2@}Zl̟e 㐉!gs?XU_xY f`3%3xg^q{cMkVݜӕsLs4QTJ4=z 05=:K[eo[y> 96_.^1DB}6r;dk R#i4csޗKh-Bu\˃&S?!酧ޭ>Xݽn)`DART$}Bd_.IzZvI%9,0FG6|iQczk܀V&$H4+O& IzMtyh$#O,buY"\Y;__P1Emnzaz!bH`IJO#6C $}U/LOw* %c}o^uooo(& Ho.rQQ;tƒl#ڄA`sz{ › f;+;8܇1*ۻ׌?8=?8`p; 'E,w煒lŘ^G3P(L;;mk{f?ظ*Y9l&vJHayLLQ.GTKInr$26aDZE3_Lߍ>f D(<2_æ9Cy^x+"c}'j3Io!Ghe^琠&|K+e;눣PIҦ1"FiBxXm>6bzF9ICn4WR{tZGVY^Ɩ6>f贑ƒ& qk vX?Hm=R Isn/3ntO'n>O\<v;w'a[zHVk d_eZeȞU575kaB3@sLic;lK>yKl_͕.&:'׬rCOG SUj|p9ܺN=lXL %̤Vly/MR*xv$3W;ZB8ﭣ![Zk]9`AR'.*Xuw C=nB6}\~8T 1} Vf?T\˝ʽOJ=j%^UZT.H\I\n^UY6٦q4#+^M2PIiqr$eVWq "6`HzɘϬc _0'8Je'\ !dα"VL$hnf$5IzgL/.$Y{jSY>B8_ C$|~*6XUjceeaLpK/f#hSҔ,88S7mGgh>0$>#=uE>'\Iڼ0XR&_]GLkZA-̧eo|)4qeRB,b"M=$)ޖ* P{nLRq]湈;]=Wf V_~{~n>sh?nFBxx/ 'sDR=.{bןyݞ.#drb8}&zR)7\>a;9%!x^HAsy< yqRh#f'%, `~A0ݧ?=)=۴oMtVZqԖIsb:NdAB bO.-ږ _ݯ(t5mT_yqecwֳOt$ 4PaƒD1Id`L?ZB"!\>'$Ir$7J!61}e/Æ<^F;քxޢ׳ f&0Sj.5bzFc0?^8T&xw#s4$4qlSL:x_KAo)nVhɔm cd%4e FJEr| }9hAY$"CjqMPmҰy+3 `To3"K/^̲9elpJ8[\,J(z}~c&^~jэ5m`<ªȏ_j/>gG+ cjRipP)lH7o bnk@N xrZǖ}FA$E'kk{2U 2hWJ&|ErY*kmה:C/@RVNEbubFmXusNH!Lu @ "s9I^< +i&I{x{YTWZ:JHVߑlwh̚"OIw黓g// Zp>nF=aVMԑ ;ű_97cѰ7ח_pt 6su9;n.0p@]5)IUrc$ģ]QY| MQa"2XvN!@  rWlID#6NQ^ǎyVb!8 vN 7GcR<SLkZ8ZumeY \[1JwP&iyxXz勿1}="d=]oY77h̟y$r|pD`=}{3&Aos )xs^,ZYQ,/SE97'G*e@\ijHO0Z >nGhdJ~E}s>٫bfj=/k kdjuAomJYnEȋB~~S6HVE%Do]cs̘ x9}t9!BTh? ]?Uu˺Q$=)θĬ?ycF6,/BqkyɲFM#a4͖>je{0tJjZB8/ioV\jgi\B +*qRQutg9c֓ :tRF=T%͆%ӇI_8 wԐMJIzRy,`2\x%,uw)HzOM9T{Mxv`L8虇rDYx_?!Iiܣv Q/P#|SdP6czH,Xas >Ez{ɻݯsN|hV^_~^ý̈PB)߈/ppTKby/ 2|r͎57`j%r*/`_WWI/2Yeiz:|dwN:bՄnWIs$=J~r }ox8UjvU_{Wաzd10#O mֆIw~/0sSgOXw ]xDVvhֽ}к礩n* T z(7)w_ZQe~?'РfP$'Nzńs+AfTAKu픦njk+sɘ C uvN%Ȏ\Ə.6Tva;1']q ^$}/Q2!PSh853OOWĶ/0=lV$AԈ/_@aF~˯*y"|z.@n¼qwyb 1l¤,L<._dWgpq<0_զ!1^61r ʌf\2jxxI7kĺp#\ӽӺ*PRm=cSrmxn|_ SL?By%oIrL7KGn`jZeHHEc>G Ʒuh+bɿX$/IyO3>0MΐkY z'P&1dχFJ)7Op~\}{n޸f+|?MLuKZՀi]o/ܹo@]_0J },*+[ #i+Bmw> 'iw}R[B4ۏrH'3^NNJ Bse '6hUY4ȓ\{{sFOwUk)yV Xafʙ3 08/wV8 r/-FoIj5],j# >tJ/ʯX;hm/}iÒV)K5)K"?nu"J&9 7_$ˋ ۟\o>%%@J)`d?rT)|V +==wg#2AW<ԕ (EE9"d팘>Tg5ٙj$4m )X3uH9vwGlco5;U,,ԪV*-ӯ+5c˕fѐ@0c'+1m3=[y 30WD3MU~^f: b޷P"yH0az@;[+{R.M^Fs-Ҋob=SZ3=os[i }DLpsx]ӏٛ8/a}:EpMnP /]W8БdTF.dǜSˍv_L_OEk;t`C?~EH߄m|b14V7^ %Xx8R1Y*()pʜvVLX,$J 4D8ꤗ%k?$&=TJW/ nE3W`L$ņgG(m?`U}Q{YK))89&qdU5? @B.RwۋeQZc/BOQCR^nzD!ȻBJ @1fNJgd#I/O6"aDLoWFZh[49除4FV1Hҏh~S]ok0 TҋW/]I:bz"50o2h> &7۰x(X {kwʎޙ 2@^/9,#/cQo#|ɛŊ)9D e 7aky; }9Ҡ& rݼj-~ql}_}esygoۍ4\ߠfXo3~dp Z <6RiKeh>~i"'r (~,\c姮t4,)k6~3?|xm79ὔ@VZYnz0զ:TvFgGe6,?mwɴP*^ή=4H|<_CoM{*PiCg?7LjŽf+ mD[o 4C*P  RmQُv]!JQތ1t?xs ]x!>mr9> G;K!{ENkͷXN뫋/9Y7@-89#DޖBpl@*$=ص;͔9:6+R}T`}0>V)66YWuJ?p{Glqn   RʡUm]-H.!Rb*te R핪{ ;F5JU\[X+qvP veZ!1DJ'@RhHtT_Xİ-F f>JkfaLE5Dq&=EL0MPEIƑM `>V뇤h$* ./R6KQֻ9IĒ6%釟MgR;%rQc4Mf7<ϡxUMK>ߛg^-3U7ɗmV|z)IuwʼnSxcʈky#1 q|Mp$h ya4d2gF wXo-sf;Rgy`f<~wބb**wl_[ʓ %[* }rpR! 89/#*i B%k7bz;JA+$Tfz`"YKI Yܼ[d:ƽM~BFٽ~{=>IZ*'wػ4 S,):oCg=F$\M%(V&KbUWJ,W8{-wSHD Um@ C&B\ǂfWqIZa]w @*F;rPZN qx7 ΄IǏ 6Y5)% BH9b '2x Rf0 `*3R9Ziԍ #'ɑBuBN&WjU7O>SN!jm>0 1E\ =+v7']|aS9,tv7/HH]?b!êApx&~(i不p$X'PGAc#%wlv6'gq4tOg޿HIzNw>E rv<#_Ў~]+_G-5ELrI}c+\eh9A+%< fn$JzouIvU{BBs E-r ltybLwSo{gJ_]'OoP5RK'$Ӣ'o~j_*ϰ8_ip[ N: ;3y%D{M^Egy_@ztެJJNA7B˚ !mD yQl-R㕵-c`ުu|jm:}X$wX/xF &Q<,7(T2)+> t۾2 A#U"S19i*q껣I'5uNS/W{*" 8GÕuΞ#b+'- J4'BQTY$(tJ/ +RN4b?J$ ҌOR{ՄDC\`Xnj63R ?c k{= AU"Io@8w׷պ!M2;z tiIk>@ֽ煉Hz~ɧsƒ\<g"=噖xqI$XANG )4#ZP'SPRIϏ#=RӸZ ?osG( SOuHl+*%](k`2!MWpBDH(^/LX)MukP9xie|:+R ظ'W*9dC u)i-DOޒ"95D48C@H齕JhwlOo/Xo3}o-)|w?dh͓!+kssBTVP]QLWXy4g `K aBThRc\}R^{>~#660R*RsI.[H4/䅨9)JWt%i=aɔŋP-X8w`{" l<?Beh5*pUpR)R;)jQEKʹNڹR+ ك1 eFe@VκrT?Jͧθ䅩 PM/W3 WyWkH5MIjKZI>TdD-t9\}wS|owh\y_| wo_ /'y/PՕ<8$LDt(8fEccR. (hK4o.s1cϺǾ A$}t3BZo3 =}o L82K 1jp?SIizʑ7*wwqQ>S&u Ӈp9M( 艼߽W1:1WzxkD1^0$a|@RH?D˄ED"(AvWq~0$-,#RINaC sR+Z5ȑ `EzBPJ{?hw^f:s0`Gy^;ljK')$_MF?/ϞB)N@<0U{]WbRI9#Uƨ[zv=~a)~yv0x*S;D<^H)r;%CZuP>A(B$B˵NEElzhb!jBtH|ysRM恣| !0$WG4DX@LE$ ȓXO7Dljgy?*s2GmdSV|3/z7uzu$=g B27 I5x&h> &//|Uc$G(?  a oazUS;Mkt5 D$L&Lo4eJ|EA"@ϓDR("[vh9 @I*lވtJG{W3ii4)3*9JB XmҩR% O%jTܾu"N/<[aBh-M&8+D' !w=+So*|"tZ2eב pZO q#.ά>Ƕ|T Sݳ^D9f]_ueۗ3 ]B#zXW`LoL8b^577i/do0>g֎QKla BB 噤Wj$3O?TZmh6[RqbPTS֭#>߬9 0RRx7b&r]ztJlaԳΛ @kͻ/b(E m/u%Էyz$,Xb`,v4yUC?m갿]V]vN6Ws~o𝔩YCQ;87u3"!Ӈ'$ڔEbK_2d9G^2L_#IO\1:FL Gj[;NNsgADR8bePs^}RR^OڻWG~tk* IobzcVG۾s.yKi!#M=IV$@OIBtny*Ԛxе¸(`kZ`?Gr1DtYYSLJ)Oy=&R`ȅ0^zyzzYe3B~\S'EZ%*G{R}<6VйϔWs~n4QF(ڧ̪# OE} )}RDZ+k]{!sR塣-Qʖ9*T7#Q)JdP`@ۇ]?nd.{7U |@j/[D>C)@}v$=ia_$jr/˔ q{\u.7H̜\BB úb:py^&$}X $1$̢h$I'gd 6: ⳬLwWGYZ"% ? 妛=b_(/FW)f#cTd&C 47|Nn|Ӛ9I;;L" V*wjɘ1 O[Fxw(1k:ֹ+ݒ7 8>mƎb.ٷu߯כ. gS^\[Eg}Mky؉ՆmXIourg_vй&;*Oc\=ʥ5e~o=}^){1+j'@Oc4@brU S߳m9'">)Jm.ɝ1LuʁOG\[/E^[zvauI]1}sTһX/N{|B%Mgh|:ٔT*B``iQD$}lW1їGϓu[1X31F| RK Z/<9)s0jyJ?#9 J޹xwsY4/WSi#D%Ї<ɉuO~ jfpQuk9rJ» C)LJ_~f;8 _ 寜+U7Iv=w)q%c_*4u^ɕ=ݟѰcfNs-weR /U6=YBJ:a)d-v_0uSh5[m-tCaWizT 8 X5mIņGz!:,!3㏇`;חmnRaaTv $(Izi'5V&dpgC(OHz_;1kM9Ua+ҋJ{ 8cCBMrdefӤ#d=bU1gВV4G~=GLvft{ $1nl Qr+2!VZo|]jwoAXFK;q7koRmUBm܅#6A4ވe9.$^2R r4L,i0+Rx\sÞn5m}=3"w@^k]WކC{+-ۀ:56c$oşHn-xɺpe#mNZɮ+Yd:ګ !9faj!!wo44DW׶<.S D|ZfWڄ.ZK``hO`WYF5]+ĞXoϘ~$窇w|E,/wu$v Nǥdf][E WH!5~)'ӏ6w?? %1!-+ GL_7-Mi*vڄ[]㘄I;GZn#gzH|41߮Iޤ\oud|Jkˢux ھn*tyٳzpMW%Fg'lJ}5^OnG.0ŵˢzWҹgQ` оBI]٬Zz^Z4X-9O D6rMiq xz岂_0u?<'>;Z=>hDUYSq>բ!ѳL_O}t;Xus^\;+gAxW'Z u'=e!랔c/S"5zJ\)!|h Tv Ul?ߝZy+˜3A$um-*mQρ\u~wsw(}FCkW  r/~xk2»|Nݔbs)I(s`%g\<$ ]X/3#IMKK>&=q 3o<ċrmZ!V, J΃WHx@$=%<(1!\Ivy˰Cl)ehZ }QʨFkhgGJKV[PEiJ?`CYG~"20UN{ $ȡJnJ[*&鋹uwi8ܵL §*{m![l& R/jFMŊ1[Eܽ08u"ɞegϞ_1?d@ul,u~p^ fǫWُ+/;a"QڳY [Wŏl&vG/>?= ׀g@+[-S (dRkP8@'C0)4,ÄeRJc4D}Qк2Yt)+=ե^ڛVu1r"%X^Wk^y""$ +ٛt XݿXi*>Hhf*Y@ㅦZ4v`J9zt#jsȹM!BK㪮VIUfwppە^ݨ ffApCِXtav2bh uV7,b(,1#*$ɌgM\Ml|'!]4(_>ZU60J T`z/jN=>?!I^@sb[@\:1=xH .~G#IE|sg~uyXkm$Ĭ~0K=53)Z;Z oC\j@X4 i̽6ͳ :{"h)>B뙼ZO]L_wAo$HDYo\WU`7X6T8]9X~}6c{[fe 解U'.['WjI AV3rw0I< NI߽׷RuBT)K+W.J~.x\_R8zj9]it/Ξ~;`=)8^Zf%@Puؐ;O=ł Et/b[> <~?~D%-.k J6Wj;/] S3Ň+I 6\1J~WW罒rw_RZ?u:$OJ ITRN#0U?90䆣OqQ6µK! b `19r$yl2V7_ɛoS&RvpI>u)i 􏾗{CeyJ_,wB7Nz7}~IYUdAқ") $=TSB'y" xXIIz~d_C ew=0b,BgfԂ;5D?,J0ʎ0n/yh!9AxE3 2&AĄ釾C=wW\_"|l* ~ׅX|̬a^jzy`I_tw@ i}{pȅ.n5\ȤVQjۑYtY6'c<(O=$@`Yo3FO'KWJh,XY'Y]6kB빕 VTMRBY]7DɵZ7qwzǯ}~ǩwY؂AUP! 9 '{0b?g%R Hw6ޠ"Pa5beF*c|` y4.#HaKw/Xz?:)wuuyɻ4Dd-YH Y|,$Cg\;>-uB4UIDATbDؙrǺU8E@ !5b@}z7/Cik1nu @c|AݷʺR>vdS}A >-A[B%(_TOYo(Z 4޹J)Ls*_mVPau(H籩0,Qhyᖞ\!݌?~ʭpHY#}g Y!C'94 ÒI=3^A"HK_Oc ^FV{w3oM.h>(ֱ:xG(Z g_G]2B,LEU>S vh$8Ҙ%rfE}+/ 9V֬3Dz~YHCnY_rr Y \Ϗϲ{!w޹6yR|wъ͟Tyy?4ʘ$RBU0\WwnyP«Y=*_jxǤH? {xxBJv6Roߔ]/GIbvn ĉEDF<b|ːQʞ O.Of*I(HYkt>Zy hk;k6C/MZw][Mٺև!SCbeQ{z%^C B$"n>XO(꼻|@* *V9#I)tgS' Yu3n`q`LQǘG7" \Fs KQ xHs^4DE<*.TK|}LF(?zfȭ2>j$8 gG>إb wnz'S+h~),U֮pBs y =1$}oAs6G2G/r7F&"y[LP#1\(Ƹ6(:P^HI;_Vg/bJ:榢5&Sbx5p^+{)Y&g/mvWl] &1Q- EA,~ ٹLK]'15.va5e#0n.T\d?]󶑗/ER ]Yp"|ݯ⥲yQ]+<}@͔mN}yn\A| 6Oa)_'v6 ]Hkű(GYhSUdci}X=+ȅ{'g 'Wuzq>W !RKJ& h #U0:;\"U`:u}*X|9v*z`\QZ!ͪbcs*(׆dpܭ+kMT7| 鬺 Āx{+EIzV8hJ7u&776绶l'DMMh>  JҦ7gdaE@>@Za$tYFbT̩q?*vB/@&Hҿ\UvczcH?24ěIyk/-3Z 땇$z;}(07^&$bl  yGyӏh~,YIzQD ?t|Y^?5zV|m4G,o^P$&L,a{Ⱦ g/$pRy}鿹WEʪvzUg-EQ6:zݽеWSz_6a "4_XHvo~dT@~P/E\~Q4缊/1~~_m>e 5AէwJ8z'zӢⶨ.LѷBNJIz ]?0.h;hR wawH;@4^,hoYwӏqpW I.8^^i$9T\VMl#kvUcvcVNfa}}<_ީP&wߦGLc 󙲤3-lbrRVlۥG@챗{1^ >'xdPQdw`u!P]<U gMvSI3\Cgs:nn~xx/:gKR0w*(ú4`fC6Q'lsM@BX_N/6<_%yCİ .qK{;Y@"VjuwmUU:Ll$RQuz[{j)-` Dz'T^)m&RykeypETL.!6YES[nDb]=8^_DH[WoFjTݬ fTVMW?I,a"I/FuM:ο;_>3^2^ůf7Yɂ%c)IT-~'GZ9'b 1eh/[{`{ĺ簳ۋ建.JMpIH^**Galtb$IR(8"OiѵCJYPUbp)/2fw ʅU%,+a`r(Ks{!y; ǰCɂu w"ϲ ,  _G9}}r~7m)(ţbވ#JB !Έ BU'sjāqsG kȂ@*gWF0us0ZrDa+^wפL @Z!{V腳(ڬ~WUK{ .: #28>V<18?K'?8˗pRJVFEL89粨tCTUz"so|֡y! % (lP)#Rz^\[&g,,s]4@tS;M՟~YeB϶w[&#?eK2KrQq+X9jE` MWdCpWJ0#Zb-JR獇Kf uybdD;jucb ~},2ԯ^Tppv# |-^K~ҥhpB]cfdߝD?>&MZDJk-'6m3ƕm7Ql|; o)!@d}zk:`K&HIzVg?ʥ:DWTk:IؗT7:-s |g{y"I2n OƜf!'l Nc&ڪ$Un4Xus{8UhII+cd9bY>>wP.>ɨ gF'Cle ֏Wgm8_e1}^HJG5+ *)’=2R11%+DR*%JesP/Xߧ'e ! ϴ0F̪gq>Kja,I◃dzu yԢk[5BHcM+oR;3͂yVȋp}j0.G/QeI{{uw1=ݞh:,1籕Fb: SI?)){?߶مXV)=ahFL`d{u1I*9h&_9"/Uѥ3Ao^ 9f\he\:Rе[nZUFI{ ̓](1$nzՎZ/Y6c|l;6}GN_l(T͝O 7Ճg_]i:2S\-͕g;SVWvKD1O}"W*m)2nG~1ƄGC{s>*1M_gl⃂$f/UsyDȎ`FfEhIJEHOva^IAuS&BNhA"Dhd+g{]҉}O#k6:8V-dw0oo9=ut{_zƵ}_Xt? oTRބߴ.s\Wl|Q܎y:ڏmqh2ij?R6]v(fV}+3$fv %f,8W.\~ C|{x8<2mz1Xng_}?W\?]NoH+|Їk|q;?YndfBkt_s}+ JYfGH/L,- h>C6# .O0,% !vCkyUz Tk5'{$9ˆ'7Z2_ yD=OR"a5cr-=$`[Et(U>!>, |}bg,ua*8땖v1ɐ{ %Br0JYpjƝ>ךT7U_p] E'MONiXԁk@J|1M^-m`(jv`u攒Va5Xi}H϶}g/%O4 $/܂/z6NBI&UBS޷)'"&.7Lү+]17 Vz6?`HzY[.-`/I$=t.H8`PI]y<#yM6#wb-Z@c&v=סP4m"1=_lj}rRy~T=`\.cQw^ 7v V-y/Wmj!CB*W+s3^ź}'6cKfC놿t/y@[PR)${۱Akmra}%SAoGKaBm. a;?Φ電i}O-{ A|!+nW,-sYQ\5]^J D"%0$杅ѹ7H=JKz֫K= /߸ޣJ/h}W՗&tzّgtݿTQAp(sw7N{/nfvW>#K-Iţ4R!Ӫ{w#TInή%Lg_O<mĈ5mRbJϘo.tC;hz"CL7ԙz_.q~F #d &l-d߇{C; 8KD%ټxaWX@?Fuw_n^g/pΉh}*as˅5 !@BND9~phLXd:DBK2- ^?\c%&פZj{ඣWlь_\00B7n@ct;,)SFKl L65y赲 Woۋ _1慝TzOKv7R; 5C׿v ;\7[`/]kW]z;m8>7no\\]6ӈW?`QoQקfsys8. t& k-*3Ǧ2\[ZSd?Dp"x^ .SSlx7RWNGb))@5+ ?Km$*%Ch M^FZJYKnvaۜ)kj "I~knLzzϘXy^f:%GYHհP!MHz%O8kHRy$@p1Sq{|[=OX:암lI$ AB9gnUJQC ?iaoz[S5v赩k08cw.+%/lX9:;C=cjk?1I^U7_E8Rգpb BZ0( Uuz `H<y1 3I!(H R&5 NIm%>C5 R_†B@KqL3yǛG{I|j- LwV8OjIg>P [ryIAL|Hc\ap= 'kz6G@hIUAy! 8DB(R nрa+(ؒאZJji3m¡l`; DIl!/OM91H|Љ"K n2x%6>\ EnB15fOp!VDN 8)Y'Ńⳗ@+[ 7PvW+8{@A6_¾s (sX$%y_zưEDQTp{!Fv>cYauo[,`X<;_&UU9SUΧK밁NݿHZ6 $1;{}GJ{$U7}[̃ JPZ-dEoh?]2ۃ5GV<{=b9&@&Tq5@=~T`qUD$]snU1ιM,#0`e`:<L;4}C⹋jŘI%X0& %cz# ܚa;}iH`Գ3=pַx*E#Z#;%L67z7DAiJo*1FXNMMK&|;<'Uz'\u^h%mOZjWmuxUf -2-■Old}*HR/3|4ZLIi R^Qs7m'׍3?xʱhv`} 25O*cU_Xx|;1}ȡxRkX]~!1@^0Oζζuu9t{S VPQvT01R0=.Iz:,RJJ)eipt8QqDK 8soڔ;=R1")vh˶/&FmNIz~ @$wIz/$YJq9IO m4IOhwᑤW5!:+Gի EιL,$ 3KfБcɔ:1uIa4?ޞzdH$}qU<Ƿꚣ+szm̑پ#j$#ɷBPk&l.PBڥ~6fl].!SCqLp)iqNM!<^>`Q6`gl~ Ud~ӻHjIjKa{'&Ez>[w阱^dV ~P:`낭%w4~673_~.։6E|efw_ݏQoS0qu߹WZxYo3PTKbfS~1:.J')3WYʤtݽ`l)T]3>e6 T.gCn*b:"KikB8zF52*ОBT-b5Wj@Ti޶y*lj'26f=o36>=ԭM@C\EK)?AkP|p QPxZ Otƭp}|OLjsX=u2wPwŤ!U:j `$#ڎ=]Z|2ekeT`_l羣E~8r&1Kw`k6+ ?zLp2-H <}ګ I(G$ʈ./17oH~<3 ݒ(;-1] /Izӻ[6&NyHut9Y'(GIDޒ6b$|&4Е %}}5>Vx~So(P>s1m Qz @0pm 榣 dRh>ۅ2B2$ߎL1_ōOs\#_j; !fo=:s"Bƪezx ӗ2Ume]oHv,1:V;oXϟw)*wa7NL+W"%x:vs^&I)Ĺam;?B(]嚮3M -'(WGLV4:WOcº<ɨ/&'8VΏm̓jil1IXyZx'H$| 7reIJȑxI/j.ld Q1q^IF7Hһc%| 'jS7bs"h _+czG6h>+J0I=tJ>Vz PN!X$} q- "k'f[<&oTL7ٽ j#MY4_fgAh-čMx9ð:ߓRvAo JyV۽s IyS;*3( sj>M>F u$ZPM:}}^||f.Ĥ-`>`IOhAr,6yTw sLkO!&u!>ӧC&6V㱅t?ߏ~4V[={{ T\@ dChH 8% ĞV ^yOШv(szI U 0}ʮyg!Y'ʮ׆W/8f( p0P0jå.Uڹn4c'@%+]9+mmsq{!$9OH c4/ΦeB6sOT\-pDXѡp֫oT}RĹԒ6%D 4O21I?n*^n$}mZ YC{[xOɺj$wI{2jShjԓL5_FͯruJy3NԹ_]CcT;,<SA>@"InK$'i`WytY\nFqD4S"d|8?6r=N=pBZeM[Q("0KR*uf*OCPA\q*31𛤊x<OBsI` ?gN# $+۪Y>["-?'O5'onR@'UQ-ռ$}.c Iz̎nEBݱQjPɉW>R$h駡xf#4QI|>}lH0=2Sa I`Sl.C-dU蜷(gqx0T6m Π0}M_O1Ҽ/]|i_"]>)>dխ&>on -aZ\x֚Ñdl=Rd[ .fŻ]Guɤ-M~o9J؊~Njǿ=a(c䓋K^8I(:f 1_3-OʜpZZ JGwV}Ť }>rWbt<~)^\cD?otѨ^`@ E0'U &-9Z$(I+ /%`L))mcpr5oҕQ1Rbk5.qV:V:qi:q/zAJDNKHO՛IB줋E]w~N0|8eRQnFwB0.|QiG\dC:cܷD@syms^C9O sżF@LJCW;!ˮ1J/AK^W /lzvI߻,0vL$K5I;:SJ\;N]_ݬRcuSHU) Z_K|lK[oaVF0}Q({' h@ZRUҲ_cɊR_~I^S4X}@ҿy02?yx nm?[\XFR O#qb,R]R=/F][ܵUP*'?폀t*_jv]]߽x7iGvKG''O0( _|]wZo^M pDL)#VЫͫ{Z;znD$7@+HK\=ROOE'LJo4pO$2 o[(XE̹>Js A=F23GQ]\Nձx] Q F L*LQHJ{6Q5}n!X2++F&KܣgonQAW!,Co}mܷi2%N<|5)Nܬ_z3΅u~gwi펇w˜UW>Fr )]} [3ZeJ L}'}꽓w>iҾ ߆8$q4+whm|t ;1[9IODIT!6:z'+:\ݜ~N~3̀T SA77 {FH,?K, wI!ffŢWAE-ܶ7ڢ! cTs7/ki;"e~K&1gײ:msgw0Ũ&d oVOlgD{:~?>xF+2uP~CP̞ͫp@rM"z. 9k1m 0aĐ rڦ~~-I^T_0h:);fDfe^0dA*{bUPAPJX+b &҈}bF #RǽQLgHzx.cZ[1j¤:Fu`]o ]5g6yc-Amr۶eyQ-c!ɡ`!u&S$Ej: \sĉꆔҒÈ٥Du#1j2m[ ioͮ(]&j6ڈjs@t`z I( #J5VpH/? nuN_Wb<=&Uq^٣[ڈn $@S^F qtH8xVv!,~hl -X Ņ;A:!3H32lR ǩ+2h MY@}%5@߭oi*+{KF̳US8>`X~C;y1qZ {ۍuaW#^} `פ߬zŪ>=$C{ňͷm0}9*LoS@J|#J(a0Kwt"KP:*] [.o+@RQ1zr&?UAsLz뺖[%o%!rMh 2# I*eV`J"? g= 5xz"ƆưH8b(H6a?5DZAo[|_o3;酤O%ѬЗfNq]w\R{-$=)UZY*pٹ盏qFX6y[N+vz>fچ I&"s&fJ_-][~DuO渵Qg15F'LOGfe7 "!IJ٪5؎ߩI%wD8 AsL$=d_~Xa&:|UOjtm: ξV]+pzz]Fd\ }xph+${e-8*n/kbL߅ݯnr??ߙ=dMھ,79ϐ^q.WkY<-3Lp4> M刵.U RU)0yi[.Yˏkze ^jHoVj{zj~骤QOJW5cc YQ?4^NW0 0xj xz=`coD<}zsg K8בjJ]232dYp66Xp[tbH E0)"ҦF)ϣY(b|IeD0S6I gn؊@_ӁT0ܩZ@B{U7vB]`^uC(C"_:'Vn9IODh% @ҫn1 ePOƎHz-~߮2^ kբ2}2&'鿾y˼#KeI0a=QgUU=ZQ@Iy88I_Onʷ T=zN=DTr0=٘Cc׳˱#;5!9;f縶yN7v^IImVk#e}?W[( IQf(o˫M673y!n7=Xa7p52'PsmIȼƘ|gvkwģ6ejiLg>:A9n3%+C\nh=rav7Ć/_? ^ؚɘJBv G>\c1Ƨ>8eIPY^ܲ I߹-0FH#2UUC;? #HX!u >=MY1It{AI͡ԺF_{ ӓrQ0vaRtTVRۛPZ1BϷD!UڝֿĠQ 3hir7FYQ@\Vx| F6ٖF^ w "@SJ䌃BY 'aZBɎRC+Zߡ(Uۯ; FSq3`*@YYI[C%IVv~㿨x$"GE*D1srKĮr bD L?#{E`(!rORMysw[2{ g2E.YVJ<]{@ %}L!U ΍W'V:a#u~ EBklA,n'Eu3ɡ<`%EccSǥ2;EUe{$$},Na] _E< C0}D;BC?3'Pc|镍 ~ͱ~hƘW?hCUgf?PRz/ի/i\2G_14J!=(aJ HEF3{4ˏяXr  q !Fb:j;g6rUim&1Y60~m̴ڸFz5]Q=1Yش~?x-wO{(<-:.fkf5 㿦}hIkm<Oefp<7|yM%!ԴJO?G [? KɌWؒժ8+1i7^<Ab)-t1\ }Ψlˎ/]RADwZ9J=8胘Ӻcgk/+b?=AI1*No1 qr$z73\+`TBpZ[g.(OȲG":wa@?Z"1̠DiP%d3ݿ*#3tTL vDGU&Iz겜'ۜf/J9L(l7&$ݪOHC4(з:%6ۥU$G+7?:i2iC"qt:Mk`sc ө26 zϤǃHz ӯBĠIk}WIjsն6L/(hI_, ZQ!-:'4ŀ?((0=S8*)F\!K*oK+oLy`tY 70L/ya/׺-RéX+-\ KNif6efb_<#׽h>d 1ۼh͝z~Fc=1aPrN"diZ{D_ਔQ,6zt HiѝvWl47!B*vlRtO|6O J%ʾF_Zof.ux(.!zU {6 1a%Aސ;hGZ~Һ"6HK5mJa_ڢ5J%aG\.zВ"q4thS`vtqN(WZAkgj.$xH02| 'E]BpJvlQLOX_guCzt / @RY@kZ>DQX 'z5w'0zn:f~^(S)I^_fFIM]A'艫uQv @]Ò=\8>m}Ȋ~[#?mCi䅳kn81azYH{5z)B j";d`Z\cz:8֧Ntb=ѫïCYrhZm ha/C-=܀mqIrL?&nOc[Uf]D8&;dq+u,٤p<3OfƔ0NqU#1>鲩Ӑ=sƔ2*m,~ʅI5>C2y>D RσDo]iTۯXkc{{eɮ(G$1T֋>|>R$GЎ$})8GjWjC!x\!wwQGQGfF 0w<&|߭ *2}TDgss|H(Jsuh?XmFO8f%쀚Tț>C!x뤷j5v&a}w8ci\뉑ih GW(u{Ϟ'wVO2.-ѷ-\Ai!2+C|{/BY _lhUaBRRQ>"$ @GJW({Y~1r^i8?5A):oLbGϷIk{~n_]P r2鑡ۼ%^h v*h^,0, +sq{=r "!M'--}ޜiLw Rgũa:c kz>9kz%\6^>Fx ?be&Մ=Z2v K@4rz2R9`]m0}U)iUL NKɺɮJ^0uOι9Dw3}BLߣy}!;w6Q B{`M#?6go6`W+ۄ~}&L_R0la.TԸP `y]?(*\ݬDo3"}YmEp''UE&@ÓWaK1A2s4LZ_B5(V6:Bq(>XwMDg.lCd`hUɄ<} Z!ĐxVCg =k(gOR&~x ]\nobu;mm5xQ^ύq|WmGRz'.5폏L ~>|nWm BUrHav!,tZNl_a9P=oQ͖VSI޽PwCIw{ ks@7y&aA:5fYUJm*1ܷdʅӕSƮ&$}UHz/OIVYLIg<-}u8@̈HAdIc-hvϩxT $Uys@:R_,uva1/0.FmQ]@UPMg2]H AVzl ;d  z Mv cdYkۛsehE1`٭OnFv4}U]tPץa1ӿ}!-.\~+#vB6{!L"8 1I(]ܴ"*FWZmu<S"q`Y D$>8uYc <p3fh+Q]w{Q?Nd?:Z 6?# 3Gs B<Mtk%y' '2 CQnGsD0, @3}CClZ`Sdr΄RE.gJ"4'TVƬyȇ.:\Zbĉ$)q@-6r NEVkV SC۲ PNeDE`*J{,$vkx/s˅vEy渽5+7ͬD9mz>`t 2ZWfFeK7W#7h0I{iRLVh8&\H#\D:E ]i߸1Xo:y@sfmoSE5RET5x#I]/|mXK^5;TrC&E $>'+_<+C^[|/^70ͧ!62!(Wнe.,LaL3c-Bd@e~m6=%]zxqUUg[bdA%;S;*v c$uZtܱR~phJf\}-Vq^`~zwdmG=3f((⧆6Ld2@Tx 6u}jCYӶtO1\Ll\wK?h&kJEPԕ4 DE !hV`g00vMcWPhb K(J=>uR Gj}tF)N>*Fiqɘ]&p ~]~9ګ;]T}_(&;cl:SʊC$(NR{2(U AiC褍FA)-u*e! Rϻ*'f3WW7R|hZVM~7hs߬^bJq60$V;iؔs7@{2%飿 K,.:Qޭ~Iea\ߘ/[`}v5r ? y$}16F^wFv~JopfRc n]QT< 15CKd$acg"#; (~Pko4LvNH{uM5zȄ54v]PksSǀ,JMa}jiN_n=+EWWWyoΝo(*-HL0}_:8h%LρMk\瘉}nIa\rIm \1j3l{ashpD_Ad[-k]8ƾ=suP\os*TLɇ~7\Ж_X0)ʹm=;)3#@ک G^CJ)U @|q m W]h? SlE%?mR'v^=}>Rτ<{ +&#IZ]YJlZӔ!2C(޹wW\`hÂ] Ł{k3:g0eIJ_.!;19 쓝_~NpC oҔ H+Cn|IN\cm߯VaWkJADWzzF⛴~[ ;*څ;[ph:33+y*Jʸ`3?ti}ҼYHz묥n͖I ^dr$}r 9I3TU|5Z7HIj5X뾗@W,m[ 1[mzD^U5jhFhQ\6\(^A+ #'ݹ@c<@Oғ@[trm'oLЦ?,HKilzvHWŦ+_/>w^L0۫K6uAu/ohz7{!j{L;"  K mЕf(AJcqƤp:~E9jƪ3q&c&o=hLQF;vmuǶ-Y&}MNp]L_ 0IR704g:'&1~EMXk7 bև@0MͫPzg3:)JB(JGB{>k{do㿴xN#Y._ T @]Vh*_|v֖gH,¤VֹGד#Vvph{{*()XmBLI)M*|Yhcb@֮5>)]v,z9c&|Fv@f>Hb(TØжM6#MIcVl,W=a_*1۳@6Hz:;}>''?3]Eّe;W6n7n)%$׿ PZ0DN#kjm&$kNJ.n `n ~4!=!O I 085K#^Lr+Ax!SIT` I_s p_f,UW(m)~]h!__ ̞5\[ Y d__ە5R񟔌KB!gv ڤɽ&bm)8 vo ;V5fJ֗ʤg4;9\~0-)Shaj3"Eo3 NǪ |87Do3D}ujlK>*E"b;Y9, ~ZgyhM0,9:iZ-n+h0c3hN+mDa@]PVʏ-m¬1}u+xLOϊzysT@ė,BgxVv @HI QJȞN&Gˍdv p sf1 , $8|L.r9cPhmKf uQ/K J8QLDFO4!m3OY;ml26o#t1Dbt wD *$}Ӷ13YINҿ{\\uqvD3n,73́jC$}]x0LHV]^rUxah;+6\ڣ \=j!@J4x\ᣦUşO(y$qdώ(UxSp@[^ S74=Zl5 TrFgV1 A0?9hp2[=B @7f;*qһ*o>%0ORiwe Sr[vJ1 vlnL>#jD|pn >.'Kʇ>zJnɃ<a֯JCǕ8)he@+@HvPŗCA휤wI>F[.@Vjͯoorۿ/4$m/i= I/~Gh atMx+*=83Q,y9kIt-2JH[w?3x?OqtOL_XB @6$[k)7/h>!uߵISd{i `+̃=&XHj3֦qƐR]#mH2{*SEz!9*]gm&Qw7]f,zI ="C4߭ŠIg8.X55k~r@zLLgbV̼& ƺȦQXI[P1cLl wSWmu @ZRZn-)KDɟwNJ_iu@n/Q'cPש*@+n~^S!K.[KH*!,JB| E B̸s#:GizxISɵtiχ Ve/d)3>{!]qb+QE14S /[k.'UrZk#DR I,ZBhH$?X!s6Ť5|?V@ %7 /w&|5􊠴ވRH+}kM/9N?rRE/ 'm~Ēwn?6Ǻ޴͡j Z,H|$^6C&)dZY(֚ցK,>QA@M;siz]YQ(XE:Izw=*\7/\!w Je~2Z݆@j7!ӎƺ9I_n0^NXycӤ4v6߯ʛ Ij.b5ʟwE~6Ku {c1@ @;IH'? 9($ҊNN|rjP9Is]Η?q4M0on f@bhX]Ϳ.*4f`UcjzvOץ3,U!P~9c|[4L*$1ґW 2V Dz^Ɋ"oDmƠYS?"(zo9df˯^ Ŷ<>1贫ClvllzTǹpXdY>sJcvk|Xtu~`jsO 4r|W~G1iV5oKP oT 9.i>>_A=1 "oqk)K+$ zZ!D譩) ̜&x%DVLH"#_@Y|d茲b>"r l1؅F:l1au҈NV9MbsDd9e< Z5-:UUn+Y\0`CZ2 %u~*\4BtLwAOүW4Q2HݓgΑnDD)˪,t5:w7=qہSе(g(v__RX!+ftYr;J-l%6G @AWIz 3LթJ(k)5Ii(ICxQ@;[|$qWxES0`/WPׅ`R6UZ_b CHv=4 tV2VX֐ɤ t,ɋRHK^r n7mPXqE:=]hc&R@E]ۭד_<~Ho?iu}HLeVڮ}4w"F뷣S~t͖eOVOO3OcZڳKDds ]FuwͣRjLvӈ)gRk?Z>ɏ1fZl>>V\͘Dۗjp%^cŻ|S0"Ao(2:V*aL4|SL6uU1ETkdpK"ƎHEDJ Ai/))/}'C ĺQ1T_!CftbL&'ZHl0hfF"r-#)9 A y%IyjEjD3lqrqUO(d%vh658S)l_τUJ8s2BH͛T;պM`zCߨo7l)[DߏzWڍv+GG~e=؁7ɩt1[OPsł˜ sLGwߏ$Ăۛo Ik`+!^QXw{jX^ܞXout]]`11˜.2D2y'd<=7Ƹݑn"p0K R'n뢷wu#@>ꎑmt':a#W20g{t.q&l3&/XU*@mM@ 9{S:6$4b @ _l~w$~"]2(J4h*Z};U3 ?JHRuGl9BL!b8ǐ,62/r3OK(J#K$ffxqao5IA)K ` L:';n߆լiT.؝ C\u#zVU9$SQLEj m?pcB}1u|e[W(O*yFoX{܇SmIn01S6}uZmn2 9NVb_%Dm jsC&I֢YFZ1NYnʝo6V-#IꜤ_(W]LFrYC@WnBN: IsY>v"V!#) `IS 0l K BjZ5tu-5l,;wFZo^'շ *FJGգaIN{(kc= j%FnHRV@9qlRF{ovonzwYSXIat\GlEurlG}?sTa&q?KcOgV,Ktj,R7fGTw1vRы%>\!Es\~7ө?%Gɢ! @aWHxJdBh}85[$82i@N3!9zE @`E8N. X p`jeh*ml~ȬQniacBT.zc[8y`z-8 ^+i5/D 7tD$VE ,uaTM/Z{Z] "_R -x@ O)DI*E6fUN+ވSDFNٶfnH׶IC[L#z I-74nAE-7WOy^:Dj!7nN٫oGjy5zξ.ׂWS{u0̕69I/ [Y/$n݆eVP1] zl8'8S&KȦ I_KXE^o =I)ԮbzA8^_~'2d{!e]X n_Ţd _&L^]Ib#yd|ڠO c Ǒ|͘Ldtj71Xh b*ɋ(MZ#m! RzZ.9%w %!4va=ûx8x~ajmoAk=ÅwGo~DZ#[OD–aF6,'#f|D`ljtٟԌS6ޗ؅"2դ8|dEh]i1lN$yU|;0֧Þi:oz*ѹLǕJKX6&.5JX#NP`KQ2F}& !CƖк 5G6ESu)xK n4IY"'U<-gS`ac>UQMT7Uhp߅V?u[sJ Β8uV>bh)83TYJRr\v|߭6dUYBprL Ց@җ'R1^U rNoWw[Yzs]V0}Y9Ih }f9om. $ըڰmNo˷n9+mTu"˫@=vcrɗKbHSot+IwvxMV(Jo+}#$=_JkXp>:Ƅ%YμydkBp!K{G0}a zc<5Z.W u@Y/*7Iy }:1ڵe]tyoy8wÏtoҏdfov]^o3D{Xeʒɥ_H3`0}D;"AG1O6:GjDpd`Ȭx$+ectΘ-=mXƮvW9TU;gKn}(S @ҙgͷd.R1ŀS@ x]4– 0;6r*WSm I}KB ix`j-r˟kl9fum{p@֣z٬<18._ϜUʙ߈2}Y'$)YRAB Guq'T-`hk ?p` Aő< w{e{~_ z:IM J0=uce"2L/$nh*f RM[~3̀ʻv{ݸD5-Zv yQ$Oq+bFUXS|e\P"L@X!LKqwJ8Ņ}eHM@-1)@%y h7SR@{Sp-reqv[ oGNgNr. *L=Ҁ1ϑק Ž{&j?G"?)Eۓe!*5L>aw\2OP޷ƔrE ^i[TTj.1Rs> mPG+Gn̻'|sI!s1jQ^5X层U7AX~Qrh[B`L Uu4G3F5L1۔f*(u T͙\z c+*mF6r˲;a4DI qIg]4E̩eN_o5˖@IMw4!n]hՄw9QHC.^O0M{a@+[TVR7C|7%_ 6|>o<>!'[[Bs%\*mo;1_2V# ["[LL6Gjಬ|Mn(gQlBPTW3Y8Ug9kSR1L5kBsb bn[uع{69 %}vS <=UDQ.OA+jtZ})&WQ]bY? VIQ1Ͳgi>EZ=럸߼EKʀL%R"g7o¬osoz gSG'4:GlybU Hj;\4k/LRE1E7 @;N")E>hU`{~c7ĝGZ#wK3 ZU&(5kWSKy;Iw)#y0#'_(!"磝[dIUR;kʅ)\͠ U0{Yke_1^3+8܃2CKR!HݾFObNKX[T0RG T 1&'_ݾZL $7Sw 'XK@aѹ,כWX._ہ{-?X[l`ի3{殖БIzDhA~N$=+/t+TYxFyx-J1*i"WCIe05Y *n7v8~u<Ƽ-䞦{6x{N I^@!N1}QQ]-0PC %„Ʈm1&C9 Cm( ~\V\?~wۈFUSv1Kߟ6m\uӴ9YF3|Um\pZNY]MC煘km1({O'x9pNݽΖh-5O8E5J I_sqQc7IKb"V /f\jUhn4``t-~`_.j}=!o_/^!UUògMITmNɌ1}Sԟ^~W_bӳedJ-[!`zm~={D_9(9FQ!X+5Z[3@J-_4qh֔cz3L<~Ӓr4[́!&eR44D`ȼRO{XU~aw J'$\7 n(,ۛcm3~{/̓PXO8O{ǻZL'P zt;=?II5EL!c>%ԍR(~RSIz=zReHYkLbhG:~4.hUֵB "~̠[*b kDHzѳ5ծ AjYƷv;!GO!2*a#2ꊁzɘCPJ%jt2Ƒz>,UD -r'ԩk.ⓑ>]L"K,EZ/}W'Gq k3 Bҋꆣ20![?&9=$={DϭKpK1_yjU4<(X <ʻ'[x?>U4׍H-NVnf_[j\uBvSݶfu~ʼX IoY滇+lD[K8'S|[;}g[E7ھLQJ;jB‘z_Za2?\U+\ I_T^+MTQ|)ReJuԬ7Y6V(VRC;xQ$$= p+ލ.&;*֫ا횽CWtɒަbV~' k0j2O9s $Jz|"̚tH1E CQ5&J=NO(3j4C8ke~bwD/117H3)s#ބ]v)穑G#,MGYD$iP|#,kgVE J=sY \Ϲ6AG IzLi ^QxXVyTJKN] imC.|.<Mo)(5EV\ l>%pt9g29х?Ѡ4dlQۧ"yau-$ D?w=gA*&&3Cg%ufm}ctjܮn;8$=M/o,M!:)0c!FA58ʇݬ)O$j>k %lc.5-`YXY !7-=YRqImێ@W@ӍJi Hz1׏`uu=wOJe65PX7BOү>o{Ϳ@%ƬK_ ]WR4pG !hyE&XoS',Ujp1OUx/uLlq>r&'ěxlCFO_bltBn zM6i\{IpR^},1ƭzCCpzDo3 5wch)y=%D[V Žw()T,.ʆG2K% ɓxitK>5LIOW+mصaW++R4`L;^_y*Έ2pU՜QHJUCࡿa-^ѧ/ƾ=qDO$r=ڳZISMX k2u8.~s…T 뮉00/mk- ]cVH:ZIK]v߼z 9!^U- J vxzETϒ'\2`Ka4A&;}ˬryc6JmRi›қī/ u*nS&qO@H>>$=AgN~lK&>UYd8O=O%?FlZLN꬯az@KI DP᧲kfgSlv$<7/`pՐQ1M+Yj vn/?u<~,]"si'\u p's(cQ<ٞBkcTW-.鿘40'~W@3…N RS9UHžGQTtv!}Qd$m#Rrc<5fhW> Y~J9UEv:IS/v@dԤk\UzY Wݔ}<%. P}7@>ȼ+'{?"ѱ==eIcgQʫRR򞉍}Y$o9M2n ׫mXg I{[=QWEiUiV ˜}Z3i6*)*7򾩾Ek $KMN?p8|p}w;[1Bt&_Xr^q:ڑRlխKCs\DZq0}p!m7 g!h` RgP>aʁ>W)@!$_4<㭔x)f*@TCyvi}feRY/|D.oѸ6]?Z5mi+2ʌ8ޥOk#/. 82ﱹIl1Gn}O5XBJgcV!Eq@vPj~z@/X Ѩu|98$[܎Te g]ax rvv%-h>,YpQg<:1Q}#TSG|L8zCCT@ m@x Q?11&D >>nDrS1>IR{=7}`$)L`/|ݼy[Աt̀Ij ^8˜e_&H T7m T2VtT0킪^Hv B !Euc m1!ǤY`JfSh/-^bNY0<2^,!"0vq 0)3g1xF{R`"^!㞑ƾ u V$lP ݋'KHV'͇ GJbx19㲶P~ʍcesgL"^=q_jOZnn\1{kmOEa ),DuvzV+7M*3ed7l6Z㜟(=FY S$ՍF2,U}iF[an:F2k SF;W@ӌl+s^[$}׻0}:֬5iAV1,@RFR2, IC6z>ڌ{#lN[Ҹuf[Ixa囿l;6%mO]_ $}3c7r%WJ0ShWw_LU)]\tEŠL*r՘o](c4 Ww-Orګ2o<<Ґ J46Z*jCVaN6QF-Cm14eamSV*^muљx6^M3wb-$ >c}۴X]=AW`v).7OmR'^[< ~ZCK]ΝZS#@Ư.OfbRTkpLٍa$̡>'1/_8[z+p(!yX*Ϛ*¨!=3ŘOQ`p{$|.tW 42K(sZs8*y}ѵ"Km`@L$U%Èum_J&5.3 ,2XG, +4CQ󌎝4sFXun0Tƾ]pf6 ,`NLA0}:hT\*Bӄř:'#}$E"es~2I_WuG?HQ^0z#Sqf@;+[U+!9,v*Ј|߬oWBvVU@ҿB6? =Bmpҥh]!8 W&6 N8پmj*<>¸*-G2F |8(7(gz$"聯EHo[3;1RT(Fb-c%Eݓm5d~PƝ%$5Oa\HP,QH18 k{~/="~"_fS]Ġݓ6 z^-dq?T6F/}OShhrAMAdV_'5bYw!6 %-oVVt>_d< t*r4YhH"^}p.\>%4xz>О4Mf SeGL/W+뮽ׯQr򞊶ٕպEQ{猵1)ө:lqA6Ӛ޻j T%E#GvJqzN)[n\ @M:)GuhHV ޲G` Ox ?v~_Z3\É(TCaմ7ՍwO<=ϪxO9/,vHz;NxU _mpQTRF877`Ę䮷׸V0߼nIswu~* ޜ3ت/Nݱ@ I_kH[@d5L]_El'i'Y{WR/;_ Ab^wE' c 0Mqxsdg$`./6cX EcG)f?&P?nm qR X$KB[QMBwNqUCb1GS6; |;-m3~Q&Qσ gcc^uYmģaϩۻOmW21PچgDPӡC*dd= fR)e^T#ңMf6akD&;I6+Zz/8::?>[7'6!ܹB .1<-(OI7cAN)!(+D7N}M,kEǢt<`F5ǎTẃka9A8wRr^i㼷( о F3k!P'Qo3AuU@飱-}~B瞤׭'S)]k^T7UYv5rҹ+qFu+2!5$~YI5C@NU7u+bY +Wҏ).oF(>Q ZJ_͑iRuS0~Q*!˺KU&,zV4YZfBܝĻFqV:'o/xZ_f՛*=lCGW}sYH#lQh"d$eLo~_qbNA*GzU#a69+f0+1@ʨg>Ẇ%{E3?ӛ B\R%o=p|B긱m&Ѕ=&;Ѩ$R8?*\'6/C+˺m9D9Ftr&'_0I?z4OH !~y:QB1.>]zowsq`ͨn]⧜)C6`}^=#J-QodwDͩ,*+c CRJ7&r(&TEL$,R֢WA :uL#@WO%R#ij D:i06DEB(=Bd}) "!Plj +󖩽;2YBQR(F&^c!\wpݡ^4v(W޵Ɩ¾x$& !FMZK(Rpհ-gBPJe{1:Yˀ@? 7 .7ۚ 6ܬ2*WͨbCњX͇}(+1U7W;Nn71W!旃Z+Gv XudxwzLELHqFW*v4B+~<")&@Z $*[@q%8 Hev=f*0}{R69YS$$z]͉vzLj+D.盔B$z߂gU )<0}z1c@ћ/!|Oʆ&ƜG`1ϙmmK3M&R*+=5Fdγ#` )Vnǜ}#+K)+aQj J/ P+ˇ~䢈OqKLLO^JoFL"BX'!ʟ)H˨h)W>W~=k{,ʗ:w/LɷX{=D9e 8h@]{m݇OkD{(%)A z5b$d:8!b\W+68w=jWwcM*7j W+ B5@Y&AϪBHzC&2:'z}:˪RR46I[NY-}W*xfl7MϧO(8J˘H1ۮ!e:d_8yX|psґjq|+(De1/ywaD?_&}a(>Fln7yf".q$Rgsh%:r`'mg@]'lY97ȹ|RoQ6 vͿ{u)>8FÂJB¥KnuBI7.<^s'DPQ1@S%^ x 'E.2(N~#R&~Sg8~Nc{JS>z|s;=-K*g>Z{uW7m@|Ww> R{eL h)' )uꚂz^"ܑݩ/yb^HS}0tXF1k %ii#'9¨һf01L6(¸z0'/Mg|VeI-!MifSd '' ީbrg#I/AR䋴UmH-XZ$M@VcOLHz6g7Z"1*m$h~W'7Y%.&1}YoZY W_݈^:vkNa{~ 3PA43[.h?:@K7 B(jDF-&ץEPǣys@M0d_~Pjح^qZR Z8HҊ}K؜&= R%TBĢPX5\1"MPv]8!P^6y241pQBcā5Z%ϙs[ևw_isH|YcM@QoQ ]*靏6֩RʄTN5 IΔxH{@c8IujN4Ty!2bPɟj\2#WEH#Іkn=By[͒7u5"GdU;Rȼ7~#SŊhr+oLߟ]NbL>\WkPW@Zo2s֞]߈G0l Z*1e#ͅ`(.G~\+ "½:Rqh̚=9aEeKRnFvM "U;v‚Cs(IT⏿o~>^j'$/t֘pO'2+1@^m31O3~ZC[ =)ڏ]3qqyi[Xі(.T$"f'MsYUHbu26WR7cLE.tJcW3!hR -nc7LK{3Obv{i4ӏ3Iz`cfV>r YpNYI׮Cǰ r\Q1ƸN*$qM3`h8. t0o6-8P&eVR2Hh<I_1W7<\WN{f `WR_GHWnd<1)łͰx:6`)Oq֠ .7_\Wu^/Hgo*Zt&kEy]3hY2?'"196j4(MTژM׽8Z]a#p,/pP{i9g} Ey/=&}O?Ƽxlʾ96Y)m Oeܔ5NgډFSMjKGqz=>to?P0)LYkk)g?PO1#' 1x]пҒ]`X9(;g9:K@X1EIRId;U>8^ S(f0^Ru-_sLsM_vθIud""(U!3tđ!S#j'cIi&3o)h7NT+5\ny5)+$rkSaB˗s z.I]n&ұ/g8Et\BWU7/Xo/H{snr[m(ϴ1l6[qXۢk$D0_vG2lw:Uds}sgP0-ai*$4]HM[&1S6Q]J!R8,ٶe8FbT:(vt1J75d\2̹у{x? L{LA` }ZTᔱ(i.v > 2vu{ 6lj;Qf (7x(5J3VQhS}, 䝷Se1 O3 4EM$B\h*546in+<hh?9R)1p'yE®;hShYfα)7ضh\R˹(:k9mZk[]Z)_(ְ`kNvx'TSe3ZJ#d3ГfUJ]) F ?}ArL 0sLW&Ef zƸӷC0}GR tRSQztm0r>2X6ɳD6p]v6UaByI(K#~R3a{8,74U:&L߰|؃Vɮ҅6Dɤ>OYo <.QNB5K.:n4YԋS<=9uL9 Ą֚?I "` 𥵆s^|lo8'}7bt@b.P棊Y1_ͯA95HGiP){$V[IDP)w'Fk^lY3;=cE}\v6 /5kQ* Dk:wmF ӺfOw!8m"OHܗ\8DKW)B 6@rr\L1{9oc4r/fIB*].b),.9ԗ?RUX`R(n0~iυ#4h?",L_އ\uyF˨[sJQݟ{0pkcU:}3M뇡iyyRFǩ|w[Z\ XI<ĉzKn`3YzS#&vh\5st !F6/y8 Qp݂/̉*zA9۫t -d(? :*&S|-|<]l0x hNon_~ӯFK]:y?߅r48.:fm յa}x=(\iԵ.͛^oo;ޏ^Q ՜ؤn6,z $rORܫkz#8SK]6;J[FP~R&`ƬEUɗ-8h4kaDiz/.(59!tpi LObzJ8j%%_&+U] K3$9'c;2r+2},ʍvX]*\Txw06Um @UCCBiɹ%?ӛ =z%N Wt9=~=:oc3f=J1t5rd3+9KZB'z uM0qqJDiΊkڌ,WƸ܏ǟ7ep!*f<\7P2{+QH ט( !鯶_IVioKL2 KO;R]*MDJDZ\BH0ːGGҽt/E!N򫯇8օǪ.+&S}r^'bt׳܁D ;\hSaV<bTJ Jkbm^:HBC G5;zhux^jZ ǮEz曎ApLddn㾨M687h3G%/ `6Is颐 PrhA[8gాsL8z'Z$uz Iߞ^~E?qɨ ].Ji:%U43w[""{fd1=5]Y]|13P H/"*!!/IգGB`6eub@>K:@Dsh@)3\pl) - (YcNEhz }#c|>[Ar kBbN=N`uw%xxکUI]_“7~3C1}O/au5IRڱҐk?s MbIT{{Aikz[\CtmYS&+ ʊ%Αj=cchq!BZsR+hY3Go!û)7?~+bԚq(+yc i<7x\LIe}BnO5H8tE0~nySfD<$$u ;Mس?=V۷s͚_mCK-6w>2o =ǘ)j 8,Rݞ9M_|6jmӛ5J@q) }mzsy<ԟyxͣHx\ñbmSZf(8cd4)쎹@.\k 4<uۤ0Co3 s-HDB>/nb"wMSTq6_-+z~; ?; >I^Jtf goe|Q{m!MS:,.DN ~Zn5"H[Ei +UFμ~M raA Qju >v3Nc'1x"굿UB=LF/S⍼*jYFe:ٸh6d dp wƁ 9D[{Y%տdd vx3A #ahu2}ZQؗᚫqtMuHfW2F)(iD w)D~7= g'Vf?΋L^ݎ;x]ɳ\scTsl0oٌb&A?X)Ң*@~Hߗno.Lv_T\XKvͭODT1R6wɃ9 :O"fGEDolZ`Tk4_D۪$~H|?*xÙ:\mfuo$6pKj|Xɡ`43H%Yg~7=l+cs57gdtJ_>_7wpww72v 4!>\">4hHpoMʿ9:-/|Nq-X]bHmZ`R+6(rUABDn;`+ĸ4*?R,R9#5M RVЎiV3jk9 ,AzQ:@o H1xBENϡÛsST6~4ԱT`s5dvob<] g p\Dī}k$}B:/K{Co}>p45U @='7c#@yYo,l C`g1 O?ou/5ac'Skms* &gߚ&_z5/:-lwZ "dۯIeһ$@m\{ԋ>?rN"NATudpY"K1>H֜CXnwUa@;]y.6Qر\])V왦pVT7MD(gFas֪DfVi;ϾO#+5:^FmQB~{k*:\Em[[mL=㺚 fO%us;/DTg^JH%:¨[I~1 0G鉆U@z*@ۻ48nfF]0[ַo_UCqhK eW1 BF/9ofѰ|#F4w\կx_ƠƧ11k~` l+d^v\SRpzKn ?G܉~Wt`fA}[# O// t嶵>%t90.#:]O3`>cM'?Dl11ͤ M7 /%BUXug!FĒg1^~Y-n ,[mH׷hA'!R&5&g>q\L`+C%yG2'ƶXfbcZjM `YOQ-`IB H/Q IK~$uѕ{i@7juns]ҫ<+~@I\Em:a2/x|ٻ30T^1C#{lzQv<vAF2|Y0+ f d&Pl3pqw?l*͹Rf۬zk5MY̬͟HUC.@ Sҳ9"QTJ ,S>3'q`Q}rØνYθyڴW -2r~支2eAF J '2iF-^Pgߤ,GU|QV?z~_FUZOlgtRHoPEi_],[a%,Ixk]!٥Ԁ또[G*w3j@3]SEK.DtجLeDO!]YMc~~6R`{kCRj٧L\rŚoy<=!qoX:"fJx??aj9]om*U t~m>o-Ve~9fw~ ͏,W!E}-IMa'`U`˅sg&UcNeumP]mqX~]8?S7sig/nzTdZ<1ȖH(Xi'![~vp wBmx5pDyzĽ^NE2uμ g?G ĝSր',/;Y€ɳ1|J;** F5Y1JJxhQ .q|*vJڿwQs&I5<+YeEdqP܉XlZrymZf0Uý$_24ŰB|SMĤ7~i "Y0!ʕgx:Z6-c,2n{LP맲 ?)f%Q)llIZ8jx4ЋSFV:.$o^"_8 A5%Eџx4sP|i@i7Ů#rQw]ʝH0NTa{B-fH)Z6{A aٺK+Ǵc޳<٪342Wi8]xfٟ?>"jWC ҋfajyk }q)J77TX7Šy5-5O R6~BB%r&UQhޟ~'~a UHqg; 列":o ~g{m$oo}u:' "ToR3D&=\96ÙV33+"vs5晙Hq}NHo"qT3x| T0;6<_7pύV)\fl,D,]$n0 %ӳEXA[utе1U~3;i/0̸KZ俏# y@{KR2Ё]G?tW!ɂێ=r<)#bQLEtYf.~Rh綹5qQLt0y'e3ޟ +WIF{~`ه ϙ pLt}䡡p;|`W$Ј7֍9q1LfY[@Q!/3Twqn׮/$YsbZ)ܚhuʭPr-O"6C<:Xٮ&mtD&ֹP؀#v;䅢ҹ̽*\nBYy^pP@S|R ,ە.@q?sgʛPK>Dl $XN*t^j>c~+ nm < S߿Ö}v뫛Z=Y󻈽Ť^5YͦbzosBy,"wo#&@enҔSL1lY,i~kDN|tJHoӎT߮*`~~3<ɣn|_ArkiV&X nX+!K\L4-ɴk ;QQ}-.wgE-rT]`Nš?&7('J|׍u$7RʀD< l'(I/\ S (*q\$zIJ&dt4:bY%ElV!FMp&ex}/ܖc8kR=HQX"la@78D]KU=z[WaG`i;op%:YZb$'pN(oc1 j?ڀǧ00SM :lp2!?y}0j$Yd^w6qY6AzF^L)$\K}@ǵ}|<AOY59k O6JXfzTŠ*v]o?|DNb*]|8.:}p?%-U@yUn1`e_C%E>6Iey1Ŵ<_Ƭ5Q*WzE#vNMck ^l0+ׁҮӤO54жߩrXN?~_fڷ_Z}'d;UcPB=گt[ 忴}TKKλEHk^s&;Kn!JsixCN4(;/~yT cd_5C<{KjĎq4(y[0:߅8zYѺI=S~,kԳ4w&kMj&>T -b2Vk[[5ϣڶGw LRūW3g킔tōa@BH5 B5ͨlA9E#qj/c^.=>*7Ft2$c{ja/6=6(~}qN6%s{$~[_Oxiy|8VLFEiGM5d lK۲$Ɩܗi~Z(dHHVOd>'쮡 C"|?[) E-aH f!Gv]5sL@jRS j\j{s .eMJ(u/SA23,U/}.  KO,4JTF|hˋʈD)=,@o˺{_[TᬤsU#5YJUȈu.KD)dZ*Tg|+l-LC2%`(3FX" c2aMo~Vo,(˓^Fl+Ti"oe$xv5ƺ A1gTf$^צ< =K#Mm9uPYu+׶+gzXj?jբlB)d镕 PR>e3)tEM_@z%sYub>Qs)fQlzb}{*(0 ?Q_I߾/]y=?4S"3-*Y mnzQݥN0_,̈Q!s|)aKZMuS/ڗQE%3 o5MF50 &)&UyoӤ}atC?VÙ#gu:ps/=cw@"xe>9'e׮L|͙4=(/'i/Dz5=X֔kg+b3(G эN1-}gvեvpJ}+j5w ]I[2Hl/ -U29: ,Q !B\EeWX|bX1Va3d/x sbVk$ǧ/3vp50v0Cm7vL gC\@:?"]a;Ah5?fFIC%"!2Q5*cȸo|ːyp6=f=n {g ^!Qpmm_vUQS3:5s=}UUX<>!˼n{8y&,9!MF' e ɮ, KM2߾e٥L\*Xl(S$kw`|ٝm9X2φ)b<@C Y 4œ y77Z-ҚdmM3&WIe*h' j?0]i Wm< "{kРS=_` K![:!9@$#o#Sل;n:LXP6Osk>^[}vtʁmke&(]8 \ F'e8 D C(`D˚=N"Rv{ v l"U6$Ï (m$ cR-zu`-QxU=5l۝Ǹx1b/2F8-5s$U[5-zP q(RdF֧aѭDN{ӯSvv !s"o To&c&}gTv[6MsI$Hd &I8e-=&B4y3g2V'X[ (!_HBD^x6JMF'd%t:zn<=d6opWy[ %h6X1Wuz$*P~ee`Š?=G̷)pr&|~-:EFEb vk1FI$XBAc+[3*H bP佌Qs"}Ci4d"yok;WBDg_(ȽCp[8@x;{;+Jxw@Zؤ"= "&5W1@+&UƘrq(fˤ Wl]b$'Ś11#Er7OT'MR]DV^z }ArMچ39;Y*,k;e#c*;Jf ! l:g!k0R !͜(MT/Y'DSY cݜNFUG/bn9tkX7a4h]`Wot>s*=, ˙|%jðVX7!)5F%ǧ'VHuIom}`1rݑ/~X(lzkc;~5f#瑝l 9Þk *ј1J?"LJD̐v>bM A*ϝgMC1b|>%˨x [ $ }e$fk|8tb48O+!NPb#Tzܟ>ňRHfn<](qRpz麖2t~??>S8?"mځ-fIȖ>Vz%eU#CiVZ^Ϳ'M{^+Wz-]Wו}Ԙ7uR{ #{Ay:y%ybwbz遞r`y@ppIݢ &@D16_^ڟBv*,&nkR!nF]K.P#r`0K~-]@T.U$PcjMNߛE2޼7e(=2;KC7uw@ųey{>VUW밉8s+d(M!ic'E<(J9Z&İ2=%J`)I94 VNT%0 a h x+,UJh vKM!5ω)d֮0-$#zNxDj9;M6;`?N l|¦ I`(Nk|KtuA%!zƄJ %zu6uZܜ!&g]Iʟ$ ERN´#Mb v04Oנ% {o _y篲1fg{ %#8PLЄ{|״$)? ha^I0US\HR 1"hH?ۼ7&ϵJ,gb2"+>` c΅a  ~u. ^_4,Wn"Z- Żdo9J~ a`? g1w[_tfgɖLa@<#nݜmq٫ТhJWU)9#NSMR ,0^G゚%F@^NG2?V(#ZrN3(Sguo{;uUGoaALfh9j @D$&f?˷sWלҲbD͘ k"S5:c 'Iw۪?Џ] BdDQrQ 6ek Bb/5""^䚔$ ,"ιhJQRJap\ u%[l)_o |lmhPʒqX_+LDܷ5HU zTb.ljݥb{%Q ITDEf) };\B2>k-E~1ua×C s6L.,mOv͇f{_m0"3xo9wD׵FDfpԧ*qQ\0FsjeUL3cpyN#n݂7;Aڝu՛F8^'\>NoX4- C2_DuP3'˂%,6H Wٮw[a5K,UK.oz=TzT~(iF52X8gՔǫ)7?ߧk⒋uMS{2`+Q/ S33hhȪ1+yE="[QUd%ehpdTe~7~v $DkthnDc͝՚<}7a:LzX7Ss.L1ט}>d>ڬqn!G8_pBDuu9oS2ItʙE[)MuE=6KAIzҏ)W U](;+֨ g!%$0Ϋl0lٙo#AE% ^%d @OF'-Kü CragڽO+lWJgH9߽E^8$QLZDlI+E[%U[5:BJpLW$ e櫻0ߖ~w묛ܜw%{ɕ^NtL2k֮J zyg$:"k!3L iK is@B6#DYSTWgAtf`IX.+?~ш"X;MF@4ҊCiWQ FY$P}\2>MQS8mV_Qa)MS̪8Ǖ{f]vz`DW*Rk<[%Vl&5S>'@"fHĸ~i)9-R͍ ʍ16r}RLO.QS6V(F'#1xh690Q7s0d ,Ĥ7lWjx(_>bk|yT.|{{x }w~V0O*Gc"',o7&yV,0lπ>Y7~,\hs8pqR6)/V~tyRߗ̀.!8Ӟp3xe֚%Ўj2@@dӸT.QչkBlYa1%Ҩ(|"iل)z?M^@p.Aq8@yP8 9 ϖ}3Ӵ5n*U]ߜ16TE^wu7e#` {/!dvb8;xfat}u9K&ms^b w>DX|[:H KRIK=Q.zѰ\bVY`}Z+W&3#y9n6=|C_wq|Q~`emҷ~Hsc5Iյ9u J&vYԋM Z҆ㅰJfϕlz=R I=">r9D~4 ?.ZKMD ?do޺ȟG =tpc g{ Y48;m-3;i+RN h.NlUA]w "X;,7q7C)+,0EV 8 =#DuAz£HbVp=O1N|u| NMsRMPwOSYrby8k2!fw]F/JtıItSYUSR;\r^O\c[ՒkvLcRr/nzk;No}`IW6"5M۫kLL̜:U Ʒ'/y/ [џ}+ z{3_Xvocʪ RAg%+{ur34g"*ka| @G67b 3e3пT1U8\taՙt;] ȿLXm9^[VCus]g_@\m3:va<{T^DD̟^DdG<1lS-*!Zh#Fy*Ou5|~;vF)q x_鉜Av]VUi5Qxg:1vV])EN:6, !dӏo}~U_llG9"3WF-Z=OO+{ʷlU6q4S҇K憗!:9ӒdЪd<Sx0=Ԓ{|$ݯ5怚b*ZL|0|XZet^' &Yew'M}Zl6Z kYW=Q|iyzs㮿M~^Igw 1ݎ1 1ͷj'Gyxnw \{^U@3sdH}WiX"fLݔS+o /',k!W5Jh21 %5cH T}CUf[vB$D0aVm9Y{SBD@8 pH(4zQE6J? 1Mtv9&P:mPpwDm-81IV)p)Pa!k!CZ~H znb3fnJ}֯y10 }?z!:bތܟ Hq{ӭD?kIg+Y/C]nҶD8L%tMŃ1>Y1UJmfv&'|ެ`z:ާ\X̦uƼOS YA>To6jvoľde`\9&밶ߜN2Y F KÖ̭髶R2 ޒX:c[}R ':>3JR<|4bgJ0xO+Ҕ҇{u|pEnUwژƹ ~d̖tu|Mӆ/j_ut `"ݥU̐+N%-UBl&YWYz2l|=eJ!MYƦq`$k՛/8%fT_#NBd@+OK< qG)oA/=<~ZMi\M\jMdH_mܝ7skvQƑjvg HoYX#euѷI21-ΓT&xl.YJ[#T ԩ{g09aU_KRs whR~ꘘ3`xy)*Ϛ8xN $R:w)wn`h|N`O\X:PUi8qT5\ H_(mtZnn?ŃjeS2Op< [;2v ]~vd4*3Kk-u>{{&%2kI~K5IqM@H(gEW+KU Sx›gq )Û-: WzMr =<fĠTy."yk=6wfETF0nylqbIUZ{+6UvH^9Z߄봿o?VJV!UTFn S1w0>_RH+/!{:^Fa&p6n:O9^@J]%/Rh̒bU%H j$#u%6odma]-|:rQ\б7Ӆ1εhQR~\E/W+4 *ҏcGtU85H9Ʀb F_5#cŀ1Vd*]Xayb p)KYs5';ڶab7L9'Jܶ1-8$M9٭i+TAz+lz~7/X8 >M˹Ȝ4W/;m !x`Wj ROS'zx㿕 ×BNn܇LJ-D1x(1=b۽%*$% Zt)򆳳L{~\̦]c|,둱h,NJ +#2:NCU9OM6Jj,hK9QZRÅ-{0A)/2'}V}=m8poS^>ʌOVƲ8)D۹>w7,wNx'q8 vpU9g AHL4g:ee)aS i,D\$BXcSaJJd )6}[]t BK_A%!I.{j Zvg@} ?G17j*ݢi΢*rG}w;}w7)fvVcZKZP jx]`8f\ Mat@=芷9!:XweBw"aY> %?g[i9arE hq'uf 簾| ^IM rmdPڬ,ܞE`. Q8Wح Hd1Yխa&df^ɪ}̓[RspYC}~09Rpsg4[}*,y)?e0WԒcD?N޼G8J8q%mVK!P6/[.VO@_-?\ H3Rx5щ| D:("chA2*Y D`f'ƴoܛ@NS?;<5KfX3zVO ᱪ4g(/wA8M``Ά|e5).oW,i.+Dep6!M_RU7}NeHQg8*ş/f$49$A3\.,l't-`Jt4 _#YLƸ "[Ŏ(Bd' 6f]lZ(V=hd^4Una:mɽMe}˟Z,r]g=jBw\p }e~m kWwͨUA g AkT: BLclw9Fx_Wi@ogQHw[{;z=T6=Keyqr8 aTh&P%!wf5W Q,cM΂RWk~qTd6ȳ%ۅ{cH ҟ)7nEh 1AW@NNp&VCKb\!?^s! @IBuvxVw/HRzD@o?w5?`[_ھȍL "{u$g^(ymDR|֪mr)~7ov P1ݚ˵߿rKJ(䘔*֍"W%.9()WIISʬGuq-E17nQc*|MI`NzwKz: vKFaLֺOIWKgf x*Q02Љ)ٯHe !XX7Dre^0p˵tIM1W1-H9eN-$q󐶰i(3i 3'.b@ ҋRZYL0+C9Inm9RljTNB/Ո<YtݿOUdD( HRp|"]|3`")騋]V}JQ !V-IԘ%݇L%c=?Sϧli|7P{"RQnd_CZ7:6Ց+[U3Z33.CA B_E&ZK.Q*e[H4a)RW 62V+r@,ϒUb8; 1xKhjL1sABƯ#onKb<ꔐ@"Ϙם(d@oY.󴥩- Bs-QasnI R.5}g`Dd@vM@ Z0,#Qv1:eIb(P /B"̜mW1>뤭 !n35Ν0㍩|~Ml5H/cLJ;mMBuR!A֪(u!5,rH3?uX =r`$VKr8[U~/lLJ?wυfo-.ޭfh,dYhDnn>SrCFj`6騀bӋjfn2i$dhH`[K:֭%"d٘A1\ń]&Z/7%M:)ᇨ>x9dGAM9OCBtIK[h;[H $nuXɐī5o8"> O 7_:C_󬞣ju;yy#L_YĞkg窙wT=elRE-&U#yC:Xװx`{U~yLjxōѠ䏑.aצusXfh˵fyJz_قS _ކ}Wz+cUqwռs}K4-KMYvJҢ83e;hF&n; ytd )nVL2K78-s ^!g*+E=*"OȴCN~hm%dXXȲNu b9% 7_%)ҫ8[ }Nf1huuTf'S:XEYHhfj喌R)07 Y 7)#3ƅ)ʼ:i8wڹW-_  \ ڄxUf⑏Y6KjRMgc aՂ_1bܱ?fG6Q&ZbZ!8RHl5~M],GfӇ%stB&T7jMRlLfaؼn#SهD5>ۭswH߼]_pTV ZiĘR004~I487k<*8wÆoFycƷyp?AW}WL̚f{'hf_QETlט%q7R!FAt S:YZcSZJ>=GDV L)bԫ,rI8|3VF)2;=Kmo;F>Ek=wP])7ٷ+Cc -vzҭ?V=b=ޅn_\Xjq_M͒,H%Dp|7[|6˟нS#+u#x ac+^qv.3 Ecaji 䋅_/®OqyKM}}+ohwvn5&|hوn%3^,bCxbpی1 +aJ O,/y&˵ΉpkL+̨>ĢTQy[K\C}M [+`*Q$!uۓ)%H9T-~_lPTQ%Hޯ!FcݜGqɸc;_eƞ06bb[R1K@V xŶq#Wj0b^-;3KZC$Υ[3/!I70+ Ht`uH3d:庻-sܤ`6)}PMt2%vJ;y  g}w<]U/9₲g4=%K lVR(U3׆J 5zw*5ۇ89I֋BcQ2!SAkH8;^AhmY =*\d0ȺߡKM[̫^wfB  }ǻgGOl@\Uot޶q8ǡR 2CZt@㑀]_(GM.TWuB#HngJc/)f#@).0i9H,B\LK|,K>4( 7NRِ[ݮB n~M٨%IYWh0^e(B1FUMgt>%`Q ~n;7șS&91 ةMF/ב,!h6Mhm:M\q71K 'ܴ՚Y]Dnf5h'R* 'Rjl4En1|Sk%pщ{%΁n|t|ܧmdITqg`G*w'ge@C8՚}P}puKJ@I72l¥||fTHӟ<:v- U2=cMn{o+L*Mr8TWp)b MEO_џ[^'" $ڹ.f|+v{e0װXX[ĊJqY7#DR]TÒucKsǚ!+x.g7Pͣl , UgLS͠Rh$NzS5H! jSH]#r%9ȵc\3n` )1_u⒁Q1zn03x~c4q]U|;N/21 E|`^I@l :Ec_P [tV&yk C)z櫁7W]y켚Moi3no7A+p6TX=$'cy$蓆DY P-}LJP* CeO6QO0c[ 9Iν86;V4M4YgY:8~8'5|&,oI2lӀ[-ۮ7p[N.k|M/S #G5gOAPLN{s?~87l~Mߓ1 }_ek軷)&l뽄؟ׁu }tdӏe I)B\yHR!SmYwc{51" F /x~)ڝ&/[&@FAͽ͹ZxfsEKXc_K7w#y{?v3>}La4mI=g{^+QZ`zƚ>`j`쑛]gw:yw(^h (Cq*F` ƞ_@W, #Rgf %xT*gĕbjl|8e_#-T2wG:ɻ.%Gw;{XF1vL)FRQr)QlMGDHfﻍjKsX+_fE@uЬ:> BsB)ᒂQ9T̲g\zgDb5=je.θ)LYEiO- 釹'p]҇L5Ot>ZM~]M !e?*#I9(l)bZҠMz627^?m%"%8+ X̲߿(lJsF,:jEPlZOSAI^f/|nd;ɮ7+yTIs7'JcV.jZeI8_0(ZDb= 80#p)O@>?,ķ)y>9:zbOsFG~s|^;D8tɦy.uړPĪ4@4賍%k1ꗆYߐٴsMk{յ\3aW֚9Uغۿ],RmZB UtJ McU"fՙCoͪ)F|ǬJUѺw}Ǒ"u%4E#Y\cUL"=KID/ ^;Bݍ~b+˺i:US\IurL9 -wKxFP*h@z+eU[X ȵ)sj.Eޯ0%q+ (&(>qUV!U>w<9+շjՃ2YVOp67@vd6}]~,Ÿ>n[Hj74Ř<̦WTWcpm>sql3VZכ;ܤsP'斚,@ܨ[IS}tRsX]9oSS)`XM6BRCX KMP̞#ҫi(Os8m^IoN|0/we_:ܰ@rNvvp~x|:a ,l2:ӘrUͦϹr$lk-^OtR6Umq N_uE:C\"eGڿRbp[Uo։{ U,Cf,] ԇPyMcZ( ?s 3Tern7c7+ y^Qopek hd28^RqTqFjpIsKw4.$+pXb>5[v{{V@y-}G B_Ǹ]̓ jv])e׼ӐJ{9X/?Zqu'ʯU?LO+† b`$z|ʄH'RS`@]08s;'D*WxQ:6axntSsO 7o%1~33"?ml[)\gǓEp4*.(/_:'2ͳZ^{.D_;gs?onϋƷ)}&.W伽9ipֈ|DNQR# _S&xiwMJ&2rB]ռn_Z_1Xхdg8 B# QW[_N4rkYnKPNu<2,r a@z~J:z glJl~U8Z8#3ut%Zȥ&XE׬s 3a13mՎ09ۉÚgfHꚻ*2;ml k>w~OX؏uW4>q<[]7O}x~ J,V"S)O0A ?@ʒ.;QSxj~a$M y{lS{(HWdKYbpbPWu #odP[oL ɬo.́Fsak!NJLv뿈?|2H xf2|> ZCۛ3pw0t<(??k0@{ z5 w{B<kp@* 0l2 `p2زxI7[(RO"g1hNXu>"'ӽMnQ\{~ыI%a*؉г } ϯϔ'bnb;T^kNU橼yL2/w($89q1A9vSl)teI[]rek95ڽUW"e%1r|8RWΌ(|7*dfa/EΞTY.U .dG/NUS%L @mb͙w4X.փMEWIUסη lQߞ5> 5IꭌlUލn|):QmGcx{{z>UuCDxj^.AzFPB-/:em+q"@fQxJ1W"87&9˰""$8k}ذ7wαyNlǙkR r`5PQ1k |Vo7YӓI_WM %?gqeq>Z7Gd<nBsߓ;$~|EfYmpCp5aje2?E9aT@ |~nqƤwLn фiC>Kg2țVl͌QFG<^p@"-v,X'q\F72Z  ^ư0>O`vVfÈ'-ׇxѴw՟ zZ1<nL@УTv^3Џ5飉G=>4l$ϟϟNOM:tmݽ>~TrA-i UdV9MЖntSL¤8><cz:ɏ5Hޓ.5HZi?W(N q+RI#xAN=tMM/m؅%NlzG(|ceTTL^eIwY'c똺}&Q~޵Fff:Ft!YKZl43>|wmkZSk&PGW'L0{8owʺy1goҌo3y;Ct|tK\gmJBS35tB؅ oe]{~ej&IUż=cѳ~ P7Iͬ3[->cú981YJ`f1{7P7o85b^8P\RٶZ`ᚴF109C4ёhY* G}S 5?,V^S>8A蠳퍃j }w]Z\-[|@Sir7OƠfӧdiBB|*|:oxzz4Ǐ<>>MxAS*|='#.OVG(՗E?AeuSVNJȅ=DĔ,#m3m\*G, HH(6;J 8n[mu}Қ,k|. >p8d='Z _èjΠnUo&رfn7pfw Vznr^yoıG^-o>BY3#7* 5j)·FBݥM-~ՠ>B.FsEnC/Ptbg7ovpaY{7;[WȜF8|kw79&](AFAkqx=ߞ/H S<tWrc?+2ҍ YLlW c&ʩ ws嫭oǴ"&.]"y yo!TC&>)m_8Ouy);UK_H(?{7Ftݔx jL>H 3Yګ(Dq?PU-t>@X͓Ϗvxϲ%} ExM8 ҫ\@~Ad/@eBq-OGRL8Oɔ]B?{8aFn˾p:ͦoCYPyZC4޸:bl*Q@ElVCl,(Z%ʒd6=ir(=gaW@?v oenenJĜ[3$eoJxWj0, l0s>AaV՛UwkQyyf5"LLN$Y0߉1݋9 #oܗªqofX{/ϟ,3ϟM]  }kiv'LF V6=.׺3TET@ oML~2eC' _ij )ՕQ$-t*6*7m;)-ZTyե,