From 1ad8f7e1ce57824fe9df077768b2a44eb3d454fc Mon Sep 17 00:00:00 2001 From: Eli Zibin <1131641+zibs@users.noreply.github.com> Date: Wed, 30 Sep 2026 12:44:59 -0700 Subject: [PATCH 01/11] feat!: modernize examples and require React Native 0.86 Upgrade platform floors and Expo integration. Keep native regression checks local or manually dispatched. --- .../android-plugin-placeholder-scope.md | 5 + .changeset/android-recovery-review-fixes.md | 5 + .changeset/current-react-native-baseline.md | 5 + .github/workflows/native-regression.yml | 54 + .github/workflows/pull-request.yml | 2 +- .github/workflows/release.yml | 2 +- README.md | 2 +- docs/docs/introduction.md | 9 +- docs/docs/usage/expo-setup.md | 18 +- docs/docs/usage/manual-setup.md | 5 +- examples/demo/App.tsx | 82 +- examples/demo/README.md | 13 + examples/demo/__tests__/App.test.tsx | 4 + examples/demo/android/app/build.gradle | 4 +- .../RNAppAuthRecoveryInstrumentation.java | 360 + .../android/app/src/debug/AndroidManifest.xml | 9 - .../android/app/src/main/AndroidManifest.xml | 1 + .../src/main/java/com/example/MainActivity.kt | 9 + .../main/java/com/example/MainApplication.kt | 41 +- examples/demo/android/build.gradle | 10 +- examples/demo/android/gradle.properties | 6 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 43705 -> 48966 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/demo/android/gradlew | 9 +- examples/demo/android/gradlew.bat | 192 +- .../ios/Example.xcodeproj/project.pbxproj | 18 + examples/demo/ios/Example/AppDelegate.swift | 18 +- examples/demo/ios/Example/Info.plist | 23 + examples/demo/ios/Example/SceneDelegate.swift | 50 + examples/demo/ios/Podfile | 12 +- examples/demo/ios/Podfile.lock | 1936 ++-- examples/demo/jest.config.js | 8 +- examples/demo/metro.config.js | 17 +- examples/demo/package.json | 32 +- examples/demo/tsconfig.json | 10 +- examples/expo-cng/.gitignore | 1 + examples/expo-cng/.yarnrc.yml | 3 + examples/expo-cng/App.tsx | 220 +- examples/expo-cng/README.md | 28 +- examples/expo-cng/app.json | 15 +- examples/expo-cng/package.json | 15 +- examples/expo-cng/yarn.lock | 8903 ++++++++++------- package.json | 8 +- .../android/build.gradle | 4 +- .../native-tests/android-recovery.sh | 16 + packages/react-native-app-auth/package.json | 20 +- .../plugin.fixture-coverage.spec.ts | 360 + .../plugin/src/__tests__/app-delegate.test.ts | 25 +- .../plugin/src/android/app-build-gradle.ts | 83 +- .../plugin/src/android/index.ts | 3 +- .../plugin/src/android/main-activity.ts | 40 + .../plugin/src/expo-version.ts | 22 +- .../react-native-app-auth/plugin/src/index.ts | 5 +- .../plugin/src/ios/app-delegate-header.ts | 4 +- .../plugin/src/ios/app-delegate.ts | 30 +- .../plugin/src/ios/bridging-header.ts | 128 +- .../plugin/src/ios/info-plist.ts | 46 +- .../react-native-app-auth.podspec | 2 +- yarn.lock | 2626 ++--- 59 files changed, 9028 insertions(+), 6552 deletions(-) create mode 100644 .changeset/android-plugin-placeholder-scope.md create mode 100644 .changeset/android-recovery-review-fixes.md create mode 100644 .changeset/current-react-native-baseline.md create mode 100644 .github/workflows/native-regression.yml create mode 100644 examples/demo/android/app/src/androidTest/java/com/example/RNAppAuthRecoveryInstrumentation.java delete mode 100644 examples/demo/android/app/src/debug/AndroidManifest.xml create mode 100644 examples/demo/ios/Example/SceneDelegate.swift create mode 100644 examples/expo-cng/.yarnrc.yml create mode 100644 packages/react-native-app-auth/native-tests/android-recovery.sh create mode 100644 packages/react-native-app-auth/plugin.fixture-coverage.spec.ts create mode 100644 packages/react-native-app-auth/plugin/src/android/main-activity.ts diff --git a/.changeset/android-plugin-placeholder-scope.md b/.changeset/android-plugin-placeholder-scope.md new file mode 100644 index 000000000..733b11856 --- /dev/null +++ b/.changeset/android-plugin-placeholder-scope.md @@ -0,0 +1,5 @@ +--- +"react-native-app-auth": patch +--- + +Configure the Android redirect scheme in defaultConfig while preserving build-type-specific manifest placeholders, and recognize Kotlin imports with inline comments. diff --git a/.changeset/android-recovery-review-fixes.md b/.changeset/android-recovery-review-fixes.md new file mode 100644 index 000000000..01a0d1414 --- /dev/null +++ b/.changeset/android-recovery-review-fixes.md @@ -0,0 +1,5 @@ +--- +"react-native-app-auth": patch +--- + +Preserve existing Kotlin imports when configuring Android authorization recovery, including imports with inline comments. diff --git a/.changeset/current-react-native-baseline.md b/.changeset/current-react-native-baseline.md new file mode 100644 index 000000000..071300415 --- /dev/null +++ b/.changeset/current-react-native-baseline.md @@ -0,0 +1,5 @@ +--- +"react-native-app-auth": major +--- + +Require React Native 0.86+, iOS 15.1+, Android API 24+, and Expo SDK 57+ for the config plugin. Update the CLI example to React Native 0.87 and update the Expo development-build example to SDK 57. Applications on older React Native versions should remain on the 8.x release line. diff --git a/.github/workflows/native-regression.yml b/.github/workflows/native-regression.yml new file mode 100644 index 000000000..cdc8bf8d2 --- /dev/null +++ b/.github/workflows/native-regression.yml @@ -0,0 +1,54 @@ +name: Native Regression + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + ios-presenter: + runs-on: macos-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - name: Boot an iOS simulator + run: | + simulator_id=$(xcrun simctl list devices available --json | python3 -c 'import json, sys; print(next(d["udid"] for runtime, devices in json.load(sys.stdin)["devices"].items() if ".iOS-" in runtime for d in devices if "iPhone" in d["name"]))') + xcrun simctl boot "$simulator_id" + xcrun simctl bootstatus "$simulator_id" -b + echo "SIMULATOR_ID=$simulator_id" >> "$GITHUB_ENV" + - name: Test native iOS presenter selection + run: bash packages/react-native-app-auth/native-tests/ios-presentation.sh "$SIMULATOR_ID" + + android-recovery: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: yarn + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + - uses: android-actions/setup-android@v3 + - name: Install native build tools + run: sdkmanager 'platforms;android-37.0' 'build-tools;37.0.0' 'ndk;27.1.12297006' 'cmake;3.22.1' + - name: Install JavaScript dependencies + run: yarn install --frozen-lockfile + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Test native Android authorization recovery + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 36 + arch: x86_64 + target: google_apis + disable-animations: true + script: bash packages/react-native-app-auth/native-tests/android-recovery.sh emulator-5554 diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 3f351608e..3caca013b 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,7 +17,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 cache: 'yarn' - name: Install dependencies diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d98da06f0..b5361d202 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 cache: 'yarn' - name: Upgrade npm for OIDC diff --git a/README.md b/README.md index 75893ffbe..7503bbb7a 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@
-This versions supports `react-native@0.63+`. The last pre-0.63 compatible version is [`v5.1.3`](https://github.com/FormidableLabs/react-native-app-auth/tree/v5.1.3). +This version supports React Native 0.86+, iOS 15.1+, Android API 24+, and Expo SDK 57+ with development builds. Use the 8.x release line for older React Native applications. React Native bridge for [AppAuth-iOS](https://github.com/openid/AppAuth-iOS) and [AppAuth-Android](https://github.com/openid/AppAuth-Android) SDKS for communicating with diff --git a/docs/docs/introduction.md b/docs/docs/introduction.md index 5e03e1d26..ea5ab2bfe 100644 --- a/docs/docs/introduction.md +++ b/docs/docs/introduction.md @@ -5,6 +5,8 @@ slug: / # Introduction +This version requires React Native 0.86+, iOS 15.1+, and Android API 24+. Expo applications require SDK 57+ and a development build; Expo Go does not include this native module. Use the 8.x release line for older applications. + Get started by installing the dependencies in your application ```sh @@ -39,7 +41,7 @@ try { } ``` -## Expo Setup (SDK 53+) +## Expo Setup (SDK 57+) If you're using **Expo with Continuous Native Generation (CNG)**, you can use our config plugin for automatic setup: @@ -115,8 +117,7 @@ AppAuth supports three options for dependency management. #### Register redirect URL scheme -If you intend to support iOS 10 and older, you need to define the supported redirect URL schemes in -your `Info.plist` as follows: +Define your redirect URL scheme in `Info.plist` so iOS can route OAuth callbacks to your app: ```xmlOgauqX%my# zAE<*VOcuVsy9m41Y#-~WS#HJN5d)?nDP{(Uw&Ph94PjvwaIcbbS2B+>Gjnr4K8}W& zz@8FKpWU3Ue?IqCxKxvr*w^4{PH3~%^fff3iCioIj^BZjk_Y81zx#Yr_; A`8fSbQ} z=N|C9s=VwmrOZ*{5dA>QjO&*G4P_qM)4X6~UbW2w-_C946O5K3k15#|g0M#6&)~I_ z;In>y-QAZow{LkifZUrI;YHh(gkC=HxEkXuk^5?Uqk8CcpY{<4IZKfH-)*!FQ(`U% z@Ad5R51(hy4$dJoX3Y++m`-OrhM}6`I5sQ%$!B||ZsHl{V#@BDIaiD<&3exSWSwc8 zaTT&~a4*VUi@yaJXLUzklogn2#&A&FTC3Q%X2tp#<4*kn$? 5g3}CmYcVq*sc@ -KVkF~*g=|z zpctlTIeRI!C~XEYlJqj8+WMBG9_JbyI3UoxtYf3`0(sxtcMx;Um5=t;F(Um(8xX%( z`yUd$UVq1+)H&>8N?~KT6;&e$39AtA{Q$th;ItEDle&FSJA@4;z6|??9?3f_xljm6 z+dK2I;^L{&p=P@XXEpijNOVXaTS{Lr<%J5*#j`>?MUa4Se#eH80R$9V)4A>}_d|?{ zUDodr**t@NA9Ooa)SUoA?mN_RZ1?uMX--LnU6g)dI}?GMmHb%kO4h5;G~A&jG5IX5 zmN_bf &nJ3 zOSmXPngxOe6fvV7P_~4#b*ZWx6(w=q0$4lN6g!&BDD1vYiQ277uldEUew!ya1sXS` zCY#B1StJFU&0~(v<1le7M!sY1#dgzA-;|&lJ6FB!Bi$06Z@@F81<_!b%kQG~7ZP-e z7cq?khwI;P1YA2Xys~!8-vKKw_m8wn18<5Hd8r_l;4L89FZOF|-kGd!d6)~qddOcL zRLtEQO|*T8sP{Ac$;TW6K5s!cl3%Mm|DI2__ih*$_fRQrJa z56HX;1zX`K?tm0Wn3{ga=?`eCpCFNskiy&ADWFpL^oZ+yJ(+%4dE?*Wd)&z`onbGY z8&g8;an}o-N)YJ>SHSoF)cCUuxbJs5oMN5T^?k>6a{`eq^&{cBvg|*vF~buRL}|oG ze&D$wCKLMjC#G@YlVg6EF-w OTtz`&AW{&)FG zz>x=i*Tq}H34jTK8CXX0`nDEn?){BKq;r5$cmvEC4F 5!m+O;+6XcBTy~~w_Z`F4@4UP8 z_^mgxAEw&M*Qcp;mb&@KamP2#iHeYGK{qoXBW~btRh<5L{eD>~RZY aZBu@Wa3j`hK%6!fo;QIr3hdIkNCJ%#)Ht ztUk_J8C9x~i)pNr+6k#_T{1WpRKG&BD2T5gsm*)4Ed3bpirOAODXh=n)S3nqic8l( zvZeQKq_PT@ZfmHIpLtCjnU_=2+dN}GsyjqOm3k97Lghy6l?%QTdiSJiV>XFjsVFHH z==X-@KtT0=kz^&4c)IYKsoAB~qi6NQaX3(pnkd=_I xRF_oubtt}{Dko(=O=?QIToZ|`aWRonWu2zug%V?5(3av@n)3~CCg+o?5_h8WU% zP*XdOuq?i*gy-U3iYZ{yHt32`RPCRFBL=9CYX}F2#kye5H^5~d*a*?h$$GAi+R2va zL+K;7!DjjJt|TFg?D@>0YSUTJ;%dkHY@Tkbhso5_u&m#?94{gp|>;lhzo4=5BWq z%*oZ+*`$LT*~;1ZsWWw)w0r&O3ah!t*0ax5JpUprSR*3uwC0oTK|cAA_9oFhwu1JH zB04T&k2v^aIB{k@n1t_%P2s<1BXicU;o}MhCI^JQCc|f4GJcottsHkwj8{1#AUr6j zJl33^$wZ1!AIgQt5Cvw;=L!#jS}0>eq#-34_!6$VBV;xL_4c5V2%L~Ow01E}MblCy z{e<*Lx0F(0M{F1o 3!diMb}E<3j2$mw?=XVdVU9-L99=i~%Y zt%=Z?_*8yx2s*Er$6!>1xyrs?9wd9eVoZ+lBT{pBTNwBt4wJO#p{nYF0=V<`#Ji8$ zoGhzliNZgCedTZ*H0xAumTj3u{)=CUg*_!ZaZqS|k!xX6_ID$xUb4M$sm7OMxE7+z zw1RuXbIYTRy5toFE$W+jp^P0iA?5{^tep&);<7Ct`Y|dJ5TdJi2S&6i47AJksdXBy zHZ7bfHTluNbXoZ9;C3k`*L3QijD$_Jfe0mNJ&181|@S~56K1-UPSd)Eroi5=QIh0a^N7}|MttlLK zGnS=q&w!b0sLGGKXVQ4q7AI{>9*RkuC+LunJ99sY_9u-;6+vPUZa1TKtd~mfkU8ql zYOn8U(xfxitWpn%67U@ibL6z%AESitl-(M!j@xTFqj5Jm)7Me>Ki!`lFzZY_jeUHR z+M>^3;1wS&6qdHt^=(k8m}%^sr%cbKYFPR)TP}6}UOkG&dTS~ko!mcbylabk$4)f7 z>J2L4zzISgc+Fgc*m7!z&YpQbq>~$dx}+z)%IPKhIZ{{1u4;0!{f%3262KldtfeJj zO8fJ;XCGOV^su+#C_h86ijcnPcf$ICus0)h(%k3%eum#_o#s?1E1y5eJcYv$cgx zj=64XbUSpbW=c<%KXc1@C=(?jPfq;oe*IaAYV3 #U?P`OjWts3Tm{^qMTHp>LBFfl{vkxW$^Pox z-rG0ASc!2l(6{Dzj*Y(LyW s!Hx;@JD?D5MJ2_Y?JL89PFUmmX%3>Ey#; 6pZTQJs?{g-y={xp`Tq!!o`s_@qapdskkg7$q$%PVU#QxJck(JivKhCGg< z?4j3oP3w{r&ryBT`272$KKCzz7w_U>_Anb;#PBNZXUwUOq5mL$Qoll@6M4(8O|I~H zVZo$AAo@=x*&7_a(^5CXIRNFq!|wR&b%iqB;GH2RJ~od44BBI_QjC}Tue;)K{PO?k zPrcR^f_RXBK88D*^t+$aBzByLUb-;8ldrnr{ZVF)ePz~ir1c^ieyw07wcUH&6>`Dd z%Ic4$n6#?sS&=Szd+porl3`~`tmMiu)p@ri*Hd0PB(poYxGKl~QhauG5l}h+72kdv z$GMbRAoWo$R4-B-WWfv@>p+OEp&qmiMRvX<1D%_Q)-jHaktz(Ht%HB{eftW`?}%^M zD&`>~K0n}42uxk@${1VCSQwVUF>#D* q42Q8a?x=d7~l5`-Qbzn^ozy3!BSZ_ za-1}x`;4@I{^9;i;<0Ty-^h5D>hFh>b7z<8i {a*(z`&>shgaHHNMFs;?miq>o zd_;|vyiKeM3U;@X7{Wl^nucF(OnnJ51us@9iX4U914wpnG^eXtJEpggu}B6){OLu` zI+lOmM!uH9QR Ex=$rq|bmaHDgHaS! z93Aj9z-a0Ghi+X(W}TYulR&&&wT$ePH%gSzXC`_WdD}{)8VI;t8zCjyOD*;w?XXo6 zLoc=nQc?$|WlOodfg{t@pnm0% cT~q!R8Q#ouAZtR9YT zT`jN%w=Hzc5))d-m#nKZ^wSP8kKPzowbRznI57zf^xczw{gq={7(!$LWycJq1w28@ z1H`4OymS5M!{YU_wrTWoO_e|zuQUucGb*e<1aP4@8a~r7 z39MLO!X_6OqO$d`nT_HBkeOTm<(O?Sdx3m1h|CV8cBY6fg7Fy!At#4ArXZ}Y7v0h% zC*p8GT7t$-zKlkU_AXY|(f_ldgW{KN2+$iPzn93Sl|1ViOfcn!9_k>?jVp8GWzw_T zHIwbn*ZVV+5r!)uKR! b^je;DwQt$swZH^C`%u*0IxwHO?yteCW2${Nm}9nWe-mb%b(^U4 zI0xJY_H40sh$V~^^sg+E#|0%sBS7MU>i5W^;tF$Ru{Qvi&dy)^>aIL%FzqebdO4 zw6^<@80^QO99N>&PGL>|O9ZH9z)98Q68|X(2lwF%1KRy0tcPc#m6UBl`N~n(!0#C8 zvDOLPcgTeSl(wT##M|Zbyx&1hY6U1pdIH*@M}wnC$U(xJsIU{`XZ)iu@dLCm)GO}k z5KWJz=`XJR^BUW1Ei^y2^~#d3a8d?x(&wSo5L=Z3xM<+pBX^zh4|}6`!FkD!MVLU% zb^C{Mm!;3u9Rt;xeh>T=-~AU(wWf!il<=REj!M3Jgq-=RYg4$b{63dglnrP#^Zs V+M`X{wr-v{#uQ3-pHn3HbPJaeEmVZ9*F)GYz*eIj3Q1g(Uy-Qw_r<7TaFL zvp$Xzr9y-rC|W>)^_PZ(g!$I7=z-$GM@0@c6NZyhmC6b!w~)g>=+O~256EjZ?cM7q zufuV#p<1h7?)4lRfMa1@Tkd#0bR8j$dCM9Jz5m=Z#IhPclg}$*^8uXLV(AQsihRh= zSO*f%;aGHks-2S5^1dP`JEGGxsk!Kf+~*F%=BA^+BK()<5@GH`i~l$(S*ZU_Gv}02 zAO$5n78HVHrmR_EIU&Wa8gB9k^Ai{p5sgZTD&eRC8x$CaUmeM@y=VF>n-!{1LLs2u zN>$_!@DG&;=d7qr6v1cj&1~ =#P!bUTaTy+mPLCZLWKbx>pzGs-?$X+$#I2yM%PqdYN)d#54 z42BSxK8K0TX3mRCp2n=e;f#Y=whTePH<8t{AhGX=A)CS_%+X#+G2y&)Gw8 8tRpp*kK*F_a zeBXa~d(DSoH9^gHz;q>ZvcGqzSv|5`CUkcwQKC1@Tp(WB@BM-H@D3AowN6d;fDrVA z@!SC98unZU6Y$}*`8Rpi@%NqFlhx5<@)&6P$73@Y&1B 2QuLZqb<#ym;=mxjH P&S!b~L}b_v-WpHYA6{IHeeqi-9WT6( zt=WBIc?mabrz7y _l(;Fv5b}y!i>2J6STLrxedWz0WL&$l07pyf7 z1z+NFEfK2L*ySHxJrRUQGz>p M+Q;%%L*$H|l10pSet}la?Oog^4m=K{`+6QZH&G7-tA>f7^6vwQTli zhv|#JFvFSE(*XevYPZshQxL;y@}*I{%zQoWGmJ}l3ArZcJ!D#R)-;?^L-{fER1^E> zF&K?>BmzRl0Bs{g=FERJZIgMWPkfNlzid9 4Odj+jU7a7o0n)08xw{# z^h_(>eZNW^`N|UD9p0$~yn843v7Dpjw?%|qMHZFd2|&e@16=C##yn}QwI*1uEIP(U z_jR~p7Ri)Bh0~E%$1UF1NuGOC3`1MbHCG;?^1zf4=FmfSiHIC>^(cRNprk-mQ~j(p zxV4UOWA|^*sNGXI*;w?ye$Yu6RUj-YVlh~&rFa!ut+3Wl!aKvpRxOZPU5+T<&|ehK zu!;cj1NxY{FBy=mESD7%aq~SoTS$he;2Gpkasizaa{7<|rAm{(l>+I%BDeUDh{jKL zrxOMxZpq<^pbT5a%CKi;Y1-%e@%Ty0P8K&U6zqzX2BE0OJa4b9Z|whU|Bd&^2#)$8 z_RjRGe%&k7BP7d F@bNk!Tdv( zf!S=gdWKx_$Na#6w_Fr68J2Ixi%NV^v|R$oV$%X!LsFqW|C#2|{{$%1?;f+n)w r8r9_!TQQ8#ynoc^dLd>?h9CuAlA2o6dN=^|Aic4;1B-jKEkcC0ev;c1}37 z=*A*qRn}z=>nL6awi8%;Nsot7Hztxa00nrdeWiIfS%EUh zF=w(L@K>_{fC)bL@G)c!6*XC3>V<<=Y!|TXnT*n)=lFHx?&A4eJCymOYR2(&l5$>Q zc_rY9SE)xUeHD$_@;-28sy0A@clK@j_ej=Ey==f)236zu6s1uw1roHi^dqF01ph2) z{Fpxlii1lhqw9TQtgEB4_hch@1`{!3$LpN9>-RxbVaT}H2 }CY9WCy0DpcO6eU#;(RA|u-BYIhiKAU}jMT!t1^ zEaCSbarDQ6crG=LS_Qb2JT+c`e>9%>;X~HeTP39azi^=J_D?vlQR&ocSEI#iS)LPm z_`zbf7}WlAz;p>6@bv8 3|sk()4&H gM zwtt5_3D}n9@);p^`C{{+ 2L@#7MvzgP&R_RcFaaGbp6K&a5-f9DCN)8iofDE7y}I z!~P;`QGmSI)vD&}i^96g#)Z!qC5|U$FwNXV?H8suDZSJR^%Q%@ zssU|^0(LC(EE~AM1X=@>&cTRO2spHP$) EZtIzEqtB8-x#G z3XA Bf-DL5Jy3K{miX#GtE<76gC+5nc1-Ew-u19+eZp z4kk9F7xD;kvZPEY9IzG#tC?m-M)uy|i`fl)Tf$dR(k&v#nl)W_4lxHz$L+0CDr!N# zWm()=>sJ8I8T-M1oqn%p#KQkaEN%3;2Cp5c7`WrK)@9%Qj``l7!*%;f7}kZ&F6PR} z0*RLUn~eKMu(7li$i!;3m!yy<28&$+rT0^keVbYA7(#!8io3yku10ZEHi89TGqm=* z=tK>lp;N2cudcmI$!qY{KJK7m)R4xhQaej4x%H0shpyA&7>9Y 3;Umyq>AtLFmuiF?+`m#37PPpiIT2VeIrBJ(Hh=YnMFR zbn@+2YV!R%S;olG5@BMxxwmX4JsPB;gj(zDgY1}nqhI84psWysG2ykHG}En_oLkO1 z_w sPtm0vc!`;^tQ0;~f=%11VyX~Zj6R$>(l6lTQljlo zMRt!O($+X7eHq7d(snJL{LsWfX0flY&cx`OKAI^t5V!uH(H)hr$M-Y^T>Dvu-UW&8 zm~1Ipw1Kzk6YjGreG{H7rSDm%p%3S`eVL8)-O>v_(IvZ&5f;hnRA?Otd-g8I zghTciqxl1m8ipyO%#=>?ssnmg+-n_bBCYa 8Sp}X}i~~NE9H^Gh` V9gbl%r!I47fpA4Q|UBFhirVBp5)N@{+DxqiG z+Qw}(LGQrqMx* HK=gahtaB$JZE?nq_46U(CX#oXvG zH_Ly=4)8h;1pQCd-$xB*I)elQn+1pc|A>g5%*2bDT+Z=-h=}ot1g8ju$fAzYk&Piu zK%glCwk<;p7Lgmprb?ceC-K02OU`t&=$l>8(9-&n`1sbntAo+>-QNFHOzTUS=#A}l zy6kN~NG5rK6WR6gd?np6|KlRp@bmRk3QSAI$m{X`r0Y4oHzsLgCk!_S&cd} *k6ioY#p>fn$Q#W`?n>MjP@k?15z#(!&4r;|ww4>{gmDh^#vlI9=@hdLG6fitd zL_KWam*gU@8I~MbWjs1_zZ_-aNRhfrF9w>~<>bnF$nx&^9>v%9cNfYvy;{oR Z{L!A-wi**u?4yUW{l!2*} 2W~-3EJm~cDhkCZ5i_%m_4^)?P z-jK5m5c1tNb0lvZ_0HFzPZo&W-nO=Nf1)(n` zD|5h+OXP7tbDs9 =C9BS$gMAgXYV7b*g%fBLr}n<*5p8@xhg;_($MeJcSMQ*>zdD z*>MLcRu=&NG~u5}Ruk*koj>B+NoKx6v&nV1$X^CTEAuvAWzLFhM0~NRj@!f>nMSI! zC+qtQ-F)s)sK$ZPR7lRe?*!1}+*JE_ n>AWefD8yC2`ibekF;lHvpHBKR!Pm z5NQ{`3Q_uYRnYZar|ABKfsn3eHc``}A)=8P;l^v=%Yq6|vqN4^--v)ESM1pC{J-2X z9e7PsjEKaT8XMc=<=n_0S>&Z|myr`@vu*2?#|RYNrBpxN?kNOUs<96H%b#lqtwJH( zXLtyUY)KPVmfVV~g^Kx_w4jwbBr-I#xDTenN4`+jga`sJzg71r0XHFkR$*YzLoNM} z!vreCpalOzD%Jl3Dtul((70^BFouBX{JhRqyL)1&l{KJfv4~W @>1%~x6(w<(@=r> z!_e=n>N gW}}zbV)~T+6chL42%WcGNz4di jp(95OXkeO``fa^46#_9%aSJ8INL^O+WZ>#z-5%>;WgRw0`(t &_gOsH~4h6$iK;RTcRNt|1Ne1Np4at;|lelK+ zc2d$hU#87V4iboxi*I*6Qk~kVpDw=Xn1d-Dkhsiz6A0M43aEd7zw#6UTaMNRsBt*} zo(!WgS_LU 0FjOL)5FpJZ=;JR`A 3dxWTp;R7o8rtUlXnia-tTMx)d#dzFPgGCj zZ|D*%gl%;}ERe1q8#9A4{TKkaHJb7g+@(5)SEH5QO{v#KbYh<|&MYi0A9s|c;SNBOo*n{;v#SB$M3&`$o_ *l&r-ovp40sZ6K2%_ZEb5pHZ-Af+J{I+arRC*q02oK{7MLIgSFNQDBaWLd zH*s6F_vPlas$!=xBFV 26x%URkHHVL|@5R#jT5HxVLIP*Jec+hfqzdB^FkBo&8DuIxm zg`%RH!GPTC$Fbi$)jj-d3N3C7iSq)&4y2~XF1Mm8bu=WvwkVp7Yb_$=1)g>GQp03> z<(IXNO-I53J+%2di4PJJ2rIqB3rR)uo!ub49ybjp(O!;HBd63)jcKMJjG6R7-zyki z0oTSq^>Fj52u0Ge<3J&dA-<8VjAm^8ulG7SRo!V3x zrkhYKYe$WG+`17xUJ-Q)!-oWiNko|DJ)TpnHHEPRTFN{ <$} z(C9w?+b<;kKv$4t5j{+!iAoPMU)8nTx_J(waB+GV+WP{)G{VruDwpkFVZZ=8oIZ_Z z03G`21mqlpk~Xw=gPxH|nv(HD7)K>O*=mH=RM?64)%M3L1ZjKOf5R)k)}`;P3}jGy zroq}g1@Y(fwww!`|0TL4> 4tP9( z@g@49`N$r}-@_6{uWxA48XN2U>Jz&obq@NW20+}GyyPSr#N+;D^vid%giZ)3xFj3^ z4?{k2n16E(1@gB4yaaV}gw}dy{~7Ae>n(i;z`x{0@9eURf0O){Ud|%9Uj6cTRk;5v zP@B>2X)~M;@v1OCh3ObyVz?cIqK0a&Fy<{Rg6%&C$KJT|hmN~$+Kp+Q#nV=5tp@8E z!Czs_L6|a^9k0g^(og2kgqhNul5a<>hY?u+{xfFkF%LFvKiO<$g{fZ)`}9Z{N&}_e zgJ9iOe>mbg03_-Df>r$o{JjX;?=tY~pKuEU3yo-JMG6H5rU{!&B4i6v>2;VBM)6-G zcTXN_DlA?1w<&JNDne9=rY(e5RELck^X|&yUaMJ3TZ*ed`9KNy;i?3SgwJ!W(z8sv z+e2vKx#@dn!Txr)^!o}7=|*{bZek+)B%C DhnTE;*raYMaQ@Ia6@{wN$ce#n3_lelRM>$n^GbRrPrcl=@i&aX<6HJ z8Z_?TyI7m#^>CRrlB1npjI`#k7p>WEsuP$mt9RwMuA_t0AgEO3e!kmBN;uS1u78 z_b}JYC_wXD-ZHjiJ|BJCs=v)Wlb7R*;zufSBg@mHn-tMs!2;{($CZ=>Cg>mTc1Gk4 z500>e=}{Krge{QmmYuZVUq!oH-06dBLy% FJwzb-LI1$1 e*Da|*K&ehV$?*7huv_6bc!Q97L2*=}nS4$F2?1keT_cmtN@O#T%}kO?z8 zm6Oj`&n0`>QyV21tJ?`vzEc86?~^aNu2Y{kS4@AvxnZJrK)oMtOJP@%(NXPvv8rz5 zRcXbM6*ii-S#`@<*5uU|k;&`3yjrI@Na-m)s`|U9vRx{*Qc`1421k)rwMjL!%_Wq6 zIZOu1ve=ACbsU|hh7QNPaHn#zw*dP#l^MV!!$d`bTdJ;mAL+~W^h)85S!BKBm3J@j z-TRkurJv3mh(~O_iMBGTG{r5?W;rWw7LctQR#fhwEn7QOD-)gGYHW*<1j!}l^!>Yr zYP*TLYTGWWmOb1CfN-tE45x2pW3Q7z6vv!fS^YGN*YHSll{y=+VVYIAvIqFq_;LD1 z5xj(>*Vuaoe!u;L2n`8(J9G*LISBk&x0< gL2)yw{u z`-l_wBFnHVH 2Rx|B3aeW7wKL3S zTZ!89)>|vXF?wtNZQ|qFlZTTF)f%c&+Ui z(=)ROo=oyAgky{TnCg@!o6qr{3?lL_#h`t0YEd?5>pasNi8Qz+_i8y}oL#6AMV8Ki z2xLBRw_qP6dJoRnF$z`85 G|oZ1d8Vs51MThj!tZvjp-zEm2lWa$x}8n#ExiF zKDG;l$vS|2o@<$s9OX$CRkt{xjd{rhOY?Xi;ZqdjmTakda+jsftXvQ%ZXU*DA2u z4x~|vBB^HX%Az&d;jJ;zf)hRk3cv$FU>{jcd`Q?`fnqL&*TC@IcobQF(S53jbmZ`v zHBI(WW$MWhU7*}ZZ{fBH`Y>pyL!mR@J1j7$6G-S6BaTi48J@+BS1y5$oxiJ!omX6+ zuo5J-DIWrJvV9xpmW h6oEfri!iA0 l)dXNcir?j z(1b# 5mXOkc3%Dc>nq#mg!2VCxtKcl0JdKG73(5%j!@s}14bF~A27 j|6BIJ5FiU3{7DQycvb&UYL&iFv8=oo3`9qV4T~y^pS!s5FyigV z%zYdjLB7$tR!5WZ s`ePJmpSFVcwIETdIAd~zz64{p(d5>_=_XSjt4`Zue=~@N#9qrK^tBQ1Z z@3HE E??Mq-aov%Wlxjcrgwb7w$-Jag zrl|IjaS$}wpVFhsPnnwpzh3WvkD!i=xqyfF=RiU0enXp3EKINI*GCn}_7{#XHG;f= zhGd&1MCz%~y`%qg27@WID}*Jwi$b1lek`MA`d8Uo#_&s!-%iQw)FMB OLw ztex$yu~MJdO(T>19a`()jB5&Wudh=`rl#%PCdp)M!!;CwR7KO}qGYREL^atue+2=) zt>YaCX_qhh`(a}|1OsbM?*Q_Dy>O` i*^x;tQY8$Y_8pI6yXgWcTZtdvUK7`>d))L8MomlcqWb%2SWoJ8dV#uZXH<>Z9iV z<|YGvs;hM}8I*K7K+jJYA4kpSL#oI1TuU?+B?=}~xUa0!($@HQa#?ShhmWZPlIWi3 z5k_X{?%DL4Y#~pLh2kB8T7&3s7w;^-F?hu-zA9UflV4Tvg3@ _XC9*m^SF%fKRV8% DPRD!@2?w=WNz{> zVMvFTkX6dK!XJA>)1qRD_<%|i46{l!f~&Zt>>AIF52u7Gmy=jACB5T9fybEnkO sw@CKLG{j%F z^uV$$B5n|4JpLBllfN7aA*|N5^0Y~OxcM)tzqQPl;X^Lz9fjJ=&>n45Fy>Nu&fRJU zn(mRUA{Pgr4(IKVAp!=1Vrn}paa7{lUYvzus3929*Q>iLgE}i{VtZ#Q%+R$5!+|t) zymdwuZ-M%a-yGVCeiB^w3PYySeYPCEuJbxexOs!lC7F)$p}GkonC*Ct$@x($q}j~4 zUJ|tQE>}{UC(D@0Fv$R9b&hMKMj7_ql)`M^YuI9R<{`4BQbq=sP`?~0-R5^hh{NKD z!oQp#F;64_H6ky1PW)7_5j$Qx3~-oSK-JLQusCNkj*5(VmMD2>_%b&uFDV}$0^Xq# z&kPWWWmm*vlov)goxo{u12CoU)W+F#Ulnh3nEA6xVaa=5%{fN&;e|lPo;?bYz`L`0 zhx?HH(u;S~S5WAt9_u$LO?^}{;54D5QTt34EmX4c#ZXaS3S0v5s(8R@KbE6fyWmoK zptwm1`!QE+5R&1>oSt88{t2cvr@?y|69Z(1iiv2RQ$`$``ny3eq2?Dr4X*!&F1A_e zD#L`BC?x6*AZ2K;AKx`{677E`2Vi@1?N~v0zt}%NvhlAd3^SkgamK)Q!|zpzg(U5o zqr2Ax4oMTap79c`r(^>uv+mU$20r3o(IAt>wPY$WyvcdIlU1+9`I55F!7E8Atw5dP zzxZcEz|=|~kK&!K=aI@*kdR6}nD3Yq{ZuJ$g5F^yk72q;EiXawOtL~d(~ee_%{3gJ zOrWX!q4UMxm21AtkIeZC>uX&e8s0x}Z!BEKkSkJL;9ur=%#q7IoGJMXH3CF<%FlP# z8Q`DEhUz|IbUN-~AIe|a-jJCoPYhw0(4Nu&i`|cOtflYkjDi8u?vuOZs}-^;XdNNd zk@|x^Cc5mhzF_GzCpaZvL7l_$5)U}6v?*>ryGo~nRFH9M!*ME^cLST``3{b=)${)& z8Cz8|Eam>K!=U}2fecPY45a&C-}`5n)J?0!Qt#Ztnzuh0q{C3hi1q>}1Lxor{AWs< zu5<7_JI5mbXU0Vqe65j`n;&>Ci4>CMA0KQA70+_>Jj}VuxyxnSI=>P!{PV3f!a9s= zeEe6NmQP~#RH*GqaXU|ax!YW|x_vlI%TXC!9>oY_C|N7h$oInl&?-H`U7KO`^XoCc zr(fc1b*WpZ)|^Mip6b7~IkEnb)V7J|m#n>nUZ%Tyo>lnYW*z^mNeqeZBGUObi2~_u z38SS9jRk+=f> b1SZjP7U=qO`3 z7-jQcmjro)bzAxcf-Ln>&2;^80nVUNWbsf^8Z{$?eB-Bk+-|I8#Ye(=1B>HMlMWB& zp=sNuXS8@AspM`VG-eh&6bqt?n|tB64jiO3apr!1&`h$Xn6*uE;g+=g*Iu(g1nn?Q ze~p(4x*%#mgL)|(Fg8#D5s{sQ$#yxoi=^Bi@Qp80xgoz0WNPvFxd+jIl8eO?A*Rp$ zqhG=7M4o6esbx3TY*h5Qm>VmJcd~%P2P4Pq7zu{5tA|Y>-1y3(p?^cwgAq1W6z-L! zKy;WU?4x!Qk7KP7GWQ$@6WYYhrBGBan#A5tp_$`Nk{?sXgjqh3^u@fYu!iteR5H;x z0(z5IyMHAC6dC9WXr%m3-75UEz`!ad*8K`QACAqcs>68J2~KRojVRpOqP7MjhWT8l zys @hvebj#Fj{HyES@u8A zu&NlcPk(TS!j5 ^Kt#+hzVUt~;Ll7U^zOlz{5AWLPNz6s!XDYY!49IN78ZIOYC= zYU6zGvD(>GiXqn((b5rC`!l`5$N7M`grIIhD$%NYl}y)q7ZCe`A%I+HkEw*JV#U5g zR2>lrq?y-`h^TqMeEFaGY9ApQ1pTi-MEgU+3QM!AScxA06t>7V*{keXRh yt({m(Hkm+R!6eBc+jVY8g$nG)@kxRwOy7CHGkQtX1FI zuVyT*xjr`#$*Q?XTIx8bZ>^eIdoI_S>q_$d`AmikYfz1xNmA1X(z>RZX?=j)y_#up zFY?#5oZYf6lG66pU+04m@W+k3nbbC=Gn&9+!yJeXf0$}2qeb_bYA&al(Mybddd5&w z3OoYUSE_r}XhzisqL=nvsU>X%UIA~$7#Pq@%6Cnppv#$Tqj1hN229Pey3&@d=~Cc= z=>$qUuDC?&SMwRWL~orWE>&7X{LXTQf_7T71m<-)Hs Tum1mMSPxoc+tb1_eTbqg#Z;``GBc~hhI z{X^^X_8<|LPC8X6fJ-GrE3uU@u+)C7*GxM*I;Ug;MSHh(l>Aj91p?)?f*ye?Mk>zg zm1U^5%lP$T2UU{0#jxxE5-#rwm$%h0e_gcE=3RKHoOxMsMzse6c)7b;brEn`UNZ@y zq{~bR%qDY_sSad$kO2B!KJk=mm oN8KHh
{I(PTG1fWe-8sJ zXmbZ`JJ*tvLGQIR(}( 3@EIq5HNt|iZWC&N!#(rGGiYxV7 *O;Z*#T;S;%3wQTsiW|9c)cI5#T!^= z)l_O?8VEE_f_ypE)o$oIPtS$ae>9=?yKZ42e+&I>YFFjcrWP~w7%$}jZp77oycKV& z#??&5YbQCm1fr>|YTPVPe}bLX_ZoY&XqTGpOR3$Ot@f))o{AOr7Un|s1ViAF@*RqD zlo&KpTU4Dfu~u{$#-4m`W_(W&>>0{wFK*J^a%S1ask7~BCKKnyMzFmbf4BPaF5EWH zi`xY%38xGX*)jz$WpsaDcOn(tRQ#Zt_u_p)HfHZ9W>c)JX1XsgXL`+y4 PrIKVceEI}ND(>m{BUCl&yxJ%nj zEhUl3_D{hl2rJ&Dn^_o(f9eH#|A#7f5|>PS?S2xU^5af?T441H+QH4z&q|qtrSdoZ zehTg)P>Zf`OT}TvqR7~)S{D1Xln({=XOp+tkWXh)@+Lg$$B68tyi!Q#Ef9G@*;JJ0 z`9|@1sp1}9i4E;DFT77KykGvX37ONUTIr-TyF>3ce0ZR|Bu%Iee+s_jUQVUO0X*bh zPG2T^opR~J!#n~D1;Z<_V7jWy4(t(p&5t%b%1dF#`fag}*yd2LMH@p~dV02oeE7yB z(FqaxmbClZ+|ZVwV|kq}*x$wXsu;NM6QUb5)zr*T5u!g7s5@!9q2R~VyFvQHho1;! zLlf(0$Y5_BQuR<;f48(GTaHk2+&S`IOBHW|5QRdUogG5u8QBur>b!=em?e`alpjBK zyv2u~@w(!pBY>aFQ$B`YFgnr#!%Sc87~sP%*+l T#Ve@v`Vv z @6$)w 6VK|(VLJO z3b?#ebQQ3(yMWyn7SPw~DL`wjEMTzJ8*XY|TIZ>&tn&_I&%w@77>VFj;bGYKIZ9^p zf1#YE7i*j`hy~8L5OvPD7|Wb7gwvgICC+k2*98HHF_QF%LSBu01r|+=GXjERQ}{48 z2KSEO+6wx$#-XlvsAH%Z#SIC`8OE!R;*Ij06^>djDwaHpIii{0epFxuRjuY&gE!&L z?gkZ2goc+J_c=Qxj^d^rcjE& ws&W?8`Vs#!d zj6(-tH*uEy;1PF0Wt}HDEI(t%&=xs{b4M|fsH@yPjJpfCx4N}}FGToJz!zguPpc;q ze2{zGPndJfp*m0O07BIHl|-z#RjWrt EGIK+B q=y|LoP0nF^61QB3nHUecCu(S?#+AN`jm0YW2>l70ctET5)>3G7|UJdE!c4 zW!x8zS9_b{)k<@`R;;Y^9u @6aWYa2mk;8lkX@FlNov!lQ5?ve~nUIPZLoPJ(mKz{Xnszp!mhAP!hHq zqhf=^1f{@34WzXuJ~g+y)9upz%H7=>V&sSTFN_HqP5c4=DC4wfjN*eY_s*P|GjnF{ z{r3IyR{#&NEb#95xLJE+bfrC@&@na)yJxH!b`->(FH pGCp%rDyrX9~Gft5(PmaC-Wll5B3I3{K7j@@=bYA*_?5k-S6 z)-WkBdnkv}@@42+``tsbQw`Gs3)}Ubf30@oMQ69UwcV(9+O2xCv$y}eE>Ld#X0+0g zvd04YrtN#7mp&25RaRdL%>SMAH1m9il!lVP^yWCXgmWksFoW{~`HZDi`>ajJg+Ela zj*^rD4HpH9E~N)5;(5{|f#u3sC97wl5-#C#0dtt=#-n9~j)3`J+@G4c#1&i}X$f8A zNv-PXYIR&^FO5!91?DRMY5BM$DxWbma4x!fk=cXZ+Z_`zdJr!30<5*x1rhK#}je z?5$veEnx8rW?p^7Y`Odi3n#c%zQM-{j1Rc;9vIVdd`=+u15ir`2(7DUO4$Jb0J4+d zC>@j44iA& ;eznN^8eYt?XT~TPXM@pset$G_C9@;8R`wW zTrQ<9 6CD zaS}}x?Sk6cRbTDCyzYzLSF7fI&$)M!nPdX`-an5|!oByL-|u&R+xac$ d8OR8ShtW-0~QwnRu76NRD%~)yhpG##X2EGx%j7nHugJj1m@2E=CYp71&0a6nQ$VLW zYJjaQP9lj$Nwaagk?w^N&t`IfA^1;qp%6Kl^5MbS3OYxp<#aAn`Q&+xR)VE;!t%&5 zy#Pdx0DBc(P)g@h6SyhjW*S|X^9D8Ckx-tt-t69($i%}NlF39;ql zeHLaX(?#oycs!Bzht0H^j3KJ{LsF%EP?f)bJCXF;%lo$&Nq=`T5%Y(zLAnsj{L7Z6 zmNj^27xW0gm;o2Lpokv#6>+;_F1?4|B>ga`(@v@I`T4%qIS@}9NAeiokA0iJ*3RB! z;;_*rm9ETosibny+DhADws_i0hO~P#by>d9VZ=-?g{?8@&Aq?jawA#gp&o4dhQ4Hf z0z#)FX39emxD$*YHDn-7rXc33B4QSCpkh)UqNtQI# *4(6pK zT_9($yZw0{6N*L<#$que9&Up{fsit>Ei#hQcAfg^Fm{&_jV2E7iXVz64#&4Ct%3?8 z9t_ZxC4jjKUp*eW2D{WE8_0l4pf?eJL$rA_^p)tdV&eHl^FiCx{8+0&7uV7ClAE`j zlKXA8#czZajATzH2H|%O^ub~?^OjX%03>gsx0TRa>1Hs0g@@jO5PU@@Vx~QGD@N9P z=yn)4HIPc1v4AwOhyDXwTan46BhkjTND8^`T@b3%O#3ZBzwHYH{zSJw-D~=Px9o2B zSDOtz4gSFT*npf}6C3C^q8YOW+u_| ++lpEmn>ih+r zo~QqUjDf(uOV=Ez^U#Zb_&{DlDV6flcO*A;^j#!{RHiFsyLV-EYtcCUefoif{vl#+ zB3>Zv-q#uYPb;cLFwb&W_Q&)Ssj~lOTJgs5HToH%na!@Wa&r loA51U7}b;D<%yjCy$j$V?w`n~jj<<_ax`9}%zC$uDq zc(WbGnOcf@&Ku?SFZ5T*?cb0f6t|LD#p^#1y{eEGWFm( rSmRxi)yIj|DXg^Y=KN5ZZPygW~8_$i)` z-LL56%&{RJ_VPkmQ#{3I$WRXLT=;rSI%x}!*93efLOG*<3p(rd;b>fiUEDSyi`rT7 zV|-Q#FXd&q-lh;h;~Jf7Wq{>19 cUoHio%d(`NwFMs*5xX+s8;s5}Tp5sC32)t){$F6*uEB zOp7M0nV*(_RMzK `2Pb8h zJZTIGfmUQuUV(tJr^kq@ur}W6Fyh2~i&a08w?CGNrX$$MeyhN0@Nl=zrVJ~KY^ZR; zO!;L?*K72fej`3$fdUep%(5vv%Uv+cX4s`IkvNorrVb$(uHUe+c~{%cgPV3VuW#FM za98Jlh8+htZ)@M+ lb-4;qN27$PmkO@ zZ;?rFujTAF>U;ygmFbc_%{w|;J2v@Sd*Ud6EyMm$CY45`Y^l{R9o{b;-XFEkk 0+Ih#+9+ALO&; FD?m!)cR^$sw3ihPHxqSeiTxg(@8tJlO-l- a?q=*o S9t`ZnC-vZmXrdk4p3h%LtKa zPSl8Xg^jAhgQcponQkjedxG&+7dw7`It5FoQ1|L$#vjW9yS@Bz{)A30{^SfdqYYa; zzHTJmpEzVTwkb*4&9u>NguvT?#t$Pf#Ks4hp34smHXbl~6JaYerK+sJQzX?*g(!~! z{&$nslBdS4nLNABh( X9cWS00l*5Ig5{ zIzPpqXF71ojdx0&osJiKC1mpxjE>kFj>s;tD`WM2( (BG>cXKDDV;30hW-4X$nCl}wrYv#4Z)Ip@l(@VYSw3}!E=~jd{E&a7 z^AGsPOs-u!HwIRD7#*qyWLpN(GK$VFMsr__mw(1TmrD2r(nY2(Y{&zDYFG8X78z82 z#lMy`f0N6{Xw-WfTOvKJ@wBOO?eBmTRvgHrtH}MH{~&Sxh?(kEMF#fzv(7K^Ut}Zn z1Nrth*<~T8mF1hS#YmxU_@^vd?&E*K7Tb4h+p=NZP7nWk0;H8{U$r1#1LT#FK7}nv zjS05K6r6BaV`%W^nMXo@(M&4RuWs9#Lm{ZJ-H1brC~?;0`(6YBCgVobx)niDa0u#Z z+%P5jYOin$t%Oeq57UCFH(b?nP3TO?Q*Ne0Pb;=1Y-&a4ie`0X1>x02shDPYg*uHz zU0raNWFOIr8KO)lO`s`tHbg^*JfZ^Dj2#L`k}0pKRP~FH7jF@NH0()JWe=~IYmNJu z&R& y@mWvg- zSSHS4TK#`;LrutbRh|B=izZU$CGucBIxxQZvAUYbUBig;#VTE_6c-fqY&&~lwXh~u zBNC*drr9Sq_ZA7hMqH$e3&q-8vtD?yqlsofhTxfAv5ua9mEN` IZz#xq2|KI*{X{+88u3xhy_x1_-{?&PKp~bsg<-$ z6#FLJTZ#^`O*-iI+%b@S4Xm8L4cSNPZ->0A@!QwJZC VCm;AOAar;DK2? VvE1l4R7mls6Dl~P)fMQV-7>+-ceK5w{z%H7vF;^3;_U^&VEj}> z+yb7)mjmN0AZkWz{ln@u&2C00{2sH=W>$0?dh&I=^$;q}yX$RA%M`&lz`8a98t&Y0R z^4+z=w0DU1o!BbJYlrBv6NE~Irc;m((0r<*YFbM|+$sNLiJYVO6dJA3XbG`KYexZp zXni*mjgk&rIfd8RKmf!6@oq&;G7s0qd<))n`L_y|Xqpc~>O{_mYU^@5hw$57-dlco zmf}NnMV8XmPumFf2lwyq7@{N2N9bzT<5U+6I?9iBI?J!^%+d|zb&t^7bECIl^fo!V zCpU5jM&2n$g5`Gtu>3ub(A~py-w54*A8c}t&;!B1ar#J>J~2d}9-`wTlnpky0zT&u zJ^Cn}U}|#v+>g@JOvm_HpG&@fndwQ8Zql;!wPXAdpH}`2Wr~?2^gM7S>bC|*pTqdK zv-G`V AFW!ZQCYsY 528_?s1PX(rPry=F z7qBad558th&6y3cR-$BifqXy5=ag(M8leY+9YgFdzaz^_j&pUE>tH;WWoz0b-*T3A zS8yQ9X9rhm_Y!o2&lOo-xo2?nd3;oAKDVP%lY+RNmq|0b4_dR2NYAc+tKd~byn2|M zn_P0qVBnz7HN@+)ys3g)v)pE_aFV?E^tp%ml080Wu>2^-z}KGRyvK)^y~n822XAd| za+e>)IJ{4>e873VbRg^FGUo?rj?b;W99a&5GQz+hnImilE4XKfdrw%em&@0OIk5+8 z4s%MaUn#k5f-u1GX-)8dnLq_+hWW@8voq9)8&oiqo3(^hayG%@kQ$;YIj=fNnsbnx z4msIW;`8`Qa(YlB*mEvli8V0HZ qEe3oyo&+ 3Y!B2P=LfLXFn{FW z5Pz)R=dOE LEBNtTv_v#hF_CYl1*3F7X;utWKm8iruhCN)eV*tQTB%Xp zqI1t0rE(e7M-d)9MPUIZ!K?5brA a(I5;utpE63DA6%8YOrCq=ix?+&N0yr9O0-GbSN$C()SzEXB~P zRAWtC%%c>_S2W)sSyg%GBAH**yGl1FX*m)Nid_7^1XB& `15_@qqYCj>nk8<3rb_XBnk{}ubHu-Cu46X& z9P??OV-d}F)YAgT1+>tyk@Da{-;@tf6Jj z098BBqZ;RhRO{SLb 9ei?)iOjMeG)P2sT64WX_jJzU8#2r3YQ%Svy z2$EF2q;#A|$B4 %EaH~usX*<105vf~}5VOXxF&%8riaB@Fax3gitIvvgiZQ =iuSaPFrzMEwNdYU@z(b?`h@1>0+Vkv^Dt3uS( z9vl*&eKssD&JDIdO$&Xlz_4h-&rEve#$j>sAn99uuJ%DLug62C@`tw$GKij}7Z5nb z2KbCCD>ef|uHEz`HE&g7w%1mOEm9aMK#e7Tz~cH5(H3kU67BfDB-nnE%IcqR-bZ@9 zV@3NQxwyUlBz2C6&fxy7fY_N8d)g5-7X}eDhsA-c0J~koqPsRLF0T;LtmwmRDPn5* zn$8Mw1%@+Y6)EHEsy$h8bi7b)bJPOt+B!S-PT-u|Pvn#ft5k^Vl~tBx#f=r>CTZS( zk^)`V*4v62!}95{iIq2i_>OVVF@TaO094IfA#Sf767M{L0N+Rbj(3P#X@G80&s*sp z`Q#V*hvEVxi iIIiDxZQyiF%d@uc*Oux|pe+v&ACyTq0`JvqfxjAh3%~;t~bl zDR#@JgB_*nIn7a~p5=}z^<3syE1!0Miux(d9Yy8s(fEW6o_rrF^jx@=`Ql~LU!hqn z(@Jp|74ToBxQB*RcAAdNF$J6gQ6YIXqIVt;je+3B!)`l?OeRJ7P!i;3*+wXm3uMLu zl{JX ;w{`m5{WD8{R^@?KlU(_k{t9y)y1h)vyl)a8UnkPXWIWavpA#I@qBpXO6 z%P(;!4#_S{+^W)EKP{wrNPCNr_Nu`0Mu=e|?e&6_K49Df!G=Kjv!L@i(EkO}-XD hAErcn_XlVjhNXKE$8qhyDjpO9u!{XBbU_7ytn6GLzvb9FyB^F@FnuTV)mhe@WYW zn`W<;Zp#>>lnuJBX~$q?1Q?8tL8TO2H)`0R-X^#09Z7CUZnohA6%i0cd5Ah5D!zt_ zirA%v@(^*Gpn@n5AE+oIDx!#}h)DgPFUgvgw$R@%J@ beWX6tSKm}0bCZKk!txw96;8Two9k&iVOtrSn*&xR92>A> z7i6-@Ons!!N@VP&`oaEi(i#jq!ee!Bs}*lOmbB?L#q)jHM1l*M0V{kIQ9IS|q-;Cw zr24tK-A-pHi|cEek8WNQj@#So-)llC1iIX8I%aQh61Ku(H-FvV(x0~C3A<%S+8P|R z(=F|(jAtbhOOG;8rZ9J#wcTn-SgHP&vwFALG0#AS!XbJ!>p6**n45}a(`h^9wY2e= z)tj&lm^`@MN-RydF)MMdGnkh)yF(vy+!n!)SEv%2xRdeLJ86ZQB9?Y~v*M}E>BNCU zDcft=ys@2!=6?wprS>`f*|hek!t#zO4C&6pwo+1_ukZ$(%+i%KeyT$S>xJ$FC*^o+ z719k8^_~hVsy7qMx2)sxbAp(M>PnQOHi!VK Cjql&q78+i3%h0jv=52HAC5Nqe#ed2%ufqgj}>(9`0BR9qq4@J7Nno-K$X zi=(hgq#aG;o81dctX42RH%}GBu_9mv)+ii4WdtWk(XNY#LXwwGh8ammx#^3vW6urZ zM68wFlYgkLlMyaKtjjN*qA-WXuItUXiL7UzZFvJhtj}9_s=}h_Q^LS$ypUEbW@ng@ zE18r14KrrYn^`f#;iU!GCWVH+YscFHI2~sw9QhUx890;L<_S-ClXSpYl8~J^dqSD$ zx+vq>Ndp_{IXlgJU3)<7v#F&=U2Q8#4K`tOC4ahb4)1uM SxMSPn9t5 zKvbli%Stf?Ljzlxbc3>xU`42%DwP=I^U)K)d3Yzo7-s?YXhm;6j4>t;!`POvG8u}P zkhFS{D%j|g+toj{)26!21{^9=TGhG+tW~R9yRyk3E)a{hAyK@Jg(_koHPNG5eFKAZ ze}A7V#oP8`0}6*unbyTpB-W;pksy1t*4{}SGC^$5Tf2i=jTiAYH<4hvQ@e}-rhKKH z9P}>g;0eZ}=m||JYjniB@ty$Qh4+#)!4(ltr_F0vzGZUFcpu&`@;<;zGHK7i2aBQ9 ztkMYLjhbSMZ|B#uYbUYh3-lw&_o3de3Zd-Jex6anSt{sn9yEW zr*a>|$E$D^uBMf5+&6G7Gm6c*)86R?@d>Q0!gaWwl{KXoK83?&;nQ?(!tL+3Dd^y- zE?|e=q_i7wV O&ctV=2K7kI`kX>&T22N&PtQ z!dIATrO6n?*QAwf!) gFOjs(g1w#9rhfXiQ@l(;d >{-03O5- z6v{Vm+7Mo2;ztUN 1&A@LNsf^WUZ%(t2E@_xl<0ePx8T>wg-{ILwvqZ6I%s5LtCpYhp z3aZ(}pXm-dDdVOhRPry<_kV1!(4K<$tGMUa_#0JoGtDVZIVS$ju|ZNU?NWb_HS~zL zG|W))Kk#yZeej>fnx8LYawF)ze=GPlcOB@6C3`&iAG}(LSMXno_S_D42YU}+6yu^x zsizeEKfE5mg&3nDJDgP9-H|aB-v}nhYtM30Ea?ZATG2LOrMv74vwwCfrmKqbt1_Nf z<@8UllPUz!REEOB@l$k(3^>IJQB_J-4e%9Xswx(;V^^;>)hrq>&DTn~DTn&%o2%yN zAxh1a3ch8U^j6gY6;L(g$w?*cNw+99wIKZXpsH2#g>nHe+8eeF6%rR%j<-Sj1t-4t zpgLGB4yZ+nqxEd6R)2ESc#lhFkZiiFuRZ4yspOvw#uIeDu_-jeY%?I~`ivxA-;AHS@ssbqv|KdWS;S+rX- zVff%xW?3-QQEU)}hhBbZ@?f7|r6NbGV*+ZG;xJz66vYSCv41QeTqX0y@p6!{y*hiR z9m{%BEb4f3l1@e*t{Ev0ym~4kV#(OEJMA5M>{ch}2}Ye*>;YQ(#%#)Sl6HwLCk52W z(nt>}))G5jSK9jO`pAtEIKI!Xb28MYjxS3mUdMK#_nJ+$o`GuPbDK(Zd3@2IX$@`? zO*za+q3p~idw=b;Ug3kSoRcAKM)}-%@@NAHg9XS3n}&R@X~^dt03YdVa1fv68;CXX zd #^~0qp|U-gzhVy-HtoTp@E$A RTR @aSjnR#F2@Z}MFwR`v2gVe8L2w%_P_Hf7;!H_66 zLNj*bneN)kid*nV$k>mEnlx23VrX`TI5>xU#DBZ@6*)c-F-Nu3kQoYu3!w<-DOZ+I zG7faeDE3CT%8C8aQ9MWuhw;Pehlla#Fdoa{$%vW5FG6O-*o{tcSY=2S?rVw`Ei!tl zpQc44_(KkVs($`}S;c*`r}_nL@rwtxRKzH2HESz~JxqenuT%Yu@mBcQFO{TdbMg zUVoAZs!Fz_kunKz^-Cl8*By8*$K+MMoT}Kx*x_+)b9uN%nKVpwj;cVk;vQTWjfTp5 zqW&5c>?*5Kv%AV$D{^XHZADMlusSHG7BX#eYRN8S#1Wn1hKLd3QhoKqJ@nb5A%l(> zRZB@Xtd`N8Pm*9C8bTE{>d1&$b`Okbq<_*MGP>yQ%A8ukU_RBk8*}+vB#c(_V}5u< zwdNF!f039O78u@#!$M_6H K#0~*d^9}_5@Mqs@ Tv@J*J)o)D!CG8h=(jFVJ_D?|T1i)uLfQg?%^qKBsYkg5To%lEwuJeyeYf z#svyK;v3btK*8_z-LG+hf Z{=7by74zE?CZ zQ1JiyD>N>UxWC%JKyVF-!>3MT*}WWf|HC;3mKo@L6|=`U_XP};>xI+xe^>wCW^lMs zz! *4K znxAXnt}$FbEs;wiD)iJC%BH6=uvb(4S`3?k>M5(s9H-${feI4X(v6n!jk3}Wae02@6&yCk z4qe7RT_EI0Dc_y>R64MssA)If-iyS?ID_LrH|e%;|9txK5)K2Gk?vY5_GPyC*AP(a zP^H!*sQNKWB{AE#7IS=?FxPh;=J{f%_VuI2cQFp~ccIpQKIZ%5Sm1ZC(4RoaKd9yS z_1NM6KTt~t2v012&%_J>0J0d9;V2xF8G1#3T32g5-FUYOp1LmLsi=4(h=L+02wtYU z(`__+AlcRn(FgG@yb!?)AHataXR9J21DTmW-~0*5`^W1WfDOzDJU%>}H}2e~3~ne1 z-5ob*xpg;4<4kFpt2FWAG$hsyX_A(Bvn{O`v?;i;o!GiNEvYTl-7NBAnR%-4*lccp z$#83%S=0ELZ*{b0!M3Hh#w{h0N{Ea~B38R(ET6@CV|9JC;f2(7?}s1+Di>+T1azo0 z2`r>0@*^WdP5!NsSw_Y`PHZl 5idOvQ|b+Oq~30x?JSNZJ8R}Q;Ev=1?Cq28vKWsE(J=9OP3BD zj8#xZ)xi*khcSSfg9=89YEq#8fL{qUZp!>KeOxicRjpt+3l0aPyiRjBixLM=UB0?{ z!T8EEChE_adIEZAsb^981W-!{2$TxLlxhJ00OtXd;V2xF=zA}J3w&GEdH+uIxRR_q zY{yAN0=cncVoR2tgvJgEFUJYsSb1RQfk;ZYmagqfBwe9<700{=YuGy2*3q)HNmpQW z%xq;{vw<9%LSXBFveB-4cVl!L?H(;%JGO3v4ZQz%?v*V&GIU*j`RUy6obP<+JKy*J z9>=e|_r>Rk=tJUvPC=*dzI$-%9nHg9`k0>2G$)$VBh4MnX){+avYKs}`FPIE=$J3+ zSzWVqERJbbJUynTk6ERh)tng7vX twHSA}%V51oKatLsEaSM;t2dq2Eo--y*W@WzR&O@)wqDF@ z*{%^Vc4f_f^f6qxYv+R7A>4n3kvHtC1bw*eee``_4Qnm#)9kTc%hGehS!{1VD9F>+ zelSc+XjzC9su#5F|Dm@+jUif2^ 3Q-+@T?BV(a@YEe8#f9X zt$9J$q1%$unTFZLhq;t=?U2o=+1CC(o7cNzAH$S?eLJe#eOb-21U0s`SILr-+ro4S ztz|2yg2L6uD%1>z=qC)zwxq#s3e$RO4N(hSItOl!P71XNYLc@h+sJnHnb|B*2xMCd zMFj=*T*015LYkn4iXM`a=b%Oh#X}UMPOxS%!z$q1`nLANbFC4kjkJli*eq!2yfp=Z zO^vgEqI-))O`fSxcZhn}({+Zm!ze;Cvp5l^%bg1)a6v5t^f$F7=f}}DzW5b%CGQ6^ zm&{dMp=$&whP9J#7pCphT1UOqC+L>zq<7Q|n2N@5i7laSXtg$|8B@2^ylJaxGjD4~ zUe)pwU~_abbgNU{d7=P9Pkju`ojs-Mt*(sp)2-892D(HWqf@Xv@@%xN&`*)FrwNt;K4L>5R6dDlJ()NKcl`*zEL`m8s$ZHw5>k>)*VcJJGu%QMK z>I)jmwT}fem}>6FwbFhZi4b7l_P1YXkuV*kL#)b;;L94r0lJA10e#zR7-PF>+E7z} zE9{11L$+2#s#w2Cp$~`XW=2>0T$|*z9Onz0vrY{d-@+$pf_8l{R`__W$XA^~jap+D z?wc000yV`LnW*H%KDS^A+EN20AM8W`eCYb#_~tF$0UAXqkt~*;E)@-XqH8yD8q(kn zV^rsGFc4xew?s=m4S#Q{ai;5s+A?5&nq!m=(X9lHS5|A+pD&bbh|sm1LMA7Nxyn0u zyDdZoLNQu&c)LP&B_Dui&i3N~B)$;yzP7{L8ImVxB1GeKJEE#o$Y?fnSFqII&tmVS zyI7;UE8^sB_Ky|Kac!7$ PC^#j9;W-~r&!2;Pgky0 zWs>bBBb(t`@-rd2pOI8Q%h8X5B &j7+reh*!dM1xn8ry`-J+1lPv<-(;O{?z0LBld^b 0(UR1VV@=u8N`;aTL4QvP Tk1c~vY5{T@OMubtgyQQw)>bC8P2 z{C#e3zDzG759Rd}w!1Jtwr48q%k&jye+3ok0 (*_n=UQ>8l*cuhQ3$ zaTe^yIp+5lHGVaJX-+f3nepprUM+1zW(1Zc=+Yl4XF ;<9xnt-a zaM! js6bZ zr7WE@tAe`PlC@1&xy; z9#ZeT{j+P3)GS&;Vx3rzoQfA$ZwXZa+1aT_v;A|$C=1C! z)QC&P1~wO-oejWhx|BuBcEHk$y`zvA7EvGs%P}B?XXA1@AmWu|bb(MsbU~D*+k ;~@NbDDfu)(mn zdoC7B1#~!JkwQ|(%1u7vf6It)68eTw1c=4Yc|Cu@pRwjg_4*z9h*rwl6?)&i?KuB` zW^t6=e9PRwEB#*uDPkDqxzhaMv1ymAzA;=>myecRyBI7Pp@&3Tj3Bqpw0Gm0r5dxh z?hJ@As6&W(3W#G!t3~-R-EW3PjysSRfyk?`PHnQY3 Kd4&t7B!lEH&^F`6s7;5IskKJ*ngr zZGG-4Pq(+pd+}p*akR<1IhF90Y1=6Z#Ul7!opn@HTN}oQl928gx_juB9J)&>DM1?P zW ?~MiitQDZi0>zw71BTJz62zy0oapLNbzv)|eKd0H;Vm8#RS z0_g>D1HwJgM8Rd}2HM(4IdOU6_65&vXFrN47bVe&g8i7cpeu+C?eV(xlr2G(xToT> zrQj3sMzapaWMz2@Y>f##7Qd)@i=%6gS~qt-c5lLy7i>T2I3ckT-veI1 bQG0Z z7T<6DqT51A4kdDq#4I1Y=6Ss&9bIg0hhx;1Z9|@Nv{K*m_D6rgc*-C=RIqjlD!&~+ zxM&r}df$Z%xt<-{Z~N`k^pJbBtZ7Jfv+XXwe?1zXlJ{3^7Thq{&0Gsky(O+EaOsk? z`%%nirGs_^GsyceiK&%`N$T`fkA1T9jz7hv_WKo??{I9KXBEh>t;VV)>V1gmAXL1d zd+Pa_vefApY#KNILR{^Z_oka+LG6vr5w~yX&8@Ha8t2piZvf%de%~#t@5iZK`=g#W zeleo!Y8^vAY%llfPt4eYM{qh ?CkS|^`(`5Xg=ep~YIQVO zQ`n}~rM?g-g|#P%CLQ?Z%P!3&R9p5_Q`=p{M$WoSKv{)1n@3eRM`4I+?s%%|QZJ%` zUk=|{^_o)`C+tfY=8ack5D~JeO|d2Y#AZMb+sn2-?pli@cz&@`)yxXQ+PW?4NqT80 zWiy!OPPqf&l3BUgnPU7}IZv~=AaE|X)yFu#fGYVYa^1AkD`8pEX^tuZMEfI7nWm3N zeB{DpztvR@Q~xO}A-;FU;lbM2Bwz8scb}uLbaN+0EB@C?JA_Aj(F4a^0xbND`t4YW z(oSY3!s4seNqwUe^`+BJPfl8SZ@Bt4Re%M|hli*T#MM(fI~?i j*KYC)`BU z6OMBqe_n?_=`* hKZ5 zA;eObYVyf8Y6#XJaerxe03PSJbBL0IzfaU%jO$p~8yM3 f6Wh8k$FKlY=Fv<5=Qcbu4Co2BVpYDJ^^Txpt?rMYp3v0w@6O z?>HX3Ywyf4t10GM+fV2}qm{NEjiMM@gB;k-H|INnYX-cQ6LWHBLNu_bhk6o?5Awz| zy}>5X^NtAhslf}3oN2$88t7O$>^}xA`0+On_-XY!hVXrV_`ZZr#n*Mjc9}I=BuaHt zLzEZhS?X%c8QnF{5qX-t2p{p_WJ@ @%5Qg}AKw zH-05y{kV1cth>)tb8}?V$1uVM)KjQ9cvufmPTWi4k5^p=pO2qQ9bY((GjF*ieM{UL z(=nJ7=e N{r$W|(;KwfIdFX7ZAn6@y3#{;SfinKGOFG{kn2*=lmc;3+vRI_+Jm@8=jVmBW z&jkzGK3UbIE>^D4STFbOTm;}LwKDL@M;q&R_ln>@*2=CQ>_Kxp-SMnWoh3M)>B&0n zwY978sGH)_r4%dR(w~{6^8%lVMZH^8ve^p|w-GBVrk!oao_B~5JD#PnrB7Y-``%Bd zKgRvM6uvGhXT?(zOA#VO^LP>MSW=PdH4nFt)(-a3HTUltN*tqmB^Dms(u(G;b|oCm z1+o9F9TmQeFet %k1(tk=S~JYk+<6DZGUggLFpRwN z6*YV>F5PL!Att9xLvr?x^;!1u`|qlw!_B6q9f(h07_h^MiTX*3#@^U~)tOHopXT&Z zbzyG)L*EiNS~J!^p=<@$px~fz3VN52L9onsB5DcBw%;va_ayzu%zy=qBvE P> zO)_qf2j7Z^(PlN`-WA aQH2qoUoG{$d z6fKA!mplusqYO_zZgk-H)+9oO)V{#d8htG4*fE@I8hWksRa`gyTokrjwKJnX8(K~x zOR3G(|GK&4ur;=7bP6&fN=jJRN$24aqD~8YA&?((8+kRxIGj*5PU{a86Tr)2>DP=W z0%1;OCaM+tCFS~Hz)n7GI%7!i2R&QecphUdX}%-z71}AxG|%&JH_d(3p1wCO@j7TI zTFp2)7;}hoh? Ns9ltM^?Q@dj{q^1BL`RFQ4|?M$bR?|{R}{bRIbMc`>qc-tE5rZ$S>eF7 z0nwnQr9g;YyqYqSG;Ub=NHtHCNbqF2950z%tSq54^5d8J2?1&vRz=Vp>NaK<+HW*V zUCAq5NZu^9^6usW)9V2@Wf`~EzP|uLmUDOqbx)U3HF)J3b2*X-O08X4^m2&j%}S4l zRgNRmjCe!iE_kKCmxfMvaq2KL^YO=p*G0AyKGc9b7E|xykzdytonLVdY~l|ORv8z2 zrUF;tqbsjZ+ls1KZ%#ukD9~B~HzbWY;v$OT{G4QKn+ZqW`7U^78J$S`Yr;Y+;dH-7 zl`Fe|pZ}SWCP|H0AJOH5`neBS-wOwc`BC`CJc@=MBKX~8z6lz=vD^L(5lX`-IYph~ zYRH@73nq3zFEKqN$wkF#(nEjbIQO+ Mx`utQ#GZ?ER;BHSfeN^cPJ-qg5 z_gC#xC0-VSt;wV=qr&=HyQepoR7R%4(Khs{Ln4Nt6yp=s_LYIJ3}k7;F>b+i(^Y4k z)Dw?3ElsZo=j-&ZRxxbZG1^R-o3e6<~BuWiS!6(#-ZY{ z4vZvfX<{0-aG)znwirmW)^l83$#F_AEz=`p@Cv1cw6H50tU4)|qdAV8mODA*cVj(f zu=Ets+wfFQB~8Uxe=i)E?vOp40~rv)#BU+W5!FyIPw~(}QxF Oksa4D&dk0EU zBI@zoDaIuY$*A{NAZT`%1$A>4XK{(Ww~0InhdCMvZ;8c$xiv_t8q!ypSSe8`F&E4I zvx~7HPAO9l!}RieFht4JlfzQKxJzg`dh=#QKS#1(R8~nFNX#zS-;(!@`vS#Gv~EXC z&eQSonzW0LUx=o8$wg!ie7 7Z^omeXPSXxL{QP ZpI`iYOe91G@l_kov~`ATqYljI2Cf>mccb zSh Ok>&p6A*zit<%$wLFh}3t^Q$e|D_Jv8<%XqS`y+_5pGA%wq z0b<`U9?^=vqw*5>GB{`JhF)l?4ip+)==ShilP E$aDon{OeyZI z_hyl1fc!(*Ye`X@^MmB9h-zDh^H;5)08@e{AS=r99_z~z6{5cRgaeEYOW`k?9G6AK zkHJt&b7$iWU!SSj*!%@bestNXI7^X<*eFnetDquf 8y+hKTs^`=dJqDT@mh@lGkJ@u;;Y3F*t6D z!dK0Izp;}R4h}ur;IXK?#@ofskLY|0BNbIby3QzB?IvIun>cr%xcTYt`Ow+P5+o^< zG0fbATe-SOzO>w{czZ_N@4bV<1>qfLG+m(&?@P;#FUS1(licY<^%Ll-<@R}0$2*w7 z@CLJ}-Nkk4CH1S|IIW~W=_vA}A&u=1j5+I>&p#KVF{0m`3N~B|%E28@be6j8u&l9W zHi@%lUq9ncJX5GJ15B(?_TW-!|Bxlc9>qCyJ8%k7n55XmoV7)1WGB@cua+7gUgtKh zE k)qC`yUGJlGOZXL_beJAV+_VQZr}AASb8Qyu_WkA35X zt0r5c{{80_2^2RK70OZugaknEe7F0?r1IW!y)}|bDC?&?LwxJXPIS ~gFC+Ze- 8Y&qkM!~l?u>JUyk*}>X(WtA(&66dRHdrzMf;`EyE_-6$!&m=Q;B7Lm zo|+*2r?0xnGujwqwYvS|+SX)^@-rJl9(q0K^)fnc!p|})Y+}fwnAROa$e60ajz516 z`|MEGO+MKNz(wqQ|5PYyr!}7!k!LYss!m#kP2~+mgTAHwWwxV`M`cC7M?vFr$qTel z4cm|+y|RI=_AUr3yJ6raBh72VDc;vI+1qHLotd$S~;xnA*Z%^up!L-Wg;dFi_0v$aVjdCqNzrttVfZ*~8GsJg92ihcB+n1YKSTG@49|0?&4ABF>zRkT;vh-UZPeljA*= z{2IS-hB5*<3#P11b)h?x>h9l;JF^(8>CE>LSc~32kd38ve_?W!*!vJ rN6X7Pu%+~Pmha3l_0NZuUx_L=xE5tzCkGCKQD^zh|eghq4wtrKwNoOUyt zTqg=W+FE0;`4OxU;Mrw=aDhS9v)6J#;Qb@G&-j|G!f#dG^6=?e^TW2kJTaQV2s- |;VnL~4q+A(_tyA; zYF2s!2O=9+Ny~mo%fr1~P$kWpNDd6=R^gUzNeIfXl<6zX%lLQBf4irB*X#3u}u-ycS?8AVk=dX9a=r`~t!ab;!^M_BRY zP<`9Nt4|Z6x390WJ9<)>5dD2a#u!g<2Ge6Oee|8;>?YfKJy`E8y4#buYMMlQ5%Btg zW&>~}&K1UB%D?=nwyc0XXSE;^_6YO _^P(C>8J=F7l}t>YK6 zkHFz$S($`{*)6p$f5{9yOqw7H>pVQ62P-g+!$ukaMAACC8jKnILzrPfRr=^A$~HZ2 zyA$BlSsBP7ohGd5A) `ydUy$!|AuoDHGm? zX&z4e7HSGP7K&m95RDP+kvK>K0p8SFC>Rw|?B_P?XIzd0UA8M9F!$NW7=6aGFUt*k z$y&tx7-`dM*V(G&s*Qy#D;TPP%>1Q4S)`zR*QrEovk<6@p=8IkP`SkQgOPAGSNlbD zimN4gp>4h0B@f9jZ=xke=Y58y4LQ$4S*W*{==xfzob=@0_n9=O-zK)k+=iogyXX*_ z2y=K@#oNfQyW2M=a@Zywb!3YsPwwrf+=sfs=6D86tmVq`O&70q@PlYaA$+RA6ogpj z5>Z_jEUUw0E>(g)pW~4b0~4BL-Xdq775jAVYHK8>4|X->TWh81Z7YykEc$AVgbFNT zL}L?jHMYNas}NBio`b_}WXH9Au(}1wnAz7i>Z+fft7}V4t-Q>%_S&D`&cBuR#U8tI z!Q=+X{eo;eQVX8&_(Wbtefb!F 81+iM| zaiy1vqIXC?argM6s*mLyV){#6UjpC1@*4Cg(Mvp_lC?Da)RS@}Wh}VA4$DY_s1?z# z(*FodpLe}FK!;_Y`YPUpoR>y!@P%XD_ cCdBNVy{(`jV`L8|gqgH%Zm;j&n$w1m-PxR9vaE%`RxaT_@U@%r2q~nR zhJs0NC?ij2GW`l&^6HR&R69%ovi$~~IuP&Ra%2;8G#Zy{IcB>s+Y?d`2K_Fvm z9S+)bzYUKLR9(T}edXlqHldc;uxT*MOwttnLu<=-Yv7aVFpdi>T{;1~UXEKDCt%`X zaL3EFfR&gN&s;4;yy(^w2$>lk$IDdfUv}|L3YHVo!ZNAjS<0vJ1sjM?khY*OlA5_* zN9wg9Z~mN&TY6&$M6WrU-Fm!&v1CC}Srdke=-oz_H?e!;Oi5I1N=7mP3|QS~z77nI zJD3v6YkQMxIpYKjZ&kEsdLL2vP-x88IK+Gwb|)7)H|d&qea>5``=MBZ%$Mm=Fp1^5 z_s>BQWzLte7sL@0v6Z93L6E*|7aaL4tsd#;;-TxK7x*{PiPGY4jK*KYc0WLm#h1`e z3x)kML#QQXJqCxjcXQUP;Hwv2&Rb5nyr-%^tcrzxw-NUVJF$kI`A@pUKIp7U+{7Dx zgDWUm#Of=SjJYRIKyI@WlhfBV&Pwsd6ih=d+Vj49%pj4SlVfR;1s|e*>MK*6v}D73 zVkKrJ5m#M}Ti5Bbj$j{*d&4jN2+Yersgw7W#W-p~0maQh3=cz&Aa*Y `4N4M)?R$ms z33Z3U8Qul&4oMmPjnwB|hk0OYWsiP;9|c4I?^$#8k8R_JlI3~=RARgMlmd3*u?@&M4` z$N&Gq#er(&r~=I^!gk}}GxRTT(PXB3Kn5-x073(BiJ&W`xX3dqw93%i9Ad;Ug1h55 zxu{SL0*c?~fOsINoHjfF6cqpvzZXQA_#c>%nBfjCx?R9Ag@d9v0D#0j7>E3CSRBPZ zgg;jms+miKxJLU=gs5D8AUNEkcLtuXGTh1Pe(OAjf54Tz2hbsU>bvevpFBUxhmSr0 z-bnafciYVO8hGWg0UH8r)ac-#HGD99_uy;Rf5Gf1cmD8D+ 2aH`5XRi{*7}7|1p^SFFYy;{a8Q;_r(1RymLr| zkNCHLJ;%Kis>I-+0_7hku>X$ILIMDlk|c-ji_!n?lky)2D)=>#z87jw<~ONwNByy5 z`R`4J1O`AQrD-4j%d-kPQA$nukDCWP?xTBg<&}T8P`n%QA6E$gfcqYmtO{LuO9YL7 zD**f>iT~deqtxM$G4PKhH~_$ZFN&Hr9H4@-D$(9`_iqJ5+IwJ!9vq~Et`yNw{9oV> zo;c?{#@hTYB~URRQ2OTo3UB|t9tD ckpG 5Yex2 zY80Y2p| T_$;;-U0A#}MTY=M(%cZq* s?CN+xQv9|t=0i-f% z{Q~l!u WW=CN21k%(4kvv0!P1zFc*kR+G6X{6ZVLqbYs5Ha{*-7!SD5Ly}D zqXd%BZd ^OcvfSDU~D0AGrRW2-Tj9#AstuEo%o32G;Nm;y*R!pa}sl C)5MuMIZKW89GX9r-e^P=3>QGcYfT#`APA7wjVrE$Ca zeZAZu`~inY%!!H7Q{w}$+Fc-6;z)y3*`+`j&q&Mr@i-Fm$Tos+QXYY!ftejVELA{V z!;4T^ewLK84Fu6q3y$JxoMN2eQd+txZG>3Z3aXNKulYL*;*G;29@-EW9m-&*BH<1g zp^&7=M`~x}W2$1>?@_VB28gd_Gb$+_mtKLrh)K$B=q z76g8ixQ0V>lAWZf_t344m)qaL$-6%r%d)aQ0(cIvu~P NyF0Ll zum3gzoP*C8Fp#v`>Rb3nuVvQ~S^2XRGZyUg;VTGN%~2bV3=u75_{o;4cOJn_C@Wju zFJX!8;}>Z1Pr4RbOw3xL!dc(P%VIR6k&mGF7#>jX*(ZHc<0*h_5YME2E}w@Sn)Wk_ zAmQp)bAGST;Tjh{H#-EL>uYh|v3yUEZMxn5Gx@!2W;C7B25lek6tT_tb`({R= nOz}!*bQ0S~WL5=a$R($}Dr=z%PJ?L40#NIY3~_qiYT+IEJ}gdEvcv zoOzcy?)|!dTtW{f<`}fQcz5hxFTY5%oEogFM6TkiC|lNUtcsNQ1~RrzQAQ hz$jTQkSZOwRs4|1&49b{^5b#QCu)k>o>&((guBmiz@``H5 zLA1fvE2ar_2+PF!B-7txk<6PCG}LmM0vJa;OODR=(hcE3QTr+Lrm3ki@k_GAycZfj zTcnvyPTAafcOT`$MTbcn&tG1&>gwq8LV&wEg_l)UKduho-Ek5+r+o?YlJgd80D51R z(5_@-GBGp9NbA@1OgaQnps(oCNa=HjwmeTLTMPSPItqA`zbS-<$ikt 4j;=qJhB> zh~8Q4^!8_x7QuPsEIM~c%)UY1$(nkTlpMkR7aU>4h`Jfgq`1ZwbOiD19mgpGikzz z9S{7^v}?}J?35Bji*k5{jA2z&=s-)t_JE}pIgRbcD9Dp{lCLW6(-iBJ+K-A@*I9{O z3gP2z(>MoEUQK+W2C>&92}E5jwb6~To=+=M8q!$L8 6y4oA6je3|K1vnI!CP9zh+_7#21gje+N_y9`;~qQo+Lu}f{!=4K=s%ydVMZL z{vo`8(3l^Rjf`r2LOB6d`f)XL^Icq-AlFYAX!yuIgz7rGBkfW{sF=IxaBFCUL2SRo zpl0zB)ew>~snz|avqwx c+&vJ%FKdstazi=f4IEO5*zf9RwJdF3f*+>L4Lal*1+mp1Px%Vt( i z=NpivUBH(@4k5||HYQJ=g3iuTuqL&z$=fE8s<|@1hpLjN;~$+0%kiBDuZ61g@5U?8 zp-q;zmD2ej+O0QJcD*poHLXWH3VZhd3Sh1jW1l5wXKo*DtIEJih;dlY>yX%5YA #2Vks}vj9 z$^G9F3M<-mg!~QfDu*!s9x;!kkju4$Qw!7h1^D>{eFwdCLx5(sf4{O7>ZWF+s4?7B z&qyJT7OtTfU}>3$s-b2Iu;pWWUNX>x6R3zUXlyM;Yn0el7&~q{hV;2@E^Oi<4rd$z z9{=V|;jeB0`z$ZbVOcKhE>may2L&ZG`f5vsbWl?mRajplq6KM&;js`D^&_n+6BL8A zZXW5e1Q){DML|)K1KJWp;5sy0ba`Wq6LQ>%(@yiICswyuEGo=s)Cw~^%PtfRj%0b^ zXNt5NYwRfnh0Ccr8@8n}^Mu4vDOxPVeYFNhwcB$*R=6q=C4H+aIjmIpA^;mB4G(5} zFl~}|kkoz>l3 zG3OlN{`LwANqLQl1!s>bBNR7siDy8;R0Gj%p5%$y%9bS+Ploew5>d!l=@|v*I`%AU zHKi~xr3$^B-YU+1&|b%M-^<+C8p#cnyf8tPa$8+x yu+FNp zegjPea}QCweL6^dmgbV8_>ijFD~!6F6Az8>B5xp4PQ|t*l)x>V7+TWZEn=n1M=AR= z$d^c75@g$OM4HF_-S93lt`h^a|G*MY??DI5+$<*=3i$PUqaT>Qd)ZXZJTG&De@ 90T__g5HxNXh|9}U+Oi9vYPX6T6PP@- z&}I^$ZvOD3BgVvTZM6@}8)}NcF?CcPWWoZ`xggKcI%9XCA~LqaTK_bAQJ} s{1A8h?6z} zYTy9B%8eLZ-N@U!7M0^%A;FxA-IM$FNJsT4 %6f1o V>XbeYnH+!9{^cszEJD z6r$#y^mgTF99RR39;vM@o=ez-T-%rk2ONCA$b93Mv}Lx${e<{`9yc0*Z{9B_SgEUs z%ky!MT=2Qh?5v1r3+MB I9^G5Z_kqq)rR@;KYRkDNxrcK zE5m$Oku^NEq>;Z!>l?d sW~= ze$Q;<2cxY`HtUA?u)Dy)nKtkkAgSYe#?r1-*kmTZL#>k)p&pWmwA| K= ze-qWo>?78L1UrM{D9A2Vn%@c@Y)bEjUP~e|bkf$1KCbkt!5iLf948Mf;K#@oI#bd3 zljhcuB=jSO)TzT?r!v2$2|w?xu4acz%)IX*UujushXh=eK#m(eL1|X8OXIYg@hyPl z?lg^t^)h3~Rrhy(EIY1*O5}<+B$6sSIRsvz4>o(z8iaDIC+?|=_k(+>H6n|eJQ4Fu zLWGDiH8w;dM-t67x*Q5{^L)>Q?>n{N5-;ukh&Y+!TMI{mRPgEf dLQ521OJVKa7oLjLclH_9nzklHubkV7rRUA*#aM!{w =*|G`y<9wCwdJJp8q67M&W}kt+o8Yk`?zU3|b%HN#V2HV)9D0`C$sztEMo z|4_F-hDGbaYq4^ZuyPx4%gsAXC|)}rO@$ZIXhRunFCE$Gy9 ^kk*X2ULd%J~GbOV8gB BGP{b|j>#ABwv<0Fj6Gd|0Tc#$uAmB^K8m!()}V#w1f5Az6uKe#E_KG-D}w zZ9KcSvm!Rcdlwux2Y)5B;092!>gRQgGhj}FUyxbkh=G=fvVO+(0aj&pUC(gjFnWmI zux6RXuYAC@h}0w?l_KuUp*7wC=gAgXB;!W5RAS(IB!lRyX?>U`Fs)iNNDddu`E60j zkSWqECBzzzV7{=U1=ldBmgGN_yj M3ke4r0g~sCOxI8)3vQ=1!hsRw8}?^Gq*M_! zpg;fEvm3-=N~NrvclMKK&Xd#D<5Lbn4_K68!0z4XsMc#i`tfVG1N>Q3`BkZ;D*YNv z@gQ%*iG^F;FWA&R)C~-ijl=3<;1#^@HtlLPS3^IoI>{o0aKlT0*(>(T=%}KvO<*gN z?_rN}Jq`GVZgupW8VBeUmQZ&1*S&&7su4;yK0bk*HI!qiUpb61Yz?Ng5@wC8G=mIA zQ9Kg~y#`T{wwYC(#rg(iWt>uswE9TEA_V{O1PmR0ylbqtkYF64=Hd$oD2^u_^qJF_ zTfKowF^{lpVup3rsXLDcXbbfv&z#O?#+%PD_du(VtHI~{qzh!g7Ah4*6J}`s3xU!Y zoc9Y`kXNX?EIM!SXxLLQM5< 1-Dr+CGta MSJz7WIx}=_}cx2MI@bH?yR+ zhd3F4&`35t^NI9ng&_*VMV}@wQ31-9%5OTyjqRSH?&qm;y}!Srz(*?+nu;%##|Nx& ziM~-nqa91wWaqzdi?L5LHoc(DYYUsS|JhguO7Rw|N?#G)+LDC0NmWP2bvs1~v}OL$ z|DWWGAhC#7{z+a6>c8m%ib5RND~H4Q11~Xd1}q@uryOqk8KEGJwi1S@0^v8*d?m=z zG7g73FLIoq<&OF;MN$>MLSQdkS*RZvK?or9mzVJK&atQck*C?^<<}>K|MyCUXJ_A! z0&k1~9i4o+zzYGyzz2Z?O+pNJre(tva*0mCkPV`6VLM?)5l74M3FvhoL^Vw{j3~BQ zCv4GESW7dT=rQ$S`la$mu1W+f_rWe%NU3reO7sF{9WhJFCsB9DjcEZ683(-IG??+s z$#D^i2L%Sx$pKlkQa@TqyaE%~NJG?lp}1Vhh6YQH9Q^j3@r?V1AznG+Px|LD@rZL4 zu5fyVR;~rWLboLCCS4Fvs=}8IhWWbqo2vywX>)hWG&aM<_M}c?tmE+W_(fV$@3C6P zlM&7rYppQzLAum9Vv}+0_8G7Hyu05w?ix3n;**$GU$-KZsbK;|)4ZA4`f`{?4`_s~ zgVqTn7Jkpl+ShpKiXeVg13#;Feuev#I25^>&Az|U%a~m}?D6Uha3y57ovBzf@;oQ9 z(sq5|QK_