From d1da81c91861c672ca6b9fdb81e97c3509c415c5 Mon Sep 17 00:00:00 2001 From: Joey Greco <57115019+joeyagreco@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:49:03 -0600 Subject: [PATCH] Version 2 (#35) --- .github/workflows/main-build.yml | 4 +- .gitignore | 7 +- .python-version | 1 + CHANGELOG.md | 19 +- MANIFEST.in | 3 +- Makefile | 43 +- README.md | 2 +- example/avatar_example.py | 20 +- example/draft_example.py | 34 +- example/league_example.py | 70 +- example/player_example.py | 20 +- example/unofficial/player_example.py | 51 - example/unofficial/sport_example.py | 9 - example/unofficial/team_example.py | 8 - example/user_example.py | 7 +- img/sleeper.png | Bin 0 -> 483146 bytes pyproject.toml | 17 +- requirements.dev.txt | 10 +- requirements.txt | 5 +- setup.py | 2 +- sleeper/_version.py | 2 +- sleeper/api/AvatarAPIClient.py | 14 - sleeper/api/DraftAPIClient.py | 69 - sleeper/api/LeagueAPIClient.py | 150 -- sleeper/api/PlayerAPIClient.py | 42 - sleeper/api/SleeperAPIClient.py | 85 - sleeper/api/UserAPIClient.py | 17 - sleeper/api/__init__.py | 10 +- sleeper/api/_constants.py | 29 + sleeper/api/_types.py | 4 + sleeper/api/_utils.py | 37 + sleeper/api/avatar.py | 16 + sleeper/api/draft.py | 66 + sleeper/api/league.py | 125 ++ sleeper/api/player.py | 43 + sleeper/api/unofficial/UPlayerAPIClient.py | 165 -- sleeper/api/unofficial/USportAPIClient.py | 26 - sleeper/api/unofficial/UTeamAPIClient.py | 24 - sleeper/api/unofficial/__init__.py | 3 - sleeper/api/user.py | 7 + sleeper/app.properties | 29 - sleeper/enum/Category.py | 20 - sleeper/enum/Company.py | 20 - sleeper/enum/DraftStatus.py | 20 - sleeper/enum/DraftType.py | 23 - sleeper/enum/InjuryStatus.py | 42 - sleeper/enum/ModelEnum.py | 18 - sleeper/enum/PlayerPosition.py | 29 - sleeper/enum/PlayerStatus.py | 29 - sleeper/enum/PlayoffRoundType.py | 23 - sleeper/enum/PracticeParticipation.py | 21 - sleeper/enum/RosterPosition.py | 28 - sleeper/enum/ScoringType.py | 35 - sleeper/enum/SeasonStatus.py | 32 - sleeper/enum/SeasonType.py | 26 - sleeper/enum/Sport.py | 23 - sleeper/enum/SportTeam.py | 29 - sleeper/enum/TransactionStatus.py | 20 - sleeper/enum/TransactionType.py | 23 - sleeper/enum/TrendType.py | 20 - sleeper/enum/__init__.py | 19 - sleeper/enum/nfl/NFLPlayerStatus.py | 37 - sleeper/enum/nfl/NFLPosition.py | 106 - sleeper/enum/nfl/NFLRosterPosition.py | 41 - sleeper/enum/nfl/NFLTeam.py | 118 - sleeper/enum/nfl/__init__.py | 4 - sleeper/exception/SleeperAPIException.py | 6 - sleeper/exception/__init__.py | 1 - sleeper/model/DepthChart.py | 29 - sleeper/model/Draft.py | 60 - sleeper/model/DraftMetadata.py | 20 - sleeper/model/DraftPick.py | 31 - sleeper/model/DraftSettings.py | 44 - sleeper/model/FAABTransaction.py | 25 - sleeper/model/FromPlayoffMatchup.py | 19 - sleeper/model/Game.py | 35 - sleeper/model/League.py | 64 - sleeper/model/LeagueMetadata.py | 52 - sleeper/model/LeagueSettings.py | 110 - sleeper/model/Matchup.py | 36 - sleeper/model/Player.py | 136 -- sleeper/model/PlayerDraftPick.py | 42 - sleeper/model/PlayerDraftPickMetadata.py | 42 - sleeper/model/PlayerStats.py | 58 - sleeper/model/PlayerTrend.py | 22 - sleeper/model/PlayoffMatchup.py | 39 - sleeper/model/Roster.py | 44 - sleeper/model/RosterSettings.py | 40 - sleeper/model/ScoringSettings.py | 208 -- sleeper/model/SportState.py | 41 - sleeper/model/Stats.py | 33 - sleeper/model/TradedPick.py | 29 - sleeper/model/Transaction.py | 56 - sleeper/model/TransactionSettings.py | 19 - sleeper/model/User.py | 64 - sleeper/model/__init__.py | 25 - sleeper/model/nfl/NFLDepthChart.py | 62 - sleeper/model/nfl/NFLStats.py | 391 ---- sleeper/model/nfl/__init__.py | 2 - sleeper/util/ConfigReader.py | 28 - sleeper/util/CustomFormatter.py | 31 - sleeper/util/CustomLogger.py | 28 - test/files/api/test.png | Bin 6305 -> 0 bytes .../util => test/integration}/__init__.py | 0 test/{ => integration}/test_api/__init__.py | 0 test/integration/test_api/constants.py | 1973 +++++++++++++++++ test/integration/test_api/test_avatar.py | 25 + test/integration/test_api/test_draft.py | 46 + test/integration/test_api/test_league.py | 79 + test/integration/test_api/test_player.py | 21 + test/integration/test_api/test_user.py | 18 + test/integration/util/bin/sleeper.bin | Bin 0 -> 68164 bytes test/integration/util/bin/sleeper_thumb.bin | Bin 0 -> 6693 bytes test/test_api/test_AvatarAPIClient.py | 76 - test/test_api/test_DraftAPIClient.py | 465 ---- test/test_api/test_LeagueAPIClient.py | 1260 ----------- test/test_api/test_PlayerAPIClient.py | 225 -- test/test_api/test_UserAPIClient.py | 87 - .../test_unofficial/test_UPlayerAPIClient.py | 376 ---- .../test_unofficial/test_USportAPIClient.py | 39 - .../test_unofficial/test_UTeamAPIClient.py | 121 - .../test_unofficial => unit}/__init__.py | 0 test/{ => unit}/helper/helper_classes.py | 0 test/unit/test_api/__init__.py | 0 test/unit/test_api/test_avatar.py | 31 + test/unit/test_api/test_draft.py | 78 + test/unit/test_api/test_league.py | 148 ++ test/unit/test_api/test_player.py | 48 + test/unit/test_api/test_user.py | 18 + test/unit/test_api/test_utils.py | 36 + 130 files changed, 2970 insertions(+), 6273 deletions(-) create mode 100644 .python-version delete mode 100644 example/unofficial/player_example.py delete mode 100644 example/unofficial/sport_example.py delete mode 100644 example/unofficial/team_example.py create mode 100644 img/sleeper.png delete mode 100644 sleeper/api/AvatarAPIClient.py delete mode 100644 sleeper/api/DraftAPIClient.py delete mode 100644 sleeper/api/LeagueAPIClient.py delete mode 100644 sleeper/api/PlayerAPIClient.py delete mode 100644 sleeper/api/SleeperAPIClient.py delete mode 100644 sleeper/api/UserAPIClient.py create mode 100644 sleeper/api/_constants.py create mode 100644 sleeper/api/_types.py create mode 100644 sleeper/api/_utils.py create mode 100644 sleeper/api/avatar.py create mode 100644 sleeper/api/draft.py create mode 100644 sleeper/api/league.py create mode 100644 sleeper/api/player.py delete mode 100644 sleeper/api/unofficial/UPlayerAPIClient.py delete mode 100644 sleeper/api/unofficial/USportAPIClient.py delete mode 100644 sleeper/api/unofficial/UTeamAPIClient.py delete mode 100644 sleeper/api/unofficial/__init__.py create mode 100644 sleeper/api/user.py delete mode 100644 sleeper/app.properties delete mode 100644 sleeper/enum/Category.py delete mode 100644 sleeper/enum/Company.py delete mode 100644 sleeper/enum/DraftStatus.py delete mode 100644 sleeper/enum/DraftType.py delete mode 100644 sleeper/enum/InjuryStatus.py delete mode 100644 sleeper/enum/ModelEnum.py delete mode 100644 sleeper/enum/PlayerPosition.py delete mode 100644 sleeper/enum/PlayerStatus.py delete mode 100644 sleeper/enum/PlayoffRoundType.py delete mode 100644 sleeper/enum/PracticeParticipation.py delete mode 100644 sleeper/enum/RosterPosition.py delete mode 100644 sleeper/enum/ScoringType.py delete mode 100644 sleeper/enum/SeasonStatus.py delete mode 100644 sleeper/enum/SeasonType.py delete mode 100644 sleeper/enum/Sport.py delete mode 100644 sleeper/enum/SportTeam.py delete mode 100644 sleeper/enum/TransactionStatus.py delete mode 100644 sleeper/enum/TransactionType.py delete mode 100644 sleeper/enum/TrendType.py delete mode 100644 sleeper/enum/__init__.py delete mode 100644 sleeper/enum/nfl/NFLPlayerStatus.py delete mode 100644 sleeper/enum/nfl/NFLPosition.py delete mode 100644 sleeper/enum/nfl/NFLRosterPosition.py delete mode 100644 sleeper/enum/nfl/NFLTeam.py delete mode 100644 sleeper/enum/nfl/__init__.py delete mode 100644 sleeper/exception/SleeperAPIException.py delete mode 100644 sleeper/exception/__init__.py delete mode 100644 sleeper/model/DepthChart.py delete mode 100644 sleeper/model/Draft.py delete mode 100644 sleeper/model/DraftMetadata.py delete mode 100644 sleeper/model/DraftPick.py delete mode 100644 sleeper/model/DraftSettings.py delete mode 100644 sleeper/model/FAABTransaction.py delete mode 100644 sleeper/model/FromPlayoffMatchup.py delete mode 100644 sleeper/model/Game.py delete mode 100644 sleeper/model/League.py delete mode 100644 sleeper/model/LeagueMetadata.py delete mode 100644 sleeper/model/LeagueSettings.py delete mode 100644 sleeper/model/Matchup.py delete mode 100644 sleeper/model/Player.py delete mode 100644 sleeper/model/PlayerDraftPick.py delete mode 100644 sleeper/model/PlayerDraftPickMetadata.py delete mode 100644 sleeper/model/PlayerStats.py delete mode 100644 sleeper/model/PlayerTrend.py delete mode 100644 sleeper/model/PlayoffMatchup.py delete mode 100644 sleeper/model/Roster.py delete mode 100644 sleeper/model/RosterSettings.py delete mode 100644 sleeper/model/ScoringSettings.py delete mode 100644 sleeper/model/SportState.py delete mode 100644 sleeper/model/Stats.py delete mode 100644 sleeper/model/TradedPick.py delete mode 100644 sleeper/model/Transaction.py delete mode 100644 sleeper/model/TransactionSettings.py delete mode 100644 sleeper/model/User.py delete mode 100644 sleeper/model/__init__.py delete mode 100644 sleeper/model/nfl/NFLDepthChart.py delete mode 100644 sleeper/model/nfl/NFLStats.py delete mode 100644 sleeper/model/nfl/__init__.py delete mode 100644 sleeper/util/ConfigReader.py delete mode 100644 sleeper/util/CustomFormatter.py delete mode 100644 sleeper/util/CustomLogger.py delete mode 100644 test/files/api/test.png rename {sleeper/util => test/integration}/__init__.py (100%) rename test/{ => integration}/test_api/__init__.py (100%) create mode 100644 test/integration/test_api/constants.py create mode 100644 test/integration/test_api/test_avatar.py create mode 100644 test/integration/test_api/test_draft.py create mode 100644 test/integration/test_api/test_league.py create mode 100644 test/integration/test_api/test_player.py create mode 100644 test/integration/test_api/test_user.py create mode 100644 test/integration/util/bin/sleeper.bin create mode 100644 test/integration/util/bin/sleeper_thumb.bin delete mode 100644 test/test_api/test_AvatarAPIClient.py delete mode 100644 test/test_api/test_DraftAPIClient.py delete mode 100644 test/test_api/test_LeagueAPIClient.py delete mode 100644 test/test_api/test_PlayerAPIClient.py delete mode 100644 test/test_api/test_UserAPIClient.py delete mode 100644 test/test_api/test_unofficial/test_UPlayerAPIClient.py delete mode 100644 test/test_api/test_unofficial/test_USportAPIClient.py delete mode 100644 test/test_api/test_unofficial/test_UTeamAPIClient.py rename test/{test_api/test_unofficial => unit}/__init__.py (100%) rename test/{ => unit}/helper/helper_classes.py (100%) create mode 100644 test/unit/test_api/__init__.py create mode 100644 test/unit/test_api/test_avatar.py create mode 100644 test/unit/test_api/test_draft.py create mode 100644 test/unit/test_api/test_league.py create mode 100644 test/unit/test_api/test_player.py create mode 100644 test/unit/test_api/test_user.py create mode 100644 test/unit/test_api/test_utils.py diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 7f447d1..46a640b 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -26,6 +26,6 @@ jobs: run: | python -m pip install --upgrade pip make deps - - name: Run unit tests + - name: Run tests run: | - make test + make test-all diff --git a/.gitignore b/.gitignore index 1f00741..6a74b57 100644 --- a/.gitignore +++ b/.gitignore @@ -81,9 +81,6 @@ target/ profile_default/ ipython_config.py -# pyenv -.python-version - # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies @@ -130,4 +127,8 @@ dmypy.json # all files with "_dnm." in them like foo_dnm.py (dnm = do not merge) *_dnm.* +*_dnc.* + +.DS_Store + diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..1445aee --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.10.14 diff --git a/CHANGELOG.md b/CHANGELOG.md index 53bf6f9..13b914b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,11 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +- Removed all custom modeling +- Removed all enums +- All functions are available via import from `sleeper.api` - Replaced kwargs with optional, named keyword arguments +- Updated package requirements ## [1.7.3] @@ -73,33 +77,18 @@ All notable changes to this project will be documented in this file. ### Initial Release [Unreleased]: https://github.com/joeyagreco/sleeper/compare/v1.7.3...HEAD - [1.7.3]: https://github.com/joeyagreco/sleeper/releases/tag/v1.7.3 - [1.7.2]: https://github.com/joeyagreco/sleeper/releases/tag/v1.7.2 - [1.7.1]: https://github.com/joeyagreco/sleeper/releases/tag/v1.7.1 - [1.7.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.7.0 - [1.6.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.6.0 - [1.5.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.5.0 - [1.4.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.4.0 - [1.3.4]: https://github.com/joeyagreco/sleeper/releases/tag/v1.3.4 - [1.3.3]: https://github.com/joeyagreco/sleeper/releases/tag/v1.3.3 - [1.3.1]: https://github.com/joeyagreco/sleeper/releases/tag/v1.3.1 - [1.3.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.3.0 - [1.2.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.2.0 - [1.1.1]: https://github.com/joeyagreco/sleeper/releases/tag/v1.1.1 - [1.0.1]: https://github.com/joeyagreco/sleeper/releases/tag/v1.0.1 - [1.0.0]: https://github.com/joeyagreco/sleeper/releases/tag/v1.0.0 diff --git a/MANIFEST.in b/MANIFEST.in index a44dcd6..f9bd145 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1 @@ -include sleeper/app.properties -include requirements.txt \ No newline at end of file +include requirements.txt diff --git a/Makefile b/Makefile index 172aca0..8bd1e90 100644 --- a/Makefile +++ b/Makefile @@ -1,38 +1,43 @@ +PYTEST_ARGS= + .PHONY: deps deps: - @python3 -m pip install -r requirements.dev.txt - @python3 -m pip install -r requirements.txt + @python -m pip install -r requirements.dev.txt + @python -m pip install -r requirements.txt .PHONY: fmt fmt: - @black --config=pyproject.toml . - @autoflake --config=pyproject.toml . - @isort . + @ruff check --fix + @ruff format .PHONY: fmt-check fmt-check: - @black --config=pyproject.toml --check . - @autoflake --config=pyproject.toml --check . - @isort --check-only . + @ruff check + @ruff format --check + +.PHONY: test-all +test-all: + @make test-unit $(PYTEST_ARGS) + @make test-integration $(PYTEST_ARGS) -.PHONY: test -test: - @pytest test/ +.PHONY: test-unit +test-unit: + @pytest test/unit $(PYTEST_ARGS) -.PHONY: up-reqs -up-reqs: - @pipreqs --force --mode no-pin +.PHONY: test-integration +test-integration: + @pytest test/integration $(PYTEST_ARGS) .PHONY: pkg-build pkg-build: @rm -rf build @rm -rf dist - @python3 setup.py sdist bdist_wheel + @python setup.py sdist bdist_wheel .PHONY: pkg-test -pkg-test: - @python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/* +pkg-test: pkg-build + @python -m twine upload --repository testpypi dist/* .PHONY: pkg-prod -pkg-prod: - @python3 -m twine upload dist/* +pkg-prod: pkg-build + @python -m twine upload dist/* diff --git a/README.md b/README.md index 83b4070..61b0eb0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
MU}H2^0yRLuPEU;ks%wHPsiFH)t^_yT~gi!5%zy?Ft3i#>|( zr1mONgRx?d`Hbj^`fs-OB%&uBC=o%|Aw7tfNY>52%;FCoPQ3hNs}bLiK*C);Tiy3t zq)>?^99L%Ek;e3Rf?YZ)s1WShzPj^p8%q4Zo8A-FN5UA&m!j{{!gd?5wPW&moYXPW zG~XzpomFMR%pzy;0~@}(h1N@ex~EB>2LsZ4f3R0TS|-Pm-K6MRD}gqhV`+t2Z)o_N zLes)QmJWs#LVzz*;@wCrid+4wfvsO!=QjQ+>(gat#aD?M9qT_x`jXISUI<}1QpqJ- zve`^|@SqN0=>%n$3{K?PklGZ|K}yf!AB}QT`v1|`U^v2SqR*%kQTB+}?QHX{SCj0L zv_NOAf`#i3OM<9Pa2{zyt}*wUY6z3}FiwKI9@-8Xyoy*e9%fTQ8ZAOQv8 zm3+?kROV&NH @)wNm zBY_USyv5wpy@2?nkQ2}E_MKFCRs*M^1CCZihDpw{boWe>1OU?$!<}34+4 zv1C>y3s+I!U#|NyPYb7tV6U E3Du{%hveVNZZmWx50k-Mf_c{(yB0&)vVtJDWK{(B;E7RaPpo z6D=g_KXqIcJ)^d5lUsAZaCv~-JV4`>-o*0JIa@dva!aa^+`ZPCMUk=zeMw$+AwOK; z$wZejX V;n%bU>#nrOwmz8+uCC4_VBBI%l&n!#{{r!Ht+d}{xp3B zKu<#5Eg6mKbCj{-nC@b88Zv-+Zdb0hjMQ3IYqFWc5K{1g!kEnrAhc<}@+-?*z-0&Y zn-U@UIG=b^`;SpBHrTaPh{nR{Cn~KTKpcf4KA3hQTpms;fz%c+4E@}Wvx5FAIca5# z^tcm59b}#4{}gwAP_UYeguZQ|z#$;pyky$+>G#ITCNaYini*>NKvLv{s4=khO^m-H z*-Xw7?ijMEC8HezjwU$0YTydne7>4QQFH55pZeT?K`dyjEM$D=Kp@(5Ns`^P(5~2v zL>ANUO|JH_;h%7cJju!IP?DQbtGy9t6(>z6p#~FQ5=L17#E_xMvB8c`CxWk7>avZy zc%*Up&HpA29nSw7#)2S-mAKP*u*1#Bg-ieF^MC(7!$TBU{M!$>_uSq48?G-r>IHjc z?+^0LV#I!)GWjK6lDGD*`R+iNTeujltMWR_ }FD znjhEOHtjERrc|xrI^TX)1N)=SKkhYK+;%x>b(Fk9BcDQ-nmx=2?-jwnsEZty)Teq! z{m0{JoCq9Rehg8s4`jWRTkKyT=5&_L-GFp&@`aWa0y$_d?+^fE#4XETp2~K+(EOk6 zAAD)^;lllWTVJp3)s#Q`a _&HqisK}An0w!!iK$l#IVfP-mXv506#UC@W4 zet|HqvW~&76QfW5F!NjDYwu?Bb(04L?I1Rq#&pj7Utl?=3E&J-@=DD_U%bEQ3C$$; zN#yj}gnqQ`OY-UNURIT*W+hEg_j;x&w9Y_e`&ZhHF)p?Xm*o9_+%-BZr4}!i+P*DJ z1J^#wtzFyu+fG+ASMq!kk0Qz6yWp|DIGCQ6P_%Gz`rb3&n9s(mVAqdL?n%U!SbB}I zJ^_X~JdZ`lKIKW-)Ap{j_Q{?L*rPF>XCS(J^W0Nns@_zcb?c3f)#CmSC%0T*2&%;e z!aEPI&MyguBkFx>Jw|Ng^@(4sfG@20w&{&?Vza-rw*JseqYAEwKeO+t7vCAdD ZcPw=%`XVI zH(b9lAN=k(7c&52c@ODKBD#B`GV$X9MDHLXF&Iz(6}#BgJgjpU(_q!??WmG!^x7*+ z+PLS?ic7uT?O`RM)q;IL^-SI}OGJZuLgt4Tl_;hoYHn-V+@HN~`HUza!T5&}{xv^} z$0hSV-ojCTIThD0WX1u^M-?(prfmxKrZPiG0TsW<0*stA$qi?7VAhjCUUe$OqrBfC zK>^Lk;xRu7)2VBYd{Vw{om@ENZ`naQ6SBA327oUg&B(&M5`-VYpEQpBzv&KmhL~(< zTF#zUhe}hGW|@xoj~$=wciv099^@hEn;vy|;ZT9X5SfRhmi 1iwZwn;6>L~l%t)eRWCOBZyx_>K zun~!_d`=Q6cUitVJiS2EACK_+{!BTE)fr27H`9c}Im&e>GamRNvE+LV&5F9oFz4Im zjPp|I9#&)k#@^k rcnejmgaOj(q_JS v=v6loE%R2!xNv!c+pXE*%~-s{SdGDFajp$$v{yw)E4q5TPH92%kl(34ot* zLP6b_2K9#L+dhcWMz9n})H0v{?XdZ$0anRmuD=)ptFe_pLyAZvewy8{85^u6Nm|CY zED-|H^k?i*26!9mt)h`4I#9I|^jf7?4q6?eLBLPkT5kiK&}H2tXM1Qb2}D9xj8ZbY zy~l77UQAtAwNn*r9W^~kfZBe?jaIfy^hKN^Srkq{4O{V^*$i7a+nP&7g`yh`_*vSB zp{2&FGs@`QI)>#^1#rW3?=#mW!tRFy-4N4&Zx>9l^`9!<%HNvQw2TO?Kb~J~UN|Kl zc1aeT#W!wvL4a-lr&g_p+C6nMh{{2Pj3dKG*FR5TpF%KW)^BvPZ^DZ|OmY#R(43f) zb&{`|mBS-TB?^0Fi>sAwGW;h$mKpZ_ZfZ{4ct*py|IR6lo7nTT3}a4yH|e%u|5w!w z8qTsH$zgK!4}pS*Er+j_8|@3}HEcF71=7n*eLYfetapE&UytJj25o-@ES^Th39WD! zs$W4vlMs?-D>qeV+o3`$jwr08fhpu(m`Y(e({z@q^L APucCsU` z#QT($=qC6+rAC6tYu4S0m*`yW9b8||wsemI1JC G&jTIepo!^5|5m#K?tm&th_zXl79+0aV k!6|Tu0dx8^E(ihtEXZoRiWL?c&S;}7jQV!wotl%Sh$Ruq zQo2`glTC58CnwDl$&UUw%Qu4L^9OvmkG~E4Z#0ZxH-~_xPQ7?Y5Vx~#t@9^{2bcjA zC_Wjv6!6T?9JOPgq>Ehb#A_Dx)tq@yjq_B;y}dM6Dx;E4Ygf|HDS7W5RRP|6%8wr% zf_qz3w(?TZy^H}Qm+vs`d2d-mB6?1$@|QXG yaW<4?)H=8 zom;fUKG2p)i#7Ws)<76x&JP{PE3SQv?P~-rJ{-Z)pI=tkn{>R X^BAc$&*5%=cCaJynNsV^yrZc{$?_C? z_13dm0ZK&WSS$$qFS`L%@AZ$>KnMiIC2(~Q?d0~UlA80~ B`{XCw1Wn$nLH=(HQzg!P>g2mGE8&0`tt|&dtG>#T=#xrm)(0os#zh8U-$3WYC z_SkHE+dr$7ulW0{)4Yx0CiwpR&HC@(@ZaMxWTGpo2LcZd(28>1>|D(+g;@NDIN8L6 ztQ{%M{RXAv-2>b8Nqe`uu?+J*nfd{Zp7k%-K*Wx!-<%(1Dw(tA?|133)Ykr37MWwE z{DLwPs+VNCoxnnzTy(m&!@Rx!9Rb(|LV#0G*H4e!)@#-J)Q*3D-EkjrN;luO`Pe0V zhhM0y@cI5lMY?l-(K-LO72a`CONHbWI0hTM)1-daJ;PXl{&Ggiy@cD#ik+Tg5oXl1 zl^XqnWw7i0#AL%1-v;v(RC@os?jRDztx?20GunV})ac|WqKlsHG_m_hqHy7NsNk&F zBsf;`9#^cnNgbMa(iV)U;&DQm0$=GS>TLF|5>2s1e>cK^nI?55Oa~x6`gO@PTLe3& zY~@50U<$}O%2?co+z)90I; zGdw!dg}Qb2%g|`8bYWtM&cTyykd8-< zlux4fRG5LMx!|Yz>^bI0i3lNcGKL_E`#Y;M!GOC51Y{0GYr!W4YeIjVHjQF0CLn z6ZxBklag-2-dqm$u_mm2y>W>-O`76!)6+n+X}Fm6-g|E&Tjj%7Ki=g#f(ani6HAwS ziyO^i{1uYRG`$|mxaHuxS;)W5Cds+Cstuj*@!3jVj ur-#Xt$&dhW=N_O3l2INO)9lScETdL`oAdZ+6SfAI5yCnLUej-Qz z^BGyUVBXg{nN$ngsN?>?F(r3YAVOzW@%_R{2KmH5Y{5mhTGNvU{=M@0|CW7-cUz!! zikci)P3L+b%^Cve{iqIU45lR+1KW4L{Ov&5y9Dni2Q_*R3HpJTkIFj%suBiWmGQ=q z v2HA00oY@*QH$z0%B}ca;{G!C zi%KES->A1(b|&tyymG6`a)AlLIj&|HpH|;=RZkrx0N$(lB=NBY;g;>I0QdpJhWXA6 z*V_6TT8*+y`6N(6 4Y8=FSH#FQ{lwOV&))y1qx_^B>F&& zrlnwIh6{$>JuL=BPKjxy$xCUp3-Dh_9&=J%A&G2 )f|jNIu9kK6H^rG6FUQ zad9epkn!LumZ1qe_!UwSm$CuNG}5RA+!QlLKLi-d;C@8@W!)rxMih{gwCnJ=PJR8L z_o^WDSLn^q8yj%6jH-n(kds=zKN)4qpW8Bn#8)Xv4{WgFOKHCAE44GEkrO@Q+?ezt z*w7&0 x^@qy$X+m?*k@F#nvjPR<7ha2MKuSmB9E z&nb?T(AqfZ2r0vc(Y-cMtUSya_hour>kL(z#XROn`@BkVOa`fZv{?TY=hO1)v6+y? zdK@1-dgZAnLa=UvVn-zqJ`YeJQAIv$0de_?`sNWNuo};&+7#gGNqAnhJ$mdl2Sjrm z(<47!I$5QfI@;!wZ c;g>{bOFKjPzGs7YdPd zv^~+!1w7#>3AoCQs7qa7{!Lm`+||Wh42e?yAY* PhI|(p-P0T~GBo4%~ABg#k6H*PE=$?F_P^j->mH0o;mFat}NM&ntcLu5U`@`A}p- z#&t1Q_FWbCNuk4T*6rGCHgfOQzGTp*8GF`bm{`hmX_exZzQ|8et%wCZE%s6s|8YhB zV}Xkve-bs2r5h0BH2+b{@MxuojmHxFUDj+%?X5~Nv<2` zclmL7%rVV}yV-f$ i!}cYWAUw`zQYT1$8VACF!V|$yDb9C2wx*4`TY4 z?Nu6NRnv@0{>ty*h$tx*nAyz1_XKY|M|Y7(c% lXVh46XqF7 z)GlKsH#Nn(lN%dj*NAvU7H52>bY=6{bS6sSch-p&+X{}Y!1)uj1j2kpxipGv6HDqp zf|xI~ytgg0(5YW9e0J;-ihhcIS>n^^^C<&9=>5k90Jv@BSHUdO*(923-P#Uwpz~u3 za}NvWaRXrx?JI6_Pk9BI3$$DN)}nXG%mI<+qbRD1Q|@(;{M_sF %DwRq4C=8-havJaiOO?pr{W} zEd@ncLp8X=hOB>J&d5?(Lo}g9FLks1ND{fT?+2-}3%OZ4N#c@A{mBCpsC^c>2jtu? zw!EW5UGKTHP(&(Pr^`C>y2B}OGd#`*zCJP++f?{duKsT`Ull(4)Sc+X4S)tfaZcF$ zk6hk61H8xC3_x!aLilQ|xVHiy$X}i)lmlx|dv@51wr}b#9qKpxn8_$@l5I SK3&9ACwAon)svc zi60jo8Z E8*ftR;~4h4t yQzjiai$L@u4XPIUa!C*p6lER{N-`Yb?L+IV`d{ z1xTQU=nmOqNMrP4^&sgH-iUlX(x2lS{nf2|i?{NJ>f$kHUKekH0?Mc*YcgB5qg{II zH#$~czDP7?>)$w|-1ddqnF$omSn|kcpS~+7A2@zYNKqTC@<@rO{$1Y5##?s2tIsIV zInBrpnm<_?iY5x-VX!aX_J|4UWFFA_Ci+vfo8s~fE_QE?7$4zn`LmXS$qOJdEv30m zotqTVt1HoE(xx~e0xO%59`Bt3%w93m_bjT%9DhOB?t`UA8f@%=Q}K!6X@mtQ=vmnG zj&9*XO#cTd{|XuaJdzSoi-EYQm;^G4|G6uN0_Do?o}cispZ2|a-AD2xYEAcrTo_jl z&a$7_^aY8dpas5BN+JJe6wpsN!vWoU13$daKRX+ON-PRlV>2;hMAhe{i>7{%Xsd)- zuu%r=l_}- ov^=va zoU`V!Cr=9|#udd2ZWNxrCMci`DsKWtWK>KWF$lmrF^R+~k%iiO`3bP|0r}g6SP2 z81_Q?O@~gV%f396lcO >R}1G=XK>aBX>`v |x zg@VIe8Gm$10_yWyONmqqEg_m0#8u3~saZ2k&&G3{uysw$zL^m4w7dFAb=mVpHX~Nb zZ20p5FI1gdMPofMsL_P`Ztb<1G88_`MK!fBCmqB)GVv{cGhM(b9ju0Yp8aJ(@4omw zh7 Ap?JT1%hnKwG7Nd+?%ej}MRos-UQwXjXGSE5x)b55T zJ#i{8k{~?M<-c;+Npa6LKd1ay0|}u(24wUQN_s>=A}8_%b`}efD!a5$oC7C1QQgn6 z&UXo$Z4dYHCLq)nm9N7+Nt|-7ABe$Q!~@tU6n3($d<&vWXqWw}9VprJHkeHNFIUm* zTp9WL!%~sEQ^?$3+Pn4r4i||plQqIBI_Zad6n$`b$v8GF&F~F7g|md|Ro+#m1j=xq zm-b>P`#}8kV3^<70xM3V7rZ3{*E0r1*mhGf$ugH50Pc_CvhKEI4 !cP179l`+V{2ieWb9X2^*}H)o1^{<4_tB3> zy2Zo|dR*L$J?Uka`}p~rd_Mp@_GtsMegjg!pY(ln2`?1bPx9TThjsQy6uIH^+3!Da zwqPSHZ;WWMn#sxg%SL~Y)eX@RK|n?`i;cFTJawhHqHN=N{dTJ43**wyq21l%=yc+% z_`hWx@uFWb@N%nZD@*)wcxmW>5*LZr54>LgCWU>x }ay0yLE7E}>G9n!}SxSFkTa0B#u`P;hPDN0$NaQ8z3EHzzZ3n+n z(qE@GD6U&Z=NYFIj4BnJs2X@!ei5&eeuj5YRAl;l{C z29Uk$H@^4hS`9$x2SyBD1=SEP&D0z9P@%~f5s{PHFm=&dMOw%Xrm|u_2rtn0F-P^0 z+Wh+(?!W4D^0-X?*BNwp@G>~H)7&0itr-Zu(QBUAuBK_P7e+F>oE? ro$rRWSOeJF}V1d8apswrhFdySY`D;nuJ_?%`p- zbn;hb_yEi8tgU1M5%b3lODRbQm8-hjwutI)tA2Gnq~dB>dGgl5?+wCJaUtmq1aChb z=8wl-S#8iAZ1eTpD2^Wk4zO6U&VF>q5AVvg6}i}jye!>EReIRBMv06NT4a3oHdD?; zOry%W+okkVOf3D+l#$e)qG#Wx{slb%{`%Vo=l_V{ANdIKGq_oAd~6ZVVBsfSlq4<) z#f8iKJ@G_iRY`W2KRT%UdZ?bD;EaQI<%dxE8;>4*-yo;8B%Uv6+cx;LtQ7aEAjR`7 z?8!Xuq3ua^WA @k{FEuIRT|+L&$sz2GzFDyE|||ly}_^T&E~>Oc>A4S;V3@yUiLQ z-(hu|8#SMLoG^Y{=>0dd|E$+}dK2(Jx%nkn2yTvfe| 1Wl2( zbf0w7$*Q!4mf6|Ue(fLxeyQMdM6tpnI?j*TSRoX(WR&}bEJHzZq%%6|L@NVJ?X7%M z5*tG$&foHHzw@Q!(VEBGoRQKq4g1F*$0C?D{$)0no6bT8?_6Lz-yYrLiAr*QQa^T5 z5~TTBr+Ha@J5FOGPtLNv1IyQHy>c2s423a~pmHGfm@wd!txGc~VZAZxj`VnAqjd&v zG1!auee-uT1G!Q<&NhzZg-ydjT9v?lK*yM%a( fE3 zDSeKqs{Qe1(WsU{%8Wrt-r%?((A $kSIE}N2HWt+%x%hs0mXY?lkN9TU?-H3UGqOT#m;XH~i+Ryv zyAeu6D&ABDv6bR4U)lvFNsNmL`S}c!Qm2wBntdMFz>wj5gg$jXeyUI8EpC8eblCs_ zn;ZSaco?Z~Sc!7| 6RZ65(GwVoI|a~r_M{}#8{>%|EWK-9{rONgl?<;-!uPz zd*J_C#rz91nfpPXzZdc8)d;1~jg*L#&t{MlnRkS9M_gfk)qB (uJ3ym2^+ zGptJ0_st-~R0QA1^k0-Ht>0{9O!Yokp>8u4r{f9nvwl--Lko{ZP3O1FKN<1wQxD9R zZ~s*NPUjl}p%Ojy-`T>rTdF=H{y-q-#H>&2Z3eDH)T4U}5eE`@=WjUcnMaCDUt5%> zgXV9~n4ChIR;o0dc~n4BQxlT4DA73Y-_o53SR|s3lC1fNkVsa8Ge5t;Qo _>qf_nM-jQjF9t^;|{pg!;@m Cr(N3Wsxj+^?uzo3471@Oa`5S)zLZ#n oGYo%DnapWDMzb99dL>dDvpT6v&0)dvm5Q&_NdP`-Zm9p!yi&^f_Gi!D5Q zY902{KB`tlB&%ZNh~FE> e6T`juqe !G2F38Q*Yb9H zyIH6~kq3?{U;Y^aSoZ&cJZ%u9%ZELzw=C7&vRuZ@`KdVHxx97Y;xtf%Z69kGk%79m z!Y780pkz1t8sybsZwhwq5LE1FbXAAJ?gW?H;;*yky!cf@UjZ_;E`CO;P5n-fExaL( zi>pu?P{Z#+JSD{PSV*zdvTK@$`Aan|i5ZvB*EzNA_qUZ*bc2 a?GH*hGN!%|akbSGmAl(J7`}iJgjh(Tn zv!G&>oL~?5?&C-F4OK(x!{{(hXEUCH%56MxI`}tbI_a!;I^r8#Nw8SLkmJhuI~P>P zQO%q)VZ1$sE)wxH+kBQw&G)kK@f3#&{+Y|aU;#(|?}Us4YRz>GFak0|QqsUXjwuVU zo@4uoP%7bX_|%k3L4Uheha(D7Ck#Y4ZHCa7V4kJ=A1Ie^@aldMH1VZMs^sHoj?SR9 zp>Y=0A3q@$hN=H>6q&H5 pB--yU z9&38Z>rH;0XIY^gFOPXCs%!^)*a ov|8<(69V-!|i(aI7j}CpZF#4r*cz|wbD;IBSMq7i>GRv z7f+#m3??kXmql9@A6IT)SaiL|k`h=<@KbvYOqZPz_%E8UpE#f*8$+dUu{)r+Z{xCZ zb`JFH Dz>&wYOgp}>EVKIY2q2yLZ70gj*7Pek9yC< z4MIOYbEH7p^jZLXn?tJUE#$8|*FKFP%u|XbQtIg@DnIQD9Ng(a jP_?RxGaM{M=YZOA q$Ep4N$q}S0OdyR5zf*RZzcdD}6u&?^1ih`XMf{5ox$#N* zsL6?%?qj&4nRPSy2egbsKsH)JRXSl;U%4;d&l$aECXDOW{2kQ!DBru*4Xkj&19qm` zZi^n|w4Z&!wQ`F=#V@teb$3!0&!5wgQ_=0lh$B*1$37|AwTtN@`J&kjah2KmB<&4V zm~U$w2j}&8S);x ^vJ$`&u-A3bH7!a{rY{&|5`Az!EV;dPERd}5Dh6@F;R9mu2l zQ!$P^gZlk1VJi#+3>+alj_(z3_lSRI6#Vpk!p?1+tirOvkEmGOtykDm!uIJ|p+Zn@ zXoaTI(RqoGN)5*gi alt{P2X2Fw6KAQi<`twJSIqx!X4R- zmu#l0_U6HBg}i}}Xt6gs7QNq%W$|tb?nO;n5z&ena&zCPs()@GwTi_gRTAcKp+8%S z($U23zQp_dPJc>S ?_~eECTWs$ME(6JaefSQ$ zP5+8^7#=1YGGW|CVZN^IL}D~N(VY8| 7+ZSBmUX_L<$jTKtP3V_tts7>Ujc;6JX7|(&pJY zO2(((NPG7(%$$tWoA3F9*Lip2K82G8%BI9JB(mJ7n)_}}O+{0MCI*#fBz*Dt^YCND zEzi$}R10^kj;NnOjz}~m5_wpYD><#3!Cg|NEERxIbXMH!l+qzSgAv)GBBWwvs`AfT zPPv_&XpXgV59v`)o%ru^OXt8rwz#Xy#=cM2$ iEOkFx4Z87+C*ul~_fhvT XdD*olgW0$fltG4 zTha3iI%%JG&d`7E=*+?pkyL)?Yv#~bh#)k17=169XF&A%u#>Hp0bO3;0f`J#QIw(9 z>#YzQ_9D{Qu &9v}^4e-iT2yB8P% z+!hQhMD7#!O>Wrb+S+*rSj`NvXgkFFsZS8vXhrz02)A!A SrIlFr*Ih+r zM0FU^MO0DdHWa0AFkUGZq0?_8-90jS=q_?du7(S0LPcbCax%-aJ# ?>1>ho!& $y4psFW3cBQ z_w5t@(i} LMp^f;=_ABOO`I1bMMC%R6elF>9(T!_+QG!Jk-3_ejHA zhyF%CZTTax>i)N}vHc;XG}_DgpS|I7#Q!P2$e{bpaPK`vO*;CcEie0>;uM5}olRiZ zey0G#cgv Ebauw0cWdSEVk6CkJp*L{a8CTUw(O3n9g4is`*Gh zZ-&u8`8F?S9)Xv>yyJ5+!d}}Wn}LV&bSp{YW!;{~B^0A-oi=bzF)xd;b?0FYNxpZw zbdLs;3#Q1PDa-HstJ+vp+eWpO UytJ7^Nvx#5PNFomQfBy!L2}m^m|ODpxxjXvs;R%4}KXk z+&@6}R2CDHrV213znnI)PPQ0 iRhR&gznvQT>wZWaNq Ly zToFqY5JlfjFykE786!RuycOkX!De{ULaQu+LH^Mg-@cLx;prJ*(x~40wrUvVCAnaG zlRM|dJ?~jNY>lROjR<4iEZi17N3Xv->|qGWFJf>UolM#&;(*LmG&fv+_*48$ygiQF zT5+(Ecs+l_LA!W8J!*T(<=LarySx8_+W%CV|C5oz&4yx_BSE>>@;M-}<&z>MjGUnF znvLeU0)4U>atYQCM%@?RE!{2`zlZIu3s;>YwcG@eS}lPsmWly>V6J<2D>|Kz1+G+q zZ##%(^{NvdO|KJq=-S*fE7s9rV{j`RV^ eeI~WJQsB`*p;h&WXcdn7b_vpOhq8&fbjW+wOR2OJI=a}$UShr!KQsOtq>r*+? znyhggXFjD4xZBKpK`c@aD*8S;X)BX9VrS4ZGJ5e9kA?i`@&)~oF#n)2A0>YD?&D~w zm&ygU$L |4P 0;95C4xYR1Z1#I&bB>3EdE =Wg@-||F!3{ZpazumxOgg;7HIXx|`0t9>sOU zbkyvz$OWynQHn&kqN;mjJO!VGNqD8DY_xr9if-PDq Zb$f;ripHq_Xpp%=%(2!Kn_ zrZ)Ua#VN$(?IVu+g)I2Q@m1O2YZ|GHj!bYQTKbam p*9`ZoLpkO*B?bHcZ4K9H9;k;mWFouvq6gS{Om4J_E%D{7wAvpNoJOK_9R zE!c{XP30gP7!B~etyejAl-nnXAkf>a;azg$_T;=T#O6n+ `V| z`QLaQWuOPH%#UMdfSFC$?_UFuX`a|EgHK@FL^p{j)LQYW`oIDDsJGqZ1mquby2oyS z_s3bq#x=I<&42=?ov8H@`}KaQz9N9n3$HS2ZIU}LVWXm%TFf$w-$I^fl|a+i;`6WM zYk>*Ew$z3N-7J3aPwTk)O|p^T=cCawMLH38wBMHPX3^%>PkxmQ0|*67ghyLR;4xAI zYoMWt*0;%{$*z9y)f?zGBQ{F*Ski=hN#i2b$5=*szms3+fOlC*o^q11_saCVe|FUq zQ8OtYPrWt$m3B2ZDDG!fJSE-+2T{*m&)k>xd5`FEc=!i$EFM&ZYtDPI#%}uo`x6HP zvA*M{fFe2CxTXoS+D5a+#y{qPMvjkxHgD4{wk|)rMM&y#dcTr22)YDY-nkim=a_FI zp WJkLzFko=MbJvR8> Dg!?K^AdWZMkmfkKRD4Nc!5wcKP_G -2Dnsk;*s?A00 zL>q2FUu(ym|8IF%9_r}7W3E3I0UFJn>Pepxdx$h2LME=F5bhzTyZoNjxBZ=#cXl9k zjubt}zlbaaO%UIZfP0dAX6YXSqu&DaK_~XYcy1!#r=80=yZElYyp2)aYs1Kdk29fw zj0**QRp^j--rqwjM?Lo$)2Hk)k#7!dn>$s#$BKEZ76m_iSNd++=+XYOBRg6_hI` nKk;o z&6m}lG<4tlFwMot1G9L{+yDA;fcHwU77Y-=L9!bh5`$*uRI~&vp?WTj#{j>xB7M=v z*!k`fkb%Ck<$6dy%Lw$5`GgvJCjIWcYiGwdY=uE$G^G=R8iSw7wE}f3()9IEj18Y^ zwAl8tjqzz9UD4jh4m%N>BhR-q`E*t}uKN~Mr10Fx@@ys2Y{Hc@5}a~9Y2NOYN08b* z9C}?%WAVM-HV!h=HF;}|+1h=O(~W)E!%%p9d!a!8YoFp&dD3aluCB}tCz9jGbU_^K zgXrgxx2~MVVjl+F7dA5xjFHU+*5fKiIl}b+^ECgTSO=1O(4?}H5n;e^**=Zik&*=FX9!~&fGyc}G){a%w_Jcas+iWCm>09)_ zc9yLe5cWr!G(1LU%V3(x3b@kuu7w3+tRQGNwla>zIsdwj{w1o{_1MRVdAsI0b=?PT z3qC%?kc|TNr@U3Jgm)g?R6?fN+k0-lu-o{D`<_4A@(P7rsy8s-g1y`k=e*h$?aStE zCbW1k+sPQp=#}0apq5RY{~L9h5&S#P-!0dGej)|LppvDVZkuGv^6Bo1N)qj-Y?JpK zd)ahKw3_rAg@x}#{GTVKeGz AcHQsW(N zq4QULfG50<@NsWtM`9vA_ZD}gJ%^7jH=^hC%|Q$1y_aLCJ%c7Bzr^^9uH29-TM**G zl16B>L#Wr%@d$L jqX6;BhSX_7=|G&osIH`LW=1U*BwNb=D=< z4vNI-yOka24T(sI6u`it^#0TywhqIkr<8ywxURImGc`v?t0bt~U-ArZ>V5Xp45t?s zaPYn5Oyg#x+HAwOt0x6$q m}h6H~w0 9BD57$OWOf? z><@83tCT+bKsDM^Rp*u!o2%gAc9l{Vz5l8;pqUu(w<))%1g0*?Swqi#WGdxpr{DZw zG9vP?{IS9NNmf?mTO++uF30M*DakV3DGvUEQPOQsRSQ0LY7xhr1wE2FeE9zJk5jwL ze|)~mkkpNj09oGr+E7bYAa5QrvL0STob_oE#Y4wQy}|_JnOXho|0AK8F-?g~7>`$W z%~(3YUMU`9f+eIRgVnGsEpEUA3chucwaiZceLU^3 _HtF3j&Y~|hH8h{+3q9+!E`ahCDeF}b_CGU! z`vZQzE4^+>o7-`mFY|62D*Cd&S3OU|+8L(LoZiuTBwu-OY|7ilJN+T@QFOzxj%+ z^9)1=vm7~?vV0-7f0fCyDjA&PPhUed?SK?od_z!6Q|qzN*v2CYM7^s2yn(+b;L&!k zFe}D(Bg{Qz0-KoNFw=h;EbwQK(Da4z82qbvP$~q+Ecv@#03#+GZ9zRe_?DXII*(Co z4UVXT`HIQMy$RP?c|Yu62P6!(W#$NDd32E;{aRu9VaYci5`(2I5perzj=1-)f|{fS z!{6%oEqW}?wK^1}uemd|GPqS=mBrnqSJ27tI?xHt;QR2I7L)eD&g53mCcml*W9Z5- zcvBIn#IsoNvH^ddPTTI6C=uDv?jUpTICwWv=N_Q&uj?( 2V?J7xv9=058vH$7 zj!aDP!97kO=_4$V0DLT%XC}hjX K(!)Z+ zKy&{IOEu$6QU%cn0?jzHk0syI;h&Xm(Z%FL_03kf$4WB74 )VU6*Wg61#n?$5@Q)>Dw4biK4yp #E^b8+kSJg~jmG_D`C=K8vr# zcECi^bTOngif{VK>w{gD)-nCR>EG&0Ipt2NTY!Fa9e4Mhyn9MrbyEtB)T8=Dm#NK~ z@jP^$_lGrW#a~#|x9{&}Qh1;e#kaF-`Wh*5W-4T{2Hf6)VwVp{5D~?y81UVfMh7{s zfoyTJ*DdC_4-}cvk{&NiA=s`#I=HQxSXxK3M6j;;ZcF?Usv5%@n!adW-jyMcp2OW; zwRYagJ)FrL&tm_1Gyj9Sg*iU&irAU1AB|hRdCIuz2dc2(rWW#A uSoI7NNT4`j6HR`$nEjjA_0l0nICIjlIuZ4WW5(hm^)oV@081G?B3=FD%ZU*h=|% zfrXF|w_&i*D=WrWFA~|GkQWtw7$@A5W cXeuumfD6+WC(w%s0gzk%Oa!I1sQ_ zf|zLdlDNvuv8Z*|TliqkpwA8DZ;nT4vcf!Qc*g+Kwm$K2F7FlrX@*s3^Bfn}cSNz@ zUq7OYXgmZ*Und*5l4XTEyy?;ik5;>9eAIu*+ j@#p%#oPx6v{?B^_+dmNu5xbrw(xhxd z+}*Y29$sHPsDHjtu6p;e%Ot_!OmR|GN(NzSSlF6ZPr?1kyLxP?G# 3txT2JBcmGp5u47sCKJc2q0Hfh`_`=)p+JNU2+ 8GCkZXmtIEpDDWgkSodbab-BQ0DK~6Q{KNv_E!GNv`qUR^<{xyl^7d zG{VU;UZ6GJ^_)-`t>}!`}44pv AxG^nQonILebRjXWhLdatrQi}}N}cKJ|LJ4L zy@64<5Uu_AphO98xBuEmwxG@01##ZGCv0*-< 5t5aeYS0OzZj2IUkT6>8F_lqEQZE+sGPmbrh`58*d$ zDcW}bFZvSSFkzWpcpI*q^uJXCOrtcKod8Waq8 qh3S56(|wtL(G51$^FAgZp%jtl&L0Gkck(O;N$ZZ ztE>ISTcor@lPxbIbX)6=*jQq-)}NKp6v?AjI{o2(%ifunW#N={2VXMUwtR>^CYhSJ z4w?X0v+sqOiN8KL4cfHU{36)HJ7nK9{7zZr4TFYxtoh%HmKFha$XWTj$i!1VaGBES z>rRDUeq6!>O|HQ{L#RG3vE6>X+XoW=UsYZ{;2K~6*?Ix0x_bw$JO VT)3cQ#c6%#@4CWXXy5`6$9n$~mtEV$M_r#-RJ}{J C z=$g$+;J>MZB;2}iT{WdY;z7Cd7cf7Z+2W`R=zDffw9D@m#<%Ot*XB>DJK}6mBi>B8 z&-n`NIWM^8gYMGl%Qyx-6nAZyc#-f9Kj oOAy8B^`NLpygb9#yUS@-Ltv2wdfUKUCk1> z<5kV`vh3LopY>-Gg(Y7Jh(p2avOj}C6QQ5mK>~gaugL3Z8-BO9mZ=2o@9$IC6_rcy zy*rAlZTKiOh_ktpRV+h=bvsaz|GcYVaUWoazUdK8EEpS!A>`Y}A(;75kHFC#f3ycv zE=yQ2|FQ@{)goMZ%zm7#k(R{zgK4^kzP6-pajHOyZbEVuUx?6(?dKfgDcws0f(!_p zK11lzewMyzFlA8$jkvsq?u$N~&aOj}4$mcqcq tPE9{brqmRb0#2PbZ2q$gca7lRwGZNf; zZC^s%6b2l<9D7gS8h$}mU33YXJ7(JQTURL>$-8%tHc7GIK2MTSo~AR3n?~u=4^qW( z^0n3@ll9_K59RNd_q)dHc*ac2Mx}N|c|Qa`pO3OqrH$$3IE2r?-57epoA^L6+32CP zy~2cE3cex`Iw4ETBe>2xl5CmB?+VN2oDE=)bW1Ps9kTH->oKe}?l9KmdY5jaqSR1Z zr86X&_9x@e&(iRMVP7ldZ`F(1Oj^~L*S~tnV9NS9PN+G!$ZZXi|Nkeb{}J*Gjwk>P z%HGdK5zusia{RR>vIL(K^1BG9#H>nce IIwC7s7`y@7aMO(Eek#ni~(YcwrJQAzSEX&cxL%lR0>9xdLAQWwmatjacbU8mf zuY1)C{Br5%xA6PO&T<7*b?FxNMuw#|Zn6KNUvNZj+QF$@6JRU49EZR&aPvvV hhbdfuw>z$G?A2vqXFu_Wg6BUdu?jk!b4e%N$X8zHOc}rTQP6M7bJfjm^`rM$;{g zERBKm67fK@VxbEuwyyWS8TIFgOMcKG{4GJhzAu@_Y8u8gj?10M|Fh|brH$?))eGdJ z**xvn#a1D6NYLd{7k74h)HzFloZolKqF+%bnsZ%| Rtzn;{8LlhKM4VDQS*R=;UgJRW9LoN^dA!vm*0#QAHp#fTjv^o2gVn5E z9ljbH-cN|xesZOThLP!RW+Of}b|xy(yD|E06WwN%-TN>}E|(CUTbDw`x}Nr72b>ro zM>x9b*g<$$D_32i7^uqURz6YOhuO*>#|i_K;ZWE=H-denSfLl}3+$0R@jXnewuV<2 ziC-xk1Bu#(FKxx%;vtW*!uscCpy9v*>5!kwEwU0kE~JAd;oiCq)zZOVc!^K`3Rm&C z7d+;hWzx;dT%z!t7Bw`diG6YO8iN<6)3#l?@pb Qg3R?_ZjrzuucI=)h9Z;^riN3Q>GJLvzdtHjSm2(7Kt+Kz4GF>(<2#D1AFZp=t| z?X4HY7V7ch_Xv`0+atM@;$rYxPxx67(-8h>p7*$@yuuer!iT)qm6PltAsk<6ZAwuC zu@oBy9EIk#$Q2UP%|@jwqrACLdcdnET8Qg~I*Y=6?$DW^&k;o*8+a^qROuC4LzbzF zhvE_ (yxR)ww#gOFrkM);GIbIpnOX4>9{O0f7>tot_E7hGd$`guO`DqZa{ zFQiE1oNrzGnXLhaa1`=d#$+P4+#(o9`1HRTxnyo12rD=_s_{S42a%y5mVUnz`8*7& z;2;>7kYRV*-9Vj4T K@ARMJQM-tPD*Hdf BdN`C;okf3ePt_sgusj*5x~0 zNf>hy7gC{E&vk0ssF`W6JWhqi$k|Kv3a;`=@ikmWmy1O+l2BXyDiN}KJX>p_d7rzQ z=0o-C=qJ*X#UDGpUM%Bu-LOVg;`e`t5UbXV_3)nOy7Ez&XIY q?zAxf{>{ zp9Z?KpM+)~V!qEVk3rls??{@Z4!-*)?c?)+&3!i^pds`+r`s_XA@wjEw_+JIac>O& z&=OAHN*Zm{h&`%soBz)3p9|2!1$?lw57iC8_*L_LXZZLo^}ej$`c>n(kqB|O) XQzGKW%K2&0{ws#ir>ruqB8>v2$6`gHIbI6i zLp`eAPzO~r(xP+R e81`aK5|j5$ z-z@k3TgVUOzekB%ljP$6St533o3d~0VSR4Nke*C}1{gtSRrA#+2o>$ n*i z{rqzVNk?{`mCY^R*a?}uKLb|%5{(>wa$8cj$?Q5c$zd<@5&oAynkQeU7~ho;ZI#uq z9SL@A)~UKh{@(ph#yl^reqptyPW6R&f1x7N{VcaN`H=esiLZbLxn-3c)?Eoz(d|ae z>T&AR-A~28+|Q=j9kXMvM)rcGtnG$g^m?zsaXCAdqiCZ-fp!P`x61ilCLX(ha`F`X zj!qEev2pC6t1E?#a7b{p(#25vhdp*wC!hp$b%LNo&ra?DZtPEh3T @l)FVsS>274pzE_Qcz%|O zwqBpDLcZ^c3wmTxho(_Ce#09a^ykMfSnf1-Gt Y2^F4`ow9! z^?s~#O8!_xzVI3c#~#zw{D#}x?*S(d%B$x8hw;O#A~E~?@NYiwoAnJupvCDvKj89Y z{I8S$PI-f>YvK%_KO#4AQuJokXPX|qabO_ktV1+CO8gdje!{WCeuKb#M5llb!4vR+ ztK$GDMt|!7(+&UD2i-B8z#YW?!{Kg#7j`poAUW|KhJjmdKexS&4A!dDpqL $5KCPt{+D=lmrL_3M*v zvie58A>Z}$#hsyZ#_#>di8d9LPsrK415MN478`9A$+DeGiC(xJvb &e(H?kwyXhj>NAP?BON)N{Y4qm`Q*-JILR_3++j3s2q3vr4e{JEdy1Bp3%2! zxB!(R2+?oj7~muWU%!PN{z1rK_7BG47-Fb42+@EkDj_z32FR^ri5b>XoRSRY&0%7z zc!d}Ck^t;0@S{f`P}qL@bJ^nOUyA5#qdkoPU2V@D(gHs(onE3kBjNOOdC6?#p1Rlx zd+E>v4N?9PPI!4A@O{dJTBRdgz8|(kcBJ_3r%e@Ke@@7BhoPU1rtkeYL%^S+`n%~J zp5~7{Ru1H+1HG@fUA{3Q5cPfE&L^$ 7zn#X$^viR%>v9;XQ z&>?U`CcHY8pIrP^VEaNn`}N9((&PX`wrSjG!vCTf_}pmZ3#|4q^+`7XC3m$u8D81| zW_#U4cdVCZ&L~cY^maaIy%C*&pqmaR8bC)6Xd #H?r7xi!2jE2?S`r|AiQI KC4NFO!B+f`xM2LHOqQ&sh?W?9IGYj3 QkI6vA6h&Q21>jr zY!fU14zXpuDOBf@F4t*r`GePVruva3L)DrTtrsZ*_&&O+8saZ`ceVC&7Cz-&tAF(H zSS_W}Ojwh?ZFN+d^6G4{BFa7&t3ETjc|dNG`@x6w?^{cSWN6lZ89g)R8QgYrxL}GO z%=R`2Ne(U<3*HR!KdMU9{%=*Fja~zi&sSn3M$roTQ2V23}49)Lfv)ZmJJ7+vz$b zu8fEU!yOvVDACK{3Fv79C^q=G0mFR-LP60^LyvfIp^X`1hQSKz;8N2Pr+^oS&>hH! z;_611!iO(Zw_=gz6F?JF-~<3g+vSM&Dnahmg)i#uV?32F4O$fajzV%JnK5o3#0{q% zh0Ll&YD|xvHR%TI)1y3A7w9?l{L4CCtJL9_55J@>%z61)>6-{>+LCgeBuQ)2@s{Fm zuZ?dmQc;c1Hr?8XTN^O#B&H8q1CxBk^{P#cs!U+~L7~n@t~RJUQ^LX9 SJx`wF7?1)h<+=y|ia}tm;l X3Q zZENc-Olvyu;N;srvnnfJ_Eg0?@~oo`IYUa*0Bo!8-hKF-_iXX=IU8LAjh*R29@~|9 z{@O(aSY!py4#{d!ePZcI>6uTin1}n%m^{OLv(8Gtk!^hn$ko$KN6^+zYk`5>OXDfa zw8X7?E0cMfjfsn~YOHJ}HsyKDy2OG4W1cT3-ptT%dw_3tH(nU0OaBc2`xRx>a@mFM zkr^8^izY{9>O-}m=u*(9cI?LK$^A){XCHrHgl7 z{4TpYe+RZQ%n_hvQSjP i-y+agvlmABnG+8$=+$HfDs2y285?d$nwxy^6~G0v}pHl zUZ&5yCD?e^bpYY5#pRv6#Qv=GO+tOuELz-?^YfVvA)_6zSG3V)1?3m)gU`2<=9RWr z@B|TdO}nS2$+6`LYmTPrw(@#$;iDPgl=K8#mTq{~2jE554qO&5V{(0#irKFxL?;kq z;QDG&OZ(&GO9@xH$F)q>g^Oob3c={K&f}FS{!Pdot&NYg9OCNEw_&MQT=YY44`1Zw z^fl&y>J9@lPO;%C5!e5Ea0NfbSx)4ejRoQKwmfYnj0+Lkv20$bFmV}0`~ 7$a|3aHi3_M_8QeqD)|f3hO_ydk5Bdt9{YcO @oJ1T*qv z#=Jq`@ZRQe^BQInjHbC+mw~DPua`?t)DGG-T-r|Q;zccCO&;A|m!MU8nVxp`<7>f= z%zjZ6@?acuc#RRcnn`IO(oe&;9ql7rN`HN#!n{V3O2zSEwNat9s(>PJEnIXG5{yaT z)_`7gr$enSh%vj+4=9f{=njZg+YIB_x{3VjwFUwKCG)$dFCg!v&_E@0S_N?8RluC+ zIf{Q0kT`pLx`|Z|VwD6+U?@z!RN`y09*0mY#80WXSwQiFQ%`{Sw>#q;9kZT^{#NyG z<=L0j06c73Gv=) -U)?Y zp6O2*LytCweO`zs94maK3aplgxH?7}t*@G1=(2(Kp*Q?n`j|mVQID4o!)!lg3j!iJ zc a2Mg#5#YCQYzp1 zFH*v;W$-ZpIl-w2fFYQ3SfPW7Rd$<>=#8@1st6h9-iIEo1}VjGvzz %}Czf?=%D=QZ}&aDcl!3E+*g2ZL%606k{p#k76!i3vbCask0@N*vG-ufkAqUIgV! zW8GULNV}cZp9*vSHF0oGWsf-Yb|yNh;)YrL*eKdFzofgGYF+dP_G?=$@FqE0n2{&* z_b?DY &`DNMLHN(?cJOF#$n014T7zCzg@$8IUP&DKu|r2lMTUtvro3q0n%45;lsa7OJt5= zBu+0t+uTuLzeC%T{*K27fjQ_BDB6A-n}-Y{p&@K>1v`F6Brg_ctto7+lUU8SJ5wt@ zr}bIwN_VUoZ3NA=BTvEkK-A^IZ_2i7(yMal^H37! zw{QtT)ve;-Tn3)Ml`PJr6a+WqU{tRkt>3?49pj!Al5^-V!&G-Wo=kXOdiBawBs#iG zAQpHc)l?vxhJgz1-6zlLbITg~M(VuPffZY=DW^=oOb(x)I<~m5m>nBU`8dWY=<9Ij zVp|W{CtXne!6^r1zlyLP;o4jp4Y>KCKOqA})(u1Mn&TzdI!nv$D)R(FX#3lTS$agS z|M&%AUL5>}B8}14C+HG*&61n)Qx(Pr!rcI|ExHYv0KPm3)sOK(nv}>#ZvLZl8)6AH zl!K@uIHvyufB|CNSO8`jpnWBU#&R{7x$~b$kTVt-ZTs9L-tfU`vox?A$2qnLCW 4Ws{(!`)$ zYZ_E{2Y5inV)Eo_TL>_c1^!cb@+Y|BX5{){0^0_RdE<|{VgGHO&JU&LOgHi%&AV4c zWMp~ru5{4;Xqi9&Ru{!9rGAUEoLQz%Ka#ZVe4l^o8gvFMI9IwPy`lsm*nfjgfj8u2 z~f#d(C|HeVE}cK!TCG&keNA$bYMD2Xk401j7(@bMOoJ7;fPZVsst&AbQc7k%hYD z7%Ut)lz$!x5A}) #7w6Y~80R2t`xy3vn?nq`1n>lO@fco=gVGq9Db?!*acE^Of|)imyXg3k zMxiNUSqgD @59fi&nA^mPynvv}2qscWD3 zmypyZ9wx3mo~@440Ki5;38#$b>G)+@p^kW)?e_08fnHtoDYry5RS`Db>u7Gq1QQ** zsjMNlwNoY6)hlbU_xX17EE8>X-_t}-Peu649H}}0{8 J zV}DT%)*8>rIc`Rmb5Zv8cFOW=sra#- )Wrgw1Of7PBwt WY>IMf?6l4^Tyu%bf zzgc!0rQk&1c=NcT<<=8MPqm$2m_To|qN#{P3p}VT5t6uG>YJ}{9$&IJ(_|D;7{k9? ziYSA2w`H3Q`Z6cln}Gi8I~JMrZIUbkM$ZRt+M5@MaX|(&1-pPx`mrK0qw_A44bYpE zll>O(9bvC-`t~&kgM#C8%N0&K5%`$cekM M)CwJLt*RxbSv! z(bJ@H0eI`vQ?vuZruCRTYmbjin5mpTjCp!gwqtqBbzF-hG8X~FU4KUK$MMu7ekEvL zWclRo@{+3;26x%CR3e@ `FX(n!)8?DrqZ&Gao0ATq?qD-%44M=a z F+J}KF<#|-Gt)7Q--O7CFAz$^Xs4?pyk6xG5HPOok- zOW?0A!F&CNjAYGSDu2W%`qTNs`0=Of)}EF;PAnK%H|{4i&bRe8cYEZXA^({26Z&uE z$om{X{OQA>0|ekJJOGOW!03H|mc+K%8v6k*buA4JTs&pRMcV0$u~x1zoGv)v@An-r zC7`rSi+V#L3joF6sV8LkU|j)fZF>t=$pBRx7nLXb0|y%^pFN!JQD@pfBm+i&-8P)J zq)h7Q*3~w`8+BI?)=<%-@lz8ssdUc|xXYjy0M_wv?U%LuiK=RV%k%RelYA8h-E0JB z!sgBhxrgc!)3lb>zAOolo-GoKA$12wH9Rs<@eF@QI7fqm(9e73*Z2&zU=M1TG0efZ zXRL+r>cJSdAFZ9Fz)|wKdM@$ZyfcDk7o*$WEYuCWmcZmU-?({9u7^Q?5nJ@=3wEM_ zufRS0Hbc5c&FU|aG? w+@uf?b2qlml2n4oy{GV{&ioGA zu|VJ(Xd@B0iQ0tU BWG*GoDl^rnz) zw|vtplUR~BJGS%5PrHZ+aO~v2;g!jM^|XH!y1wEfD}-U8?a%>JQh`$)Q#A |aSV1@aL2ICXYe1gA9hP?YdxVz6 zWQ`5?VlJ;M+EE+qu}Rh#o)o8y0T8JH{7x?EVYFe0W*EQc8zT;QrT9%3`!&Ul5Bh{% z^8ARxpz-sB={<@x2Bojkj~*=<6F793*H8V4jMCzNOI53#L`d9ql!TD2xZUJ&eP|DT z0yx>{--h3uWAL|}Q0e7J%*X}w8*~Sg&>yUDIug8p<$^VVOwg|qB&K*3P=Qe1i4t|r zu7)R2d>8VU#RLMNJ&I0&9loDKX*wAYJG3x1Mj7%9pm9*kWy7f2Ej#5tX*^AQuU{pz zX!X>3&2RxC^g~yPcoNjJ0K(t<@1GF45XFqjePJbC%ov&U52!JW;}rWOOp$EeHuw%w z_3142uA-i?@N4z0YqQXona4YKMy;8-UD}M%I!2uRvc*ZS6IT80F yz#iI_Tg2;nTOj;DU-3cq)eE)WI(PL?4f)y?wTspUx}tcok_DmO{E?k`wZ> zD9j!2P3g($-Pz%*&KG-}tHcM{vbf84rw`SFZ~!zA6GMM0DbWXgf(dFQJ*dzKGR9OR zmF{Hn$h0S%Ov5g|#fgQZ25+KY?w^irkMgKra(`z);MJ!*x2p}EH}Be6>l<$Cf5- E4iI6POczbfzKHKxaapD`@i|kxZym3|GqOG1Ea>cKyTcx4inM$ zuTDyWqkPXUKe=A0Ge)n1t{hPP+W_qcFVL4fz>HRtElF^2Iy#2UJYsSB ?mDne*w$YZ8PCSC$$sHKr zLgEIF76qkXX&rV7hsO~!xY9om$D#u_afA(y?W4Sl3C9dS#!Ng|Vy{b)$3J%oAo~7p zx3up#l>W?Ur(5&;vSz{K4KA@K{k>{3nxp-0OJTM9$H5KJJeiBg`wF!K+c(v^b_~jF z-#^n4@y?APniiHsU$W|LUguOU+KJO8tWJ|Z{WH5k|90;eVQyMI|BG*#kZPW?4CP$7 zZ_V=Y!!y%O+xAR;Lp`o2aDhfbc+u+=^%VMCMZcb@82Y%$w6vYK{~t?N;n4K^b)`c> zK%^O+N_S198$?P >~4;^qw<%88(0|+1WSH@Bo#q0z-NH{g22gyw5qF8U`XgzU$yb9XF5z zGp(_5#!C5jK;*Cj!G9* 2 zVi_~PjDSt4Bxmfh(cv)3Y<41;f}wk2 tIIXRAfF4cX%iO&lU!WQU&e^MhLZJs3 zyM@SpAYRVHe5@?@J=*Xc&C6GGJ^;|^LQ)!3yIudCsi_5^l|5Rhqo9IFj%}B-^D=g^ z1swF1aAUL` @ zFgN1I0{?crcD2LLA6=uz-|8_O0rV#G`(9Rd;6B1V3>$>>uFRR2iJY >1L zi`abKDUg5?rd&=UUnWkPXS66Q98u)(CKLr5MBPvr!A|z`$DM*{UGb;yKlSYC5ntkw z 3%51i2)F4j&{w z06C=P<_#&7*P0#5b{m+dm9IPUTo*}0#D<-0N$K59>F(ACZ-fY19>(Fu+AszQa>dWS zS*Od7eEE{*Zy=WtcPzjyfk>j;F!v^#?X7QA@+%~p{N>+pyfJ93Hp1_{vl-f&f hxM&I`zW$*oMyt+2(!~9vzC|b =IPAi{;SprTg3fRMmt|~KS5FL=xpd+ zF=X)112F2`*CL;^{!a(J1+hGi^%@E*e~X-%O;Y)VjGyLX=z7Pe1mpvW5^}$QG^k*P z^L}!jJ>9FP#PAx8DPGjL*@{X^Dl&rxj`3CxU-XP&OHSM6p+-JWQRCz}Ap}Si=cw9U z$C$A%TuN1(#&W*#LA2p+NaEY?JHRZChnN1>+fV-Hs4k>9vb5mg^FIhfQTZZEZ5Ve> zb*C>qdZ68DQl=3 twwC<$0@>LTKwn2J5?Ms(__*tG>I&h#8{F#V zz#Q!_dpG&>#3TK2nl83jox)TXMJ!Vp`{d9&Jbwl2-|Rag;-S*)s?~?-@w!B-ogT?f zDSydpeL0%TzNcSKG`=H Iq(fU;PLhmV&rx6K7K@SoHjgUn;OCLHp}!FW9V$f|jSf(^8>rDV&Z|-0(?qNj z3=n=)B3b8Zw`}8RXF>j|-Bwhz#z{{hiuG?`JtC1n+84&&YQmtVlo7uuVkcUWJYMAe z4IpMJmm+E92PMvCciYsvViNuqR@%rE>GnB>pYoFa0%vKuZT89%u|YbEx^cU&-$g$Y z^5}B}Er9lKA>Ys(%)_g?K!rMGnhy4coEP4=A02VXZWe#YH%q>xFm%n!cF-jg!7cdA zoc&uOB=P0jy{-0I?YE_FX39IV*?Yqm%1K`tO1`nE;_`1Dg(Y~Eze$etTz7EqBuU>@ z#lY=3_s AXQ2hLS6R{-yeT^Y~|a$yV}C++;J(qhr~XD%yjw-YHJe f(tdHF^HG-ey!8#)cRf=+#wB_~20g)55G<2xKjciK0hDhnX=f88AQKh=W5 z0OVkO!E_QN!#^nDT~KDq<|*Al&nb>eQ9ujpVb9pZr(z1R<}J)Fw$jZxT<3DvPG}i8 zwQ*uT4NJ+Z+%NH7HC}F$lTTJ^ePugin;Y@r-j8jcIhKkjib` _tiu?TYSVXh$Yp$k zR?Dr+$V|sKR}~^jo?C3+oq}FAjR@|JGc o0r35$Jt?efqzF;pPGyd=~r$4u*HF-GJwm^PTQH;XbWx ze^BH|%2y gFyGkDRrAWie} zjN+tSiBu|v{X&{!pB`_Cb3kq 1 zb^#t&fA06+PB82spGf+Kz;Cq#jkxS!C|=;H-R)Tx$hp_L39Bmhu2GY;2zx^M5 {1cSW-e6QbB>f_=@iBj)c%lPN>8WfEP0mlt-cm^@mwQ3aNTQmSs`X+&%FAeC< zZuiiQLhmx^$Eab#o5)|lpIotCBqKrmdt)4cGhF~Pkk4Q7^Qlc{i&BZErb);(<*n!% z>r^#-G)S3Ta=7A-?+mKLw;YI3;?48#Vxzv;U5ed^AxLJd<66I5Sd&K$`k9o!wepbM zzc9`=pq1j5WhSn$@4+zU5}k?>1V^pz$OTIFS;y$D@CZYjl7q)ole<>-&H%$$Y-u^1 z#3x7ohr-7Y705;Wn$MC?a11HP>w6eGK9}4uC@Lv&``tn8_v_RMDlE{K9Rxv;qDNA@ zdAjY%AEIwh5;ufM0(ImlqLm{eur_*d8kfg DZp4mt3$5ES$oG!eChZqU7Nm;lt+ReF_=6ZOUKR z*dhZob^tO7PC15mwa{^W!%{5gR}H0JUa5+vN_?3Y34j+ubw4QVWb2Iwx*F*#U(XDP z(=LLqdyg}*n>1JM+!-qp&&Xm*WC?bwfacHg#mSvA&0`!$^K>I~;#o%GHE)scFO*IQ zClX`XJSgABX%U~)raiswFdv}nOVvqOslw4yN4z3Gi97hE+^A}#_AsNpMz2Mz-{PO3 zPQjo&^z_A&GY}J8b{U1W=jlfGw#Qe%(qf!p-C*zi9Zlxe* g=`=9uc8{FVh)vVGV770B^ -BXdM s+vV8Hn!$S8D=?~s-2fYYDXfy2c=>X@$( zueEAKeg0;uYQdhyQLVsf!?#wqKWyamRa7lk#nX7f5MI>#K#Fyv8;Qi-czU6Bc^Yot zcUbWOGle#CR`gB?^a?B5H6i)(5{jBcPWbMAZTmwjQ7odu@k8lK>e;Y78C~Y#y2H$w zrPk&+Ra+r<$Puq)2`Okh*CrfN`m$tCs(f^liX```Q)d=)oLlO4u2`^?Gevffj{jB! z%VSRXQ`%+Q&sw^Mr#iAx>13Yi` p#xlp~T(waC8)m%gnYN zn(lJ8_%9s_h4^v=KxO^mknU?td=@w2-mdhG{(Y=lB*Y5(ThJ(KWGB@t+E5>=HR z5p$9p(_-m~nCTofg2aKrU#zd}h)t5n #)4D%;c3z?2qKk`LDX5FGviEKjiQE1q^ug zg&AZ^=F>xexchfLk7ZWHX2e~NHTEJ@g*0jq$qEA%+<5`-w9pd1<0|)$4oZGZ98Xa0 zx(dv#OC)yT )egD$@%?9i?YYEjs!iE%EXW8tYT z&Ob+75O_d8F@%Jnb7vuN``v-Un<}(d(I-?LD+g77c3Zj~X{DkFSYg0YfibdsvYB zH}(Y;cLK)4c6!xfT>ZvxbgvT*s=DdaAajY{DjNUZSkm1nHq_B|E>EfSC*Qp$Wpltj z@k{iIsqR}I^(^M0$@YIyu~5?;aA~`KHpo_Vy>y(i{rRyZHq*?EII}^?)pyP?H{ysf zDg%sSC2+fD+OuWm
f~T )ir8fU>9UsJttnqJT4i3A?`)7Afv14h? zN-ks3AXLO85WPNwtvjh=U*LAn>X7puvt`6Op^GI~@sSnFncUKHCy78=N*Z;6-z~+b z!wd7!UoIJ>_o;VUV^f7|0<}Z7`aFJL_~T#5B {EU@o54`CTTGzxD0ZFg#iZqaU9^yh z%`LjH>GX8rQ sQ^IFZ>K9?Si+r-K#PI!;+62d; zP_dW(NzBLCuV%J(bHsjlY?XZ6RdjI`uBp%rWY=*>c*qF^Uc+SlpyydYIXwtf))pvx z9)$Bw5H*@xAT7cYh^q4Ud<*t?-8OrQX&cucA8Ut$`LD(>6uMdb-lJ8O%5I6<^B$`> zVqBe*Lm`{@ Le+(mAou7)P?q!4vMUjgiLXYDyiq Yrfj zSE>9$cdlT*y|wTLo;soV2Q~_V){w{{Kz|
dq!`Kf*YI!IWtM*xq$fSJ-i6DQ__fL eh$9c;H$JnwhIi5diaIYv(C(B7jL>17!a`U{|vI+WO- z|0HF@qF?~(?nw3OYhTOlShYdnsx}rqW`*Y~LBDEj=2-t1x`zs1O1ZW7yKm|_LnqwS z2Mwl<%u<-S9i6r0Y{1(xuvj}SpjvZ&n^%k*t{0~5hUt?4JJ;vWbHvTRnEvo$g8Tde zi!TIYPJ^TOFNw-`*Gkwjq<&zwn`fo5J?rxu66Kjx*T6XH6zXnV%AX*Wn@(D;2q^k` zKpm%K!x?xf#Tk$A=IVXcDZ3qSk_f6sTSSeap(}d8zKNF9*8oqq#xsS0`h}2~_x8e6 zYd_`Ww15)|q@8f7kmWJprDAK+i7pf~a?i=~J~jCELnO6RL&^Yc?+Ope6ULL>;27pl zEB@=BM3g( 4=b=C-pZSi)J# zNYapzN^8dPBKYuFW}eB%ax?As$mHFew!usl9o4z5*Ve`IN(`PL@Zis9EI`kPY1LHc zI2d(Jyy3j%<75tgt%lx(wP_FY$<7m@f`xx~hiQ+nb<{|NX*q5e+vEshz0B>qXFPp0 z-kjBo#WpU&`QLvxM^^-ZU9kBH2sv}rwic4RE@7h$F3>mqX {N)&;jY#XitQ!C=@+s=SqCA)Y`(2-=qDAj6WIt9+N 8pk-yMm&j +z?J%ReQ(_?!M{kBD5>#s_LClfFcnJ1hH4u_OI&3o+6vG?WtJLfO==-ONI z#W!j3{VG1}w>1zXum}x5qS5bo`$@f17t$9^id&99*%3q5NTR_>Bxuuol+0$?r8~Ef zZU?JYQvhX)dlM~&$-(!U=7SXVd;pN_Utu~}3L~QAV;-&HGo++(P!F5`y<;fu2iNTr z7QKYB=tpZS+<4C>e_Jk!f1 9 zWcwFyz;Po=kfLDGuz|odtUn8%L+P{Ge3eFbetGmdb$8bt27e3r{pj%I(5sGf7Ya(} zKZ_GuKY)TVc`u8w` n%CZV+9}Gt?$QOpMBXHqO+epGL+N#8<10oeWGL0U*FOQ zavS#F%|c(&Mux*(BeuoYussY8t7Z*y2;CUT` o)o&JS4G+TH5mMG#62p}Kgz+nLmr_e&K zx9Cr&Z~ >wUJ#v;4qQG9i0!Pc@Wl*Ev+M7%D5Kb6?vXwI zJ@T(KJy1me;S@X(Zzj#e#E!kF=W4taUDhK}u lE( zPL ugTF8Mof#`fCnulwWsQLwYl#l4j;3V-DPp zl36+Y|D4R-jFF=>59q% M(o=!ap>)7^;rphj<6Q+NB%Iald8Bz>6?xsvhg@1SsM$jzp)OMI6*#Snz` zgGcQQ%QT9@8?WbNv{K;E#9{Z*^t*N}bFOi&pSlzcy6aI^Y)Dt@VyE=?^ugEmA^T^u zXdVEtb$naM?Q{R|iy)`qvkjTDww)e2M+7VQ4u<-Os(&&5!kuAa8zZx kAEkEeqG zZJ2)Re9O@U9FX!e5z1rm%csH7_e9?|d5F{Ay5>fA!`_M^TT?2EUNE$<2A^9xR;Hz$ zZ7TdeSo}T23mD5SO^UOYV<$QYRiE}XJs-^Qm->ws4?bYf;qC 6YbN_!TAZC% zS>WTBORIx-R=?)lpvl23@j=qkolO9|uZ4F@g=N>k`#(VhZf|Tol^f_r@-Sf9GPQXA zK8b%SiXJ20sQ#w;Btc(~^CD8dHrIcfU6aOV=VVNY`KgJS*cR!n;D{S6te$a#IApv( zOHE1H$mMW9KIdpP1jdi@N7qQuL|{I8S+@f*GP}pv@^CZhP&N ->JyeU65qJl7I&zpU=7>0J|iwO;2v5>-qnmNm&1+PK10xbo+i&eY3-7YYd5a@uNO zqCZ8)Mzot>nJMnKsEEZ~$tC&A8H1aVPFKhm#%+gEqyx~!-!H`@T`wF(MtY~@#W4uj z`W4IY4YuTCH`4QXWZ5VyQf1iCF`KDlUwJ4w{bTs8Oh{8|Sb&4-86(lEd>PLT6w7(u zlg}7 %Y5|t$&0B+1mvNiuB% vlNO>Zy%J6n1&7U0kZZ|`y9-I1g68YD zP8QI6Ixpn8rIU;Hkv1>%)m7uLS=5&7f2K1=yosn0l =_ZxP{CtLG;I|%AU((FG)iIKB0a{G!lfgms4u($LzDiE94cTt<{1>%nsARrzphQ zxt5t9J%TaOxW+5>|FW3jc)`(s!xa(g+{;K=ZL1RQmHx#ykZefv>y7eW4MI{vmBYkp z Ryk^l$ber|@3nC<6-GTssFTdAU3;T093$qT%H3FL=dkC={r*HGcwNAx`>* ze4R<*=zbD=)z$viH5Ri{!K|u#c4y2Hb4mCKp(SVH>d)d{%)GI#ov93BMLvbKAk(da zAi9O>{H*)01tnV6p6ODd-*+7j^g9WE$-R`c_upotci>RYh&Ae~gi{>O84?^As~nWH zA%6C*;q}E)-CA`?K{Q*rIkG$EM!gxjLh|nU^#hft(g-;wWNNY;91nZZN>El|O17 z)nN~Gjpu3A;yL?4I73VtOhwr{75uymho<^npT?c=oA{(Z^r&e%@C+viF`VSBONqKd zDW+O~CMx#T-)qa)uT8k^(_Oze3wYFdo7kPCqkQG{I(Jft;OynPzyLI5eiDPpU2Y`| z=9dl{aXS9-ibfak31U{sL+Ct}i1ec}gaI@rQPRZ(N3y8E7fIy>D1AqSP4ENW8U7=Q z7?v()0exbv=yZ9mn!VrZ*+@9{nK|Rtj*oG9n08FuPmFBGtfrKRvEhkHbABw_3d{7| zwDYTQw?A8Ucjl5&W1IfkQ+B4jR9f0n99SIS#t>;llgvN7(-sF+lGkUW+fv>GJ0m-b zBTD6Rfv2e*b(=hr1W|6NuY5}^D cP}Aw`ZxvBr}x_2fI4Z#-!Jk>&K%Jszp4U6 z^vyO#`etxA*;hFlEnaRcYcVtL?(rvm4fsjMx>o^ICKS%t%oI|bc+Qt!8#t&BAv+P0 zReH4g=TN~KDf6~5Z4`_xQf!Hsnp8&XW!>;$VNikHI&2=JkIR$Ky9torOb>(GW zY&jtyZE( J|Bs8skUJ4 FS%5wxg|UfQ{HNR%P<^f~a0pr{*tbM?W^1HtUO zjF!|7p+c$ |uq8fQQ9n#xFD zLV13|%ff2@C{Re*V9;cktY`t(Ut=^jmk!px6wXe`nxQQxy{OG6;TP`y)|;czGtiBD zK8kHI6^k(J-oBCvvkuO5%5&+|PjHeXld1T4R0a1dma7Xe^5&he4XN0g3*n2N`Iz8d ziH^f8kwJz{**#>*u&zN-cQh!#?bLv{ctZip??A#Zp<7xpWhTLXpX~uUuV8GlkQ{d_ z3VUa7h9vNsUnKJ4FUj-yp>z)R@cYIe{t08&6Wl;elK%H(?&GBVhv3QB8oMC#Ac8WS z{qHxrFQ54FxZ_rHi14HmD&mpm_>}%oSOuJW7j^YkYakl9`?csX)jsKPKbOr(cyhlw z8S=RxWM73Al^e-nKZ!DFEkFe#3-?5jJr5DYkd;%2QIlmu9Xe^V?ULlV_oJE0ys|A8 z4820>U+dZZ6qES{noTyNO^TAX;xPs!3_Gn$ keRv02Mxdk>>llgR&dWx ztm3?|l5d#%wsR>gY1N{aM5@M(@2P^bP_{Zx=)T^bfAfCYq%7>ky0ansl3;1B@L&A< zgi3g6l %bi5YqV&;)2t84USx&B@;FF7=VaPY~YgK@{ z3-W7y%-XcsRTT|{R~dO;1i=Wy6JK}V!!}cv9)Ei(pE)OBMG5e$1dgorqaU#n|7-)B zY8YN%?5f&RQa1u73F!R}JY)q2`)bGLML3seCseA_UU>M*akR)5 lpPUDx>^$Ob+oQ!3B4Us<64(T9i_(NzIR^oJ3pBP-Vn?X^UvwNK7k6v zhyKOa29O45MJmGHz6KFuKotOO3*V_ScVya~PvySq#w%S5Qa6HA@@+guIMS^t&mWza zQQSGeIAgOIh9Jey(lxdK-6$2*Jwy{McV g!k~Y9 z{hG(*)|UPR&L0F9m2}DDV0|xBhfP8|fv-YzXE1%=CR(6Aj^tvgS32UQ`NwHyu!5 zqeIoNuNl{#PtGv^@$2J8rq2nn0ziCcQy%lnegPuh;Pso`Qb0NC$`To$7LbT4Kw)X^ zKNO??xR+y*KS1~}jL<0sx`(71(VV=FlxjoKbJ4#{jmq1d5#YJ7q87%RcuTTbx_ 2tB=7*Zim*}$}Olhwy(sjbp(q`y2ohr5!%SLrl5qiFoWU4|(XzA;8cUsL^G(l8J z-Y>~{hQ2(`B1D)K-#?ue`*KtEn